Dougal Campbell's geek ramblings

WordPress, web development, and world domination.

Let’s get ready to rumble

Okay, I’ve finally gotten around to working on a new stylesheet. It’s still a work-in-progress, but I’ve at least gotten it to a point that I’m not embarrassed to show it publicly.

Lame St. Pat Theme

Welcome to my lame St. Patrick’s Day theme. I really had intended to make something much nicer, but I’ve just been too busy lately. So you’re stuck with this for now.

Weight Goal

Fell behind my goal again, with only a 0.6 pound loss since last Monday. I was really surprised, because I did a lot of heavy physical work over the weekend. But I guess it couldn’t counter the junk food and meals out at restaurants.

WordPress Updates

I recently worked on fixing up some long-standing bugs in the XML-RPC support in WordPress. Many thanks to Adriaan Tijsseling, author of Ecto for providing me with some key debugging information. Thanks also to Mark Ghosh for letting me remote-control his Mac so that I could try out Ecto for myself while I worked on the code.

The bug fixes should hopefully clear up problems that people were having with other blogging clients, as well.

Back to Basics

Over on Simon’s site, I ran across a link to a 2001 article where Joel Spolsky takes us Back to Basics in an essay about how high-level programming languages can lead us down the path to poor performance.

Today I want to think about CPUs. A little bit of silicon moving bytes around. Pretend you are a beginning programmer. Tear away all that knowledge you’ve built up about programming, software, management, and get back to the lowest level Von Neumann fundamental stuff. Wipe J2EE out of your mind for a moment. Think Bytes.

I also had to agree with this bit near the end:

These are all things that require you to think about bytes, and they affect the big top-level decisions we make in all kinds of architecture and strategy. This is why my view of teaching is that first year CS students need to start at the basics, using C and building their way up from the CPU. I am actually physically disgusted that so many computer science programs think that Java is a good introductory language, because it’s “easy” and you don’t get confused with all that boring string/malloc stuff but you can learn cool OOP stuff which will make your big programs ever so modular. This is a pedagogical disaster waiting to happen.

A couple of years ago, my wife was working towards her master’s, and needed to take some introductory programming classes. When I found out that they were using Java for these classes, I was dumbfounded. Java is a horrible language for teaching beginning-level programming! Even though it resembles C in syntax, it adds additional layers of abstraction (classes, objects) that are going to be hard to understand without a previous grounding in the fundamental elements of computer programming: data structures and algorithms.

I’ve had formal coursework in Pascal, Fortran, COBOL, and 8086 assembly. I’ve taught myself BASIC, C, Perl, 6809 assembly, and a smattering of other languages, some mainstream, others obscure/specialty, some that I’ve used extensively, and others that I’ve just tinkered with. But whether your programming language of choice is procedural, functional, or OOP, software design still boils down to data structures and algorithms. So it’s best to start with a programming language that exposes those concepts in a simple, accessible manner. Joel suggests C, but I think Pascal is a really good choice, too. For one thing, it was designed from the get-go as a teaching language (side-note: There were cross-platform P-code interpreters long before there was a Java Virtual Machine). Once you get the basics under your belt, then you can move on to higher levels of abstraction.

Or in some cases, move on to lower levels, because I wouldn’t suggest assembly language for a beginner, either. 🙂

And as I commented on Joel’s site, this is not to imply that I’m anti-Java. Far from it. Java is a great language for developing applications. It’s just not a great first language for beginning programmers.

Weight Goal

I was running late this morning, and in my rush to get ready for work, I forgot to weigh in. But based on my trend over the past week, I fell short of my goal, only losing about a half pound. I have a lot of catching up to do. 😕

Chili

Today, the Dothan Police Department had a chili cookoff as part of their fundraising efforts for the March of Dimes. All-you-can-eat chili for $3. Mmmm.

My wife is going to hate me tonight. 😉

Weight Goal

I finally got back on track and lost a pound over the last week. I forgot to post last Monday, so I’ll create a retro-active entry for that.

Blog Pingorama

I found some more fodder for my Blog Service Pinger:
I just ran across Neil’s Pinging service rundown, which in turn links to an article about pinging on UtterlyBoring.

There are a couple of ping services mentioned there that I will be adding. Things should get interesting when I create my uber-ping service

On a side note, we’re currently working on enhancements to the WordPress interface for pinging services about your blog posts.

Post Meta

Spent some lunch hours this week working on “post meta” hacks for WordPress. This will allow users to add arbitrary extra fields to their blog posts. Stuff like “current mood”, “now reading”, “listening to”, etc. Some prototype functions have been added to CVS, but the interface for actually adding data to posts hasn’t been done yet. We’re still discussing exactly how we’re going to implement the template functions for the new data. In my test blog, I just made a function that spits the data out as a list of key:value pairs, basically.