Tuesday, April 5, 2011

Shippable

Jeff Patton has a great agile development blog posting called "Don’t know what I want, but I know how to get it".


I love this item he added.  He also reminds me of the need to Embrace Uncertainty!

Monday, October 4, 2010

October 2010 update on My Life

Busy is the word. This past September has seen me make two trips to Florida where I was helping out my parents. My parents are doing pretty well at the movement. My father seems to be fully recovered from an operation to put a stint in his leg. My mother who was diagnosed with lung cancer will be entering treatment next week at the Moffat Cancer Center in Tampa. I am very hopeful now that all the diagnosis has been completed and she is entering the treatment phase.


At work, the project that I have been working on appears to be on schedule for launch later this month. Thank goodness, it has been a bit of a stress to get it through the final QA while working from Florida helping my family. It is looking good though, I am quite impressed with what we have created.

Then of course there is the book “Battle Gaming: The New American Sport!” I uploaded a copy for proof print to Amazon’s CreateSpace PoD system. It was rejected with several errors that would prevent a proper printing of it. The biggest problem was that the source PDF was in color and I wanted a BW result. In the end I was rescued by the Zan Image Print Driver. This remarkable little tool allowed me to convert the entire book contents form color to B&W and automatically handled all the halftones and it looks great. I was even able to set the correct page size for the black and white with bleed that CreateSpace required. It is a great little tool that I would recommend to anyone with a similar problem.

I am about to try for the proof again, but that is not the end. I am missing about four pictures that I will need to stage when I get back to Colorado. And I say that because the family is on vacation in the D.C. area visiting the in-laws and historic sites. The kids are old enough now to get some education about our government so we will be visiting the Capitol and the White House along with seeing many other sites.

Thursday, June 3, 2010

The Future of High Computation Software

Why I at best I have only used about 20% of my computers compute power?

Here I am running a big build job on my computer. I rarely see it get above 20% CPU usage. So why am I using so little of my computer's potential?

The two main reasons are poor software and slow disks. I could improve the disk, but I want to talk about the future of software on the multicore, hyperthreaded machine.

I use Windows OS and currently when I run a single application (most applications live as a single process) it can only run on one core. This is a limitation of the OS which will need to end soon. It will not be long before the 128 core systems are on the market (within the next 5 years) so I hope Microsoft is working on the problem. I would hate to put down $1000 for a new 128 core processor machine only to find that my application is still running slow. How disappointing it would be to find that it can’t go any faster and is using less than 1% of the computers potential.

Ideally there will be operating system changes to allow a process to run across more than one processor. I am not sure who will be the first to make this happen. Apple is very forward thinking but focuses on the user experience and is not likely to be a leader in this activity. I suspect the Linux community would be the first to cross this boundary. It has all the ingredients to be a great Master’s Thesis for some university student. I suspect that Microsoft will come late to this game. But I think this change to the operating systems is not required to fully leverage the massive parallelism of future hardware by managed runtime environments.

The future: Speed through high level languages and managed runtimes.

In order to use all the parallel capability of computer hardware, software will need to run in a managed environment.

Software which is written in the form of data objects with methods (actions the objects can be told to perform) is written in a pretty natural structure. If my object is a file (object) and I want the size, I call the get-size method (action) upon the object. This makes it easy to understand and manage the software. The software mimics the human world as humans perceive it. Even if it is modeled as real world objects, almost all of the use is to achieve functional results (use cases). It goes through a single path to a single result which we call a use case.

In the past, if you wanted software to run fast, you would get closer to the hardware and write in a more primitive language. Many people are still stuck in the mode that C and C++ are a good compromise for going fast and having reasonably readable code. It is an approach that has proven itself an easy way to translate use cases into speedy results on a single processor with a single core and often a single thread. This is why many applications of today will use only 1% of the power of my future 128-core processor computer.

Currently it is possible to get speed this functional path (use case) to run in a parallel manor with a lot of not intuitive highly specialized software coding. This makes the software very unintuitive to the human view of the world and difficult to manage. This translates to a high cost and is primarily why few companies currently support the technology.

The change is coming soon where managed code runtime environments will bridge the gap. These environments already exist as Microsoft’s .Net CLR and Sun’s Java JVM. Currently these types of environments are still single process and run on one core. I expect these environments to start running as process pools with shared memory connections in order to go around current operating system limitations for one processor core to each process. This will allow threads within the application to run on multiple processes.

The second change that I see coming to the managed code runtime environments is the automatic generation of massively parallel threading to take advantage of all cores and processor chips. The human intuitive model that has been coded by the programmer will automatically be converted to the non-intuitive parallel architecture. (Methods will automatically become asynchronous callables and the variables which are returned will be blocking queues.) The result will be that almost all object actions (methods) will run on a separate thread. These threads will span processor cores. This will turn what appears in code to be simple functional objects into massively parallel computing.

Software architects have been slow to see this coming. I suspect that in about 3 years (when the 32 core processes hit the market) there will be a sudden race to get this type of functionality built into the managed runtime environments of CLR, JVM, Python, and Ruby. Those who have written code in these high level languages will quickly see the advantages. Those who optimized code to run low level and “fast” (on one processor or one thread) will suddenly find themselves obsolete and uncompetitive.

There will be a massive disruption in the software market as current leaders in computational software (much of which has been optimized for the single core architecture using low level languages) will be replaced with forward thinking new players. These new players will be leveraging high level languages to make massively parallel computational software. This disruption will have its greatest impact in the GIS, CAD, simulations, and predictive systems markets.

Wednesday, December 16, 2009

I liked My New LiveJournel Account to My Blogger Account

I found myself making a LiveJournel account to contact other people on LiveJournel. With a little bit of work, I was able to link it to this blog.

Monday, November 16, 2009

Using Google Wave for Gaming

I found this article published on the RetroRolePlayingBlog. Thought it was interesting.



RetroRolePlayingBlog:
Using Google Wave for Gaming: "Google Wave seems to be the new 'must have' thing on the Internet judging by the buzz on sites like Lifehacker. Gamers are already thinking about how to use it in online games. So far, most people I've seen using it for RPGs are using it like a chat room and not taking much planned advantage of its special features.

Will Hindmarch had a interesting article on using Google Wave for gaming on his gameplaywright blog. Although his blog is aimed more at Story Games than pure RPGs, his ideas for using Google Wave in gaming are quite adaptable and very much worth a look: Playing On A Wave.

Friday, November 6, 2009

Dungeons and Dragons: Who will inherit the legacy?

I got an Email from Amazon asking if I wanted to sell any Dungeons and Dragons 3.5 material. I think it highlights the popularity of the d20 system and the failure of the fourth edition. Usually, about now, everyone is dumping their previous version to purchase the new one. The market for 3.5 materials should be flooded with players wanting to upgrade and prices should be depressed. Instead, now that the previous version is out of print, demand is higher than ever. A player’s handbook fetches about $90 new and $60 used. This while the free and remarketed Dungeons and Dragons Online is becoming wildly popular (to the point of server overload) and the entire online system is built on the 3.5 rule set.

Meanwhile, Green Ronin Publishing is pushing hard to replace the D20 system with their True20 system that is built on the 3.5 System Reference Documents that were released by Wizards and published under the Open Gaming License. I have seen their true20 on the shelves of two game stores I have visited in the last month. Clearly they are poised to strike at Wizards weakness and are looking to push True20 in as the real heir to the Dungeons and Dragons gaming legacy. They like to say, “True20 is the latest in generations of adventure roleplaying games that have been around since the 1970s.”

I have two 3.5 player handbooks at my disposal that are shared between two campaign groups. I want players to consider purchasing the books themselves. Should I place a $60-$90 burden on them? I think I could ask them to purchase the True20 players handbook at $30, or at least the PDF version for $9.99.

Hasbro’s downsizing last year saw Wizards of the Coast dump Jonathan Tweet (the main author of the 3.5 handbook). With this behavior you have to wonder what of interest will be coming out of Wizards in the future. Meanwhile a small upstart is attempting to co-opt a legacy.

Thursday, October 22, 2009

Play Testing is Complete for this Year

There will be no Battle Game play testing on October 24th, 2009 in Fort Collins. It has been cancelled because of conflicting activities. This pretty much finishes up this seasons play testing. I do not expect to host any more battle game activities until March 2010.