Below you will find pages that utilize the taxonomy term “Programming”
Articles
Building an Automated Build and Release Server for PixInsight
PixInsight 1.6.9 introduced a new automated update system - a system that allows developers to easily deploy updates as soon as they are ready. Automated deployment can bebothamazingly convenient for your users and a complete nightmare for the developer. Without proper automation accidents will happen and user experience will suffer. This post details a method for automating the deployment of your software in an effort to minimize defective releases. The example content is a simple PJSR script, but the described method applies to PCL modules.
Articles
The Transformers Xbox 360 Demo is Live
After almost two years of work the Transformers: War for Cybertron game is finally done and the demo is available for download. I had to rewrite some of the code in our data collection system* because so many people are playing!
So far the reception has been really good. The demo currently has a 4.5 / 5 star rating and the forums seem to be filled with positive comments.
Articles
Transformers: War for Cybertron Announced
I haven’t updated this page in a long time, mainly because I’ve been working on this game night and day. It’s going to be good!
Transformers: War for Cybertron Video Game, Exclusive Debut Trailer HD | Game Trailers & Videos | GameTrailers.com
Articles
Bad Game Developer Conference Scheduling
I used the GDC schedule builder to make a lecture wish list. It’s fairly obvious that I won’t be able to see everything I want. This happens a little every year, but this is ridiculous.
Articles
New Gallery Integration
My Gallery2 embed plugin for MovableType kind of sucked before. It dove right into the SQL database to grab information which makes it brittle if the schema changes. I’ve updated it to use the GalleryEmbed API to grab image blocks. It works a lot better. I also threw in some support for floating thumbnail boxes to make the pages look a little more interesting.
I’ve started uploading some macrophotographs into a new album.
Articles
Performance Optimization
Results of performance optimization study on both PowerPC and CoreDuo machines. 100 runs of the same two functions were done and the best time from each is recorded as changed are made to the code and compiler flags.
The “Sum” test sums 10,000 vectors (c = a + b).
The “Diffuse” test runs a fluid diffusion pass on a 2D array of vectors.
PowerPC (G5 1.8Ghz) Change Sum Diffuse Baseline 28ms 48ms Switch to vFloat type 68ms 116ms 'inline' Vector ctor 69ms 128ms AltiVec Vector functions 27ms 62ms 'inline' AltiVec functions 25ms 58ms 'inline' getNeighborSum() 25ms 38ms Hand tune diffuse with vec_madd n/a 23ms -mtune=G5 24ms 22ms -ffast-math=16 24ms 22ms -falign-loops=16 24ms 22ms
Articles
Finding Duplicate Images in Aperture
While playing around with the Aperture database I decided to try to make something useful. The result is an Automator workflow that looks for duplicate master image names.
Here’s the result. Disclaimer: it’s not pretty and the output goes so TextEdit instead of some fancy Cocoa application or Aperture album. Please give it a try and let me know if anything goes wrong.
Find Aperture Duplicates v0.1
Articles
Backwards is Forwards, my GDC lecture
Noel Llopis and I did a lecture at the Game Developer Conference this year about test driven development. It’s a process we’re using at High Moon and I use at home for all my coding. Gamasutra wrote an article about it, but they’re the ones throwing the conference so it’s not unexpected.
I didn’t realize how much work it takes to put together an hour lecture. In general is was pretty stressful, but worth doing.
Articles
Quartz Composer Screen Saver
I’ve just discovered the Quartz Composer. It’s a graphical tool for rendering things. You can use it to build all sorts of cool stuff. My first project was to build a 3D clock - seriously boring. So I’ve uploaded a screen saver I just finished. I tried to do an optimization pass on it, but it still grinds both my dual G5 and MacBook to a measly 20fps. Regardless, it manages to look good.
Articles
The Aperture Database Structure
I’m working on decoding the Aperture database structure. Just playing around in the database has been very interesting.
Update: this was written with Aperture 1.0 in mind. This is probably completely inaccurate now
These tables are incomplete. However, they do contain the columns that I used in my test queries.
Update: I just found a cool tool called SQLite Database Browser that makes it much easier to look around the db than using the command line sqlite3 tool.
Articles
Darkwatch has shipped!
After more than two years of work it’s finally out the door. I worked as a senior programmer on this one. Please buy one.
News
New site!
I’ve finally finished the major work of converting the site to the MovableType blogging system. After years as ‘astronerd.net’ I’ve decided on a new name as well.
Articles
Unit Testing Perl
While working on a small script at work today it occurred to me that had I been writing it in C++ I would have already had quite a few tests for the logic I had written. In a fit of madness I wrote a small test function in Perl and called it from the start of the script. After working on a couple more tests to verify some subroutines that I wasn’t sure were working properly I realized that I had more test code than script code!
Articles
Avoiding File I/O In Unit Tests
Noel’s article Test-Driven Game Development mentions that unit test suites should run quickly. That usually means as little file I/O as possible. However, sometimes you’re dealing with middleware or legacy code that requires deserialization to construct objects. What do you do?
The Problem Let’s say you have a class that can only be constructed with a stream, something like:
class Mesh { public: Mesh(InStream& stream); }; You would like to construct a Mesh in a test so you can check some functionality.
Articles
Better Photo Handling In MovableType
After getting sick at the XBox developer conference (and dosing up on plenty of dextromethorphan) I decided to move my website content over to MovableType. I had been using a home-brew system but it was nowhere near as feature rich as the MT system. However, I’m really happy with my old photo gallery system and wanted to be able to show photos from the gallery in my MT entries.
It only took me about three hours to adapt my image embedding tags into a MT text formatting plugin.
Articles
VisionScape Gallery
I used to do artwork for Vision Scape Imaging. Here are some work and personal projects from back in the day.
Articles
Anime Lightwave Plugin
When I worked at VSI I created a bunch of custom Lightwave plugins. This is one that was never released, but it was pretty cool.
Articles
Plume Lightwave Plugin
Plume is a volumtric renderer I have been working on for a while on my free time ( which explains the lag ). It is a pixel filter for Lightwave which originated as a stand alone Ray Marching program I wrote. I have ported it to lightwave and what follows are samle renderings. This is just the start of the project and I plan to have some downloadable beta versions soon.