School is pretty regular. I passed my first semester* and I’m now in the second. This one deals mostly with C, operating systems and networking.
I like the practical approach I’ve experienced so far. For example; this first week of the networking course I’ve learned exactly how TCP connections are established between two hosts, and all the protocols and standards used to get the packets across. The usual OSI model theory but also a deeper look at the 802.3 and 802.11 specifications.
The OS course was a lot less interesting in this first week. It is assumed that students entering this course have only ever used Java before. Still, working with C instead of C++ and using it to write cross-platform applications isn’t boring.
Now I’m a student I don’t write as often on this blog. Partly because I don’t come across as many technical problems and challenges as I would at work. The most noticeable thing this week was that our teachers overlooked something in CSMA/CD. Because, as it says on wikipedia:
Methods for collision detection are media dependent, but on an electrical bus such as Ethernet, collisions can be detected by comparing transmitted data with received data. If they differ, another transmitter is overlaying the first transmitter’s signal (a collision), and transmission terminates immediately. A jam signal is sent which will cause all transmitters to back off by random intervals, reducing the probability of a collision when the first retry is attempted.
In the theory supplied to us there was no mention of this jam signal. Because I don’t trust wikipedia (and so should you) I looked it up, and it is in fact a part of the huge 802.3 CSMA/CD standard.
* Students at the HAN can choose four semesters (out of nearly 20) they want to follow during their four year education. The first year is introductory, the other two semesters are filled with an internship and a graduation project.
I’m attentively following the latest developments in the field of e-paper. I long for the day when I can sell all my books and replace them (and all future purchases) with an SD card.
Fortunately, the user-friendliness of the devices has been increasing and the prices have been dropping dramatically. Instead of 600, 700 dollars for a 6″ reader, there are now models for sale in the 300, 350 price range. Such as the Cybook and the Hanlin eReader. Still out of reach for my budget, and I don’t think I’d buy either model right now, but things are moving in the right direction. Just like MP3 players, I think the price will settle somewhere for a while. Hopefully in the 200-250 dollars range for an 8″ version.
Publishers are very afraid of this technology. It takes a huge investment to print, market and sell books. Generating a PDF from a LaTeX document only takes some free software. Hopefully writers will catch on quickly.
I’m sure that a few years from now I’ll have sold all my nontechnical books. Everything that can be viewed on a pocket-sized page will be on my SD card and backed up on a disk somewhere.
Apart from the cost, the only real downside to E Ink screens is the changing of the screen contents. When you move to another page the screen goes completely black for a moment, briefly shows an afterimage of the previous page, and then it’ll fade to the new page. Not the most pleasant kind of screen transition. Because of this, E Ink also can’t be used for animations of scrolling effects. But it doesn’t detract from the experience of having an entire library in your backpack, and a screen on which you can actually read it.
So far, yet so close. Ray tracing for games has been never really tried, because rasterizing is simply much quicker, and special effects such as reflection can be simulated quite cheaply.
Intel has been a proponent of real-time ray tracing since a few years ago. They obviously hope this technology will create a market for very-many-core CPU’s to be introduced in the future. There’s no use for a 16 core CPU when the game is only going to use 2 or 3. Of which 1 for pushing the polygons to the rasterizing GPU.
However, I don’t think ray tracing is going to be used in real-time graphics for a very long time to come. And I don’t think general purpose CPU cores will be used to power it. It’s just too much work to trace every pixel of every frame, and the benefits over the current state of rasterizing are questionable. A pity, because ray tracing is so much more elegant and predictable.
2008. Still the same me. Moved from Ubuntu Linux and Windows Vista back to good ol’ Windows XP. Visual Studio 2008 is great. Want to play with assembly some more. Still need to write an OpenGL-based 3D engine. Need to put my mind to things in my spare time. Getting new glasses. Want to read more. Finishing my first semester in two weeks. Internship in the second half of this year. Going to see Joe Satriani in June.
Not much programming stuff to blog about lately. I’ve been using Java almost exclusively, and everyone’s already blogged about it.
I recently switched my desktop back to Windows XP from Ubuntu. Mostly because I wanted to play some videogames again. Also because the Nvidia Linux driver was giving me problems, and my kernel wouldn’t suspend/hibernate. So back to Windows for me.
Using Ubuntu I was used to the Rhythmbox audio player. Rhythmbox is a really good Gnome application for managing and playing music and streaming web radio. In Windows I use foobar2000, which is also a great player.
However, I’m attached to the Rhythmbox layout of dynamically filtering my media library to get a playlist with a genre, or an artist, or a specific album. foobar2000 can’t (by default) do this. The excellent Facets component provides this functionality. Highly recommended for Windows-using Rhythmbox fans.
“The One Laptop Per Child Project (OLPC) is toying with a novel source of power for its low-cost XO laptops: cows. “We plan to drive a dynamo (taken from an old Fiat) through a system of belts and pulleys using cows/cattle,” wrote OLPC’s Arjun Sarwal, in an October 21 e-mail posted to one of the group’s discussion lists. Sarwal and others are now finalizing the design of the cow-powered generator.”
I like reading about the inner workings of computer programs. Although I admittedly feel much better at home in Java than in x86 Assembler.
Reading this subject sometimes feels like reading a star trek script. For example:
To enable unreal mode, the program has to enter protected mode, locate a flat descriptor in the GDT or LDT or create such, load some of the segment registers with the respective protected mode “selector”, then cancel back protected mode. When jumping back to RM, the processor will continue using the cached descriptors as established in PM - thus allowing access to 4 GiB of “extended” memory from inside real mode.
I have only a faint idea how this should work. Terrific.
Wikipedia has some good pages on this subject. A good place to start is: CPU.
I hate magnetic hard drives. They produce heat and noise. Seek-times slow everything down. And I just don’t like the idea my precious data is being stored on magnetic disks spinning at 7200rpm and being altered by a physical, moving read/write head.
Fortunately, a least for small amounts of data (such as the operating system) there is an alternative. Solid-state drives are becoming financially available. My Ubuntu installation and my home folder don’t even take up 4gb, so a 8gb SSD would be roomy indeed.
Unfortunately, real internal SSD’s (with SATA connection) are expensive. But USB memory sticks are not! A moderately fast 8GB USB stick with a read speed of over 10MB/s can be bought for under 90 euros now.
Because I think 90 euros is still a little too expensive and because I’m unsure about the speed and latency of USB2 I’ll hold off this plan for now. As soon as I find a better solution (or the 8gb USB stick price drops) I’ll be sure to get a SSD.