2008-08-19»
my flatmates’ flotilla launches»
My housemates have been away for a few weeks, building various-powered boats to sail in tandem down the Hudson:
I think this means they’ll be home soon. Unless they’re planning on sailing back.
My housemates have been away for a few weeks, building various-powered boats to sail in tandem down the Hudson:
I think this means they’ll be home soon. Unless they’re planning on sailing back.
I’m having so much fun doing this that I barely spotted that I’d crossed the thirty days mark! Luckily now I have noticed, so I can re-adopt my grudging acceptance of another month’s hard labour, thanks to my new, much despised by me, blog sponsors, who all joined the Open Rights Group to watch me suffer.
I’m now looking for five more donors to make me look the chump in September. If you’re enjoying this (you sadists), do consider joining the Open Rights Group for a fiver a month (cheap), and mail me your reference, and what you’d like the money to go on.
At the risk of sounding like some sort of endless Nerds In Need campaign, I’m amazed we’re up to over 900 members.
My personal goal for this fund-raiser was to hit our original 1000, but I’m afraid I egged the ORGsters to take it up to 1500, because that would let us do a bunch more work, and gain independence from other sources of funding. I find it fascinating how different EFF feels from other non-profits I’ve worked with because of its strong reliance on individual donors (it’s usually around 70% of our income). There’s around 13,000 EFF members from across the world, and all you have to do is say “Hello, I’m an EFF supporter, and…” to get my undivided (if ADD-ridden) attention. I guess I’d describe it as having a huge crowd of incredibly smart, but somewhat vocal, hands-off managers: when they drag me into their office (or just corner me at a conference) usually the start of a very high-level conversation.
I’ve noticed the same with ORG supporters. Oddly, my main involvement with ORG is because it’s part of my EFF job to help out other digital rights groups internationally, so I don’t see myself as an ORG representative per se. But whenever I speak to someone who starts with “So, I’m an ORG member and…”, we usually both end up scribbling madly in notebooks at the end.
I’d be more involved in day-to-day UK issues if it wasn’t for the time difference, which is nasty for a late-night person like me, so the UK falls under the same “all communication via email” shadow as India and Russia.
This may change. Next week, Ada starts kindergarten (the weirdly teutonic name for junior school here. Guards, take zis child to … DAS KINDERGARTEN). As some sort of punishment for living in a 21st century hyperpower, school starts freakishly early here. Ada needs to get to school at 7.40am. That means I have to get up at 6am (2pm UK time).
As some of you remember, the very reason why I started the whole Life Hacks™ thing was because I couldn’t get up in the morning. Now I have to, otherwise I get prosecuted for secondary inducement to truancy or somesuch. I have already warned everyone I know that the consequences will be dire. I will wreak my revenge on the species that plans to keep me a prisoner of the burning day-star. It will be World War Bedtime, let me tell you. Even worse, Ada has inherited my nap rage, so we’ll both be punching milkman in the face and snarling at postal workers for five hours of the “day”. Europe, you may quake now.
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:
|
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) |
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!
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.
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?
“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!
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:
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 |
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.
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.
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.