Friday 31 December 2010

2011

In an effort to avoid cliché garbage about the past or the coming year, I shall do my best to keep this post as down to Earth as possible.

I finally got my new guitar, an FGN NCST 10m 2TS, which is a Fujigen strat copy with an alder body, maple fretboard and 2 tone sunburst, almost exactly like the first 54 Fender strats (they sported ash bodies). Beautiful, looks to be very well made. Really thick satin finished neck in contrast with the really slim (almost record breaking) wizard neck on my Ibanez RG. I looked really hard for the body block crease, but I couldn't make it out. The guitar sounded nice acoustically, and since I only have a Zoom 2.1u, I don't dare say too much about the pickups. According to an obscure German review somewhere, the pickups sound somewhere between Fender vintage and Texas. I know nothing about Fender guitars, but I have a feeling that assessment is kinda correct, the FGN can provide nice cleans and more output for some proper metal! With a Zoom.

I have done a lot of research about developing Outburst recently. Most importantly, I started playing around with Visual C++ to make sure my source code plays nicely with that IDE. I had to move around and rename files quite a bit, but but it's all sorted out and still just as easy to build in Linux or with MinGW. Or right, MSBuild is a joke, imho. I probably haven't seen the real strengths behind the terrifying piles of XML files, but a simple makefile is a lot more flexible and easier to write. A 30 liner for GNU Make could do more complicated file location stuff for a small project than the full MSBuild arsenal.

Time for the last meal of the year that my parents have made and apparently I am not allowed to keep writing this entry, so Happy New Year peepul!

EDIT: I had to cut my post short on New Year's Eve, so here's a small addendum to flesh things out a bit. Back in the land of nonchalance, I gave my guitar a good bashing right after having abused my brother's Fender for a few weeks. One thing for sure, I always have, do and always will hate D'Addario strings, they're like railway tracks. Good thing is they came for free on the guitar, bad thing is I would have preferred something else. Don't much like the 008 Malmsteen set by Dean Markley either to be honest, they feel like stretched out mosquitos. The saddle makes a popping sound when I do bends, even for whole note bends (with D'Addario strings, 1.5 bends are like successfully blowing the whistle on evil mega conglomerates, otherwise awarded for their brilliant and consistent improvement of environmental impact by their processing and manufacturing branches and providing for a better world for everybody, even young children and infants in poor third world countries, to live in), so I will get a TUSQ or similar eventually. I have also been eyeing the GOTOH 510TS-SF1 tremolo to fix the wobbly whammy bar (the Fender tremolo bar spring is supposedly bad for the threads), but these require new large holes for the posts so I'm gonna wait. The neck is peculiar. Perfectly fine, but it feels like a sort of light weight modern plastic wood compared to the heavier wood on my brother's Fender. Feels very airy and almost blown up due to it being pretty thick but still very light. Not sure if it's good or bad, just a neutral observation. I think I prefer it to the heavy Fender neck. The springs pick up on a tone just under C# on the 6th fret on the G string (and the same not on other strings). Pretty powerful feedback, so it seems there is a lot of transfer from the strings which is a good thing. Dunno if it's a good thing that the springs pick it up though. Did the Verheyen B string vibration transfer trick and the guitar body is well "alive".

I played around a lot with the Zoom this weekend and boy are the pikcups fun. Clean, plopping and chiming chords or really heavy, chunky riffing both work very nicely on the Zoom. Of course it doesn't have the "meat" of a tube amp, but for a hobbyist like me, it's more than good enough. And I really like the super fast patch switching in the Zoom, the fastest in the business when the unit came out apparently. Instaswitch.

Eudaimonia Overture, amazing to play, I recommend practising it. There is hardly a single dull piece of guitaring in there. Just a few sections that I need to work out still.

I have become rather accustomed to TDD and class invariances by now and I am almost starting to cheat a little. Sometimes I write the class declaration before the tests, but never the implementation. Porting the GUI widgets currently, I have the old size distribution calculations for the grid widget done, doing the button currently. Decided that pixel perfect rendering in OpenGL is a hopeless project and will go for Duplo style graphics (big fat rectangles for a bumbling artist).

Monday 29 November 2010

November update, with zealots and only a hint of TDD

I noticed a few days ago that I have managed to post an entry almost once per month, and thought maybe it's time to finally commit myself and update my site exactly once per month. So this will be my November 2010 post.

TDD is definitely one of the better things I've picked up for development in the last few years. No smallish graphics demos (like that would ever have happened ;) ), but I am writing tests and new classes for the Outburst game engine and reorganizing classes a bit. The new source code looks really nice. Another friend of mine has another game idea with simpler technology which may bear fruit a little sooner, now developed from scratch with some planning and TDD strapped tight just underneath. No more bloated classes or members, no more super complicated dependency chains or whatever. Oh right, wrapping TestInvariant calls in class templates for auto verification at the entry and exit points of methods, constructors and destructors is pretty useful, just be careful with local objects that mutate the current object.

Waiting for my guitar. It took two days for the guitar to go from the Japanese provider, through customs/export, through the air I guess and to the french customs in Roissy outside Paris. It's been there for one week plus 25 minutes or so as I post this.

I noticed a problem in a particular piece of open source program and thought I'd remedy it. The developers hang out in IRC, so double newbie warning there, since I don't normally hand in patches (I use my own forked version of DWM, customized to how I work on my PC, nobody else will ever have it) and I never use IRC. Like a sheep without any worries in the world, I presented my patch and got some suggestions on improvements and I asked about a few implementation details such that the patch would fit the rest of the project nicely. The discussion went from the ISO C++ standard about primitive types to me being a user of abuse discussion tactics and childish for pointing out that was an offensive thing to say to a guest. Oh yes, I was just wrong too. When I asked how, I was referred to _my_ older posts. It's like saying "You are wrong. See previous sentence." This reminded me of a forum discussion that I tried to start up regarding stuttering in 3D applications on Fedora but not on Ubuntu. These days, the Fedora and NVNews forums are run as companies by angry Windows converts with the brains of suits, meaning if you got a problem, goons who know how to click on "reply" and "post" shove you into the hands of support people. From my part, the discussion was along the lines of "glxgears stutters in Fedora, not in Ubuntu, what does Fedora do that Ubuntu does not?" and I was met with "GLXGEARS IS NOT A BENCHMARK, YOU ARE A CHILD, GET LOST". Mhm, some caps. It took a few days until "reasonable" people showed up and started discussing various ideas without bearing any fruit. At that point, I did not care any more and I'm a happy Slackware user now. The problem is, big Linux distros are what Windows is, i.e. "try this, try that, until it works" "yay it works!" "nay it unworks". Where did "the problem may be this and that _because_ of those and these, so I would _look into_ this or that." Linux people of today actually don't understand what is happening. Plug the CD in, install bloatness and off we go until we need to do the same thing in a year.
I said I was gonna fix that patch. I think I shall not ever go to that channel again to be honest.

The Filco tenkeyless blue keyboard is still holding up nicely. The keys have loosened a little bit and it's so wonderful to type on once you hit a streak of feelgood words. My webcam mic picks up the sound pretty badly though, but if people force me into talking rather than letting me use my wonderful keyboard... payback! ;) Doesn't mean I don't want a HHKB 2 Pro. Stupid price.

EDIT: Leslie Nielsen has passed away. It was not immediately apparent on IMDB, they sport a very pleasant wine red:ish almost camouflaged banner at the top for actors recently passed away. It's Nielsen of all people, they should have painted the banner in flashing neon green.

Friday 29 October 2010

Slow work and intro to TDD

I have been very busy lately, so I have no spectacular news to report. Still no foil device to install in the beam line, so we're slowly preparing the rest of the setup and doing analysis for other experiments. Exactly what my french companion in physics and I came down to CERN for. Ah well, it could be worse, we could have been Ph.D.s at LHC a few years ago.

I still haven't ordered that strat. I haven't even played much guitar at all lately in fact. I will order the guitar in two weeks or so and then I will have to make time for it.

Just before summer I believe, a friend of mine working at Erlang Solutions in London (his blag) tried to convince me to embrace TDD, Test Driven Development. I had heard/read about this before, esp. from extreme programming and Netbeans, but I never invested time in "getting it". After all, most people applied this in functional languages or thereabouts so I never did care much. Two things have changed: I learnt to like C++ and I stopped being a C zealot. I still don't like the long build times, but computers are getting pretty fast these days so who cares. With C++ in a new light and a new set of less cynical eyes, I started looking into safe source code. That's one of the selling points with C++ over C, after all. I started thinking about my friend, because he develops high profile and highly reliable software that _must_ work (the amount of tolerance on software quality at release is terrifying imho) and I started asking questions and looking things up. It took a few tries until I found introductory articles which gave me the right idea. TDD is basically "write tests, then write code". Because TDD is very different to how software is otherwise developed (i.e. "I have to write all this code to reach this goal"), authors tend to complicate their articles immensely. To be fair, this is a recurring problem in anything remotely academic. Anyway, after "getting it", I developed my own rather capable super minimalistic testing framework which consists of one header file and one source file which have everything I need for the moment. Minimal code, minimal problems, maximum understanding and maximum control. I plan to use this to develop a few graphics demos to get in the groove, and then I shall aim towards bigger, better, stronger and faster endeavours. Not really a Daft Punk fan, good stuff nonetheless.

Small side note on how TDD will help me immensely: I always, always, go back and read through old code during development. For example, I have very often been victim to the effect of rotting code (leave some code "untouched" for a good while and bugs somehow creep into your code). I am tired of this paranoia, continuous testing would help me feel much more secure. I am fully aware of that TDD does not catch every potential bug, nothing except possibly a Spider Mastermind can do that. However, TDD implements a granularity of testing which is practically impossible to achieve if you put testing code when your SLOC shoots to hundreds of thousands.

So, the next blog post will probably be a bit about some stupid graphics demo that I wrote using TDD. Do not hold anybody's breath. (EDIT(2011-10-25): So, no, no graphics demo :p )

Wednesday 1 September 2010

Code and work, in staccato

Back from my vacation in Sweden, which I spent mostly on writing a whole lot of code. Tried Bullet physics which was fun, immediately found a few bugs which spawned some ideas for writing my own solution. I shall (and should) post pone those ideas as much as I can. Did a lot of work on the GUI and editor too, I can now load objects, select materials and assign shaders. Will continue working on this a bit so that I can actually put proper objects into the game test code.

Work is a little complicated right now, the plans for experiments in the fall are very diffuse. Will have to discuss some ideas with some people.

Tried my brother's new signature strat, really nice. Will buy an FGN NCST 10M 2TS (maple fretboard and two tone sunburst finish) soon. This of course brings forth my picky buyer side, because transparent finishes show a lot of wood, and then there's the grain pattern in the headstock... Another silly idea is that since FGNs are pretty inexpensive guitars, I could buy a tele at the same time. Teles sound absolutely incredible far down the neck with chords and they are really crisp. But strats are "easier". I will start with a strat.

The Filco keyboard is really something else. I tried a bunch of keyboards at home and I am pretty confident no rubber dome keyboard has a chance against blue Cherry switches. N key rollover is priceless too (I could not sidestep, lean and reload at the same time in Raven Shield, that's just not cool). I have actually found a few of those small Dell server keyboards at CERN. Really nice for rubber domeys, but the blues still win. Want hhkb.

Gotta finish my lunch for tomorrow, potato salad with capers, some pork filet from home on the side and something green. Like red tomatoes.

That was a rather pointless entry, but an entry nonetheless.

Monday 12 July 2010

Laptop and keyboard

This is a blog after all, so I'll go ahead and post about a few thoughts I'd like to share.

One of those things is computer hardware to make life bearable. At Christmas, I bought a new laptop, MSI GT628-482NE I believe. Not a powerhouse, but it's got a T6600, 4GB RAM and a GTS160m, for ~10 000 SEK. That's pretty extraordinary for a completely new laptop in Sweden that can run Crysis at 1680x1050 at maxed settings without "enthusiast" mods. As with all products with good cap/price ratios, it went out of production almost immediately, although MSI still has a few other interesting options (do note that Ati is as Linux compatible as C# with Mono which narrows down my choices quite a bit. EDIT(2011-10-25): MSI is still cranking out really interesting options at very affordable prices, and they're much nimbler than the slightly less expensive ASUS heavyweights). Seemingly muscled people complained that the keyboard was "bendy", I have not had any trouble with that at all (EDIT(2011-10-25): The keyboard is a bit buggy but not very flexible, but the real problem is, as always, the _fricking_ touchpad. I hate it!). Which brings me to the next paragraph.

A proper mechanical keyboard! I have been eyeing and oogling pictures on and articles about them for almost a month and I finally decided to take a bite of the ungodly sour apple and pay up. Outrageously expensive here in the EU (honestly, I would like to use much stronger words, but this is the Internet after all, a forum for political correctness, politeness and respect). Again, probably due to the way too under appreciated good cap/price ratio of any product, most people tend to just look at price and shine and buy a Logitech/Microsoft keyboard. Got a Filco Majestouch Tenkeyless Clicky and a blank key set from keyboardco in the UK. The keys produce a rather high pitched noise when activated. I would describe the sound as "thumping cricking" rather than "clicking" due to the plastic bean jumping about. Pretty hard to avoid bottoming out being a very recent convert, but at least I have not uploaded a video on youtube showing what it's like to hammer mechanical key switches with as much force as a human being could possible generate at the fingertips. Typed on it all weekend and now I'm back at work on a rubber dome HP OEM keyboard for a comparison. And although the rubber dome keyboard is much quieter and more peaceful and I quite enjoyed it for 5 seconds, after a few sentences, I got this feeling of needing to strangle somebody/something. Even though I tried to break in my Filco this weekend and typed quite a lot and sometimes started an empty xterm just to type nonsensical sentences for fun, my fingers were as relaxed as they could ever be. Delightful.

Would like to try a "brown Filco" eventually. However, since the major difference to my current keyboard would be the sound and a meager 5cN activtion force difference, I will probably buy the even more expensive HHKB 2 Pro. An extremely quiet and durable keyboard with very light activation switches according to everybody lucky enough to have laid their hands upon one. BUT, can you imagine what I'd need to pay for one here in the EU?! Blech.

Tuesday 25 May 2010

My blog

Hi all!

I am actually filling in this entry on the 13th of December 2010, I just found this mingling with the draft sections. And, well, why not improve quality of life for those who have nothing better to do than to read about nerds online?

This blog will be updated once a month (there are a few holes early on, but I shall do my best to keep the entries coming!) and will revolve around my interests, such as work (no matter what anybody says, working at CERN is nerdy), my way too ambitious programming escapades, a few things on playing the electric guitar, possibly something about nice food that I have managed cook etc. Very vague material, no in depth tutorials, code examples, tabs for licks, whatever, just diffuse thoughts.

Enjoy.