« September 2006 | Main | November 2006 »
October 27, 2006
Geoff Stearns #1 , SuperGreg #2 -- YouTube 1.65bn
A good friend of mine by the name of Geoff Stearns is responsible for a little open source 'thing' called SwfObject.
Here's a little history about it:
SwfObject used by just about everyone to embed swf media on websites. When I say everyone, I mean everyone. Even Macromedia themselves abandoned the crappy embed methods their Flash authoring environment ships with, and use SwfObject on the Adobe website. Don't believe me? Visit their site and view source.
If SwfObject doesn't sound too familiar, you might know it under its former name -- FlashObject. Unfortunately, a few months ago as Geoff was writing an article for Macrodobe when their legal team reversed position on his use of the term 'Fash' and politely suggested Geoff rename his project as soon as possible. I suggested that Geoff just ask them for an official license so they legally avoid any sort of trademark dilution-- Adobe, however, didn't like the idea. Then I suggesed Geoff call it Swifilis-- I saw an enormous demand for "Spread(ing) Swifilis" t-shirts. Unfortunately Geoff wasn't fond of that particular idea.
Fast forward a bit, and Geoff tosses me an instant message: someone in Asia bought SwfObject.com . There was a blog ( or something ) on it in Japanese (now it seems to be a Chinese template page). I tried to convince Geoff to get swfobject.org ( he hosts the project @ blog.deconcept.com/swfobject ), but he wouldn't.
Geoff didn't think that was necessary, and long story short- I ended up buying SwfObject.org and making it the Geoff Stearns fansite with the simple goal of overtaking Geoff's blog in search rankings.
BTW, you can read the whole story about that here:
About SwfObject.org
Regretfully, I never have time to update Geoff's fansite-- but I recently made his girlfriend an account-- so we might start getting some good content.
Getting back to the point of this all...
One of the biggest users of SwfObject is YouTube. Believe it or not, every single video hosted YouTube.com is displayed to its loyal users via SwfObject ( syndicated videos use the standard object/embed tag pairing ).
It wouldn't be a stretch to say that SwfObject is a core component of the YouTube framework for video delivery.
In fact... One could even argue that... were SwfObject to spontaneously stop existing , YouTube would cease to function-- completely. Instead of staring at videos, the sites X-million users would be staring at blank divs-- void of the flash content that brings them action, drama, comedy, politics ( and occasionally softcore pornography ) on a daily basis.
YouTube would be NullTube. NoTube. They would come to a grinding halt.
Who would want to stare and share blank divs all day long? Surely not you! Most decidedly, not I.
You might be thinking right now "well hey, wouldn't they just use something else to embed videos?"
Hopefully you're not, because that would be an incredibly stupid thought. Anyone with an IQ higher than a peanut knows that SwfObject is the only legitimate option for Flash embeds-- and that the other options are vastly inferior.
Now I don't mean to say that the SwfObject alternatives suck, but, well, they they do. And so do the people who use them. All the cool kids use SwfObject.
Are you a cool kid? Check your Swf embed technology. It says a lot.
And you know who uses the SwfObject alternatives? The Terroroists. Yep-- that's right-- terrorists. The terrorists are using SwfObject. The Terrorists are using The SwfObject-- but The Google is not. Terrorists like Al Qaeda and Osama Bin Laden and other evil doers. And you know what these evil doers do with their "not SwfObject" ? Evil. They do evil. YouTube is owned by Google. Google's motto? "Don't Be Evil"
Google-not evil.
AlQaeda- evil.
SwfObject == Good
Not SwfObject == Evil Doers
'Nuff Said.
Now when I say that YouTube is using SwfObject extensively, I mean extensively-- It's on every one of their pages.
A typical YouTube page has this much generated data:
- 80,774 k - HTML
- 29,459 k - YouTube JS
- 5,974 k - SwfObject JS
Geoff's code makes up, on average, 20% of the total YouTube client side code (javascript) and 5% of the total YouTube client side html/js combination.
There's about 10k of graphics on each page... so you could lower those numbers a bit if that makes you feel better.
Now you're probably going to say: what about the videos? It's a video site!
Well I'm not factoring in the size of videos simply because they're submitted by users, not made by YouTube -- they're shared content, not produced content or infrastructure.
Going onwards...
Having worked a few years on websites, I feel confident saying that backend work takes about 50-70% of time / budget on most sites, with the rest going to design and frontend.
Sometimes a few people in marketing make way more money for taking 'clients' to dinner, and making exaggerated promises that others have to keep. I don't like to think about those people - they make me mad.
If I had more patience, I'd try to factor in the amount of work in open source software that run different parts of the backend -- I know YouTube uses Python, I've heard they use a free os, and a free server. But I'll just say that there are free alternatives for all those other things: Perl / python / php / ruby / c ; multiple linux / bsd flavors ; apache , nginx , lighttpd .
But, as mentioned above, there are no decent free alternatives for SwfObject-- its the only embed worth using. That's why its not just popular, its necessary. (There are free alternatives, but they're not decent in any way shape or form. )
YouTube runs on SwfObject. YouTube exists because of SwfObject. YouTube wouldn't exist if it weren't for SwfObject.
And SwfObject isn't alone-- tons of other open source things make YouTube work.
People gave their time and energy freely to make those things -- why not give back to them?
So, I stand here now and say this:
Dear YouTube-
Do the right thing.
Take 5% of your monetizaton, and give it to open source projects and developers.
Give a chunk of change to the team that makes your DB app
Give a chunk to your primary languages
Give a chunk to your OS builders
Give a token to Geoff Stearns.
Specifically, give Geoff Stearns one-quarter of 1 percent of your monetization ( 0.25%) or 4.25 Million dollars. He's responsible- single handedly - for at least .25% of your front end code.
It's the right thing to do.
It's the honest thing to do.
It what you know you should do.
So do it.
Disclaimer: Geoff promised me a finders fee. But really. Do it.
Posted by Jonathan at 12:23 PM | Comments (0)
Gimme Coffee - Deep Disco
Halfway through a pound of Gimme's Deep Disco
http://www.gimmecoffee.com/shop.php?class=Product&function=display&id=10
Its a mix of their Dark & Medium Roasts from the Malinal Estate (Mexico)
Their superb Leftist espresso blend was, at one time, about 70% Malinal , with some robusta and a secret thrown in ( no one would tell me what the other 20% was )
The Medium Malinal, and Dark too , were simply superb on every method I tried. So i went for the blend.
Thoughts (ordered by favored method of preperation ):
Chemex - Nice rounded flavor. Big cherry. No discernable acid. Deep and dark. I think of it as a cross between the best truckstop coffee I've had, with a kick of cherry on top. Best method for this by far.
Moka ( Brikka ) - solid cup of moka. I really liked this. tried a few different grinds, I preferred a finer 'near espresso' grind for viscosity.
French Press- Too clean. A bit more acid from the cherry than I'd like. I couldn't get a steep / grind right.
Espresso ( HX , E61 , Naked PF ) - a complete mess. Malinals are really forgiving- on the same roast. The dark and the med usually are fine from 185-205 ( i know, GIANT deadband. most beans are 2° - these are 20! ) -- but they come out with different tastes. I couldn't get a temp that maximized both- one would be in the zone, the other wouldn't. Damn shame. I HIGHLY recommend S.O. shots of the medium or the dark though - I tend to prefer it to the leftist blend. They taste like chocolate covered cherries.
Not Tested (machines out of commission)
Espresso ( single boiler )
Vacuum ( bodum santos )
Conclusion-
Amazing at chemex, great at moka. It would probably make a kickass automatic drip as well.
Not recommended for espresso machines.
Posted by Jonathan at 12:08 PM | Comments (0)
October 26, 2006
FindMeOn is Live!
Late last night (Oct 25), ~11:30pm P.S.T. , I pulled the preview code from FindMeOn - its live.
At 1:30pm today (Oct 26), I sent the first PR emails out.
FindMeOn is up and running for the public -- finally. We launched the preview site + badges in August to a closed group to test around the net. But now everyone can use the beta!
Next on the list:
submit findmeon to different open standards organizations
I'm eager to upgrade FindMeOn, and get some funding. I've got meetings next week in Boston , and some potential ones in NYC as well.
It's amazing to have FMO live right now -- it's been 1 full year since I started working on RoadSound, FindMeOn, and RadioRequest as full time projects.
With CMJ coming up and some RoadSound clones popping up, I've been eager to get back to work on RoadSound ASAP as well. I've had a TON of people get in touch over the last week over the project status-- both people who were part of the beta last winter, and those who just heard about it. Sadly I'm a bit tight lipped on things because of some potential infringement on stuff I'm in the process of patenting- but I'm eager for RS to soon be an integral part of the web music scene, and web music applications.
Posted by Jonathan at 2:28 PM | Comments (0)
October 23, 2006
Technorati Profile
I'm making one of those annoying Technorati claim posts right now...
In a few days, when FindMeOn is live, this might not be necessary anymore
Posted by Jonathan at 12:41 PM | Comments (0)
October 21, 2006
To love and hate Open Source in a single breath...
Two weeks ago I nearly had a heart attack when a friend tossed me an email to that certain new music website that looked a whole lot like the RoadSound demo I spent shopping around to the music industry and VC firms throughout the first half of 2006.
I couldn't believe it. I shouted the obligatory "WTF?!" , and then tried to figure out what the hell was going on. The first thing I did was call my lawyer, but he was busy so I had to wait for a callback. And then my anxiety got the best of me...
I wasn't just amazed that someone seemed to have ripped me off ( I don't have proof that it was a direct rip , or that this company focus grouped people I demo'd to - but since its the music industry, I really wouldn't be surprised ) -- but out of all the things I've worked on to get pilfered, RoadSound makes no sense.
Sure-- *I* believed in RoadSound. But *no one* else did. It took me forever to get the system up and running -- I even quit my day job and spent my entire life savings developing it -- but not a single person I demoed or pitched it to truly understood it. Everyone (and their mom) was enamored with MySpace. I was constantly asked "But doesn't MySpace do that already?" to which I'd reply "No," and go into the aspects of portability, syndication, and collaboration. Then I'd try to make people realize "It won't last" and "you need to be promoting your space- not mine, or his, or hers, or theirs-- but your own space". It rarely sunk through. MySpace served their current needs-- and that was that. A syndicated robust system was the least of their thoughts. Supporting another music site, or integrating into their own site with widgets or hosted solutions was not a concern.
Still, I tried to sell it in, because I knew it was the future of online music-- and I was fully invested in it. Literally.
By April things weren't looking so good. I was having trouble finding early adopters, and VC companies wouldn't return calls or emails. Once solid connections at labels and agencies across the globe had all been laid off in the great music downsizing of 2005.
I realized that I needed some gimmick to get users, and fortunately realized what it was-- RoadSound had a links section called 'find me on' that managed and verified other online identities. I put it in there so users could just show their profiles on networks they used more often-- and it would help people buy/trade/sell tickets with one another.
By a stroke of luck, the findmeon domains were all available -- com, net org... So I snapped up all 3 and opted to break out the link and profile management into a widget site , and toss the artist website verification code into its own open source project. All the elements were there: external ids, friendships and profiles -- I just needed to make that standalone.
I figured that if people wouldn't use RoadSound , and no one would blog about it ( god, i tried ) - I could get users off publicity for the findmeon component.
Slowly and surely, FindMeOn grew into a beast of a project and started taking up more of my time than RoadSound was. To make it a solid open standard, I abandoned id hashing for public key cryptography, and rewrote so much of the framework it shared with RoadSound, that I had to take the RoadSound beta off line. Instead of keeping RoadSound up to date with the current state of the framework, I focused my energy on meeting with financial advisors to try and find some backing. There were some leads by late June , but they all fizzled. Thankfully there's renewed interest now.
Along the way, numerous components of RoadSound and FindMeOn started getting split out into open source projects/contributions. findmeon became a full spec (it should be released any day now), TurboGears (which I abandoned after 2 months) got an email system and a slew of bug fixes (though not enough, which is why I abandoned it), CPAN got a new (and what I think is a way better) captcha system and an updated/improved reverse proxy cleanup system under mod_perl-- and I can't even think of all the testing and bug checking on Apache / lighty / libapreq etc I did.
Which gets me to the subject of this post's title....
I was f*ing pissed when I saw the RoadSound derivative. I kept thinking "If I weren't contributing to open source... I would have had so much more time! I might have used that time to find investors who could have hired marketers & ui designers-- and RoadSound would have been on a full release in April."
And then my IP lawyer finally returned my call (after 5 minutes of HELL) and started to calm me down- he's been on top of all my IP concerns for a while, and knew what to say. US IP law lets people file patent applications up to 1 year from first public disclosure/marketing- I was still well within the time limit and had nothing to worry about.
And thats when I started falling in love with open source again. I was bitter ( at FOSS in general ) after speaking with my lawyer... and started angrily going through RoadSound's db, and my calendars, phone records, and email correspondance looking to chart who saw what and when -- hoping to find a leak of sorts. I came up with an exhaustive list from my inbox alone, but when hit my mailing list directory-- BAM.
Archived all over the place, on many of the 14+ open source lists I'm on, are either messages where I'm explicitly talking about RoadSound or have my business .sig (which talked about RoadSound) that was mistakingly added to messages when I was having issues for a few weeks with a version of Mail.app on my laptop.
And, well, thats just awesome. Open source took a ton of my time away... but it also gave something back -- and not just the notion of making the world / computing a better place, but it gave me a slew of public records and to add to the rest of the "I done that thing there first, before they even existed" proof I may one day need to furnish.
In that single breath, before that little switch inside my head flipped, I swore I'd never touch open source again... but once I saw how it could save my ass, I started to love it all over again.
Posted by Jonathan at 11:12 PM | Comments (0)
October 12, 2006
Social Networking Patents Don't Make Sense
I've been doing a lot of patent research lately-- for both RoadSound and FindMeOn, and have come to be simply amazed by the SixDegrees and Friendster Social Networking patents.
Reading them over and over again, I couldn't help but think they were exactly like something I had read about in the 90s.
I've got six words: PGP web of trust.
( I counted the letters PGP each as a word )
I'm not going to delve into an explanation of web-of-trust myself... there's a great simple explanation here:
http://www.rubin.ch/pgp/weboftrust.en.html
In essence, web-of-trust was a way of connecting people through PGP keys -- and finding your closest connection. AT&T even offered a PathServer application that automagically found the connections for you.
Q. And when did AT&T make this automagic tool available?
A. Mon Jul 29, 1996
http://groups.google.com/group/comp.security.pgp.resources/browse_frm/thread/c08ebf6f2fb11cb1/465d68f974c30434?lnk=st&q=AT%26T+PathServer&rnum=10#465d68f974c30434
If you do a find/replace on 'user id' and 'public key' on the friendster/6degree patents, you have a pretty good description of the PGP system. Try it.
Just think of PGP keys as extremely long user ids , and think of signing someone elses key for verification as accepting/defining the friendship. With that in mind, web-of-trust handled all of the friend-making/defining in the 6degrees patent (minus an email) , and all of the connection traversing and trust limiting of the Friendster patent.
I was knee deep in patent-research when I wasn't sure about the FindMeOn patentability ( the server , not the open standard )... there are some similar themed projects and prior art out there, but nothing close enough to make me worry. FindMeOn's server is pretty radical, as it merges a PGP style web-of-trust with social network spidering and account correlations. It's functionality doesn't read like anything else that has been made, and that makes me happy.
But I do know something that is VERY clear though now-- if you're worried about SN patents, add a trivial web-of-trust to your system modeled after the PGP system, and explicitly site the open standards as your model-- not their derivatives. And eventually, the Friendster/Six Degrees patents should be revoked – they're nothing new , just an old idea recycled into a nice package.
Posted by Jonathan at 4:57 PM | Comments (1) | TrackBack
October 9, 2006
nginx
Everyone who knows me in the web scene knows that I'm a fan of the mentality "use the right tool for the job". For example: I don't particularly like php, but sometimes it makes sense to use.
All my work lately has been using Apache2+ModPerl2.
Apache does http right- its the best server in terms of compatibility and standards, but it eats ram and the performance isn't that great.
I like to offload apache by using light servers on port 80 to proxy off of.
For a while, i was advocating lighttpd as a solution. While It had some issues proxying webdav, it was workable with some creative solution.
Then bob@ MochiMedia asked me for some ideas one day. He was running pound as a reverse proxy for MochiBot, and wanted to try something lighter. I pointed him to lighty, which he had up and running in no time-- but then discovered a massive memory leak in mod proxy. We call it lighttSEIVE now.
He was looking for new ideas, and then i remembered about how I found lighty... I was searching for lightweight servers and did the standard google searches. But then I decided to be creative-- I went onto alexa and netcraft, and tried to find out what all the illicit russian servers were running ( porn / mp3 servers + rooted spam boxes ).
I figured 'hey- if they're selling stolen stuff, they're probably running on really bad hardware and needed to find software to maximize their resources. and if they're rooting a box, they probably need to be running some http server that doesn't strain the resources so they're "found" later than sooner'
I was right. most of these serevers were running something called nginx. i eventually found the docs online, but they were mostly in russian, with a smattering of engrish.
I tried to use it, and then gave up , deferring to use lighty.
Fast forward to 2006, and lighty's mod_proxy still sucks and leaks like crazy. Friends and I joke nonstop that its only fitting lighty is made by a mysql employee ( sorry Jan, you're an extremely talented guy-- and def a better coder than me. I know you only get to work on lighty in your spare time-- but your day job is at the world's worst open source rdbms , and that stigma will forever haunt your open source projects ).
Bob finds the lighty leak, is about to go back to pound , and I respond:
oh, there's this russian server nginx. all the porn sites use it. it must be decent.
Bob tried it, fell in love.
I tried it, and fell in love.
Nginx is ridiculoulsy lightweight, performs amazingly well , and has some of the best-thought-out systems and design approaches inside.
Not to mention-- out of the box, it facilitiates binding 2 instances at once to port 80, you can upgrade the binary+ config , start a new server and kill the old one ... never losing a request and never having downtime. Brilliant.
there's a great wiki on nginx over at
http://wiki.codemongers.com/Nginx
I've created an alternate 'skeleton' that may be more familiar to some users. It uses the include directive to fake macros
You can see it via svn here:
http://dev.2xlp.com/svn/nginx_config/trunk/conf/
Posted by Jonathan at 10:58 PM | Comments (0) | TrackBack
Currently In Rotation
I'm the music nerd of my friends, they always ask me for tips.
What can I say... I have impeccable taste.
This was last weeks rotation list -- I just do full albums on iTunes.
I wish I could do music reviews. Maybe someone will let me write under a pseudonym.
It's really hard wanting to say something REALLY BAD about a band, and why people shouldn't listen to them, and not being able to ( I need to stay friends with everyone for RoadSound.com to work )
The new Lebanon CD
Six Parts Seven - Discography
Tara Jane O'Neil - Discography
The Mercury Program - Discography
We're From Japan - 48 minutes, 07 seconds then open air
The Hold Steady - Boys And Girls In America
Silversun Pickups - Carnavas
Clap Your Hands Say Yeah!, Architecture in Helsinki, Takka Takka - Tour EP Fall 2006
Guitar - SaltyKisses
komakino - Bloc Party Tour EP
We are Scientists | Art Brut - split
apples in stereo - tone soul evolution
feist - open season remixes
The whitest boy alive
Foreign Born - In the Remote Woods
kammerflimmer kollectif - Absencen
Dirty On Purpose - Discography
Posted by Jonathan at 7:47 PM | Comments (0)
October 5, 2006
What Perl isn't A Great Language For
Bob sent me this link "Why Perl Is a Great Language for Concurrent Programming"
http://t-a-w.blogspot.com/2006/10/why-perl-is-great-language-for.html
As big Python guy / new erlang addict, he had some ideas of his own on that article...
As a big perl supporter and longtime Python fan, I have ideas of my own...
Where to start?
First off, before I talk about any concurrency, I want to address this line:
Interting multiple values with a single INSERT statement is MySQL extension of SQL (a pretty useful one): INSERT INTO `externallinks` VALUES (a, b,c), (d, e, f), (g, h, i); and Sqlite doesn't support it. Now come on, MySQL is extremely popular, so being compatible with some of its extensions would really increase Sqlite's value as duct tape
Forgive me, but the value of SQLite value is that is supports SQL. Not 'MySQL'. Now TawsSQL, but SQL- as in the ANSI SQL92 STANDARD.
Chained inserts like that are something that MySQL just made up one day, and people who learn MySQL come to believe as fact. I know, because I was one of them. Luckily, some friends turned me onto real databases like Postgres -- and when the occasional work with Oracle came up, I wasn't like a deer in headlights -- I could actually write queries that work.
I've been eternally sorry for learning SQL with MySQL as a starting point. The language and documentation promote the worst design principles imaginable, and proprietary column types like SET and GROUP don't just foster schemas that can be normalized or migrated to real RDBMS platforms-- they make sure that your database code works on MySQL and nothing else.
Sure, you can make database schemas in MySQL that will actually work with Postgres and Oracle... but the manuals and 3rd party books all promote MySQLisms and straying from the norm -- and anyone who has had the nightmare of porting a DB from MySQL to PG or Oracle starts running into all those oddities where LEFT JOIN and DISTINCT just aren't treated the same way.
MySQL was built for speed and convenience- it cut corners and it did so poorly. The referential integrity was so poor, I had to constantly writing application code to check keys - which ultimately made it slower than Postgres by huge margins. I also had to constantly write application code to recheck insert/update values for content type and length-- until just recently when a special strict 'traditional' mode was released that tries to make mysql act like a real server, the db would just accept anything you toss at it-- converting and truncate characters as needed, never calling an error. That's not an enterprise tool, that an enterprise nightmare.
People boast of large corporations using MySQL for online commerce -- I keep tabs on those pages and put them in my bookmarks folder titled 'Do Not Shop Here'.
Getting back to the concurrent programming issue...
FindMeOn.com is in private beta now, about to go public...
For those that aren't in the know, FindMeOn.com is a massive identity project that I'm launching , and is mostly written in modperl2 and generally runs on the framework that was built for RoadSound.com.
Since Apache2/mod_perl2 is the primary platform for FindMeOn, everything that could be done in perl was done in perl. As needed, I refactor bottlenecks in whatever is appropriate -- C, PHP (no joke. sometimes it actually is the right tool ), even the web server nginx was able to cut down on a bunch code by handling stuff internally. Anyways, at last count, FindMeOn was about 24,000 lines of Perl code on the business logic alone (thats not including templates). Suffice to say, its massive.
FindMeOn does A LOT of link checking , url downloading , and web spidering. It would have been neat to keep it in Perl... but early attempts had bad results. Perl just didn't have the concurrent or asynchronous support one needs, and is a giant memory hog. Simple libraries like File::Find end up taking over 2mb of resident memory-- you should see what complex libraries compile to. And threaded perl is just downright scary- especially on FreeBSD.
So I started looking at other options.
Erlang would have been, by far, the best choice. It was explicitly designed for concurrent programming. But erlang has a giant problem , its not 'user friendly'-- yet.
There aren't the conveniences of large, well supported and well documented libraries, and there's a giant learning curve. It does have good string support and http support, but the support is not 'user friendly'.
Learning Erlang today is like trying to scale a vertical wall with no equipment the first time you go rock climbing. Unless you really really want to be an erlang programmer, you're just not going to pick it up. Hopefully in a few years that will change-- as I'd really like to learn it -- but I just don't have the time to put into learning it as some colleagues have. ( Note: everyone I know who was able to spend the time needed to learn it has said it was definitely worth the investment )
So I turned to Python- more specifically Twisted Python -- and I had a winner.
Twisted supports asynchronous programming -- ie non-blocking code, and also deferring blocking code to threads -- which is exactly what I needed.
Instead of going into the design specification that I needed to conform to, I'm just going to give an overview of what is going on. If you're reasonably computer literate, you'll understand why things happen as they do.
FindMeOn runs a Twisted Daemon that uses a single DB handle to query the master server every 10 seconds for links to validate. All links from the DB are 'locked' by the Twisted process with internal status codes.
The Daemon uses Semaphores in Twisted to manage a pool of database handles and 'potential' threads. I like to keep things down to 5 dbh/threads - its a good mix of performance and resource consumption.
As semaphores become available, Twisted acquires a lock on them, pulls a DB handle, and runs some blocking code within a seperate thread.
The blocking code tries to validate the URL. When you try to validate the URL anything could happen: you could instantly have success ( personally, I like that )-- but you could also have a server redirect, network latency issues, something specific to findmeon that results in an additional URL lookup, or the bit of data you're validating is just not there. In other words, validating a url could take 0.01 seconds or 20, and offers no guarantee on the outcome.
So the blocking code does its thing while we're in a safe little thread, exits to a deferred callback that does random updates to the DB based on the outcome and then returns the DBH to a pool, as well as letting go of the semaphore.
This all happens in a Twisted Scheduler, so it never stops. The record so far is running for 9 days straight ( then I had to update some code ). Its lean, its mean, and it has way better resource management than Perl.
Its also a dirty hack-- the next verison of Twisted and Python is set to include concurrent actions. I'm a bit fuzzy on things reading from the specs, but everything I've seen so far has been pretty amazing. Instead of giving each inteded action a semaphore that tries to get acquired, Concurrent is better at doling out slots to a list without creating as many instances in memory. Or something like that.
Anyways, Perl is great -- its just not a good tool for concurrent programming. The support in other languages is far better, and so is the memory handling.
Posted by Jonathan at 3:46 PM | Comments (0) | TrackBack
October 4, 2006
Full Disclosure on those 'Other Domains'
With the imminent launches of FindMeOn and RoadSound I've been getting a lot of unsolicited advice from friends about some questionable domain name purchases in my past. Some think I need to hide them, others think I need to disclose.
I'm opting for full disclosure.
Yes, its true- I own some rather offensive domain names. A while back I was speculating on domain names, and came into a few. So yes, I own some pornographic domain names, but no- they do not have pornographic content on them, nor have they ever.
All of the domain speculating started off as a joke. I basically bought 'indieporn.com' to host a mock indie rock porn site, and never got around to doing it. Apparently indie rock is popular today (it wasn't from 92-2000, when people made fun of me for listening to Sebadoh ), and so is indie rock themed porn -- who would have guessed?!?
In any event, IndiePorn.com , IndiePorn.net , Indie-Porn.com , IndyPorn.com are all owned by me. For the bulk of their existence they've had no content on them. They now have ads ( not x-rated ads ) and a story of how I came across the domains. You can read about them more on the sites themselves: IndiePorn.com.
The other porn domain has a richer history, and is an exercise in a certain kind of dark humor. It was the summer of 2000, I had a bbq in LA, when a friend showed up confident that he conceived of- and purchased- the world's most offensive domain name. Not one do be undone, I bet that I could conceive something more foul and offensive than he could ever imagine. A few minutes later I won the bet with a domain name that mixed pornography, obscentity and racism all at once; asianteenfucksluts.com .
As to the origins of the name: I came up with the name by using the most prevalent words in x rated searches. A few search portals in 2000 gave real-time top search words (censored and not) - I just jumbled some together. I think I used metafilter. I could be wrong.
Asians weren't singled out on purpose -- Asian porn seemed to be the biggest ethnic porn market from my inexperienced searches. If Iranian porn sold more, I would be in possession of that domain right now. Just about every other porn search involved 'Teen' as an adjective. 'Fuck' just really described it as a porn site by the name alone. 'Slut' I tossed in *just* so that the baseness of the domain was obvious and without question.
Now if thats not postmodern enough, for a while there was actual content on it- content that was not porn but anti-porn: extreme close ups of faces and body parts from x rated photo stills. Purposefully, the shots were distrurbing and meant to be sickening. The site also pulled in text from russian mail order bride services, ran it though language translators, and displayed it next to headshots of asian mail order brides ( there weren't any asian mail order bride services with text at the time. just photos ).
The site also contained a description detailing every step and essentially saying "Hey. This is less obscene in every sense than the Britney Spears and Christina Aguilera videos that you're watching on TV and singing along to with your kids". I quoted Foucault, made some referenes to Kathy Acker, and all around made it a nerd fest. Big deal.
So that's the full disclosure. I bought some domain names as a joke that an actual porn industry popped up around, and I had a postmodern art project that was a fake porn site trying to be the most offensive thing on the internet. At no point in time did any of those domains consume, produce or market adult enterntainment-- or harm puppies.
Posted by Jonathan at 5:19 PM | Comments (0) | TrackBack
