That Code Corner Posts

I’m a bit of a software nut. There is a certain appeal in working with a finely crafted piece of software. I used to install every new thing I could get my hands on and play with it for hours at a time. As the years went by however I started to become more picky. I have a stable of tools that I love to use for development and other things in life and new tools get judged based on the tool they would be replacing.

Requirements

I have a few requirements that I look for when I choose new software:

1) Does it do it’s job well?

These days there are so many choices for most pieces of software , we don’t have to settle for average software that only sometimes does what’s intended.

2) Is it better than what I currently use?

When comparing a new piece of software I try and give it a fair chance. I have favourites and the new kid on the block needs to be amazing. I keep an open mind. Sometimes I look for replacements because the old piece of software is getting long in the tooth and sometimes because I heard about a cool new text editor created by the people at GitHub.

3) Is the price fair?

I don’t mind paying for software. When I was using Eclipse as my IDE I donated to them because eclipse was creating a lot of value in my life. I try and see if the price of the software will be in proportion to the value it will generate. This is not a easy thing to quantify but so far I haven’t been let down when I bought software (just do your research). I would suggest only buy software that you have actually worked with, most commercial software these days give you a 30-day trial enough time to figure out if you would be happy to pay for it.

4) Is there active development and/or active community

Since most new software these days that I evaluate competes against something I already use, I make sure to only get the best. One of the best ways to ensure that is to see if there is an active community for your software, are the developers updating things? Are people passionate about it?

The list 2015

This is a small list of the software I use almost every day for development and other tasks. I’ve excluded operating systems and tools that I only use occasionally. I’ve also excluded _most_ software that comes in the form of commands like ls, tail, ssh those are awesome and critical pieces of software however then this list would become really long. Finally I’ve excluded websites like gmail, github and bitbucket, this is just a list of software you would install on your desktop. Anyways that’s enough disclaimers.

So here is my list of software I use every day and what gaps they fill.

1) IntelliJ IDEA (An IDE)

In my opinion IntelliJ is the best IDE out there. With IntelliJ you get what you pay for. It’s expensive, especially when compared to Eclipse but for me the price is worth it. I used Eclipse for many years and it’s a fine IDE I just think IntelliJ is better. Also for the record, I moved to IntelliJ _before_ Google moved their recommended android developer platform from Eclipse to IntelliJ 🙂

2) Atom.io (A text editor)

I recently started using Atom as my default go to text editor and I love it! It comes with a bunch of plugins, as expected, and you can write your own. It recently hit 1.0 I would suggest you try it out. I still sometimes use vi for some in terminal editing but the majority of my text editing happens in Atom these days. Also even if you don’t give Atom a shot you need to checkout this 1.0 launch video it’s a gas.

3) Postman (Lightweight RESTful service tester)

If you work with RESTful services you need software like postman. It can save you heaps of time. It relies on Google Chrome being installed. I have recently started looking for a lightweight replacement that doesn’t require Chrome. I might just write one.

4) Hearthstone (A online card game)

It’s a game, I enjoy playing it and load it up at least once a day to do the daily quests. I play other games too but this one I keep going back to when I finish the others.

5) GIT (A source code management system)

I used GIT to version most of my things (it does great versioning on all text files), the drafts to these posts are all written in Atom and versioned in GIT. You don’t even need to push to a remote repository if you don’t feel like it.

6) iTunes (A music player)

My go to music player, it’s a bit heavy on the RAM but it also downloads and manages my podcasts. I tried some lightweight music players in the past but they didn’t impress.
7) VLC

For all my video watching needs. It’s fast, supports keyboard shortcuts, plays all video formats. Delivers everything I need in a solid package.

 

You would have noticed that I haven’t really included a browser in my list, a browser probably the most used piece of software that I have and a couple of months ago I would have included Chrome in this list, however while Chrome is still probably the best browser out there I’ve had issues with it over the past few months and don’t really feel comfortable recommending it. I have started looking for alternatives.

Until next time

-R

Sistine Chapel
Ultimate creators rush Sistine Chapel

I originally planned this post to be about the story and ideas behind That Pomo (which is a simple android app I developed) however, that’s a pretty boring story in itself. One day I was using a Pomodoro app developed by someone else when I noticed that they were serving adverts in the application. For some reason, I can’t really remember why, that annoyed me and I told myself that I could do something like this in about three hours. It took me a bit longer (about twenty hours), a lot of this time was spent learning how to develop and release android apps but I managed to do it.

The creators rush

I started wondering why would I spend twenty hours re-creating something that already existed. There are some really cool Pomodoro apps out there, some that are way better than That Pomo 1.0. It’s the rush that I get when creating something new still after all these years it’s still one of the best feelings in the world. However as the years have gone by the rush moves more from the creating to the finishing of the task.

This rush is also one of the reasons I write. I also write to learn things and to improve my communication skills but the main reason I write is chasing the creators rush. The creators rush is a truly amazing experience. One that I chase by writing (words and code). As humans we create things all the time. Our brains are wired to reward us when we create something, the more useful the thing the higher the reward.

Doing things on your own free time should be a pleasure and not a chore

When you work on something on your own time make sure it’s something you enjoy. Often we create things society expects us to create. Developers are expected to create code in their spare time, with engineers it might be bridges(?). When you are creating things for the pleasure of creating make sure that you are creating things that bring you joy.

Don’t put pressure on yourself to create something other people will care about. In the real world we don’t often have a choice, if we want or need money, we have to create things that other people will need and will be willing to pay money for. Sometimes your pleasure might be things other people find useful and will be willing to pay for. If that’s the case then great for you, you have found a beautiful sweet spot. Find a way to leverage that and get paid doing things you love. Sometimes it won’t be. That’s okay too. The act of creating itself is something that can be fruitful and full of lesson that you can bring across to your money generating activities too.

Create things you would use or enjoy

Even if you are the only person using or getting joy out of whatever you created. It’s not wasted effort. I use the Pomodoro technique a lot and I also wondered how many Pomos I do in specific activities. So those were the two things I wanted to be able to do. Were there other Pomodoro apps out there that did these things, sure. Could I have used them happily? Yes, in fact until recently I did. Do I regret spending twenty hours of my life writing That Pomo? Absolutely not. Even if nobody else uses the app, I got a lot of value writing it and each time I fire it up I get a surge of pride.

I have some other ideas that I will be able to implement a lot quicker because of the time I spent learning things while releasing my first app. One day when I get a million dollar idea I am one step closer to being able to implement it. Also I had a great time thinking about and creating it.

Until next time, may you create what you feel like

-R

That Pomo Icon
That Pomo, my first Android app.

This week I released my first app on the Android store you can get it here:

https://play.google.com/store/apps/details?id=com.thatcodecorner.pomodoro&hl=en

The app is based on the Pomodoro technique which I use often to help me get started on something I feel that I’m procrastinating on.

I set up a Trello board for the app that I used to track things that kept coming into my head as I developed and when it came time to decide on what I should cut out of the first release.

https://trello.com/b/7CUdQDMD/android-pomodoro

I am busy writing a proper blog post on the development process of the app and I hope to have it done by next weekend. I am going to cover things like how important it is to finish things when you want to learn. How to decide what goes in the first release and what doesn’t. What I learnt about myself in the process of developing the app.

Overall it was a really awesome experience, even though it only took me about fifteen hours (most of that was learning the APIs) they were well spent.

Until next time, may you find the joy of creating something.

-R