Wordpress
17 May 2007
Well, I've moved my blog over to Wordpress, and discontinued work on TrapperTim. If I have any readers (probably not!) just go to my Wordpress blog from now on. Basically this site will be to post things that I can't post there, such as trivial source code snippets and my resume.
Erlang II
16 May 2007
I'm still playing with Erlang. I got sick of trying to learn it using the free resources scattered across the Internet and bought the new "beta book" Programming Erlang: Software for a Concurrent World. Right now it is only available in electronic PDF format because it is not quite finished yet. It is scheduled for printing in July. If you are even thinking about programming in Erlang, do yourself a favor, get this book! It has already taught me so much, plus it is written by Joe Armstrong who is pretty much considered to be the father of Erlang.
Erlang
1 May 2007
Wow, I can't believe it's been an entire month since I wrote my last entry! Since that time I have taken a nice little break from everything to spend time with my wonderful wife. I have also taken an interest in Erlang. For whatever reason, I have always like working with servers and have even written server software in the past. (Some of my first Java programs were a web server and an FTP server.) Erlang is a language that was designed from the ground up for mission critical, fault tolerant, highly scalable communications software. It is a functional programming language with built in message passing primitives. Erlang is even capable of replacing code "hot" in a production environment. You can literally upgrade your software while it's running on the server and never take the system down. Now that's some serious potential for uptime. Perhaps the most interesting aspect of Erlang, and functional programming languages in general, is the ability to potentially scale out. Erlang is designed from the beginning to run in a multiprocessor environment and scale accordingly. With all of the recent developments in multi-core processors, this is could come in very handy, and could even see Erlang programs outperforming programs written in other, more conventional languages such as Perl, Python, Java, or even C. Granted, it is possible to take advantage of multiple processors in most programming languages, but Erlang makes it easy. It was designed from the very beginning to scale out to multiple processors and this design goal shows.
XULRunner
1 Apr 2007
I have decided to pack up everything, donate my computer equipment to charity and move to Tibet to become a Shaolin Monk. Nah, not really, but I have been playing with XULRunner for the past couple of days. XULRunner is the engine behind applications like Songbird, Joost, and Democracy Player. Additionally, Firefox 3.0 will be based upon it as well as the next major version of Thunderbird. So far it is pretty fun, and the boilerplate isn't too bad so far in comparison to something like Java, or any of the major cross platform C++ toolkits. Additionally, it provides a clean and highly scalable way of building large pieces of software using platform independent pieces of XML and JavaScript to glue together software components created in C++ or Python. It gets it's name from XUL, the XML-based User-interface Language. Bascially, XUL is HTML for application user interfaces. Firefox itself is written in XUL and JavaScript, so this is a major testament to the power of this platform for software development. I get to use C++ where I need it, but I don't have to use C++ for the areas where it is inconvenient, such as the user interface and high level application logic.
C++
21 Mar 2007
Well, I have decided to go back to the time-tested language that we all love to hate, C++. At least for any development that is bigger than a weekend hack. It just scales up so well, retains portability, and generates easy to distribute binaries. Python has it's place too. One big thing that puts me off of many "alternative" programming languages is lack of tools support and very few libraries. With C and C++, you are practically guaranteed access to an up to date library for any major task. This ultimately does improve programmer productivity greatly. Additionally, there's nothing like the feeling of accomplishment that one gets when they do a full build of a major program from source code.
Bigloo
20 Mar 2007
About a month ago I had a little foray into the wonderful world of Lisp. Ultimately for several reasons I failed to completely fall in love with Common Lisp. This time around I'm going with the other mainstream branch of the Lisp family, Scheme. Scheme is the simpler, gentler member of the Lisp family. One really attractive thing about Scheme is that there are many different implementations of scheme available, many of which are open source, and even some that are capable of generating native statically linked executables. This is a much more attractive option for coding end user software. I have settled on using the Bigloo implementation because it comes with a fairly comprehensive built-in library, excellent third-party support, and the ability to generate native binaries (well C code actually), Java class files (or jar files), or even .NET bytecode. This power and flexibility should come in handy for many projects. On the surface, Bigloo seems to have all the advantages of a Lisp, without all the drawbacks of the open source Common Lisp implementations.
Arch Linux
16 Mar 2007
Sorry it's been quite a while since I last wrote. Since then I have redone my laptop again and this time installed Arch Linux. About a year ago I spent several months using Arch. Coming back to it for good really does feel like going home. It just has this nice, light, and open feel to it which is hard to describe until you've actually given Arch a serious try. Admittedly, it is a pain in the ass to set up initially. This is intentional. Nothing that is truly worth doing is easy. The upshot is, because I've hand configured most of my system, I know (for the most part) what it is doing at any given moment. I understand what it does during the boot process. I know what to tweak to get specific behavior. I have a pretty good understanding of what is inside most of the files in my /etc directory. Arch isn't for the faint of heart or those who don't know how to utilize Google, message boards, and community written documentation such as Wiki sites. Things do break sometimes, and you must make some choices of your own as you set up your computer. This is part of what you pay for the control and power that Arch gives you. Probably my favorite part of Arch is that it is always up to date. The vast majority of the packages on my computer are the latest stable versions. All it takes is a single command (pacman -Syu) to keep myself up to date.
TrapperTim
04 Mar 2007
I've got some pretty big plans for TrapperTim. The first big change will be moving the stylesheet (index.css) into the ttdata/ directory with the other configuration files. This will assist with backups, customization, proper managment of permissions, and the eventual inclusion of an automated upgrade script. That is the next big plan, an automated upgrade script, so that you don't have to restore your ttdata/ directory after every update. After that, I plan to add support for RSS feeds, and the ability to go back to earlier posts that have scrolled off the page. I am hoping to have most of this in place within the next 6 months. That seems to be a pretty reasonable timetable. Throughout all of these upgrades, TrapperTim will still be the same simple, low resource, no nonsense content management system it is today. That was the main reason behind the switch back to PHP. By the way, I migrated this site to the "new" release of TrapperTim-20070302 today. By new I mean, the original TrapperTim with a license change. Baby steps.
PHP
28 Feb 2007
Well, I'm about to go back to the PHP branch of TrapperTim for future development. I find that Python CGI is really a sub-optimal web development environment. Unfortunately, there are no real standards for packaging up a CGI application. You might have to put all your CGI code in a specific cgi-bin directory, you might have to use a specific file extension, such as .cgi or .py. PHP, however, is pretty standard. You simply name your file with a .php file extension and it should just run. On some setups, you may have to make it executable, but that is it. It really doesn't get any easier than that. Additionally, I find that PHP performs a LOT better on the server than Python CGI does. I could use something like mod_python or fast-CGI, but then I'd be limiting the usefulness of TrapperTim in it's original niche. Additionally, I like to preach about using the right tool for the job, and for portable, run almost anywhere, relatively performant web applications, PHP is the tool for the job. I intend to revert this site back to the earlier PHP branch sometime this week.
Kubuntu
27 Feb 2007
Well, after a brief trial of Arch Linux, I have settled on using Kubuntu for now. Arch is a very very nice power user distro, but unfortunately it takes way more time to set up than I want to spend right now. I need a stable distro that I can get productive in almost immediately. So far Kubuntu fits the bill. It also has one of the nicest out of the box KDE configurations I've ever seen. It has definitely converted me from being a Gnome user. I'm comfortable enough on Kubuntu to stay a while I think. It's very close to my ideal distro.
|
My Family
the zoo
- Sara, my wife
- Our cats, Charlie and Marshall
- Our dogs, Cujo, Malakai, and Malibu
My Projects
- TrapperTim - a simple
content management system (CMS) requiring only PHP 4.x (or later) that
is used to power this website
- Awesum2 - Graphical
checksum verifier written in Java that is optimized for large files
My Resume
Hosted By...
|