Currently:
Archive for the ‘Uncategorized’ Category
2008-08-18»
inbox seventy-two thousand; email2vcard»
Typically my spare time today was spent in the folllowing proportions: 2 hours allotted to emptying my inbox; 3 minutes spent actually emptying my inbox; 1 hour, 57 minutes spent writing a program to theoretically “help” me empty my inbox.
Spreading the procrastination around, here’s that code. It’s for the millions of people who, like me, use good old command line mutt and a graphical contact manager on Unix (although I think it may have more uses than that). It takes a standard email, pulls out the name and email of the person the mail is from, generates a vCard, and then attempts to open that vCard in your nearby contact manager. It uses vobject, hewn from the glowing pits of Chandler, which you can install with easy_install vobject
or apt-get install python-vobject
. Hours of entertainment.
Things you might be able to glean from this:
- my vaguely okay wrapper for command line python utilities, concealed in the Main() class.
- vobject is pretty good for handling vCard and iCal objects. I’ve used it a few times.
- if you ever want to open a file using the correct handler under GNOME/KDE, xdg-open is your friend.
- my ingenious solution for not knowing when the contact handler (in my case, Kontact) will actually pick up the vCard, which is stored in a temporary file that I delete at the end of my program — just wait five seconds, and then delete it. How hacky is that?
- that python’s subprocess module badly needs more helper utilities, IMHO. That subprocess.Popen stuff is just Python’s new way of saying “run a shell command”, and it should be clearer than that.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
#!/usr/bin/env python ## # email2vcf.py ### """email2vcf.py """ __version__ = "0.1" __author__ = "Danny O'Brien <http://www.spesh.com/danny/>" __license__ = "GPL v3" import vobject import email from email.Utils import parseaddr import tempfile, os, subprocess, time class VcardableMessage(email.Message.Message): def toVcard(self): r""" >>> from StringIO import StringIO as st >>> em = "To: me <me@spesh.com\nSubject: a test\nFrom: Testy McTest <test@spesh.com>\n\nThis is my phone numner: +1 555 134 5678\nThanks!\n\nd." >>> p = email.Parser.Parser(VcardableMessage) >>> m = p.parse(st(em)) >>> v = m.toVcard() >>> print v.n <N{} McTest Testy > >>> print v.fn <FN{}Testy McTest> >>> print v.email <EMAIL{}test@spesh.com> >>> print v.note.value From email message-id: Unknown Dated: Unknown Subject: a test """ v = vobject.vCard() (name, email) = parseaddr(self['From']) family = None givenname = None if ',' in name: (family, givenname) = name.split(',') if ' ' in name: (family, givenname) = name.rsplit(' ', 1) if not family: givenname = name v.add('fn').value = name v.add('n').value = vobject.vcard.Name(family = family, given = givenname) v.add('email').value = email mid = self.get('message-id', 'Unknown') dt = self.get('date', 'Unknown') sub = self.get('subject','Unknown') v.add('note').value = 'From email message-id: %s\nDated: %s\nSubject: %s' % (mid, dt, sub) return v def main(args): """ Convert mail to vcard, then kick up systems' vcard handler""" if len(args) == 0: st = sys.stdin if len(args) == 1: st = file(args[0],'r') p = email.Parser.Parser(VcardableMessage) m = p.parse(st) v = m.toVcard() f = tempfile.NamedTemporaryFile(prefix="email2vcf", suffix=".vcf") f.write(v.serialize()) f.flush() p= subprocess.Popen("xdg-open" + " " + f.name, shell=True) sts = os.waitpid(p.pid, 0) time.sleep(5) # give app long enough to import the data f.close() import sys, getopt class Main(): """ Encapsulates option handling. Subclass to add new options, add 'handle_x' method for an -x option, add 'handle_xlong' method for an --xlong option help (-h, --help) should be automatically created from module docstring and handler docstrings. test (-t, --test) will run all docstring and unittests it finds """ class Usage(Exception): def __init__(self, msg): self.msg = msg def __init__(self): handlers = [i[7:] for i in dir(self) if i.startswith('handle_') ] self.shortopts = ''.join([i for i in handlers if len(i) == 1]) self.longopts = [i for i in handlers if (len(i) > 1)] def handler(self,option): i = 'handle_%s' % option.lstrip('-') if hasattr(self, i): return getattr(self, i) def default_main(self, args): print sys.argv[0]," called with ", args def handle_help(self, v): """ Shows this message """ print sys.modules.get(__name__).__doc__ descriptions = {} for i in list(self.shortopts) + self.longopts: d=self.handler(i).__doc__ if d in descriptions: descriptions[d].append(i) else: descriptions[d] = [i] for d, o in descriptions.iteritems(): for i in o: if len(i) == 1: print '-%s' % i, else: print '--%s' % i, print print d sys.exit(0) handle_h=handle_help def handle_test(self, v): """ Runs test suite for file """ import doctest import unittest suite = unittest.defaultTestLoader.loadTestsFromModule(sys.modules.get(__name__)) suite.addTest(doctest.DocTestSuite()) runner = unittest.TextTestRunner() runner.run(suite) sys.exit(0) handle_t=handle_test def run(self, main= None, argv=None): """ Execute main function, having stripped out options and called the responsible handler functions within the class. Main defaults to listing the remaining arguments. """ if not callable(main): main = self.default_main if argv is None: argv = sys.argv try: try: opts, args = getopt.getopt(argv[1:], self.shortopts, self.longopts) except getopt.error, msg: raise self.Usage(msg) for o, a in opts: (self.handler(o))(a) return main(args) except self.Usage, err: print >>sys.stderr, err.msg self.handle_help(None) return 2 if __name__ == "__main__": sys.exit(Main().run(main) or 0) |
3 Comments »
2008-08-16»
better living through probability: nationmaster and fivethirtyeight»
Today involved pancakes, the massively co-ordinated garage sale of Bernal Heights, and preventing (and failing to prevent) small child injuries. Now I’m listening to Americans talking about being kids being made to read hefty classics which are thus ruined, like Moby Dick and Ivanhoe and Hemingway and … Ivanhoe? They make them read Ivanhoe here?
Yes, it’s Saturday, and you catch me racking myself over what to write about in this weeks’ column. I think I’d be more peppy if I hadn’t spent far too long last night browsing NationMaster and playing International Man of Goggling At Slightly Dodgy Statistics. Then I stumbled on Visualizing Economics and after spending a few minutes sniggering a bit too much at their plots which look like visualizations of random number generators, got far far too involved in their archive. I started with this depiction of share of world GDP of various countries from 1500-2000 (population over the same period is a nice complement).
For those of you with a matching love of statpron, and about to get overinvolved in US presidential politics (whether through your own choice or that of your dominant media), I heartily recommend Five Thirty Eight which takes a probabilistic approach to the election, running a simulation system 10,000 times and showing the number of times each split in electoral votes occurred in their dice rolls. The tone is slightly Obama-tilted ( with a 5% margin of snark provided by an ex-You Don’t Know Jack editor).
It is a beautifully quantum-multiverse view of the election — as though on the day I will absolutely confident that there will be thousands of universes out there where Alaska went for Obama, or where McCain lost Ohio but won the war: I just won’t know which one I’ll be navigating to. Oh the tiny fluctuations that lead to such endless points of divergence!
Comments Off on better living through probability: nationmaster and fivethirtyeight
2008-08-13»
the sort of day a horrible stereotype of me would have»
Woke up feeling like the National Sleep Debt, danced with daughter to Fatboy Slim’s remix of magic carpet ride
until we were late for school, returned back to struggle (unsuccessfully) with Skype for ORG board meeting call-in, email, run off to record Cranky Geeks, skidaddled to have lunch with Ben Goldacre, who I’d not met before (although am apparently in some big conspiracy with) but I now like a bit too much. Exchanged anecdotes regarding survivalists, on being sued, Americana, assorted data valdez, epidemiology. Had awful suspicion he is as charming as this with everyone. Quick email catch-up, run to pick up daughter. Daughter suggests we explore, get stuck on wrong side of Bernal Heights, shiver as fog closes in, ruefully consider that we may have to survive on only the toy dogs that we find abandoned outside hilltop aromatherapy spas, spend rest of evening trying to find useful link to Fatboy Slim’s remix of “Magic Carpet Ride” to begin this blog with. Wave fist at errant god of consistent metadata and music business models. Talking of which, I am vaguely cheered by continuing leaks of voluntary-collective-license-like systems being considered in UK, although still cautious about technological implementation, privacy issues and other yet unanswered questions, also how close labels always get to this before rearing like frit horses and then galloping off, and, most of all, just how fantastically, painfully, and repetitively smug Andrew Orlowski is going to be if it does come together. Decriminalising millions and saving the music industry will barely make up for it.
Content-free post, so as tradition demands I shall spackle it up with yet another old column from Linux User and Developer, called Danger Dot File. I don’t care what you think, I find these pieces intensely amusing, if only out of amazement that I have lived in an age where one can be paid to write jokes about Unix configuration settings.
Comments Off on the sort of day a horrible stereotype of me would have
2008-08-12»
digging tahoe; wattage update; @fontface!»
After Sunday’s brunch conversation, where we idly dreamt of a capabilities-based distributed-hash-table fault-tolerant filing system, Jeremy took a closer look at Tahoe, Zooko’s project that I’m continually plugging without completely understanding, and noticed that that is exactly what it is.
Last time I played with Tahoe I blundered into a dark alleyway full of unmet python dependencies and got mugged, but the latest version installed a lot more cleanly, and we now have a mini-grid going. I’m also re-reading RFC’s 3401 – 3405 on the Dynamic Delegation Discovery System. I can’t honestly tell you why it feels to me like these are all interlinked, because I’m still at that point where it’s all just pieces looking rather sad on the floor of my garage. I have good instincts, I think, but slow to rationalise, and I backtrack alot. Right now, for instance, my instincts are to put the DiSo people, the AllMyData people, the Zeroconf person, and several bored iPhone hackers in one room, lightly steam them in mild entheogens, and then just when they’re getting somewhere, divert a stampeding herd of straight-edge yet angry and dissolute teenage router-distribution developers into the building. And that can’t be right, so I’ve clearly got some more thinking to do.
I’m going to start dividing up these blog entries when I mention more than one thing, for the love of the metadata. But these are really throwaway items: we discussed how much power a home server draws, and I pulled figures from beyond my arse, but I’ve just run Kill-A-Watt on my old MacMini powerserver (the one running this website), and it does indeed pull down around 17W average. My arse speaks sooth. Of course, I’m not taking into account the cable modem, and the wifi router, so I guess I need to look into that.
In other news, one of the oldest bugs (but not the oldest!) that I watch in Firefox (@fontface support) is getting some new love. Soon, all the major browsers will be able to use downloadable fonts, and then what fresh desktop-publishing linotype hell will we be in?
6 Comments »
2008-08-10»
brunch with bacon; affordable terabytes»
“Why is everyone in San Francisco obsessed with bacon?”.
“The city is built on it. Well, interleaved strata of bacon and vegans”.
I went to a geekhaus brunch, and the bacon was delicious (this is the same group who had successfully created bacon vodka, so it was bound to be.) Rose talked a bit about her research into hacker spaces, most notably the European spaces, but also the parallel US developments like l0ft and NYC Resistor. Jeremy and I spoke a great deal about what the low-hanging-fruit was for the edge-work. I’d initially thought that hacking on making WordPress a platform with some of the functionality of the centralising social-networking sites would be useful, but of course there is already lots of work going on in that space that is already producing results – DiSo and BuddyPress being the two main ones I know about. I need to set aside an evening or two to really grok the standards that DiSo is using.
So instead we talked about the slightly higher-hanging fruit, still unplucked since the last time this was at the forefront of people’s minds. Around then I went looking for smarter people than me to talk to, and ended up crammed into the back of a car with Jonathan Moore,Bram Cohen, and Zooko. I’m really pleased that Zooko is taking a lead on distributed file systems with Tahoe, and I really must drag Jonathan away to talk about all of this, as he’s is one of the most absorbent academic-paper-readers I know. Skimming through some of the XMPP and DiSO discussions, it feels like they’re discussing Zooko’s triangle-style problems right now; I expect they know the reference.
Terabyte drives are down to $175 now. Not quite the $70 I thought we’d have reached by now, back in 2002 — but then, I’m not sure if IBM was factoring in a collapse in the dollar when they published those figures (Matt Daley has a more up-to-date, Australian, perspective) . And we still have the rest of the year to catch up!
1 Comment »
2008-08-08»
the edge at sxsw»
Liz put forward my “Living on the Edge” talk up for the popular vote South-By-Southwest Interactive (you’re allowed to pressgang other people into appearing, apparently). She let me know I was a contender with a few minutes to go before the deadline. Attempting to re-assert control over my life, I improvised some more proposals: an EFFy event, and one Life Hacks confessional.
As a consequence, it now looks like I’m trying to spam the SXSW panel-picker, and I’m not, no no no I’m not.
Anyway, feel free to vote for me in any combination of ways. Here’s the selection:
- Living on the Edge (of the Network)–
How and why we must move to the edge of the network, the edge of the Internet cloud, taking our data out of the hands of centralized corporate services. We can colonize routers and IPv6, phones, and other edges and keep our Internet nodes free and edgy (not my description, but I like it!)
- How Not To Be Evil (Even By Accident) – Everyone starts with good intentions (well, almost everybody). But when your Net idea goes huge, or the bottom line lurches, we’re all tempted to cut corners on that hip “don’t be evil” pledge. Panelists from the Electronic Frontier Foundation and elsewhere reveal how you can stop your future self from betraying you, your values — and your users.
- Life Hacks Babylon — Gurus Give Their Self-Help Nightmares – Ever wonder if those people blogging about ways to get things done, reach inbox zero, fight procrastination and develop ten new ways to tie their shoelaces are just a little *too* obsessed? You don’t know the half of it. Nightmare tales of self-motivation gone awry from the big names in self-help.
You know, I think people hate self-publicity in blogs, but I realise why people do it. It totally lets you fill up space with something you know vaguely about.
Anyway, here’s what I slapdashedly picked from the 1198 other entries(!), picked without comment (except that the first three are from friends, who I’d vouch for as being particularly good. Or particularly my friends, depending on how you see these things).
Firefox hint: if you hit Ctrl (might be a different control key under Mac or Windows) as you drag over a table, you can select individual cells and columns, and you can paste those cells into forms or spreadsheets and preserve the table data.
Rachel Chalmers, The 451 Group |
The Storm Cloud: Business, Infrastructure and Generation Y |
Rachel is very very smart, and fascinating topic. |
Liz Henry, BlogHer |
Open Source Disability Gadgets: DIY for PWD |
Liz has lots of great things to say on this. |
Jason Schultz, UC Berkeley School of Law |
User-Interpreted TOSes: Who Defines the Fine Print? |
Jason is always great on this kind of things. |
Dennis Dayman, Eloqua |
Email Deliverability Secrets from Deliverability.com |
I’ve been interested in email deliverability since the Goodmail farrago; it’s sort of the SEO of SMTP, but it gives you an interesting insight into the collateral damage of spam. |
Derek Neighbors, Gangplank |
Collaborative Development Environments |
|
Samhita Mukhopadhyay, Feministing.com |
That’s Not My Name: Beating Down Online Misogyny |
Women are getting really smart at dealing with nasty attacks, which isn’t surprising as they’re pretty much the first in line to get them. |
Jeff Eaton, Lullabot |
Drupal With Its Pants Off |
Extra star for title. Drupal is what we use at work. |
Andrew Feinberg, Washington Internet Daily / CapitolValley.net |
Hackers Meet Hacks: Tech-Friendly Public Policies in the Digital Era |
Washington Internet Daily are a pretty good source for inside tech policy wonkiness; it’d be interesting to see a view from inside the beltway. |
Tony Shawcross, Denver Open Media |
Why NonProfit is the Right Choice for your Startup |
One of those “how much do I actually know about non-profit work’ fact-checks. I can never tell whether I’m hopelessly clueless or actually quite experienced. Yes, it is all about me. |
Brian Zisk, brianzisk.com |
Policy Trainwreck: How Copyright Law Failed the Digital Age |
Brian’s a mensch, and has seen this whole battle play out from a great vantage point as both an insider and outsider to the music business. If they’d followed his advice ten years ago, they wouldn’t be screwed. |
Chris Bucchere, bdg |
Not So Simple Any More: RSS’s Bleeding Edge |
Sort of curious about potential new uses for RSS, still. I still struggle to think of how to use RSS to deliver private data between individuals. |
Aarron Walter, The Web Standards Project (WaSP) |
No Web Professional Left Behind: Educating the Next Generation |
Want to get a grip on where WaSP thinks things are heading. |
Joshua Baer, OtherInbox.com |
Don’t Declare Email Bankruptcy! Take Control of Your Inbox. |
Contractual Life Hacks obligatory attendance. |
Sandy Jen, Meebo, Inc. |
Scaling Synchronous Web Apps |
Interesting problem! |
Rusty Hodge, SomaFM.com internet radio |
Rewriting the DMCA: How to Improve Section 114 |
Always up for policy suggestions. |
Jonathan Dahl, Tumblon |
Functional Programming Without A (Strictly) Functional Language |
Just like seeing something like this at SXSW. Might well be more interested in the audience than the topic. |
Megan McCarthy, Freelance Writer |
Surviving Scandal: How to Manage Negative Attention in the Internet Age |
I have a feeling I will hate what ends up being said here, but that’s no reason not to go. |
Mark Taylor, Level 3 Communications |
DRM is Dead |
Well, duh. |
Patrick Moorhead, Avenue A | Razorfish |
The Invisible Web and Ubiquitous Computing |
I shall drop by and see if ubiq still has the smell of 2001 about it. |
Larry Chiang, What They Dont Teach You At Stanford Business School.com |
What They Dont Teach You At Stanford Business School |
I like confessionals. |
Martin Kliehm, namics (deutschland) gmbh |
The HTML 5 Canvas Element |
I love love love Canvas. It’s like having a little Apple ][ in your browser. |
Eric Steuer, Creative Commons |
Did You Get Ripped Off? Understanding Appropriation |
Thinking lots about appropriation at the moment. |
Evan Carroll, Capstrat |
Who Will Check My Email After I Die? |
Why not think about this? |
Vince Parr, Globe Telecoms, Inc. |
Growing Your Web Traffic Through Mobile Phones in Asia |
Don’t have enough anecdata about telephony in asia. |
Rebecca Moore, Google |
Google Goes to the Amazon |
Sounds like a fascinating story. |
Jack Moffitt, Chesspark |
The XMPP Powered Web |
I am all about the Jabber. |
Lisa Herrod, Scenario Girl |
Aging, Cognition & Deafness: The Quirky Corners of Web Accessibility |
Inherently fascinating. |
Cyrus Massoumi, ZocDoc, Inc. |
Solving the Healthcare Problem…Online |
Worthy. |
David Marks, Loomia |
Privacy and Personalization – Oxymoron or the Perfect Match? |
Again, angles on privacy always interest me. |
Allen Tom, Yahoo! |
OpenID: Foundation of the Social Web |
Want to see big OpenID death brawls. |
Chris Gammon, Ludorum |
Google Runs My Office |
Opposing POV to the edge talk. |
Tim Hwang, ROFLCon |
The State of the Internet Memescape: 2008-10 |
Funny, I hoop. |
Edwin Outwater, EO3 Consulting |
Love Thy Archivist for He Will Become a Profit Center |
Archivists are always the lynchpin. Hopefully they can escape being turned into ‘profit centers’. |
Keely Kolmes, Keely Kolmes Private Psychotherapy Practice |
Therapy 2.0: Mental Health for Geeks |
Undercovered. Have overpowering personal interest. |
Gabriela Schneider, Sunlight Foundation |
How the Internet is Transforming Governance |
Sunlight are doing really great things right now. |
David Crow, Microsoft |
The World Isn’t Flat – Building the Next Silicon Valley |
I end up having to write a “How do we make X into the next Silicon Valley’ piece every 18 months. |
Doc Searls, Berkman Center for Internet and Society |
VRM – the Consumer’s Revenge |
Doc always has something pertinent to say. |
Dan Willis, UX Crank |
User Experience 2009: More Crap You Already Know |
Title made me laugh. |
Jack Moffitt, Chesspark |
X Is For XMPP: An Open Messaging Primer |
Jabber, jabber, jabber. |
Marian Merritt, Symantec |
Is Good Cyber Citizenship Really Necessary? |
Have a feeling I will agree with everything here, but always like to hear it. |
Natasha Sakina Alani, Adaptive Path |
Designing Rural Infrastructure: A Euphemism for Money Laundering |
Damn true. |
Eileen Gittins, Blurb, Inc. |
Pursue Your Passion — Leave the Infrastructure to Someone Else |
Will try not to be bratty contrarian at back. |
Scott McDaniel, SurveyGizmo |
How to Become a Google Analytics Expert in a Weekend |
Analytics is one of those places where people give more to Google than they get back: I want to see what they get. |
Robert Scales, Raincity Studios |
Using Drupal to Manage, Publish, and Promote Your Content |
Drupal must meet my ignorance head on. |
John Athayde, Hyphenated People |
Learning from Architecture |
Ex-architects are always great conversation-at-3AM people. |
Jason Seifer, Rails Envy |
OAuth in Every Language |
Need… to… understand.. Oauth… better. |
Paul Schreiber, Apple |
Your Error Messages Suck: Stop Doing That |
Will attend for the funny examples. |
Glen Campbell, Yahoo! Inc. |
Kill the Fail Whale: Scale Your Site |
Scaling is fascintating. |
Michael Verdi, Millions of Us |
Machinima Kung Fu |
Have failed to track machinima for last 5 years, want to catch up. |
Jeffrey Palermo, Headspring Systems |
Managing High-Performing Agile Teams |
Vicarious love of agile anecdotage. |
John Zeratsky, Google |
Getting Things Done the Simple Way |
Obligatory Life Hacks attendance. |
John Erik Metcalf, Entrepreneur / Conjunctured Coworking / Startup District |
Ditch the Valley, Run for the Hills |
Love Austin. |
Fred Benenson, Creative Commons |
Non-Profit Technology Work: How You Can Do Good |
Again, want to understand non-profiteryness more. |
Heather Champ, Flickr |
From Flickr and Beyond – Lessons in Community Management |
Heather rules. |
John Eckman, Optaros |
Open Source and Design: Ideologies Clashing |
Current obsession. |
Scott Barnes, Microsoft Corp. |
Why the F#$k Should I Care About RIA? |
Yeah, why the fucking fuck should I? |
Derek Gottfrid, The New York Times |
Exploiting Massive Parallelism for Fun and Profit |
Know the story, want to know more. |
Andrew Parker, Union Square Ventures |
Hacking Philanthropy |
Sort of obligatory, though have yet to hear good version of this story. |
Izzy Neis, Six Degree Games |
Ask the Moderators: Q&A with Kids Communities Managers |
Want to hear realistic take on how “omg think of the children” scenarios are actually handled. |
Colin Henry, LiquidPlanner / Apptio |
F*cking with Human Backed Web Services |
Smells like a hack. |
Bhaskar Roy, Qik |
Tinkerers Unite: Let Me Show You How it Works |
Yay fredom to tinker. |
Jakob Heuser, Gaia Online |
Unit Testing Back to Front: Prove it Works! |
Testing changed my life. |
Maria Diaz, Writer |
Growing Up as An Internet Oversharer |
Public/private dichotomy – you’ll always get me with that. |
Alex Hillman, Independents Hall |
Do Well by Doing Good – Civic Entrepreneurship |
Worthiness. |
Margaret Stewart, Google Inc |
Herding Cats: The Role of the UX Manager |
User experience handling in something I want to know more about. |
Jon Wiley, Google |
Back Off Man, I’m A Scientist: User Generated Discovery |
Title made me laugh. |
Jason Reneau, MindBites |
Debunking the Free-tard Manifesto: Marketplaces, Content & Rationality |
Expect to get really really angry at this. It’s a good emotion! |
Joe Solomon, EngageJoe.com |
How to Save the World with Firefox Extensions! |
Want to know more about FF. |
M. Jackson Wilkinson, Viget Labs |
Fitting Design and UX into an Agile Process |
Again, UX and agile has been a question I’ve had for 5 years. |
Thor Muller, Get Satisfaction |
Welcome to Your Posthuman Future |
Oh, gotta go to the posthumanist SIGs. |
Rebecca Fox, mediabistro.com |
Why Is Professional Blogging Bloodsport for Women? |
See general interest in dealing with trolls. |
Dana Loesch, Mamalogues.com / KFTK 97.1 FM |
Protecting Your Intellectual Property |
They trademarked their name? WTF? |
Guy Tennant, Entriq |
DRM and Content Providers: A Match Made in Heaven? |
Will inevitably be fascinated by this. |
Tim Keanini, BayMOO.org |
What Can MUDs/MOOs Teach us About Social Technologies? |
Will come for the audience. |
Danny Kolke, Etelos, Inc. |
OpenID, OAuth, Data Portability and the Enterprise |
Put off by mention of ‘the enterprise” but Oauth draws me in. |
Bruce Henry, LiquidPlanner |
Forgetting FTW! |
Good choice ‘o’ topic. |
Jeremiah Robison, Slide, Inc. |
Scale or Die: 10 Lessons About Scaling and Security |
Anecdotage on scaling is always good. |
Gareth Knight, Kindo.com |
Lessons Learned Building Global Apps with Multi-Cultural Teams |
International relationships – ongoing obsession. |
Tantek Çelik, tantek.com |
State of the Microformats |
Tantek! The casanova of the div tag! |
Tara Hunt, Citizen Agency |
Making Whuffie: Raising Social Capital in Online Communities |
Tara knows much, good speaker. |
Sarah Lefton, UGOBE |
Welcome Our Robotic Overlords: The Birth Of New Hot Industry |
Robots! |
Heather Gold, subvert |
Making a Living Being Yourself |
Heather! |
Amy Hoy, Hyphenated People |
How to Be a Glorious Generalist |
You had me at everything. |
David Crow, Microsoft |
How to Demo Like a Demon |
I imagine this has stagecraft stuff in it, which I still maintain an interest in. |
Fred Benenson, Creative Commons |
DRM: The Fight Isn’t Over Yet |
Haha, will people please make up their mind? |
Jacob Harris, The New York Times |
Get Me Rewrite! Developing APIs and the Changing Face of News |
Journalism + tech is current obsession. |
Anton Kast, Digg |
Collaborative Filters: The Evolution of Recommendation Engines |
Hmm, if it references academic papers, I’m all in. |
Sachin Agarwal, Dawdle.com |
Influencing Internet Legislative Changes: Why and How |
This sounds deeply in my area. |
Lilia Manguy, Avenue A | Razorfish |
Successful Incentive Systems for User-Generated Content |
Weirded out enough by this to be interested. |
Aral Balkan, Singularity Web Conference |
Building on a Cloud |
Finding out what people make of cloud infrastructure. |
Mark Hines, Ratchet |
How Decentralization Impacts Your Content Management Strategy |
Decentralization! Gather around everyone! |
Clay Johnson, Sunlight Foundation |
Coding for Civic Participation |
Sunlight out in force. |
Eran Feigenbaum, Google |
Safety From Above: Cloud Computing and Enterprise Security |
More cloud anecdata. |
Sean Bonner, seanbonner.com |
Change the World in 5 Easy Steps |
Have never met Sean, want to. |
Doc Searls, Linux Journal, Harvard Berkman Center |
Rebuilding the World with Free Everything |
Doc! |
Jonathan Zittrain, Oxford University; Oxford Internet Institute |
The Future of the Internet and How To Stop It |
Zittrain! |
Dan Hon, Six to Start |
We Told Stories – Designing Storytelling Online |
Dan! |
Joi Podgorny, Ludorum |
Setting Up and Running a Remote Team in China |
China! |
Dan Hon, Six to Start |
The BBC, Six to Start and ARGs – Bringing TV to the Web |
Dan again! |
Traci Fenton, WorldBlu, Inc. |
Democracy, Design, and the Future of Work |
Democratic workplaces! I haven’t though about that since 1998! |
Mason Hale, OneSpot |
In the Cloud: Massively Parallel Computing for Everyone |
Parrallelism! |
Dave Lester, George Mason University |
Edupunk: Open Source Education |
For the title! |
Anthony Berman, Berman Entertainment & Technology Law |
Is It Time To Update the DMCA? |
So deep in my work thinking. |
|
|
|
Peter-Paul Koch, QuirksMode.org |
State of the Browsers |
Need a recap. |
George Kelly, Bay Area News Group-East Bay |
Rules for Radicals: Strategic Interventions vs. New Media |
Have been reading Alinsky recently. |
John Resig, Mozilla Corporation |
More Secrets of JavaScript Libraries |
Want to brush up on JS… |
Jon Wiley, Google |
Doctypes Demystified |
..and quirks mode weirdness. |
Kent Brewster, Yahoo, Inc. |
How To Roll Your Own API |
Insiders techie view. |
WIll Tschumy, Microsoft Corp. |
Robots Rock: Human-Robot Interaction |
Robots! |
Andrew McDiarmid, UC Berkeley |
Collectively Licensing File-Sharing at UC Berkeley? |
Deep, deep, deep work stuff. Will probably talk in acronyms to Andrew. |
Andrew Huff, Gapers Block |
The Street is a Platform |
Title! |
Brad Stenger, Wired |
Computational Journalism |
This is what I would want to be doing, if I wasn’t having the best time in the world. |
Serge Lescouarnec, Serge the Concierge |
From Consumed to Thrifty: Strategies for the Good Life in a Wobbly Economy |
Plan B |
3 Comments »
2008-08-07»
Copyright, Fraud and Window Taxes (No, not that Windows)»
Hanging around IP lawyers quickly teaches you that no matter how complex and mind-binding you thought your model of copyright law was, the real thing is always sixteen times more so.
Regardless of that, I continue to be interested in real human’s naive beliefs about how copyright is supposed to work. Even when they’re wrong about the letter of the law – especially when they’re wrong about the law I think these attitudes illuminate the modern problems the public wants solved with copyright; and why sometimes it is not the best tool.
One behaviour I see a lot is a general tolerance towards copying, mixed with an absolute moral fury at passing-off. The fact that both activities are seen as straightforward violations of IP law both by the general public and by the legal system I think is confusing for everybody.
Let me give an example. I have a friend who is a reasonably successful DJ. Her continuing success comes from the distribution of her mixes, which she lets be passed around online and off. She’ll regularly get gigs from people who’ve heard her tracks, and want her to perform at their event.
A few years ago, she discovered that a Spanish DJ was using her mixes to promote his own career, passing them off as his own. Naturally, my friend was furious, and railed against pirates and all those Internet scum who shamelessly copy her tracks. I pointed out that she had actually encouraged them to do that, that it seemed to be an important part of her marketing, and, anyway, there was a good chance that her entire body of work would be impossible had the artists she worked with demanded the same controls as she was now envisaging.
I think a lot of people would view my friend as either confused, or hypocritical, in her apparent divisions of what is right and wrong in IP. Moreover, where you stand on the IP front determines how you think she should adjust her thinking to be consistent. If you’re for minimalist IP, you’ll conceivably feel that she should continue her art, and not sweat too much the Spanish DJ. If you’re a maximalist, you’ll feel the other way: its her fine comeuppance to be mistreated in the same way as she has flouted copyright law in the past.
I think, actually, that her confusion comes from two very separate matters that get blurred in the idea of “intellectual property”: copying as the tapping point for revenue redistribution, and correct attribution and sourcing as a side-effect of that.
Copying is important in the process of creative remuneration, I feel, because it used to be an excellent tapping point from which to extract value and distribute it back to the creator. Copying cost money, and the only reason you’d do it would be to sell the produced copy for cash. Therefore, it was a perfect statutory location to place a money-pipe back to the artist. Matters blurred when radio broadcasts and performance rights came along, but fortunately the term “copying” could still be stretched to cover these events without anyone feeling too uncomfortable. It always took money and effort to make a copy: costs that you’d almost always only pursue for commercial gain.
In a digital world, many people don’t see the act of copying as a particularly momentous or profitable event. Copying isn’t what we do as an act of purchasing; copying is a thing we do to our valuable artifacts. People are scandalised when its suggested that you should pay for a copy copied to backup drives, or iPods; they’re amazed when vested interests demand that cached copies or transitory files should count as extra purchases. Copying is no longer a good proxy for incoming revenue; which means it is no longer a good place to extract remuneration.
I think of it a little in terms of window taxes. From 1696-1851, Britain had a tax on windows on buildings, not because windows themselves had any particular significance, but because, absent reliable income records, windows served as an excellent proxy for how rich you were. One window: lower middle class. Forty windows: stinking rich.
As time went on, the proxy began to fail. Smart rich people blocked up their windows, flashy ostentacious people built buildings with lots of windows, and windows themselves became cheaper. Rather than acting as a successful measure, it did nothing but warp the revenue system and distort the nature of architecture.
Copyright is a similar tax, imposed for the benefit of artists, and collected at the act of copying. But it has also had another effect: by imposing a charge on copying, we also managed to limit fraudulent representation. If you wanted to claim some work as your own, you would probably have to copy it. If someone was claiming to have created your work, they probably made a copy to sell.
And so the legal management of fraudulent representation became tied up with the basket of legal concepts we now know as IP. Nowadays, copying isn’t always the core part of remunerative creative business. But accurate accreditation very much is.
I feel that the problem with the Internet isn’t that it creates so many damn copies: if it was, then we would have a nigh-infinite universal disaster, unsolvable except by closing the whole damn digital thing down. At least one societal problem we have is far more minor than that: that the opportunity and instruments for fraudulent behaviour have changed, and we need legal tools to deal with that which don’t obsess about who copied what bits and when.
I’ve often felt that if we could strengthen the pursuit of fraudulent claims in other parts of the law, then we could satisfy what many ordinary people want from IP, without pandering to pipe dreams of centrally controlling and taxing every act of copying in the digital world.
Of course, there’s also the remunerating problem, which is perhaps far harder to crack. But we mustn’t confuse the two, as IP has done for so long.
15 Comments »
2008-08-04»
pomp; patry; gconf-watcher»
Second Circuit Judge Pierre Leval once said that the best way to know you have a mind is to change it, and I have tried to live by that wisdom… There are positions I have taken in the past I no longer hold, and some that I continue to hold. I have tried to be honest with myself: if you are not genuinely honest with yourself, you can’t learn, and if you worry about what others think of you, you will be living their version of your life and not yours.
— William Patry
I didn’t know of Bill Patry before he started blogging, but once he did, I started seeing his name everywhere. Mainly on huge multi-volume collections of hardback legal tomes, titled “PATRY ON COPYRIGHT”. He’s given up blogging because people would insist on quoting his blogging opinions as though they were an official pronouncement of his new employers, Google. Also, the current state of copyright law (and he actually contributed to drafting a chunk of it when he worked for Congress in the Nineties) depressed him too much.
Fortunately, I am never depressed by copyright, and I am confident you will never confuse my pronouncements here with any of my employers, because I have a little box down there that says so. So we are stuck with each other.
Today is column day, which means I have to save my most potentious stuff for one of said employers instead of you. It also means that I have been procrastinating all over the Net. Patry’s mum told him you must learn something new every day: today I learnt that the best way to poo-poo a fusion project is to say “Feh, you’ll never fix the Bremsstrahlung” (and the best way to help is to start a fusor in your home town). I read the best defence ever of a children’s book that has gay marriage in it, and added another Hari Seldon-style modern psychohistory attempt to my list. I also learnt that other far more esteemed columnists look exactly as bad as me on column day.
But if you wanted to know that stuff, you would have Googled for it. What you want to know is this: if I’m using GNOME, and I’m futzing about with my preferences, how can I easily note them down so that I can recreate what I’ve done when I accidentally delete my home directory (again)?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
#!/usr/bin/env python ### # Print out changes to the environment ### import gtk, gconf def key_to_tool(entry): v = entry.value try: return 'gconftool --set %s "%s" -t %s' % (entry.key, v.to_string(), v.type.value_nick) except: return "# Couldn't understand setting %s" % entry.key def key_changed_callback(client, cnxn_id, entry, other): print key_to_tool(entry) client = gconf.client_get_default() client.add_dir('/', gconf.CLIENT_PRELOAD_NONE) client.notify_add('/', key_changed_callback, 1) gtk.main() |
That’s what you were Googling for, my friend. Run this code in the background as you merrily click on Gnome options in most programs, and it’ll spit out a set of commands that if you run will recreate your clicking. Useful for finding where the hell Gnome is hiding certain preferences, or what exactly certain programs are changing behind your back. You’ll need to install python-gtk
in Ubuntu and Debian. And probably a bunch of gotchas that I have pigheadedly ignored and which you will find in the comments below from smarter, friendlier people than me.
1 Comment »
2008-08-03»
disloyalty: namu amida butsu»
I’m very disloyal. As soon as I start attaching my flag to some particular standard, I start trying to fault it. My hope would be that libertarianism is full of equally disloyal types, but actually there’s quite a lot of dedication to the cause.
And yet, a couple of weeks in, I do keep on having blasphemous thoughts. That’s not to say that I don’t enter any belief-space with as much gumption as I can muster. I try to approach any new idea with a respectful degree of naive enthusiasm.
I’ve been reading The Probability Broach, which is about as gung-ho a depiction of anarchocapitalism as you could imagine. It’s a fun read, very much of it’s time: full of Heinleinian gee-whiz dialog and Eighties fandom wish fulfillment. The alternate universe anarcho-capitalist America is full of people wearing SCA outfits and curing injuries with nutritional supplements.
But that’s by-the-by: what I want from reading political utopias (or dystopias) is to feel when the rings of falsehood peel out. It lets me suss out what my own beliefs about the invariants of the world are. I can buy a world where everyone wears funny kilts and monkeys can talk; but if one of the tenets of your story is that having everybody armed to the teeth makes for a polite and civil society, I’m going to have to be taken by the hand and talked-very-slowly-to until I get it. Or left for a very long time until I invent some crazy reasoning myself.
I don’t know whether this is a good procedure for a belief system or not. One always puts oneself through the Godwin time-vortex into Nazi Germany. What would you think of a German that sat in the back of Nazi party lesson going, “Okay, the uniforms I admit are kind of cool. But run me through how the Jews ruined everything one more time?”. I’m not exactly Schindler, am I? Or to spin it the other way: I’m in 17th Century Britain, and someone is telling me that universal suffrage is a good idea. Should I dump the whole crazy idealistic movement, just because I can’t seriously imagine near-universal literacy?
I don’t think opting out of idealism is a solution either. I see every political position overtly adopted as an act of idealism, because most of the time, we don’t act consistently with even our most pragmatic political stances. We don’t act with any conscious consideration at all. We talk of sharing, and save the best chocolates. We talk of communal standards, and litter when no-one is looking. We rail against the awful sweatshop standards of Nike, and then buy illegal drugs purchased through a network of intimidation and poverty.We’re irrational beasts in everyday life. Every statement of coherent political attachment is an act of hope that we’ll somehow lower our hypocrisy ratio by coming clean about what we want to believe; a battle against our own innate disloyalty to any simple set of rules.
Having said all that, I haven’t really mustered what my problems with libertarianism are yet. So, instead, here as your Sunday text, is a transcript of a playful discussion of the problem by Robert Anton Wilson:
Namu Amida Butsu
My favourite religion is actually Shinran Buddhism. I was married in a
Shinran Buddhist church thirty-five years ago. The great thing about Shinran
is that it’s an off-shoot of Amida Buddhism. Amida was the Buddha who refused
to enter Nirvana until all sentient beings could enter Nirvana with him. He
reincarnates perpetually to bring everybody to supreme enlightenment. A lot of
the teachings of Amida Buddhism is if you call on Amida Buddha once with true
faith, that’ll be enough. Even if you screw up this life entirely, in your next
life you’ll do better and in the life after that you’ll do better until
eventually you do achieve total detachment and nirvana. All you’ve got to do is
say, in Japanese, “namu amida butsu”: “In the name of Amida Buddha”. If you say
it with true faith, you will eventually be saved.
And in the 12th Century a monk named Shinran meditated on this until his heart
broke. He thought that this was just not fair to those people who can’t muster
a true faith. There are some people who are always asking questions, never
satisfied, always asking the next question, always a little bit sceptical. I’m
one of them. We just can’t manage true faith; we’re always wondering — maybe
there’s an alternative, maybes there’s another way of looking at it.
Amida, the Buddha of boundless compassion – can he possibly leave us out of it
if he intends to bring all beings to perfect bliss and enlightenment? Shinran
decided that was impossible. So shinran Buddhism is based on the teaching that
if you say “namu amida butsu” once, whether you have faith or not, it’s enough.
You’ll be saved eventually.
I think that is the most merciful, the most commonsensical, the most generous,
the most noble religion ever invented — or at least it seems that way to those
of us who are incapable of true faith in the traditional sense.
I have said “namu amida butsu” with some degree of faith, and a great deal of
scepticism on numerous occasions. I’ve never managed total faith, but I like to
say it, because Shin Ran says whether I believe it or not, it will work.
So I’d like to leave everybody with those words: “namu amida buttsu”. Say them
once, and whether you believe it or not, it will work, and all your problems
will be solved. It may take a thousand incarnations, but eventually you’ll get
there. And, hey, we’ve got lots of time!
— Robert Anton Wilson
6 Comments »
2008-08-02»
Love, the Internet»
We saw a biplane flying an advertising banner over San Francisco today. I asked Ada what she thought it might be saying. She thought it probably said “Write more blogs! See you later, love, the Internet”.
Sadly I think it was actually telling people to drink more beer. I do agree that the Internet would be just the sort of thing to send up biplanes with its messages. I remember when Doug Lenat was first hinting that Cyc, his damn near immortal AI project, might soon be able to parse freeform English text and learn from it. It must have been around 1991. Somebody suggested they fork it, and feed one version carefully scanned in mass media, and flush the other’s brains out with a full USENET feed. When people anthropomorphise the Internet, it’s that crazy sibling that I imagine.
That image will be merged now with my experience earlier this week. I was walking back from a dental appointment downtown when I was overtaken and jostled by a bunch of people carrying placards, dressed badly in black, and wearing masks. I was walking behind them, so it was a little hard to tell at first, but I finally worked out they were Anonymous, walking back to the BART after a protest outside one of the SF Scientology centers. The teenage Anonymouser who bumped into me was incredibly apologetic, in an overly formal, kneejerk sarcastic way, which was delightful and just how I imagined Anonymous would be in real life. “Oh, did I accidentally kick your precious toes? I do so apologise — would you like me to pay you cash money for your slight inconvenience?” Maybe scattering its biplane pronouncements with obscure quotes from bash.org.
I love how things can be Internet things: that it has a strange, distorted culture of its own, still. After all these years, it has failed to become a backgrounded, telephone kind of technology, but something that can still maintain an inner life of its own. I love how there are Internet jokes that barely work outside of the Internet, yet are delightful when they do. They seem like private jokes, widely-held.
Slightly embarrassing to write these things and then backdate them an hour. I’m sure no-one will notice. Wait — is this keyboard still on?
3 Comments »