Thursday, September 24, 2015

WA State Toll Tracker, for Android

I'm happy to announce the release of another Android application, WA State Toll Tracker!

Go install it now at the Google Play Store:


View the official web page:
http://mabonservices.com/tolls

Questions about the project

Where did this idea come from?
I came up with the idea for this app while crossing the SR 520 bridge, which is a toll road. All tolling is handled by an automated system that is linked to an online account you setup with the State of Washington. You can read more about the program at http://mygoodtogo.com . You sign up for an account, and provide a credit card to get started. When you cross the bridge (or another tolled area) their system reads your pass and deducts the toll from your account.

I had read some stories about people who had racked up large fines for failing to notice they had outstanding tolls and fees on their accounts. I decided to double-check my account, but couldn't remember my username or password. It would be ok if it happened once, but every time I wanted to check my account I would have to go through the process of forgetting my username or password and having to reset my account.

So I built this app. It allows me to quickly view my tolling activity without having to reset my password. Now when I want to quickly review my account, I can just open the app and refresh for my most recent activity.

It has also saved us money. We had a car that had problems with a sticker pass. The system would recognize the pass but someone at Good To Go had to visually confirm the toll via a photo. It's called a photo enforcement fee, and you get charged an additional 25 cents for each time it occurs. It happened so frequently that it became cost effective to get a new pass.

How long did it take to build?
I think it was about a year. It was done in my spare time, and I allowed some other interests to get in the way if needed, like painting my fridge to look like a TARDIS.

What's your status?
I'm a full-time contractor, so I was looking for something to do on the side for fun. I don't do any advertising for my apps, and I feel if I was ever going to look to do this more seriously it would be beneficial for me to keep publishing apps.

What got you into Android development?
Honestly, I couldn't afford a computer from Apple. I did some robotics development a few years ago that I very much liked. The same bug that might render a web page incorrectly might sent your robot into a ditch. Android development reminded me of that past, so I wanted to explore it further.

What challenges did you face with building the app?

  • My other apps were Activity-based apps, and I wanted to play with fragments. It was a bit of pain, because some things I knew, but not enough to do everything I wanted to do. So I was making jagged progress - some things came quickly, others moved forward like a snail.
  • InApp billing was a little bit of a pain. For starters, InApp billing needs more real-world examples, and the ability to debug a beta APK with InApp billing enabled
  • The technique to implement a Navigation Drawer changed half way through my development of the app. Honestly I'm glad I put the time in to change it because the new way is better.
  • It seems petty, but would it kill Android Studio to allow you to set a breakpoint on an empty line? I mean that I want it to stop before the next executable line. Android Studio will let you set the breakpoint on an empty line, but completely ignores it come debug time.

What's next?
I have a few ideas rolling around in my head, and some friends with ideas of their own. My biggest fear is that since I'm doing this myself that I'm missing out on the collaborative learning I would get if I was working with a team.

Tuesday, August 11, 2015

TARDIS Fridge

I made my fridge into a TARDIS! I know that you can buy kits to do this, but I decided to try to make one. I used packing paper, some paint, and lots of measuring.

Colors:
  • Blue: Empire Fleet Blue, Flat (from Lowe's)
  • Black: generic poster paint, Flat (I'd suggest not using poster paint - it's water soluble
  • White: semigloss White

Fonts:
  • Gill Sans MT (POLICE PUBLIC CALL BOX)
  • Gill Sans MT Condensed (POLICE PUBLIC CALL BOX (on side))
  • Times New Roman (POLICE TELEPHONE / FREE / FORE USE OF / PUBLIC)
  • Gill Sans MT (ADVICE & ASSISTANCE / OBTAINABLE IMMEDIATELY / OFFICER & CARS / RESPOND TO ALL CALLS)
  • Calibri (PULL TO OPEN)


The finished product!
I had lots of packing paper from past Amazon orders. I rolled them out on the floor and painted them with a small roller. I found a couple suggestions for colors, and took the easiest one. Lowe's "Empire Fleet Blue" in flat.
Hanging the first paper on the fridge. I made some guides to help make the different panels. I had a couple reference models in my house which I used to determine rough dimensions.
A closeup of the window guide.
I used magnets to hold each panel in place, then taped the edges with black tape. I originally wanted to take the door handles off, but I couldn't figure it out and decided against it.
I used the guides to trace an outline of each section.
My neighbor had a laser level, which I decided to take advantage of when trying to line up the panels on both sides.
After all the outlines were traced, I cut out the windows on my guide to help make the individual windows.
First windows painted! I decided I liked the translucent look and did not add any extra coats.
I figured out the font for the top (Gill Sans MT), and then printed out the letters on my printer. Once I had the sizing, I used an x-acto knife to make a stencil and traced them in the right spot for painting.
It took a while - it turned out I needed 2 sets of stencils, one for each side. Since it wasn't as wide, I had to use "Gill Sans MT Condensed" for the side.
By the time I got to the sign, I just researched the fonts and printed them on paper that I cut to size. I used spray glue to attach it. The fonts I used were: Times New Roman, Gill Sans MT, and Calibri.
I decided to add the St John's Ambulance logo as well. I found a bunch of examples online.
The finished product! It took much longer than I was expecting, but it was something artistic to do when I needed a distraction. Maybe we'll find more room in there for milk now?
The base blue paint is rather sturdy. Unfortunately I used some poster paint for the black, so it is not exactly water safe. I used a semi-gloss white for the letters/windows, which gives it an ever-so-slight glowing effect next to all the flat colors.
K9 approves!

Tuesday, July 28, 2015

TSQLUnit_Job

TSQLUnit_Job
Allows TSQLUnit to run unit tests as a database job (SQL Agent)

I finally released code publicly (yikes!). I doubt anyone will ever see it, let alone use it. However, it still frightens me beyond belief!

Go check it out now on github:
https://github.com/jjerome00/TSQLUnit_Job

It's essentially a wrapper for TSQLUnit that allows unit tests to be run as a database job (SQL Agent), with the results sent as an email (with html formatting). Read more about it on Github.

I wrote it years ago for a situation where we needed to look for common error conditions in a legacy system. We didn't have the resources to fix everything, so I would write a test to look for certain situations. The job would notify me if something came up. It was very useful for planning - if an issue only occurred once every six months, we might apply a different fix instead of re-writing the entire module.

It requires TSQLUnit, and SQL Server (duh).

TSQLUnit_Job

Thursday, July 2, 2015

Simpsonized Family Portraits

I somehow developed a hobby of creating Simpsons pictures for my family.

I have this ongoing hobby of creating Simpsons pictures for myself and family. It started out as a joke, and it just continued from there. I just created a new one the other day, and I thought I should try to keep some sort of a record of some of them.

This pre-dates most social media sites. In fact, the original reason was to make chat icons for my IM client (Pidgin). I suppose as web technology improved and the avatars got bigger, so did the complexity of my alterations. After each one I think it will be the last, only to find myself thinking of new ideas a short time later.

All of these were made using GIMP (for Windows).

Some past versions:



Friday, February 27, 2015

Growing up as a clueless goofy Catholic kid

I used to write a lot when I was younger. I’ve had multiple diaries, journals, and so forth through the years. Some of the more memorable stories I took the time to write down. Anyway, I have a bunch of little tidbits I wrote this week but nothing really stuck out. That’s when it occurred to me that I should post one of these past stories that I took the time to write down. This story is from around 1995, and I believe I finally gathered all of it together around 2000.

This story is about trying to act grown up as a clueless goofy Catholic kid.

Everything in this story is completely true, right down to the announcement made in church.

It all started a few years ago when I went with my sister to visit my parents for Christmas. My mother makes a big deal about her children going to church on Christmas eve. Instead of following the usual Catholic routine (try to get out of it, she gives us a guilt trip, we give in) we decided to just agree to go and make her happy.

We get spiffed up for the service and head down to the church. As usual every other Christian family that usually doesn't go to church decides to show up for the service too. This year is a bit different, instead of our usual spot along the wall, we split up and actually get seats. Its a minor miracle.

Anyway, that's not the point of the story. Communion comes up and we all get in line to go and receive the bread/body/"whatever they call that white wafer thing". On our way up, I started to think back to my first communion.

I actually skipped my first communion, my mother took me to church the night before and I asked why I had to wait a day - I didn't see the need to wait a day, and there was no way I was going to church 2 days in a row. She agreed and sent me up there, only she forgot to tell me what to say when I actually got the thing in my hands. So when the priest actually put the wafer in my hands, I didn't know what to say. He whispered what I thought was "Say uhumm", to which I returned a confused look. He kept on repeating this strange utterance until I figured it out. It only took about 30 seconds to get it through to me, but that's a long time to hold up a line. My mother was so embarrassed, but she laughed it off and I got a lot of ribbing over it over the next few years.

So back to Christmas. I'm in line, thinking of this story. I actually start to smile and think about how far I have come in life. I'm in college, have a job, survived many a setback, etc. I'm feeling pretty good knowing that I can now do this communion thing so easily. Well, I start to get a little nervous, and my hands started to sweat a bit. I'm not worrying, but I want this to go perfectly because I know my parents are behind me a few rows back watching my sister and I make our way in the line.

I get up to the Priest, he says his words, to which I reply "Amen!". He gives me the wafer and I go to put it in my mouth when...

Well, I guess my hands were a little moist, and the wafer stuck to my finger a bit and then fell off of it. I could see it flip end over end in the air as it made its way to the floor. I tried to grab it in mid air, but missed. The wafer hit the floor.

It would have been bad enough that all of this happened, but no, it gets worse. The wafer lands on its side, and starts rolling like a quarter. It rolls back towards the line and hits my sisters foot. Meanwhile I have been crawling on the floor chasing after it. I pick it up off the floor next to my sisters shoe, and hold it up so that the Priest can see that I have regained control of the situation. He chooses not to look at me. I turn around and look at my sister, who is bright red. She pushes me off to the side and tells me to sit down. I put the wafer in my mouth, do the cross thingy, look back and see my father holding his face in his hands. He is shaking his head as if he was saying "Where did we go wrong..."

I sat down next to my sister who won't look at me, my parents walk by and my mother can barely get back to her seat because she is laughing so hard. She is being helped by my father, who is just shaking his head.

My parents told me later that I have never supplied them with a dull moment ever since I was born, and this incident was no different. It also turns out that its a huge deal to the church if you drop one of those things. A long time ago they would have stopped the service, and had to go through a long procedure to bless the spot where it dropped and so forth. Luckily for me nothing was mentioned.

...Well, not until the next year. When they announced that parents please look after their children and be careful not to drop any wafers on the ground.

Monday, February 16, 2015

Disable the beep on your Mr Coffee

Silencing your Mr Coffee FTX21 (or FTX25) for good

After 9 years, I finally had enough of the loud beeping coming from my Mr Coffee. Like most things, it started out small and built up until I couldn't take it anymore. I often wish these things like this had an option for a mute button, but it’s not the case.

All my research just turned up others complaining about the same problem for their unit, which was comforting but didn’t solve the problem. The following link got me started on the solution I came up with:
Disable the obnoxious beeping on a Mr. Coffee, Model JWX27

I thought it might be a clever idea to just find the speaker and disable it. The coffee maker could continue going about its business and never make a noise again. I had tried taking the coffee maker apart a few times. The only success that I’ve had is that I got it back together (and working) each time. I discovered that the electronic components (circuit board) are sealed inside the machine. That’s probably a good idea considering how much moisture it deals with on a daily basis.

However, I didn’t give up, and this last time proved to be the charm. I brewed a few test-cups and listened to determine the location of the speaker inside the unit. My wife walked into the kitchen and saw me with my ear against the coffee maker, and didn’t even flinch. On our wedding day I told her that the only thing I could promise is that I'd make her laugh. Every time she catches me in a situation like this she just says "I see you are keeping your promise alive and well".

After I determined the spot, I carefully drilled a pencil-width hole into that spot. To my luck I discovered there was some space between the outer wall and the circuit board. This allowed me to drill a couple more holes (3 total) to get a better look. I was considering using a dremel, but I wanted to keep my holes as small as possible to make it easier to fix when I was finished.

I discovered a circular disc directly below where I drilled the holes - this was the speaker! While it was beeping, I poked it with a screwdriver and the sound fluctuated with my prodding. To finish the job, I brewed another test pot and while it was beeping I carefully pried the disc away from the circuit board until the machine fell silent.

No more beeping! I feel both ecstatic and lame at the same time!

My only hope is that this inspires more people to take ownership of their electronics. Also, keep in mind that there are plenty of good coffee machines for sale at your local Goodwill. Good Luck!


So it's come to this, MR Bond.


You can sort-of make out the plastic disc speaker below the surface

Tuesday, January 27, 2015

Relating to Solving Problems Remotely

Solving Problems as a Remote Worker

I've been following Scott Hanselman's blog for a few years now. He writes some interesting and insightful posts, and is a more naturally gifted developer than I'll ever be. I feel I have enough in common with him to relate, and use everything else as inspiration to better myself. Anyway, enough of that.

He wrote a post today about the trials and tribulations of getting started with 3D printing. In particular, I related to a comment he made about how to find solutions to problems. It reminded me so much of how I feel when I have to handle issues when working remotely.

I decided to paraphrase this part of his post here. Keep in mind that I have altered this a bit, but the core thoughts are his. He is also a remote worker, so I have to think that his thoughts are rooted from that perspective. This is why I think I relate so well.

When you work on your own, you inevitably have to search for solutions on you own too. However, when you search for your problem there are one of two things that will happen:

  • You find someone like you with the same problem and they SOLVED IT AND THEY HAVE THE SOLUTION THERE FOR YOU TO USE!
or
  • You find someone like you with the same problem and they NEVER FOUND THE ANSWER AND THIS QUESTION WAS ASKED IN 2009 AND YOU WILL ALWAYS BE ALONE.

The part "AND YOU WILL ALWAYS BE ALONE" just makes me smile, because that's how it feels when you are stuck on a problem and there is no one around to help you get back on track.

Coincidentally my usual MO is to:

  1. Iterate through the problem in more and more detail with the hope that I'll bring something to the surface
  2. Get really frustrated, give up and sleep on it
  3. The next morning*, look at the problem again, find solution right away

(* sometimes it's more than one morning)

In case you missed the link I provided above, here is a link to the original post:
http://www.hanselman.com/blog/TheBasicsOf3DPrintingIn2014FromSomeoneWith16WHOLEHOURSExperience.aspx

Monday, January 26, 2015

Backyard Astronomy

Beginning a backyard astronomy adventure

A couple months ago my wife casually asked if I would start looking into telescopes for our kids. I paused, then asked her to take a day to seriously consider the consequences of what she was asking. After our kids inevitably lost interest, was she prepared for a husband that might not? If we were going to do this I didn’t want a toy store telescope like I had when I was a kid - I wanted to see stuff!

To my surprise, she agreed to it.


After a lot of research, I had dizzying array of new glossary terms and good idea of what they looked like. I could at least explain the pros and cons of the different types to a normal person.

Fortunately for me, I got lucky when one of my scopes showed up on Craigslist. It was listed as a SkyQuest XT4.5, a dobsonian reflector which has a lot of praise beginners. Unfortunately when I went to see it, it was immediately obvious it had been listed wrong. Whereas a 4.5 could arguably fit on an end table, this one took up their entire living room! It was actually a XT6 (the numbers refer to the diameter of the tube, or aperture). I was glad I did my research!

It was a lot more scope than I planned for, but still an excellent scope for the money. My wife had reluctantly approved the 4.5 (she’s more of a refractor girl), so I had to make a Louisiana Purchase kind of decision. I figured I had already warned her - about getting a scope (and also our marriage), so I had some leeway.

The scope itself


(banana for scale)


Pictures!

My first target was the moon. I took these shots with a cell phone. Have you ever tried to take a picture with a camera through one of those viewfinders at popular points of interest? Or through a set of binoculars? Yeah, this is very similar. It was hard to balance the cellphone just right to get a good picture. I’ve since learned that many amateurs will take a video and then capture stills from it. That seems like much better approach.

I later decided that I should make better use of our DSLR. Since it would obviously take better pictures. These turned out better still - you can actually see the stripes in Jupiter! I can only imagine that I’m going to get better the more I get used to the equipment.


Signs that your new hobby might be catching on

None of these pictures have been posted processed yet, which is why they appear like a mirrored image. I'm still working on the post-production potential of this hobby.


The Moon

Jupiter (1)

Jupiter (2)

That looks like Jupiter!

I’ve discovered my laziness in learning all the functions on my DSLR has now hobbled my amateur astrophotography desires. I understand there is an almost endless ceiling for this stuff, but at the moment it seems my setup alone has almost an endless ceiling!