tychoish is a running collection of essays and experiments. My goal
is to take new ideas, try them on for size, and explore the
implications and conversations that arise. New essays appear most
days and common topics include: technology, economics, free
software, shape note singing, open source, knitting, emacs,
cyberculture, science fiction, folk dance, writing, the cyborg,
gender, creativity, and tea.
Current
Input in the Next Wave
In response mostly to my own comentary of the iPad I’d like to lead a collective brainstorming of input and computer interact modalities in “the next wave.”
What’s the next wave? That thing that’s always coming “soon,” but isn’t quite here yet, the thing that we are starting to see glimpses of, but don’t really know. Accepting for a moment that things like Blackberries, netbooks, Kindles, iPads, iPhones and the like are these “harbingers” of the next wave.
The “make or break” feature of all these new and shiny things is the input method: how we get stuff from our heads into a format that a computer can do something with. While I’m a particularly… textual sort of guy, the “input question,” is something everyone who uses technology will eventually come to care about. Blackberry’s sell because they speak “messaging,” and because most of them have hardware keyboards. The iPad, with its bigger onscreen keyboard and external keyboard dock, is–to my mind–an admission that the little onscreen keyboard of the iPhone doesn’t work if you want enter more than 50 or 60 characters at any given time.
I love a good hardware keyboard. A lot, and I’m not just talking about the kind on the blackberry, but a real keyboard. The truth is I can’t even quite bring myself to justify one of the little “netbooks” on the principal that everything I do involves massive amounts of typing. And fundamentally, at the moment there doesn’t seem to be a good replacement for getting data into a computer system, that doesn’t involve a keyboard. Clearly this can’t hold out forever, and so I’d like to pose two questions:
-
What kind of computer interfaces will replace the command line?
So in 2010 most people interact with their computers by way of the mouse and a lot of pretty pictures. Even mobile environments like the iPhone/iPad/etc. and the Blackberry have some sort of a pointer that the user has to manipulate.
But the truth is that this kind of modality has always been inefficient: switching between the mouse and the keyboard is the greatest time sink in current user interfaces. Graphical environments require increasingly sophisticated graphics hardware, they require users to memorize interfaces in a visual way that may not be intuitive (even if we’re accustomed,) and they have incredibly high development costs relative to other kinds of software. Furthermore, most of us use a lot of text-based interfaces weather we know it or not. Google is a command line interface, as are most web browser’s address bars. And although my coworkers and I are hardly typical, we all have a handful of terminals open at any given time.
Clearly shells, (e.g. bash, zsh, and the like) are not going to be around forever, but I think they’re going to be around until we find some sort of solution that can viably replace the traditional shell. We need computer interfaces that are largely textual, keyboard driven, powerful, modern, lightweight, fast, and designed to be used interactively. I’m not sure what it looks like, but I know that it needs to exist.
-
What kind of interfaces will replace the keyboard for data entry?
When I was writing the iPad reflection, I thought it might be cool to have an input device that was mostly on the back of the device, so that you hold the device in both hands, your fingers make contact with some sort of sensors on the back, with your thumbs touching something on the front, and there’s some sort of on-screen interface that provides feedback to make up for the fact that you can’t see “the keys.”
I’d be inclined to think that this would be QWERTY derived, but that’s as much a habit as it is anything. I’m a pretty good touch typist, not perfect, and not the fastest, but I don’t have to think at all about typing it just happens. But I don’t know or think that the QWERTY keyboard is going to be the interface modality of the future. While I do want to learn DVORAK typing–but haven’t managed to really feel inspired enough to do that–I think its more productive to think about replacements for the keyboard itself rather than alternate layouts.
Thoughts?
If Open Source is Big Business Then Whither the Community?
I’ve been thinking recently about the relationship and dynamic between the corporations and “enterprises” which participate in and reap benefits from open source/free software and the quasi-mythic “communities” that are responsible for the creation and maintenance of the software. Additionally this post may be considered part of my ongoing series on cooperative economics.
When people, ranging from business types, to IT professionals, to programmers, and beyond, talk about open source software we talk about a community: often small to medium sized groups of people who all contribute small amounts of time to creating software. And we’re not just talking about dinky little scripts that make publishing blogs easier (or some such), we’re talking about a massive amount of software: entire operating systems, widely used implementations of nearly all relevant programing languages, and so forth. On some level the core of this question is who are these people, and how do they produce software?
On the surface the answer to these questions is straightforward. The people who work on open source software are professional programmers, students, geeks, and hacker/tinkerer-types who need their computers to do something novel, and then they write software. This works as model for thinking about who participates in open source, if we assume that the reason why people contribute to open source projects is because their individual works/contributions are too small to develop business models around. This might explain some portion of open source contributions, but it feels incomplete to me.
There are a number of software projects that use open source/free software licenses, with accessible source code, supported by “communities,” which are nonetheless developed almost entirely by single companies. MySQL, Alfresco, and Resin among others serve as examples these kinds of projects which are open source by many any definitions and yet don’t particularly strike me as “community,” projects. Is the fact that this software provides source code meaningful or important?
Other questions…
-
If there are companies making money from open source code bases, particularly big companies in a business directly related to software, does this effect participation of people who are not employed by that company in the project?
In my mind I draw distinctions between technology businesses that use/sell/support open source software (e.g. Red-Hat, the late MySQL AB, etc.) and businesses that do something else but use open source software (i.e. everyone with a Linux server in the basement, every business with a website that runs on Apache, etc.)
-
Does corporate personhood extend to the open source community. Are corporate developers contributing as people, or as representatives of their company?
I largely expect that it’s the former; however, I’d be interested in learning more about the various factors which affect the way these contributors are perceived?
-
Do people participate in open source because it is fun or for the enjoyment of programming,
-
Has software become so generic that open source is a current evolution of industry standards groups. Do we write open source software for the same reason that industries standardized the size and threading of bolts?
-
Are potential contributors disinclined to contribute to software that is controlled by a single entity, or where projects
-
Is the cost of forking a software project too high to make that a realistic outcome of releasing open source software?
Conversely, were forks ever effective?
-
Do communities actually form around software targeted at “enterprise” users, and if so in what ways are those communities different from the communities that form around niche window p managers or even community projects like Debian?
I don’t of course have answers yet, but I think these questions are important, and I’d love to hear if you have any ideas about finding answers to these questions, or additional related questions that I’ve missed.
Conceptualizing Scale
I’ve been thinking about how ideas, projects, and ideas scale a bit in the past few weeks, and as usual, I wanted to collect a few of these thoughts. This post is generally in my series of posts of “Extrapolations from Systems Administration.” Inspirations and origins of these ideas come from, in part:
The internet is a big place, you don’t need me to tell you this, but I think that it’s really incomprehensibly big. Even the small corners of the internet that we (well, I at least,) inhabit contain vast amounts of information and it’s very difficult to keep your head above water, to feel like you’re in touch with what’s happening. Strategies for managing this information successfully are as concerned with “figuring out what to ignore,” as they are about figuring out how to absorb information successfully.
Scaling an idea or a concept (like a blog, or a piece of software or a web server) to be able to address problem sets (like an audience, or a given set of data, or both) of different sizes is just as difficult. It’s tough to get a web server to be able to host really large loads, its difficult to be able to write a blog that appeals to a huge audience: the this nexuses of related problems are quite large.
I think, however, we can begin to draw some conclusions. I do hope that you’ll be able to help me add to this list. Perhaps in a wikish page.
-
Be the biggest fish in the smallest possible pond.
The core strategy here is to avoid having to figure out how to scale up to “full speed,” by reframing the problem set. You don’t have to become the most popular or widely consumed blogger/novelist: you just have to become the most popular blogger about cyborg philosophy, or the political economics and philosophy of the open source world. You have to become the most popular post-colonial historiography space opera novelist.
-
Don’t participate in the proliferation of crap: only build/use what you need to.
I see lots of people say something along the lines of “I want to make a websites for all of the people interested in what I’m interested in, and we’ll need a wiki and some discussion forums, and some sort of blogs, maybe a lot of blogs, and…” This inevitably leads to a bunch of organization and building of things for their websites, and then everything is built and… no one is interested in using the crap.
This is a classic premature optimization problem. Don’t build things that you think you might need later. Build things that you need now. Or things that you really needed last week. Focus on the thing you do, and build the infrastructure as you need it, when you need it.
-
Work in a scalable and sustainable manner, and assume that other people will need to pick up on your projects.
While you shouldn’t expend the effort to scale before you need to, because that could end in failure, it’s common sense to approach your projects with the assumption that other people might have to finish them for you, if things take off and you need to delegate later you’ll be ready for them. Consider the possibility that you might need to scale a project when you’re in the initial planning stages and avoid getting backed into a corner by a decision.
-
Ignore everything you can possibly stand to.
There are so many things that you could be doing with your time. There are so many distractions. Email lists, RSS feeds, the work of other people in your field. Charity projects of one sort or another. All of these things are important and you should participate fully in the communities that surround your work, but be fully aware that humans as individuals don’t scale well, and succeeding at your project is dependent upon your ability to ignore everything that you can stand to.
-
Consume information on your terms, in the formats that make the most sense to you.
As a corollary to the above, the way to successfully engage and manage everything that you can’t possibly stand to ignore is to as much as possible engage on your terms. Figure out what your terms are first, and then work to consume content in these terms.
-
Use technology and media to build relationships rather than accumulate information.
Too often, I think, the geekier among us (and I count myself among this number) are interested in technology because it’s cool, and we’re tempted to solve technological problems and learn about the inner workings of stuff because they interest us. And that’s okay, as a hobby: in the pursuit of doing work, technology is only useful insofar as it allows you to get things done. And in most cases, the core function that technology provides is to enable relationships. So focus on that, and fiddle with the technical underpinnings, only when you must.
Onward and Upward!
Distance from the Divine
When I talk about Sacred Harp singing with my friends from college, they all look at me like I’m crazy. “Right, I go sing 18th century hymns set to music in the 19th century (and later,) with my hippie and queer friends in quasi-archaic harmonies. It’s a blast!” This isn’t my tradition, both in the sense that I don’t come from a sacred harp singing family, and in the sense that I come from a particularly unobservant Jewish family.
There’s something about Sacred Harp, that I think is hard to describe. Everyone comes to it for different worlds, and there are a lot of people who grew up with it and/or identify as Christian in the community. While I think most people who sing Sacred Harp find it a deeply fulfilling experience, for many its as much about the shared experience, the guttural experience of the chords, and the “sacred/special space” as it is about the texts. This is something that I think is pretty difficult to explain to someone who hasn’t felt a singing.
I mentioned a while ago my interest in writing hymns in the tradition of the sacred harp, and I don’t have anything to present to you yet, or even some example of what I’m playing with, as I haven’t actually constructed anything. I do have the following observation.
The texts and aesthetics of the Sacred Harp is encapsulated with what I think is probably a not very contemporary view of the divine. In my reading, the texts display a relationship to the divine that is distant and detached. I might even say reserved and tentative. The speakers in the text are not individuals but more collectively constituted persons–this fits well with the way the music is sung–and the speakers generally do not interact with or speak to the divinity directly, except possibly to give thanks or appreciation. Like the harmonies themselves, the texts are spare and stark; indeed I suspect their simplicity makes the tunes easier to sing (words are almost always easier to sing than shapes,) while being very careful to not distract from the tunes.
As I said, this isn’t my tradition, at all, in addition to the structural constraints of the form (common meter, for the most part,) I think the stylistic constraints present the larger challenge. I’m trying to figure out how to write text that isn’t cloyingly spiritual, and that fits my own worldview (such as it is,) but that also respects this kind of spiritual aesthetic, for lack of a better term. I’ve been reading up on various religious phenomena, contemplative orders, and the Religious Society of Friends. Because it seems appropriate.
As is, I think always the case, minimalism is always a lot harder than it looks. I’ll keep you all posted!
Software as app Store
This post represents two major ideas, first of ”app stores,” and second of “Sass” or “software as a service,” which seems to be the prevailing business model for contemporary technology companies that aren’t stuck in the 80s. With reflection on free software, open source, and the technology industry as a whole. Because that’s sort of my thing.
On the one hand the emergence of these tightly controlled software distribution methods represent a fairly serious threat to free software, as does SaaS particular insofar as SaaS exploits a GPL loophole. On the other hand these models, potentially, represent something fundamentally awesome for the technology and software world, because it represents a commonly accepted paradigm where users of software recognize the value of software, and the creators of software can get compensated for their work. It’s not without its flaws, but I think it opens interesting possibilities.
Free and Freedom
Obviously app stores present a quandary for those of us involved in the free software world. On the one hand app stores are not free, which is a trivial complaint. It’s not the cost, around which “free software” is truly centered, the true failing here is that creators of software cannot choose to participate in an app store system and distribute source code: the interaction and relationship between developers and users is very scripted and detached. These issues all grow out of the reality that app stores–by design–are they’re controlled by a single institution or organization.
Which isn’t itself a bad thing–there are contexts where centralized organization means things get done more effectively, but centralized authority is not without risk. So while this question isn’t resolved, it’s also the kind of question that requires ongoing attention and reflection.
Paying for Software
At the same time, I think it’s very true that the “app store model” and indeed the more successful “Web 2.0” business models (e.g. new businesses on the web, post-2003/2004) have posited that:
Software is a thing of value that users should expect to pay for.
And that’s not, at least to my mind, a bad thing for the software world. Free or otherwise. Or not always a bad thing, particularly for end-user software. For larger pieces of software (in the “Enterprise”) money is largely exchanged for support contracts and for services related to the software: custom features, IT infrastructure, etc. For end user software, support contracts and custom features don’t tend to make a lot of sense in context: so perhaps moving back to the exchange of money for software isn’t a bad thing.
The connection between “value” (which software almost certainly creates), and currency in the context of software is fraught. Software isn’t scarce, and will never be (by nature.) At the same time it does have value and I think it’s worth considering how to arrange economies that involve exchanging money for software. There are a lot of factors that can effect the way that app stores might work, and I think given the possibility for causing interesting things to happen we shouldn’t dismiss them out of hand.
Despite my (potential) lack of clarity at the moment, I think the following posts reflect some of my earlier thoughts on this subject.