Hung Truong: The Blog!

  • April 25, 2007

    Craigslist and Google Maps Mashup Thingy: Day 9 – CSS Foo and CakePHP Helpers

    Today I did a bunch of CSS, making the mashup thing actually look kind of nice. Later, I may add some more “Web 2.0” features such as drop shadows and gradients. I was having a hard time getting the map to show up in the div with a few of the css layouts I downloaded, so I just decided to code it by hand. I think it looks pretty neat; the map stretches across the whole screen and then the other content is shown in absolutely positioned divs.

    I also did some stuff with the CakePHP helpers. CakePHP’s inferiority to Rails is really starting to show to me. I think it’s all a product of PHP having not been created for this kind of MVC design. CakePHP tries to follow the conventions of Rails, but it does so in a sort of copycat manner. As such, the result does not meet or exceed the original.

    In the case of Helpers, Rails automagically links the named helper to the controller. In CakePHP, you must specify that a certain controller uses a certain helper. It’s kind of annoying. There also isn’t any support for the Rails convention of “partials,” which is why I’m using their helpers to begin with… It’s annoying.

    Also, I find it annoying that CakePHP finds an objects associated objects by default when using “find()” or “findAll().” It’s useful when I want it, but when I don’t, it wastes a lot of memory! Now that I think of it, I’m not sure if Rails does this by default or not. The only reason I mention it is because I kept getting out of memory errors (or more accurately, memory limit errors) with my application. It’s a big waste when all I want is the name of the area and CakePHP fetches ALL of the associated listings for that area…

    I must sound really whiny right now. I guess it’s just from some frustration in learning a new language/framework instead of using one that I’m used to. It’s good for me, I won’t argue against that. It’s just a bit disappointing to see all of these flaws when a framework is purported to be things like “stable” and “good.”

    Oh, and also, I should say that I think my actual mashup is coming along pretty nicely. It should be ready in a few more “days,” where a “day” is one I am actively working on the mashup. I could probably “release” it pretty soon, but usually when I release something, it means I won’t work on it much anymore, moving to something else I find interesting. So I should probably actually have it done before I release it…

  • April 22, 2007

    Jonathan Coulton: The Other, Other, Other John

    jonathan-coulton-me.jpg

    For some reason or other, today I was inspired to check out The Areas of My Expertise again, and I remembered that besides John Hodgman, there’s another John on that CD: Jonathan Coulton. He’s the musical guy behind the theme song for the audiobook, which I wish was available in a higher quality recording.

    Previously, I had heard him do a cover of Baby Got Back in acoustic guitar, but I didn’t realize it was him. Only when I went to his website, which has a bunch of MP3s, did I make the connection. He also has a bunch of other really neat songs, like Skymall, which is about those catalogs you find in the airplane seats that feature gigantic crossword puzzles, and Ikea, which is about the bitchin’ furniture store that my entire family loves. I read somewhere that Sweden trusts Ikea more than their own government. Which means that either Ikea is awesome, or the Swedish government is horrible.

    The coolest song I found so far (I haven’t listened to all of the MP3s yet) is a mashup of “25 or 6 to 4”, and “When I’m 64.” The vocals of the latter spliced with the background of the former makes for a really cool, melancholy sound. I like it a lot. Check it out:

    And also check out his other songs too!

  • April 22, 2007

    Craigslist and Google Maps Mashup Thingy: Day 8 – CakePHP Routing and Caching

    I spent a whole lotta time today trying to get caching working with CakePHP. Apparently, CakePHP doesn’t do caching quite as gracefully as Rails when it comes to custom routing, especially in the application root. Yeah, there’s a bug. I thought I was doing something wrong though, so it took me forever to find out it was actually a bug (or is it a “feature?”).

    Besides that, I got the interface to what it was previously, except with AJAX so that the Craigslist images are only downloaded when you click on a map marker. I also found that it takes a long time to put a week’s worth of listings (from Ann Arbor, at least) onto the map at once. I’m guessing there were at least 400 on there. I made a hard limit to the number of listings that show up, and it loads a lot faster now.

    I’m sort of back into the mood for working on this project again. I finally beat the Scrin campaign (it was really short) in Command and Conquer 3, so I’ll definitely be more focused now. I think.

  • April 21, 2007

    Craigslist and Google Maps Mashup Thingy: Day 7 – Asynchronous JavaScript and XML!

    I haven’t really been working on the Google Maps and Craigslist mashup very much recently. I blame it on a combination of going to Denver for a wedding, having a huge anime and manga backlog, getting Command and Conquer: Kane Edition, and general laziness. I think that’s a pretty good reason.

    Anyway, today I sorta got back into it. As the mashup worked on day 6, the Google map would preload all the stuff within the tabs for the markers. This meant it would poll Craigslist like a billion times in one second to get all of the images preloaded. Guess what? Craigslist doesn’t like that. They put a ban on me (and anyone else who would use the badly implemented map) after loading one page. Luckily it was only a temporary ban.

    My solution was to use AJAX to load the tabbed info windows for the markers on demand. So no pictures or anything get loaded until you request them. It’s much nicer to Craigslist, though I don’t know if it’s friendlier to my server, since there’ll be more requests. That’s okay, though.

    It was kind of a pain to learn how to grab the xml files and parse them, but I finally got it working. Now all I have to do is generate the xml files for each listing (shouldn’t be hard at all). I’ve already got experience generating xml from the RSS feeds that I make for Notecentric and Anime Nano.

    Plus, I get some street cred (maybe) for including AJAX in the site! It’s a requirement of Web 2.0, so I figure I should fulfill it.

  • April 21, 2007

    Facebook Vs. Orkut: What Do Googlers Think?

    So I was browsing the various Facebook networks that exist for things like regions, universities, and workplaces. Being a fan of Google, I checked to see how many Googlers (Google employees) are on Facebook. The count as of right now? 2,041.

    facebook-google.jpg

    Okay, fair enough. Googlers are allowed to be on social networks, right? But Google has a social network of their own, Orkut! To be fair, Orkut is very popular with Brazilians (for some reason), but it has yet to catch on in North America. But shouldn’t Orkut be popular among Googlers? It is, after all, a product that’s made by their own company.

    orkut-google.jpg

    I tried to find an “official” Google group on Orkut. Of the Googlers that I know (okay, like one), they’re either in the “Google (863)” group or the “Google (1,301)” group. Keep in mind that on Orkut, anyone can join the Google group, whereas on Facebook, you must have a valid Google email to join. To be nice, let’s just call the one with 1,301 members the “official” Googler group.

    This means that Orkut has 1,301 Googlers vs. Facebook’s 2,041… ouch.

    I think this just illustrates my belief that Google really needs to put some work into Orkut to make it a viable social network. Right now, I think they’re just sort of letting it sit there. It’s really uncharacteristic of a Google product, and it’s something that’s surprised me ever since I found out that Orkut was owned by Google.

    How can Google do this? Give Orkut some personality! Right now it’s incredibly dull to use. I think the reason people use Facebook (at least, the reason I do) is that it’s fun. Facebook has random crap that doesn’t make logical sense, but is fun anyway (like poking). That’s why I really like Facebook as a social network, and why I think it’d be a fun company to work for. The work atmosphere at Google is incredibly fun, which is why I can’t understand why Orkut is so boring. Even Myspace lets users customize the layout. Though this is bad for the eyes, users like it.

    This isn’t so much of an attack on Orkut than it is a wake-up call. I really think that with the resources that Google has, they could create a great social network. Right now it’s wasting away.

    And to end on a fun note, here’s a joke that I found on Valleywag:

    Orkut Büyükkökten, creator of the Google social network that bears his name, dashes into CEO Eric Schmidt’s office and says, “We have a million Brazilian users!”

    Eric says, “Keep up the good work.”

    After Orkut leaves, Eric calls VP Marissa Mayer and asks, “How many is a brazillion again?”