Hung Truong: The Blog!

  • March 09, 2008

    2003: The Missing Blog Year

    So for some reason I was looking at the archives of my blog today. I noticed that there was a gap between the years of 2004 and 2003. I obviously didn’t stop blogging completely in 2003, so I figured something was up.

    I’ve been blogging for a number of years now. The earliest protoblog I had was probably on ujournal.org. After that I switched around a lot, to places like Xanga, livejournal, Myspace (ugh, yeah, I know) and finally to my own domain where my blog resides today. I’ve made it a point to export all my old blog entries though, so I was kind of pissed to see that 2003 was nowhere to be found. Sure enough, I checked out my old livejournal (which still exists!) and exported all the posts from 2003 into my blog this afternoon.

    A few notes on my blogging style of 2003:

    • I used exclamation points in my titles a lot.
    • I mostly blogged about news events. Unfortunately, Yahoo News links die fairly fast.
    • All links referencing my UNM webspace are seriously borked
    • For some reason I wrote about Ebay a lot!
    • In 2003, my blog really sucked.

    There are a few noteworthy posts from that year, including the self imaging post (which links to a broken site now…), the Ebay commercial post (which links to a working video!!!) and my rant about Humpty Dumpty.

    You can see all the missing posts here. If you really wanted to. Which you probably don’t.

  • March 08, 2008

    A Tale of Two Facebook Apps: Viral Vs. Non-Viral Growth

    For my SI 508 Networks class last semester I did an analysis of one of my Facebook applications, Notecentric. Notecentric was a social network that I had written during the Summer of ‘06 and I had recently ported it to the Facebook Developer Platform in Summer ‘07 shortly after the platform had been launched.

    The growth of Notecentric isn’t what I had hoped it would be. Not too many people use it, probably due to network effects of Facebook promoting a competing app (note to Facebook: if you want to promote a level playing field, don’t play favorites!) and other general performance issues (the application is pretty barebones and the RFacebook library I used to write it is pretty damn slow. It times out a lot!).

    More …

  • March 06, 2008

    Fire Eagle Invite Get!

    fireeagle_logo_final.png

    Thanks to LordElph, I got an invite to Yahoo’s newest thing, Fire Eagle. I feel as though there’s enough fire stuff in the world with Firefox and its eternal enemy, Firedog. But oh well.

    Fire Eagle is a centralized location information service, basically. You can use its built-in APIs to set user location information and grab user information from it (assuming you have the correct permissions).

    This is cool because in the past, applications have had to do this location stuff on their own. For example, if I wanted to set up a Twitter clone that knew a user’s location, I’d have to be able to take the information and process it, and retrieve it later. Fire Eagle handles a lot of stuff like figuring out exactly where a user when things might be ambiguous (I typed in “University of Michigan” and it gave me a choice between the main campus and the Dearborn one).

    I’m planning on coding up some location aware applications at some point soon, so I think it’ll be fun to try and see what I can do with the help of this Fire Eagle thing. Yahoo has definitely done something unique and I give them some props for working on this service!

  • February 27, 2008

    Fun With Rails and High-Performance Caching Mechanisms (Memcached)

    Since it’s Spring break for University of Michiganers, I’ve had some free time to mess around with learning stuff I don’t have time for when school is in session. Something I’ve been meaning to try out is memcached, which is an uber-efficient way to cache stuff in memory so you don’t end up hitting the database a lot for redundant queries.

    I installed memcached on my mediatemple machine using some directions I found online specifically for centos. I don’t have yum or rpm or whatever people use for putting new stuff onto their linux boxes. I just wget, untar, and make/make install. I had to make a symbolic link for the libevent thing that I installed as well since the path wasn’t set up correctly. I’m still trying to get memcached to run automatically as a daemon when I boot up. I tried sticking a line in the /etc/init.d/ or something rc.local but it hasn’t really worked. Oh well.

    I’m using memcached right now along with a rails gem called “Cached Model” that does a pretty good job of automating the caching process. What’s important to know is that the gem only caches Active Records that are found via a simple find on id. It won’t cache more complex queries. Right now I have it running on my Animenano site caching a bunch of objects. I’ve seen a small though noticeable difference.

    Memcached isn’t without its caveats, however. For one thing, your initial db hit is going to take longer than normal since you’re going to be checking memcached, then grabbing the data from the db, then saving the data into memory. From reading the logs, this doesn’t really take that much extra time. The time saved is likely more worthwhile.

    I’m always trying to squeeze more performance out of my sites. Periodically I’ll go check out my log files and see if there’s anything taking an insane amount of time to render (like, .1 seconds or so). I’ve caught a few bad algorithm decisions that I had made in the past, and I think for the most part my sites run pretty efficiently. Memcached is a pretty fun way to slice some time off of the page rendering times for Anime Nano.

    If you have a few spare hours to kill and a rails app that seems to be a little slow, it might be worthwhile to install memcached and see if caching your Active Record objects will speed things up. I’m seeing a speedup of maybe 1/2 (it takes half as long to load a page) vs running without memcached. That’s totally non-empirical observation, though.

  • February 24, 2008

    Apple Internship Phone Interview + Verdict!

    I had my Apple phone interview on Friday. It went well, except for all of the questions I couldn’t answer! orz.

    About five seconds into the interview, I realized that the description given to me and the actual content of the internship would be quite different. The position was described as “iPhone QA Engineer,” which listed duties like “functional testing of iPhone applications” and “design and implementation of test plans and test cases, risk analysis, & integration testing across the system.”

    The description that my interviewer gave was that I’d be working on an internal iPhone web application for tracking test results and other stuff. Definitely not as interesting as I thought it would be. It’s probably still kind of cool, but not as cool as doing actual QA on the iPhone.

    By the time the interview had finished, I knew it would be a bad fit and that I would get an email with the same sentiments. Sure enough, about two hours after the interview had ended I got an email from the recruiter saying there wasn’t a fit. He said he’d send it to a few other departments in Apple as well. Cool guy.

    I’m not too upset about this particular rejection, other than the fact that I feel it was incorrectly described, which cost me a bit of time in my preparation. It was still a good experience, and I got to ask a few questions about the company culture at Apple.

    In other non-news, I actually got a successful internship offer, so to speak. But it’s not quite official yet so I can’t write about it until it is.