...time programming languages understood what the kids are typing these days. So let's start with a baby step in that direction: Like, Python...
...Apple does not want is for some other company to establish a de facto standard software platform on top of Cocoa Touch. Not Adobe’s Flash. Not .NET (through MonoTouch...
Inspired by a snippet of code in Oliver Steele’s legendary Functional library, here’s a lightweight tool to help keep track of JavaScript invocations. It works in Chrome, Safari...
Lemonade’s goal as a sprite generator is to be incredible easy to use, so you’ll use ist for every project—just because there’s no overhead. It needs...
...no configuration, no Rake task, no Photoshop, just a little change in your Sass or SCSS files...
...remember that the pain is temporary. It’s a little like a vaccine—the shot hurts now, true, but it’s really not that bad in comparison to the disease...
The problem isn't that Git is to hard, it's that smart developers are impatient and have exactly zero tolerance for unexpected behavior in their tools. While Git is...
...now, perhaps some day you will come across a grizzled developer who is using SVN, and when you ask him why, his answer won't make sense, because it's...
When you simply want to get to know Puppet, follow puppetlabs’ Learning Puppet Docs. They give you a handy introduction inside a virtual machine they provide. You can watch the...
...cheatsheat and their learn-puppet virtual machine. #Installation and basic configuration on Ubuntu Linux: sudo apt-get install puppet, then follow this guide starting at "Creating a Puppet configuration"
Cucumber's docstrings let you add long strings to a step like this: # foo.feature Given this text: """ First line Second line Second Paragraph """ # foo_steps.rb Given /^this text:$/ |docstring| puts docstring.split...
# Does not work: Given this text: """ Docstrings work like this: \"\"\" Docstring example \"\"\" You see? """ Self-made Solution Cucumber Transforms to the rescue! Transforms are run on step arguments after...
There seems to be no way to use therubyracer -v '0.11.4' and libv8 -v '3.11.8.17' on OS X Mavericks. However, running bundle update therubyracer worked for me. It installed therubyracer...
...v '0.12.1' and libv8 -v '3.16.14.3' and I had not side effects. Log of my attempts to get it working Probably you got here when bundling failed building native extensions...
TL;DR Debugging problems with javascript errors in cucumber tests is sometimes easier in the browser. Run the test, stop at the problematic point (with Then pause from Spreewald...
...and open VNC for Firefox. Features: It does not freeze your server like when you're using a debugger. (Compared to the Then console step) It enables interacting with the...
...Ruby. def and define_method differ in which one they use. def Ruby keyword, starts a method definition Opens a new, isolated scope. Variables defined outside are not accessible inside...
...and vice versa. Defines an instance method on the receiver (specified before the method name, e.g. def object.foo); implicit receiver is the default definee The default definee is not self...
For my Gem Session project Holly I ran the Ironman of drag'n...
...drop implementations: Dragging in nested lists User-definable order of items Complicated item elements with super-custom CSS and other Javascript functionality Items that can be both leaves and containers...
has_one :note end class Note < ActiveRecord::Base belongs_to :project end Now say we need a validation that ensures that a description is set (validates_presence_of :description...
...within Note but only if the Project has a flag called external set to true. The following code will lead to some problems as the associated object is not present...
When you have a complex recipe setup with multistage deployment you may run into this error: `role_list_from': unknown role `something' (ArgumentError) Consider this task definition: namespace :foo do...
...task :bar, :roles => :something do # do crazy stuff end end Whenever we call foo.bar in our recipe, Capistrano will fail if you deploy to a stage where none of the...
If you're using Paperclip to store and convert images attached to your models, processing a lot of images will probably cause headache for your system operation colleagues because CPU...
If you're on Unix you can use nice to tell the Kernel scheduler to prefer other processes that request CPU cycles. Keep in mind that this will not...
...using form_for you can give the form's target URL either as a string or an array: form_for(admin_user_path(@user)) do...
# same as:
...path and polymorphic_url If you would like to generate a path or URL string from an array of route components just as form_for does, you can use polymorphic...
Suggested Workflow Set the ruby version in .ruby-version to 2.3.5, then perform these steps one by one, fixing errors as they occur: Update gems as listed below, and bundle...
...Boot a Rails console - see below for a list of changes you will probably need Run Specs with --backtrace option Run Cucumber features (with Geordi's --debug option)
...restangular collection and you want to remove an element from it, after you've successfully deleted it from the server. The README suggests to say something like $scope.users = _.without($scope.users...
...horribly when you want to use restangular's attributes on that collection. This is simply because of the way _.without works: It returns a new array with all elements except...
...assignable_values does not invalidate a record even when an attribute value becomes unassignable. See this example about songs: class Song < ActiveRecord::Base belongs_to :artist belongs_to :record_label...
We'll create two record labels with one artist each and create a song for one artist. When we change the song's record label, its artist is still...
...with Xfce's sometimes arcane configuration UI, this can be a huge time waster and super-annoying if you need to get work done the same day. This card describes...
...how to setup a classic panel layout as you might be used to from Gnome 2 or Windows (see screenshot below). You can use this to quickly get productive in...
...a gem and you have a Gemfile in your project directory, you might be surprised that your gem dependencies aren't already required in your specs. Here is some info...
That also means that if you have an embedded Rails app in your spec folder (like has_defaults), and you boot its environment, it should call Bundler.require for you...
...modify (e.g. add 2px) a Sass variable that defines multiple values as one (e.g. for short-hand CSS definitions such ass padding), you can by using nth. It's ugly...
...While you could split up such variables into multiple values (e.g. combined padding into one for vertical and one for horizontal padding) in your own Sass definitions, when using some...
By default, Devise redirects to a sign-in form when accessing a route that requires authentication. If for some reason you do not want this, but use Basic Authentication (and...
...disable password reset. Note that forcing Basic Auth means there won't be a pretty sign-in form any more which would include a link for sign-up or password...
...a Pull Request on GitHub that includes commits from another Pull Request, you will still see them after the "child" PR has been merged. Unfortunately, GitHub won't automatically update...
Check out the target branch git checkout my-target-branch Make sure you are up to date against origin (e.g. git fetch and git status). You should...