Thomas L. McDonald modeled his How I Pray series after Lifehacker’s How I Work series. He decided to publish his own entry on “How I Work” and to invite others to do the same. Well any opportunity to geek out and talk about myself geeking out – well how could I resist?
Location Ask the NSA for specifics, generally Jacksonville, Fl.
Current Gig Application Developer
One word that best describes how you work: Edison (caveat below)
Current mobile device: iPhone 6 Plus, iPad Air 2
Current computer: Since I do work at work and from home:
- Home: 5K 27″ Retina iMac with a 500GB SSD and 1TB Fusion drive and 24GB of memory. Along with two external monitors: 27“ Apple Thunderbolt Display and a 24” HP display.
- Work: 2012 Mac Pro with 500GB and 256GB SSDs and 24GB of memory. Along with one Apple Thunderbolt Display and two Dell 24″ monitors.
What apps/software/tools can’t you live without? Why?
Visual Studio, Sublime Text 3, Dropbox, Markdown, Marked, Pinboard.io.
Microsoft’s Visual Studio Much of my work involves writing software used in courseware development. Since the company I work for mostly uses Windows along with the military, then Visual Studio is really the premiere development IDE available. C# is mostly my language of choice for Windows desktop software. I’ve used Visual Studio since it came out and I have come to really enjoy the power it has developed over the years, especially when used with Resharper. Considering that I have worked with it day in and day out for years on end I am surprised that I still enjoy coding with it. Although the development of C# during the years is part of that. On the Mac side I have also done some OSX and iOS development which is why even as a Windows developer we now have Macs at work. Apple IDE Xcode is quite different from Visual Studio in many ways along with a different emphasis regarding development. Xcode has gotten better, but Visual Studio is superior in many ways. Although Xcode new playground feature is pretty awesome.
Sublime Text 3 Programmers are well known for getting into flame wars over text editors. I have used dozens of text editors over the years with various text editing love affairs that eventually end when I move on. I’ve only been using Sublime Text for a year, but there are several reasons it has become my favorite.
- The fact that it works on Mac and Windows is certainly key to me since I run a Windows virtual machine on my Mac and an constantly going between the two OSs.
- Extensibility on Sublime Text is amazing. Strangely it was a third party that provided a package manager that allows all the power of Sublime Text. These packages make a good editor great in what you can do quite quickly and text selection capabilities are so good it is quite annoying using any editor with them.
- As a keyboard jockey I like to be able to do tons of editing without moving to my Apple Trackpad to perform them. Sublime Text lets you set your keyboard bindings and pretty much all user settings. The fact that I can use VIM keyboard binding also is a plus.
- Searching across projects is easy along with fuzzy matching. Again with a quick keyboard shortcut I can jump through a file or search through multiple files quickly. Sublime Text_ is not free and recently GitHub has developed there own open source multi-platform text editor Atom which is very much like Sublime Text including almost exactly the same features and keyboard shortcuts.
Dropbox I’ve used Dropbox since it was in beta and you needed an invitation. Since I do work from home and my work location having my files instantly synced wherever I go is perfect. The fact that so many iOS apps also support Dropbox means that I can also access those same files from my movile device. Dropbox has been integrated into almost all of my workflows. While there are similar services like Google Drive and One Drive, Dropbox is better integrated in most mobile apps.
Markdown is a plain text formatting syntax that has become increasingly popular for more than just geeks. I use it for wiki documentations of applications I write, notes, history, and of course blog posts. I mostly use it with Sublime Text, but also with Drafts and other iOS editing apps. Since it is plain text it is not limited or proprietary like other document formats. I wrote a quick introduction to the power of Markdown here. To give some idea about how good the Markdown syntax is I give this post as an example. It is filled with formatting and links, yet I can easily read the plain text file almost as if it was already formatted.
Marked Since I use Markdown so much it is nice to be able to see those files as formatted in HTML. Marked 2 by Brett Terpstra is phenomenal in displaying Markdown as HTML along with allowing direct export to HTML or PDF. I use this with Sublime Text where I can see the currently edited document with a keyboard shortcut. This is just a great app which is constantly updated. It’s only downside is that it is Mac only and I have not found anything near as feature-rich on Windows. Although when using Sublime Text on Windows I use the Markdown Preview package to see my current document in a browser window.
Pinboard.io This is a bookmarking service that I use constantly. Whenever I come across a web page with information I want to archive or refer back to I add it to Pinboard.io. This is a service much like the original Delicious. But it is a service I expect will be around for a while since it is not free. The one time cost is rather minimal, I think I paid a bit less than $10. The cost is to support and to keep the service running. When reading through all my RSS feeds or doing research for work anything useful I find I just tag and add it to Pinboard.io and then I can easily find it later. For an annual fee they will also archive all the pages you tag so even if the page you added goes away later you will still have it. What I do instead for information I want to make sure I keep, I use Heck Yes Markdown to convert the page from HTML to Markdown and then save it in my notes or archive folder. Now that iOS 8 has shared extensions I can send links to Pinboard.io from pretty much any app.
Honorable mentions go to Drafts 4 on iOS which is a clearing house for ideas and notes. iOS 8 has given Drafts even more power since I can quickly tap in notes from the notification screen and add chunks of texts to my monthly archive on Dropbox. Pushbullet has also become another go to app. This service which works in a browser, iOS, Android, and OSX allows you to send information to other devices. So I can easily send text between my phone, work and home computers, or to all my devices. This service keeps getting better.
Oh and one more facet of my workflow that is intrinsic to the way I work is text expansion and keyboard shortcuts. With text expansion I can just type a couple of letters and then have words, phrases, etc, inserted into my text . Great for coding, writing, and even filling out forms. I use TextExpander for this and this is a great application. Since I use a ton of keyboard shortcuts, keyboard remapping is important. I have remapped my Caps Lock key to be able to use it in combination with other keys to trigger actions. On the Mac I do this with free software with the instructions listed here. On Windows I use the freeware program AutoHotkey.
What’s your workspace setup like?
What’s your best time-saving shortcut/life hack?
The problem with most note systems is tagging and finding what you have previously jotted down. My system isn’t perfect, but it works for me.
- I mostly keep all my notes in one folder with few sub-folders on Dropbox.
- My tagging is in the filename. For example for work I might have files like “Language.C#.Linq.md” and “Language.JQuery.md”. So this gives me a general category for the first word then with further topic differentiation separated by periods. So instead of having the organization in folders, the organization is inherit in the filename in one main folder.
- Finding notes is extremely fast using the following methods.
- Using Alfred on OSX with a keyboard shortcut I can instantly search for terms in my filename and select from a list of matching files to then load up into Sublime Text. This could be also done with OSX built-in Spotlight. Window’s users could do the same with something like Launchy.
- When I have my notes project loaded into Sublime Text I get even quicker file name and file content searches.
- Since my notes are plain text files on Dropbox it means my notes are easily accessed via any mobile device. With the iOS app Trunk Notes I even have a wiki on my iPad which uses my Dropbox notes in one folder.
What’s your favorite to-do list manager?
I have seen and used a lot of them, but mostly I just don’t use one. At work the developers as a team use Agile software development with task organization divided into sprints. So I guess that is my to-do management for work. At home I am much more laissez-faire where mostly my to-do’s are what book I am going to read next or blog ideas. For both of those and honey-do tasks I use my note system already mentioned.
Besides your phone and computer, what gadget can’t you live without and why?
Well like the wording in the other question I take issue about the whole idea of not being able to live without something. My years in the Navy taught me there are lots of things I can live without and annual Lenten periods taught me that there were another whole group of things I can live without. Yes I am a geek and I enjoy working with technology very much and love that I have a job that I very much enjoy doing, but I could live without all of it (if forced to).
Still I have loved music my whole life and have continued to find new artists I enjoy. So the fact that there are now subscription music services is pretty awesome. When I use to go to sea I would take hundreds of cassettes with me. It was a major pain to cart them all on and off ship and so now I greatly appreciate both music stored on disc space and streaming. So much more convenient.
Along with that Netflix is another great service. I hardly watch any live TV at all and just binge watch series along with receiving Blu-Ray discs. Totally changed the way I consume video.
As a final note, ebooks have also transformed the way I read. It has become my preferred way to read since now I am never without a book as long as I got my phone in my pocket and besides I can carry around my whole library. I currently have 1307 book stored in a Calibre library on Dropbox and out of that number there are about five I haven’t read yet. Mostly I use the Kindle app on my iPad along with Marvin. Although I am starting to use the Logos iPad app more and more for both scripture reading and my growing Logos library. In connection with this I also use Voice Dream Reader on iOS. This is a Text-To-Speech app with phenomenal voices and a slew of capabilities. I use it mostly to play ePub books imported from Dropbox during my daily commute. Gives you an instant audiobook with quality voices. I also use it to play back articles I stored in Pocket.
What everyday thing are you better at than everyone else? What’s your secret?
In one of the first questions it asked me to use one word to describe how I work and that was Edison. I chose this word not through prideful bravado or thinking I am any kind of genius, but because of my stick-to-it-ness. Supposedly Edison just kept trying different filaments until one worked. How true that is I don’t know. But I do know that in coding and other situations I don’t easily give up regarding a frustrating problem not easily solved and keep trying different alternatives until I find one that works. In the past this allowed me to do some rather surprising things with software development not envisioned by the authors of the tools.
As for doing this better than everybody else, well I wouldn’t want to put any money down on that proposition.
What do you listen to while you work?
Well sometimes my boss. But seriously mostly I listen to podcasts and music. During most coding tasks I can listen to podcasts while working. If I am learning something new or architecting software design than I just listen to music.
What are you currently reading?
This post has gone on long enough. But oh well. As a bibliophile I spend lots of time reading. You can see this from my Goodreads account. On my reading list of books I own and will read within the next week or so I have.
- Furies of Calderon – Jim Butcher
- Son – Lois Lowry
- Scripture – Stephen J. Binz
- Finding True Happiness – Fr. Robert Spitzer, S.J.
- The League of Frightened Men – Rex Stout
- The House of Silk – Anthony Horowitz, the first Sherlock Holmes authorized by the Arthur Conan Doyle Estate
Then of course there is the Liturgy of the Hours and other devotional reading I have set out for the year.
What has changed over the years since you started and what do you do differently?
I first became interested in programming in High School. At the time the only real personal computer was the Altair 8800 which was a kit you put together and it only had switches for octal input. I use to go the the Byte Shop with my High School electronics teacher to learn on this machine. At the time I also picked up my first book on the Basic computer language. After that there was dabbling with programming on a Commodore 64, then Commodore Amiga, and then the IBM PC and the subsequent PC clones. While still in the Navy I started to get much more seriously into programming and for the last half of my Navy career I ended up being allowed to spend a lot of time writing programs for use.
So what has changed over the years? Well pretty much everything. Still I won’t get into older geek reminiscences where I say “I remember when <insert any hardware> cost this much!” Still maybe the biggest change has been a move from the desktop to the web and then to mobile devices. There are strange congruences here since much of mobile application development is just like desktop development. Web technologies which have become very powerful, but they still don’t fully match up to applications developed for specific processors. Still for many developers this means that, as in my case, you have to be able to do more traditional application development along with development on the web side.