For the last few days I’ve been enjoying–perhaps ‘enjoying’ is the wrong word–revelling in a blast from the past, AppleScript. AppleScript occupies a special place in my heart, because AppleScript is the language that introduced me to programming. It seems I spend all my time programming in C and C++, and learning Swift these days, but alas I find all of those languages lacking when it comes to soft-automation. So it seems AppleScript has risen from the dead and reared its simplistic, yet surprisingly versatile head once again. (Plus, now that I have learned so much C, C++ and Swift, I’ve brought a much more formulaic style to my new AppleScript.) So, the premise. I have been asked to do some topological surveys, and then draw up those surveys using Illustrator. I, however, do not want to spend a hundred years learning Illustrator, nor do I want to spend a hundred years drawing up survey maps. I do, however, have a great interest in automation, and while I cannot currently automate the actual survey itself (although I have some ideas about that), I have managed to automate a good deal of the Illustrator work. And it’s taken me less than a week. . . there’s still a bit to do, mind you, but progress is progress and that’s an end of it! So, the problem. I had assumed that the main problem would be having to learn how to use Adobe’s “Actions”, which is Adobe’s version of OS X Automater as far as I could tell, but I quickly decided that I couldn’t be bothered with that. The little time I did spend looking into them revealed that they weren’t nearly as variable and automatic as I wanted them to be. Having used AppleScript before to control other applications, I was pleased to discover that Adobe programmes have extensive AppleScript support. The next problem was tackling Adobe’s 317 page Adobe-AppleScript documentation. For the sake of argument, let’s assume that I read that document. Moving on. Whilst dicking about in Illustrator, I discover that Illustrator operates on an invisible grid of Points (pts). I also find that the top left of a document is point x=0, y=0. This means that if you move right along the x-axis, the x-coordinate increases, but as you move down along the y-axis, the y-coordiate...

[Part 1] [Part 2] [Part 3] [Part 4] [Part 5 – ALISS] [Download] Just FYI, ALISS v0.7.4 has changed so dramatically that a lot of what follows is no longer representative of how the programme operates. The basic structure is the same, but almost all of the variables have changed, among other things. That said, I have not yet finished testing 0.7.4, so this article will remain here as long as 0.7.3 is still available. I am also working on v0.8, which is a library version of ALISS, meaning you would be able to call aliss.programmeControl, for example. (07/Sep/15) “Begin at the beginning,” the King said, very gravely, “and go on till you come to the end: then stop.” ― Lewis Carroll, Alice in Wonderland. ALISS is the largest and most complicated programme and piece of hardware that I have designed and built. It is just too big and complicated to give it the usual treatment that I give most of my projects here; all in it is 1,377 lines long. In itself, 1,377 isn’t a very big programme. There are many programmes that are much larger than ALISS, but this is the largest and most ambitious project I have undertaken. There are still a few things that need ironing out and shoe-horning in, but for the most part, ALISS is finished. ALISS ALISS stands for Automated Low-power Irrigation & Security System. It does two jobs: Provide labour-saving operations Provide 24hr security operations Previous versions of the Irrigation System provided a base level of labour-saving. There were no additional functions, and the system could not self-hydrate. ALISS makes use of several I2C GPIO Expanders to increase the Arduino Mega’s 54 digital IO Pins to 86, allowing for multiple additional modules to be installed, such as: an LCD Display a Keypad a 2.4GHz Radio PIR Motion Detectors Support for up to 16 solenoid valves a 2G Cellular Phone At its most basic level, ALISS allows the user to select one of ten different pre-defined Irrigation Programmes using the keypad. At its most complicated, ALISS allows the user to select or cancel any one of those programmes by SMS message from anywhere in the world. Cross-Section As I’ve already mentioned, ALISS is quite a complicated project, so I won’t go into a huge amount of detail. Instead, I’ll just give a more general explanation. Irrigation The original intention for...

Back in 2008, I owned a brilliant torch. It was a blue anodised aluminium torch with 19 bright white LEDs set in its face. It was a brilliant torch. I kept it in the car because that is one of the places where a torch is most useful, well, at least for me. But in 2008 it was stolen when my car was broken into – no doubt they used it to break into other people’s cars. It was the only thing that was stolen, but despite the damage...

A quick update on the PiMac G4 project. Today, finally, sees the arrival of the the final parts for the project, in this case it was the 1K resistors. Yesterday, however, saw the arrival of the final piece of a another project of mine, a personal one, that I must complete first. I’ve been doing that project for over a year now, and it is finally in its last stage. Even if it wasn’t in its last stage, that project has to...

I’ve been quiet for a few days, and that is because I’ve been in procurement mode, in fact, I tried to buy 11 broken iMac G4s, but was outbid literally one second after my bid went in. Still, they weren’t the make-or-break of this new project, it just would have been nice to have a lot of spare parts, and the potential to make several more if it all goes well. And it is at this point that I realise that I...

Step 3: Samba & miniDLNA [Introduction] [Step 1] [Step 2] This is the last step in the process of making a cheap media server. We’re going to install and configure Samba and miniDLNA. Samba allows us to see files on the server from any machine on the network, and miniDLNA allows uPnP receiving devices, like the PS3, to easily access all the files on the server without any kind of hack or customisation. First things first,...

Step 2: Mounting Drives [Introduction] [Step 1] Before we install Samba, it is a good idea to make sure that the USB drives you want to plug-in are actually mounting in a useable way. Before we even get that far, though, we first need to make sure that the drives are formatted correctly. Being a Mac user, all my hard drives and USB sticks are formatted in HFS+ (or, Mac OS Extended (Journaled)). This is fine for me, as up until I...

Step 1: Assigning Static IP Address [Read the introduction] I DONE IT!!. . . *ahem*. . . I mean, ‘I have completed my assignment’. It was much easier than I was expecting, that’s not to say that I didn’t have problems (damn you permissions! Will you forever be the bane of my life?!) As it turns out I didn’t need to jailbreak my AppleTV which is useful, as the current version of seas0npass only provides a...

After having taken an unexpectedly long Python . . . sabbatical, I’ve decided to put Python down for a few more days and instead work on an actual Raspberry Pi project. Something relatively simple, as I am still starting out. A media server that will serve stuff from my Humax box, and other media drives, to my AppleTV. You might think “Dan, if the stuff is on your Humax box, why port it wirelessly to an AppleTV when the...