Intellij: Tips of the Day

I will periodically post hints and tips related to Intellij features. I’ve been using it now for almost 3 years, and am totally sold. Yes, it’s not free, but I think the price is well worth it.

Built-in Clipboard history. cmd-ctrl-V/ctrl-shift-V.

Default is 20, but like most things in Intellij, it’s customizable. Editor/General. Maximum number of contents to keep in clipboard:

Context management (Similar to Eclipse Mylyn).
Task Management plugin. One of the plugins that ships with Intellij.

Load, save and clear context (basically open tabs). Join Context with changesets in version history. Connect to Issue Tracker.

Git support. If you’re running 14.1+, the Git support is very good. Especially for the most common actions.

In addition, you can have it perform actions while doing a commit. Organize imports, format code, analyze code, notify of new TODOs etc.

I still prefer Eclipse’s approach to this with save actions (i.e. performed everytime a file is saved), rather than at the point I’m committing, but it does provide the functionality.

Intellij: Replace text while preserving case

How many times have you replaced text twice because the basic word was the same, but the starting letter in different cases was a difference case?

If you use Intellij, you don’t need to do that.

In the replace dialog is an option for ‘Preserve case’. Click it, and Intellij will do the right thing.

e.g. change This text to this text

Replace ‘this’ with ‘that’. Intellij will convert text to

change That text to that text.

Magic!

Have we learned anything in the Software Development Industry in the last 30 years?

This book ([elink link=”https://www.goodreads.com/book/show/2383920.Software_Reliability”]) was tweeted about recently. It was written in 1976.

The review by Steve Losh is well worth reading. It was at the top the last time I looked.

The depressing/frustrating part is that a lot of the lessons/issues listed here are STILL relevant… We haven’t learned much in this industry in 30 years+. Too much chasing the latest/greatest, and ignoring the past as irrelevant and ancient history…

And for anyone that thought VM’s and Hypervisors are ‘new’, they were being used before this book was written. We’re just going in circles, but with everything looking better.

Are you doing your part to make things genuinely better?

Twitter reference: [elink link=”https://twitter.com/stevelosh/status/434543430987812866″]

Front-end Build tools. Broccoli: An alternative to seriously consider.

Broccoli is a relatively new front-end build tool. Given that there’s already Grunt, Gulp, Brunch and others, why do we need another one?

I’ve asked the same question, but like to investigate and evaluate the potential of things, so I took a look at this post: ([elink link=”http://www.solitr.com/blog/2014/02/broccoli-first-release/”])

First, I must say it’s one of the best and thorough Motivation pieces I’ve seen. A strong attempt to remain unbiased and a strong use case exists.

Also doesn’t dismiss other tools, just defines their use case and potential downsides.

For example, Grunt is a task runner, and not really a build tool. The plan with Broccoli is to integrate with Grunt as Grunt is good for running general purpose scripts and tasks. I really like that.

The Motivation also doesn’t recommend using it just yet, but to check it out, experiment, provide feedback and keep an eye out.

So, I’d also suggest you at least read this post and become aware of some potential issues with Grunt, Gulp and Brunch. After reading this, I’ll stick with Grunt, and be experimenting with Broccoli.

Developers Need to act Professionally

Great talk by Uncle Bob. I’ve extracted some highlights below.

1. Look around at how much is dependent on software (excluding computers and smartphones). Elevators, cars, HVAC etc. How confident are you that an if statement written at 3am isn’t going to cause a disaster?

If a disaster happens because of code, Government will step in and regulate the industry. We all know how well that will work, so ensure it doesn’t.

After Healthcare.gov, he re-iterated his concerns about this one.

2. The most important thing you can do is say ‘No’ when you know saying ‘Yes’ will be extremely bad. And say ‘No’ when asked if you’ll try anyway. Otherwise you’re lying.

3. You are responsible for acting professionally. You can try to get your co-workers to be professional, but the most important thing is for you to be professional, and hope that others will emulate you.

4. Expect to continuously learn. You hope your Doctor, Lawyer and other professionals you deal with are constantly learning, and if you’re a professional, you will do the same. Labourers don’t, professionals do continuous learning.

5. When estimating, if you provide a single date, you’ve lied. Provide a range and probabilities.

The bottom line. We are responsible for our own actions, our own code, and doing the best we can to ensure that ‘the business’ doesn’t attempt something we know isn’t possible.

If something as terrible as Healthcare.gov happens, but also involves actual loss of life due to software development, expect Government to regulate the industry. Then, we’ll all be civil servants.

[elink link=”http://vimeo.com/54025415″]