New Boxen

Posted July 1st, 2010 by Ben Stone
Categories: Computing
Computing

It’s not that often that I buy new computer hardware. But, a few weeks ago, I felt the time had finally come to replace my ageing notebook with something a bit faster. Since portability isn’t really a big thing this year (as I use my computer at home only), I thought I’d build a desktop.

The parts:

  1. Intel Core i7 860 processor at 2.8GHz, though it apparently scales up a bit faster than that depending on system load.
  2. Gigabyte P55A-UD4P motherboard, powered by the Intel P55 chipset and with fancy features like dual gigabit Ethernet, USB 3.0, eSATA, and a floppy disk drive connector.
  3. 4GB DDR3 RAM at 1333MHz. Will probably upgrade to 8GB eventually.
  4. PowerColor ATI Radeon 5770 graphics card with 1GB of RAM. Not the best, but apparently better value than the nVidia equivalent in the same price range.
  5. 3×1TB Western Digital 7200RPM hard disks. The original plan was to RAID-5 these, but then I found out that RAID-5 performance is not that great with the lousy RAID controller that’s on my motherboard. So it’s just a bunch of disks for now.
  6. Pioneer BluRay Writer. Mmm, high-definition movies.
  7. Antec 900 case. I was originally going to go for the newer, more tweaked Antec 902, but MSY didn’t happen to have any in stock when I went to get my parts. Meh, this will do. It looks not too bad, and it’s much quieter than I expected it to be. This is probably because of the big fans (insert huge-fan-of-Antec pun here), and the:
  8. Seasonic M12-II 520W modular power supply. Apparently Seasonic are known for their quiet power supplies, and this one didn’t disappoint.

So, what does it look like? It looks like … well … any of the other millions of computers that use the Antec 900 case:

RIMG0118

Is it fast? Absolutely. This machine has a Geekbench score three times higher than my old computer. The graphics performance is also much more impressive than my old machine: it’s powerful enough to render Portal at 1680×1050 at 200FPS, while my old machine struggled to play it at 20FPS at 640×480.

The best part of it is that now I can play hardware-accelerated h.264 and VC-1 video at 1920×1080p, which means I can connect it to my TV and use it as an awesome media centre. If I fire up a decent media player like Media Player Classic Home Cinema which makes use of DxVA, and start a high-definition h.264 video, it won’t use any CPU power to decode it – the task is delegated to the graphics card. I like this.

What about a monitor? Mouse? Keyboard? Well, I already have all of these. My last notebook was essentially docked, and permanently connected to my 22” LCD monitor, keyboard and mouse. Now they’re all connected to my new machine:

RIMG0124

I am planning on buying two shiny new LCDs, as working on a machine with multiple monitors is great, but that’ll happen eventually.

Wait, you didn’t buy a keyboard? I’m glad you asked. Last year, I had the pleasure of buying a Unicomp Customizer keyboard. The Unicomp Customizer is a modern reproduction of the classic IBM Model M keyboard, which many consider to be the best keyboard ever. Unicomp bought the patents and the factory from IBM in the mid-90s, and continue manufacturing these keyboards today. The Customizer is essentially the last revision of the Model M design, but with a different paint-job and a USB controller instead of the antiquated PS/2 interface. Since I already have the best keyboard money can buy, why would I buy another? Sure, it looks like it should be connected to an IBM PC/XT, but it’s an absolute pleasure to type on, and typing is what I do.

But does it run Linux? I guess it does…? It at least booted from the Ubuntu 10.04 install CD. I am planning on installing some flavour of Linux on here fairly soon, and then alternating between it and Windows 7. If I have any trouble, I’ll probably rant here about it.

What did you call it? I’m still not exactly sure what I’ll name my shiny new machine. I’ve tentatively named it CoreBlimey, a combination of being quad-core, and “cor, blimey, that’s fast!”

So, what is it actually going to be used for? Eh, I’ll find a use for it. I’ll play some games. I’ll watch some high-definition movies. I’ll edit some video … maybe in high-definition. I’ll work on Instant Elevator Music 2. Etc. Smile with tongue out

–Ben

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Slashdot
  • StumbleUpon
  • TwitThis
  • Print this article!
  • Reddit

Elevator Music

Posted May 9th, 2010 by Ben Stone
Categories: Computing
Computing

[Placeholder for the usual "sorry for not blogging recently" comment] :)

I thought I’d make a post to talk about my newest piece of software. It’s called Instant Elevator Music.

Instant Elevator Music is exactly what it says on the tin. It’s a program that plays elevator music while you wait for your computer to do things. It sits in your system tray and waits until it sees that you’re waiting for something, like a download or a file copy. Then, it plays elevator music. :D

Instant Elevator Music is compatible with a large number of programs because it works by analysing the window structure of the program you’re currently working with. If it finds a progress bar, it will play music. It also has special handlers for programs which don’t show progress bars, but are otherwise things that you have to wait for. For example, TortoiseSVN and the DownThemAll Firefox extension.

The music that comes with it is the excellent Mario’s Elevator by Kmax, but you can make it play any MP3, Ogg Vorbis or Wave file.

Instant Elevator Music also comes with a few overly-advanced settings, including a configurable fade-out, options to tweak the detection of progress bars, and a running total of how long you’ve been “stuck” in the elevator for. Why? It was fun to implement. :)

For such a stupidly-obvious idea, I’m honestly surprised that nobody has done this before. I came up with the idea while waiting for VMWare to resume a virtual machine. The only UI that VMWare was showing was a progress bar. I thought, “I wish they’d have elevator music for this”. Then I realised, using the Win32 API I could probably make it happen. And so, now we have Instant Elevator Music.

The response to Instant Elevator Music has been a lot better than I imagined. I thought that it’d just get ignored as a program that’s too silly to even bother downloading. Even I’ve thought at times, “Why the hell would someone even make that?” But, I was proven wrong, with roughly 9000 downloads of the software in less than a week, and many positive reviews, even in other countries. Maximum PC even made it their Download of the Week. :D

So, a huge thanks to everyone who has downloaded and reviewed Instant Elevator Music, and to all of my friends who helped to test it. :)

–Ben

BTW: I’ve already started work on Instant Elevator Music 2, which will include a few new features and support for more programs. It’ll be out … uh, soon-ish. :P

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Slashdot
  • StumbleUpon
  • TwitThis
  • Print this article!
  • Reddit

Resurrected

Posted February 12th, 2010 by Ben Stone
Categories: Life

It’s been a while…

I’ve tried to blog again about four or five times since my last post, but never been arsed to finish it. To be honest, my need to post things about my life online has been overtaken by my Twitter feed. I just haven’t been bothered to sit down and write another blog post. However, now I’ve got a whole lot of time on my hands, so I thought I’d give it another go.

Last time I blogged, I had just finished my third semester of PSD at Swinburne. Now, I’ve finished my fourth semester of PSD at Swinburne, and have just settled into my Industry Based Learning work placement.

The fourth semester of PSD was very long, arduous, but in many ways rewarding. Languages in Software Development was a very interesting subject, although some overly-complex concepts weren’t explained enough to see how it’s relevant (like Lambda Calculus), but we still did some very interesting things (like write our own parsers in JavaCC). Database Programming had some very useful concepts which were overshadowed by the amount of time I spent bashing my head against the wall trying to get JDBC+Hibernate+Derby+JSP to work nicely. Advanced .NET Programming was very rewarding, particularly the portfolio work, though I’m still not sure why it’s called Advanced .NET Programming. It should really be called Concurrent Programming. If it had been called Concurrent Programming, I would have chosen it as my elective without hesitation. (Previously I had chosen Games Programming, then IT Security, then in the second week changed to Advanced .NET). Software Project Practices and Management was rather dry but necessary.

One fun part of the last semester was the portfolio piece I built for Advanced .NET Programming. We had to build an application to show our knowledge of concurrent programming and .NET-specific concepts. So, I built a multithreaded streaming radio server. As far as I know, it’s the only C# implementation of the Nullsoft Shoutcast protocol. I used P/Invoke to read from Wave and FLAC audio files using libsndfile, and encode them using LAME. They were then distributed to other clients via a number of worker threads. I also decided to code it so the audio streaming was very extensible, using standard IO streams to pass raw PCM audio around the app. This led to some interesting pieces of code, including a generated text-to-speech audio stream, and a playlist stream which encapsulated other streams and iterated through them, completely transparently to the code reading from the stream. From this I was able to create a sentient automatic DJ: one that would go through a collection of FLAC music files, play one, and then generate text-to-speech to introduce the next song, and occasionally go to a commercial break. Fun stuff.

This year is going to be an interesting year. I’m on my Industry Based Learning placement this year. Instead of studying, I’m going to be working; gaining real-world experience and earning money. This will be very useful when I go for a graduate position, as a year of real experience will put me ahead of others.

My IBL work placement is at the Defence Science and Technology Organisation, part of the Department of Defence. For obvious security reasons, I don’t want to talk about it on my blog. :) But, it’s very interesting so far. I think I definitely made the right choice.

The only downside of my work placement is I’ve had to relocate to Adelaide. It’s not actually as bad as many people in other states say it is. Most of them are just ignorant trolls who have never actually been to Adelaide, but yet continue to deride it. (Sorry my Melbourne friends, but the jokes are really getting old…)

My only gripe with living in Adelaide is the fact that I inadvertently chose to live in THE broadband blackspot of Adelaide, Mawson Lakes. It’s a very nice area to live… close to a whole lot of amenities, close to a train station, good people, nice architecture, etc. The only problem is, during the development of Mawson Lakes (which was only about yen years ago), Delfin put out a tender for the telecommunications infrastructure for the area. Telstra won the contract as they could do it for a whole lot cheaper than any other company. However, there was a problem with their approach. Mawson Lakes is about 7KM from the nearest phone exchange, Gepps Cross. Instead of building a new phone exchange (that would cost too much money), Telstra wired the whole area with RIMs, which are essentially green boxes which compress a large number of phone lines down into a fibre line that goes back to an exchange. This works fine for voice, but breaks ADSL. These were upgraded to CMUXes about five years ago, which are ADSL1-capable, but with only a very limited number of ports. Each CMUX may have as many as a few hundred phone lines connected to it, but it may only have a maximum of 96 ADSL1 ports available. This of course makes it close-to-fucking impossible to get a port. Even if you do get a port, given the fibre lines from the CMUXes aren’t necessarily very big ones, you’ll end up with less-than-optimal ADSL1 speeds anyway.

The fact is, I’m living in a town that’s adjacent to Adelaide’s Technology Park, but I can’t get a wired broadband service. ADSL1 is out of the question, and so is ADSL2+. It’s partly my fault for not investigating before signing the lease, but our real-estate agent did promise me repeatedly that ADSL was available. So did Telstra when I paid $59 for them to connect my phone line, only to be rejected for an ADSL service a week later. Now I’m stuck with this useless phone line for the next three months. Gaddamnit, Telstra. <_<

For a while, my only option looked like 3G. Eugh. So I found another company called NuSkope. NuSkope provide line-of-sight “wireless DSL” (which is essentially 802.11a, and soon to be WiMax) by installing a receiver at your premises that points to one of their radio towers. I was skeptical, because after all … it’s a wireless service. However, I’ve been pleasantly surprised by their service. While 10GB at 512Kbit for $49.95/month isn’t quite ADSL1 prices, it’s still the best value wireless internet around AFAIK. And surprisingly, the connection quality is good. It’s very usable for VoIP and even gaming, given the low pings. It’s also a very stable speed, and has only dropped out a small number of times in the month or so I’ve had it. Given I can’t have a wired internet connection, this is definitely the next best thing.

I thought that, now I’m working 9-5, I’d have a bit more free time. Especially given there isn’t anything to do in Adelaide. But, alas, now I find myself spending quite a lot of the weekend doing mundane things like vacuuming and cooking and ironing. But, I guess that’s life. I’m still finding time to do other projects, for example I’m making a conscious effort to switch to Linux. I’ve also been working on a number of little projects that I might release soon. One of them is a usage meter for NuSkope wireless (coding out of necessity :) ). I’ll reveal the other one later, it needs a lot more testing and possibly some refactoring before it’s stable enough for release.

Anyway, that’s pretty much all that’s happening in my life right now. If you’ve read this far, post a comment or something so I know people actually read this crap. Otherwise, I’ll just go back to Twitter. :P

–Ben

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Slashdot
  • StumbleUpon
  • TwitThis
  • Print this article!
  • Reddit

Thoughts on PSD Semester 3

Posted July 18th, 2009 by Ben Stone
Categories: Life

I decided it was finally time to write up a post about the end of the first semester of the second year of uni. A lot of this post was written about six weeks ago, I decided to let it ferment in my drafts folder for a while. It’s not the best vintage post, but it’s certainly palatable. :P

The exams this semester were mixed. The first exam, for Data Structures and Patterns, was suspiciously easy. It was exactly the same format as the mid-semester test, except it mostly covered the second half of the course content. Surprisingly, the questions were worded in a way that it practically gave you the answer. Here’s an example, in a question where you had to write an algorithm to traverse a….hold on second.

WARNING: The following paragraphs contain computer science concepts, which may not be suitable for liberal arts, English or communications students. If you happen to be paying money to study a pointless university degree with no employment prospects, please kindly ignore the next few paragraphs on important concepts which may hurt your overly-creative mind. :)

Now that the legalities are out of the way, I can continue. :P One of the questions on the exam involved an algorithm to traverse every node in a tree, using a simple depth-first traversal. Firstly, I was surprised the exam didn’t test the breadth-first traversal instead, which is a bit more involved than just recursively going through the tree. Secondly, the question actually told us how to implement the algorithm. It asked us to write a depth-first traversal algorithm by first calling PreVisit (in the given Visitor object) on the current tree’s key, then calling the depth-first traversal on each of the subtrees, then calling PostVisit. So, essentially, the question told us exactly how to answer the question.

Another example was earlier, where there was a partial implementation of a tree which has three subtrees, which funnily enough were referred to in the code as the Left, Middle and Right subtrees. Our goal was to fill in the blanks in the code, things like writing a copy constructor to ensure proper copy control. It also had a functions for attaching/detaching trees. Interestingly, it had the code to detach the left and middle subtrees, and asked us for the code to detach the right subtree. So, literally all we had to do was copy the code from the statement just above the question, and change “middle” to “right”. This is why I really enjoyed this exam. :P

The next exam was Software Development Practices. It was a fairly average exam … it was long and fairly hard (that’s what she said). The case study was all about an ice-cream shop. Personally I’m against food being used in case studies in exams, because it’s always distracting. I wonder how many people included the different flavours in their UML class diagram? I’m sure there would have been a few.

My last two exams fell on the same day. In the morning was Database Management Systems, which was a fairly unpleasant exam but nonetheless it seemed easier than I thought it would be. It’s probably because most of the questions are multiple-choice, and the multiple-choice are able to jog your memory for the short-answer questions. Unfortunately, I spent a disproportionate amount of time studying for DBMS in comparison to Data Communications and Security, which was in the afternoon. The exam was quite long and hard (that’s what she said), and contained a few questions which somewhat tripped me. I know of a few questions which I didn’t explain very well. Things like the intricacies BGP routing, which I couldn’t really explain properly.

My results seemed to somewhat reflect my perceived performance in my exams. Surprisingly Data Comms and Security was one of my better subjects, even though I thought I did quite badly on the exam. Overall, I received three High Distinctions and one Distinction for DBMS. So, this does break my consistent string of HDs. Damnit. :( Meh, I kinda expected it, since I always disliked my Database class.

Now that the first semester is over, it looks like it’s time for seven weeks of solid holidays. Or is it? Well, not for me. At the start of the year I was offered a vacation research scholarship at Swinburne’s Centre for Complex Software Systems and Services (CS3). While usually this runs over the summer, I decided to undertake this over the winter to give me some time between second semester and IBL. Basically it means that for the holidays, I’m going to be working at Swinburne helping with research projects. The project I’m working on right now is an interesting peer-to-peer simulation system using Java and JADE (Java Agent Development Framework). Interesting stuff.

Another interesting thing that happened, I finally received my Unicomp Customizer 104 keyboard. I’ll write a full review of it next week, but to summarise it in a word … Nice. Over the past few weeks I’ve become a bit of a keyboard hobbyist. I’m choosing my words carefully here. My friends have accused me of becoming a keyboard enthusiast since now I know things such as the difference between a scissor-switch and a buckling-spring, and who Topre Corporation are. However, I dispute this, because a real enthusiast would own two really awesome quality keyboards, not one. Still, while many seem to think that spending A$180 on a keyboard which doesn’t have a wrist wrest, multimedia buttons, full n-key rollover, an aesthetically-pleasing bezel, macro keys, or a pointless LCD display, the point is I use my keyboard for easily more than eight hours a day, and if it breaks down it will be a huge inconvenience to my life. So, why not get a good one? Typing on this keyboard is like driving a Cadillac. You know it’s nice. A little impractical sometimes, but comfortable to drive.

Apart from this, not a whole lot else is happening in my life. I’m getting into the pretty standard cycle of wake, go to work, work, go home, procrastinate on the internets, sleep. It doesn’t sound that interesting, but it’s not too bad. To pass the extra time I have I might start a holiday project, like get into tinkering with an Arduino or finally get my jukebox system running. The world’s my oyster. Or at least my McNugget. :P

–Ben

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Slashdot
  • StumbleUpon
  • TwitThis
  • Print this article!
  • Reddit