Tango Container Package
Tango has a new collection package, called tango.util.container. Lars says:
Several issues with the original collection package have been identified over time, in particular with functionality. This lead to a new implementation, now available in trunk as the package tango.util.container. It should be more complete when compared to the old one, and in addition the new container package looks to be extremely fast and memory efficient.The old collection package will be deprecated prior to Tango 1.0.
For the curious, you can browse the source for the new package online.
Technorati Tags: D Programming Language, Tango, data structures
Ubuntu and I
I bought a new computer recently. Usually, I only buy a new system when my old one becomes too painful to use, even after a few upgrades. And usually I wind up giving the old box away to a friend or family member. Last time, I hung on to it for a while. Eventually, I bought a KVM switch and a router, then installed Ubuntu on it. I had intended to use it to get more familiar with Linux, but ultimately used it just as an svn server until it died.
This time, the computer I'm replacing isn't really all that bad. I've upgraded the graphics card twice, added more RAM, I have no problems with any games I want to play and it runs well. But I've been using it for almost five years and I really wanted to play with a multicore CPU. So I decided that after buying the new one I'd keep the old one and give Ubuntu another spin.
The first version of Ubuntu I ever used was Edgy Eft. I had dabbled with other distros over the years, but this was by far the easiest to get up and running with. Still, it wasn't without its problems. The subsequent versions also gave me one headache or another. Hardy Heron, though, has so far blown me away.
The install process is much improved over previous versions. I went with manual partitioning since I wanted to install across two hard drives. Even that was a cake walk (I still cringe thinking of my first Linux partitioning experience during a Red Hat 6 install back around the turn of the century). The install process is so much more streamlined than in previous versions and went quite fast. The last time I installed Ubuntu on the same box (7.04, IIRC, just on the slave drive) I remember staring at the screen for quite a while during the installation. And this time, not once during installation did I see any sort of prompt for configuring XWindows. Wow!
The next big surprise was the one click install of the NVidia drivers. The last couple of times I toyed with Ubuntu, I used Envy and thought it was a life saver. This time, I found an option in the administration menu to install it (which, I suppose uses the more recent EnvyNG internally). Getting XWindows properly configured and the official drivers installed has always been the biggest point of contention with every version of every Linux distro I had ever tried (which is just a dozen or so, really). This time, there was no need to go out and find the latest Envy script, no need to visit the Ubuntu forums for guidance... one click and a reboot later and I had a working, hardware accelerated XWindows configuration. Even simpler than it is on Windows!
Next was getting my development environment set up. The two primary things I was after (besides gcc, which was already installed) were Sun's JDK and D. This latest version of Ubuntu now makes Sun's JDK available from the Universe apt source. So a few minutes after installation, I had the latest JDK installed along with GDC, which is also available through apt get. I had used DMD on previous installs, but I really need to get up to speed with GDC. I still haven't looked at installing Tango yet, but that's on my TODO list.
The only problem I have had during this installation of Ubuntu was not a problem with Ubuntu at all. I dusted off my old router to get the LAN set up again. After a few hours of wondering why the hell I could ping my ISP's DNS servers, but no domain names were getting resolved, I noticed an option in the router configuration menu to reset it to factory settings. I clicked. The router rebooted and I had internet access again.
This afternoon, after the wife and I saw Sex and the City, I bought a new mouse. I've never paid so much money for a mouse, but I'm liking it so far. I'm used to running two monitors, so I have two connected to my new box. One of them is connected via the KVM switch, along with the keyboard. This allows me to keep an eye on the new box while working on the old one. But if I run the mouse through the KVM, I have to switch out of whatever I'm doing on the old one in order to react to something on the new one. I spent yesterday swapping my USB mouse between them. That was just annoying. So with the new mouse, I can work on both comps at once if I need to. At least until I need to type something. I really don't like the idea of having two keyboards on my desk, so I can live with that for now.
It's rare for me to publish a not-so-D-centric post here, but I know I have made a few comments over the past couple of years of maintaining this blog that highlight my lack of enthusiasm for Linux. Each version of Ubuntu that I have tried has swung me around more than the last. The initial first impression has gotten better each time, but there's always been something to burst my bubble. But I think this one has pushed me over the edge (in a good way). I'm going to spend some time doing as much of my development work as is feasible on the Linux box to see where I get with it. The last time I only lasted a couple of weeks. This time around, I have high hopes. So far, this is the first version of Linux I've used where I didn't feel I have to already be a Linux user to really use it.
If all goes well, perhaps I can stop relying on other people to handle Derelict issues with Linux and/or GDC. Now if I can just get a Mac I'll be self sufficient!
Technorati Tags: Linux, Ubuntu, Hardy Heron
Learn to Tango with D Sample Chapter
Chapter 2 of Learn to Tango with D has been posted at GameDev.net. For those of you who are new to D and don't have the book already, this chapter is an introduction to D's basic features. I hope it encourages you to buy the book!
Technorati Tags: D Programming Language, Learn to Tango with D, programming books
D Conference 2008 Update
Brad has fixed the dates for the 2008 D Conference. It will take place August 4-6, 2008. The venue is Amazon's campus in Seattle, WA. Currently, there seems to be a shortage of speakers. If you have some D goodness to talk about, or know someone who does, please let Brad know. You can find out how to do that and learn more about the conference on the Conference 2008 homepage.
Technorati Tags: D Programming Language, D Conference
OpenMW
It's well past my bed time, but I just have to blog this before I go to sleep. Nicolay Korslund, the maintainer of the Monster game scripting language, is working on quite an ambitious project: an open source implementation of Morrowind. This project is interesting, to me anyway, on so many levels.
First, there's the fact that it loads Morrowind assets. This includes the Gamebryo NIF files as well as the data from Morrowind editor. Second, he has created D bindings for Audiere, OGRE, and OIS, all of which are C++ libraries. Third, he's using it as a proving ground for Monster.
The project is released under GPLv3. Source and Linux binaries are available on the project page (it will eventually be compilable on Mac and Windows as well). You need to own Morrowind to be able to run it.
Technorati Tags: D Programming Language, games, game programming, game development, Morrowind