Dragon Age 2
I’ve been busy a little bit. Dragon Age 2 came out recently.
Unfortunately, as hard as I try, it just doesn’t compare to Origins. I should note that I havn’t completed Dragon Age 2 yet, but the storyline… It takes a very long time getting up to speed. For what I suppose is roughly the first half of the game, it remains entirely unclear what the big picture is. Sure, there’s a guy, he fled from Ferelden during the Blight and tries to get by in Kirkwall, and that’s a great starting point, but the big picture is completely absent. Even after a while, you’ve suddenly become the Champion of Kirkwall, and eh, great, now what? The whole sense of purpose and being part of this epic adventure that you have in Origins is entirely absent (and besides, after defeating an archdemon in Origins, Dragon Age 2 will have to do a hell of a job to match in that area).
The thing that has been bothering me endlessly is the environment. Origins has a huge world, there are tons of different places to explore, different cities, you name it, but Dragon Age 2 is just Kirkwall and a few minor areas just outside of it. The city feels more like a fortress than like a group of buildings which happen to form a city – even in the less expensive regions – and it quickly becomes boring having to walk through it. The endless and highly obvious re-use of areas (there are a high number of buildings that only vary in which NPCs are roaming in them and which doors you can open) is a major disappointment compared to Origins, and tears down the immersion factor, which is so crucial to a good RPG.
Quests (and individual tasks within them) are way too often ‘walk to person X on the other end of the city, talk for 30 seconds, and come back’, which quite frankly is not encouraging to do a lot of sidequests. I also miss the interaction with your companions that you have in Origins. In Origins, you can just start a conversation with any of your companions at pretty much any time, and really get a chance to explore their backstories and get a sense of bonding with them. Aside from a few pre-arranged conversations at fixed moments, this is entirely absent in DA2, which I think is a shame.
In terms of combat, it’s a shame that spells like Tempest aren’t nearly as impressive as they were in Origins. Complete lack of friendly fire turns spellcasting more into mindless targeting rather than actually having to be strategic about it – it really doesn’t matter if your entire party is within the target area of a Fireball. Combat is pretty easy anyway, most of the enemies go down quickly and hardly pose a challenge (with some exceptions, like the Qunari leader dude, whose difficulty really seems out of proportion to the rest of the game when you duel him). The times at which you’ll get attacked are easily predictable, and very often you’ll run into guys that just storm you on sight for no explainable reason.
Even though I can understand their absence, the different origin stories on DA:O were fun and I’d like to have seen something like that return in DA2.
I am still going to complete the game, and will probably play DA2′s sequel as well, but I’m sad to say it’s nowhere near as good as Dragon Age: Origins is, and I’ll be looking forward to Bethesda’s new toy, Skyrim.
Houdini
Well, okay, maybe not Houdini. But I did perform the Great Swapping Trick(tm) today.
Here’s the deal. My parents have a laptop (which is mainly used by my father) and a desktop PC (which is mainly used by my mother). The latter one suffered from a failing hard drive. Not entirely broken yet, but performance declined rapidly and bad sectors were popping up. Those are no good signs, and I’ve seen failing hard drives more than enough times to recognize the symptoms.
The old drive was a 80 GB. Not too big, sure, but since usage of the system is mostly limited to on-line Flash games and e-mail, it’s no big deal. Only a few gigabytes were actually in use, and most of that for the operating system.
So, I ordered a new drive and picked it up yesterday. A nice new 500 GB drive (can’t seem to get ‘em much smaller anymore – they had smaller drives, but those were more expensive, so screw you, small harddrives) arrived here in it’s shiny anti-static packaging.
It also happens that my main PC is suffering from a serious lack of hard-drive space. There is about 100 GB free on one of the storage drives (and filling up rapidly) and the rest of the free space is a bit of headroom on the operating system drive (which I’d like to keep that way). Since the OS drive is 160 GB (and by far the smallest drive in the system), and 500 GB is obviously more than that, I figured, why not do the Great Swapping Trick(tm)?
I plugged the new 500 GB disk into the system (borrowing the optical drive’s SATA cable, for lack of free ports on the motherboard), found a utility that copies hard-drives sector-by-sector, and let that run. Next up was shutting down, phyiscally replacing the 160 GB OS drive with the new 500 GB drive (which contains exactly the same data as the ‘old’ OS drive), and booting up again.
And voíla, 316 GB of additional storage space, and it didn’t cost me anything except for 10 minutes of work and watching two episodes of The Office to fill the time it took to clone the drive.
My mother’s PC will get what used to be my OS drive. It’s smaller than the drive she thinks she’s getting, but still twice as big as the one she had (and she hardly used that one), so no one will ever know.
And as an added bonus, I got to see Windows come up with a ‘Found new hardware’ message about the hard drive that it was installed on, which was interesting too.
MicroVGA
A while ago I got one of these little buddies: the MicroVGA microcontroller VGA interface.
The concept is very promising. Basically, it’s an easy way to hook a microcontroller up to a VGA monitor (which is typically not a very simple process; you need some very high speed, very high timing accuracy, lots ‘o memory for the frame buffer, and some high-speed DACs). It provides a serial as well as SPI interface, accepts text (and standard VT100 escape sequences) and spits out text-mode VGA to a monitor. (No, it doesn’t do full-color per-pixel graphics, just the text mode (with colors) as you probably know from your PC’s BIOS setup tool.)
It also comes with an analog TV output, and a PS/2 keyboard connection. Not only does it read the attached keyboard and send keypresses back to you via RS232/SPI (whichever you use), it’s also used to access the module’s setup utility.
The whole thing sounds great, with potential for a large variety of applications. Only if it were that great in reality…
It’s not that the module doesn’t work. It’s easy enough to hook up and get it running: it just wants 5V and GND, and a serial input, which I provided directly from my PC (using a level shifter in between of course). Before you can talk to it from a PC, you’ll need to access the setup tool and change the baud rate, because by default it’s set to 1 000 000 baud, which most PCs cannot deal with, and there’s no auto-baud feature.
One thing that I immediately noticed when I had this module in my hands was the parts that are used on it. There is a PIC24HJ32GP302, a 16-bit microcontroller from Microchip, and A small Xilinx CPLD (Complex Programmable Logic Device), part number XC9572XL, which contains about 1600 gates. Other than that there is a voltage regulator and a standard 74-series buffer IC.
The interesting thing here is that, even though the module wants to send out VGA signals – which require pretty accurate timing – there is no crystal, or any other sort of accurate timing circuit on the PCB.
Unfortunately, it is there where the MicroVGA’s big problem lies. It turns out that, when it is connected to a monitor, there are three possibilities:
- The monitor will accept the signal, but the lines on the screen will constantly ‘wobble around’ a little bit. This makes it extremely hard on the eyes to read text on the screen for any period of time.
- The monitor will display the image, with the wobbling problem, but also occasionally just say ‘screw you’ to the VGA signal and re-adjust itself (resulting in the screen going blank for a few moments).
- The monitor rejects the VGA signal entirely.
In other words, the PS/2 interface aside (which doesn’t nearly justify the cost of the module), the MicroVGA is pretty much useless.
I have tried contacting the company that sells the MicroVGA, but haven’t gotten any response from them.
In other words, don’t waste your time (and money) on it. Even if I just had a bad copy, the lack of an accurate time source on a module that needs accurate timing is a very questionable design choice, and the bad support from the vendor alone is plenty reason not to buy it.
Trees
In the wonderful abomination that the Dutch have come to know as Dutch, we have an expression: “door de bomen het bos niet meer zien”, or translated to English, “not seeing the forest because of the trees”. What you’re saying with it is that there is so much of something, or something has grown so large and complicated, that it’s hard to still grasp the basic idea of it. Also, it (in part) describes how I feel about modern web development.
Waaaay back, when everyone was using 28k8 dial-up modems, in the time of bulletin boards and Gopher (which is kind of the predecessor of the World Wide Web), things were simple. Granted, the number of things you could do with them was limited as well, and back in that time computers (to most people) were arcane and mystical devices that only superhuman-like beings could properly operate. But if you happened to be one of those who could, things were simple. The Gopher protocol was a simple protocol.
But then, computers slowly became affordable. And at some point, broadband internet (or more accurately described, non-dialup) became affordable too. And people started using the Internet. They were the times of early Internet Explorer and Netscape (the Dutch translation of which, at the time, probably due to not very knowledgeable translators, translated “cookies” – as in, the bits of information stored on your computer by a website – were translated as “koekjes” – the baked dough that we have all come to love. I am still disappointed that enabling the option “koekjes altijd accepteren” – or “always accept cookies” – never delivered me any physical yumminess.). The Web slowly developed. There came extensions to HTML. Websites had frames – one of those things that probably seemed like a good idea at the time, but turned out to be really stupid – and at some point dynamic websites became commonplace. Yahoo! GeoCities was full of animated GIFs, marquees, and blinking text. CSS and JavaScript and Flash and ActiveX and all sorts of other things popped up all over the place.
Today, we are feeling the result of the rapid but uncontrolled development that the Web went through. There are a bunch of different browsers, and none of them interpret HTML exactly the way they should. Instead of finally building a definitive standard, HTML5 is attempting to accomodate every broken webpage that was ever made and now they have decided that it won’t really have version numbers, let’s instead make it an ‘adaptive standard’ and change it as we go, just to make things easier on web developers (and browser builders). Every browser does JavaScript a different way, and writing a script that works accross all browsers is a tedious process involving many dirty hacks to implement a gazillion different methods to do the same task, depending on which browser it’s running in. (And yes, there are frameworks and things that try to make it easier, but that’s just throwing another layer of crap on top of an already broken system. Issues should be resolved at their origin, not by trying to painstakingly work around them.)
On the modern Web, if you want to make yourself as a web developer, there is just so much you need to go through. Not even to make a website that is impressive, no, even something that lives up to the user’s expectactions of an average website is a monstrous task. The basic markup language, HTML, is not too difficult too grasp. CSS makes it easier to create a consistent look and feel over a number of pages (really can’t do without it), and JavaScript allows us to do all sorts of interactive client-side things (once you get it to work, that is). But the websites must also be dynamic, so we bring in PHP, MySQL – suddenly we need to be familiar with programming and databases, both of which are huge subjects to master – and if you’re going to be anywhere near fancy, you’ll need to do at least a bit of AJAX. And if learning how to deal with all of those things isn’t bad enough on its own, there are a ton of other things to worry about: search engine optimization, statistics tracking, advertising, usability, accessability, and so on.
Oh, and everything should have a very sleek and nice look. You should become an expert at Photoshop (or whatever graphics design program you prefer) as well.
As great and useful as the World Wide Web may be, to me, web development feels like one half-broken technology on top of the other, where the developer has to go to greater lengths than ever to come up with a decent result. And it’s not looking like there will be improvement anytime soon.
Frankly, I am tired of it. There has been a time when I liked doing web development, but that’s gone.
Can we please put all the crap aside and go back to when things were simple? Or at least start over from scratch, and this time, we’ll do it right. Properly define stuff and account for every possibility that we may need to deal with, and have a simple way to add what we need if we forgot to add it from the start. And we’ll have browsers implement everything in the same way (or just not re-invent the wheel, and stick with a single implementation of the core engine and use that accross all browsers/platforms). And the world will be a much nicer place because of it.
Until then, I’d like my 28k8 back, please.
In the wonderful abomination that the Dutch have come to know as Dutch, we have an expression: “door de bomen het bos niet meer zien”, or translated to English, “not seeing the forest because of the trees”. What you’re saying with it is that there is so much of something, or something has grown so large and complicated, that it’s hard to still grasp the basic idea of it. Also, it (in part) describes how I feel about modern web development.
Waaaay back, when everyone was using 28k8 dial-up modems, in the time of bulletin boards and Gopher (which is kind of the predecessor of the World Wide Web), things were simple. Granted, the number of things you could do with them was limited as well, and back in that time computers (to most people) were arcane and mystical devices that only superhuman-like beings could properly operate. But if you happened to be one of those who could, things were simple. The Gopher protocol was a simple protocol.
But then, computers slowly became affordable. And at some point, broadband (or as a more accurate term, non-dialup) internet became affordable too. And people started using the Internet. They were the times of early Internet Explorer and Netscape (the Dutch translation of which, at the time, probably due to not very knowledgeable translators, translated “cookies” – as in, the bits of information stored on your computer by a website – were translated as “koekjes” – the baked dough that we have all come to love). The Web slowly developed. There came extensions to HTML. Websites had frames – one of those things that probably seemed like a good idea at the time, but turned out to be really stupid – and at some point dynamic websites became commonplace. Yahoo! GeoCities was full of animated GIFs, marquees, and blinking text. CSS and JavaScript and Flash and ActiveX and all sorts of other things popped up all over the place.
Today, we are feeling the result of the rapid but uncontrolled development that the Web went through. There are a bunch of different browsers, and none of them interpret HTML exactly the way they should. Instead of finally building a definitive standard, HTML5 is attempting to accomodate every broken webpage that was ever made and now they have decided that it won’t really have version numbers, let’s instead make it an ‘adaptive standard’ and change it as we go, just to make things easier on web developers (and browser builders).
Freeware
There is a program, called Eagle, that I frequently use. It comes in a commercial, paid version, as well as a freeware version.
The freeware version is more limited, and you may only use it for non-profit applications.
The website says:
If you earn (or save) money by using the Freeware version of EAGLE Light, you have to register it.
That sounds reasonable. Except for one problem…
Because you’re taking the freeware version instead of the commercial one, you’re saving money, and therefore, you cannot use the free version.
Nice, huh?
Screw You
Screw you, Microsoft. Screw you. Really. Screw you.
I am NOT going to submit to your devilish tyranny called Windows Live Messenger 2011.
The version I was using refused to sign on earlier today because it was ‘required’ to update to the newest version. Well, screw you. I’m not installing it and I never will.
You can think you can flood us with crappier and crappier products which don’t add anything new except for ugly emoticons and even more annoying advertisements, but I’m not buying it. I’m exploring alternative clients and am currently using Trillian. It’s a bit of work to set it up to my liking but I’d rather get used to a completely different program than go with the fiendish beast from hell that Microsoft has unleashed.
Screw you, Microsoft. Really.
Screw you.
About
Despite the fact that this blog has been in existence for quite a while now, I never bothered to actually write something about the guy who writes it. Today I finally added an About Me page. If you know me there’s probably not a whole lot of information there that you didn’t already know but /meh.
Also, the MSP430 LaunchPad that I’ve mentioned a few posts back has been tagged ‘unobtanium’ on TI’s website. I like it.
Poof
Bah. I was going to use an old Playstation controller for a small project. I used it before and was going to re-use the old code so it *should* have been pretty simple. Until I made a tiny little mistake and the magic smoke came out.
I opened it and surprise surprise, a filter cap is blown out. A little investigation showed that Sony didn’t really want to build these controllers to high standards: the capacitor in question has a *very* narrow voltage tolerance and is a really cheap type that doesn’t even have the pressure relief (the little grooves in the top) that capacitors usually have. So the top of the capacitor just blew off the bottom and there was capacitor goo all over the cheapass little PCB.
Replacing the capacitor won’t solve anything, the main chip of the controller is also blown. This one is never going to be useful again.
*sigh*
Maybe I’ll check Ebay or something for some old controllers. They’re still fun to play with.
Olimex ARM-USB-OCD & Win7 64-bit
So, occasionally I play with ARM processors, and when I do so I talk to the chips using a JTAG interface. Specifically, I use the ARM-USB-OCD from Olimex, which is a pretty neat device and inexpensive (or at least, compared to other products on the market, and not counting crappy parallel port/Wiggler type interfaces, which suck). And it comes with a built-in power supply and additional serial port which is awesome.
The only real issue I was having is getting it to work on my laptop, which runs Windows 7, 64-bit. The device uses a standard FT2232L chip, but with a customized Vendor/Product ID, so the drivers from the Olimex website won’t work with it directly, and as you may know Windows 7 can be a real bitch with drivers, especially in 64-bit.
Anyway, I finally got it to work and figured I’m not the only one who ran into this problem, so I thought I’d share the driver I used. (I modified it from the standard FTDI drivers).
To install, unzip the folder somewhere, go to the Device Manager, open the properties for the ARM-USB-OCD (it shows up twice: one for the JTAG interface, one for the serial port), find the ‘Update Drivers’ button, browse to the folder where you extracted the drivers, and voila. It will probably ask you to confirm you want to install an unverified driver, obviously you’ll have to accept there. No worries, it’s just the FTDI driver modified to accept the ARM-USB-OCD’s VID/PID combination.
Anyway, here it is: Olimex ARM-USB-OCD drivers for Windows 7 64-bit (and pretty much all other Windows versions too) – 1.18 MB
TI LaunchPad
TI (Texas Instruments) released a neat little product a while back: the MSP430 LaunchPad Value Line Development Kit, as they call it. It’s a basic introductory kit to their MSP430 line of microcontrollers. At just $4.something they are pretty much a complete giveaway, its impossible for TI to make any money at all on them. But then again, their point is not to make money but to introduce people to their micros, and well, at that price its a pretty good starting point for anyone.
But TI, why, why did you have to make it so difficult to buy them?
On the TI store, the first obstacle is registration. The account registration form just does not work in Firefox. You can fill it out and click submit… and it’ll say you havn’t completed any of the fields. Then, once you eventually get to the checkout page, the damn thing wants so much (detailed) information from you.. It’s just ridiculous. At the nth form where I had to make up all sorts of stuff just to get past that page I gave up.
Mouser doesn’t have any of these kits in stock and they’re on backorder which will take roughly forever, and at the lack of another place where I can buy it… Sorry, TI. You really missed your chance there.
