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 »

BotFu feed with RSS reader

BotFu feed by Email


Search All Posts »

Blog Details »

This blog now includes 286 wonderfully exciting posts from 1 unique and very special writer!


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 me on »

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

Archives by Category »

(24) Code »
(5) ColdFusion »
(11) Database »
(7) Factor »
(286) General »
(9) JavaScript »
(15) Perl »
(13) PHP »
(17) Ruby »

Archives by Month »

(1) February 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

Fantasy focused domains »

draftwizard.com
fantasy-football-draft.com
fantasyfootballkit.com
fantasyfootballquiz.com
hockeynotes.com
pegg.it
rosterhelp.com
sportsxml.com
statsfeed.com
supermug.com

Tech. focused domains »

factorcode.com
perlquiz.com
simpledb.info

Social Tool focused domains »

conversationlist.com
friendstat.us
fuzzypop.com
gawk.it
grou.pe
halfbite.com
jivegas.com
pu.ly
tagli.st
timelylinks.com
tym.ly
wow.ly

Utility focused domains »

fubnub.com

Other domains »

betaread.com
botfu.com
falicon.com
storyrank.com

Not yet live domains »

bar.ackoba.ma
basketballnotes.com
buddydirt.com
budrank.com
cakntoba.com
coachwizard.com
cointhief.com
ezbcs.com
falconsrule.com
fantasydeke.com
fantasyfootballrank.com
ffkit.com
footballnotes.com
footballpublishing.com
giggletweet.com
greentile.com
herobrawl.com
kacode.com
kickasscode.com
knowabout.it
leaguewizard.com
nfldraftnews.com
pa.ly
rorbe.com
slidepitch.com
startfail.com
survivorhub.com
tagli.st
thedfl.com
thescoutsreport.com
toptenify.com
tripacation.com
tweetwiki.com
umock.com

* Yes I realize I have a bit of an addiction to domain names, but I really do have specific ideas for each of the above.



This blog is powered by KickAssCode.