I’m working on an installation of the new FreeBSD 6.0 release. They promise that the filesystem is more efficient now, which seems like a nice feature. My approach is to use the “dangerously dedicated” (DD) disk mode: why should I mess up FreeBSD with another, mostly-useless, bootable partition gumming up the works? Another nice thing about DD is that one can blow off BIOS limits on disk size. I’m running a 5.4 install on a 320GB disk. The machine that’s in has a BIOS that only recognizes disks up to about 127GB in size. With DD, that’s no problem.
Some people probably ding FreeBSD on the installation process, since it uses a text-mode interface to step through things rather than the graphical interface that many Linux distributions have. However, I’m well-acquainted with the FreeBSD installation process now, having installed my share of releases from 2.15 on. I wouldn’t mind a GUI installer, but I don’t see it as a necessity, either. Once the base install is done and the system reboots, I use ports for just about everything. First up is installing and using sysutils/portsnap, which brings the ports tree up to date. Then the essentials: Emacs (editors/emacs), “Midnight Commander” (misc/mc), Lynx (www/lynx), PHP4 (lang/php4-extensions provides a single configuration to pull all the needed options in), Apache 1.3 (www/apache13), and MySQL 4.1 (databases/mysql41-server). There are plenty more items to be done, but much of what I want FreeBSD for are taken care of with those packages.
Other items I’ve come across recently: the Lazarus Rapid Application Development environment, a cross-platform programming system based on FreePascal that aims to provide much of the functionality of Borland’s Delphi in an open source system. It works fine on my Windows laptop, though I have to admit that the difference in compile times between Delphi and Lazarus does favor Delphi. However, given the Delphi shift in the latest version to the .NET framework, Lazarus is looking appealing as the basis for the sorts of applications I like to write. The Sourceforge Lazarus page does mention FreeBSD as a platform that it runs on, so that is an encouraging sign. So the platforms listed include Windows, MacOS X, Linux, and FreeBSD, which certainly delivers on “cross-platform”. I’m designing a system to handle recognition, characterization, and analysis of acoustic transients for people who work with organisms that produce clicks and click trains. I’m leaning toward going with Lazarus on this for the cross-platform compatibility. I need to do some work with the chart component that is available to make sure that I can do the sort of thing I have done before with Delphi’s TChart, which is to use the axis labelling capabilities but insert my own graphics into the display area.
One thing that I am looking into for psychophysics work concerns optical flow, and a package that is implemented for both Delphi and Lazarus is GLScene, an encapsulation of the OpenGL graphics system. This looks to have a pretty steep learning curve, but the high FPS values that can be achieved with the system make it interesting as a possible way to get to flicker-free graphical displays.
Then there’s serial port communication from Delphi. I have used a non-source code package before because that’s what was available in freeware, but I am happy to report that things have improved. The TurboPower Async Pro package has gone open source, as has the whole TurboPower line of development tools for Delphi. But a simpler system is the TComPort component, which suffices for many of the uses I have for a serial port. Right now, I want to establish control of a function generator with a serial port, and the TComPort component handles that nicely. To handle the data that comes back from the function generator, the TRegExpr Library looks to be just the ticket for using regular expressions in Delphi.
Anyone remember “C-Robots”, the system that allowed you to pit simulated robots against each other, powered by scripts written in a subset C language? Now there’s D-Robots, which uses Delphi instead of C and uses the GLScene system to animate the action. Check out the screenshots on that page…