I have a backlog of over a dozen articles. I really need to chunk through some of these. If you come around much you’ll notice that I have been posting a bit more. I’ve moved into a new position to run ‘Consulting and Integration’ for NCsoft core technology group. This frees me up to do a lot more thinking and working with various NCsoft teams around the world. Interestingly I don’t think many cross-team problems are super technical. I think the best place to focus when working across groups is in communication. It can be really hard if you have a weird culture baked in around you. Scrum certainly isn’t going to fix anything. I think the real answer is getting face-to-face with people, being kind and respectful and letting your code walk the talk. A lot of executives talk about culture but very few get it right. The companies that do get culture right are the real winners. It may be necessary in some cases to spin off a new company in order to bake a new culture.
Share and Enjoy:
These icons link to social bookmarking sites where readers can share and discover new web pages.
Related posts:
Posted in blogging, work | No Comments »
I’ve been spending time in dmd (via gdc) and libphobos as a research project. While I have enjoyed writing D code I quickly have run into some ugly aspects of D.
DMD source:
* Ambiguous labels with copious use of gotos
* Commented out printfs for tracing support
* Class and struct definitions scattered across multiple files
* Bugs?!
Phobos Runtime:
* Use of a stop the world, mark and sweet garbage collector! Suckage for realtime
* Signals SIGUSR1, SIGUSR2 are used to pause all threads while garbage is collected
* Buggy meta-programming that results in strange segfaults in objectInvariant() and gc methods.
* Unpredictable thread stalls in the simulation
* Non-cache friendly touching of memory during marking and collection
Good GC research
Boehm collector
I’m kinda pissed because I realized I would have to rewrite the runtime and the garbage collector. I bet JY could easily handle that.
Share and Enjoy:
These icons link to social bookmarking sites where readers can share and discover new web pages.
No related posts.
Posted in d | No Comments »
I investigated make, cmake, cook, jam, bjam, ftjam, scons, cons, rake, ant. What I come to find is this wonderful little paper that turns my out-moded ideas about make completely on it’s head. I wrote a wonderful beginnings of a new build system using 300 lines of Make and 100 lines of bourne shell. Shane dubs it ‘Wookie’.

Recursive Make Considered Harmful
Google HTMLized Version
Share and Enjoy:
These icons link to social bookmarking sites where readers can share and discover new web pages.
No related posts.
Posted in programming, build | No Comments »
Mike is uber and Mike recommends: RESTful Web Services.
MMO back-end technology seems stuck in the 90s. Makes me glad I took a hiatus to work at a CMS startup.
Share and Enjoy:
These icons link to social bookmarking sites where readers can share and discover new web pages.
No related posts.
Posted in games, software development, mmo | No Comments »
I love geeking out with musical equipment. Sometimes is hard to drag myself into work as I would much rather be messing around with a new track or learning some new technique. Over the years I have built a small collection of lowfi gear. Lately I have been trying to modernize a bit so that I can actually stuff effectively and continue to put out tracks. Over the years my setup has changed drastically. Right now I run what I consider a pretty minimal setup that is more sample heavy. That’s a whole subject in itself. Here’s some pics of stuff I use around home to make sounds and compose.
I use a Korg Prophecy as a master keyboard and controller and PodXT for recording currently although some day I would like to upgrade the audio in to a RME PCI card. I prefer trackballs for long mixing sessions and I’ve recently gotten a couple of Mackie MR5s for monitoring through a Mackie VLZ12 mixer.

Under the desk I have a small rack that I use when for playing live (hence the rack mounted lighting and patch panel). Usually the mixer stays in the bottom and is all wired up so I can just pull it out and it’s good to go. In this environment I’ve got a Korg ER1 and FutureRetro 777 hooked up with MIDI sync for doing some electro beats.

The MicroMoog is a never ending source of basslines, hooks and sound effects. It sounds amazing through the PodXT.

The cabinet on the rhodes is busted so I just line in into the PodXT. The piano has a very bright sound and is a good source for inspiration.

Over in the corner a couple of standbys. The electric guitar for riffs and chords and the Juno for basslines and analog pads.

Share and Enjoy:
These icons link to social bookmarking sites where readers can share and discover new web pages.
Related posts:
Posted in music | No Comments »
As part of some research I wanted to play the newly free ShadowBane MMO.
I downloaded the client (hint use gamershell.com) and went to setup my account on UBI’s secure billing site.
First the site informs me that I need IE version 5 or 6 or Netscape 7.
Share a laugh and go download the User-Agent Switcher Add-On for Firefox. You will also want to import a good amount of user agent signatures from this link (linked via TechPatterns.com)
Once you are pretending to be MSIE 6 on windows XP you will notice that the form is malfunctioning (intentionally?). To get around this you can use some grease monkey trickery.
First add the GreaseMonkey Add-On to your Firefox install.
Then create a new user script for ‘https://secure.ubi.com/billing/default.aspx’. Here’s the contents of the script. You will need to end the portions below that say YOURUSERNAME and YOURPASSWORD:
f = document.forms[0]
inp = f.appendChild(document.createElement('input'))
inp.name = 'INPUT_TEXT-login'
inp.type = 'text'
inp.value = 'YOURUSERNAME'
inp.size = 32
f.appendChild(inp)
inp = f.appendChild(document.createElement('input'))
inp.name = 'INPUT_TEXT-password'
inp.type = 'text'
inp.size = 32
inp.value = 'YOURPASSWORD'
f.appendChild(inp)
When you go back to the site hit ‘next’ and you will be past the broken login screen.
Share and Enjoy:
These icons link to social bookmarking sites where readers can share and discover new web pages.
No related posts.
Posted in debugging | No Comments »
I’ve spent some time cleaning up some test tracks. Right now I’m just trying to figure out how to use some new techniques.
Sweet and Sour
Smeezle on the Eetar
Simple Life - live practice
Share and Enjoy:
These icons link to social bookmarking sites where readers can share and discover new web pages.
Related posts:
Posted in music | No Comments »
Did a bunch of stuff around the house this weekend including setting up some of my old studio gear. So far it’s just my Korg Prophecy as a MIDI controller through an old MOTU Pocket Express but hopefully there will be more coming online soon. It just feels good to be recording some of my music ideas again so here is one I put together tonight for my Lindsey.
We Feel The Same
This is really rough, I don’t have any good way to mix levels as my monitors are dead. I’m going to research some good studio monitoring headphones and I’ll post my findings.
Share and Enjoy:
These icons link to social bookmarking sites where readers can share and discover new web pages.
No related posts.
Posted in music, studio | 1 Comment »
I was recently reading another multi-core doom and gloom article.. My daughter looks over my shoulder to ask me what I’m reading.
Me: Computers are getting faster
Daughter: Ours?
Me: No, new computers
Daughter: Oh…
The truth of the matter is that we can spend all the time we want worrying about the ‘coming software crisis’ but really the vast majority of computers are not getting any faster. The frustration of the average user is clearly evident when they complain about the speed of their machine and that they just can’t run the current software. What’s amazing is how fast these average computers really are, so fast that it’s hard for us to really get our heads around that speed at the hardware level (can you really visualize a CPU doing 400 MFLOPS at the instruction level?).
As an industry we need to be much more conscious of our design decisions. We should concentrate on listening to our customers rather than relying on the prevailing wisdom of Moore’s Law to help us along. Our customers don’t care about .NET or latest-greatest-programming-language-x or multi-core processors, they just want the programs to be stable, fast and functional.
There’s a humorous story floating around Microsoft that Bill Gates would occasionally show up to ridicule some bloated feature or another saying something along the lines of, “You’re an idiot, I fit a full BASIC implementation into 4K“. Maybe it’s a myth from the early Microsoft days but I always liked that story.
Share and Enjoy:
These icons link to social bookmarking sites where readers can share and discover new web pages.
Related posts:
Posted in history, software development, thoughts | No Comments »
My good friend John Blackman reminded me that my embedded code here was looking pretty bad so I made a few changes to improve the layout by increasing the size and adding wrapping. The wrapping is a bit tricky but the following bit of CSS does the trick for pre tags:
pre code {
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
Found via this bog.
I also took a moment to increase the reading area width by 100px and adjust some margins.
Share and Enjoy:
These icons link to social bookmarking sites where readers can share and discover new web pages.
Related posts:
Posted in blog | No Comments »