geansai gorm

I spent most of the day reconciling the fork that yesterday’s work created, then started work on the front end.

The original version of WebME uses a home-grown templating system, but Smarty is better than my version and is better maintained, and has more users, so today’s work was about trying to convert WebME to start using Smarty instead of my templating solution.

The biggest work was in trying to abstract away all the code that handles anything to do with templates. While that work is not yet complete, it’s at a point where it will at least display something on the screen now.

As Conor pointed out yesterday, some Pear libraries are required to get this all working. I’ve still to add a verification script to the installer, but for now, those requirements are: mdb2, mdb2_driver_mysql, net_useragent_detect. On a Fedora system, the following RPMs should also be installed: mysql-server pear php glibc-common glibc php-gd php-pear php-pdo php-mysql ImageMagick. The minimum PHP version should be 5.2.3 (for json_encode support and other modern niceties)

So yeah. At the moment, there is a default template in place. This template shows a very simple style.

As of now, webme is an actual working CMS. you can create pages, and those pages will be shown on the front end. Obviously, it is not very polished yet, but that will come over the next few weeks as I bring it closer to completion.

The next article should probably be on how you can create your own templates. As always, you can download the application here. A packaged version will be available soon, once it looks a bit more polished and I’ve cleaned up the admin area to not have areas which are not actually yet available for playing with.

It’s taking me quite a while to release this thing! Mostly it’s because I’m vetting the code as I go and rewriting the bits that I’m not happy with. This causes differences between what is released and what we still have in-house. I’m taking care to try keep the code as compatible as possible.

screen1 - main details

This stage of the release has introduced a major fork. The in-house version of WebME has two different types of user account, admins and front-end users. They’re kept in separate database tables. This happened due to evolution, not design - we had admins longer than we needed front-end users, and when it became necessary to create front-end users, the admins table had become too specialised to be used for that purpose.

So, I’ve ripped out all user/admin code from the new version, and rewritten it as a more maintainable “users and groups” table list. The only difference between a front-end user and an admin now is that an admin is a member of the group “administrators”.

There were further differences, but they’re not as visible as that one.

Anyway - we finally have something visible, but it’s only in the admin area. The front-end is still not visible. All good things come to those who wait, and by the amount of waiting I’m causing, this had better be great when it finally comes!

If you want to see the admin area in action (at least, the Pages section of it), you can download the work in progress here.

the robot so far

I spent today working on my robot (apart from the necessary hours spent trying to extricate the kids’ christmas presents from their fiendish wrapping). I got the grass cutting blade working.

For back story, I’m trying to build a robot which will do various things for me. For example, grass-cutting. I’m not trying to build a replacement for one of those 2000 euro robomower things. Instead, it’s a very small bot which will eventually do quite a few things.

Anyway - one thing I wanted was to have it take great care in what it does, and that means cutting each blade individually, mad as that may seem. It will eventually be able to decide whether a blade should be cut or not, for example I may give it an instruction “cut the marsh grass, but leave the ordinary stuff alone”.

So - today’s task was to build a blade that can grab a single blade and then cut it. I chose to build it as a kind of guillotine, instead of a scissors, which had been my plan before. I may change this at some time, but it works at the moment.

the blade mechanism

The guillotine was built with some wood, Meccano, elastics, and a blade taken from a craft knife. First, a hook was built by hacksawing into a Meccano spar such that it could be used to “catch” a blade of grass when turned just so. The blade was glued to a second Meccano piece and they were both placed in some wood such that a channel allowed the blade to slide forwards and back.

The blade is pulled back by an elastic, and forward by a wire which is controlled by a servo (ultimately controlled by an SD-21). The screw that you see there is for helping to push the blade down, so it doesn’t just wave about but actually slices the grass.

It took a while to get the right angle for the blade to slide along the bottom Meccano “hook” such that it was flush with the hook. If the blade is not flush, then the grass would just bend under the blade, and not get cut (an advantage for the scissors idea…). I ended up having to bend the hook itself, and it’s still not perfect.

After that was all set up, a servo was glued to the board and an electrical wire (*shrug*) tied to the blade. That screw you see on the servo’s turny thing is just so the wire can be pulled a bit further than the diameter of the turny thing.

I don't have a geansai gorm, but if I did, I might sometimes wear it.