Alternate titles: "The cloud makes no sense", "Intel Xeon processors are slow", "The Great vCPU Heist". I recently decided to try to move some of my CPU-intensive workload from my desktop into the "cloud". After all, that's supposedly what those big, strong and fast cloud servers are for. I found that choosing a cloud provider is not obvious at all, even if you only want to consider raw CPU speed.…
I've been using the Spark iOS E-mail app for almost as long as it exists. Better in every way than Apple's built-in Mail and nicely designed, it was a joy to use. A couple of months ago Readdle announced Spark 2 , "an e-mail experience built for teams". I am not a team, but I wished Readle all the luck with the new business model. However, all this talk of team functionality made me slightly…
After several years the time has come to move my blogs from Squarespace. It was a strange relationship: I run my own servers and I'm certainly capable of implementing my own blogging solution, but using Squarespace was just easier. I could never find the time to do something of my own. So, even though I wasn't entirely happy with how Squarespace worked, I kept paying to have my pages hosted there.…
Clojure's core.async channels provide a great metaphor for joining components in a system. But I noticed there is a misconception floating around: that channels fully decouple system components, so that components do not need to know anything about one another. As a result, it's easy to go overboard with core.async. I've seen people overuse channels, putting them everywhere, even when a…
Hard Drive Encryption, revisited Several years ago I made a comment on Hacker News ( full discussion ) about full-disk encryption performed by the hard drives themselves. Basically, the idea is that you give your hard drive a password/key and hope that it transparently encrypts your data before it hits the platters (or flash memory for SSDs). I wrote: That kind of encryption is useless, because I…
I wrote a tiny driver that allows you to access I2C (IIC, I²C, or I squared C) on Freescale Kinetis microcontrollers. It works asynchronously (interrupt-driven), supports repeated start (restart) and does not depend on any large software framework. The code is on Github and the driver has its own page , too, with a README. Even though it isn't fully-featured or well tested, I have a good reason…
We have just launched Fablitics — our friendly business intelligence and E-commerce analytics solution. The driving idea behind Fablitics is that only meaningful numbers and graphs should be shown in business intelligence software. We tried to understand which numbers are important and can help decision making, and which bring little value and only confuse. Early on we noticed that many…
It might seem that writing I2C libraries is my favorite activity, but it really isn't. This library is not something I expected to write, but since I had to, I'm releasing it in the hope that it will save others time and frustration. Lsquaredc is a tiny Linux library that allows you to access I2C (IIC, I²C, or I squared C) from userspace without causing excessive pain and suffering. When I tried…
PCB layout for the switch-mode HV PSU I've posted a page describing the design of a HV PSU (High-Voltage Power Supply) that generates up to 220V from a 12V input. In addition to that, it also provides 2*Vout (so, up to 440V, for dekatrons), and two outputs for powering digital logic: 5V and 3.3V. The primary HV boost circuit reaches 88% efficiency when going from 12V to 185V at 55mA, with a 3%…
I wanted a dollhouse for my daughter. But, as it often happens, I couldn't find anything I liked. I wanted it to be tall, with multiple floors connected with stairs. I wanted every room easily accessible, with few external walls. And I also wanted it built in a way that would allow four kids to comfortably play together. I ended up designing my own dollhouse in a CAD program, then laser-cutting it…
I've released a tiny library that implements I2C master functionality for MSP430 chips that have the USI module (MSP430G2412 or MSP430G2452 are ones that I use often). The code is on GitHub , it is MIT-licensed, so you can do whatever you want with it. From the README: Features Small. Works. Reads and writes. Implements repeated start. Uses the Bus Pirate convention. Rationale I wrote this out of…
The Bus Pirate from Dangerous Prototypes is a really useful tool. I use it regularly to bring up and test new I2C devices, or as a cheap protocol analyzer for I2C and SPI. Unfortunately, the supplied cables aren't clearly labeled (only color-coded), and I found the reference cards available on the net lacking: they were usually not clearly readable and didn't help much. So I created my own. You…
While considering a new microcontroller to use, I looked at the power consumption figures for the Freescale Kinetis K and L Series. Having some experience with various MSP430 MCUs, I am used to shaving off microamps and running systems on battery power, sometimes for years. While the real answer can only be gotten with a real setup, one can get some preliminary information from the datasheets. And…
I've been using MSP430 microcontrollers for a while now, but I wanted to look into something more powerful, but not necessarily much more expensive. I believe component cost is a major factor when designing electronics (for many reasons). I found the Freescale Kinetis line of devices, which looks really good capability-wise. So let's try to compare the pricing of (some) MSP430 devices and (some)…
I wanted to build electronic devices with SMD components. From what I can see, many people shy away from SMD, trying to solder QFN components with a soldering iron and fighting the trend. I have no idea why. I find SMD components easy to work with, cheap and small. If you restrict yourself to components 0603 or larger (I use mostly 0603 in my designs) and don't try to use BGA components, you'll be…
I just got back from the EuroClojure 2012 conference. I won't try to summarize all the talks here, just convey some general impressions that I got: Clojure community is awesome. People are incredibly nice to each other. Ask a question on the mailing list, and you'll get a number of replies from people much smarter and more experienced than you. Same at the conference: you can approach anyone and…
I bought an (obviously used) Tektronix 2246A oscilloscope at an auction site. It wasn't expensive, it looked fairly good and the seller was nice and provided start-up warranty. After getting the scope it turned out that channel 3 was dead. Channels 1, 2 and 4 worked fine, but channel 3 would just draw a flat line, no signals registered. I negotiated a discount deal with the seller and set on to…
[Updated 10.10.2014] Here's a tip that will come in useful if you'd like to use a Targus Bluetooth Presenter (AMP11US or AMP11EU) with your Mac. It seems that the Targus wireless presenter remote (an otherwise nice device) was designed by a committee of morons, none of which actually ever gave any Keynote presentations. Apparently someone at Targus said that the buttons are supposed to be for…
Before you choose a hosting provider, always check their reputation with Spamhaus . I rent virtual servers with Bluemile (formerly also Fivebean). This morning I was greeted with bouncing E-mail, and a quick check showed: Ref: SBL99441 68.68.16.0/20 is listed on the Spamhaus Block List (SBL) 30-Nov-2010 08:26 GMT | SR02 bluemilenetworks.com (escalation) BLUEMILENETWORKS.COM ignores spam…
Executive summary: don't buy it. Convinced by people on podcasts (mostly TWiP and This Week in Tech) raving about how great the Drobo (from Data Robotics) storage device is, I decided to budget two into a project I'm working on. Expectations were high — Drobo marketing pushes the devices as easy to use, reliable and flexible. Being a Mac user, I expected an "Apple experience": plug it in and…