Gert Lombard's Blog     About     Archive     Feed
My passion is code quality, automated testing, software craftsmanship.

Android Testing

Try this: go to GitHub. Search for any open-source Android app you can think of. OK, now take a look at the app’s unit tests. Yes, the unit tests.

No unit tests? (Other than the one generated by Android Studio…)

So why don’t people unit test Android applications?

I’ll guess it’s because of any combination of these factors:

  1. The Android platform itself doesn’t really lend itself well to unit testing. For example, your class that represents a screen, extends the Activity class, and you can’t just construct an activity yourself in a unit test, you need to write your test as an Android Instrumentation Test which requires an emulator or a physical device to run the test.
  2. Running Android tests (or even Lint checks or anything with Gradle) is super slow! Really really super slow if you’re coming from a .NET or Web background.
  3. Pure unit test support (i.e. JVM / JUnit4 tests without the need for an emulator or device) was only released in Feb 2015. Several years since people started writing Android apps and tests. Unit testing support is fairly new and it will take a while for people to adopt this new mindset.

Markdown blogging on an iPad

I just installed the Editorial app on my new iPad and using a bluetooth keyboard for typing. Yay! Blogging is possible on an iPad!

Editorial is a markdown editor for iPad ($6.99). On Windows 8, I used MarkdownPad 2 Pro ($14.99) for markdown preview. On Mac OS X, I use SublimeText along with Marked 2 ($9.99) to preview the Markdown text occasionally.

If you’re a developer and you’re not using Markdown everywhere yet, you don’t know what you’re missing! :-)

The Editorial app easily syncs with Dropbox, so I should be able to set up my GitHub Pages git repository (or at least a symlink to my drafts folder) in the appropriate Dropbox directory, and then I should have a pretty good workflow for writing blogpost drafts on the iPad. Then I can preview it on the Mac when I’m ready to publish and push to the GitHub repo to publish my blog post.

Drawing tools for developers

If you’re like me, then you hate doing documentation. I’d much rather draw a block diagram on a whiteboard and a photo of it. But sometimes you need to create a more official looking diagram, and then you probably want a tool that helps you get the job done as quickly as possible, without having to learn how to use Visio or some complex graphics / drawing application.

seqdiag

seqdiag allows you to generate UML sequence diagrams using a simple text file format.

draw.io

draw.io is a very nice online drawing tool that allows you to download your drawings, including UML diagrams etc, as .png or lots of other file formats.

graphviz

GraphViz with its simple .dot file syntax makes it very easy to create directed graphs. It’s easy to write a script that reads some input and generates the .dot file, and then you use graphviz to generate a .png or .pdf file. For example, I’ve used it to generate a graph to visualize the dependencies between projects in a Visual Studio C++ solution etc.

Visual Studio

Recent versions of Visual Studio support generating a .dgml graph to show project dependencies.

But you can also write your own script (PowerShell?) to generate a .dgml file from any hierarchical or graph source and view the .dgml file in Visual Studio.

And…

There are so many other cool free graphics tools I’ve used over the years, I can’t even remember half of them. Also check out Gimp and Inkscape…

Jekyll and Poole

OK let’s do this. After talking about this for ages, it’s time to switch my blog to GitHub Pages. After a quick search I found this nice blogpost that describes how to set up GitHub Pages using poole.

I’ve tried a few different options for running my blog in the past. Years ago I started with WordPress, then for a short while I tried hosting Orchard CMS myself, then switched to Blogger. But I’ve never felt inspired by their workflows, and those blog sites just feel too heavy-weight for me.

I’m a lazy developer, and the only way I’m going to bother writing blogs, is if I can do it with fairly little friction. I don’t want to log into a website or bother with special blogging software. I’ve been using Markdown and git for writing my personal notes for the last 2 years or so, so I figured it would be a good idea to use Markdown and git for my blog as well.

Some things I want out of the blogging platform:

  • write my blog posts using Markdown – no hassles with CSS and syntax highlighters etc
  • ability to keep my blog posts, especially drafts, offline so I can work on it whenever a new thought pops in my mind
  • simple workflow for working on drafts until I’m ready to publish a post
  • not being tied to a specific blogging platform
  • being able to easily switch themes or add custom pages etc

I’m just starting with Jekyll and GitHub Pages now, but so far it seems like this might just work for me.

FYI, my previous blog is lombard.me – I’m still deciding if it’s worth migrating the posts from Blogger to Jekyll.

Moving my blog from lombard.me

Hi There! I’m Gert Lombard, a computer nerd from South Africa now living in the San Francisco Bay Area.

I’ve had several “blogs” over the years since 1998. I’ve tried using Blogger, WordPress, Orchard CMS, a self-hosted website on RedHat linux with static html files (running from my living room), and before that Xoom and Tripod in the early days. I hosted Radon BBS (with a good friend of mine) way before the Internet even existed commercially in South Africa! :-)

Ever since the BBS days in the early 90’s, I’ve liked the idea of having an online presence. The thing I just haven’t figured out yet, is what exactly the point of this presence is! I think it’s mostly to entertain myself and to collect a few random ideas to refer to later myself. If someone happens to come across a page here and finds it useful, that’s awesome!

This here site is my current web presence. Thank you for looking! Let me know if you have feedback, questions or ideas for me.