Kevin Nelson Marshall
Other entries:
« A cool tidbit for Apache...

So I've finally released a first version of the "email to twitter" service I've been mentioning here the last few days...you can check it out at pu.ly (and please do when you have a free second or two).

Anyway, since releasing it today to the world (and then crashing it a few times while attempting upgrades!)...people brought a few existing alternatives to my attention...the short list includes:



And there are probably a few more out there that I'm just not aware of...so on one hand, it was probably a waste of my time to build out yet another version of this type of system (though I would argue that I'm approaching the problem in a slightly different way then all of those systems, and therefore am a better fit for certain situations -- but I leave it up to you the users to determine which system fits your own specific needs).

Anyway, truth-be-told, I didn't really build this system with the hopes of it blowing up into some huge hit...I built it because it had some interesting technical challenges I wanted to solve, and I thought I could do it fairly quickly (turns out I built it in about two nights of actual coding time)...and I def. learned a bit more about some of the technical bits that got me interested in the first place.

But going through this process also got me thinking about just how much crap a developer actually has to know to get something even as simple as this up and running...without even talking about the depth to which you need to know these things to do anything useful, here's a quick list of the stuff off the top of my head that this project involved:


  1. Perl - which I use to do the batch processing for monitoring twitter and parsing incoming emails

  2. DBI - perl's database library

  3. LWP - A perl library used for HTTP communications

  4. PHP - which I use for the front end code of the web site (and to communicate with twitter when initially approving the app)

  5. Curl - used by PHP for HTTP communications

  6. Subversion - the version control software I use to manage releases and file transfers between my development environments and my production servers (as you can probably guess based on the fact I crashed the service a bunch throughout the day, I do not have a test environment; so it goes straight from dev to production - blech - but I work with what I got in my own little budget-conscious world)

  7. SSH - How I connect to my Linux production servers (on slicehost btw). I generally use putty for this on Windows or the Terminal app on Mac

  8. Photoshop - which I used to create any front end graphics (in this case it was only the pu.ly logo)

  9. HTML - used for all the front end display of the web site

  10. CSS - used to help improve the look of the front end web site

  11. XML - The format data is passed in between Twitter and my scripts

  12. JSON - The other format data is passed in between Twitter and my scripts

  13. OAuth - The security protocol/standard Twitter uses to authorize applications (ie. so

    pu.ly can tweet on your behalf without you having to give us your actual username/password)


  14. PostgreSQL - The database system that account information and long tweets are stored in

  15. SQL - the query language used to insert into and pull data out from a database.

  16. Apache - The web server software that runs the front end web site.

  17. Mod_Rewrite - an apache module that helps route requests to the proper places within my web application.

  18. Linux - The operating system that the scripts, database, and web site all run on.

  19. postfix - The email server software that all the email involved in this system routes through

  20. crontab - A linux system that let's you schedule programs to run (ie. controls when the batch scripts actually get executed)

  21. mysql - A database system that, in this case, interacts with Postfix to manage email accounts



And that's just the quick and short list...I'm sure there's some bits I'm forgetting about (or just don't even realize I'm dealing with anymore as I take many of these things for granted since I work in them all and a few others just about every day). And again, I'm not even talking about how well or how much of each of these things you have to really know or understand (and believe me, each of these could and does warrent a full-time career if you want to be a true expert in any one of them -- honestly I'm intermediate at best in most of these things because I just don't have the time to learn all the ins-and-outs of each). So my point is, even for the simplest of tasks, you really gotta know a boat-load of junk...but then again, that's one of the things I really love about being a developer...I'm always learning, I'm always creating, and I'm always finding new challenges!

So what's next? Oh yeah, that million mile long to-do list of projects over on the side of my blog...guess I better get to it!

Oh and don't forget to check out pu.ly when you have time and let me know what you think!

posted by Kevin Marshall on 2009-07-30 00:00:00+00


Subscribe to my RSS feed »

BotFu feed with RSS reader

BotFu feed by Email


Search All Posts »


Kevin Marshall - Who's That?

I'm just your basic programmer. I can't spell to save my life, I'm not the greatest story teller, and I often ramble on about nothing. This blog showcases all of that!

If you're bored drop me an email at info at falicon.com or view my outdated resume.


Stalk Kevin on »

bit.ly
Delicious
Digg
Disqus
Facebook
Flickr
FriendFeed
Github
Last.fm
LinkedIn
StumbleUpon
Twitter (@falicon)

Archives by Category »

(28) Code »
(8) ColdFusion »
(15) Database »
(10) Factor »
(3) Falcons »
(321) General »
(13) JavaScript »
(18) Perl »
(17) PHP »
(20) Ruby »

Archives by Month »

(1) September 2010 »
(2) August 2010 »
(3) July 2010 »
(13) June 2010 »
(8) May 2010 »
(2) April 2010 »
(2) March 2010 »
(5) January 2010 »
(2) October 2009 »
(6) August 2009 »
(11) July 2009 »
(2) May 2009 »
(3) April 2009 »
(2) March 2009 »
(7) February 2009 »
(9) January 2009 »
(14) December 2008 »
(5) November 2008 »
(12) October 2008 »
(13) September 2008 »
(16) August 2008 »
(23) July 2008 »
(20) June 2008 »
(24) May 2008 »
(23) April 2008 »
(27) March 2008 »
(28) February 2008 »
(26) January 2008 »
(7) December 2007 »

Published Works »

Beginning Amazon's SimpleDB (Apress in dev.)
Pro Active Record (Apress 2007)
Web Services with Rails (O'Reilly 2006).

Contributed To »

Ruby Cookbook (O'Reilly 2006)
SQL Cookbook (O'Reilly 2005)
Various Reviews published in Computing Reviews

Free Code I've Created »

SimpleDB library in Python 3.0



This blog is powered by KickAssCode.