...RubyMine I have recorded two macros for debugging and linked them to some keyboard shortcuts. Since I believe everyone could benefit from having those I wanted to share this.
...first one simply inserts binding.pry and the second one .tap { |object| binding.pry } for when you do not have a reference to the object you want to inspect.
Use the PDF toolkit: sudo apt-get install pdftk To rotate page 1 by 90 degrees clockwise: pdftk in.pdf cat 1E output out.pdf # old pdftk pdftk in.pdf cat 1east output...
...is meaningful if you want other rotations. From the man page: The page rotation setting can cause pdftk to rotate pages and documents. Each option sets the page rotation as...
Call with the server's hostname (and user if you have no SSH agent), e.g. install-gems-remotely my.server.com # or without agent: install-gems-remotely me@my.server.com When you call it...
...as the gemspecs of all vendored gems in to a temporary folder on the server and does a bundle install there. If you need to install gems from anothere Gemfile...
...are usually encoded using Quoted Printable. Here is how to decode or encode such strings. You probably know Quoted Printable from e-mail bodies appearing in Rails logs, where =s...
...become =3Ds in URLs, or where long lines are split up and trailed by = after each split. Decode Quoted Printable Decoding such strings is actually quite simple using plain Ruby...
You can use the content CSS attribute to set an element's content -- which is especially useful for the :before and :after pseudo elements: a:before { content: 'Click me: '; }
...of other attributes of the element. So, if your links have a helpful title set, you could do this: a:before { content: attr(title) ": "; } There also is a jsFiddle for...
...s no user interface to give an AWS IAM user read/write access to a selected list of S3 buckets. Instead you need to attach an IAM policy like the one...
...below to the user: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket1", "arn:aws:s3:::bucket2" ] }, { "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:GetObject...
So you have multiple screens under Xfce and want to have one task bar on each screen, only showing applications on that screen. Here you go: Create one panel for...
...by going to Right click / Panel / Panel preferences... and uncheck "Lock panel". You now see a grip that you can use to drag one panel to the bottom of each...
...bar or bookmark). You will no longer get the website's favicon as a shortcut icon, but there are many great icons here: /usr/share/Icons/$YOUR_DESKTOP_THEME$/128/actions
Axlsx is an incredible gem to generate "Office Open XML" spreadsheet files (XLSX). Does not break on large spreadsheets and supports a ton of features like graphs. API looks mature...
...and existing code is easy to migrate when coming from the spreadsheet gem. The documentation of some methods is a bit out of date, but you'll find your way...
Sometimes you need to look at the filter chain in specs. You can do it like that on Rails 2: controller.class.filter_chain.map(&:method) Note that we need to look at the...
...controller's class since before_filter and after_filter stuff happens on the class level. Also mind that the above code will give you all filters, both those run before...
This describes how to migrate an existing cucumber test suite to Spreewald. Add the gem Include spreewald into your cucumber environment by putting require 'spreewald/web_steps' require 'spreewald/email_steps' # ... or just
...spreewald/all_steps' into your support/env.rb. Look through your step definitions for everything that might be included in Spreewald. Candidates are web_steps, shared_steps, table_steps, email_steps etc. Comment it...
.../var/swapfile]: Could not evaluate: Field 'device' is required Notice: Finished catalog run in 12.39 seconds it's possible there is a "problem" in your /etc/fstab. I could fix it with...
...I needed it to do drag'n'drop in a hierarchical tree. Let's say you have this $scope in your Angular controller: $scope.tasks = [ { 'text': 'Task 1' }, { 'text': 'Task...
...renders this HTML: Task 1 Task 2 If you'd like to access the scope bound to the second you can say this in jQuery: var li = $('li:eq...
The adjust-hue function of Sass allows you to change a color's hue, but only relative to its current hue. adjust-hue(#ffff00, 120) // => #00ffff
...to a hue of 120° which is a nice shiny green? Take this function: @function set-hue($color, $target-hue) $current-hue: hue($color) $degrees: $target-hue - $current-hue
Restangular can make use of $http's built-in response cache. # Cache response for single request Restangular.one('accounts', 123).withHttpConfig({ cache: true }).get(); # Cache responses for all requests (be careful...
...with that, you might work with stale data) RestangularProvider.setDefaultHttpFields({ cache: true }); To invalidate cached responses e.g. on a state change in UI Router, you can do @app.run ['$rootScope', '$cacheFactory', ($rootScope...
...for example through an Ubuntu release upgrade) you might notice that Thunderbird will not show any of your old e-mails or settings. This results from a different directory being...
...used for storing profiles and configuration. You can replace the blank profile with your old one like this: cd ~ mv .thunderbird .thunderbird-invalid cp -R .mozilla-thunderbird .thunderbird
So you're getting an error message like the following, although your Gemfile lists shoulda-matchers and it has always worked: NoMethodError: undefined method `allow_value' for #
...to Rails 4.1 (specifically, Spring) revealing a weak point of shoulda-matchers -- jonleighton explains why. Solution The solution is to follow the gem's installation guide: # Gemfile gem 'shoulda-matchers...
Note that you can also go "up", to the controller, using a similiar icon in the first line of a view...
To open a terminal quickly navigate to System → Preferences → Keyboard Shortcuts. There, click the "Run a terminal" row (It should be in the "Desktop" section) and press the keyboard shortcut...
...for Ubuntu's default terminal is gnome-terminal. Be aware that many programs use shortcuts of their own and you would not want to clash with those (like Ctrl+T...
You can make both mobile Chrome and mobile Safari display a native app install banner. The banner suggests that the user installs an app that is related to the current...
...page. It is shown in the phone's native UI. See attached animation. There is some fineprint you need to read to make this work (see below). References Android: Increasing...
Do not use .rvmrc files to specify Ruby version and gemset configuration any longer, it's deprecated and not considered by other Ruby version managers such as rbenv.
...migrate an existing .rvmrc you can use rvm rvmrc to .ruby-version. Put gemset specification into .ruby-gemset. Creating the .ruby-version file on your own, just make a file...
...an OpenStack instance: # nova resize example 23 --poll ERROR: Resize requires a change in size. (HTTP 400) You need to change your flavor to have a different memory size. It...
...convinced that an error must be very close to the network card, OS IP stack or compiler. In reality this is quite rare, so before continuing, triple-check that the...
...issue is not located between chair and keyboard... If you're still convinced that a in-depth analysis of network traffic might help you, go on: Find out the IP...
Do it like this: attribute :active, Virtus::Attribute::Boolean Long story In Virtus you define attribute with their type like this: attribute :name, String attribute :birthday, Date
...only TrueClass and FalseClass), so use Virtus::Attribute::Boolean instead. The reason while Boolean sometimes survives compilation is that many libraries define a global Boolean class for some reason. That...