Just about all the electronics components I use in my projects are manufactured in Shenzhen, China. The logistics of getting them from China to Australia at a decent price is surprisingly tricky. If you are on a budget, you need to research and order two to three weeks in advance. But if you are willing to pay more, you can get most things in under a week. Although expect shipping and handling to cost more than the actual component. It has made me a little jealous of the Shenzhen electronics markets, those places look amazing. Being able to stroll down the street and get any component you need same day or next day at wholesale prices? Yes please.
The following is a summary of online vendors, and how long it takes to get packages shipped from them.
I love eBay for buying most of the parts I use in my projects. I can get just about anything direct from China with free shipping. The biggest downside is shipping time. You are looking at a solid 15-20 business days to get things delivered. This makes eBay perfect for consumables, heat shrink, hot glue, solder and that sort of thing. Even for building up a supply of components you use all the time like resistors, LEDs, heatsinks and ic chips. The sorts of things you can order when you are getting low, and have them arrive before it runs out. It is still a good resource of project specific stuff like motors and actuators, but you need to plan a month in advance.
I found my favourite stepper motor manufacturer through eBay. Wantai. They are the best. There is something futuristic about being able to talk to a Chinese factory, and having them create a custom order on eBay. Then build your motors to order and have them arrive at your house a month later. All without leaving my living room. I imagine this is just a tiny taste of what it must be like to visit those Shenzhen markets.
eBay is often the cheapest, but with the slowest shipping times. Sometimes you luck out and find a cheap part shipped from Australia. Those days are awesome. It is like winning the shipping lottery.
Seeed studios is cool. My friend Michael Candy got me on to them. Seeed is great for microcontrollers, they make some awesome Arduino derivatives. They also stock some great sensors and other base components. You pay a little more for the base components than what you would on Ebay. But if you bundle things up with a larger order of microcontrollers, it often works out alright with faster shipping times. I can get things delivered in 10-14 days via EMS, which is not too expensive and comes with tracking. Seeed often have some good sales with discounts of up to 20%.
Seeed is almost just as cheap as Ebay, but also stock some speciality items you can’t get anywhere else. Medium shipping times via EMS.
Power Supplies Australia.
Power Supplies Australia are awesome. They have a huge stock of Meanwell LED drivers and power supplies, plus a flat rate for shipping that can make it to me in two business days. Best Cinco used Meanwell gear on the Golden Orbs project, and Grant Trebbin has a cool Meanwell review. Highly recommended.
If I lived in Mainland US, I would use Amazon a lot. The prices are pretty close to what you would find on Ebay and Seeed, but shipping costs to Australia are brutal. You are looking at 10-15 days to get something shipped from Amazon via the cheapest option. I use Amazon for small things that are cheap to post. I often get microSD cards from them.
Aus3D are new, they are another vendor I found through eBay. They stock and sell a great collection of Arduino, Adafruit and Reprap gear. They are a local seller so shipping is fast, about five days for me in Far North Queensland. They are also reasonably priced.
Element14 stock a lot of different components, and the shipping is fast. They are a great source for Raspberry Pi’s and high quality components. The only catch is shipping and handling on the smaller stuff is expensive. It works out alright if you are buying larger volumes, but not on small batches for prototypes. Probably the closest thing in Australia to living near a Shenzhen market, just don’t expect Chinese prices.
Some people prefer pictures, so here is the above in complicated chart form:
Wow. What a schmozzle. Well not completely, but this month has been tricky.
The hardest part of each monthly project is wrestling logistics. Getting components shipped to Cairns on time has been the biggest bottleneck. I had a bad experience with a local distributor this month and it put a solid week delay into the pipeline. This had some disastrous knock on effects, and I’m still waiting on a few components to get shipped in. It looks like that original week delay has blown out to two. It won’t be till the middle of May before I even have all the components to finish this months project. In many ways a monastic engineering experience would be vastly easier in Shenzhen, China. Need some electronic component? Just skip on down to the giant market and pick up what you need.
I still managed to complete the first half of the project. A planted aquarium featuring a 3D printed filter. Anna Gerber inspired me into my first tilt at symbiotic aquaponics in years. It is the healthiest ecosystem I have managed to create (all my earlier aquaponics systems failed quickly). Fish and plants are doing well this time around. But the microcontroller powered pizzazz? Soon.
One luxury of the monastic engineering experience is having the mental headspace to organise my life. For the first time in over a decade I’m starting to feel on top of things. I know where things are! Anyway while waiting on shipping I delved off into a little side project. A notebook that brings together twenty years of old scribbles. It has four main sections:
- Doodles of a bored mind.
- Bad Graphic Design.
- Unfinished game ideas.
- Crazy concepts.
Writing went well this month. I got some really cool feedback, this helped formalise some vague concepts I have been kicking around my head. This month the articles covered:
I was so pumped for this month I picked a tricky book. One that would usually take me a long time to read. Only about a quarter of the way through and it keeps putting me to sleep. May. That is the month I finish that book.
When I started out on the monastic engineering exerience I never thought that I would have a month where exercise would be the stand out activity.
I really look forward to my runs. Running three times a week, and now aim for one ‘long run’ a week. 67.2km. Trying to take a photo each run.
The Arduino Yún is my favourite microcontroller. It comes with two processors, an ATmega32u4 (like what you find on many Arduino boards) and an Atheros AR9331. The Atheros runs a lightweight version of linux, and is often found in wifi routers and NAS devices. This networking history means the Yún can handle most wired or wireless network configurations you throw at it.
The Yún overcomes all the crippling limitations of the Arduino Ethernet. It works with HTTPS connections and packs seven PWM pins.
With all the recent hullabaloo over royalties, I have no idea what is ‘officially’ Arduino anymore. Nor do I have a clue about which open source developers need supporting. It makes my wallet a little happier though, as I don’t feel guilty buying cheaper Arduino derivatives. I didn’t even blink when I picked up the Seeeduino Cloud for a solid $23 USD cheaper than the ‘official*’ Arduino Yún.
So how does the Seeedunio Cloud stack up against the original Arduino Yún?
Well the Seeeduino Cloud is a derivative of the Yún and 100% compatible. But calling it a ‘clone’ would be completely unfair. At the hardware level, Seeed have made considerable improvements over the Arduino Yún.
Most obviously, Seeed didn’t skimp on accessories. They ship the cloud with an external wifi antenna, a small rectangular PCB with sticky adhesive backing. The adhesive makes it easy to attach the external antenna to the side of your project or enclosures. While the Yún only has a socket for an external antenna, and the antenna itself is purchased separately.
Next Seeed have done an amazing job at making the Seeeduino Cloud impossibly thin. Yes. The Cloud is the Macbook Air of Yún boards. Look at this puppy from the side and you will notice that Seeed have cleverly inset the ethernet connector into the PCB. Plus they got the USB host to sit flat on the board. Well they wedged it into the PCB as well, while the original Yún leaves the USB host clumsily on its side. These major improvements make the Seeeduino’s pin headers the tallest component on the board.
Seeed also included a couple of Grove connectors, making it compatible with their Grove modules. This whole system is designed to make it easier to prototype without soldering. They are not my thing. I enjoy soldering, and find wonking out little protoboards a relaxing exercise. So it is pretty cool that Seeed are able to support both people like me, and those who want a bit more plug and play in their hardware hacking.
On the software side of the fence lurks my only minor quibble. Seeed haven’t managed to make such a spectacular improvement here. The software they are running on the Atheros is just a rebadged version of what you find on the Arduino Yún. It is easy to spot. Because. Ummm. The user interface still references the ‘Yún’ in a couple of places.
Minor quibble aside. Move over Yún. I think the Seeeduino Cloud is my new favourite microcontroller.
I give the Seeeduino Cloud 4.5 stars out of 5.
* Is there even such a thing as an official Arduino board anymore?
Dear Van Neistat,
So I have been trying to write these little fan letters. I use them as a way of researching and understanding those who influence me. But your fan letter. This. Has just about broken me. I have thrown away countless different versions.
Somewhere in the last few years you became a digital ghost. Vanished into the real world and became a recluse from the Internet. I hope you are well and still prolifically making stuff and filming things. I hope you just chose the opposite path to your brother. That man is EVERYWHERE. Search for Van Neistat, and wait what? NO. I want a different Neistat brother. Why have you done me wrong Google?
But you know what is cool? Mr T. SACHS references you as an influence in his self portrait ‘The Sachs Family Crest’. You know what else is cool? Your films made Tom’s work accessible and understandable to me. Someone who has no idea about art. A Love Letter to Plywood is currently my favourite documentary of ALL TIME. The title and content have inspired the format of these letters.
Your Ten Bullets collaboration provoked me into a serious attempt at understanding art. A first for me. It is fascinating and therapeutic. By understanding the processes and ethos behind Tom’s work, it brought me back to yours. Tom’s work allowed me to better appreciate your film making. Combining more traditional film influences with that of Tom Sachs has created your own dapper style. Bricolage and leaving the scars of your labor behind? They bring a beautiful analogue wobble to the hard clean computer generated edges of modern film. As a software engineer, this has challenged how I think about and ritualise my work.
I think this little clip here best shows both your bricolage and scars.
A little hand written scrolling title sequence. A slight tease on what is about to go down on the side of the shot. The title wording hint at what is about to happen. The title concludes and flap around the drill bit to reveal ‘the scars’. A mirror outlining the creation of the shot. Showing off the drill bricolage in full glory.
Your work helped me form an appreciation in the power of showing the scars of labor. Despite disappearing from the Internet, the marks of your labor live on. When your brother films with the overhead shooting rig on the raw plywood background? Bam. There you are. The scars from the Neistat Brothers phase of your career is all on show. This overhead shooting rig has become one of my favourite film ‘characters’. The etched history has a story of its own:
I really want to see A Space Program and the Neistat Brothers. Hopefully they will be shown in Australia one day. Keep creating!
2015/04/17 - EDIT: Minor typo. N EI stat.
On OSX, a docker stack is a bit like an onion. There are a couple of layers between you and your docker container. Boot2Docker is a great little utility that installs all the different layers for us. As a quick overview, from the outside in we have:
- Your mac. It doesn’t have the necessary goodies to run a Docker host natively.
- Boot2Docker installs VirtualBox, this hosts a virtual machine that can run the Docker host.
- The boot2docker-vm, A Lightweight virtual machine designed specifically to run Docker containers.
- Your docker container. A self-contained environment to run your application.
For Android development we need to be able to get applications from our docker containers into phones and tables. Extra configuration is needed for docker containers to access USB devices.
By default, VirtualBox doesn’t come with USB devices support. The VirtualBox extension pack adds USB support, letting you connect an Android to VirtualBox:
- Download the extension pack.
- Open up the VirtualBox GUI.
- Select ‘VirtualBox -> Preferences’ from the menu.
- Select the ‘Extensions’ icon.
- Press the funny lookin’ ‘yellow square superimposed on the blue box’ button.
- Browse to your downloaded extension pack, and press open.
Next we need to give the boot2docker-vm access to our Android device:
- Plug your Android into an available USB slot.
- Make sure the boot2docker-vm is ‘Powered Off’.
- Right click on the boot2docker-vm and select ‘Settings…’
- Select the ‘Ports’ icon.
- Select the ‘USB’ tab.
- Make sure both ‘Enable USB Controller’ and ‘Enable USB 2.0 (EHCI) Controller’ is checked.
- Press the ‘green plus superimposed on blue USB plug’ button.
- Select the Android device from the list. For me this was ‘Sony D2005’.
- Hit OK.
Copy this Dockerfile into your Android project. When you build the image, this will install all the Android prerequisites and the SDK. Set all your environment variables and update the SDK with some tooling. Finally it will copy your Android application from OSX into the docker image and compile it.
From the root of your Android project, the image is built with:
$ docker build -t your-android-project .
Now to ‘spin up a container’ on your Android. Well kind of. Docker won’t run a container on the Android. The docker container just uploads your application:
$ docker run --privileged -v /dev/bus/usb:/dev/bus/usb -i -t your-android-project adb install -r bin/your-android-project-debug.apk
The –privileged and -v /dev/bus/usb:/dev/bus/usb are the important options that allow your docker container to access USB devices ‘attached’ to the boot2docker virtual machine.
Ugh. I hate bookmarks. They suck. They are painful to search, messy and I happened to have them scattered across multiple backup files.
Original reference material* is a curated home for little ideas, tips and tricks that are yet to make it into my long-term memory. I guess they are a cross between ‘gists’ and bookmarks. Little snippets or ideas that are not formed enough to warrant a whole blog post.
- The Amazing Staircase – A neat combination of bookshelf and staircase combined in a small space.
- BecauseWeCan – Awesome Oakland based, design-build architecture studio. Won our squirrel Coffee Table from them.
- ColourLovers – Collections of colours, palettes and patterns.
- DesignBoom – Archictecture, Design, Art and Technology blog.
- Design Milk – Architecture, Art and Interiors blog.
- Dezeen – Architecture, Interiors, Design and Technology.
- EcoGeek – A blog about new technology designed for the environment.
- How Products are made – Seven volumes on how different products are made. Products like materials (Acrylic Plastic), right through to complicated stuff like Jukeboxes.
- Interior Design (reddit) – The Interior design subreddit.
- Open Source Ecology – Open hardware designs for everything you need to kickstart civilisation.
- Panic Status Board – A custom status board built by panic software.
- Subtle Patterns – A collection of subtle patterns that can be used to add texture to websites / designs.
- Virtual Crash Course in Design thinking – A ‘MOOC’ from Stanfords ‘d.school’ on design thinking.
Check DNS records in OSX:
How to free space in docker:
# Deletes all containers.
$docker rm $(docker ps -a -q)
# Deletes all images.
docker rmi $(docker images -q)
- Narrow Coffee Table – A narrow coffee table / low set hallway table, with two drawers and a shelf.
- Walnut Bench – A modern bench with a nice butterfly in a split.
- Ethan Zonca – Developed PicoBuck LED driver under the banner ‘protofusion’. Also made a kick arse walnut Vacuum value amplifier.
Create a git repository with group read/write permissions
Configure your server.
$ ssh myserver.com
Welcome to myserver.com!
$ mkdir /var/git/myapp.git
$ chgrp grpName /var/git/myapp.git
$ chmod 775 /var/git/myapp.git
$ chmod g+s /var/git/myapp.git
$ cd /var/git/myapp.git
$ git --bare init --shared=group
Initialized empty Git repository in /var/git/myapp.git
Add the remote repository to your existing local git repo and push
$ cd ~/Sites/myapp
$ git remote add origin ssh://myserver.com/var/git/myapp.git
$ git push origin master
- $0 – Selected element that is currently inspected.
- d3 scales – Details on how scales work in d3.js.
- debugger; – Can kick start the debugger from the console.
- Gulp – Automate front-end workflows.
- Gulp + Browserify: The Everything Post – FAQ for getting started with gulp and browserify on the front end.
- “use strict” – Turns all warnings into errors.
Linux / Operations:
Move a running process to Background
$<ctrl> + z (stop program)
$bg (run program in background)
$disown -h (make sure the progress isn't killed when terminal closes)
Backing up and restoring databases:
$pg_dump -Fc --no-acl --no-owner -h localhost -U postgres <DB-name> > backup-file.dump
$pg_restore --verbose --clean --no-acl --no-owner -h localhost -p 5432 -U postgres -W -d SHB-375Hz weds_health.dump
List largest tables:
SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
ORDER BY pg_total_relation_size(C.oid) DESC
Upgrade PostgreSQL Database:
$pg_upgradecluster <old-ver> main
$pg_dropcluster <old-ver> main
- HTTPOnly – If set. A cookie cannot be accessed through a client side script.
- HTTP Strict Transport Security – opt-in webserver enhancement, once the header has been sent it prevents any communications occuring over HTTP.
- Little Snitch – Mac OSX tool for controlling outgoing private data.
- Qualys SSL test – Tests a deep analysis of your configuration for any SSL web server.
- Repsheet – A reputation engine for profiling HTTP requests inbound to a webserver.
- SecureFlat – If set, A cookie won’t be transmitted over HTTP.
- TripWire on Ubuntu – How to configure and use tripwire on Ubuntu.
- Visual Cryptography – A visual cryptography system. Align two random images to reveal a secret.
- WebPageTest – Measure the load times for websites from different locations and browsers.
- Progressive JPEGs – Gif style progressive loading for JPEG images.
- BPG – The PNG equivalent of JPEGS. Coming soon to a browser near you.
* Thanks to The Streets for naming inspiration.
To me, success has always had a specific sound:
Growing up as a teenager I played softball and baseball. I was terrible. No matter what I tried or how much I practiced, I just couldn’t make that sound.
The bats used in these games have a ‘sweet spot’. A spot that transfers the most amount of energy from the bat into the ball. This spot is also the ‘centre of percussion’. Hit a ball with the sweet spot and your aluminium bat will make a wonderful ‘ding’. Mishit the ball and you will be left with a dull thunk.
I was an expert at dull thunks. With a handful of exceptions, I straight up couldn’t hit a baseball and I rarely tasted the sound of success. It was the most frustrating endeavour I pursued as a kid.
I had largely forgotten about this frustration. That was until I was jogging past a baseball field and heard the familar ding. Success! I was happy for them. ‘Hey! Nice dinger!’ As the ball sailed into the outfield. It also marked a time when I too felt successful. I had gotten lots done that day, but I was more proud to have finally internalised success. I felt as though I transitioned away from common external success metrics. I haven’t won many awards, nor made mountains of money.
But my internal metrics? The sticker chart? Did I create? Did I read? Did I exercise? I’m nailing it, and finding it oddly empowering at the same time. It is giving me the confidence that the year won’t devolve into me lying on the couch.
Finished off my February curiosity ‘biodiversity’ (two weeks late).
Completed my March curiosity ‘build indicator’ on time.
The month deadline is proving to be useful. Towards the end of a project I find myself hating some element. “Ugh. I shouldn’t have done <X>.” The tight deadline means that I can’t change course. I finish the project, loathing <X>. Yet I still finish, and teach myself an important lesson along the way. Next time <X> will be done like <Y>.
Still no create sticker for March though. I slipped on my writing goals. The ‘Open Love Letter to Tom Sachs’ was a writing experiment. One that didn’t go as well as I hoped. I struggled with writers block a little after that. This months articles covered:
Dug through a stash of novels my brother left behind when he moved to Canada.
Solar - Ian McEwan
I kept expecting this to pick up into science fiction territory. Solar read more like The Bold and the Beautiful, sprinkled lightly with science.
The Tesseract - Alex Garland
Written in the same fast pace, fast cut style of Garlands ‘The Beach’. It was more enjoyable than Solar, and contained some entertaining sections (the street kids, and the opening). But these just made the other sections read worse than they actually were.
Running three times a week. 53km. I’m getting used to the weather. It has started to cool and have been jogging along the Cairns esplanade. It is nice, especially when there is a cool sea breeze.
I’m enjoying every minute and I want more stickers. I am happy.
Last year I got an Arduino Yún to try out. The Yún is Wow. It became my favourite microcontroller the second I powered it up. The only real downside of the Yún being price, coming in at around $85 USD, it certainly wasn’t cheap. For my current project I thought I would try out the Arduino Ethernet. It is a fair bit cheaper (I got it for about half the price of a Yún from Seeed), and I didn’t need wifi on this particular project. So how did the Arduino (Seeeduino) Ethernet stack up?
The first downside of the Arduino Ethernet design (regardless of manufacturer) is how they made room for the network port. Arduino dropped the USB connector and FTDI USB-to-serial chip from the board. So uploading your sketches is via a FTDI-style USB-to-serial breakout board. This connector is not included, and you buy it separately. No big deal. But if you don’t have one, it will add about $17 to the cost of your project.
Limited PWM pins
The second design downside is the limited number of PWM pins. The Arduino Ethernet only has four pins with PWM, while pins 10, 11, 12 and 13 are reserved for interfacing with the Ethernet module. The documentation suggests you shouldn’t use them. I’m not sure whey they even included headers for these unusable pins.
In practice it was even worse. I was only able to use three of the four PWM pins on the Seeeduino Ethernet board. The board didn’t seem to have the performance to run the Ethernet connection and 4 PWM pins at the same time. Any three PWM pins, and network was fine. But adding the fourth would always result in unexpected behaviour. It would successfully run four PWM outputs while not using the Ethernet connection. But as soon as the connection kicked in? One of the PWM signals would wonk out.
The last and biggest design downside of the Arduino Ethernet. No HTTPS. The Arduino Ethernet doesn’t have enough power to decrypt secured HTTPS connections. Pretty much the entire web runs HTTPS these days. So if you want to send or receive content over an encrypted link you are going to be out of luck. This was a major issue for my project (it receives data from a continuous integration server). I got around the problem by creating an intermediary server application. This server application strips the encryption from the link and dishes up the data I needed over regular HTTP. A dodgy work around till I replace the Arduino Ethernet with a Yún.
The Arduino Ethernet was an important precursor to the Yún. I also really liked how Seeed squeezed their board down by pushing the ethernet connector through the PCB. But with all the above limitations, I don’t think I will use an Arduino Ethernet (or derivative) again. I would much rather spring the extra bucks for the Yún. Seeed also make a derivative of the Yún, the Seeeduino Cloud. It only costs $5 more than a Seeeduino Ethernet (which is less than the FTDI breakout board you will need for the Ethernet). I give the Arduino Ethernet 0.5/5.