Archive for the 'Technology' Category

Phew?

I got an Ipod nano last Christmas. I didn’t use it. Well, I finally got around to fixing some problems with my dynamic compressor so I can my classical music on there the way I like it, and extracting the contents of my old linux hard drive (which has been in my machine for a long time, but with its contents inaccessible) with lots of my mp3s on it, and getting a large backup drive to store everything on, and I think I’m almost ready to start using the damn thing. What a lot of work it is!

So I plug it in, and it doesn’t come on. No big surprise—the battery’s dead. I wait two hours. Nope, still dead. I look up how to reset the thing, try it, no results. I’m not seeing anything at all on the LCD screen. Not even the “recharging the graphic” battery you’re supposed to see. Well that’s just great.

So, two days pass. I take a look at the Ipod. Oh, look, it’s on. Interesting. Battery still dead, but at least showing a menu. Not connecting to ITunes, but it’s on.

Oh, look. Now it’s not.

Hmm. This is going to take some work.

Lack of posting due to depression, stress, and working on projects (Lojban translation, Isabelle theorem prover, dynamic compressor) rather than posting. The dynamic compressor’s about ready to release, once I get around to it. I have it as a standalone tool now that does batch processing and is much faster and more memory-efficient (well, except for the fixed overhead of .NET) than the old one.


Current activities

I’ve decided it might be neat to write a compiler, so I’m going to try writing a lisp compiler, from the ground up. I’m going to start from assembly language, and write my own assembler, and work my way up, building more abstractions and more safety into the assembler until eventually it becomes more of a compiler, and more features into the compiler until I get happy with it. It’ll be self-hosting all-the-while, and probably more-or-less impossible to port to another architecture. Not sure about the platform aspect, though. It won’t be Common Lisp, because that sucks, but it’ll be something along those lines. Most of the same features, none of the all-caps, silly-names weirdness. Probably a number of conventions taken from Java/C#/etc. since that’s what languages are doing nowadays. That is, if I get that far with it.

In the meanwhile, I’m terribly depressed. I was on Lamictal, which was helping quite a lot, but after about 5 weeks of treatment I got a tiny little rash, which apparently can be a first sign of a more serious, deadly rash. My doctor took me off it immediately, which I think was overly conservative. So for the past week I’ve been off my rocker. We’ll see tomorrow if he gets me on something else that will help.

In related news, I am still single.


New Tetris version

I fixed the arrow keys and made some other minor improvements to my Tetris game. I’m not bothering with release notes. Bleah.


New LojGloss version

I’ve added parsing support to LojGloss.

Lojban is a language created by people, for people. The grammar is unambiguous—any sentence can only be interpreted in one way, grammatically. You can still have ambiguity and vagueness in meaning, just not in the grammar. My program will take any valid lojban and show you how it looks grammatically. It’ll also show you the meaning of words that it knows about. Can this much be said for any other language? No. (Unless there’s some other conlang that does this. In which case Lojban has an order of magnitude more speakers, at least.)

Update: It doesn’t work. Oops. Gismu support is borked, and I’m looking into it. In the meanwhile, 1.4 is still serviceable.


An idea for a new forum

I just had this idea for a new way to organize discussions. You’d start out normally, with a short essay stating a position with supporting arguments. Then people add comments disagreeing with certain parts of the essay. Disagreements fall into one of two categories: people who disagree with logical steps made in the argument, or people who disagree with the premises of the argument. (Agreeing/expanding, free associating, joking, or topic changes could all be handled like normal comments.)

People’s disagreements would be responded to by expanding upon the original text, either by editing it, or by adding an explanation that’s linked from the original text. (You could also respond in comments, but there are various reasons why that’s less than ideal. If you’re going to use a system like this, you’ll end up learning when to edit and when to comment.) The link would be in a superscript, like Wikipedia’s links to footnotes and references. The linked explanation would be shown in a column to the right of the original, using a bit of fancy javascript or somethin’. Responses to the elucidation could be shown below it in the new column. (This would end up involving some horizontal scrolling, unfortunately. There are some things that could be done to make this less annoying.) Links to elaborations that have responses could be colored differently so that people that want to just read through the various responses could find them. Also, there could be a link at the bottom of each response to the next response, either in document order, or in chronological order.

The disagreements themselves could be moved from the bottom comment area, to a new section linked to from the part of the text they’re disagreeing with. (This would be more or less useful depending on the length of the text.)

The idea of discussion participants trying to modify position statements in response to each other’s changes, instead of commenting back and forth without updating the original statements, is an idea I learned from Robin Hanson, which he called “reflective equilibrium”. I think it has the potential to make discussions more productive and less error-prone, but making it practical for general use is problematic. In general, the implementation would need to be friendly to ad hoc use by mildly interested participants. If it’s complicated, it’s going to scare people off, and people who do participate won’t be as involved as they could have been with a simpler system. If it has a steep or high learning curve, it’s going to shrink the pool of people who will end up being drawn into discussions. Naive implementations just won’t work.

Truth Mapping) is one such implementation. (I’ll set aside the primary weakness of the site, which is that the initial argument must be stated in terms of the logical steps of the argument. That’s not practical for widespread use, and may not even be practical for more specialized use.) It work like this: you see an argument you disagree with, and you add a comment (critique, in its terminology) stating the disagreement. The author of the argument responds with a comment. At that point, you’re out of comments. All further discussion has to take place by editing those two comments. Now, in theory, this ought to work. Any objections made to your reply could be addressed by changing the original reply to address them preemptively (or apparently so, in retrospect). But in practice, this doesn’t happen. At the Truth Mapping site, most of the arguments I saw (which is quite few—the place has been mostly empty for years) took place by appending replies to the bottom of comments, which defeats the purpose of the format pretty soundly.

Why do the participants resist the RE (reflective equilibrium) format? What makes it inconvenient and unnatural? Is is just a lack of familiarity with the format, or is it something about the way people want to have discussions? If so, can these habits be subverted?

My hunch with my latest idea is that there a certain kinds of inquiries that happen in discussions that are awkward and inefficient with pure RE, that are better served by the back-and-forth of normal conversation. One such inquiry happens as follows: I respond to an argument, the arguer responds, I edit my response to address the points made. But the arguer still feels his objections are valid as they stand, despite my attempts to address them. What happens next? With pure RE, the answer isn’t clear. The only obvious thing to do is to ask the person to clarify or expand upon their response to my reply.

If limited in certain ways, this back and forth might not defeat the purpose of using RE in the first place. But there is a danger that it will. I guess the only thing to do is to implement this system and try it out. (I implemented my last system, but it never got used. Let’s hope this one turn out a little better.)


I have the orginazation bug

I just bought a MacBook. OS X is a pretty neat operating system, but compared to the hype I’ve been hearing about, I’m underwhelmed. Still, I’m happy with my purchase—I’m dual-booting with windows, and I’m going to use it as a work laptop. (I have to work in Windows, since I develop Windows applications using Windows-specific libraries and development tools.)

But I’ve found myself booting into OS X a lot more than I would have thought, because of one application I found that came with the system: Omni Outliner. Oh, man, I love this thing! For a long time, I’ve tried various ways to use outlines to help me organize my thoughts, using various sorts of outlining tools, including notepad, wordpad, Word, Emacs, and Keynote. All of them sucked. But this, this. This is what I need; it’s what I’ve always wanted! It’s what I would have written for myself at some unspecified point in the future.

I want a windows version. I need a windows version. I might be able to use OS X at home, (it would involve switching a program I’m working on to the other platform, and finding a good development environment for the mac and learning it,) but I simply can’t at work, and I want to use it at work. And, wouldn’t you know, there’s nothing like it for Windows. Well, there’s Keynote, and there’s the defunct, but now freeware, Ecco outliner. It’s too bad I have no idea how to do good text rendering and editing with C#, or I’d totally write my own.

So far I’ve used it to do a todo list, based on the whole 43 Folders, Getting Things Done type system. And so far I’ve had the same problem I’ve had with every other organization system I’ve ever tried—while it helps me get organized, it doesn’t help me fix my actual problem, which is not having the energy and motivation to actually do the things I need to do. I can sit there staring at the list of a fairly complete list all the tasks I think I have on my mind, and look at the next thing that I’d need to do on each, and still not find it in me to work on them. Well, at least having it all organized helps me feel a little less anxious about not doing it.


Hooray!

I got a message from an OKCupid user today, one I hadn’t contacted. It’s nice to get something out of the blue like this:

Hello dear, how are you doing today, hope great, let me introduce myself, my name is merry william , 29 years female from chicago. I searched your profile, read it and I was amazed with the content of your words

Doesn’t she sound intelligent?

Continue reading »


Weak chess engines

For a long time, I’ve thought that there’s been a hole in the computer chess world—there are no chess engines that play weak games with human-like mistakes (that I’m aware of). It’s easy to make a chess engine that plays a 2000+ strength game, but weakening these engines by limiting their search depth or time always seems to produce games with many strong moves and a few blunders. I can’t be completely sure—it could just be paranoia—but it seems like real weak players (i.e. most casual players) make mistakes that are quite different, and more fun to compete against. Are there any engines that play good weak chess, that accurately mimic the style of a human weak player? Am I crazy for thinking that existing engines don’t?


Unfogged Greasemonkey script

I made a little script for Unfogged comments threads that linkifies numbers in comments to go to the comment with that number. Link.

It sort of breaks on comments with links in them that have numbers in the URL. Not sure how I’d go about fixing that.

It should be extendable, with trivial modifications, to most other blogs with comments that use comment numbers in the same way.


Morality is unsustainable

“Darwin”, of DarwinCatholic, (h/t Gene Expression) writes here about a Business Week piece on the ethics of selective abortion using genetic screening for various disorders.

Continue reading »