How RubyMine Helped Me Learn to Code Faster

This is a guest post by Adrian DeGus. Adrian is the founder of Nuvro, an online project management tool for teams of all sizes. He also runs SEMCentric, a digital marketing agency based out of Phoenix, AZ.

Last year I made the decision, like countless others before me, to learn to code as a means to launch a startup. I had been managing web development projects for years which gave me a bit of an advantage, but the road was still far more grueling than I had expected.
Within a couple of months, I realized that all the people online claiming to have learned programming in 1-3 months were either way smarter than me or had very loose definitions of “learned”. So, I set a more realistic goal of learning and launching in one year.
I was able to meet my goal and launched my startup in exactly 363 days. I had planned to celebrate reaching this goal (with two days to spare) by taking a much-needed break. However, I had already caught the programming bug and decided to spend that time refactoring instead. Continue reading

Posted in Community, Productivity | Tagged | Leave a comment

RubyMine 2017.3 EAP1 is Open: Better Performance, EPP Support, and Much More!

Hi there,

RubyMine 2017.3 EAP 1 (build 173.2099.29) is here kicking off a series of Early Access builds for the upcoming v2017.3 that should be out by the end of November. The first EAP has a gazillion improvements, so you may find the navigation useful:

Better Performance
Embedded Puppet (EPP) Support
RuboCop improvements
Code style
Other improvements

Download RubyMine 2017.3 EAP1

Let’s now review everything in detail:

Better Performance

Investigating performance issues is the hardest part of our job as it all depends on the specific project environment, which we usually cannot investigate as the majority of our customers develop proprietary software. Still, based on your feedback and requests, we’ve got a better sense of direction and now our performance-improving attempts have started to pay off.

In our recent updates, the 2017.2 and 2017.3 builds, we have seen consistent improvement in the overall responsiveness of the IDE, which can be witnessed in massive Ruby/Rails apps (e.g. while using autocompletion, inspecting code, finding usages, or navigating to declarations).

However, to make the effect of the improvements completely obvious, one should give RubyMine a full load. To test our improvements, we’ve inspected all the code in Diaspora and TracksApp in the new EAP (Code | Inspect Code) and compared the results with the most stable version of the previous release version, RubyMine 2017.1.5, and the currently stable RubyMine 2017.2.3 that already contains some of the performance updates. Here’s what we’ve got:

better RubyMine performance

Continue reading

Posted in Announcement, Better Code, Cutting Edge, Feature, Productivity, WhatsMining | Tagged , , , , , | 3 Comments

Using Live Templates for Ruby on Rails in RubyMine

This post continues the series of useful tips and tricks in RubyMine, and is devoted to using Live Templates. Please also check out the other recent posts uncovering navigation tips in RubyMine, and the 10 most useful shortcuts.

What is Live Templates and why use it for Ruby on Rails

Live Templates (aka Code Snippets in many text editors) is a simple solution allowing you to generate frequently-used custom code constructs, and quickly insert them in the editor.

While RubyMine has a built-in set of keywords for Ruby and Rails, and provides autocompletion for them, there are cases when using shortcuts is more preferable. In the case of Ruby on Rails development, this is especially applicable to HTML and ERB tags.

As you probably know when you start typing <% in .html.erb files, the IDE suggests inserting the whole tag, and puts the caret right inside:

erb basic completion rm

Continue reading

Posted in Feature, Productivity | Tagged | 3 Comments

Meet the RubyMine Team at RubyKaigi 2017!

Read this post in Japanese

Hello everyone,

We are happy to announce that the RubyMine team will visit Japan this September for RubyKaigi 2017! Not only are we sponsoring the event together with other Japanese and international tech companies, but we’re also bringing our own presentation:

Automated Type Contracts Generation for Ruby

Our Team Lead, Valentin Fondaratov (github), will give a talk about the new approach to type annotations generation in Ruby. Join Valentin on September 19, 13:50 – 14:30, to learn about our progress on an open source project that should bring robust static analysis for Ruby, and see how it works!

You can also take a sneak peek at this presentation to learn more about the matters of the project:


Continue reading

Posted in Announcement, Events | Tagged | Leave a comment

RubyMine 2017.2.3: Docker Compose on Windows & More on the Debugger

This post was updated from the v2017.2.3 Release Candidate announcement to the announcement of the stable RubyMine 2017.2.3 release.

Hi everyone,

RubyMine 2017.2.3 (build 172.3968.40) is available. The highlight of this build is the ability to now work with Docker and Docker Compose on Windows. Additionally, in this post we will share more details on the recent debugger improvements.

Running Docker Compose on Windows

If you are running Windows, you probably know that support for Docker and Docker Compose, announced in v2017.1 and v2017.2 respectively, didn’t work for our Windows users because of an inability to configure Docker/Compose as a remote Ruby interpreter in RubyMine. Today’s update finally fixes this and other issues related to the Docker integration on Windows. In short, you should now be able to configure Docker/Compose on Windows the same way as shown below:

docker windows rubymine
Continue reading

Posted in Announcement, Feature, WhatsMining | Tagged , , , | Leave a comment

RubyMine 2017.2.3 EAP: Better Debugger

Hi everyone,

RubyMine 2017.2.3 EAP has been released, introducing a number of improvements for the debugger and other bug-fixes.

Better Debugger

Our recent drive to enhance performance has affected the debugger too. In this RubyMine EAP we’re bringing these debugging improvements:

  1. No more issues with multi-process debug targets. Now it’s possible to debug servers like Passenger, Zeus, and Foreman painlessly. Moreover, Attach to Local process now perfectly works with these servers: just select the web/deployment server during the attach phase, and RubyMine will stop at the breakpoints in all its subprocesses.
  2. The debugger is now smart enough to detect costly operations triggered by watch expressions evaluation. It will stop such operations if they’re likely to slow down the debugging process. For example, if any tracked variables use SQL queries for the to_s evaluation, RubyMine will not slow down during stepping, which it did before.

Continue reading

Posted in Announcement, WhatsMining | Tagged , | 2 Comments

RubyMine 2017.2.2 EAP: Speeding Things Up

Hi everyone,

RubyMine 2017.2.2 EAP has been released introducing a series of performance improvements and a number of bug-fixes.

The Hunt for Performance

This EAP contains the first part of major performance updates that will take full effect in v2017.3 (to be released in fall 2017).

For this EAP, we have fixed internal bugs affecting the speed of code completion, inspections, and the overall responsiveness of the IDE.

As a quick-and-dirty test we have analyzed Discourse and TracksApp, the two well known open source Rails apps, for existing errors and code smells with RubyMine (Code | Inspect Code), and compared it against the same analysis in the current stable v2017.2.1. The results varied across the team, but generally showed a 50%-100% increase in speed of code analysis when inspecting the whole project. Continue reading

Posted in Announcement, WhatsMining | Tagged , | 2 Comments

RubyMine 2017.2 Released: Docker Compose, RuboCop Quick-fixes, Better Version Control, and more

Hi everyone,

RubyMine 2017.2 (build 172.3317.60) has been released today! This is the second major release this year. See more and download this version from our What’s new page.

RubyMine 2017.2

As usually, every significant feature was announced during our Early Access Program versions, and discovered in a blog post. Let’s see what’s new in detail:

Docker Compose

  • Support for Docker has been upgraded with Docker Compose! Now you can work with your apps in Docker containers taking advantage of code analysis, completion, and other great IDE features. See the related blog post to learn how to configure Docker Compose for your project.
  • Starting with this release you can also use the RubyMine debugger to debug your rails applications running with Docker Compose. Find more in this post.

Continue reading

Posted in Announcement | Tagged | 7 Comments

RubyMine 2017.2 Release Candidate: Quick-fixes for RuboCop

RubyMine 2017.2 RC (build 172.3317.60) is out. This release candidate features quick-fixes for RuboCop, and brings other minor improvements.

Since the previous major release (v2017.1) RubyMine has displayed RuboCop offenses treating and highlighting them as code inspections, but lacked an ability to autocorrect found code smells. Now we have improved that partial solution by adding proper quick-fixes:


If you press Alt+Enter, RubyMine will suggest a quick-fix for a found error, and auto-correct all errors in the file with RuboCop. So no more jumping to the terminal to fix your code with RuboCop! Continue reading

Posted in Announcement, WhatsMining | Tagged | 12 Comments

RubyMine 2017.2 EAP 5: Debugging Docker Compose apps

RubyMine 2017.2 EAP 5 (build 172.2953.21) has been released. For this EAP we’re providing long-awaited support for debugging apps inside of a docker-compose service. If you haven’t configured Docker Compose in RubyMine yet, refer to this post and set it up in minutes. Here’s how you can try the debugger:

Open your Docker project in RubyMine, and make sure you’ve chosen Docker as a remote SDK in Preferences / Settings | Ruby SDK & Gems:


Continue reading

Posted in Announcement, WhatsMining | Tagged , | Leave a comment