Thursday, May 29, 2008

National Spelling Bee Words

I was looking at the national spelling bee and thought i'd see if there are any national spelling bee wordlists. OMG are these some hard words. The national spelling bee has a pdf of all the spelling words. Many pdfs actually, sorted by frequency. check it out. Best of luck spellers!

Luc Bourdon killed in crash

I was sorry to see that Luc Bourdon, a promising rookie defenseman with the Vancouver Canucks, was killed Thursday when his motorcycle struck a tractor-trailer in a crash near his hometown. He was 21. My sympathies to his family and friends

The Skunk Ape

The Skunk Ape or Florida Skunk Ape or Stink Ape is a hominid cryptid said to inhabit the Southeastern United States, from places such as Oklahoma, North Carolina, and Arkansas, although reports from the Florida Everglades are particularly common. It is named for its appearance and for the unpleasant odor that is said to accompany it. According to the United States National Park Service, the skunk ape exists only as a local myth. Reports of the Skunk ape were particularly common in the 1960s and 1970s. Particular cases of sightings of skunk apes include "Knobby" and the "Fouke Monster". In 2000, two photographs of an ape, said to be the Skunk Ape, were taken anonymously and mailed to the Sarasota Sheriff's Department in Florida. They were accompanied by a letter from a woman claiming to have photographed the creature in the palmettos at the edge of her backyard. The photographer claimed that for three nights the ape had entered her yard to take apples from a bushel basket on her porch. She was convinced it was an escaped orangutan. The police were called to the house continuous times but when they arrived the 'Ape' was gone. The pictures have become known to Bigfoot enthusiasts as the "Myakka skunk ape photos"

Scott McClellan What Happened

I can't wait for the book by former White House press secretary Scott McClellan. I love that the other current White House staffers are coming to the defense of the president while those that are out already seem to be saying "yeah, I believe that".

Karl Rove and his "he should have spoken up" crap. oh my god, please.

Did Sharon Stone go crazy?

Ok, so it's true that her biggest moment on the world's stage was when she showed everyone her cooter in a movie, but seriously, can't we expect more brains out of the old gal? To look at a terrible tragedy and say it was karma, I mean youch. And the irony that she said it on behalf of Tibet, who it seems to me would be the antithesis of the kind of people who would think of something like "karma" as a leverage tool.

haha, leverage tool, meat Sharon Stone's cooter

Tuesday, May 27, 2008

Zombie Strippers!

Tell me that this doesn't look like the best movie idea ever.

Zombie Strippers

Jay Lee
Jay Lee
Release Date:
14 August 2008 (Australia) more view trailer
Comedy | Horror
Live Dead Nudes more

Jenna Jameson ... Kat
Robert Englund ... Ian
Roxy Saint ... Lillith
Joey Medina ... Paco
Shamron Moore ... Jeannie
Penny Drake ... Sox
Jennifer Holland ... Jessy
John Hawkes ... Davis
Jeannette Sousa ... Berengé
Whitney Anderson ... Gaia
Carmit Levité ... Madame Blavatski
Calvin Green ... Cole
Zak Kilberg ... Byrdflough
Catero Colbert ... Maj. Camus
Jen Alex Gonzalez ... Lt. Ryker

Kim Caldwell

Kimberly Ann Caldwell (born February 25, 1982 in Katy, Texas) is an American singer best known for being a contestant on the second season of Fox Network's singing competition television show American Idol and as a talk show host on the TV Guide Network. On American Idol, she was the sixth finalist eliminated and finished in seventh place.

Kim Caldwell first sang publicly at age five at beauty pageants. She was a five-time junior vocalist winner on Star Search, and she also performed at the Grand Ole Opry. In 1995, she sang at the 50th wedding anniversary of former President George H. W. Bush and Barbara Bush. She also appeared on the second and final season of Popstars: USA, where she was rejected from the group and told she would do better as a solo vocalist.

Manchester United defeats Chelsea

In a game in which Manchester United dominated the first half, Chelsea dominated the second half and the extra-time period was fairly even, we should have all realised how the game would end.

Although Chelsea will feel hard done by and will point to Didier Drogba hitting the post and Frank Lampard hitting the underside of the bar, they should realise that Manchester United should have had the game sewn up in the first half. Twice Carlos Tevez was presented with great chances, the first of which was saved by Cech which gave Carrick a great chance on the follow up, but he too was foiled by Cech, and the second time Tevez missed the ball altogether when it looked easier to score.

United will also point to a chance created for Ryan Giggs whereby he was presented with an open goal with which he could celebrate scoring the winning goal in the champions league semi-final in his record breaking Manchester United performance. He mishit the shot and gave John Terry the chance to head clear.

It was a fine game of football between the best two teams in Europe and in the end, I believe justice was done as the best side throughout the entire season emerged triumphant.

It was fate that Cristiano Ronaldo should miss his penalty after such a fine season and likewise that John Terry, the very spirit of Chelsea, would miss his. Ryan Giggs duly scored with ease to put the pressure on Nicolas Anelka who continued his failure in a Chelsea shirt by having his shot saved by an ecstatic Van Der Sar who saved diving away to his right and sending the trophy to Old Trafford for the third time.

Congratulations to Manchester United, you thoroughly deserve the double you have won.

Wednesday, May 14, 2008

Vatican Approves Believing in Aliens

VATICAN CITY - Believing that the universe may contain alien life does not contradict a faith in God, the Vatican's chief astronomer said in an interview published Tuesday. The Rev. Jose Gabriel Funes, the Jesuit director of the Vatican Observatory, was quoted as saying the vastness of the universe means it is possible there could be other forms of life outside Earth, even intelligent ones.

"How can we rule out that life may have developed elsewhere?" Funes said. "Just as we consider earthly creatures as 'a brother,' and 'sister,' why should we not talk about an 'extraterrestrial brother'? It would still be part of creation."

In the interview by the Vatican newspaper L'Osservatore Romano, Funes said that such a notion "doesn't contradict our faith" because aliens would still be God's creatures. Ruling out the existence of aliens would be like "putting limits" on God's creative freedom, he said.

Ok- this is pretty forward thinking for a group that took 400 years to agree that the Earth revolves around the sun.

Tuesday, May 13, 2008

Arlen Specter Must Go

Ok, let me see if I have this all right:

-Our economy is in the toilet.
-We're fighting wars in Iraq and Afghanistan.
-Gas is $4.00 a gallon and oil is $120 a barrel and oil companies are reporting record breaking, staggering, unbefuckinglievable profits.
-We're threatening war with Iran.
-There's also North Korea, with whom we take up issue when the middle east gets dull.
-We're spending $19 billion or so a year to fight a drug war (that's just for the office of the drug czar, it doesn't count the billions that go into other agencies) and a couple of recent studies have shown that drug use is actually up.
-Let's see, there's a major drought in the southeast.
-Myanmar has fallen into the sea and a military junta won't let us help
-China, despite a devastating earthquake, is getting stronger and stronger and will no doubt invade us when they feel they've stolen enough of our technology.

Those are just the major headlines.

And yet....
Former Patriots video assistant Matt Walsh will meet separately with NFL commissioner Roger Goodell and Sen. Arlen Specter on Tuesday to discuss New England's videotaping of opposing coaches' playcalling signals in violation of league rules.

Walsh is scheduled to meet with Goodell at the NFL offices in New York at 7:30 a.m. Afterward, he will travel to Washington to meet with Specter. Specter, the senior Republican on the Senate Judiciary Committee, has been critical of the NFL's handling of the investigation.

Goodell and Specter each plan to hold a news conference after meeting with Walsh.

Here is a US Senator, there are only 100 or so of these guys, and he's taking up time and resources over a possible f*cking football game rules violation almost 8 years ago.

Are you kidding me Senator?

Friday, May 9, 2008

NASCAR Going with Old-time Paint this weekend

NASCAR will be kicking it old school this weekend at Darlington.

Dale Earnhardt going retro this weekend. His No. 88 Hendrick Motorsports Chevrolet will have the green-and-white Mountain Dew paint scheme similar to that used by Darrell Waltrip when he won Cup titles in 1981 and 1982.

Yates Racing digs even further into the history books this weekend. Travis Kvapil's No. 28 will carry sponsorship from the Lafayette Ford dealership and a historic paint scheme, reminiscent of Fast Freddie Lorenzen's cars from the mid '60s.

Lorenzen, the "Golden Boy" of one of NASCAR's best eras, scored 25 wins for the Holman-Moody team, including eight in 16 tries in 1964.

"I guess when you think of throwback race tracks, Darlington is one of those," Kvapil said, "and I think it's going to be neat to have a '60s-looking car at one of the older tracks in the sport."

The Wood Brothers, a team with plenty of heritage in its own right, will join the fun with a 1971 Mercury look for Bill Elliott this weekend. The paint job, with gold numbers on a classic red-and-white body, will certainly bring back thoughts of David Pearson, "The Silver Fox."

The 73-year-old Pearson, a South Carolina native, drove a Mercury just last month with Carl Edwards as the two tested out the new asphalt at the track "Too Tough to Tame."

The tight, egg-shaped oval, which held its first race 58 years ago, is legendary in NASCAR and known as "the Lady in Black" because drivers routinely scrape its walls -- or worse -- as they maneuver around the 1.4-mile circuit.

Tuesday, May 6, 2008

Oil Futures Rise to all time high

Oil futures rose to an all-time high near $121 a barrel Tuesday with new concerns about a threat to supply and a weaker dollar. Light, sweet crude for June delivery rose to a record $120.93 a barrel in electronic trading on the New York Mercantile Exchange on Tuesday. The contract later retreated to $119.88 a barrel, down 9 cents from Monday's close.

The dollar weakened against the euro on Monday, attracting investors to oil and other commodities viewed as hedges against inflation. Also, a falling dollar makes oil less expensive to investors overseas. A series of U.S. Federal Reserve rate cuts starting last year weakened the dollar considerably against foreign currencies, and analysts blame the dollar's protracted decline for oil's sharp rise this spring.

Supply outages or potential threats to supply emerged in Iran and Nigeria over the weekend and from Iraq on Monday; events in all three nations have caused prices to spike many times in recent months.

In Iraq, Kurdish rebels warned they could launch suicide attacks against American interests to punish the U.S. for sharing intelligence with Turkey after Turkey bombed rebel bases in Iraq on Friday. In Nigeria, a Royal Dutch Shell PLC spokesman said attackers hit an oil facility belonging to Shell's joint venture in southern Nigeria and that some oil production has been shut down. And Iran's Supreme Leader Ayatollah Ali Khamenei said his country will not bend to international pressure and give up its nuclear program.

Energy investors grow concerned any time conflict breaks out or is threatened in the oil-rich Middle East. Years of unrest in Nigeria have cut off nearly a quarter of the major U.S. supplier's oil output.

Amid the occasional threats to crude supplies, global demand for oil continues to grow. The Chinese and Indian economies are growing by double digits, boosting global demand for oil.

What is the Difference Between a Hurricane, Cyclone, and Typhoon?

Hurricanes, typhoons and tropical cyclones are different names for the same type of storm. A tropical cyclone is called a hurricane in the North Atlantic Ocean, South Pacific Ocean, or the Northeast Pacific Ocean on the eastern side of the dateline. A typhoon occurs in the Northwest Pacific Ocean west of the dateline. In other parts of the world, these storms are called severe tropical cyclones.

A hurricane, then, is a cyclonic storm with maximum sustained winds over 74 mph (64 knots; 119 kph). Hurricanes are then further classed according to strength by the Saffir-Simpson Scale. There are five strength categories, with a Category 5 storm rating maximum sustained winds over 156 mph (136 knots; 251 kph).

A hurricane generally starts as an organized band of convection, or thunderstorms, called a tropical wave. When conditions are favorable, the wave starts to further organize and strengthen. Convection increases and the wave starts taking on cyclonic characteristics. If strengthening continues, it develops an eye and eyewall and soon becomes a hurricane. Favorable conditions for hurricane development include the system being over very warm water, and in an environment with little wind shear. Wind shear “tears up” a hurricane because it sends winds in the opposite direction, thereby inhibiting the cyclone’s formation.

A cyclone itself is often a generic name for any kind of violent windstorm, and particularly in the Midwestern United States, is the name for a tornado. However, a tornado and a hurricane are two entirely different storms. A tornado is usually the result of a mesocyclone, or severe thunderstorm, over land, although, strangely enough, a landfalling hurricane can spawn tornadoes. A tornado is also a smaller, short-lived storm, while a hurricane covers several hundred square miles or kilometers and may last for several days over water.

The landfalling hurricane quickly loses strength because it is deprived of the heat and moisture from the ocean water keeping it alive. A hurricane that passes over land and goes back into the ocean, however, may regenerate.

Although most people think of a hurricane as being primarily a wind storm, its real damage is usually caused by flooding. This was evident in 2005, when Hurricane Katrina struck the Louisiana and Mississippi Gulf Coasts. The storm had dropped to a Category 3 by landfall, but the storm surge in front of it was driven by the storm when it was a Category 5. The storm surge was well over 20 feet in some areas, and wiped out thousands of homes in its path.

The National Weather Service’s Tropical Prediction Center tracks storms in the North and East Atlantic, and in the Eastern Pacific Oceans. Their Web site provides a wealth of information on the formation, tracking and forecasting hurricanes, as well as U.S. hurricane statistics over the years.

Praying for Myanmar

Myanmar state radio says the cyclone death toll has risen above 22,000.

A news broadcast on government-run radio said Tuesday that 22,464 people have now been confirmed dead and thousands more are missing.

Cyclone Nargis tore through the country's heartland and largest city, Yangon, early Saturday.

Relief efforts have been difficult, in large part because the storm destroyed roads and communications outlets.

The first assistance from overseas arrived Tuesday from neighboring Thailand.

Easy Publication with Issuu

Check out this website I found.
You can easily publish magazines and such in pdf format and the website automatically makes it look like a magazine whose pages you turn. The magazine I'm linking to here called Sexy Second, (yeah, the name is how I found it :-) and is about Second Life fashion or something, but how cool is this whole thing?

Click the magazine cover to go read it. Seriously it's cool.

Monday, May 5, 2008

Open Source ETL (Extraction, Transform, Load) Written in Java

Ever think that XSLT is too inflexible, too heavywieght or just plain too complex to use? If your answer is yes, then here's a review of open source java projects that help you do ETL (i.e. Extract, Transform and Load) in a easy and scalable manner.
  • Octopus - Octopus is a simple Java-based Extraction, Transform, and Loading (ETL) tool. It may connect to any JDBC data sources and perform transformations defined in an XML file. A loadjob-generator is provided to generate Octopus loadjob skeletons from an existing database. Many different types of databases can be mixed (MSSQL, Oracle, DB2, QED, JDBC-ODBC with Excel and Access, MySQL, CSV-files, XML-files,...) Three special JDBC drivers come with Octopus to support JDBC access to CSV-files (CSV-JDBC), MS-SQL (FreeTDS) and XML. Octopus supports Ant and JUnit to create a database / tables and extract/load data during a build or test process.
  • Xineo - Xineo XIL (XML Import Langage) defines an XML language for transforming various record-based data sources into XML documents, and provides a fully functional XIL processing implementation. This implementation has built-in support for relational (via JDBC) and structured text (like CSV) sources, and is extensible thanks to its public API, allowing dynamic integration of new data source implementations. It also provides an abstraction over output format, and the Xineo implementation can generate output documents into stream or as DOM document. Xineo's implementation built-in data sources include : Relational data via JDBC and Structured text via regular expressions.
  • CloverETL - CloverETL Features include internally represents all characters as 16bit, converts from most common character sets (ASCII, UTF-8, ISO-8859-1,ISO-8859-2, etc), works with delimited or fix-length data records, data records (fields) are internally handled as a variable-length data structures, fields can have default values, handles NULL values, cooperates with any database with JDBC driver, transforming of the data is performed by independent components, each running as an independent thread, framework implements so called pipeline-parallelism, metadata describing structure of data files (records) can be read from XML and transformation graphs can be read from XML
  • BabelDoc - BabelDoc is a Java framework for processing documents in linear stages, it tracks documents and can reintroduce documents back into into the pipelines, it is monitorable and configurable through a number of interfaces, it can be run standalone, in server processes or in application servers, it can be reconfigured dynamically by text files and database tables.
  • Joost - Java implementation of the Streaming Transformations for XML (STX) language. Streaming Transformations for XML (STX) is a one-pass transformation language for XML documents. STX is intended as a high-speed, low memory consumption alternative to XSLT. Since it does not require the construction of an in-memory tree, it is suitable for use in resource constrained scenarios.
  • CB2XML - CB2XML (CopyBook to XML) is a COBOL CopyBook to XML converter written in Java and based on the SableCC parser generator. This project includes utilities to convert an XML instance file into its COBOL copybook equivalent string buffer and vice versa. You can find additional information about supporting Jurasic systems here.
  • mec-eagle - JAVA XML XSL B2B integration software:SWING based GUI,an EDI to XML, XML to XML and XML to EDI converter,client-server architecture.All EDI standards are supported:EDIFACT,ANSI X.12,SAP IDOC,XCBL,RosettaNet,Biztalk.Included comm:SMTP,FTP,HTTP(S),PGP/MIME
  • Transmorpher - Transmorpher is an environment for processing generic transformations on XML documents. It aims at complementing XSLT in order to:
    • describe easily simple transformations (removing elements, replacing tag and attribute names, concatenating documents...);
    • allowing regular expression transformations on the content;
    • composing transformations by linking their (multiple) output to input;
    • iterating transformations, sometimes until saturation (closure operation);
    • integrating external transformations.
  • XPipe - XPipe is an approach to manageable, scaleable, robust XML processing based on the assembly line principle, common in many areas of manufacturing. XPipe as being an attempt to take what was great about the original Unix pipe idea and apply it for structured information streams based on XML.
  • DataSift - DataSift is a powerful java data validation and transformation framework, aimed at enterprise software development, which provides developers with an extensible architecture they can fully adapt. Almost every feature in it can be configured and extended in some way.
  • Xephyrus Flume - Flume is a component pipeline engine. It allows you to chain together multiple workers into a pipeline mechanism. The intention of Flume is that each of the workers would provide access to a different type of technology. For example, a pipeline could consist of a Jython script worker followed by a BeanShell script worker followed by an XSLT worker.
  • Smallx - Smallx supports streaming of XML infosets to allow processing of very large documents (500MB-1GB). Processing is specified in an XML syntax that describes an XML pipeline--which is a sequence of components that consume and produce infosets. This allows chaining of XML component standards like XSLT. Also, there is a full component API that allows developers to easily write their own components.
  • Nux - Nux is a toolkit making efficient and powerful XML processing easy. It is geared towards embedded use in high-throughput XML messaging middleware such as large-scale Peer-to-Peer infrastructures, message queues, publish-subscribe and matchmaking systems for Blogs/newsfeeds, text chat, data acquisition and distribution systems, application level routers, firewalls, classifiers, etc. Nux reliably processes whatever data fits into main memory (even, say, 250 MB messages), but it is not an XML database system, and does not attempt to be one. Nux integrates best-of-breed components, containing extensions of the XOM, Saxon and Lucene open-source libraries.
  • KETL - KETL is an extract, transform, and load (ETL) tool designed by Kinetic Networks. KETL includes job scheduling and alerting capabilities. The KETL Server is a Java-based data integration platform consisting of a multi-threaded server that manages various job executors. Jobs are defined using an XML definition language.
  • Kettle - K.E.T.T.L.E (Kettle ETTL Environment) is a meta-data driven ETTL tool. (ETTL: Extraction, Transformation, Transportation & Loading). No code has to be written to perform complex data transformations. Environment means that it is possible to create plugins to do custom transformations or access propriatary data sources. Kettle supports most databases on the market and has native support for slowly chaning dimensions on most platforms. The complete Kettle source code is over 160,000 lines of java code.
  • Netflux - Metadata based tool to allow for easier manipulations. Spring based configuration, BSF based scripting support, pluggable JDBC based data sources and sinks. A server and a GUI are planned.
  • OpenDigger - OpenDigger is a java based compiler for the xETL language. xETL is a language specifically projected to read, manipulate and write data in any format and database. With OpenDigger/XETL you can build Extraction-Transformation-Loading (ETL) programs virtually from and to any database platform.
  • ServingXML - ServingXML is a markup language for expressing XML pipelines, and an extensible Java framework for defining the elements of the language. It defines a vocabulary for expressing flat-XML, XML-flat, flat-flat, and XML-XML transformations in pipelines. ServingXML supports reading content as XML files, flat files, SQL queries or dynamically generated SAX events, transforming it with XSLT stylesheets and custom SAX filters, and writing it as XML, HTML, PDF or mail attachments. ServingXML is suited for converting flat file or database records to XML, with its support for namespaces, variant record types, multi-valued fields, segments and repeating groups, hierarchical grouping of records, and record-by-record validation with XML Schema.
  • Talend - Talend Open Studio is full-featured Data Integration OpenSource solution (ETL). Its graphical user interface, based on Eclipse Rich Client Platform (RCP) includes numerous components for business process modelling, as well as technical implementations of extracting, transformation and mapping of data flows. Data related script and underlying programs are generated in Perl and Java code.
  • Scriptella - Scriptella is an ETL and script execution tool. Its primary focus is simplicity. It doesn't require the user to learn another complex XML-based language to use it, but allows the use of SQL or another scripting language suitable for the data source to perform required transformations.
  • ETL Integrator - ETL (a highly unimaginative name) consists of 3 components. An ETL service engine that is a JBI compliant service engine implementation which can be deployed in a JBI container. An ETL Editor that is a design time netbeans module which allow users to design ETL process in a graphical way. An ETL Project that is a design time netbeans module which allows users to package ETL related artifacts in a jar file which could be deployed onto the ETL service engine.
  • Jitterbit - Jitterbit can act as a powerful ETL tool. Operations are defined, configured, and monitored with a GUI. The GUI can create document definitions, from simple flat file structures to complex hierarchic files structures. Jitterbit includes drag-and-drop mapping tool to transform data between your various system interfaces. Furthermore, one can set schedules, create success and failure events and track the results for your integration operations. Jitterbit supports Web Services, XML Files, HTTP/S, FTP, ODBC, Flat and Hierarchic file structures and file shares.
  • Apatar - Apatar integrates databases, files and applications. Apatar includes a visual job designer for defining mapping, joins, filtering, data validation and schedules. Connectors include MySQL, PostgreSQL, Oracle, MS SQL, Sybase, FTP, HTTP,, SugarCRM, Compiere ERP, Goldmine CRM, XML, flat files, Webdav, Buzzsaw, LDAP, Amazon and Flickr. No coding is required to accomplish even a complex integration. All metadata is stored in XML.
  • Spring Batch - Spring Batch is a lightweight, comprehensive batch framework designed to enable the development of robust batch applications. Spring Batch provides reusable functions that are essential in processing large volumes of records, including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management. It also provides more advance technical services and features that will enable extremely high-volume and high performance batch jobs though optimization and partitioning techniques.

  • JasperETL - JasperETL was developed through a technology partnership with Talend. JasperETL includes Eclipse based user interfaces for process design, transformation mapping, debugging, process viewing. The project includes over 30 connectors like flat files, xml, databases, email, ftp and more. It includes wizards to help configure the processing of complex file formats including positional, delimited, CSV, RegExp, XML, and LDIF formatted data.
  • Pentaho Data Integration - Pentaho Data Integration provides a declarative approach to ETL where you specify what to do rather than how to do it. It includes a transformation library with over 70 mapping objects. In includes data warehousing capability for slowly changing and junk Dimensions. Includes support for multiple data sources including over 25 open source and proprietary database platforms, flat files, Excel documents, and more. The architecture is extensible with a plug-in mehcanism.

Sim City Source Code

the original SimCity source code has been released under the GNU General Public Library (GPL). The code won't have reference to any SimCity name as that has all be renamed to Micropolis. Micropolis was the original working title of the game and since EA requires that the GPL open source version not use the same name as SimCity (to protect their trademark) a little work had to be done to the code.

There's been changes to the original system like a new splash screen, some UI feedback from QA, etc. The plane crash disaster has been removed as a result of 9/11. What is initially released under GPL is the Linux version based on TCL/Tk, adapted for the OLPC (but not yet natively ported to the Sugar user interface and Python), which will also run on any Linux/X11 platform. The OLPC has an officially sanctioned and QA'ed version of SimCity that is actually called SimCity. EA wanted to have the right to approve and QA anything that was shipped with the trademarked name SimCity. But the GPL version will have a different name than SimCity, so people will be allowed to modify and distribute that without having EA QA and approve it. Future versions of SimCity that are included with the OLPC and called SimCity will go through EA for approval, but versions based on the open source Micropolis source code can be distributed anywhere, including the OLPC, under the name Micropolis (or any other name than SimCity).

The "MicropolisCore" project includes the latest Micropolis (SimCity) source code, cleaned up and recast into C++ classes, integrated into Python, using the wonderful SWIG interface generator tool. It also includes a Cairo based TileEngine, and a cellular automata machine CellEngine, which are independent but can be plugged together, so the tile engine can display cellular automata cells as well as SimCity tiles, or any other application's tiles.

The key thing here is to peek inside the mind of the original Maxis programmers when they built it. Remember, this was back in the day when games had to fit inside of 640k so some "creative" programming techniques were employed. SimCity has been long a model used for urban planning and while it's just a game, there are a lot of business rules, ecosystem modeling, social dependencies, and other cool stuff going on in this codebase. It may not be pretty code but it's content sure is interesting to see.

In any case, it's out there for you to grab and have fun with. It was originally written in C and of course is old (created before 1983 which is ancient in Internet time). Don spent a lot of time cleaning the code up (including ANSIfying it, reformatting it, optimizing, and bullet-proofing it) as best he could. Don ported the Mac version of SimCity to SunOS Unix running the NeWS window system about 15 years ago, writing the user interface in PostScript. A year or so later he ported it to various versions of Unix running X-Windows, using the TCL/Tk scripting language and gui toolkit. Several years later when Linux became viable, it was fairly straightforward to port that code to Linux, and then to port that to the OLPC.

There's still a lot of craptastic code in there, but the heart of the software (the simulator) hasn't changed. I know there will be efforts underway to port it to a better platform, replace the age old graphics with new ones, rewrite the graphic routines with modern-day counterparts, etc. The modern challenge for game programming is to deconstruct games like SimCity into reusable components for making other games! The code hopefully serves as a good example of how to use SWIG to integrate C++ classes into Python and Cairo, in a portable cross platform way that works on Linux and Windows.
Don also wrote some example Python code that uses the TileEngine module to make a scrolling zooming view of a live city with the Micropolis module, and a scrolling zooming view of a cellular automata with the CellEngine module. The TileEngine comes with a Python TileWindow base class that implements most of the plumbing, tile display and mouse tracking, so SimCity and the CellEngine can easily subclass and customize to suit their needs. You can pan with the mouse and arrow keys, and zoom in and out by typeing "i" or "o", or "r" to reset the zoom. The TileEngine supports zooming in and out, and has a lazy drawing feature that calls back into Python to render and cache the scaled tiles right before they're needed (so you can implement the tile caching strategy in Python, while the rendering is in efficient C++ code calling hardware accelerated Cairo -- and the Python code could easily render tiles with pretty scaled SVG graphics). The Micropolis engine can load a SimCity save file and run it, and use the TileEngine to draw it, but you can't actually interact with it or edit the map yet, since the user interface and other views haven't been implemented, just a scrolling zooming view of its tiles.

Grab the source code from here and go have some fun!


Penguins and Flyers

The Pittsburgh Penguins knocked off the whiny, whiny Rangers in five games and in overtime yesterday, and will now face the Philadelphia Flyers. The Flyers, last year's worst team, deserve credit for making the Eastern Conference finals, but I suspect that's about as far as they'll get - the Pens are the better team at every position.

It will be an exciting run. Exciting enough that, for the first time, I dug out my copy of NHL '08. Unfortunately, there's no way to set up a "Playoffs" mode and create a Pens/Flyers matchup. P'shaw!

Thursday, May 1, 2008

Deborah Jeane Palfrey

I saw in the news that it is suspected that the alleged DC Madame Deborah Jeane Palfrey killed herself, or at least someone in her mother's shed did something, at this time the news is still stetchy. However, as an avowed conspiracy theorist, I can't help but think that there's no way a woman that strong would commit suicide. She even said "No I'm not planning to commit suicide," Palfrey told The Alex Jones Show on her last appearance, "I'm planning on going into court and defending myself vigorously and exposing the government," she said

Congress is looking into steroids in baseball and the need for a playoff system in college football, meanwhile gas is 4.00 a gallon, the economy is a mess, we're at war with Afghanistan and Iraq, and now this.

How about zipping up your pants and looking into this, gents? Better yet, let's let some of our esteemed congresswomen look into this, as I'll bet a number of the men aren't interested in investigating a suspicious suicide.