Skip to main content
 

Looking forward to #IIW

I've been planning on heading to the Internet Identity Workshop for years; although I did once make it to a one-day London version, I've never managed to get down to Mountain View for the full three-day length.

From the website:

Do you care about privacy in Age of Surveillance? (You should.) Do you want to do something about it? Are you already doing something about it? IIW is where you get to meet and work alongside others tackling the same problem.

Or let's say you care about new forms of money (such as Bitcoin) and what the geeks call distributed hash and crypto ledgers. IIW is for you too.

Next week, I'm planning on being there. I'll be demoing Idno, but also talking all things and catching up with developments in the identity community.

Kaliya facilitates great events, and although I'm less personally familiar with the other organizers, I know they are very well-respected in the community. It should be fun. And if you're in the Bay Area on May 6-8 next month, it's not too late to join us!

· Posts · Share this post

 

I'm thinking about adding comments. What do you like? #indieweb

Right now I don't have comments on my site. Despite this, I think discussion is one of the most important parts of the web. I'm definitely not anti-comment, and I love feedback.

My intention is that you'll write a reply on your own site and link over here. Using a back-end mechanism called webmention, which is supported by a growing number of platforms (there's a WordPress plugin), your comment can show up as if it was posted here, while living on your own site. If everyone starts to do this, we'll start building up distributed discussion threads across the web, that aren't owned by any one person or company. I think that's pretty cool.

But I also recognize that not everyone wants to do this, and not everyone can do this right now. Webmentions are a pretty technical proposition, and lots of people don't even have their own sites right now. If you saw this on Twitter or Facebook, you can comment there and those comments will show up here too, thanks to a back-end piece of glue called brid.gy. (You don't need to do anything for this to happen.)

Sometimes, though, you just want to post a damn comment. With that in mind, I'm curious: if you're reading this, do you prefer threaded comments - like you might find over on Reddit, or implemented over on Livejournal - or the single-track blog comments that you find in most places these days? There's a lot to be said for both. A lot of the supporting technologies around commenting - and regularly-updated content in general - are based around streams rather than threading, but that's not a good reason not to implement threads if they're more useful.

Then you start thinking about the form of comments. They've been text as a convention since forever, but this platform supports multiple kinds of content. I think allowing photo comments is a lovely idea, for example. Gawker's discussion platform Kinja supports this, and allows for some more colorful debate, as well as things like photo competitions. Audio and video comments are a bigger can of worms - Seesmic was a video discussion platform, before pivoting into more traditional media and being acquired by Hootsuite - but shouldn't questions of decorum and sensibility be up to the site owner rather than the platform?

At any rate, let me know what you'd like to see.

(And yes, folks, I think displaying webmentions as threads is a very interesting thing to think about. As long as you mention both the base thread and the sub-comment, I think it could work out.)

· Posts · Share this post

 

To support the #indieweb, we need better web hosting.

I'm finding it fascinating to hear about the ways people host their websites. We're living in a world where professional hosting has been eaten by "the cloud": virtualized servers arguably rule, supported by tools like Docker and platforms like Amazon Web Services.

Yet personal hosting has not kept pace. Here, hosts like Dreamhost, Nearly Free Speech and (sigh) GoDaddy maintain a much older style of technology stack: virtual hosts, configured using tools like cPanel, which typically support PHP and MySQL. Geekier site owners might choose to set their site up on GitHub or S3, but these only support static page assets. Generally speaking, if you want to set up an app based on Rails, node.js or even Python, with a Postgres or NoSQL backend, you're kind of screwed if you don't have much technical knowledge, or if you only want to pay the $5 a month you'll lay down at many shared hosts.

One of the things communities like the need to support their efforts is much better hosting. Projects like Johannes Ernst's Indie Box solve adjacent problems in innovative ways, but there's certainly a market for easy to use hosts which support a wider array of back-end technologies in a way that allows non-developers to get up and running quickly. Yes, centralized services are an important part of this solution space (if they're built in a way that is respectful to their users), but there's a self-hosted middle ground, too.

· Posts · Share this post

 

Cyclists of the Bay Area: heed my call!

I grew up in Oxford: a city where everyone cycles. Its roads predate cars, often by a thousand years, so pedal power is a much more sensible way to get around. I say that because I want you to know that this doesn't come from a place of cycle-hatred. I love bikes much more than cars.

Nonetheless, you people are crazy, and the following apparently needs to be said:

The rules of the road apply to you. Really, they do. You have to stop at lights, signal on turns, and obey the general rules of the road that apply to all vehicles. Having a bicycle is not a magical pass to allow you to do anything all over the road. You are not doing two-wheeled parkour.

Don't ride two abreast on a real road. On a cycle path, this is sometimes acceptable, if you're leaving enough room for other bikes to get past. On an actual road that other people use for other purposes, it is never acceptable. Extra bonus unacceptable points for windy country roads that have a cliff on one side. You know exactly who you are.

Lights are nice. You are not a ninja. Ninjas, to the best of my knowledge, do not bicycle while they are ninjaing. Therefore, I recommend wearing lights. These are surprisingly good at helping you not die at night. The red one goes on the back, and the white one faces front. Blinking is probably good, but they don't have to induce some kind of epileptic fit to be effective. You're welcome.

Helmets. Have you heard of them? This doesn't affect me at all. But it might affect you. I know they look sort of lame. But they kind of work when your head smashes against the curb. They've saved the lives of people I know many times. You might want to consider it.

That's it. I don't really understand why Bay Area cyclists are quite so bad. Where I grew up, we had something called a cycling proficiency test - like a driving test for bicycles. It wasn't mandatory, but they did build it into our school curriculum. It might not be a bad idea over here.

· Posts · Share this post

 

The awesome, web-powered future of television

Note: I'm currently CTO at latakoo, an enterprise video company that heavily works with broadcast television. This post is my own opinion and nobody else at latakoo was involved in any way.

Last month, Benedict Evans wrote a really interesting post about the future of television which you should read.

This in turn points to another question, and perhaps a slightly subversive one: how do people actually want to watch 'TV' (or whatever we call it)? Hundreds of millions of normal people really do just come home, turn on the TV and watch whatever's on - if you offered something less passive, do we really know how many would do it? That is, the idea that no-one would watch linear broadcast TV if on-demand worked 'properly' (whatever that might mean) is really just an assumption.

The full post is over here.

Over time, TV has transformed into an ad delivery mechanism; the onus has been on producing cheaper content, more fully-laden with commercial sponsorship. Meanwhile, the Internet has turned up on our doorsteps, with far more options for content and entertainment. Entirely new forms are available to us, as well as shows and movies that wouldn't be available over a broadcast signal. Audiences know what they want, and can now grab them quickly using a Bittorrent client if it isn't available legally. I'd go so far as to say that this, right now, is the golden age of television content, even if the broadcast medium is slowly waning.

There's a difference between "television" as a content form, and "television" as a technology involving broadcast towers and cable boxes. As Benedict notes, as entertainment evolves, we'll still be in the market for a "lean-back" experience: there's always going to be demand for a service that lets you turn something on and passively consume content. The question isn't so much the form it'll take - I fully expect to be watching another season of Doctor Who in ten years - as the interface to that content.

I'm confident about the following things:

  1. Television will not be broadcast over the air or using traditional cable. (Much of the latter is already sent over IP.)
  2. Whereas the channels you could receive used to be limited by physical means - which broadcast signals you were in range of, or which channels were carried by your cable provider - they will, in the future, be limited by artificial scarcity imposed by business considerations, where they are limited at all.
  3. Anyone will be able to run their own TV channel.

We've seen glimpses of the future from the services we're already using. Last Olympics, I watched the Paralympics via a live-streaming YouTube channel. Every so often a temporary channel shows up on my Apple TV, for example for music festivals or product announcements. It seems likely to me that we'll be able to treat channels in the same way that we treat apps right now. In fact, the Roku streaming player already does this: its API allows anyone to create a channel and fill it with their own content. I expect Apple and Google to follow suit. (The first Android-powered TVs show up later this year.)

In a lean-back world where anyone can run a channel, you can't expect channels to programme 24 hour days worth of content. That strategy works for major broadcasters, but isn't feasible for smaller companies, startups, or most individuals. So the solution is likely that we'll have a curated mix from content sources that we're interested in. Just as a lot of people follow Andy Baio's linkblog today, we might follow his TV channel in the future, subscribing to content that he thinks is interesting (and in turn is drawn from the channels that he's curated). TV will become more like social media in this way. I would imagine that some sources will come with display advertising from the likes of Adsense, while other content sources - business feeds, for example - will be paid for. They might ask you to pay before you watch an individual segment, or you might have a subscription account. Standard payment options would be available. It might even be something like Paypal, although I hope not.

Imagine a TV that launches into a list of channels, maybe as a grid of icons (a kind of lean-back iPad), or maybe as a TV guide-style menu. In the scenario above, Andy Baio would be a channel, and services would allow me to find new channels based on search terms, content types or similarity to other things I'm interested in. You can imagine Facebook and indieweb integrations: find channels based on the things you typically watch or are interested in.

Oh, and all of this is powered by the web.

It has to be. Television the technology, as it stands today, is not owned by any one entity, just as the web isn't. Companies will certainly try and make land grabs to own the medium, but even if they appear to succeed for a while (eg an Apple offering) they will ultimately be unsuccessful. Market reasons for this include the wide ecosystem of television manufacturers - it's easier for people to integrate with an open standard than a technology that they must license, and as a result, lower-cost, mass-market televisions are more likely to support these. Some TVs directly integrate Netflix and Hulu today, but the behind-closed-doors deals to achieve this are significant. With TV as an open platform that sits on the web, there are no back-end deals. Anyone can make a TV that just works, which is in the interests of manufacturers, content owners and channel curators. Each TV gets to have its own interface, just as they do today, and companies can add value-added services like better search and recording.

How close is this? I think you can almost graph it. The point where bandwidth and server costs have reduced to the point where streaming to each user is cheaper than broadcasting to them. IP multicast is not reliably supported on end-user Internet connections, so I anticipate that Internet broadcasts will remain per-viewer. (By the way, latakoo has some new codecs, developed with the University of Texas, that will make this significantly easier.)

So what about live TV? Up to this point I've been discussing pre-recorded content, but there's certainly a need for live broadcast. In a world where the web powers channels, it's just as easy to programme a live stream as it is to programme a pre-recorded show. (Of course, the technology to live-stream is more complicated, but the actual mechanism is agnostic.) You could even choose to have alerts from, eg, news channels overlaid across your main viewing screen, so that if there was breaking news, you could be alerted and choose to switch. You could choose breaking news providers, of course, just as you could choose every other content source. Television would become a true open market for content.

The other nice thing about the web is that all of your channels and all of your preferences are available on all your devices. The exact same profile can be available on your phone, and you don't have to care about which phone you own, as long as it has a browser that works. You could also choose to have an app on your phone that adheres to the same standards but has a tailored UI and value-added services. You could have browsers that talk to each other and allow you to resume watching a show on a different device, from any content provider. Conversely, providers like Netflix, Hulu, NBC, the BBC and Andy Baio wouldn't need to provide any of that functionality themselves. It would simply be a feature of the platform.

Broadcast channels as we know them would become obsolete, but great content - and content channels - would persist. This future of television would be oriented around viewer preferences and content providers. That's the future television I'd like to be using.

· Posts · Share this post

 

Turbulence reports

thumb.jpgI'm a nervous flyer. I've been trying to get better over the years, and I'd never let it stop me from actually going anywhere, but I jump at turbulence, and I certainly can't ever get relaxed enough to do anything like sleep. I avoid red eye flights if at all possible, and try to sit over the wing.

Something that's helped is the US government's Aviation Weather Center, and sites that use derivative maps, like Turbulence Forecast. When I'm not surprised by turbulence - I know it's going to show up during part of the flight path - I'm much less nervous about it. The same goes for in-flight interactive maps; if I know I'm flying over a mountain range, for example, I know there will be updrafts which might cause some choppiness as the air warms and cools.

Now that so many of us are connected to each other, the web has the potential to do that for our lives. Job applicants can get turbulence reports on sites like Glassdoor. Entrepreneurs can get turbulence reports on sites like Quora and The Funded. Women can avoid predatory men on dating sites using apps like Lulu.

Just as I don't know which pilots for which airlines submitted turbulence reports, the reviews on all of these sites are anonymous. However, airlines have the benefit of being regulated and tracked; we know that each turbulence report is almost certainly real. That's not necessarily true with anonymous feedback sites. The potential for harm on all of the above is greater, although Quora is very well-moderated. Yet at the same time, a "real names" policy is not sensible. Imagine if all whistleblowers had to use their real identity. For lots of reasons, including safety and user comfort, I am very much against "real names" policies in most online spaces.

Correspondingly, the challenge is to establish trustworthiness in anonymous communications, preferably with a cloak of plausible deniability. You should be able to feel free to leave a comment about a person or organization without leaving your identity with anyone, and we (as readers) should be able to trust that information. If someone points a finger at you for making the post, you should be able to plausibly say that it wasn't you, to avoid recriminations. Finally, if I'm the subject of the post and someone is attempting to smear me with false information, I should be able to take action to remove the comment, and have protection against denial of reputation attacks, where distributed mobs of people endlessly post false information. There are, to be sure, ethical problems with many of these services as they stand; effective reliability, anonymity and redress would mitigate them.

These are hard problems to solve. Full transparency does not cover everyone; sometimes deliberate opacity can be protective. This touches identity, network security, trust metrics and social algorithms - and, of course, would need to be wrapped up in an easy-to-use interface to be useful.

All of us are, one way or another, sitting at the gate, wondering if our journey is going to be bumpy. Hopefully, we can help each other out.

· Posts · Share this post

 

Some thoughts on Brendan Eich and Prop 8

I'm trying to decide where I stand on Brendan Eich and Mozilla.

A quick recap: Brendan Eich, inventor of JavaScript and co-founder of Mozilla, became CEO of the corporate arm recently. Unfortunately, he also donated $1000 to Proposition 8, the Mormon-sponsored movement against marriage equality. Mitchell Baker remains Chairperson of the non-profit. She is also the former CEO of the Corporation.

Obviously, as both an educated person and a functioning human being, I'm in favor of marriage equality. I'm happy to put it in those terms: I have never seen an intelligent argument against it. I therefore feel very unconflicted about saying that I'm appalled by Eich's donation to the Proposition 8 campaign.

Here's where I'm conflicted. Eich made the donation, not Mozilla. Mozilla has, at least until hiring Eich as its CEO, been very clear about promoting diversity in all kinds of ways. They're good people, fighting for our rights by creating respectful software. I know many people at Mozilla personally, and they're brilliant. People I'm glad are on our side.

I don't like the idea that my own political beliefs might affect my hiring potential. Freedom of thought is important as a principle. Furthermore, it's not like Brendan was hired off the street: he's been instrumental to Mozilla's progress over the last few decades. He created JavaScript, which helps power the web. I feel like his personal political beliefs, as repugnant as I find them, should not necessarily affect his ability to be professional and run a company.

Where that would be different is if his political beliefs informed his management decisions. That's a tough line to walk; I know my personal beliefs would encourage me to, for example, provide equal benefits for same-sex couples. There are pragmatic, data-driven reasons to take these measures, but it would also be drawn from my own values. Elsewhere, we've seen that the management of Hobby Lobby has made terrible, likely illegal decisions based on their personal beliefs. Mozilla actually has great diversity policies, and is ahead of legislation; there's, so far, no sign of Eich's own beliefs regarding marriage equality showing up in company policy. However, there is obviously a danger that this might occur.

I'm inclined to think that he should be allowed to be CEO of Mozilla and prove his commitment to diversity through his actions.

However. His donation is obviously a terrible signal, and it smacks of blind idealism to suggest that a CEO's personal beliefs don't reflect on the company he or she runs. The reality is that a CEO of a major corporation is scrutinized in all kinds of ways. Mozilla doubtless knew this, and doubtless decided to proceed anyway because of their blind idealism.

I've seen many people say that they'll stop using Mozilla software because of Eich's beliefs. For any corporation, these issues have to be the bottom line. He is actively harming Mozilla by not making a proper statement on these issues and making things right. (I suspect he has non-public reasons for not doing this, which I won't speculate on here.) People are actively choosing to use software that demonstrably spies on you over software created by a company whose CEO has distasteful personal views.

Unfortunately, for a while Firefox was slower and more bloated than other browsers. That's no longer true, but the stigma has remained, and it's been losing out to Chrome in particular for a while. I strongly believe that you should be using Firefox over Chrome, for both ideological and technical standards-based reasons. Firefox does not spy on you, and its complete code can be inspected. Given everything we know about the NSA, GCHQ and corporate surveillance, I think it's a travesty that these issues are playing second fiddle to an idiotic $1000 political donation.

For this reason, I'm also inclined to think that Brendan Eich needs to either step down or step up and make a real apology, both for the good of the organization he represents, and the rights of users on the web.

Like I said, I'm conflicted. Principles vs pragmatism. It's not clear-cut for me.

Update: It's also worth mentioning the Ascend Project, which aims to promote underrepresented populations in open source.

· Posts · Share this post

 

Seeking an #indieweb alternative to Google Voice

The whole time I've been in the US, I've been using a Google Voice number to communicate.

Here it is: +1 (312) 488-9373.

The reasons are numerous: I can get phone calls on any of my connected devices, even when I'm out of the country. I can change phone service providers at any time. I can make calls in places with wifi but no cellphone reception. I get voicemails as text, so I don't have to listen through an endless series of recorded messages.

Phone numbers themselves are kind of an archaic technology, but it's not feasible to ditch them just yet. So I was disappointed to read that Google Voice is going to be rolled into Hangouts.

That's Google's prerogative. Any silo service provider could make a similar decision at any time. So the question becomes: how can I create my own Google Voice setup on my own infrastructure?

I want four things:

  1. Phone calls that come to me wherever I am, on whatever device
  2. The ability to change phone provider without hassle
  3. Voicemails in my email
  4. Cheap international calls

I also don't want to use Skype or another proprietary provider.

I'm really not sure what to look for here. I know about SIP and Asterisk, but setting up and maintaining them sounds like a pain to me. Is there something user-friendly I can use?

I'll be following up in a subsequent post with what I discover.

· Posts · Share this post

 

A list of independent, non-military drone projects

Here are some independent, non-military projects involving drones. These are projects that aren't selling drones in themselves, but rather are using drones as the backbone of the project. I've listed a single contact person for each one, which is usually the CEO but may also be the lead engineer:

Deliveries & Commerce

Tacocopter (Star Simpson)

QuiQui: Automated Drone Delivery of Pharmacy Items (Joshua Ziering)

Matternet, a kind of drone postal service (Martin Ling)

Flirtey, "the world's first autonomous aerial delivery company" (Francis Vierboom)

Skymail, "shipping things from door to door in 30 minutes or less" (Lukas Wrede)

Space Leap, robotic transportation (Erik Unger)

Personal Drones

Fleye: Your Personal Flying Camera (Laurent Eschenauer)

Lily, "the first personal autonomous camera in history" (Henry Bradlow)

Fotokite, a kind of flying steadicam (Sergei Lupashin)

AirDroids, which carry a GoPro, sold separately (Chance Roth)

Business Drones

Skycatch, programmable private drone surveillance (Christian Sanz)

Ceres Imaging, spectral data to optimize water and nitrogen for agriculture (Roberto Bunge)

Open Source Libraries

NodeCopter, which powers many of the above projects (Felix Geisendörfer)

Have I missed any? Let me know!

· Posts · Share this post

 

"Every time a company hires someone who isn't a young male, they run a risk."

Obviously, the title to this post isn't my opinion. Instead, it's a paraphrase of something from a Dave Winer post today:

I don't know if there's any solution to this. I certainly don't advocate not hiring people Roy's age -- I'm now older than he was then. But every time a company hires someone who is not a young male, they run the risk that the new hire isn't there to work, rather is there to scam you.

Dave's assertion is that young males (who are white, he later clarified in the comments) are a safer hiring bet, based in part on an anecdote about a poorly-performing employee he had in 1985. It's also very clearly meant to be analogous to Julie Ann Horvath's experience at GitHub, and not in a positive way.

This is bullshit, and it's important to call it out as such.

  1. Whether intentional or not, the timing of this post demeans the experience of a woman reporting harassment in a major tech company. The implication that she might be a scammer is noxious, but also implied rather than clearly stated; if this is the intention of the post, why not clearly state it, and if it isn't, why was this post published now?
  2. There is no evidence that young, white males are more productive, more trustworthy (!), or better hires in any way. They certainly dominate the industry, but there are all kinds of unmeritocratic reasons for this. Model View Culture is doing a great job of debunking some of these ideas. The solution is smarter hiring and a better culture, not very unsophisticated demographic judgments.
  3. This harms all of us. A monoculture that empowers systemic harassment makes for worse software, a weaker market and a worse experience for our customers. If you're building products for sale, you want to draw on the best possible skills and experience for the job. Why on earth would you limit the kinds of people who can help you based on their gender or ethnicity?

White males like Dave Winer and myself have inherent privilege that must be acknowledged. It's our responsibility (at least partially) to make the tech industry a more welcoming, diverse place. Posts like today's throw all the good, brave work that's being done by vulnerable people directly back in their faces. It's not acceptable, and it must be called out.

· Posts · Share this post

 

Some things I learned as a technical co-founder

The other day I got an email from someone asking about being a founding CTO of a tech startup. I replied with some brief advice, but it got me thinking: I've been doing this for a decade now, and was creating projects on the Internet for a full decade before that. A hallmark of the teams I've been lucky enough to work with has been the ability to punch far above our weight: online magazines edited by 15 year olds that ended up being distributed by the established press; the number one linked-to site on Blogdex (remember that?); a social platform used by the most prominent universities in the world, as well as national governments and Fortune 500 companies; and a video platform used by some of the world's largest broadcasters. These are solid achievements for groups and companies that, for the most part, contained fewer than 10 people.

The web is rife with articles giving universal advice based on subjective experience. For whatever reason, there's a tendency for technical people to think, "this worked for me, so why aren't you doing things the same way?" I don't think that's usually truthful or productive, so take this post with a pinch of salt. These are my opinions, not a manual.

Nonetheless, if you're just starting out, with few resources, what advice can I offer? Here are a few things I hold to be true.

Enjoy yourself.

Few things are as exhilarating as creating your own thing from scratch - making something from nothing - and releasing it into the world. People will notice if you're loving the experience. Don't lose your joy.

Focus on people.

For "people", read: your end-users, your customers (if they're different), your coworkers.

Your satisfaction must come from pushing code to the user and building something that creates value, rather than the act of programming itself. If you don't like people, and you don't want to interact with people, don't found a startup. If you're starting a business, you need to be relentlessly social (in the human sense), communicate well, and love getting feedback. Otherwise, do something else.

This is a refrain I'll repeat many times below: communication, communication, communication. You need to communicate clearly, and you need to listen, both to your customers and your team.

This is, of course, in addition to having great technical skills. These things together will allow you to build great software.

Understand your responsibilities.

As a co-founder, you are jointly responsible for the direction of the company, and creating an awesome, valuable product.

As the technical lead, you have a lot of responsibilities and pressures on your shoulders. You need to make sure your product or service is technically as good as it can be. You need to ensure that the technical side of the operation is able to meet business objectives. You need to be a software architect, and an infrastructure architect, and a technical designer, and a lead developer. As you grow, you need to be a product manager, ensuring that everyone in the engineering team understands the business goals (and hits them), and ensuring that everyone in the business team understands the technical challenges (and has a sense of the technical realities of your projects).

Ultimately, the technical buck stops with you. If the technology doesn't work, it's your fault. That's fine, but it's therefore doubly important that you are candid with everyone in the team about technical challenges that you might face, and the requirements for success.

Pick the right cofounder.

Before you begin working on a startup, it's also important that you check if your business co-founder or co-founders are able to bring something to the table to the same degree. If you're doing all of this and picking up a disproportionate degree of the business side, you will find yourself quickly burning out, serving nobody. Be a cog, not the engine.

One particular danger is that people see you as someone who can make their ideas a reality; that you will, essentially, build what they tell you to. (In one particularly toxic situation I was referred to as "the back-room guy".) This is an employee relationship, not a co-founder one. The company needs to be a true collaboration between founders, and everyone must have the skills and focus to participate more or less equally.

An oft-quoted metric for finding technical cofounders is if they have a past record of building things under their own steam, and an understanding of the intersection between business and technology decisions. Well, guess what? That applies to non-technical co-founders, too. Do they have a past record of starting their own ventures? (They don't have to be businesses, but their own projects, and so on.) Do they have an understanding of the intersection between business and technology, and the kinds of trade-offs you have to make? They do? Great.

Build small pieces, loosely joined.

Don't fall into the trap of building elaborate frameworks or overly elegant technical solutions. Your role as a startup founder is to test and change rapidly. By building too much of a framework around your code, you lose the ability to react to customer feedback. The ideal is that you can learn as much as possible from your users, and then shift your code to take these things into account.

Nonetheless: always, always, always make sure code is commented and well-documented, no matter how little time you have to spend. Comments are part of the code, not an afterthought, and the people who tell you that decent programmers should just be able to read the source are flat-out wrong.

That you should use decent source control, issue management software, etc, is obvious. When you're starting out, a paid GitHub account should work fine. (I've used Beanstalk, Assembla, and a bunch of other things, and GitHub is more stable, is easier to use, and has the best ecosystem.)

Be proud of your system's code, but be proud of how small, nimble and well-documented it is. Don't be afraid to plug in existing, well-tested frameworks and libraries, as long as they're well suited to your goals.

Don't be trapped into caring what the cool kids think about programming languages. The only material way your choice of programming language will affect your software (within certain bounds, of course) is in the choice of people you are able to hire.

Remember design.

User experience, interaction and interface design will probably come under your remit to begin with. They are the first impression that your product makes. Don't make the mistake of thinking of them as an afterthought (or, as more than one developer has expressed to me in the past, "pretty pictures"). Design is equally as important as architecture. You need to make sure every one of your engineers - as well as the business team! - is thinking in terms of the impression the product you're all making is having on its users, rather than a list of features and capabilities. If you can, bring a professional in to help you with design. It'll make a disproportionate amount of difference (see my note about the team, below).

Expect to scale.

If you're building technology, build it with an understanding of how it'll work when it has 10,000x the usage it does now. A few years ago, there were a lot of articles warning about premature scaling, which is a danger: you can easily sink all of your time and resources into building infrastructure that scales beautifully, when your focus needs to be on shipping as early and as often as you can. Nonetheless, not paying enough attention to scalability is dangerous. The old programming maxim - never assume you're going to be able to come back to anything - certainly holds true in a startup. Ask yourself what'll happen when you exceed the capacity of one server, or five, or fifty. When scaling becomes a business need, you'll need to do it very quickly. You'll have to do work in each case, but if you've thought about it and prepared while you were building, you'll be much more agile.

Again: small pieces, loosely joined, with queues and late binding. You'll thank me later.

Don't skimp on tech, but don't waste money, either.

I've written before about my long, slow journey to Mac. I just think they're better computers: more reliable, faster, and, crucially, more compatible with the software you're probably running on your servers. They're not more compatible than Linux laptops, of course, but there you'll still run into a world of hardware incompatibilities and time-wasting fiddling that you really can't afford. Leave the tinkering to your spare time. The last thing you want to be doing is fiddling with drivers or mucking about with wifi settings when you should be working on your product or your next pitch.

Think about what you actually need. My first Mac was a 2011 Macbook Pro that I upgraded to 16GB of RAM; theoretically it's blazing fast. In fact, though, the computer I use the most is my Macbook Air, which is less than half the cost, and theoretically vastly underpowered. It just works, and the battery is impressive enough to last a coast-to-coast flight. These things matter.

On the other hand, don't buy a peripheral, or something like an iPod Touch, unless you absolutely need it to test or run your software. You don't need to be awash in computers and technology. Just buy the things that affect your business directly, at least to start with. Most of us are gadget-heads to some degree; resist the temptation to buy cool stuff because it's cool.

Strong milestones are good - but it's okay to change the plan.

A set of strong milestones, with associated tickets, allows anyone in the team to get a good sense of the roadmap. I like arranging tickets onto a kanban board, so you can see what people are working on right now, as well as the backlog. Standups are great for this, too, as long as you follow the rules and do it standing up, for a short period. Don't be tempted to devolve into a long meeting; that's not going to get you anywhere.

Sometimes, you'll find that you need to change the plan completely, perhaps to take advantage of a sales opportunity, or because you've realized you need to take a change in direction. Early on, that's both okay and sometimes necessary. You need to be okay with not sticking to the plan, and you need to reassure your team that this isn't a terrible thing. As ever, good communication is key, and it's a good idea to go into the "why"s.

Your team is everything.

When I was working on Elgg, we knew we needed a designer to help build better interactions and interfaces, and create the brand identity for the company. When we found the person we wanted, we paid him more than our own salaries; we had equity, after all, and adding him to the team would create a huge amount of value for the company.

Do your best to hire well, and never hire someone because they're cheap. Sometimes they won't know their own value and it'll work out, and sometimes you'll find someone who is genuinely under-skilled. Either way, by paying them far below market rate, you're screwing them, and that's a lousy footing to start off a relationship on. It's certainly true that you'll have to pay less than many companies, but you can offset that with the freedom that a startup can offer. (Equity and the promise of value later on isn't enough; at this stage, most potential engineers are wise enough to know that share options are a lottery ticket.) If you're creating a corporate, hierarchical environment with all the resource constraints of a startup, and not offering anything tangible in return as people, you're creating a poor working environment. Freedom, trust, and a creative environment are all motivators. It doesn't have to all be about money, although money really does help; salary should be one of the first things you bring up when you can. Employees who are worrying about making ends meet are needlessly distracted.

It's okay to let go of someone if they're underperforming. You should do it early, both for your and their sakes. Sometimes, it's just not a good fit. Nobody likes working somewhere where they're doing badly, and there's no need to be nasty about it; if it isn't working, it isn't working. It's better to end an unproductive relationship quickly than let it limp on. This is, for me, a very hard thing to do. Nonetheless, it's sometimes necessary.

Be nice, by the way. Steve Jobs was famous for yelling at people, and he wasn't alone. It's completely unnecessary, and creates a poor environment. You and your team are allies, and if something's going wrong, remember where the buck stops?

By the same token, your team has to know that if you're asking them to do something, it's for a reason. While you should always be open to the idea that you could be wrong, and interested in listening to opinions from your whole team, everyone does need to know that you have the final say, and that they need to be adhering to the milestones you've set down. (If those milestones are realistic, of course; you need to be receptive to the idea that they might not be.)

Hire well. Get people excited. Be a steward of their well-being, and give them the space to build amazing things. Don't dictate tasks; your team are your collaborators. Talk them through what needs to be done, and why. Smart people question things, so give them reasons.

One last thing: part of communicating clearly is making sure people feel like they can approach you to talk about anything. Your workplace has to be a safe place. If someone is being harassed, or feels put upon for any reason, or they have any concerns at all, they need to be able to talk to you about it without fear of reprisals. Similarly, they need to feel comfortable. If someone's making sexist jokes, or otherwise making anyone feel uncomfortable, it's down to you to stop it.

Everyone should do support.

By which I mean, everyone in the company. It's important to understand the problems your customers are experiencing, and this is a great way for everyone to get a good handle on that. But it's also important for everyone in the company to understand how the product works - something that non-technical members of the team might have less of an understanding of, as they're not in its guts day in and day out. By ensuring that everyone takes support phone calls (if you take calls) and emails, you ensure good product & customer knowledge throughout the team.

It all comes down to empathy.

Good communication is empathic. You need to be able to understand your customers, your team, and your co-founders, and react when you sense that any of them are unhappy. Tech startups may have technology running through their veins, but more than anything else, they still have people at their core. A little love goes a long way.

Good luck!

· Posts · Share this post

 

4d 79 20 6c 6f 76 65 20 69 73 20 6c 69 6b 65

My love is like base64 encoding. Lossless and incomprehensible.

My love is like an alphanumeric URL variable. Easily escaped.

My love is like JPEG. It looks good at first but it's full of distortions.

My love is like GIF. Surprisingly hard to say out loud.

My love is like Prolog. Backwards.

My love is like git. My pull requests are often denied and rebasing is a mystery to me.

My love is like an unfixed bug. It just keeps escalating.

My love is like emacs. It's been around a long time and I guess I understand the attraction but, honestly, I think you should be looking elsewhere.

My love is like IPv4. Full.

My love is like TLS. A brief handshake and we're set.

My love is like an HTML document. Marked down.

My love is like XMPP. Noisy.

My love is like a legacy PHP function. It's hard to predict the parameters and it might yell some Hebrew at you for no reason.

My love is like an RSS reader. You've got to keep feeding it.

My love is like the web. This is for everyone.

· Posts · Share this post

 

Elgg, Latakoo & Idno: in defense of weird names

1. Elgg

I've written before about how Elgg got its name. I had just recently graduated, and due to an unwise predisposition for flippant humor, I didn't have a single serious email address to my name. I needed one in order to apply for jobs. My full last name is Werdmüller von Elgg, and a brief search revealed that elgg.net was available. I used ben@elgg.net as my email address for years, without any web presence - so when I wrote a prototype social networking platform for education, it made sense to put it there.

Nobody was very comfortable with the name. Alternatives that were suggested over the years included Learning Landscaper, but none of them stuck. Past a certain point, the project was well-known enough that changing its name would have been silly; and anyway, it was a short, easily-memorized domain name.

Imagine, though, if we'd decided to call it Learning Landscaper. While that fit our original idea, Elgg morphed quickly from a social eportfolio engine for capturing informal learning into a multi-purpose engine that anyone could harness in order to create a social networking site. Had we picked a more domain-specific name, we would have limited our scope automatically, and possibly even unconsciously. Had we picked a more rational name (Engine, for example), we would have possibly isolated Elgg's large non-English-speaking userbase, and cut out a huge number of opportunities to talk about it. I lost count of the number of times someone asked us "what does Elgg stand for?" - it was unusual, and people were curious about it.

In fact, my only real regret is that I no longer have use of my ben@elgg.net address.

2. Latakoo

A latakoo is a kind of African lark: a bird that flies high and fast. For a service that allows people to send media footage quicky from and to anywhere in the world, that makes some thematic sense. But there's a good chance you might have never heard of a latakoo before.

When we were brainstorming names, a close contender was Cloud Compressor. The "cloud" was a big innovation back then, and latakoo achieves the bulk of its speed improvements through data compression. On face value, it makes sense. But not only is it a lifeless set of words, like Learning Landscaper, it thematically contrains what the company does.

Today, compression is just one part of the Latakoo service. It's still core to what we do, but we use it hand-in-hand with advanced routing, access permissions, and both service and datacenter integrations. We take media footage via any Internet connection, and deliver it anywhere, in the format it needs to be, securely. That's in no way covered by Cloud Compressor.

Our customers use us as a verb: "latakoo it". That's both a wonderful endorsement of our service and something that would only be possible with the right kind of name. What do you think YouSendIt were after when they changed their name to Hightail? Try to construct an elegant sentence involving sending something with YouSendIt. Now, switch it out to Hightail. "Hightail it". The kind of word you choose matters, because the sentences people use to describe you affect the way they think about you.

3. Idno

Lately, I've been spending some time with Idno, which I started in order to explore what a social publishing engine might look like on today's web.

It's another weird name, whose origins lie in the very unlively term ID node. I lopped off the de, because I wanted the word to phonetically end in a vowel. The idea was to create something that was at once friendly (I think ending in a vowel makes it feel like a nickname), reminiscent of terms like "ID", "id", "know" and "number", and weird. (It's also sometimes used as an acronym for in desperate need of, and a shortened form of I don't know; neither are bad connotations.) My idea is that people would remember idno in a way that they might not remember a more normal name.

We'll see what happens. I've been talking about perhaps changing its name while I can, but part of me likes having a name that's a little unexpected. Maybe that's because I have a bit of a weird name, too, but I genuinely think that standing out and being a bit skew-whiff to everyone else is a positive trait. There are situations where choosing a very conservative name is appropriate - for example, when your customers are, themselves, very conservative - but typically in technology you want to be seen as innovative.

And the way you are perceived starts with what you choose to call yourself.

· Posts · Share this post

 

People vs traction is a Rorschach test

From Amber Case's wonderful talk on the Rise of the IndieWeb:

When the storytelling is told by people, not by traction or real implementation, then whoever tells the best story wins.

- Blaine Cook

Her slides are over here.

It strikes me that this quote is a Rorschach test. People like me are likely to have a visceral reaction to this: of course the winner should be dictated by traction and active implementation. Whatever solution to a problem ends up being used is the winner. It makes sense.

But there's going to be a whole other set of people who see this and think, yes! Of course the winner should be the best, most persuasive storyteller.

In technology, I'm pretty adamant that the winner should very rarely be the best storyteller. Of course, in the real world, it's the people who can spin a story (or have some other advantageous property) who often win.

What this really means is that implementers - the people who do the real work - need to learn to tell better stories, as a group. That's why I very much appreciate people like Amber, who are not just deep thinkers and implementers, but also great storytellers. It's an important skill, and being able to convey as well as build multiplies your ability to effect change.

· Posts · Share this post

 

At a demonstration against surveillance, why film all of our faces?

I've just come back from the Day We Fight Back protest, which was held outside the AT&T office where Mark Klein revealed a secret room where the NSA was intercepting communications. Mark himself came out to speak, and it was wonderful to see so many people coming out on the streets of San Francisco to protest against unconstitutional surveillance.

thumb.jpg

There was one thing that I thought was a bit of a sour note. This protest, fundamentally, is about privacy. While I can understand the importance of photodocumenting the event in order to raise awareness and demonstrate support - I took quite a few myself - there was a point where, I think, this crossed the line into unnecessary intrusion. Unfortunately, it was done in the name of Aaron Swartz.

We were encouraged to all stand in a circle, so we could observe a minute's silence in his name. That's great. I was less impressed that we were expressly instructed to form the circle so that nobody was overlapping anybody else. And then horrified when two sets of cameramen went around the circle and filmed every single one of our faces.

This was a brilliant event, created for an important purpose. Surveillance and civil liberties are the key issue of our age, and we must fight to create the society we want to live in. But, while nobody has any legal expectation of privacy in a public space, and while documenting these protests is important, I feel like this kind of recording sends the wrong message.

For transparency's sake, I'd like to know who the cameramen were. But more to the point, I'd urge anyone holding a protest against rampant surveillance to think twice about engaging in this sort of activity themselves.

Nonetheless, this was an important event. At the time of writing, 82,448 calls have been made to congressional representatives supporting legislation that will severely limit surveillance powers in a meaningful way. There's a long way to go, and we need to keep fighting for what is right - while questioning everything that is happening around us.

· Posts · Share this post

 

This showed the promise of the social web to an aspiring academic. Could it happen today?

Rereading the Guardian article about Elgg, I'd forgotten this detail, which is true:

The idea was conceived in late 2003, when Ben Werdmuller and Tosh were working at Edinburgh University developing e-learning and e-portfolio systems. Werdmuller (an avid blogger) persuaded Tosh (who had just started a PhD in e-portfolios) to start a blog of his own to support his studies. Within a week, Tosh had received comments on his blog from people pointing him to relevant resources and others bloggers had begun to link to him.

Dave and I shared an office at the University of Edinburgh. He was skeptical about blogging at that point, so what I told him was this: start a blog, post every day, and leave a meaningful comment on someone else's blog every day.

I wasn't sure that it would work, but thought that it probably would. Sure enough, within a week or two, he was part of the global elearning community, and was participating in conversations with its thought leaders. It was through this medium that we put out the initial white papers (completely unofficially) that provided the basis for Elgg, which went viral in the elearning community.

Could that happen today? I'm not sure.

· Posts · Share this post

 

Look Out MyBlogLog - Here Comes Explode (or, how everything changed one Friday afternoon)

The turning point for my first startup came one rainy Friday afternoon, in February 2007.

As TechCrunch reported:

A new open source cross-site social networking service called Explode launched today and looks like a very appealing alternative to the now Yahoo! owned MyBlogLog. Built by UK open-source social network provider Curverider (whose primary product, Elgg, is similar to PeopleAggregator), Explode offers an embeddable widget that links out to users’ respective profile pages on any social network but allows commenting and befriending in one aggregated location. I found Explode via Steve O’Hear’s The Social Web, one of my new favorite blogs.

Steve O'Hear had written:

Although comparisons with Yahoo's MyBlogLog are inevitable, Explode isn't primarily intended as a way to turn an existing blog into a social network, nor as a way to monitor traffic. Instead, think of it as a loosely joined network that works on top of existing social networking sites and blogs, to allow a user of one site to 'befriend' and communicate with a user from another.

Curverider co-founder, Ben Werdmuller, says that Explode is very much a 'work in progress', and that they are already working on an API, and also have plans to add support for OpenID.

Dave Tosh and I had been working on Elgg for three or four years at that point, and had obtained a two-person office above a bookstore in Summertown, an affluent area in North Oxford, awash with coffee shops and restaurants. Our startup was fully bootstrapped; not a single penny of investment had been put in, except for our own work, and the non-monetary support of the people around us.

As Februaries in England can sometimes be, it was a cold, overcast day, with nothing to recommend it. Because we were bootstrapping, we had been working hard, as always, and we were exhausted. Also because we were bootstrapping, our waistlines had seen the effects of long hours in front of the computer sustained only by relatively cheap food, so we'd decided to buy ourselves gym memberships and try to go regularly. (I think we managed eight or nine times.)

As we worked out, we decided that, screw it, we weren't going to work on Elgg for the rest of the day. There was nothing to be gained, we were feeling kind of burned out, and surely there had to be something more fun we could do.

Elgg was a full-blown social networking engine, and although we later completely rewrote it, it was still a pretty powerful piece of software used by companies and institutions all over the world. And I had a simple idea.

When we got back, I got to work widgetizing all of Elgg's functionality: writing templates that would take pieces of its output - the friends list, for example - and embed it in JavaScript such that it could be made to display on any website. This was back when people still had websites where people could embed HTML and JavaScript, and the effect would be that any website could be part of a larger social network. That wasn't a small idea: it captured questions people were already having about siloed sites, and would later be tackled by projects like Google Friend Connect. (Of course, the IndieWeb movement is answering those questions today.)

search_three.gif

Dave created a template for the site so people could sign up and get their widgets. At the last minute, we created a logo. I made it in about 5 minutes in MS Paint, which seemed appropriate for a hacky site, and we both agreed that a ridiculously bad logo was probably good: it captured the scrappy ethos of the whole afternoon project.

explode.png

After four hours of work in total, we made it live, and pinged some people we knew, like Marshall Kirkpatrick, who at the time was a TechCrunch writer (now the CEO of the excellent Little Bird), and Steve O'Hear, who had previously written about us in the Guardian. For us, it was a bit of a lighthearted thing we'd put together at the end of the week, and we didn't really expect anyone to cover it. To his credit, Dave proactively got in touch with everyone anyway.

Boom. Steve wrote about us, and then Marshall wrote the story on TechCrunch. This was more coverage than the tech press had ever given us.

The fact that we had executed quickly on our idea, which in turn had developed out of having worked on social networking platforms for years, mattered. The fact that we didn't try and make it perfect, or spend ages putting it through careful design cycles or product feedback loops, was unimportant. We had a working first version, and we put it in front of people, who thought it was compelling. This directly led to many more customers for Curverider, as well as our first investors, who got in touch because they had seen the coverage.

Those four hours of work - and the quick decision to muck about, be creative, and follow our whims for an afternoon - literally changed the fate of our company, and both of our careers.

· Posts · Share this post

 

We can still bring back net neutrality. And we should - for the sake of the Internet.

Net neutrality is the principle that "Internet service providers and governments should treat all data on the Internet equally, not discriminating or charging differentially by user, content, site, platform, application, type of attached equipment, and modes of communication." In other words, all of my Internet data is treated the same, whether it's from Netflix, Skype, Baidu, your personal website, or a startup nobody's heard of. If I'm competing with Netflix, I can't pay your access provider to have my movies stream faster than theirs.

When net neutrality rules were adopted in the US by the FCC in 2010, the conservative Wall Street Journal columnist John Fund disingenuously painted it as follows:

The Federal Communications Commission's new "net neutrality" rules, passed on a partisan 3-2 vote yesterday, represent a huge win for a slick lobbying campaign run by liberal activist groups and foundations. The losers are likely to be consumers who will see innovation and investment chilled by regulations that treat the Internet like a public utility.

These rules were themselves a compromise, which neither pleased conservatives like Fund, nor net neutrality advocates. However, it did ensure that Internet traffic saw some protection.

Fund was flat-out wrong. The Internet should be a public utility; whereas some have tried to paint net neutrality as being a set of anti-business principles, they in fact protect the Internet as an open marketplace for innovation. The rules ensure that businesses will not be penalized on the network for being new, and allow new technologies and approaches to flourish. Removing these rules allows ISPs to control the market, whereas a utility Internet ensures that free trade is possible.

Verizon, the US telco formerly known as Bell Atlantic, had been fighting to overturn the FCC ruling for commercial reasons:

And in court last Monday, Verizon lawyer Helgi Walker made the company's intentions all too clear, saying the company wants to prioritize those websites and services that are willing to shell out for better access.

She also admitted that the company would like to block online content from those companies or individuals that don't pay Verizon's tolls.

On January 14th, Verizon won.

The implications are that net neutrality is dead and buried, and that carriers can begin to charge the fees for access that Verizon referred to. In turn, this may open the floodgates for unequal access to the Internet everywhere; although the FCC only has jurisdiction over communications in the United States, enough of the Internet is transmitted over the domestic backbone to make a difference.

Not only does that affect the quality of the Internet and the ability for new Internet businesses to operate - it also, together with last year's extensive NSA revelations, disproportionately affects American Internet businesses. One of the founding principles of the Internet's architecture is that traffic can be re-routed; why wouldn't other nations begin to work around the United States's compromised network?

All is not necessarily lost. Michael Copps, a former FCC commissioner, recently wrote that broadband should be reclassified as "telecommunications".

On Wednesday, Copps wrote a blog post titled, "The Buck Stops At The FCC," calling upon the commission to "reclassify broadband as 'telecommunications' under Title II of the Communications Act." The effect of that move would be to designate Internet service providers as "common carriers," making them subject to increased FCC regulation.

Common carriers "transport goods or people for any person or company and [are] responsible for any possible loss of the goods during transport" - as opposed to contract or private carriers, which may refuse to carry anyone else's goods. This would effectively turn the Internet into the utility John Fund was so afraid of.

Copps continues:

Without this step, we are playing fast-and-loose with the most opportunity-creating technology in all of communications history. Without this step, we are guaranteeing an Internet future of toll-booths, gatekeepers, and preferential carriage. Without this step, we stifle innovation, put consumers under the thumb of special interests, and pull the props from under the kind of rich civic dialogue that only open and non-discriminatory communications can provide.

Lest we think it's as simple as this, the EFF recently released its opinion that the FCC can't - and shouldn't - save net neutrality. Granting the organization power over the Internet itself gives it too much power to regulate what has been, traditionally, an open, international medium:

Internet users should be wary of any suggestion that there is an easy path to network neutrality. It’s a hard problem, and building solutions to resolve it is going to remain challenging. But here is one guiding principle: any effort to defend net neutrality should use the lightest touch possible, encourage a competitive marketplace, and focus on preventing discriminatory conduct by ISPs, rather than issuing broad mandatory obligations that are vulnerable to perverse consequences and likely to be outdated as soon as they take effect.

The Internet is a marketplace; there can be no doubt about that. I think that the incumbent businesses coming out against net neutrality tend to be ones deeply entrenched in old technologies: after all, both telephone and broadcasting are effectively technology businesses. They just happen to be ones whose underlying technologies are obsolete. Their businesses are hurting because something better has come along, which is meeting the needs of consumers in a more efficient way, and they're struggling to adapt.

Too bad. The Internet will win, and with it, consumers. There is nothing to be gained by restricting it; certainly not in the long term. Net neutrality will create wealth, it will create jobs, and it will set the stage for innovation for decades to come.

· Posts · Share this post

 

RIP Pete Seeger. He will be missed.

I grew up on American folk music. My fondest memories are gathering with my extended family in Massachusetts to sing informally. I knew the lyrics to This Land is Your Land or Charlie and the MTA long before I knew the words to anything they would play on the radio.

I also grew up with progressive values. On the American side of my family, there have been union leaders, college professors, thinkers and writers; people who cared about social justice, for whom the works of people like Pete Seeger were meaningful. As the New York Times writes:

His agenda paralleled the concerns of the American left: He sang for the labor movement in the 1940s and 1950s, for civil rights marches and anti-Vietnam War rallies in the 1960s, and for environmental and antiwar causes in the 1970s and beyond. "We Shall Overcome," which Mr. Seeger adapted from old spirituals, became a civil rights anthem.

He was in a group called the Almanac Singers, which also included Woody Guthrie, another legendary progressive folksinger. Their album Talking Union and Other Union Songs was admitted to the Library of Congress as a historically significant recording. Union Maid is on that album, as well as a famous recording of Which Side Are You On?; but it's the lyrics of Talking Union itself that I think are particularly brave. It was originally written in the 1940s, in the midst of World War II - and then re-released at the height of the McCarthy era!

If you want higher wages, let me tell you what to do;
You got to talk to the workers in the shop with you;
You got to build you a union, got to make it strong,
But if you all stick together, now, ‘twont be long.
You'll get shorter hours,
Better working conditions.
Vacations with pay,
Take your kids to the seashore.

He was the kind of artistic hero who embodied the values I aspire to, and who does not seem to exist anymore.

Over on MetaFilter, I commented:

He was, sadly, blacklisted for being a communist, and recognized as a living legend by the Library of Congress. An anti-war singer, a champion of workers rights, a Rock and Roll Hall of Fame inductee and a children's entertainer; an undeniable part of America's cultural history. I enjoyed this full-length concert with his half-sister, Peggy.

Here's his version of If I Had a Hammer, which he co-wrote; there's also a Smithsonian Folkways episode about him, which is an hour long and a free download.

· Posts · Share this post

 

Trading games in the playground, trading games on the web

Like a lot of people, the thing that first got me into programming was games. I'd learned rudimentary BASIC as a kid, but it was as a teenager that I started to get a taste for the thrill of making something and sharing it with other people.

Adventure games had always been my favorite. I remember playing a port of the Colossal Cave Adventure; later, I got hooked on Infocom's very well-written output, particularly the Hitchhiker's Guide to the Galaxy game, which was co-written by Douglas Adams himself. Finally, I came across LucasFilm Games, who published The Secret of Monkey Island, which is still my favorite piece of digital entertainment of all time. (Honorable mentions from other genres include SimCity 2000, Railroad Tycoon and Populous; to my shame, I never got into Civilization.)

But it wasn't those games that inspired me to build.

Whereas Monkey Island and its brethren were produced by companies that sometimes felt like (and sometimes literally were) movie studios, the shareware games movement was a rich mine of scrappier, but somehow more creative games. Jeff Minter's Llamasoft was probably the pinnacle of this; its game Llamatron was an off-kilter take on Robotron: 2084 but featuring a llama that battled against mutant Coke cans, Mandelbrot fractals and Mr Potato Heads. (It's worth mentioning that I've never been particularly interested in illicit substances, although I can't speak for Mr Minter.) Its anarchic design was liberating, and it felt doable. It was actually doing some sophisticated things behind the scenes, but nonetheless, for a beginner coder, Llamatron felt within reach.

I started learning as I wrote in Prospero Pascal, and then shared what I'd built with my friends Marcus Povey and Tom Nunn, who were also building. Something happened that was new to me: I felt playfully competitive with them, and everything they built spurred me to try and create something better. It was a virtuous circle. We were 14.

My first game involved a simple maze that was slowly revealed as you walked around it, cribbed in part from one that Marcus had already written. Subsequently, each game became a little more sophisticated. The Numerator ("he's always on top") was a take on Llamatron with a wave audio backing soundtrack. Mr A Goes For a Block was a psychedelic take on Sokoban that made it onto some early-90s shareware CD-ROMs. I wrote a space game with 3D starfields and a collaborative maze game where you flipped between two characters at different ends of the same labyrinth who needed to work together to get out. My crowning achievement, eventually, was Mr Sheepz, another game clearly heavily inspired by Jeff Minter, wherein you had to eat sheep grazing in increasingly-complex fields before giant sheep-eating snails got to them first.

And then I turned my attention to the web and never looked back.

Lately I've become aware of a whole new subculture of independent game developers, who have been experimenting with new forms, narratives and designs, using the web as a medium. Using HTML5 and JavaScript, sometimes in conjunction with engines like CreateJS, Turbulenz and many, many others. Others are building mobile apps; others are building the same kinds of full-screen desktop games that I used to.

My friend Tef recently moved into a flat of indie games devs, one of whom organizes an event called The Wild Rumpus, after Where the Wild Things Are:

It was in August 2011 in a glamorous Nandos (a sordid middle-class chicken hut chain where every dish tastes like cayenne pepper dissolved in lemon juice) that George says he was asked to help form a committee to hold something called ‘The Wild Rumpus’. The Wild Rumpus is game roughhousing: the informal event takes place in a hired bar, features simple lo-fi multiplayer games you can play with friends between drinks. They use projectors and huge screens, and the games are always visually mesmerising, competitively thrilling, or require players to engage in social theatre lubricated by beer. It’s always busy, and there is as much pleasure in spectating the bright colours and social friction that the games bring as there is in actually playing games there. “Closer in spirit to party, playground, or even drinking games, these are all games that you can’t play at home on your own” it is declared. The atmosphere is in between that of a game night with friends and an electro-pop club night with extremely well-behaved patrons.

At the first XOXO, meanwhile, one of the standout moments was discovering a game called Johann Sebastian Joust, which is played by multiple people with controllers, but no screen. It's the kind of game that blurs genres, but that's not the point; it's fun, sometimes hilariously so, and the technology creates a framework that feels like an augmented playground. Indie Game: The Movie, screened at the same event, is as inspiring as any movie about individual creativity.

Games never really went away, but the interconnectivity of the web, the openness of our platforms and the ubiquitous availability of simple technology means that there's more opportunity to experiment than ever before. It's not all about running and shooting things, which I've always found pretty snoreworthy (dalliances with the original Wolfenstein 3D and Doom aside).

It's been a while. I think it would be nice to pick up some tools and build some stupid fun.

· Posts · Share this post

 

We're looking for some people to help us. #ios #php

My employer, Latakoo, is an enterprise media management company. We help people send files - mostly video, but we're expanding - really fast using any Internet connection.

A lot of our customers are involved in news and journalism. Here's a sample:

It's not uncommon for us to get support requests from journalists in places like Syria who need to get footage out quickly and securely. Shortly, we expect to talking to people in Sochi a lot.

So here's the thing. We're a small, very agile (with a small "a") startup, and we need a little bit of help getting some of our upcoming projects out the door. They're all high profile, directly affect customers who themselves high profile, and are full of really meaty, interesting engineering problems. Oh, and they're based out of Austin or San Antonio in Texas.

Here's what we need:

  • A freelance Objective-C iOS developer to help us with our completely redesigned iPhone and iPad apps.
  • An experienced freelance PHP developer to help us build our media management interfaces, further expand our international file upload network, and integrate with things like ElasticSearch and CloudFront. Knowledge of HTML5, WebRTC and real-time application development are a big plus.

Sound interesting to you? Great. Email me at ben@latakoo.com, and let's talk!

Please, please, please, no agencies, offshore or otherwise. I want to work directly with individuals, and you have to be local to Austin or San Antonio.

· Posts · Share this post

 

How idno handles #POSSE syndication to third-party sites #indieweb

Last week at Homebrew Website Club, I was asked how Idno syndicates to third-party sites like Twitter when I post content.

Here's how it works.

First of all, Idno has a plugin system, that allows new functionality to be added system-wide. As well as new kinds of content like slide presentations, plugins are available that interact with the APIs of Twitter, Facebook, Foursquare and Flickr.

When I install any of those plugins in Idno, I'm taken through a process where I register my Idno site with the third-party API. Each of those sites has a slightly different process, but in each case it takes about 30 seconds.

Once the link has been made, the plugin shows up as an option in Idno's user settings screen. I click "settings", and then click a button to link my account to the site:

52ddc8a9bed7de923bd9b28b

This is exactly the same procedure as logging in with any of those sites, or attaching any third-party application. It's about two clicks: in the case illustrated above, I'm taken to Twitter, which asks me to confirm that I want to give Idno permission to use my Twitter account, and then taken back to my Idno settings. Internally, my OAuth token for that site is saved to my user account.

Here's where things get interesting.

Remember I said that Idno's content types are also provided via plugins? There's a plugin for status updates, for photos, blog posts, events, etc etc. Whenever I want to add a new content type to Idno, I add a plugin. (They're really easy to write; the presentations plugin was written in about an hour, while I was recovering from a root canal operation.)

As well as descriptive content type - "status update" - each plugin announces a generic content type that maps to those used by the activity streams specification. A status update is also a "note"; a blog post is an "article". This allows plugins to extend functionality for certain kinds of content without dictating which plugin you use for that content. Someone can add extra logic for status updates, while not caring which status update plugin I actually use.

When I post new content, the system pulls up an interface supplied by that content's plugin, and also asks any syndication plugins if they're able to handle content of this type. So when I click on my "status update" button, Idno asks plugins if they're able to syndicate content of type "note".

Idno automatically renders some buttons for me based on those plugins. If I enable the "Twitter" button, my content will be syndicated to Twitter when I post it. If I enable the "Facebook" button, it'll go to Facebook, too. If I later decide to add a button for Path or LinkedIn or Friendster via a plugin, it'll show up there, and work in exactly the same way, without me having to change any of the status update plugin.

529a339fbed7ded008743763

When I hit Save, the syndication plugin receives information about the content type (but not which plugin created it), as well as information about my account. It retrieves my API token from when I linked my account through my settings panel, and uses that to sign an API request posting the content to that site. It then retrieves the URL of the syndicated content and saves it to the local content in Idno, so a "syndicated to" link can be displayed underneath it. (Check at the bottom of this post's page: you'll see a link to Twitter.)

This process works throughout Idno. Photos (of generic type "image") can be syndicated to Facebook, Twitter and Flickr, and while the logic is different for each site, the user interface flow is the same for each one. This works whether I'm posting from a laptop or a phone, and whether I'm on the standard web interface, a custom interface or the API.

It's important to note that none of this takes much time, for any of the parties involved. Writing a content plugin takes about an hour; writing a syndication plugin can take much less time, if the third-party API uses OAuth. Site admins can install a plugin and set it up in a few minutes. The process for the user takes mere moments, and that's the most important thing.

· Posts · Share this post

 

The NSA is counter to everything America stands for.

Bruce Schneier had to brief a branch of government on a government agency today:

This morning I spent an hour in a closed room with six Members of Congress: Rep. Logfren, Rep. Sensenbrenner, Rep. Scott, Rep. Goodlate, Rep Thompson, and Rep. Amash. No staffers, no public: just them. Lofgren asked me to brief her and a few Representatives on the NSA. She said that the NSA wasn't forthcoming about their activities, and they wanted me -- as someone with access to the Snowden documents -- to explain to them what the NSA was doing. Of course I'm not going to give details on the meeting, except to say that it was candid and interesting. And that it's extremely freaky that Congress has such a difficult time getting information out of the NSA that they have to ask me. I really want oversight to work better in this country.

If there's this level of government oversight on the NSA - i.e., practically none - and if the NSA is actively spying on government, which seems likely, it's fair to describe them as a superlegal organization. They're effectively above the law, above the government, and above democracy. All in the name of security. Is this the kind of agency that should exist in a country whose stated principles all relate to representative democracy and individual freedom?

· Posts · Share this post

 

I'm making 50 pieces of art. Do you want one? #indieweb

The following is doing the rounds on social media. It sounds like fun, so I thought I'd adapt it:

I, Ben Werdmuller, promise to send a small work of art for the first fifty people who comment on this post by replying from their own website. Twitter or Facebook is not enough. Just link to this post and let me know you want in; I'll update this and provide an easy way to do that shortly. (If you're a developer, you can get started right away.)

***You may in turn post this on your own site and make something for the first fifty people who comment they want in on your post.***

The rules are simple: it has to be be your work, made by you and the recipient must receive it by the end of 2014 . It can be anything: a drawing, photo, video, a conceptual work of art or anything in between ...

· Posts · Share this post

 

Trust but verify (or why Firefox is my primary browser, & why we should be wary of h.264)

This weekend, Mozilla CTO Brendan Eich called on the world to examine Firefox's source code to protect it from NSA intrusion:

Through international collaboration of independent entities we can give users the confidence that Firefox cannot be subverted without the world noticing, and offer a browser that verifiably meets users’ privacy expectations.

Firefox is the only major web browser that's fully open source; by extension, it's the only browser that can be publicly verified to be free of unwanted surveillance code (and other malware). This is a great example of how open source software is more secure, and can be more trustworthy than closed source platforms.

However, browsers are more than their core, so it's important to bring up the issue of plugins and components. These are not necessarily as verifiable, so users should proceed with diligent caution. (Perhaps a site could be established that verifies software and plugins in an auditable way?)

For example, the closed-source h.264 video codec has typically not been supported by Firefox's core code. Instead, the browser links to operating system libraries if they exist, or can use the Adobe Flash plugin to play these videos. In most cases, neither the OS libraries nor the Flash plugin are open source, and therefore are not verifiable. Additionally, you may remember that Cisco has released a component that will allow for cross-platform h.264 support:

We plan to open-source our H.264 codec, and to provide it as a binary module that can be downloaded for free from the Internet. Cisco will not pass on our MPEG LA licensing costs for this module, and based on the current licensing environment, this will effectively make H.264 free for use in WebRTC.

Note that it's the binary module, not the open source codec, that will be license-free, and this is what will be incorporated into Firefox:

We are grateful for Cisco’s contribution, and we will add support for Cisco’s OpenH.264 binary modules to Firefox soon. These modules will be usable by downstream distributions of Firefox, as well as by any other project.

This remains a great move by Mozilla, because it opens up sites like YouTube (and latakoo) without forcing users to install Flash, but it does mean that the h.264 codec component in Firefox will be unverifiable. In turn, this continues to highlight the importance of truly open source, license-free media codecs, not just to maintain a healthy software development ecosystem, but to protect all of our privacy, too.

The problem is not that there aren't any open source h.264 implementations; it's that the MPEG-LA issues licenses for the technology based on patents it controls, which effectively means that anyone who wants to create h.264 files at scale must build significant license costs into their model. Cisco's binary distributions include an agreement that they will pay for these license costs.

It's worth noting that Mozilla continues to work on Daala, its fully open source codec, and Google has made some strides into kind-of-license-free video with VP9. However, h.264 has established itself as a standard - we use it at latakoo for that reason - and is unlikely to be displaced in the near future.

· Posts · Share this post