Archive for October, 2006

new blog

About a month ago I started writing a blog in relation to my thoughts on someday develop a new game next to Cantr. Since I did not want to make these ideas public yet, I thought I’d just blog for archival purposes - for myself to keep track of thoughts and links, and for players to read back once the game is up and running. I quickly found myself blogging a lot more than I expected, however, and on subjects varying more and more, albeit all computer / programming related. It feels a bit pointless to blog too much on a password-protected page. Since I used pmWiki as the background tool for the blog, I also implicitly disallowed any comments on posts, never mind things like enabling RSS feeds.

I also decided that it was kind of silly that I had a relatively nice looking blog behind a password-protection, while my own website was starting to look really dated. The design of my old website is already about five years old and I’m bored with it. Besides, since it is written in plain HTML, it is not quite as easy to keep it up-to-date as a wiki or blog style site. And some blogs look really like proper sites. So, I decided to move my old site out of the way, create a new one powered by WordPress, and integrate it with my newly founded blog. You are looking at the result. All the previous entries of my hidden blog have been entered below.
My photo album, for me the most important part of my site, has always been badly integrated with the site itself. WordPress, however, has plugins available to use with Gallery 2. Since my current albums are in Gallery 1, the transition should be relatively easy, and it should be possible to integrate it all nicely into this site. That might take a little while to do, though, so until then you can find my pictures still here.

At the moment of writing I’m also still looking for a nice theme / skin for this site, so be patient and the design should gradually improve …

Add comment October 30th, 2006

unix’ ubiquitousness

Finally finished reading The Practice of Programming. This presentation by one of the coauthors is kind of interesting / funny, about the good, bad, and ugly of Unix, one billion seconds after its creation. It is particularly interesting to read after the last chapter of their book.

Another interesting presentation by the same author describes how innovation is stiffled by Unix’s ubiquitousness. Quite interesting as well.

Add comment October 27th, 2006

benchmarking programming languages

Here is an interesting site benchmarking programming languages. Since all code is included, it’s also a nice overview of the basic syntax of a fairly large number of different languages. OCaml looks rather intruiging, for example.

Add comment October 26th, 2006

c links

Still reading Kernighan & Pike, The Practice of Programming, which I like a lot, and made me more curious about who this Kernighan guy is. So I checked his website, followed some links, and get more and more interesting information, way too much for me to actually read today. So here’s just a few links so as not to lose them:

Add comment October 23rd, 2006

compiler fantasies

After seeing my boss’ hand in bandage due to using the computer too much, I’m wondering whether it would be possible to develop a VoiceIDE, an IDE based entirely on voice commands. The programming language itself would probably have to be adjusted to be easy to pronounce. E.g. try to say a regular expression out loud! Kaya might actually be well on the right track, with largely text-based commands instead of too many () and []. But it should be possible to improve on that.

It would involve:

  • Building a good GUI;
  • Developing a new language incl compiler and debugger;
  • Using speech to text and text to speech modules;
  • Building a nice programming interface that automates wherever possible.

Using voice commands requires a lot of differences with regular IDEs, like commands to quickly move around your code, interfaces to select variable names, etc.

If developing a new language, it would be nice to have a language that is elegant and safe, like Kaya, but that creates code close to C speed. So it should still be fairly close to computer language and allow for a lot of flexibility, like pointers. All added safety comes at a cost of less flexibility, though, so this requires a lot of thinking.

Another idea I had was to perhaps rewrite the Kaya compiler in C. Try to make it run much faster than the current compiler and in the process write out the documentation, since that is still practically absent. But I should first have a really close second look at Kaya whether it is really worth investing any time in.

Add comment October 20th, 2006

practice of programming

Not much new to tell. Have been reading a few chapter thus far in Kernighan & Pike, The Practice of Programming, which is a very good introduction to, well, programming. Very basic concepts, most of which I already knew, but very well laid out and good to sharpen my skills. I’m anxious to spend some time doing their exercises, but without a computer at home that will have to wait, I suppose.

Their somewhat silly example of a random text generator made me think about how to implement some code that reads the news and then runs some kind of factor analysis to group articles. So that might well be my next coding project - something different from online games (just read an extensive blog which convincingly argues how dangerous those games can be) and even kind of related to my studies.

Also discovered that Neoware is going to sell a thin client laptop. This means a laptop without harddisk, so that the prime use is through networking, including remote desktops and SSH. Cool idea, were it not that it does not actually lead to a cheaper laptop - they still charge $800.

Add comment October 19th, 2006

laptops, tiny computers, deals

Thinking about possible ways of getting a computer at home to at least be able to program and surf the web, my mind this week gradually moved from software to hardware. I know a cool Asus laptop that I would love to have, but it’s pretty expensive. Cheap Dell notebooks are available, but they’re pretty ugly. I don’t actually need that much capacity, though, just would like to be relatively light and easy to move around.

The One Laptop Per Child project got me intruiged and wondering why if African children are supposed to be happy and be able to use Linux on a laptop of less than 100 dollars, why shouldn’t I? I started looking at links on their site and learned about their hardware specification. I had never before heard of the LinuxBIOS project, which is a pretty cool idea, nor about the existence of some of the other hardware and software they use. I ended up surfing about how to build your own laptop and found this cool article in XYZ Computing on putting together a small, quiet computer in the living room. They’re using a very small motherboard and it results in a tiny computer, without any drives, but with specifications sufficient to run Linux and use wireless internet. Pretty much all I need, really. SilverStone provides some pretty cool looking cases and VIA some nice processors. A just slightly less feature-rich micro computer can be bought for just 150$, including shipping, from NorhTec - but if I remember correctly, it actually misses exactly crucial elements.

I’m quite happy to have learned about SlickDeals, a site with loads of nice deals. I immediately signed up for their RSS feed. I already saw a USB-stick/MP3-player for under 20$, which I would have bought immediately if my credit card was not currently at its limit. And a harddisk of 400 Gb for just 100$ - amazing! So building a really powerful computer can actually be done fairly cheaply. The only thing that is all the time very expensive is the monitor, though, although you can get a flatscreen for around 150$ too. But then again, I don’t really want a desktop in the first place.

Nice idea, albeit slightly pointless, would be to have one of those tiny micro computers in my bedroom, connected to the wireless internet, without monitor etc., which I can set up at work using their devices, and then a laptop in the house to access that computer as a wireless server. That way I can use any laptop, and mess around with the little computer without doing much damage to the laptop. It sounds like so much fun - I wish I had a reason!

Have been reading a bit in Stefan Goedecker and Adolfy Hoisie, Performance Optimization of Numerically Intensive Codes, which in the beginning of the book was very interestingly describing the basics of how cache memory works etc., but now it’s getting more boring and detailed about issues I’ll probably never use. Things matter in programming that you’d never think about, though! I really should finish it reading it.

Add comment October 14th, 2006

some books and kaya

In relation to a query by an client, I had to look up a bit of information about memory management. There is a very interesting page on Unix and C/C++ Runtime Memory Management (I read up to here) and Micah Altman gave an interesting presentation on the subject.

Earlier today I have to go to the library in the applied sciences faculty and there were several seemingly very cool books. One was by Bill Blunden, Virtual Machine Design and Implementation in C/C++, about the design of the HEC virtual machine. Seems intruiging, although a lot of plain code instead of text. Another book was called Computer Arithmetic, by Parhami, about the real nitty-gritty details of the algorithms and circuit designs used for processors to do arithmetic.

Last night I looked at some presentations about Ruby on Rails. It’s intruiging - about three lines of code to have a complete online form linked to a database etc. It just basically automates an enormous amount of coding between the SQL database and the webpage to maintain it. Useful for many applications, I think, but not really for online game design. It feels like giving up a little bit too much control, though, but that’s just a feeling ;) .

I also spent a tiny bit more time on Kaya, trying to see how the webprog library works. It’s badly documented and the tutorial is outdated, but the source code of the library is simple enough to figure out what to do. I miss syntax highlighting in Emacs, though! The webprog part makes it quite easy to write proper webpages in Kaya code without being too much bugged down by HTML syntax, which is nice. Here’s the tiny sample program I tried:

webprog webhello;
import Webprog;
import HTMLDocument;

HTMLDocument webmain()
{
doc = HTMLDocument::new(HTML4Strict, "Test webpage");
blog = addDivision(doc.body, "My blog", "blog");
return doc;
}

Which, after very slow compiling, produces:

Content-type: text/html; charset=UTF-8
My blog

In other words, I did not have to worry about any HTML syntax, and I can determine all layout issues with CSS by simply using the

Maybe I really should consider working on an Emacs environment for Kaya and a GeSHi language file to make the above sourcecode look nice!

Add comment October 12th, 2006

kaya, cantr, and learning how to program

On Friday morning I saw a link to the intruiging but utterly useless Whitespace programming language, which in turn refers to the language in development Kaya. Kaya looks pretty cool. It’s based on Haskell, which I don’t really know, and thus not object-oriented but functional language. They call it a scripting language, but it’s really more a general programming language, I think. It has many features geared towards server-side web development and it has nice quirky features I didn’t know before. It is a clear attempt to keep the language simple but take good things from many languages. The community on the mailinglist is also very friendly.

But then, I spent hours and hours - well, doing other stuff in between - trying to get the Kaya compiler to compile and run. I missed all major libraries it uses - probably a sign of how outdated our Cantr II server is, which is a bit of a worry. Eventually it worked (this RPM search engine was invaluable), but then I get compiler errors on the most basic tutorial examples. And the documentation, except for one non-exhaustive tutorial, is practically non-existant. So it’s both cool to see a language in it’s very early yet promising stage of development, but it’s also clearly risky to use it on a bigger scale.

Then Monday and Tuesday this week were almost entirely spent on server management. For unknown reasons, the server had rebooted on Monday morning, and we had the wrong mysql server version in the boot script, resulting in all kinds of SQL errors about corrupted and missing data. It took hours before we figured out what happened and then quite some time to get it all back up and running. And from out of shock we finally set up proper automatic daily backups for the database … which I see now didn’t actually work.

I really want to make it a project to simplify things in the next few months. Clean up the server and remove obsolete stuff; clean up the Cantr organisation and remove unnecessary elements; clean up the Cantr game design and remove unnecessary features.

I just read an interesting blog with an interview of some of the most prominent programmers, including the designers of C++, Linux, Ruby, Python, etc. Very interesting. Especially the sections on what books they recommend. Linus Torvalds and Bjarne Stroustrup both recommend Kernighan & Ritchie, The C Programming Language. Linus goes on recommending Patterson & Hennessy, Computer Architecture: A Quantitative Approach and Crawford & Gelsinger, Programming the 80386. David Heinemeier Hansson recommends Beck & Andres, Extreme Programming Explained and Peter Norvig suggests Abelson & Sussman, Structure and Interpretation of Computer Programs. Finally, both James Gosling and Tim Bray suggest Programming Pearls by Jon Bentley.

Through this interview I also just found the Dojo Toolkit which is somewhat similar to Google’s Web Toolkit, but both more advanced and in a more premature state (that is, some of the examples don’t seem to work on my computer). Interesting drag-n-drop features.

Note to myself: I really need to figure out what Ruby on Rails is all about …

Add comment October 11th, 2006

cantr ramblings

I haven’t been writing much here, but there has been little progress towards a new game. I’m learning more and more about PmWiki, though, so this blog should become nicer and nicer ;) .

I also discovered a cool 3D program developed by Google, although it’s a bit obscure yet how it actually works. It seems to be a simpler interface just by guessing more what the user wants. But it has so many user interface features that you really wonder why other programs don’t have those.

It is more and more annoying how I can’t seem to get over the hurdle over some very, very basic initial questions about the game:

  • A new version of a land-based open ended roleplaying game - a new version of Cantr II, or a space trade etc. based roleplaying game, somewhere in between Cantr II and, say, Eve Online.
  • Webbased or 3D? The former is easier to program; widely accessible; and includes fancy features thanks to Ajax; the latter is much more impressive, but makes the hurdle quite high.
  • What language to use for the back end? I like C, C++, but PHP is so much faster, while Java has the cool Google utilities.

As long as I can’t even answer those, there is nothing I can do to make this project go further.

Another thing is that the current state of Cantr does not make me much more enthousiast about new games either. After growing to over 2000 players a few months ago, it is now down by 400 already - that is a loss of 20 percent of the players! And I have no idea how to fix that. Players seem more and more disgruntled not with particular features - they always did that - but overall with the game. What kind of organisational change would bring new spirit to the game? All this while the actual staff is performing perhaps better than ever.

Add comment October 5th, 2006


Calendar

October 2006
M T W T F S S
« Sep   Nov »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Posts by Month

Posts by Category