I have been trying to quit programming for about six months.
I’m down to about 2 times a day, on average, sometimes more. It’s a problem.
Don’t get me wrong, programming is one of the best disciplines I ever stuck my nose into. Programming teaches you fundamentally how to constantly improve your craft. But it’s exhausting, distracting, and inseparable from the cult of efficiency. It takes you away from humans, mashes your nose into an LCD all night, and leaves you with a delusional sense of total control over your environment. I wish that I could take back every second of my life that I spent learning to build stacks and refactor my own crappy code.
The problem is that code is so damn useful. It beckons with APIs and gives you entire weekends of mindless flow; hack, hack, hack, make it pretty and fast.
On December 9, 1968, Dr. Douglas C. Engelbart and the Augmentation Research Center (ARC) at Stanford Research Institute staged a 90-minute public multimedia demonstration at the Fall Joint Computer Conference in San Francisco. It was the world debut of personal and interactive computing: for the first time, the public saw a computer mouse, which controlled a networked computer system to demonstrate hypertext linking, real-time text editing, multiple windows with flexible view control, cathode display tubes, and shared-screen teleconferencing.
It changed what is possible. The 1968 demo presaged many of the technologies we use today, from personal computing to social networking. The demo embodied Doug Engelbart’s vision of solving humanity’s most important problems by using computers to improve communication and collaboration.
Including lots of fun sketches for my new job. Working on a translation + foreign affairs + journalism + social project called Meedan. Back to the nonprofit world. Still in San Francisco. Fun stuff!
I really do like this idea, but reinventing the pie chart with those desaturated squares is not a good start. I’ll be checking it out to see how they iterate on representing the concept, which is fascinating.
It mines information from all the blogs and Web sites out there, and all on one screen, lets you see the relative popularity of any given story, whether it’s trending up or down, and tracks the number of mentions of the people and places mentioned in the story.
The graphs, by contrast are wonderful and straightforward:
While typical news-aggregation sites do a good job of clustering news stories according to topic, they leave the reader without information about which stories figure prominently in political discourse. BLEWS uses political blogs to categorize news stories according to their reception in the conservative and liberal blogospheres. It visualizes information about which stories are linked to from conservative and liberal blogs, and it indicates the level of emotional charge in the discussion of the news story or topic at hand in both political camps. BLEWS also offers a “see the view from the other side” functionality, enabling a reader to compare different views on the same story from different sides of the political spectrum. BLEWS achieves this goal by digesting and analyzing a real-time feed of political-blog posts provided by the Live Labs Social Media platform, adding both link analysis and text analysis of the blog posts.
Lately I’ve been volunteering a little bit for Ushahidi. After a few months of work, we have gotten a new wireframe of the mobile app running on the iPhone. Ushahidi is an open source tool for monitoring crises and disasters. It recently won the the NetSquared challenge and was called one of the top startups to watch in the MIT Technology Review. Man, I really don’t have to give up anything to work on this one — it’s really a top notch operation going on. Other nonprofit and open source teams could learn a lot from the Ushahidi project.
Some of the amazing things about the Ushahidi project include:
Rapid prototyping. (Really rapid: the first version of the app was built in a weekend.)
The application is completely open source.
It’s a platform, not a web application: you can get the code and extend it for your own uses.
Strong user-centered design principles.
Great attention to detail in the design and insistence on top-notch interfaces (including the marketing website and the admin pages of the application).
Anyway here’s the latest mockup. Here’s the latestsource PSD. It’s v0.2 and still has a long way to go. We did the iPhone app first and will be using lessons learned from this one to port the project to other platforms.
I did most of the sketching and developed the concepts that were flying around, and then my man Joe Jones did all the real work in Photoshop. It’s been a really fun time so far and I am looking forward to implementing some of the changes being discussed on the Ushahidi blog.
Also make sure you check out some of the geniuses behind the project:
For the User Experience people: Bill Buxton is a genius. Got me sketching. (And redefined “sketching.”) 1.5 hr. lecture. Teaser: includes the phrase “Charlton Heston flying through the air.” Oh and also please buy Sketching User Experiences. Operators are standing by.
For Architecture Geeks: Stewart Brand is brilliant and insane. Fun SF footage too. Feature length PBS type thingy: Part 1 of 6.
For Anyone Who Uses a Computer: Doug Engelbart is my hero. “Dealing lightning with both hands,” indeed: this is the public debut of the freaking mouse, hypertext, screensharing and the networked office. This is where it all went down, in 1968 San Francisco (think about it), to a standing ovation in a auditorium full of geeks who had their minds blown. (Bonus points if you know Stewart Brand’s connection.) Long and really boring honestly. Use this like TV Guide, but watch the video on Youtube. If you look close you can see Skype crash.
Turns out that, once you get beat badly by Google, you start to get really open. Nice.
Basically BOSS (bad name, great tool) means that, with a minimal contingency of programmers, you can get a completely custom search running, and apparently you can even manipulate the rankings algorithm. Currently Yahoo is running it without requiring ads or anything. Exciting.
What a great way for a big conservative company to innovate — just let hackers go to town on your fancy database and algorithms. I can’t wait to see what comes out of it.
Today Adaptive Path, the godfather company of the interface and experience research industry, released the first of some amazingly high quality concept videos about the web browser of the future.
I’m really impressed, even though I spent most of the day grousing about some of the details of the interface they showed — my nitpicking is really just evidence of how much detail there is in the video.
Anyway, the real importance of the videos is not specific to any of the UI details — it’s about what’s happening at Mozilla, and the new inclusive approach they are taking to visual and experience design.
Joining an open source software project usually requires one thing: the ability to cut code. If you live in the world of functions, methods, Git, SVN, and SQL, you’ll find many a friend in open source. If you instead work with Photoshop, wireframes, sketches, and stickies, you’ll find it is a bit of a challenge to join an open source project. The community of developers has a history of shunning anyone who is a not programmer. Plus, open source software projects are not heavily promoted in the design community.
Today we’re calling on industry, higher education and people from around the world to get involved and share their ideas and expertise as we collectively explore and design future directions for the Web. You don’t have to be a software engineer to get involved, and you don’t have to program. Everyone is welcome to participate.
The wacky bike was designed by IDEO people — I’m also impressed with their recent riff on the magazine quiz (maybe think madlibs): A Rockefeller sponsored guide to creating social impact with your design firm.
And the App:
FrontlineSMS is a thoroughly wonderful idea in many ways … I mean, if you’re into international rural research with mobile phones. A tool worth watching very closely, it’s what I think is the leading platform of the mobile research “industry”. (if there is such a thing.)
They just released a major new milestone and have bunch of great new branding. Great work, Ken!
Smartly presented information is a nonprofit’s best friend. If you can’t communicate the problem, no one is going to give a damn. Hash’s blog just pointed me to some powerful charts Sokwanele mapping project , which I’ve mentioned previously. These charts are extremely important data to have in the public domain, and it’s great that they
appear well-executed and polished, with a high resolution of visual information.
Google Charts from Sokwanele and Mobile Researcher
The charts at Mobile Researcher also caught my eye recently (also pictured, at right and bottom). Turns out they were both made with Google Charts. I hadn’t used it before, but I recognized their densely set labels and had some vague ideas that there was a Ruby wrapper. And I just thought that the Mobile Researcher charts were really beautiful. Turns out it’s super easy. There are plenty of libraries for managing the requests to the API, and, in some simple cases you can even code it by hand, since all of the code is simply passed through a query tag on an image url.
What it does do is proved fodder for organizations inside and out to make an even stronger case against this repressive regime. - Erik Hersman @ whiteafrican.com
But in most of the cases the data is hashed somehow with javascript, since urls can only be so long. Since I was working in a Rails app, I used a great ruby library and was up and running very quickly. I wholeheartedly recommend them anytime you need simple, sharp graphics to illustrate your research. If you have a web app or with dynamic charts, it’s a no-brainer, since generating images is relatively intensive memory-wise.
But the API of course is language neutral, and I am sure it would be just as easy in most any language. Oh, and it’s free! (Though capped at 10k charts per day … which would be a good problem to have, I suppose.)
Intel produced this fantastic map yesterday at the 2008 Research@Intel Day. Red countries have higher rates of technology adoption. This is really valuable data for thinking about how to influence the adoption of technology, and for thinking about the ICT4D political spectrum in more than two shades of grey (or red and orange I guess). I think anyone who reads about this kinda stuff already has some vague map like this in their head. The only real surprise is how slow, relatively, the US is (I guess South Africa being flat is a surprise too). But the country-by-country resolution here adds such a valuable data point to the conversation about the BoP and the overall role of technology in the developing world. (It’s also a pretty damn good crystal ball on the future distribution of economic development). I want one for my wall.
It’s been a good book month for interface geeks and IXD/UX people. Congrats to AP on the new book and kudos especially to upstart publisher Rosenfeld for the innovative stuff they are doing, including user testing of their 500-page, large font digital versions. Rock on, you madcap publishers you. You’re gonna make it big working like that.
All of these are worth buying (plus extra to give to clients):
On the occasion of amazing new videos of the latest prototype, it’s worth remembering that Android (not the just-barely-open iPhone) is the future of mobile development for the masses. Especially when combined with the hardware support of the Open Handset Alliance and the general propensity for open source projects to kick ass.
Hack zero: Switch to Gmail
This is not a joke: Gmail is a fantastic and nearly spam-free platform. Notably, you can hook it up with a custom domain name so no one knows you are part of the Goog machine like everyone else.
Hack one: Greylisting with Postfix on Ubuntu
A mail transfer agent using greylisting will “temporarily reject” any email from a sender it does not recognize. If the mail is legitimate, the originating server will most likely try again to send it later, at which time the destination will accept it. Wikipedia: Greylisting
Assuming that you have your own email server, greylisting is genius. Diabolically elegant, really. If you run an email server (or any server that can receive email) you are probably running the Postfix MTA, in which case their is a main configuration file appropriately named main.cf. A couple of edits to this file and you are on your way.
Here’s how this setup looks (not my graph but I have definitely seen this happen on production mailservers):
The really brilliant thing about greylisting is that it it deals with spam way before it ever reaches your inbox, which is the only way to go (I don’t use any spam filtering on my mailbox. That’s too late, especially from a sysadmin perspective (think of the children cycles!).
Two: edit your main.cf file. sudo vi /etc/postfix/main.cf
Three: Then open it up and look for your smtpd_restrictions; add the following line: check_policy_service inet:127.0.0.1:60000
Four: Reload Postfix /etc/init.d/postfix reload
Hack 2: DNS Blocklists
This one is even easier, requiring only an extra line (for each blocklist). The blocklists are Just put it right there in that same block in main.cf. I typically use four of them. (Each has a slightly different purpose and tolerance. Check out the sites to get a flavor for why they exist.) This one is actually my favorite — it was created by the geek premier Paul Vixie and uses a DNS lookup for an extraordinarily light overhead.
As with the example above you will also want to watch your mail log to make sure nothings gone wrong.
sudo tail -f /var/log/maillog
Hack 3: Keep Spammers out of Your Forms
This is really the ideal place to stop spam: before it happens. There are a bazillion ways to prove that someone is a human (CAPTCHAs … sigh), but I think it is instead better to put the burden on the bots.
Step one:
Add a hidden field to your form.
< textarea name="comment" class="hidden" >
Step two:
In your handler, ignore anybody that filled out that form (as robots will do). Here’s a fragment in php (assumes that the presence of a errors array will prevent submissions):
if (!empty($_REQUEST['comment'])) { $errors[] = “No Spam please.”; }
Those are my favorites, let me know if you have any others!
I was never super into Alan Cooper (of Inmates are Running the Asylum fame) until I read this hilarious argument with Kent Beck, the godfather of Agile programming. (pssst. don’t click on that flaky wayback machine link. I’ve republished the article here, probably completely illegally, for your convenience. But it’s pretty depressing that this doesn’t exist anywhere except for the zombieweb.)
Here’s a couple of the best bits.
Oh, and it’s all about Agile programming and Interaction Design. If you don’t care about such things then this is all really boring probably.
It might be boring regardless.
When an architect begins to define a building, he or she works very closely with the people who are buying the building to understand what the requirements are, and translate those requirements into a sketch of a solution. Then there’s a lot of give-and-take between the occupants of the building and the architect in coming up with a viable solution. Usually, the architect at the sketch level will know enough not to design something that’s an engineering problem.
And if the architect does detect that there might be problems, he or she will consult with an engineer to make sure that he or she is not painting himself into a corner, technically speaking. At a certain point, the architect and the customer are going to achieve common ground. At that point, the architect turns those sketches into detailed drawings. Now, during the detailed-drawing phase, there’s a lot more intense interaction between the architect and the engineer. The architect, you know, draws a span and calls in the engineer and says, how big a girder do I need to support this span? And there’s a lot of detailed interaction between the two. This is precisely what happens in the world of good interaction design.
I think XP has some really deep, deep tacit assumptions going on, and I think the deepest tacit assumption is that we have a significant organizational problem, but we can’t fix the organization. Essentially, the crap rolls downhill and ends up rolling right into the programmer’s lap. When the product or the program turns out to be unsatisfactory, the fingers point to the programmer. XP is very well-intentioned; it’s the software-development community beginning to say, “Hey, this is not only unfair to us, but it’s not productive as a discipline and we can do a lot better.”
“I applaud that sentiment and I agree with that sentiment, but then XP says, “OK, so, I can’t change the organizational failings, so, I’m going to build my own internal defenses.” I suppose this is probably better than nothing, but I’m interested in changing the way organizations are constructed. I believe that in order to create quality software, you have to change the organization. We can change the organization, and it strikes me that the assumption underlying XP is that the organization’s structure is a given.”
Building software isn’t like slapping a shack together; it’s more like building a 50-story office building or a giant dam.
Beck: I think it’s nothing like those. If you build a skyscraper 50 stories high, you can’t decide at that point, oh, we need another 50 stories and go jack it all up and put in a bigger foundation.
Cooper: That’s precisely my point.
Beck: But in the software world, that’s daily business.
Cooper: That’s pissing money away and leaving scar tissue.
Several times this weekend I used the phrase “unixlike” or “unixy” to describe applications or devices.
This is what I meant:
Most importantly, it means that you play well with others, as in the Unix concept of standard out: Whatever your application does, it is able (intended, really) to be used as the input to another application.
It does not mean using the command line, but does mean it has an extremely lightweight interface. There is no fade, no glass and no glow. Unix applications are true utilities, though they may still be extremely fun to use.
The scope of a unix application’s purpose is extremely narrow. It does exactly one thing, and it does it extremely well.
It was built in the 1970s by ornery geniuses with beards.
Just a quick open invitation, if you are in San Francisco this weekend:
UPDATE: Changed the time to 4pm.
I’m meeting with designer-researchers Niti Bahn and Dave Tait on Saturday, April 19th, at 6pm 4pm at Atlas Cafe in San Francisco (in the Mission). Come have a beer with us! We’re talking generally about designing and researching technologies for the poorest people in the world (the “bottom of the pyramid“). Africa, Asia, mobile phones, sustainable change, environmental technologies, research methodologies, product design, application development, user experience … lots of stuff.
Niti is a researcher, strategist and international rock star; Dave is an award-winning product designer and researcher based in South Africa. Developing world cell phone geeks, too. Check out this article they co-authored for a feel for what they are into: Design for the Next Billion Customers.
If you’re interested, email me, or just show up!
Oh and, we’re doing some planning for a BarCamp unconference of the same themes this summer. Let me know if you would be interested in attending or supporting an event like that. Probably Late June or July.
Here’s my Reader’s Digest version, since I know you graphing how much time you spend on blogs.
About Chipchase, who really is a super-nice guy:
“To an outsider, the job can seem decidedly oblique. His mission, broadly defined, is to peer into the lives of other people, accumulating as much knowledge as possible about human behavior so that he can feed helpful bits of information back to the company — to the squads of designers and technologists and marketing people who may never have set foot in a Vietnamese barbershop but who would appreciate it greatly if that barber someday were to buy a Nokia. …
About getting over your hatred of your cellphone (cursed device efficiency-obsession). This bit hit a nerve for me:
Understanding [stuff] requires forgetting for a moment about your own love-hate relationship with your cellphone, or iPhone, or BlackBerry. Something that’s mostly a convenience booster for those of us with a full complement of technology at our disposal — land-lines, Internet connections, TVs, cars — can be a life-saver to someone with fewer ways to access information. … Jan Chipchase and his user-research colleagues at Nokia can rattle off example upon example of the cellphone’s ability to increase people’s productivity and well-being, mostly because of the simple fact that they can be reached. There’s the live-in housekeeper in China who was more or less an indentured servant until she got a cellphone so that new customers could call and book her services. Or the porter who spent his days hanging around outside of department stores and construction sites hoping to be hired to carry other people’s loads but now, with a cellphone, can go only where the jobs are. Having a call-back number, Chipchase likes to say, is having a fixed identity point, which, inside of populations that are constantly on the move — displaced by war, floods, drought or faltering economies — can be immensely valuable both as a means of keeping in touch with home communities and as a business tool.
On the incredible value that can be provided by something so simple, like SMS:
“… public health workers in South Africa now send text messages to tuberculosis patients with reminders to take their medication. In Kenya, people can use S.M.S. to ask anonymous questions about culturally taboo subjects like AIDS, breast cancer and sexually transmitted diseases, receiving prompt answers from health experts for no charge.
On Microfinance and the bottom of the Pyramid:
… A cellphone in the hands of an Indian fisherman who uses it to grow his business — which presumably gives him more resources to feed, clothe, educate and safeguard his family — represents a textbook case of bottom-up economic development, a way of empowering individuals by encouraging entrepreneurship as opposed to more traditional top-down approaches in which aid money must filter through a bureaucratic chain before reaching its beneficiaries, who by virtue of the process are rendered passive recipients.
On “sente,” which as Chipchase put it the other night, “turns anyone with a cellphone into an ATM:”
Someone working in Kampala, for instance, who wishes to send the equivalent of $5 back to his mother in a village will buy a $5 prepaid airtime card, but rather than entering the code into his own phone, he will call the village phone operator (“phone ladies” often run their businesses from small kiosks) and read the code to her. She then uses the airtime for her phone and completes the transaction by giving the man’s mother the money, minus a small commission. “It’s a rather ingenious practice,” Chipchase says, “an example of grass-roots innovation, in which people create new uses for technology based on need.”
And then my favorite part, thinking about the pace of change and the oh noes! of the human condition:
“People can think, yeah, monks with cellphones, and tsk, tsk, and what is the world coming to?” he said. “But if you wanted to take phones away from anybody in this world who has them, they’d probably say: ‘You’re going to have to fight me for it. Are you going to take my sewer and water away too?’ And maybe you can’t put communication on the same level as running water, but some people would. And I think in some contexts, it’s quite viable as a fundamental right.” He paused a beat to let this sink in, then added, with just a touch of edge, “People once believed that people in other cultures might not benefit from having books either.”
And then my other favorite part, their research methodology, an “open design studio” in Ghana:
“There was a sheet of fabric strung up in front, with neat painted lettering that read: “Your Dream Phone. Share it with the world.” It went on to describe how the community was invited to come share ideas and drawings for the ideal mobile phone. Prizes were offered. So far, 140 people had shown up to sketch their dream phone.”
And on the Election Violence in Kenya (check out Ushahidi.com created by Erik Hersman, who told me that this article had been published today!):
“After the government imposed a media blackout in late December last year, Kenyans sought news and information via S.M.S. messages on their phones and used them to track down friends and family who’d fled their homes. Many also reported receiving unsolicited text messages to take up arms. The government responded with an admonition, sent, of course, via S.M.S.: ‘The Ministry of Internal Security urges you to please desist from sending or forwarding any S.M.S. that may cause public unrest. This may lead to your prosecution.’ “