...our app(s). In the beginning, there was the monolithic Rails app in the standard way with 100+ models and their many corresponding controllers and views. Then we moved to...
...between the (initial) straightforwardness of the single Rails app and the modularity of the more service-oriented architecture...
Pdfposter is a Python script that allows to convert large PDFs into a PDF with multiple pages that can be printed and turned into one big poster. In Ubuntu, you...
...can install it with sudo apt-get install pdfposter Scaling to the desired size is a bit cumbersome. If you want to split large.pdf, I suggest you run pdfposter -vns...
You can use gem list to list all gems available from a remote gem server: gem list -r --clear-sources -s 'https://user:password@gemserver.tld/' This is useful to debug cases...
...where Bundler complains of a gem existing in more than one gem source...
...new background worker gem. It's compatible with ActiveJob. We're huge fans of Sidekiq for its stability and features. One advantage of GoodJob over Sidekiq is that GoodJob doesn...
You may omit the /path/to/link_name to have a link with the same filename appear in the current directory
It's that simple to allow one of your Linux users to run a single command as UID 0: sudo visudo Add the line below to allow user 'deploy' to...
There is a bug in Rails 3's dbconsole script, which makes the following command open a database console for the development environment: rails dbconsole -p test
...that you want to provide default views for a group of controllers. Let’s say you have a bunch of controllers inside the Admin namespace and you would like each...
...action for Admin::PostsController and “app/views/admin/posts/index.html.*” is not available, it should then render “app/views/admin/defaults/index.html”. Since Rails 3.0, we have a new abstraction called resolvers that holds the logic to find...
This will reduce the filesize of foo and bar to 0 bytes: truncate -s0 foo bar If the files do not exist they will be created. You can use this...
...to easily truncate your application's log files: truncate -s0 log/*.log
...have to write an HTML message for some weird reason. Here is how: Hold the Shift-Key while clicking on "Write", "Reply", "Reply All", or "Forward".
...the following way: if object is a block, it converts the block into a simple proc. if object is a Proc, it converts the object into a block while preserving...
...the lambda? status of the object. if object is not a Proc, it first calls #to_proc on the object and then converts it into a block...
Let's say you have a folder images and want to to move all files in there to a new subfolder public. cd images mkdir public mv !(public) public
...public) excludes the new subfolder itself from being moved...
...its columns, you can use the following CSS property: table-layout: fixed It is supported by every browser ever...
When running migrations with rake db:migrate, there's the STEP and VERSION parameters that you can pass to nearly all commands. # Migrate rake db:migrate rake db:migrate STEP...
...rake db:migrate VERSION=20080906120000 # Redo rake db:migrate:redo rake db:migrate:redo STEP=2 rake db:migrate:redo VERSION=20080906120000 # Rollback (starting from latest migration) rake db:rollback...
...original DOM (template element) before AngularJS creates an instance of it and before a scope is created. Use the pre-link function to implement logic that runs when AngularJS has...
With Rails 4, Concerns have become the “official” solution to the big-models problem. However, there’s a fair amount of controversy about this topic in the community. Not everyone...
...is convinced that Concerns are the “right“ solution to the problem of AR models becoming too big. In this talk we will see what Rails Concerns are and how can...
When you put a Rake task into lib/tasks, but running it fails with... Don't know how to build task...
...or overflow directives in your CSS. Remove and tags in proximity of your table (seriously...
not or and if unless while until begin/end For more information see Table 18.4 in The Pragmatic Programmer's Guide...
Safari & Chrome Use $x() in your console: $x('//span') # selects all span elements Firefox There's an add-on...
If your Snom 300 always keeps the same volume for headset and ringtone (as soon as you change one you also change the other), here's what to do:
...to your phone settings web interface, then Preferences (German Präferenzen). There is the seemingly harmless setting for Ringer Device from Headset (German Klingeltonausgabe bei Kopfhörer). Choose one: "Headset" or "Speaker...
Richard Powell presents a collection of CSS styling advice that's mainly taken from SMACSS. Although at makandra we're using BEM instead of SMACSS, here's my favorites.
...not use ID's in CSS Selectors It is never safe to assume there will only ever be one of something on a page so do not use ID's...
The linked article compares two approaches for writing CSS: A component library (like BEM) Utility classes (like Tailwind)
Since I'm a software architect and a web developer, I get often approached by people with their new ideas. In most cases, for some quality feedback, and on lucky...
...rough quote about the costs of such a project. These people are usually very secretive about what they have, making me explain to them that it's far from my...