Skip to content

Instantly share code, notes, and snippets.

John Cipriano johncip

Block or report user

Report or block johncip

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@johncip
johncip / phaser-2-to-3.md
Last active Jul 12, 2019
Moving from Phaser 2 to 3
View phaser-2-to-3.md

Moving from Phaser 2 → 3: an incomplete guide

Summary

  • I found that the best thing was to ask myself what this or that line was meant to accomplish, and then to search labs.phaser.io for a Phaser 3 example of that task.
  • Usually the issue is just that a function has moved, or some property now requires a setter.
  • There's a real migration guide here: part 1, part 2

Scenes have replaced states (and the game object… mostly)

View rubocop-rspec.txt
## Formatting
* describe_class - argument to 1st `describe` should be a constant
* describe_method - 2nd argument to 1st `describe` should be a method name
* describe_symbol - don't describe a symbol
* described_class - use `described_class` over restating class name
* empty_example_group - no empty example groups
* empty_line_after_final_let - empty line after last `let`
* empty_line_after_subject - empty line after last `subject`
* example_wording - do not use "should" or "it"
View pronto_hack.rb
❯ vi /usr/local/lib/ruby/gems/2.3.0/gems/pronto-0.8.2/lib/pronto/formatter/text_formatter.rb
# change line 17 to ...
# "[#{message.runner.title}] #{format_location(message)} #{format_level(message)}: #{message.msg}".strip
❯ pronto run -r reek
Running Pronto::Reek
[reek] app/decorators/course_membership_decorator.rb:21 I: Is controlled by argument 'current_user' (ControlParameter)
@johncip
johncip / rails_eager_load.md
Last active Jun 22, 2019
Active Record eager loading strategies
View rails_eager_load.md

N+1 query problem

  • ORMs make it easy to a query per loop iteration, which we want to avoid

eager_load

  • single query (left outer join)
  • can reference the other table's columns in where

preload

  • a few queries (one per table)
  • typically faster
@johncip
johncip / install_guest_additions.sh
Last active May 26, 2016
Install VirtualBox Guest Additions on Ubuntu
View install_guest_additions.sh
# Install VirtualBox guest additions on Ubuntu
# https://www.vagrantup.com/docs/virtualbox/boxes.html
VB_VERSION='5.0.20'
wget "http://download.virtualbox.org/virtualbox/$VB_VERSION/VBoxGuestAdditions_$VB_VERSION.iso"
sudo mkdir /media/VBoxGuestAdditions
sudo mount -o loop,ro "VBoxGuestAdditions_$VB_VERSION.iso" /media/VBoxGuestAdditions
sudo sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run
rm "VBoxGuestAdditions_$VB_VERSION.iso"
@johncip
johncip / browserify_react_lib.sh
Last active Apr 22, 2016
Browserify 3rd-party React components found on npm
View browserify_react_lib.sh
# Browserify 3rd-party React components found on npm
# (prevents React & ReactDOM from being bundled)
export PACKAGE='simple-react-modal' # npm package
export EXPORT_NAME='SimpleReactModal' # will end up on window with this name
mkdir project && cd project
npm init -f
npm install -D browserify react react-dom
@johncip
johncip / table_with_fixed_header.sass
Last active Apr 21, 2016
Pure-CSS fixed table headers
View table_with_fixed_header.sass
table.fixed-header
table-layout: fixed
border-collapse: collapse
thead tr
display: block
position: relative
tbody
display: block
overflow: auto
width: 100%
View viewer_components.opml
<?xml version="1.0"?>
<opml version="2.0">
<head>
<ownerEmail>johnmikecip@gmail.com</ownerEmail>
</head>
<body>
<outline text="div#assignment-submission-app" >
<outline text="(modals)" />
<outline text="&lt;b&gt;AssignmentSubmissionViewer&lt;/b&gt;" _note="&lt;b&gt;div#assignment-submission-show&lt;/b&gt;" >
<outline text="PageViewerContainer" _note="div#assignment-submission-viewer&#10;(merge with child if possible)" >
@johncip
johncip / print_fixtures.rb
Last active Feb 17, 2016
Print fixtures used
View print_fixtures.rb
log = StringIO.new
ActiveRecord::Base.logger = Logger.new(log)
Gradescope::Application.config.colorize_logging = false
RSpec.configure do |config|
config.after :suite do
lines = log.tap(&:rewind).readlines.to_a
matching = lines.map do |line|
next unless line =~ /Load/
View name-length-histogram.txt
User name metrics
Bin width: 1
Each # represents 500 users.
LENGTH OF FIRST NAME
====================
bins: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63]
freqs: [36, 510, 2547, 5905, 10086, 11103, 9461, 5363, 3918, 2780, 3515, 3655, 3609, 3213, 2246, 1469, 968, 576, 410, 253, 189, 162, 102, 57, 51, 42, 31, 24, 15, 4, 1, 4, 2, 2, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1]
01:
02: #
You can’t perform that action at this time.