This serves as a base canary gist for @rwjblue.
A few useful links for the main source/gist are:
# rails new app_name -d mysql --skip-bundle -m path/to/this/template.rb | |
comment_lines 'Gemfile', "gem 'turbolinks'" | |
comment_lines 'Gemfile', "gem 'jbuilder'" | |
comment_lines 'Gemfile', "gem 'sass-rails'" | |
comment_lines 'Gemfile', "gem 'coffee-rails'" | |
comment_lines 'Gemfile', "gem 'uglifier'" | |
comment_lines 'Gemfile', "gem 'sdoc'" | |
gsub_file 'Gemfile', "gem 'mysql2'", "gem 'mysql2', '~> 0.3.20'" |
This serves as a base canary gist for @rwjblue.
A few useful links for the main source/gist are:
My summary of https://www.youtube.com/watch?v=IqrwPVtSHZI
TL;DR:
Rails has a library, ActiveSupport
, which adds methods to Ruby core classes. One of those methods is String#blank?
, which returns a boolean (sometimes I miss this convention in Rust, the ?
) if the whole string is whitespace or not. It looks like this: https://github.com/rails/rails/blob/b3eac823006eb6a346f88793aabef28a6d4f928c/activesupport/lib/active_support/core_ext/object/blank.rb#L99-L117
It's pretty slow. So Discourse (which you may know from {users,internals}.rust-lang.org) uses the fast_blank
gem, which provides this method via a C implementation instead. It looks like this: https://github.com/SamSaffron/fast_blank/blob/master/ext/fast_blank/fast_blank.c
For fun, Yehuda tried to re-write fast_blank
in Rust. Which looks like this:
# Save this file to ~/.multirust/Makefile | |
# to run, cd ~/.multirust; make toolchains/1.3.0/src | |
.PHONY: clean | |
rust.git: | |
git clone https://github.com/rust-lang/rust.git --bare | |
toolchains/nightly/src: toolchains/master/src | |
ln -sf $$(pwd)/toolchains/master/src $$(pwd)/$@ |
import Ember from 'ember'; | |
import StartExamMixin from '../../../mixins/start-exam'; | |
import { module, test } from 'qunit'; | |
import sinon from 'sinon'; | |
const { | |
RSVP, | |
ActionHandler | |
} = Ember; |
Thank you for extending an invitation to speak at HighLoad++. I | |
sincerely appreciate your consideration. | |
I am an outspoken advocate for LGBTQ equality; this position is deeply | |
woven into my work. Clojure From The Ground Up is adamantly | |
LGBT-inclusive. Jepsen is named after a gay pop anthem and includes | |
dozens of references to same-sex relationships and trans identities. My | |
talk slides are populated with bearded nuns, genderqueer punks, and | |
trans hackers. My twitter feed is about as gay as it is possible to get. |
Name | Price | Integrations | Limits | Language |
---|---|---|---|---|
bugsnag.com | $29 per month | slack, jira | 5 devs | javascript, php |
speedcurve.com | $0.01 per check | slack, jira | - | javascript |
honeybadger.io | $44 per month | slack, jira | 5 projects | javascript |
atatus.com | $29 per month | slack, jira | 200000 view/month | javascript |
muscula.com | $14 per month | - | 1 000 000 errors/month | javascript |
exceptional.io | - | - |
// Have some complicated non-React widgets that manipulate DOM? | |
// Do they manage a list of DOM elements? Here's how to wrap it | |
// into a React component so you can "constantly rerender" it. | |
// A dumb non-react widget that manually manage some DOM node that | |
// represent a list of items | |
function NonReactWidget(node) { | |
this.node = node; | |
} |
When a beginner asks you "when do I use semi-colons?" would you rather say this?
// what people who say "use semicolons!!" say
class Foo {
prop = {
}; // yes