Category Archives: Programming

Why bother with Frontier again?

I’ve asked myself the question “Why bother with Frontier?” many times in the last month.  I spent some time talking to people on the Frontier Kernel mailing list about getting involved with the project again.  I learned many things, including the fact that I’m not qualified to help in a meaningful way right now.  Sometimes knowing your limits is as important as knowing your strengths.  In my case, I would need to learn 10 years of C coding to catch up to the complicated environment that is the Frontier kernel.

I think instead I’ll spend my time building the software that I want instead of trying to fix the issues with the existing project.  There are many things about the Frontier coding environment that are appealing:

  1. Editing code in an outliner
  2. Scripting applications to automate tasks
  3. Building applications that work on more than one platform

That said, I think that I can build my own software while addressing my shortcomings.  I have the books and the tools to learn C, compile programs and run them under MacOS X and Windows.  I have the motivation to learn and some spare time.

So, why bother with Frontier again?  Why indeed.

Rails Dev Update: AWDwR 2ndEd

The cryptic title doesn’t tell you much but I’d bet you’re interested, eh?

I ordered the second edition of Agile Web Development with Rails today via the magic of the mobile web. The first edition was so good (and Rails development has changed at lightspeed) that I figured the $50 was worth it. I’m still working on my wife’s site but the new book with it’s updated practices and sample code would benefit significantly.

Proper Rails Routing is Very Rewarding

Redirects work easily in Rails. Modify the routes.rb file and the application can process it’s own redirects without messing with the server’s config files. This is handy for situations like my [wife’s business website]( where her old content and URLs need to be preserved while the new stuff is being built.

Example: and look the same because the are exactly the same content generated exactly the same way.

Again, nothing new to a profession web developer, but gratifying nonetheless.

Tonight, time permitting, we’ll do some database work with the “[shop](” page.

Red Bee Designs is on revision 65

It’s only taken 65 revisions to get me to a slightly new [Red Bee Designs]( It’s using a Flickr slideshow instead of an older custom job, mainly because it’s easier and has more features. It lets Tammy add new content faster until the main database comes up–that’s happening this weekend. I also changed Tammy’s photo to be more recent since the last one was two years old.

Two other artists have expressed interest in the core application and site design. I’ll talk to Tammy and see how she wants to license it. I’m thinking of charging per instance and for updates separately. Thoughts?

Radio UserLand Universal Binary Update

I’ve been working on and off on a Universal Binary version of [Radio Userland](http:/ I spent some time last night (late last night) working on the core issue, the code that handles the resources in the kernel. For the first time, I think I have a good idea of what really happens during startup with Radio. The worst part is I’m no closer to fixing the problem. I offered cash payments on the kernel mailing list, but everyone is too busy to make this work right now.

Anyone with some hardcore C experience out there?

A Love Story of Radio UserLand

It’s hard to explain the love a person has for the things they bond with. Parents surely have this frustration; the emotion of love is deeply tied to a child. I tend to bond with living and not-so-living things equally. I think it explains my love for technology and engineering. I romanticize the elegance of a well-design object as to render it art.

That’s how I first felt about [Frontier]( and [Radio Userland](, software that was so tightly integrated within itself that it was it’s own ecosystem. You could build within it, on it, or for someone else and still have the same joy of creation. It’s something I certainly miss.

My old weblog was built using Radio UserLand software and because of that romantic factor, it died because of Radio UserLand. I began spending more time writing code for others and not enough for myself. The whole thing culminated in an unhealthy adoration for the UserLand founder Dave Winer, desperately seeking his approval and instead invoking his wrath.

Try as a I may, I’ve never truly shaken the desire to play in the UserTalk sandbox. There are *many* other programming environments that can do some of the things that Frontier and Radio UserLand can do. I challenge you to find *one* that can do them all–control a local computer, interact with web servers using open standards, store and retrieve information from an internal without a complicated language, present a standard user interface on Windows or Mac without using a web browser or second application. There’s much more, but it’s 10:30PM and I’m tired.

If you’ve read this far, I’m sure you’re wondering what the point is of this Radio UserLand love story. Here’s the money shot: I’m willing to help get things off the ground again. I’m willing to work with everyone without condition or exclusion. I don’t have any preconceived or hidden goals. I just want to work with a group to make Radio UserLand and it’s operating environment modern again. I don’t have the skills to do things on my own, but I think I can help others fill the cracks in the environment.

So, to those I might have wronged in the past: I’m sorry. I’ve learned lessons and I’m ready to get to work.

More on writing a Mac app

A couple of weeks ago, I mentioned that I wanted to write a Mac app in Cocoa and I was soliciting advice. Dwight Shih, my iBook’s original owner (it’s running great!), says that I write something for myself and not for others. I’d have to agree and here’s what I have in mind:

I need an easy app to start with so it’s going to be an adding machine. For the “younger” folks out there, adding machines were like calculators, but the generally did the four big operations: add, subtract, multiply and divide. I’m picking those four to work on because the functions are easy to program in C and the concept leaves plenty of room to grow. Also, with an adding machine interface, I can grow to a custom window type, “tapes” that you tear off and save as documents, preferences for the look and feel and more. The way I see it, this concept will help me focus on Cocoa fundamentals first instead of C functions and object-oriented concepts.