Jared Carroll

Biography

  • IntelliJ F6-based Refactoring Keyboard Shortcuts on OS X

    IntelliJ F6-based Refactoring Keyboard Shortcuts on OS X

    Use powerful refactoring commands to safely make small and large-scale changes. Undo any refactoring with command + Z. Move Move classes, methods, files, and directories with F6. Move top-level...

    Read More
  • Setting up Robolectric in Android Studio 1.1 on OS X

    Setting up Robolectric in Android Studio 1.1 on OS X

    Download Android Studio 1.1 Download and install Android Studio for Mac. Setup Unit Testing Support in Android Studio Check Enable Unit Testing support under Gradle > Experimental in the Android...

    Read More
  • Test After in Java: Subclass and Override

    Test After in Java: Subclass and Override

    On a recent project, my team inherited a large, lightly-tested Java/Spring codebase. As we began to modify the code test-first, we ran into two common obstacles that prevent unit testing in...

    Read More
  • Trying Out RubyMine 6.0

    Trying Out RubyMine 6.0

    Last week, JetBrains released RubyMine 6.0. The most significant feature is multi-project support; perfect for component-based Rails architectures. However, in this post, we’ll look at OS X...

    Read More
  • Productive Rails View Development in RubyMine

    Productive Rails View Development in RubyMine

    RubyMine includes several commands to simplify working with Rails views. In this post, we’ll look at OS X keyboard shortcuts for view navigation, creation, and previewing; ERB code generation and...

    Read More
  • Messages Not Types: Exploring Ruby's Conversion Protocols

    Messages Not Types: Exploring Ruby's Conversion Protocols

    Duck typing is a style of programming that relies on what an object does, rather than on what it is. Avoiding class dependencies results in highly flexible code. Ruby’s conversion protocols,...

    Read More
  • Next Steps in Go: Code Organization

    Next Steps in Go: Code Organization

    My first steps in learning Go were simple “scripts”; programs compiled and immediately executed by the go command-line tool. This was a great way to quickly get started; kind of similar to using a...

    Read More
  • Channels in Go: Beyond the Basics

    Channels in Go: Beyond the Basics

    In our last post, we looked at the basic concurrency building blocks in Go: goroutines and channels. Goroutines are independently executing functions which use channels to communicate. In this...

    Read More
  • Hiding the Details in RubyMine with Code Folding

    Hiding the Details in RubyMine with Code Folding

    By selectively hiding and showing sections of code, code folding allows you to focus on what’s relevant, while ignoring irrelevant details. Code folding is also a useful way for quickly getting a...

    Read More
  • Efficiently Find Files with RubyMine's Navigation Bar

    Efficiently Find Files with RubyMine's Navigation Bar

    RubyMine’s powerful “Go to file” command allows you to quickly jump to a particular file in a project. This is a great way to get started, but a development session often ends up being confined...

    Read More
  • Exploring RubyMine's "Quick" Commands

    Exploring RubyMine's "Quick" Commands

    RubyMine includes several commands to quickly perform common tasks, such as converting a Hash from Ruby 1.8 to 1.9 syntax, or viewing an object’s documentation without leaving the current file....

    Read More
  • ActiveRecord Refactoring: Move Association Behavior to Associated Class

    ActiveRecord Refactoring: Move Association Behavior to Associated Class

    In a typical Rails app, one ActiveRecord model tends to accumulate a lot of associations and related methods. This is usually the User class; e.g., the User has many posts, comments, contacts,...

    Read More
  • Searching Within a File in RubyMine

    Searching Within a File in RubyMine

    After opening a file, your next step is usually to search within that file for some text, or perhaps, a particular method. Like text editors, RubyMine supports simple text search. However, it...

    Read More
  • Avoid Repetition with RubyMine's Recent Activities

    Avoid Repetition with RubyMine's Recent Activities

    During development, it’s common to view and edit the same group of related files, to navigate the same classes, and to run and rerun the same tests. An IDE that keeps track of recent activities...

    Read More
  • Write Private Functions Not Private Methods

    Write Private Functions Not Private Methods

    During refactoring, private methods are created in order to: Eliminate duplication within the class Clarify confusing and/or complex fragments of related code (Extract Method) These are both...

    Read More
  • Automated Refactorings in RubyMine

    Automated Refactorings in RubyMine

    Refactoring is the process of changing the internal structure of code without changing its external behavior. Successful refactorings involve taking very small, sometimes tedious, steps. ...

    Read More
  • Everyday Git Commands in RubyMine

    Everyday Git Commands in RubyMine

    As a long-time command-line Git user, I was hesitant to adopt RubyMine’s version control tools. But I decided to give them a try, and I’m glad I did. RubyMine’s version control tools make common...

    Read More
  • Working with RubyMine's Tabs and Splits

    Working with RubyMine's Tabs and Splits

    RubyMine’s editor is tab-based. When you open a file, it’s opened in a new tab. The editor can also be split vertically or horizontally; allowing you to edit multiple files simultaneously. In...

    Read More
  • Code Generation in RubyMine

    Code Generation in RubyMine

    When learning how to program, you were probably taught not to copy and paste code. Typing it out manually improved your understanding of its syntax and structure. However, after learning a...

    Read More
  • Better Project Integration with RubyMine's Tool Windows

    Better Project Integration with RubyMine's Tool Windows

    RubyMine’s tool windows integrate common development tasks such as searching, debugging, and version control, into the IDE. This eliminates context switching to external tools, providing a more...

    Read More
  • loading
    Loading More...