I used two lab days to read the The framework field guide - Fundamentals, the first of a three part series...

There seems to be a nasty bug in Chrome 56 when testing with Selenium and Capybara: Slashes are not written...

...Normalize characters in Ruby". Specs (for nerds) Here are some specs that describe the behavior of #to_sort_atoms: describe String do describe '#to_sort_atoms' do it 'should return...

makandra dev

...lib provides a built-in email regex URI::MailTo::EMAIL_REGEXP. That's the best solution to work with. /\A[a-zA-Z0-9.!\#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA...

Using Ruby 1.8.7 you will not be able to use the maximum versions Rubygems 1.8.30 and Bundler 1.17.3 with https://...

The gemspec for gems allows to add metadata to your gem, some of which have a special meaning and are...

Large Rails projects tend to define multiple custom ways to format Dates or DateTimes. This often leads to duplicated format...

makandra dev

A primer on vector graphics For rastered image formats like JPG or PNG, each pixel is basically drawn on a...

Ctrl + Alt + S > search "rubocop on save" Under "Inspections", check the highlighted box on rubocop -a Caveat: This adds a...

unpoly.com

Version 3.7.0 broke some things in complex forms. Sorry for that. Concurrent user input is hard. 3.7.1 This change fixes...

JavaScript objects can have getter and setter functions that are called when a property is read from or written to...

OpenAI is currently limiting the Audio generating API endpoint to text bodies with a maximum of 4096 characters.

apidock.com

Note: ActiveRecord::Base#becomes has a lot of quirks and inconsistent behavior. You probably want to use ActiveType.cast instead. ActiveRecord models have with a method becomes(klass) which you can...

For performance improvements (and to remove the need for eager loading), the ActsAsTaggableOn gem supports caching your tag lists directly...

adobe.com

Flash movies (.swf files) can talk with Javascript code embedded in the same HTML page. There are two ways to...

I recently noticed that better_errors allows you to to open files from within your favorite editor. However it was not so easy to get rubymine:// links to work on...

...Does xdg-open "rubymine:///etc/hosts" open the hosts-file in RubyMine? Step 4: Tell better_errors to use your opener The BETTER_ERRORS_EDITOR_URL environment variable can be used...

It is quite easy to migrate from CoffeeScript to ES6. You can use decaffeinate to convert your CoffeeScript source to...

getpostman.com

Talking with APIs makes more fun using Postman. As an alternative you can also use command line tools like cURL...

I have a form with a dynamic number of fields. Submitting it worked fine until I tried out a very...

Using Capistrano, we usually have some array configurations in the config/deploy.rb file, like set :linked_files, %w[config/database.yml], so in...

When accepting GIF images, you will also accept animated GIFs. Resizing them can be a time-consuming task and will...

Element finding is a central feature of Capybara. Since #find is normally used to get elements from the current page...

When you use a belongs_to or has_many macro you might be surprised that the methods that it generates does not override a method with the same name. Take...

class Project < ActiveRecord::Base def user "foo" end belongs_to :user end Project.new.user still returns "foo". The reason for this is that what belongs_to does is actually...

...fills in the query "foo" Also see An auto-mapper for ARIA labels and BEM classes in Cucumber selectors