Smash Computer

Artwork left behind by Desktop Support Services…

First Fruits

After 14 hours, I have first data on “coworking” on Twitter.

The Flash plugin is required to view this object.

As the Twitter Search pwner runs against the query results, the pwner updates the data used to created the chart.  This happens once an hour, so check back often.

Pwnserver is a tool I created to undo some of the damage that has been done by Web 2.0 business models that encourage us to share and store valuable data online, but don’t or won’t provide tools for easily getting that data back.  You know who you are.  (Note, Twitter is not, IMHO, such a company.  However data is data, and Twitter provides a great, easy first case.)  That pwnserver can be quickly repurposed for research projects like this is a wonderful added benefit.

Pwnserver will be released as Free Software once I clean it up.

Pwning Twitter Search

It’s difficult for me to quantify the growth of coworking.

I’ve noticed, for example, that the volume of tweets on Twitter mentioning “coworking” has increased dramatically in the last few months.  Or has it?  It’s hard to tell.

While riding the subway into the city this morning, it occurred to me that the technology I’m using to recapture data I’ve set free on the Web might also be used to gather the data I’m interested in about coworking.

A few hours of hacking later, I’d extended my Twitter pwner to track and capture tweets from Twitter Search.  The result is a growing historical record of tweets that mention “coworking” stretching back a few months.

Read about it here.

Pwnserver, Let it Run

I launched pwnserver over a week ago, pointed it at three Twitter accounts, let it loose… and got busy and forgot about it (the big project on my plate is The Work/Life Revolution–stories about work, coworking, and autonomy).

While I was away, pwnserver patiently pursued the specified accounts, pwned their contents, and kept the local copy up to date.  Beautiful!  It’s a rare occasion when software works like it’s supposed to work.  Especially when my back is turned.  I attribute this fact to my extensive and exhaustive use of RSpec stories during development.

I’d turned my back to work on the book and to start work on the pwnserver user-interface.  More to come on the user-interface…

Just added another account…

R.I.P.

Today I learned that Pownce will be going away. It sounds like they are trying to do the right thing by their users–providing an export function and moving Pro users to a free TypePad account.

Pownce will soon join a growing pool of once hot/promising Web 2.0 startups and technologies who have gone under–victims of the current financial crisis or market apathy.

More distubing than the news of Pownce is the story of Digital Railroad.  From the sound of it, more than one photographer lost his/her data in this fiasco.

Prime Numbers in the Hands of the Devil

7 Slices in a Package
If you slice 7oz of organic turkey breast into seven slices, you make it impossible for consumers to make more than one sandwich with exactly the same number of slices from exactly one package based on some reasonable number of slices (like two or three… or five).

Pwnserver’s Second Production Run

The first run completed successfully–797 tweets pulled down and steady synchronization thereafter.  After a T-day worth of hacking, the second production run is underway–a cadre of pwners pulling down tweets from three Twitter accounts.  I cleaned up the database, improved the logging, and found and fixed a few edge cases.

The point of this project is to build a Free (as in Free Software) toolkit for getting my data back off the various web-based applications/social networks/platforms/hacks on which I put it.  Twitter’s a push-over.  Twitpic is next…  I’m working my way to Facebook.

Pwnserver’s First Production Run

I put pwnserver into production two days ago.  It’s a pretty simple pwn–Twitter’s a pushover with an API and all, but start off easy, I say…  I’ve also pulled way back on the throttle–it will take me days to swallow all of the historical data.  But then, brute force is a chump’s solution.

The proof will come 1) when this pwner hits the end/beginning of my Twitter history, and 2) when I start tweeting on this account again (which will add data at the beginning/end of the history).  At that point the pwner is really just synching my database to the Twitter database.

Dig?

Refactor Ruthlessly Now

vaguery

Airport Security

The airport has free WIFI. Nice. Very nice.

I have an hour until I board; the rest of my team isn’t here yet. I pull up an e-mail and go to work.

Security is important. I want private communications to remain private. On the road, I used to manually tunnel in to my office over SSH to connect to my IMAP and SMTP servers. Over the last few weeks I’ve been migrating to a more mature configuration — IMAP over TLS and SMTP with TLS and SASL. As a result, I’ve been keeping half an eye open for problems with the configuration. So far, no problems.

I type a reply and hit send. I get an error — something about the server not offering STARTTLS in the EHLO response. Damn!

I put the reply on hold and run through a few quick diagnostics.

  • Can I SSH into the box - check
  • Does the server configuration look correct - check
  • Is my mailer set-up to use my server - check
  • Does the DNS name resolve to the correct IP address - check
  • Can I telnet into the SMTP server - check

Running the last test on the box itself, I clearly see 250-STARTTLS in the response to EHLO foobar. I tail the maillog and hit send again. I get the same error but see no indication of activity what-so-ever in the log. “Damn!” turns into “What the fuck?”

Okay… The DNS record resolves to my IP address. The IP address points to my box. Port 25, however, appears to point somewhere else — to someone else’s SMTP server, in fact. I verify this using telnet on my laptop. A proxy perhaps? But why? To prevent terrorists from sending spam from within the airport? As a kindness to travelers who find themselves away from home or office and in need of a SMTP server? Or something more sinister? Or incompetent?

The gate agent repeats her last call for boarding. I really want to send an e-mail through the system so I can take a look at the header; and to put an obvious username and password in the e-mail to see if the lure attracts any game. But I am out of time. I snag the conversation between client and server in ethereal for future reference.

The conversation between mailer and server:

220 ESMTP
EHLO [AAA.BBB.CCC.DDD]
250 OK
QUIT
221 Bye

The conversation between telnet and server:

220 ESMTP
HELO foobar
250 OK
EHLO foobar
503 Not Implement
QUIT
221 Bye

503 Not Implement?

What is that?

This is the kind of bad grammar I see in Trojan-bait “Friend sent you an e-card” e-mails.