The Emacs Alert

So I get a Google alert in my RSS reader for "emacs," this way when anyone mentions that operating system text editor on the Internet, I know.

I did it, initially, as a gimmick. The interesting thing, is that it's been really interesting. In the grand scheme of things, I'm pretty new to emacs so I'm like a sponge for new information. I've learned, chiefly, about emacs-fu, which is a delightful little blog.

Perhaps more interesting is the fact that fully half of the sites that pop up on the emacs alert are sites that I'm already familiar with, or worse (better?) things that I've written. This leads me to think that the active discussion/community regarding emacs is actually pretty small, in a day to day sort of way.

It's possible that most people who use emacs don't feel the need to really talk about it, but given how vehemently many people feel about emacs that doesn't seem terribly likely. It's also possible that emacs' niche is shrinking in the face of competition from the Java IDEs, TextMate, and Firefox.

Another theory is that most of the conversation regarding emacs happens on the emacswiki, and that the sort of "here's a protip, about emacs," is too much of a niche, and not the kind of thing that's really appreciated, so the blogging happens here and there. Or... no one's doing search engine gaming/hacking (SEG? SEH?) on emacs, so the alert isn't clogged up with crap from dweebs and industry.

In whatever case, it's interesting. Or interesting enough.

Onward and Upward!

(ps. sorry for the short post and the weird schedule this week. Next week should be better. --ty)

Scripting on the Internet

I recently read the anti-web manifesto, which I found refreshing. If you haven't read it, go do so. If your too lazy to read it, the gist is that we're trying to get the web to do too much (ie. run applications, pixel-perfect layouts) and that quality browsers can't exist, because what we use the web for these days is beyond the scope of what the web was intended to do. The document is also refreshingly snarky, in the long tradition of both hacker writing and the genre of manifestos in general, but don't let that offend.

I've been known to say, "I hate the web," which is an ironic thing to say given my line of work, but I think it's mostly true. To be fair, I don't hate the web, I just hate what it's become: the only way to access what happens on the Internet. It's great for publishing and accessing content, but for applications? Somewhat less great.

The Manifesto centers on the notion that the perfect web-browser is impossible to implement: Browsers have to implement inefficient scripting languages, and multiple implementations of the various web standards (because you have to implements both "how it should be done," and "how the old, broken implementations that everyone wrote pages to, did it," with the end result being that browsers themselves suck. And it's not a case of just writing the perfect browser because, current expectations of the technology is flawed.

The course of action (theses?) are to:

  • Eliminate CSS; use a little basic HTML formatting instead. Let the text stay in its natural format.
  • Only basic font faces ([sans]serif, monospace), relative sizes to be supported.
  • Eliminate scripting.
  • Separate information from empty multimedia content: use Flash for the latter.

I'm not sure that I agree with this solution. I think HTML 5 will take care of the multimedia content, and I think flash should be avoided. I think scripting should be the first causality of the post-web Internet. I don't see CSS as a problem, (the author sees it as a symptom of design orientation in website creation), though I'd concede that it's used improperly most of the time.


Given this, I think four bullet points from tycho regarding "The 'Post-Web' Web" are in order:

  • Eliminate JavaScript and all scripting in web-environments. JavaScript is the table of the 'aughts and 'teens.
  • Develop/concentrate efforts on alternate (ie. non HTTP) protocols to facilitate the movement of dynamic information across the Internet, including well implemented clients.
  • Develop robust/lightweight cross platform frameworks for developing applications on the desktop. Where's GTK-on-Rails?
  • Write a HTTP server that provides navigational meta-data automatically with pages, and a browser with the ability to construct site navigation based on this information. This way the architecture of the site depends on the file layout and a configured file, but is generated locally. Basically gopher, except designed in the casual manner of the 'aughts.

Any takers?

Mobile Technology 2.0

In the last six months or year (or two years) I've written a lot here, about technology open source software and related topics. In a way this was a new thing for me. I majored in Women's Studies and Psychology in college. I wrote about gender and queerness, and knitting for many years. My big thing (or one of them, at any rate) is science fiction literarture, where I'm interested in very historical/"soft" sub genres. While some SF writers feel ghettoized by the "hard"/"soft" boundary in the genre, I love the fact that there's (a very popular) field of science fiction that isn't based on firm understandings of existing science/technology and tightly formed elaboration thereon. I love being non-technical on some level. Despite my current technological musings, this is very much a past that I must contend with.

But I digress.

Before all of this hippy-drippy stuff, I wrote a lot about technology. Back in 1999/2000/2001 I was reasonably active in the discourse surrounding mobile technology. Indeed through this I discovered blogging itself. There are a couple of subtitles to this that I think are appropriate: first, the state of mobile technology about 10 years ago was much different than it is today. Much different. Laptops were significantly bigger and less portable, cellphones were much less "smart," and disconnected PDAs were the light of the times.

But sooner rather than later, I broke down, bought a nice fountain pen and just kept a notebook when I was away from my computer. It worked. Eventually I got a cellphone, but I always tended toward the "dumb"-phone type that were incredibly simple. They worked. The paper worked. When I went away to college I got a 12 inch iBook (as my only computer) and it was great. Small laptops with wireless and long battery life seem to be a great solution to the "mobile technology" problem, and as--at the time--it seemed like my life/work was trending around in a different direction, I stared writing about different things, which when you think about it is all for the best.

For the intervening years, I've been sort of cool toward a lot of gadgetry. Laptops are small enough and powerful enough and frankly cheap enough (considering) to account for a huge percentage of digital mobility, that the remaining need is actually pretty small. And it was my experience that mobile technology wasn't there, for the in between spaces yet. Recording bits of minutia in a usable way on a PDA was never quite as quick and seamless as doing it either on a computer or with paper.

Eventually I've gotten back into writing about technology, but by this time it was a different kind of technology: unix/linux stuff, cyborg stuff, tools for writing, usage methodologies, and organization stuff. The technology itself (for me) has taken a backseat to the ways we use technology.

But in the mean time the mobile technology has mostly caught up. At least somewhat. Cellphones became a lot smarter, the data transmission got cheaper (and unlimited), syncing tools through google and mobile me (if that's your style) make the experience much more coherent. In a lot of ways, the fact that cellphones and connected devices can--independently of host computers--interact with the internet has made them infinitely more useful. And the fact that, at least in my case, do this via protocols that we're already familiar with (REST API's or email) makes this even more attractive.

I also think, at least in some cases, that a lot of this "web 2.0 stuff" makes the most sense in the context of mobile devices. While I don't often think about twittering, or dicking around on facebook when I'm sitting somewhere with just my Blackberry, the applications that connect with these web 2.0 services on phones are really clever. Maybe it's that limited functionality apps make more sense on phones/PDAs than they do on desktop computers, but that could just be me. In the end, I'm still dubious of all this "web stuff," but I think it at least makes sense now.

So there.

Onward and Upward!

mcabber and IM

I've always rather enjoyed this post that I wrote about instant messaging programs. My issue is that I use IM a lot. A lot. I communicate with colleagues, friends, and frankly, if you want to get a hold of me, IM is often the best way to do this, and frankly for a lot of communications I prefer it to the phone.

Nevertheless, IM clients, on the whole, are mostly pretty bad. Right? They distract, they filter information poorly, they take up a lot of room on the screen, and are as a class pretty inconsistent. This is probably because no one really expected people to use instant messaging technologies in a serious way.

But here we are.

The leading IM client, really, for people who rely on this kind of thing is Pidgin (and the other libpurple based clients), which make it possible to connect to lots of different services at the same time but only have one roster/buddy list. It's a good solution to the "multiple networks/accounts" problem, but the truth is the quality of the implementation varies, and the user interface is... awkward and rigid [1].

There is, however, this program called mcabber that provides the ability to connect to one xmpp account, in a terminal-based (ncurses?) environment. It's not perfect, nothing is, but its a lot better than the other options.

While I've not been able to switch to using only it for my IMing needs for a couple of reasons, mostly related to my xmpp server/provider, but I have used it exclusively for a number of days and the experience is pretty good. Reasons I like it:

  • Everything lives in one window, and chat windows have equal footing, like buffers in emacs, say. That's really nifty.

  • The key shortcuts are really simple, and quite intuitive. Thats key in a terminal application

  • I can run it in screen, and pull the screen over ssh to my laptop when I'm not in front of my computer. Though xmpp is generally really great about multiple connections, sometimes it's best to not have to deal with that fussing.

  • I like that it supports PGP encryption, though I don't have anyone with whom I can encrypt conversations with, but that always seems to be a minor detail.

    Though, this isn't to say that it's all good. There are some problems that I've had. Though to be fair, my complaints here are much fewer than with most other XMPP clients, so that's a good thing, right? Complaints:

  • No support for service discovery. Which means you have to install psi--basically--if you're serious about getting the most out of XMPP. This is... unfortunate.

  • It takes a lot of work to get configured and get key bindings set up. I'm mostly of the opinion that it's always best to give users a set of key bindings to start with and then let them customize as needed, and the default screen layout isn't particularly useful or economical (put the status window at the top, and make it smaller, for starters).

  • It doesn't support multiple connections/user-ids. This is a biggie, and while I don't (really) object to the fact that it doesn't support other protocols, I think the reality is that most users probably have and need to use more than one identity at once, so that's a noticeable hole.

  • I'd also like an easy interface for producing system notifications give me a setting option to pile messages (username, excerpt of x characters, time) to a pipe (|) and I'd be very happy indeed.

  • I couldn't decide if the fact that there was only one "text entry field" (mini-buffer) for all outgoing message buffers. Which meant that, particularly with scroll back, that it was easy to cross contexts unintentionally.

My last complaint isn't so much a complaint about the software itself as it is a complaint about the instant messaging space in general. Basically, I think there has to be a way to filter this kind of communication. Ways to setup client-independent rules regarding statuses, auto-responders, and notification level. I've said that this should be "along lines of procmail," but I don't quite know what, even that, would look like. But someday, it's coming, and I for one can't wait.

But all in all. It's a great program and you should check mcabber out, if you're intense about jabber/xmpp and instant messaging (and living in the console).

[1]So there was a pretty notorious fork-threat in the Pidgin project a while back over a sort of deterministic user interface decision, which I return to every now and then as an example of both intra FOSS project politics gone awry, and user interface design gone awry. I'm not dredging up the flame war, because the truth is I really hate GUI applications writ-large, so on some level its nothing specific.

Conversations

I had an odd experience as a writer a few weeks ago. I found myself writing "copy" rather than my more comfortable "blog post," "essay," or "fiction story" and I learned a great deal from the experience. Mostly, "never be a copy writer if you can help it," but I learned something about my other writing in the process: basically I write conversations.

This makes sense on a number of levels. First, it explains why I enjoy blogging as much as I do, and why I write for the blog in the way I do. Blogging is a conversation, I write stuff, you think about it, you comment. Repeat. Or I read something, and I respond with my "part" of the conversation. Secondly, I've occasionally been told by recipients of particularly quick emails that I "write just like I talk," which makes sense given how I type, and how "natural" that is as a communications medium for me. Third and finally, people who've read my fiction, routinely comment on the dialog. [1]

This may also be why "being a writer" (professionally, creatively) has been a struggle. On some level the writing, even the fiction, is a means to an end. Banging words out on the keyboard for the blog is a means to have a conversation with you, dearest readers; writing fiction is a means to explore ideas and conversations that I couldn't begin to articulate except through fantasy (on some level.)

When I tried to write knitting patterns, I wrote these essays that were basically me standing up with a finished sweater saying "so if you want to make this, start here, and then do this ..." and so forth through the entire sweater. On one hand they were stories, on another it was just me talking.

I don't know what this means about me, what I write, or how I write. Frankly, I'm not sure I'd like to know much more, but you can draw your own conclusions.

Onward and Upward!

[1]I suppose the lingering forth item would be that my first attempt at graduate school was methodologically focused on narratives and "small stories," in conversations as a means to understand "the individual in context" as it were. But that's neither here nor there.

SEO Nonsense

I read the following phrase on my travels this past week: "we'll just have to wait till the SEO does it's thing." This is sort of a typical phrase that gets throw around on the "commercial internet," and it wasn't out of place. Indeed, I think all the readers of the article probably understood what the author was trying to convey. But it struck me as sort of odd. Here's why:

It's a completely empty statement. SEO (Search Engine Optimization) refers to the collection of techniques that are used to "raise" a given web page's ranking in search results. Because there isn't a hell of a lot of competition in this market, basically this amounts to trying to "game" Google.

Which... is sort of a loosing proposition. Google's algorithms (or the key components) are top secret, and what we do know about how google arranges searches is that the more pages link to a given page, the more favorably Google's algorithm's view that pages, this lets Google's search results reflect a sort of emergent semantic organization of the world wide web. This means that when we search google, more often than not, we're mostly searching the most interreferential pages on the internet.

It's true that there are a lot of sites that don't have a lot of "juice" in Google, and that's really frustrating for people who create websites, but Google's domination of the internet-search marketplace is due largely to the quality of results that this reference-based system plays.

And in light of this, I hope it's pretty obvious that SEO is mostly a crock of shit. You can't game Google, and more to the point you don't want to. Though I think the prevalence of SEO an interesting admission for the "commercial internet" that traditional advertising-based marketing models has utterly failed on the internet.

To my mind the ideological parent of SEO was "search engine submission" services, which would purportedly "submit" your website to search engines so that people could find your site. For a fee, usually. Clearly this didn't work, because the return was so diffuse, and because no one really wants to use a search tool where the results are based on "submissions" which are paid for by the content producers. There's a reason why most of us use Google and not AltaVista, AskJeeves, Excite, Lycos, Infoseek, and so forth.

Now having said that there are some things that you can do to encourage your site's ranking in google (ie. get people to link to you on their sites,) I'd call this "good writing," or "effective communication," or "best practices," not "SEO" but you know whatever works. Here's what I think really works.

1. Be interesting, and have something to say. No one wants to read a website that's boring. That's why my readership is so low ;) but if you can't make the attempt, no amount of good mojo is going to help your site.

2. Post regularly. Really regularly. This resonates with this idea, the way to get good at doing 1., and make sure that people keep reading your site (and linking to you) is to provide dynamic and fresh content.

3. If you're a company, write not only about what you do and your clients, but also about what your clients are interested in. This might mean talking about and linking to your competitors, don't worry, rising tides raise all boats.

4. Participate in real life conversations. Most people learn about new websites via word of mouth connections formed in unusual contexts. There's a reason why most of the leaders of the independent web (bloggers) are either: in New York City, San Francisco, or have been going to SXSWi since the beginning. (There's also a minority of L.A. based bloggers). Talk to people, talk about your work, and talk to the other people who are creating content.

5. Write emails. This is the second stage of what starts in 4. Digital networking connections rest mostly on one-on-one email correspondences, and listserv conversations, despite all sorts of next wave technology like twitter, facebook, and linked in. Getting really good at writing quick, meaningful emails and staying on top of your correspondence is requisite.

6. Top load your content and titles. This falls under the category of good practice, and it mirrors the way newspaper columns are structured. Give as much information away as soon as possible, put all the details at the end, and write in a style that's simple and designed to be easily and quickly read. There's a lot out on the internet, and the the less time you take to make a specific point/joke/insight, the better.

7. Provide full RSS feeds, and don't put things behind "cut/fold" tags so that people have to click through to "read more." The former is good sense, and represents reaching out to other content producers (the people who read your site,) and the later is just good sense. [1] Other content producers are the people who have the real power over your search engine ranking, and making your content accessible is the first step in getting the content read.

8. Use a site design which maximizes readability and visibility, so that people can--you know--read your content, rather than marvel at your superior design capabilities.

Basically write a good site, network well, and don't waste your time on snake oil and chants. /end.

[1]The exception to this rule is live journal, as many people read LJ via the "Friend's Page" which induces a slightly different community standard. In general though, it provides yet another obstacle between a reader who would might read your, and in general your design/style should work to be more inclusive.