What Use are Fractals?
I think they're great to look at, and the fact that they scale almost indefinitely is truly remarkable. But lets be honest, unless you are looking for some new deep mathematical insight then they are just a fascinating diversion.
That said, Fraqtive is one of the fastest not to mention cross platform and open source. Developed by Michał Męciński, it's in the early stages of development but is already producing very colorful images.
You can just download the binaries and view for yourself or download the sources, making sure you have QT 4.3 or higher. You can compile it with gcc (using MinGW ) or Microsoft Visual C++ 2005+. It may not have much uses but the world would be a duller place without fractals and so I've added it to the C++ Games code page.
- Link to C++ Games Code library
Dabbling With Mono/DB2
I installed the latest Ubuntu (9.04) and Webmin on my 64 bit AMD box and started to install the free IBM DB2-Express-C database. The advantage of Ubuntu is that Mono comes installed. There's a slight road bump as I wanted to try ASP.NET MVC but the Mono team accidentally left that out of 2.4. They did an intermediate release of 2.4.2.1 last week to include it. So I'll have to install that as well.
Installing DB2 was a little more problematic (or maybe it was the Flu clogging my brain) as Java wasn't installed by default on Ubuntu. I used the Synaptic software manager to install Sun Java 6 but the DB2 Download Director didn't seem to work with that and I ended up downloading the 440MB (AMD 64 Linux version) by http which takes about 5 times as long. Then my Ubuntu was missing a couple of files. It's not hard to get by but you have to know how to issue Bash commands like sudo apt-get install from a terminal. The db2setup needed libstdc++.so.5 and libaio-dev. You need to do sudo apt-get install db2exc to fetch db2 then these commands to get the missing bits.
sudo apt-get install libstdc++5
sudo apt-get install libaio-dev
sudo ./db2setup
I tracked down the dbstart command (it's in /sqllib/adm under your user directory so on my box its /home/david/sqllib/adm) but got this error: SQL1220N - The database manager shared memory set cannot be allocated. so I guess it's time to RTFM the IBM documents and the Redbook I mentioned before. If you know the answer, add a comment. My Linux box has 2GB of ram and 220 GB disk free so I doubt it's that!
Silverlight 3 Released
Graphic support includes perspective 3D plus you can now manipulate bitmaps at the pixel level. Add to this 100 UI controls that can all be styled on top of a navigation framework that allows linking to content; useful for search engines. Most relevant is the Visual Studio 2008 Tools for Silverlight (If you have Visual Studio 2008) and the Silverlight Toolkit.
I think Silverlight 3 is now on a par with Flash or possibly even better than it technically and once you get over the learning curve is easier to develop for than Flash. That said, I think Microsoft need to produce a free Microsoft Visual Silverlight Express to encourage take up amongst part-time and recreation developers. There are a lot of C# developers who could produce wonderful stuff if there's an easier path. Maybe the next Visual C# Express will have it when Visual Studio 2010 comes out. If not, I think Microsoft will struggle to beat Flash in the games market.
Microsoft .NET Micro network
This appears to work with Visual C# 2008 Express. I say appears because although I downloaded it, it wouldn't install as I don't have SP 1 for Visual C# 2008 Express. To be honest, my installs are in a state of flux as I have the Silverlight 3 Beta tools, SP 1 For Visual Studio 2008 etc. I need an hour or two to fix everything! I can't even install Silverlight 3 until the beta tools are removed!
I think sometimes it would be nice if all the development tools stayed stable and static for 2-3 years with no new versions of software but that's not the real world with competition and commercial pressure etc. I can dream!
Open Source Bug-Tracking Software
There's a lot of bug-tracking software about, much of it web based using scripting languages such as php. However there are a couple of ASP.NET implementations that I know of plus the C based Fossil and the C++ Webissues. If you know of any other's (just the C, C++, C# and ASP.NET ones) that aren't listed on the new open source bug-tracking page, do let me know! Emails to cplus.guide@about.com.
Microsoft and Mono Now Playing Nicely
It shows it in that the open source community at Microsoft have their own blog. In an entry posted yesterday, it was announced by the Microsoft community manager Peter Galli that Microsoft will be applying the Community Promise to the ECMA 334 (C#) and ECMA 335 (Common Language Infrastructure) specs.
What this means is that Microsoft will not sue you or your customers if you implement C# or the CLI or use Mono. The Community Promise legally binds Microsoft not to assert its patents against people who implement certain Microsoft standards and technologies. Though you should pay attention to the word certain. It doesn't cover certain proprietary Microsoft technologies such as Winforms, ADO.NET and ASP.NET. The founder of Mono, Miguel de Icaza said that Mono will be splitting into two source code downloads. ECMA stuff (C#, CLI) and the rest in the not too distant future.
Selling a Service Not a Product
But when you run software to provide a service; think of Facebook applications for example, there's nothing to pirate. That's not a great example as applications are generally free on Facebook. The Internet has made this possible but I'm not keen on purely web applications, even if they use a whizzy interface in Flash or Silverlight. I was without Internet access tonight until 20 minutes ago; it's most frustrating!
So I think that if applications are tailored to work locally but use a server for perhaps saving, or interaction with other users, you get away from it being a pure application that can be pirated. The hard bit is splitting the functionality between server and client so it can run off-line locally but not be easily pirated.
If you need Help
For your applications, you can go for a professional help system or roll your own. One example of the latter and made available for free or open source (license is unspecified) is Quhelp by developer Kostas Michalopoulos. Written in C, it parses html content files and merges them with a template.
There's an example of typical output using a tree directory which looks pretty good and that's also included with the source code. It's Linux compiled I think so you'll need Cygwin/Ming to build and run it on Windows unless someone cares to port it?
- Link to C Code Library
Atari 7800 Console Games Source Code
As it's July 4th here's something slightly off-topic. Back in the early 1980s, Atari ruled the roost in video games. They'd started in 1972 and Pong was the first creation followed the by the Atari VCS console (aka 2600). For a while Atari was the fastest growing company in the US but in 1983 the whole video game market crashed and Atari's consumer division was sold to Jack Tramiel, He was the founder of a typewriter import and repair company Commodore Business Machines that went into calculators and home computers. They were the company that
produced the CBM-Vic, 64. He left them in 1984 and bought Atari.
Before the ST Atari had a couple of home computers the Atari 400 and 800. I did a game conversion on an 800 but that's another story. Just after the Atari ST was launched Atari launched the 7800 console. It was basically a souped up Atari VCS with a better 6502 CPU and a different graphic architecture. it suffered from a variety of problems, mainly lack of games and by 1992 it was dead.
Thanks to someone dumpster diving, commented source code was located and the Atari Museum website has made these available. games include Ms Pacman, Dig Dug, Joust and nearly a dozen more. Of course to run these you need an emulator. This site has some and there's also MESS listed in the C games code library.
- Link to C Games Code Library
Developing Peer to Peer Applications in C++
Developing P2P applications to work with firewalls, NAT and proxies is somewhat challenging. Google think so too and that is why they've produced LibJingle which is open-source C++ code with sample applications for building a peer-to-peer applications. It handles creating network connections (through NAT and firewall devices, relay servers, and proxies), negotiating session details (codecs, formats, etc.), and exchanging data. Plus additional tasks such as parsing XML, and handling network proxies. It's licensed under a BSD type license so free for commercial or non-commercial and uses the Jabber (i.e XMPP protocol) for exchanging data.
- Link to C++ Code Library

