Get in touch
Sign up for workshop announcements and updates:
We are here
Rodhus Studios (back entrance)
Author Archives: Chris Holden
…real work is taking over!
That’s not strictly true, but one of the joys of working as a computer programmer is that often there’s quite a large overlap between hobby and work. The last few days, I’ve been getting to grips with Linux and PostgreSQL and PHP. Up until the turn of the year, I’d been Microsoft through-and-through. Not because of some fanboi love-in (ok, maybe a bit – I still think Microsoft wrote some of the best applications in the last twenty years) but because it worked perfectly well for what I needed, both in work and at home.
I’m a total noob with Linux and Postgre – I’ve used PHP and even mySQL but always within a familiar Windows environment (ok, stop shouting at the back, we all know PHP plays nicer with Linux – but it does work on Windows too!)
I had a crash course in setting up a Linux server, thanks to Justin and DigitalOcean.
I was really impressed by DigitalOcean and how easy (and, let’s be honest, cheap) it is to set up a server; $5/month gets you a 20Gb Linux Ubuntu server with 512Mb RAM – not the biggest, baddest server you’re ever likely to see, but at about £3.50 a month, and a working server within 55 seconds, they’re certainly one of the best hosting companies I’ve come across in a long while! (and they take PayPal).
Their tagline is “simple cloud hosting built for developers”.
And they fit that perfectly: creating, reinstalling, flattening and rebuilding a server is done through a web-based control panel, and takes just seconds. Very, very impressive!
So as quickly as Justin was typing his responses through online chat, I had the server up and running. I took me a day or so to fully appreciate the power of “sudo apt-get install” but now I’ve got all the tools installed on my home machine, I’m almost sold on it!
One of the advantages of working with PHP is the massive library of code that already exists, to do a lot of the grunt-work. And one of the things I was keen to try out was the much simplified social media integration that PHP affords (as writing oAuth routines in classic ASP is a real headache!).
I found HybridAuth which is a great set of routines to quickly get you logging in and out of all your favourite social media platforms – such as Google, Facebook, Twitter, Windows Live and Yahoo!
Unfortunately, the power of community-built software is also it’s biggest downfall – and part of the reason why I’m still so distrustful of open-source zealots who insist on using “open” software just for the sake of it. And, sadly, HybridAuth has fallen foul of the “open curse”: While I was able to get Google, Facebook, Twitter, and even Windows Live integrated with a simple php-based website in maybe half an hour (it took that long to create accounts and make API keys and secrets on each one) the Yahoo implementation simply doesn’t work.
And searching around on the ‘net for answers to “hybridauth yahoo error” returns a million and one pages, all from users of the software, asking how to fix it. And zero pages from people who have actually read, understood, and posted a solution to the problem. Such is the way with a lot of open source software.
In theory, it’s great – people add to and improve peer-reviewed software, ensuring it’s integrity, making sure it works properly. In practice, everyone assumes someone else will be responsible for fixing it. After all, we’ve just had the Heartbleed “incident”; a vulnerability in some open-source encryption routines – used by some of the biggest online companies in the world – which every else assumed someone else had validated.
I’m finding a similar problem with my PHP routines.
I love the fact that I can copy-n-paste some code and it just works.
What drives me up the wall is that sometimes it doesn’t.
And if truth be told, I can’t be bothered learning how it all works in order to fix it – because if I did, I probably wouldn’t have migrated to PHP in the first place!
We’ve been busy working on our electronic board game and maybe it’s time we started talking to a few people to see if there’s any interest in taking it beyond our current one-off-prototype stage. So far, all the hardware works perfectly, but we’ve stil… Continue reading
Our new door entry system at BuildBrighton went live on Thursday night. It not only looked great, but worked a treat too.We were happily giving out new keyfobs to all our members, and recording the RFID numbers as they displayed on the screen. Entering… Continue reading
Maybe Steve had a point. He said we should forget about making a CNC pick-n-place and just get some board game sections made up, to prove everything works as it should. Of course, there’s no way we’re going to give up on a CNC – not least until it’s mo… Continue reading
Steve has done a fantastic job of the enclosure for our new door entry system. We’re using one of the ABS enclosures kindly donated by Nathan a few months back. The first thing to sort out was where the LCD display should fit. Given the shape of the en… Continue reading
Our door entry system – rather unusually – uses a mix of PIC and AVR microcontrollers; the AVR acts as a serial/UART-to-ethernet gateway and does little else. Most of the work is done on the PIC, but when it needs to send and receive data to/from the ‘… Continue reading
It was touch and go for a while at the last BuildBrighton meet-up. The ethernet module was proving most disagreeable – sometimes it worked, sometimes not. Sometimes it seemed like the server wasn’t listening, sometimes the response came back almost ins… Continue reading
When Steve found out we were spending time on a CNC rather than just go heads-down and hand-solder some boards for our prototype game, he made a wager – a bet that the CNC chews up more than 20 hours (the time we reckon it’d take to hand-solder a dozen… Continue reading
Next Thursday night is BuildBrighton Open Evening, and we’d promised to have the new door entry system working. In principle, it’s a fairly straight-forward idea, but – as with most software (and hardware) development – most of the effort seems to be g… Continue reading
It was good to spend a few hours this weekend actually making stuff again, rather than just coding and coding and doing yet more coding! So good, that we thought it was time to make a few more board sections for our electronic board game.
In about two hours we managed to get just two pieces made up. Mostly this was down to dabbing the solder paste onto just three or four sets of pads at a time, then hand-soldering each SOT-23 sized hall effect sensor, and each 1206 sized resistor in place.
Hand-soldering SMT components is slow going. And almost an hour per board section is pretty woeful. So it’s time to start seriously thinking about this CNC pick-n-place machine. Steve is going to go beserk.
I went down to BuildBrighton for a few hours this evening, with Grumpy Paul (he doesn’t have a G+ link). Over a few hours, we cobbled together a basic x/y axis, using some 12mm linear bearings and stainless steel rods that have been lying around for ages. We’ve mounted the steppers onto the y-axis carriage – one on each side rather than a single long belt down the middle, as we need to keep the middle clear for placing components. Also, because we’re expecting the head to travel to the edge(s) to pick up components from a tape reel, we couldn’t really use the moving y-axis bed approach we implemented in our CNC drill from about 18 months ago.
We’ve gone for “proper” stepper motors this time, and a 2mm pitch timing belt, and proper CNC pulleys (rather than some cheap plastic mouldings and £2 motors from China!)
Here’s the x-axis carriage being assembled. The steppers are mounted on each end. A belt will run along the outside edges, over the pulleys on the motors that are mounted on the carriage, to a fixed point at each end of the travel – using this sort of arrangement:
As usual, the entire thing is being designed and built on-the-fly.
There’s no real planning gone into the design so far (as Grumpy Paul will testify, having had to take a rasp file to it on more than one occasion). We’re using Arthur’s method of getting everything square – that is, to fix one end, run the carriage up and down the y-axis a few times, then bolt it all down onto a scrap sheet of wood, wherever it rests!
The travel on the y-axis is surprisingly smooth. Maybe it’s because of the added weight of the stepper motors (we expected these to make the travel worse, not better). Maybe it’s because we lightly sanded the rods with some wet-n-dry paper, as the linear rails felt a bit sticky in places. But in all honesty, it’s probably Paul’s idea that made all the difference – a tiny blob of lithium-based grease on the rods makes the carriages glide up and down with hardly any resistance at all.
We didn’t actually get much further than laying everything out tonight (despite nearly five hours, and staying ’til almost midnight). But there’s every chance that we’ll have the CNC moving in at least two axes on Thursday night. That’s if Steve doesn’t put his foot down and ban us from doing any more work on it ’til the board game is finished!
The thing is, at our current rate of construction, we’re going to need about 20 more hours just to make up enough board sections to call it complete. Surely spending a few hours to build the tools to speed up finishing off the board game it time well spent? Isn’t it?