4 ms·
Woke up on Friday morning (read: lunchtime) after a to-4am code-a-thon with a startup project I'm working on, refreshed and ready to take a well-deservered earl
by aupajo 18y ago
Woke up on Friday morning (read: lunchtime) after a to-4am code-a-thon with a startup project I'm working on, refreshed and ready to take a well-deservered early weekend of rest and relaxation.
:) Right.
Needless to say, the first thought I had when I woke up was "wouldn't it be cool if..." and the rest, as they say, is two days of pure hackery. I give you the end result: TweetSnap.
It's a really simple premise: enter your Twitter username, get an image back which you can put on your site to show your latest tweet.
It's designed for people who uses websites/etc which don't allow the typical "insert javascript snippet for AJAXy awesomeness" but does allow you to hotlink images (great example: forum signatures).
I haven't looked to see if anyone else has done this yet, mainly because I just did this for fun and I don't really care :) But try it out, give me your feedback. Temperamental results to be expected while on shared hosting :)
For the techies:
- Rails 2.1 w/ a minimalist MySQL DB
- Image generation done with RMagick 2.5
- XML parsing with Hpricot
- Message parsing a combo of htmlentities and a custom lib (supports characters like ø™¡)
- omouse 18y agoThis is actually kind of neat. The image is updated upon request right? Are you caching at all?
- aupajo 18y agoSorta :) The biggest slowdowns are the generation of the image and the Twitter request. When an image is (successfully) generated, it's written to a file. The next time you query that user, it'll return that file unless it's been longer than a certain amount of time (currently set to 15 minutes). If it has been, a request is made to Twitter. If they've updated their message, a new image is generated, otherwise the stored file is used. The time between updates is stored in a single handy constant that I can alter to adjust for bandwidth.
- vulpes 18y agoVery very cool, what did you program in? Have you had any previous experience with Twitter API/RSS feeds? Reason being if you are pretty versed in rss feed pulling/image generation the backend is done pretty quickly, as most of it is just knowing how to do it. I'd imagine you spent more time on making it look pretty. Does it automatically filter out replies and such?
- aupajo 18y agoRails 2.1. No previous experience with the Twitter API, but I'm used to building RESTfully designed applications (which Twitter is). I chose to pull the XML version of your timeline as opposed to the RSS version, because the information is purer. First day was getting it to work, second day was design. Replies aren't filtered (although I'd like to do that at some point, for the moment I'm happy to keep it simple). Biggest effort went into RMagick, which was incredibly frustrating. On the second day I rewrote the majority of the stuff I wrote on the first day so that it was better organised and less of a mess.
- froo 18y agoNice app dude, I just sent it to some of the social media powerusers I know, so lets see if we can get you some users :) EDIT - I dont know if this is a bug or not, but under the "generate html" part, you dont have the <IMG> tags? One person I sent it too messed it up as a result :)
- aupajo 18y agoYikes, thanks. All fixed now.
- thomasswift 18y agoreally cool... what is your definition of a minimalist mysql db? oh yeah any memory problems with the rmagick? just curious.
- aupajo 18y agoSimple. One table simple :) I have no idea. It's all on shared hosting atm. More of an experiment than anything else. If it needs more grunt, I'll get some proper hosting.
- thomasswift 18y agoThanks, just never seen it put that way before.