
Edit: Using the tutorial from this dude, I was able to get the Django “hey, you got the barebones working!” page working. I may have time to mess around with this more in a week or so.
I just wasted an hour trying to get the Google App Engine and Django to work together on both my Mac and my PC. Both give failure errors when I try to run the server.
Should I assume I’m a bad computer scientist? Or should I assume that Google needs to do more testing/documentation before releasing stuff? Granted, I haven’t used Django before, but it should really work if I follow the directions correctly (and I did, twice)!
I would consider learning the webapp framework, but I’d rather learn something I could use on a server other than Google’s. I’ve been meaning to learn Django for a while now. I had some high hopes that I’d be able to get something cool running in a short amount of time, but I guess not.
People are saying this App Engine thing is a great competitor to Amazon’s ECC. Not quite yet. You can’t run any software you want on App Engine, you’re limited to using Python for now, and from my experience, App Engine seems a bit half-baked at this point. What about cron-jobs? What about running scripts? What about root access? I can’t see why Google didn’t just decide to copy Amazon and allow developers to upload a linux image or something.
My initial impressions are disappointing. Maybe once the semester is over, they’ll have a more stable version of this available…
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!).
Anyway, I got some neat network data from it, which made the whole thing worthwhile. You can check out the original paper I wrote last semester here.
I’m going to be presenting my analysis during the School of Information’s annual expoSItion. It’s like a science fair except without the exploding volcanoes. During my Winter break, I developed another app, mainly for fun. It’s called Musical Instruments. Basically it lets you list which instruments you play and see which instruments your friends play. I had somewhat higher hopes for this application as a data gathering tool, and sure enough, it seems to be doing some cool stuff on first analysis. For expoSItion I figured I’d grab some data from this new app and compare the two.
I ran some initial analysis on the Musical Instruments app. I won’t go over a lot of the original metrics I used (number of peers with app installed, percentage of peers with app installed, etc) and I’ll just skip to the pictures.
This is an initial view of the Notecentric network:

Continue reading ‘A Tale of Two Facebook Apps: Viral Vs. Non-Viral Growth’

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!
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.
So some AI nerds taught a video game playing agent to play Ms. Pac man. Well, actually, they taught it how to teach itself to play Ms. Pac Man…
I didn’t know that Pac Man was deterministic, and Ms. Pac Man was random. I think this proves that the actions of women are generally more difficult to predict than of men. Wait, are the ghosts in Ms. Pac Man also women? And I thought Ms. Pac Man was married to Pac Man! Well, she still could be technically, and keep her Ms. title.
I think they have kids though, so at least they’re an item.
Wait a minute, when did I stop talking about AI and start talking about Mr. and Ms. Pac Man’s relationship? Oh well…
Recent Comments