Sunday, December 13, 2015

Done log Android app

I have just published (pending review) my second Android app to the google play store. It's called Done Log (code on github). The purpose of the app is to allow a user to enter text log entries, and then be able to review past logs.

It's the initial release, so development is still in progress, but I think it's a somewhat useful tool already - which is why I published it.

It didn't take me too long to build the app, probably just a couple days total programming time (spread out over a couple weeks).

I hope that I can find some time to add some major features in the future. These include all the major buzzwords, like syncing data to some cloud storage, searching with autocomplete, and visualizing with dynamically created charts. It's part of my larger goal of being able to recall a lot more information about myself on demand.

But that's for the future, for now, version 0.1.2 is released (pending Google play review).

Saturday, December 5, 2015

Cutting Glass

A while back, we bought a light fixture from an outlet store. It was missing a bunch of glass pieces, which meant I could buy it for a discount, and that I had a DIY weekend project on my hands.

I ordered a whole bunch of pieces that were close to the sizes I needed from frame destination. From these starting pieces, I planned to cut the glass to size.

I had zero experience cutting glass before, so it was a bit scary. I was afraid that I might cut myself, create a huge mess and end up with cracked useless pieces of glass. I watched a bunch of videos on youtube, like this one, then I bought this cheap glass cutter, and just started scoring and cutting. I didn't need to be perfect, thanks to me ordering some extra glass and because the edges of the glass are hidden in the final product. In the end, after about a day of work, the project was done.

So, how does cutting glass compare to my usual coding weekend projects? They're awfully similar. Both require you to take some time and research about tools and best practices. Both are painful to do, but rewarding when you see improvements and progress. So, I approached this glass cutting project the same way I do coding (little by little). I started with some easier cuts and marvelled at my success or reflected on my errors; then I went at it again and again until I was done.

I love being a programmer, software engineeer, coder. I think it helps me whenever I do anything. And whenever I spend time working on something else, I find myself using the lessons I learned while coding. Hopefully I learned something while I was cutting glass today that helps me become a better coder.

For those interested in glass cutting, here are some of my personal notes:

  • I didn't use any oil. This was a one-off project so I didn't care too much about maintaining my $3 glass cutter.

  • I found a long hard cover book as a good tool for helping cut glass. I first used it as a straight edge to make nice long scores. Then, I used the book to hold the glass while I was cracking the glass. The book helped me apply even pressure while protecting my hands.

Wednesday, December 2, 2015

Log Me

I love logs. The other day, a colleague asked me about a conversation we had several months ago. The conversation was with another colleague who had since left our team.

I could barely remember the project, so I didn't really remember what we had discussed back then.

Thankfully, I'm pretty diligent about keeping notes and logs of my activities at work. A quick grep search brought me to the relevant notes and I was able to dig out what we spoke about. Also, re-reading the notes helped me remember a bit more about what we were thinking at the time.

Our brains have amazing recall, but a little external reminder can help our brains perform even better.

I've been pretty good at taking notes at work, but I've got to get better at taking notes in my non-work life. With our ubiquitous set of technological tools, it seems possible for me to log everything about myself and to essentialy not forget anything.

Tuesday, December 1, 2015

Schooled

Learning is a process for me.

When I initially hear of a new concept, my reaction could be any of the following: surprise, awe, doubt, indifference, etc ... Regardless of the initial response, I typically don't have a real firm grasp of the concept just yet (even if I think I do). If I try to use the concept, it would be mostly hand-wavy, simplistic or clumsy.

That's where most new concepts mostly end for me. I am vaguely familiar but I don't really have a good grasp of it.

But sometimes, the concept is prevalent and it comes back to me. So I read about it or hear about it again, either actively or passively. I start to see some interesting subtlelties that I didn't initally realize. I come to appreciate the concept more and more. Because I have a better idea about it, I become comfortable and use it regularly. And befoe I know it, I begin telling others why I think this concept is interesting and useful.

In the world of programming, there are lots of concepts. Some of them have taken me a long while to learn. Here are a couple examples of things that have taken me a while to learn: Object Oriented Programming, Agile developement, and Unit Testing. For each of these, I thought I understood the concept pretty early on. But as I look back, I can see that I had a lot to learn about each and that I've slowly become better at each of them.

For me, learning is a process. It requires listening and reading, doing and teaching. It needs repeated attempts spaced out over time. Oddly, it often requires me to do other things for a while, so that I can see the concept in different lights.

So, learning can take some time. Lucky for me, I like learning. It's one of the best things about being a programmer. I'm always being schooled.