Webpage Alerts in 10 Lines of Code

Wed, Apr 25, 2012

The Problem

Undergrad students have priority registration for upper division classes. Unfortunately for me, Programming Languages was full long before my enrollment appointment. Even worse, the professor informed us that he would be unable to give out any PTEs (special code to enroll in a class that is already at capacity) because of the sheer volume of students interested in enrolling. Usually, attending the lectures and asking is all it takes to get a PTE.

The Solution

The UCLA Registrar publishes enrollment counts in real time. One option was to incessantly check the page. That’s tedious and boring. I’m lazy. I wrote a small script that uses curl to download a given page, grep to search for the word “Open”, and mail to alert me. A little-known fact is all US cell phone carriers have a way to send text messages from an email address. This happened to be beneficial because I get too much email to constantly check my inbox. Text messages to my phone will be seen by me almost instantly. The next step was to add a crontab that calls the alerter script every minute.

The Result

I’m in the class :-)

  • code
  • lazy
  • clever
  • unix
  • github
  • gist

iOS 5.0 Introduces Native Geocoding

Sat, Jan 07, 2012

Last year, March 27, 2011 to be exact, I released DJGeocoder, an open source Objective-C class that allows you to cleanly geocode street addresses in an iOS app. I wrote it back then because Regions needed it, and surprisingly, it wasn’t built into MapKit.

Last night, I was playing around with a re-write, and discovered Apple’s CLGeocoder, introduced in iOS 5. I won’t be updating DJGeocoder. It is still useful if you need to support iOS versions prior to iOS 5. Otherwise, just use the newly introduced native API.

  • development
  • code
  • opensource

e-Greeting Cards is Available

Tue, Dec 20, 2011

e-Greeting Cards 1.1 is available in the app store! I’ve made a promo site for it was well. There, you can find a demo video to see how it works. The content layout adapts to screen sizes. So wether you’re on a desktop, mobile phone, or anything in between, it should look great.

Accepting e-Greeting Cards Beta Testers

Wed, Nov 16, 2011

e-Greeting cards allows you to send personalized electronic greeting cards to the people you care about. It will be released soon. Sign up for the beta if you’re interested in checking it out before it get’s released.

Somehow, I forgot to post this to the blog. I tweeted about it 4 months ago though. I don’t think the readership is particularly high, but I definitely should have posted here.

P.S. I started working on this before Apple announced it’s own Cards app. Since my app was almost done before the announcement, and they send printed cards, I decided not to scrap the project all together. Needless to say, this should be interesting.

Calloway 1.2 is Here

Sat, Jun 18, 2011
calloway screenshot

What’s New:

Download the Calloway extension.

View the code on Github.

How iOS 5 Affects Regions

Mon, Jun 06, 2011

iOS 5 probably just made my app pointless.

I started working on Regions in my free time as soon as iOS 4.0 brought new background location APIs to the table. The app has had a few issues. The most glaring problem was that any iOS device could download it from the app store, even though it is only available for iPhone 4. I’m almost done with finals, so I was planning on doing the following this summer:

  1. Refining the User Interface to make some of the features more obvious
  2. Re-releasing Regions under a new name (the only way to fix the app store availability problem)

I didn’t want to promote my app without completing these two steps.

I decided to check out the WWDC news, and found out that built-in location based reminders would be included in the next major release of iOS. Naturally, I was slightly upset; But not as much as my friends thought I would be. I understand that this sort of thing happens all the time. Regions was not the only app in its category. What it provides is a very useful, so it makes sense that many other people would want to provide the same feature. Why would Apple be any different?

Another example of this is the volume shutter feature in Camera+ that was rejected last year. Yet another example of an idea that is on one hand very clever, but is also bound to be thought of by multiple people.

Today, I finally received a response (under NDA of course) about my bug report. There is some good news to take out of this. The built-in support should be awesome. I’ve always wanted this feature, and now everyone else will get it as well.

Regarding built-in features cannibalizing special apps, there is a small chance that this will increase demand for my app. Marco Arment has a post explaining why that may be the case for Instapaper.

What does this mean for Regions?

It means that I probably won’t be updating it over the summer. I’ll wait and see how the feature turns out when I start using iOS 5. I only have one iPhone 4, which I use as my personal phone, so I don’t install iOS betas on it. If there ends up being an opportunity for Regions to fill a niche, then I will reconsider actively developing it. People that want to have location based reminders before iOS 5 gets released this Fall can download Regions from the app store now.

Calloway 1.1 Is Here

Mon, Mar 14, 2011

If you are not at South By Southwest, this is about the time where you entire twitter timeline reminds you of it. If you don’t to want to see all those #SXSW tweets, then Calloway 1.1 is just for you. Download and install this Safari Extension, and you won’t see any tweets containing “sxsw”, or “SXSW”, or “SxSW” (you get the idea).

First Testflight Beta

Fri, Mar 04, 2011

Despite me being extremely busy with finals coming around the corner and volunteering, I had an urge to push out a beta build of Regions to the people that signed up at TestFlight. As I said before, I dumped out all my old code, which meant dumping out a lot of features when I started from the Apple example code. One of the simple (and essential) functions was playing a sound in addition to the pop-up alert when you receive a reminder. I noticed the lack of sound several times while on my bus. It got the job done for me since I was staring at my phone anyway, but this was obviously a short-coming.

Since I don’t have time to do a more substantial update, this is a nice excuse for me to checkout how pushing out updates via Testflight is. I can safely describe it as a cross between awesome and beautiful. If you’d like to try out new features before they are released to the app store, sign up to be a beta tester.

Social Icon Set

Wed, Feb 23, 2011

There’s a quite a things that remain undone on my site. Until now, I wasn’t happy with how my contact info was presented. It almost feels like something is missing if there aren’t links to a few (or dozen) social networking sites. I did a quick search, and found some that I really liked from They are free of charge. They only ask that you link back to their site if you used them. Pretty awesome.

Accepting Regions Beta Testers

Mon, Jan 24, 2011

In an earlier post, I mentioned how it looked like TestFlight would be taking a lot of pain out of running beta tests. They are already off to a great start. I’ll be adding some new features to Regions, and I would love to get them in the hands of users before it gets to the app store.

If you’d like to try it out, sign up to be a beta tester!.