Archive for the ‘Technology’ Category

Bulding bridges in the metaverse

Friday, January 8th, 2010

If/once you “get it”, Second Life is pretty cool. It can be a lot of different things, and its potential has barely even been scratched. Sure, the tools are cumbersome, but they are getting better. And some of Linden Lab’s policies suck, but that will just drive people to OSGrid, eventually.

Anyway, there are people in Second Life that I like being able to communicate with. However, when I’m at work, it’s a lot of trouble to create an SSH tunnel home, then forward a text-only client like ommviewer-light just so I can log in and see who is online.

So, as I always do, I went way overboard and created a system that can relay chat between an IRC channel (or channels) and any location (or locations) inside Second Life (or any other grid that supports LSL). It can also check the online status of users and send them one-way IMs. I call the entire system slrelay, and you can get it here.

It requires a few things to work: a running webserver is absolutely necessary. If you want the IRC features, then you also need an IRC network of your choice and a machine that can execute perl scripts. I have my IRC bot connected to irc.slashnet.org.

slrelay has a number of possible uses. You could use it to relay chat between key locations on a large landmass (say, an area that spans 3 or 4 sims). It could relay chat between Second Life and another metaverse grid like OSGrid. It can be used as a simple IRC tool to check who is online very quickly. Or it can do all of these things at once.

Tutorial: Creating OpenSim terrain with Blender

Tuesday, September 8th, 2009

This tutorial will explain how to create RAW terrain files for OpenSim and Second Life using Blender and the Gimp.
(more…)

emacs 23, dbus, and libnotify

Monday, August 31st, 2009

A new major version of emacs is out, and it includes dbus support. This is great, because it means we can do things like this:

(require 'dbus)
(defun send-desktop-notification (summary body timeout)
  "call notification-daemon method METHOD with ARGS over dbus"
  (dbus-call-method
    :session                        ; use the session (not system) bus
    "org.freedesktop.Notifications" ; service name
    "/org/freedesktop/Notifications"   ; path name
    "org.freedesktop.Notifications" "Notify" ; Method
    "emacs"
    0
    ""
    summary
    body
    '(:array)
    '(:array :signature "{sv}")
    ':int32 timeout))

(defun pw/compile-notify (buffer message)
  (send-desktop-notification "emacs compile" message 0))

(setq compilation-finish-function 'pw/compile-notify)

Add this to your .emacs file and you will receive a libnotify popup when M-x compile completes. It will even give you the exit message, so you know whether the compile was successful.

So now you can let that long compile run, and work on something else. emacs will let you know when the compile finishes.

As written above, the notifications will stay on your screen until you dismiss them (by clicking on them). If you would like them to vanish after a preset time limit, change the 0 in the call to send-desktop-notification. Set it to the number of milliseconds the popup should remain on the screen.

Screenshot of libnotify popup showing a compiler error

Screenshot of libnotify popup showing a compiler error

This is just the tip of the iceberg, of course. Any application that presents a dbus interface can be interacted with from emacs, which means that emacs can also integrate itself with the Linux desktop in other interesting ways.

so close, Netflix

Monday, August 31st, 2009

I like Netflix. I think they’re a great service, reasonably priced, and they have completely replaced cable television for me. However, I have found one problem. According to Netflix:

If you are renting a series or seasons, we will ship the DVDs in order. That means:

* If there is a wait for a particular DVD in a series, will we wait until we ship you that DVD until we ship the next DVD in that series.

Which is great. If I add, say, Excel Saga to my queue, I can be certain that I will get disc 1 first, followed by disc 2 and 3. Under no circumstances will I have to worry about getting, say, disc 4 before disc 2. Right?

Well, in theory. In practice, some TV series (notably, Excel Saga) have discs missing completely. These discs go into your “Saved DVDs” list instead of your queue, and they aren’t considered to be discs with a “wait”. As a result, they get skipped over completely, and you get the next disc in the series that isn’t missing.

Why am I complaining here instead of directly to Netflix? Because Netflix doesn’t have any reasonable way that I can find to open a bug report or provide feedback. And I wanted to vent a little.

The Decentralized Metaverse

Tuesday, August 25th, 2009

Several years ago I mused on the decentralization of Second Life, Linden Labs’ virtual world. Shortly after that post, I dropped out of the metaverse entirely for more than a year.

While I was off not paying attention, it seems that almost all of my predictions have come true. An open-source server for running a simulator and/or grid, OpenSim, has been created. OpenSim appears to have solved many of the problems, and implemented many of the predictions, of my post from 2006.

One “problem” that remains, though, is economy.
(more…)

Thoughts on the Transhuman revolution

Friday, July 3rd, 2009

I’ve been reading a lot of near-future science fiction and speculative nonfiction lately, and as a result I’ve been contemplating the idea of transhumanism and what it means for us as a species and a culture.  Transhumanism is decently defined by wikipedia, and has been explored in fiction by Charles Stross, Cory Doctorow, and others.  It has been discussed extensively in the non-fiction sphere as well: Ray Kurtzweil is probably the most well-known thinker discussing the topic.  However, while Kurtzweil discusses the possibilities of AI consciousness and the emergence of the singularity, I am more interested in transhumanism in this article.
(more…)

Twitter from the command line

Thursday, July 2nd, 2009

I’ve recently started playing with twitter. A nice way to use it via the command-line (using curl) was suggested here. I have taken that and improved slightly on it.

(more…)

My new project – netjatafl

Thursday, June 25th, 2009

I’ve been pretty busy the last month working on netjatafl. Netjatafl will eventually be a networked client for playing various board and/or card games. It was originally created for hnefatafl and other tafl games. However, I have designed it to be extensible; I’m working on adding mancala games, and it looks like my design makes it pretty easy to add a new game. (I’ve added most of the logic for mancala to the client and server in just a couple hours of work). I intend to add shogi, xiangqi, chess, and possibly even go at some point in the future.

The netjatafl server (taflserv) operates on a simple, completely open protocol; it will eventually support authenticated logins and statistics tracking. Anyone could write a netjatafl client for any platform, if they wished. My clients will all be in C++, because this let’s me reuse the ‘libboardgame’ library, which contains the game logic used by the server. I will also build in a “capabilities” system at some point, so the client and server can both advertise which games they support.

The whole thing is theoretically usable in its current state; the client is an ncurses-based text UI that is pretty cumbersome, but can be used. As far as I know, it only works in Linux. Anyone who wants to cross-compile it for Windows and send me a patch with everything you had to add, feel free! I will eventually add a proper GUI, probably gtk+-based.

Like the sound of this project? Feel free to check out the code, compile it, and let me know what you think!

Etymology notes: netjatafl is Old Norse for “net-table”; i.e. a networked table you can gather around to play games. ‘taflbordh’ is ON for ‘tafl board’ (tafl can also refer to tafl games in general), which sounds a little redundant, but it made a nice name for a client. And ‘taflserv’ is just ‘tafl server’… ’serv’ was meant to be short for ’server’, but I later noticed that it’s also a French word meaning ‘it serves”. I find this somewhat appropriate.

The Case of the Odd NetworkManager Behavior

Monday, April 27th, 2009

I recently purchased an Eee PC 1000HE.  This is a very nice machine, and aside from one weird bug, Linux support is great.  However, I’ve run into a very annoying problem with Fedora 10, and at the root of that problem is gnome-keyring-manager.

(more…)

It is pitch black. You are likely to be flamed by a fanboy.

Sunday, January 18th, 2009

I feel the need to comment about this (and, subsequently, this and this).

First, a summary, for those who get a case of the tl;dr’s.  A woman bought a laptop to use for her coursework at a local college.  She accidentally bought a Dell laptop with Ubuntu on it.  When she realized her ISP’s setup disk wouldn’t work, she tried to get Dell to swap the laptop for one with Windows.  The Dell representative apparently convinced her to keep the one she had.

She claims that this problem, combined with a lack of Microsoft Office, forced her to withdraw from classes.  The local news ran the linked article; it is worth noting that the bottom portion (the part where the news agency contacted the college and Verizon, and everything got cleaned up) did not appear in the initial article.

(more…)