Archives March 2007

Today I played with Liam most of the day because I don't see him much during the week. He's usually already in bed. I caught up on my Battle Star Galactica Season 3 viewing too. That was indispersed with some Stargate Atlantis. I cooked Kel and I a nice lunch of some Toast, Grilled Tomatos, Bacon and Egg on the barbecue after I cleaned it today.

I got tired of the server noise so I decided, now that it's getting cooler, to cram the second RAID array and brackets back into the case and put the side on. We shall see how it goes. There was a heap of updates that needed a reboot anyway, so the down-time didn't hurt. The thing is just too noisy! That's 11 drives. It's chewing power, 8 of them are 10K RPM SCSI drives so they will by design. After all they aren't meant to be quiet or power friendly. It's only the 2 x 320GB SATA and 200GB IDE drives that even have power saving abilities!

The end of the week! I am so damn tired. I've been doing 8:30AM starts at work and Liam's had a terrible week with his teeth! I'm feeling pretty zombified at the moment.

I've taken over on the OSCommerce job. The source needed separating from the "work in progress". There are lots of full-res product shots and old code snapshots mixed in with the production code. So, in Technogeek style I came to the rescue. Cleaned the source out, documented everything, checked the production code into SubVersion ready for work and documented all the scribblings I could find on the desk and submitted problems with the site. There was a need also to streamline backups, so I wrote a script to do that for me. We will see how it pans out, I may just stick it in a cron job. I also ended up moving my workstation on-site too. The dual-head setup is drawing quite a bit of attention. Something like "This is how the pros do it" comes to mind

We may soon be involved in another SugarCRM project too - this time tieing it to Asterisk which will be bloody awesome to play with!

It looks like I've inherited this OSCommerce project for a computer retailer. It needs a little work on some of the back-end processes like creating products and categories and the such, most of the lower-level work is done though.

Liam has been having terrible nights! He's got 2 more teeth coming through.

Very little programming done today. I worked on the email thing again. For another company I am now working on a supplier pricelist automatic download and update for a CRELoaded web shop. That should be good, I am helping the existing programmer along who is more familiar with the lower level languages and driver-level type stuff. PHP is not really his Forte. Back on the sales floor I go for a few weeks!

Lots of mixed work today! Routing puzzles for travel agens and all sorts! We're trying to work with compulsary software (wingate) which is required for some other Travel Agent software. We want to route around the wingate but keep it in use for the Travel Agent Softwares traffic only.

Lots of graphics work today too. Product shots and thumbnails for them for one of our customers. I'm getting pretty handy with 'The GIMP' (An open source image manipulation program - GNU Image Manipulation Program...)

Once again, vegetated at home. Didn't really feel like doing anything productive - or even anything un-productive like WoW =)

More backup script work today. I wrote in some contingencies for no connection, can't contact the backup server and also if there is no route to the server.

I also worked on a heap of product shots for one of our customers.

Today I visited Josh in his new house! It's an awesome little house with a massive backyard. We managed to cobble together his PC and a small LAN from all his still-packed gear so we could play some CS. It was a great night!

Today I am working on a mass mailer - don't worry, not un-solicited. I wrote the front end today, for the templating part. It allows you to pull up your html email templates and then edit them. This is all done over the internal intranet. So, TinyMCE (A GUI editor for web browsers) to the rescue again!

Once again, we're using AJAX and Javascript to make it feel like a standalone app without too much submit-and-reload type behaviour.

With notes in hand I can now work on the backup script again. Brad gave me a few python pointers too. The class I wrote called BackupSource was not a complete waste! Which is good. I made a few quick modifications to it so that It ran "the other way around" (see yesterdays blog) and it runs nicely. I also modified a number of functions so they ran on the windows platform. I am now using os.popen to do the work. The main modifications was the initial setup, instead of making a list of machines to back up it now determines it's own hostname and then looks in the database to see if there are any entries for it to back up.

Today I built a few POS systems. They are little mini ITX form factor machines. Very cool. They have two hard disks in RAID (which means a little case modding to mount the second - which is good fun). Then you have to play oragami with the two IDE leads to fit them in the case and route them so they don't get severed or anything. I've got building these things down to a fine art now! The reason I was able to build, install an OS, update and patch the OS and configure a couple of necessary tweaks on two machines in a day in parallel with my normal work was because of a small script that I wrote and an internal repository that I built. The script is simple, it downloads the repository config files (.repo) and the keys for the repositories from our webserver that are configured for our internal mirrors. It then copies them to where they are needed, imports the keys (it's FC3 so you have to do it) and then starts a yum update to get all the goodies off Livna, KDE-Redhat and Fedora-Extras repositories for me. It's very quick on a LAN. Blindingly so in comparison to over-the-net updates.

Brad and I worked a little on the backup script together - It turns out I was writing the thing from entirely the wrong perspective! I had little info as to requirements so I guessed a lot of the requirements. I was writing from the perspective of this script running on cron on the backup server and it fetching the files from the source machines - Brad was thinking around the other way - which makes more sense. Multiple machines at once, only one key to share for ssh etc etc. There is a small list now that I have properly considered both ways of doing it. The thing must be decentralised.

Did nothing at all at home. Just vegetated, got a Kebab on the way home =) Yum!

I didn't do much at all today. I played a lot of World of Warcraft mainly. I fixed the vacuume cleaner and started a mod on my Poweredge server. I've decided that I'm going to pull the hot-swap rack out of the bottom of one of the three Poweredge cases I have. It will then go into the main Poweredge server underneath it's existing hot-swap rack. That will mean 12 caddies If only I had a few 4port SATA RAID cards and 12 400 gig hard disks

I also looked at some code and circuits for the weather station platform that I want to build. Solar chargers and Maxim IC 1wire communication is what I need to read up on mainly.

Today I continued setting up the retail office at Adelong. Lots of shuffling around. I was lucky, the desk that was in the office already only just fitted where we wanted it between the wall and a big steel cabinet full of paperwork. The networking is mostly centralised to a switch in this room, as is the PBX and security cameras. It's going to be nasty sorting out the cabling!

The backup script and web interface didn't get much attention today, I mainly worked on it's implementation documentation.

I had an on-site call today at a travel agency - took me hours to sort out the problem with the booking software they use. It turns out that the software only needed to be patched to make it compatible with IE7! It took 10 mins to solve once I got someone on the phone that knew what they were talking about!

Today I wrote the python script to read the database and perform the backups, well call rdiff-backup to do the backups anyway. It reads out all the machine and then all the folders for that machine that it needs to back up. The web interface I wrote yesterday is what creates the records. It will run on cron on the server.

I started work on a rainfall sensor. I figure it's going to be the most interesting. It's going to consist of a tube to collect water from a funnel. It will then internal probes so that I can measure the water level by measuring the capacitance on the probes. This will be done by a PIC reading the frequency that is outputted from a 555 Astable circuit with the timing capacitor being the tube and probes. With a known RA and RB We can calculate the capacitance or for a more simple approch just map the frequencies to the volume of water.

Today I worked on an addon to an intranset web-app we wrote for one of our customers. This new addition will be used to schedule and monitor backups of various computers on the LAN and or at remote sites. I'm learning a lot of AJAX, we are trying to make it feel like software running locally as much as possible - rather than having to repetedly reload the pages as is the case with standard web forms.

I wrote the front end for the backup today - it needs a little tweak but works enough to implement. The front end writes records to the database detailing which machines need backing up and the paths that should be backed up. Tomorrow I will write the python script to hang off cron and actually read what it needs to backup from the database then do it, updating the status and statistics in the database as it goes. I figured it would be helpful to know when a backup fails or takes way too long, so I added start time, complete time and a status flag to the database as well. We can then see immediately what has failed. To be implemented from the "wish list" (ie stuff that isn't neccessary right now) are the reporting features and also size tracking for the backups. Might even add a status monitor type thing on the RAID server to make sure we're not cutting it too close with disk space.

Small tweaks are often the most handy. I made a very small tweak to the Drupal code that added the title in for me as you read it now - so I don't have to look at the date and type it.

I've completed some more renders and completed the schematic and routing of the TX Board MK2 with the DIP switch.

Lots of data entry today! It seems I can't escape entering stock take results! That's OK though, keeps it different - plus I didn't have to stand while doing it like in my previous job. Not to mention that there was only about 1/10th of the amount of stuff to enter.

I also moved around the office a bit to make room for our new photocopier that is imminently arriving.

I collected up all the stuff scored from the recent shop closures too and bagged it ready to take home. Lots of old stuff you just can't buy any more - like 20 and 40 pin DIL to Ribbon connectors for example. I'm sure I'll find a use for them eventually, maybe even in the buggy I want to build. Some other cool mentionable stuff - Lots of old 43XX and 45XX ICs, Some nice 2A circuit breakers that would go nicely in any 240V or power supply projects I might build, a number of bags of 1000 zener diodes in various types - the list goes on

I am still working on the 433MHz <a href="http://www.zagadka.org/?q=taxonomy/term/8">Wireless Sensor</a> project while on the train. I've nearly finished the revised TX board with a 4 way DIP switch as opposed to 4 sets of 2x3 DIL headers.

I added lots more photos today. I am currently adding more as I speak. Even the ones from Dolphines Point in Ulladulla where I decided to see "what my gear can do" when I took it out in a slight drizzle near the sea. It was great. The gear survived - as it should, something with that many rubber seals should be nearly waterproof! Some of the pictures are a tad foggy because of the water on the front element of the lens! It made for some entertainment for me anyway! It still doesn't top Dad's mate standing in the surf with his gear and tripod to get a shot.

Went to the doctor today and got something for the rash on my finger at last. Hopefully it will fix it. At least this doctor knew what he was looking at. Contact Dermatitis. Apparently detergents are a common cause. I reckon it was probably the Easy-Off BAM or somethiong that did it, that stuff is terribly caustic.

Played a good few hours of World of Warcraft. I got my character up to level 42 and was finally able to wear some gear that was crafted for me about 8-10 months ago! I've been trying to sort the cotf.guildhost.info site out and it appears to be running fine now on the new server.

I got myself a belt today finally. My nice belt I bought for my wedding broke in the weirdest place, you'd expect the belt to pull out of the buckle or something but it broke in the middle of the belt where the holes are. Weird. I have a nasty feeling this $10 belt from K-Mart will last longer than my $69 real leather etc etc belt that I had.

A new week. All of the gear we need is out of both the old Tandy and the David Reid stores which should save us some cash later down the track in shop fittings and consumables. I also partially set up an electronics workshop for the guys down stairs at Adelong which is something different. Next week will probably be setting up of office space for Adelong so that they can get cracking with sales and new business plans and stuff. That shop is going to hammer once the place is a little better organised and separated from its electronics tech business.

I am glad Tandy is gone though. Tandy was a pain, the treatment was poor and the pay was crap. But now, I have a job which far out-strips even a good retail job so I don't really give a shit to be honest... The variety is there which is important, but most important I have a boss that respects me and I am in a situation where I actually want to come to work! It's bloody terrific! He get's his mits on all sorts of work from Security Cameras to Websites to LAN installations for offices. If it's connected to a computer or even just electronic, we probably do it. The main focus of the business is POS (Point of Sale) which is still in development but currently running at a number of stores already.

I have decided to design a wireless sensor system in order to learn about micro controllers, wireless communication and environmental sensing.

I am currently basing my design around a master receiver and wireless transmitter modules. The transmitter is able to select an ID for a sensor and "listen" for a readout. Ultimately the system will use trancievers and will communicate using the I2C protocol.

The design of the wireless sensors will be modular consisting of a transmitter board and a sensor board or only the sensor it's self. This will allow it to be used as a foundation for most types of sensors.

The transmitter module will have a 4 data pin input. This can be expanded with the upgrading of the decode/encode chip at each end. I have selected the SM5162/SM5172 pairs to multiplex, encode, decode, and demultiplex the data. The 4 bit limit on sensors can be upgraded by updating the SM5162/72 pairs to their various models up to a maximum of 6 bits. Addressing the modules is done using the addressing pins on the SM5162/72s. They have up to 12 tri-state pins for addressing themselves. As I have selected the "-4" version of the chips I will have 4 data bits and 8 tri-state address pins. This would be reduced to 6 address pins if the data pins were increased to 6 as in the "-6" model. In reverse; when 12 pins are selected for addressing only 1 data pin is available.

These tri-state pins will only be operated in digital however. When the pins are allowed sit in the third state, or "float" the chip consumes more power. This is not what we want for battery powered wireless sensors! The jumpers that set the address will allow a "float" state to be set but this is primarily to stop jumpering from +5V to ground. This will mean a 2x3 DIL header for each addressing pin. The alternative is using a 4 way DIP switch tied to +5V with pull-down resistors to make sure that the address pins do not float. Any extra address pins will be tied to ground.

The transmitter board will be fitted with an IC socket for the SM-5162, a 6 pin molex header for use with the sensor or sensor board, a 2 pin molex header for power from the battery and a four pin SIL female header. This will be used to fit the transmitter module into. The transmitter board will have a built in +5V regulator on board.. Six pins are supplied to the sensor board/sensor they will be 4 data bits, +5V and ground - This will allow a multitude of different designs to be connected to it. The clock speed of the SM5162 will be set using a 2x4 DIL header and a single jumper to select the appropriate resistor.

The receiver board will consist of a pic16f877, an SM5172, a MAX232 level converter, a +5V regulator and their supporting components. The clock speed of the SM5172 will be set using a 2x4 DIL header and a single jumper to select the appropriate resistor. These will match with the transmitters values as per the clock speed table in the data sheet. The receiver board will communicate with the computer via RS232 Serial.

Data is logged on the computer and inserted into a MySQL database along with an address and a date stamp. Data will then be able to be reported or extracted in a number of ways and/or displayed on a website.

Well, I don't know wether anyone will be able to see this today, or even tomorrow. I have switched the DNS over to point to the new server and my re-vamped site therein - which is what you are looking at.