2013/12/17

After a Raspberry Pi and the afterlife of Google Reader


Since I first discovered it, I was one of the heavyweight users of Google Reader. So after we (as in: a great number of journalists and other heavyweight users) all got shafted by Google, I had to go and look for an alternative. After all, while you can manually look up a dozen or so sites a day no problem, but the moment you have - like I do - hundreds of sites you want to keep an eye on, that's a different problem altogether. But it took me a great while to get the parts right. I guess I could say that at places, curiosity got the better of me.

"After killing almost every other RSS aggregator service, we got rid of our own too."
A refuge taken at home
After looking at the problem for weeks, there were only two solutions that seemed viable. Since I was burned once, and didn't take kindly to getting burned by another service again, only the self-hosted variants were in competition. And since I had a really good idea in mind about what I wanted to do with the RSS reader, only two of the dozens were left in play: SelfOSS and Tiny Tiny RSS.

SelfOSS
From small beginnings
I started with SelfOSS, the less resource-heavy solution, which - after ironing out some problems - I hosted on my unRAID server first, then on my Raspberry Pi, since I just bought the latter, and since unlike the unRAID server, it could have a full linux on it, making fiddling with it much easier. Plus, there was the lack of any sound emitted. But I had to realize that it just wasn't enough for me. So the next step was getting TT-RSS to work, which - after I found a suitable skin and did a couple modifications to get at least some keyboard shortcuts of Google Reader working that were etched into my brain - turned out to be much closer to ideal.

TT-RSS, as I use it
A snail's pace
Except speed. Yes, Raspberry Pi isn't built for speed, and many sites will discourage you, saying it isn't really for running a whole MySQL servers with all the bells and whistles, but I did manage to not throw it out the window during in the months I used it for. But the time has come to replace it. Fun fact: the exported sql file was more than 160 megabytes, and was only the accumulated "wealth" of 5-6 months.

Raspberry Pi working...
The balance
I had multiple issues to consider. First, the new machine had to be an x86-based PC, running Windows. Yes, not ideal for a webserver, but frankly, I never was a hardcore linux guy, and had my server-side programs for Windows already. Second, it had to be very light on power and silent. For this, I was looking at first towards the End-of-Life'd Intel Atom boards, and the AMD E-350 / A2-2000 integrated systems. But while their CPUs were markedly better than a Pi, I wasn't sure wether it was enough. You see, I didn't want to only run TT-RSS on this new machine, but other stuff as well, and I wanted to retire my 2004 laptop (which ran irc, firefox, notepad, a syslog server and others) and wanted to be able to turn my desktop off for the nights.

ASRock E350M1: that is one tiny and most likely loud CPU fan.

While the AMD offerings were much better on the GPU front - the one thing that I didn't really need for this - the AMD E series and Intel Atom D's were just a bit too much on the low end for what I had in mind. Plus, the Atoms only took a maximum of 4 gigabytes of RAM, leaving absolutely no space for further expansion.

The least of the upper class
So I was very lucky when the first Intel Celeron 1037U-equipped, fully passive Gigabyte mini-itx boards came to my local retailer. I'm fairly certain I got one of - if not the - first Gigabyte GA-C1037UN-EU in the country. The 1037U is a 17W-max TDP CPU for ultrabooks, so it isn't really power hungry in any way.
Gigabyte GA-C1027UN-EU

Hot headed
The board is fully passive, which is both a boon and a curse. A boon, since it emits absolutely no sound, and a curse, since the cores idle at around 60-65°C on open air, with only the BIOS started. But since the BIOS does not decrease the frequency of the cores, the idle temperatures inside a sufficiently ventilated case would be better. While the CPU's rated max idle temperature given by Intel is 105°C, I'm not sure the other components - the SSD, the memory, the PSU or even the other components of the motherboard - would be able to take thermal punishment so well.

Why fanless, if you will most likely use a fan after all?
A quite usual question. First, fan-cooled motherboards are generally not designed with fanless or low-noise operation in mind, so in mos cases, they have much smaller heatsinks. A fanless version will, by necessity, have a much larger one that will help in dissipating the heat from the CPU into the case much better than a smaller one would.

Second, I like to have the option of choosing my own fans. I'd rather not pay for something I know I won't be able to use. I generally know what fans I'll have to acquire to make a setup virtually silent given some operating parameters, but I've never before built a mini-ITX system, and have used only 80,120 and 140 mm fans. While there are plenty of these to chose from, the 40 mm class is almost exclusively made up of fans designed for performance, (since they are great size for 1U rackmount servers) not speed. Since I wanted to have every little help that I could, I went for passively cooled solutions.

Piles of uselessness
While it was a great find - especially since a week later the price rose with almost 50% - the motherboard is not without it's faults. Those familiar with Gigabyte boards will not be surprised that fan control is really nonexistent, and while having a PCI slot, IDE channels and serial ports is great for a legacy system upgrade, my first thing was disabling all the latter in the BIOS. Also, there is no USB 3.0, only one SATA 3 connector, and while the back panel has an eSATA port, it does not offer a power port to go with it. It also lacks an optical audio out, but has a secondary Gbit NIC. Well, at least it had a HDMI output next to the D-SUB, unlike the Intel D2700 board that only had the latter.

Gigabyte is so embarrassed by the IDE channel that they didn't even feature it on the schematics.

A case of size
I already had a LC-Power LC-1340mi mini-ITX case with a 75W passive PSU for a weird but fun Raspberry Pi motherboard I ordered from kickstarter, which I re-purposed for this project. While the case is very compact, this also represented some unique challenges of its own.

Packed tight
Just opening and closing requires some muscle power, and the ATX power cables are hard to properly settle. Also, when I tried fitting a conventional HDD inside, it went north of 50°C while I installed Windows on it, so I had to open it up and put a spare 80 mm vent just to cool the drive. I re-purposed an SSD later, (I usually say "don't buy OCZ, Corsair or Sandforce, but this second generation Vertex Plus was OK for being the cheapest and storing non-critical stuff like game installs) and put a silent 80 mm fan on top of the case, where there are holes for two 40x40x10 mm fans. I plan to get two Noctua for this, as it appears that while the metal case does dissipate some heat, and the somewhat vented top and bottom do allow some natural air flow to occur, this is not enough to put my heart at ease. Currently, with a well-regulated, at least 5-year-old, golf-ball surfaced Sharkoon fan, the cores don't rise above a 56-62°C band. At least when it sits somewhat forward on its stand, letting more of its grilled bottom suck up considerably more air. Otherwise it shoots past 66°C.

For the time being, I'll leave the built-in PSU in it, even though I have a PicoPSU. Mostly because the screws are so tight I couldn't even move them a fraction. I did try the Pico, but unless I drill out the screws holding the bundled board, or forgo the I/O shield, you have to keep the case open to use it. However, it does cut down on the wire clutter by a fair amount, because it doesn't need that huge ATX wire bundle that you can see in the picture below.

That bottom plate is bulging due to the cramped design, since the inflexible PSU cables just don' have any other place to go. That plate also houses the 2,5" drive, and you can see 3 of the 4 screws it is fastened by.
UPDATE: I got the Noctuas, and unfortunately, while they were much more silent than the (too big to fit)  40x40x20 Sharkoon silent fans, when I closed the case, they produced a quiet droning noise I wasn't really keen upon. So I went ahead and bought a Fractal Design Node 304. Which is unfortunately much bigger, but I thought it might be a better candidate for cooling and not be such a hassle to work with. More on that case later, in a separate post.

Is that thinner than my ultrabook?
I'm also reusing my Motorola Lapdock for this project, since it has HDMI and USB inputs, and it works as a display coupled with keyboard and a mouse. For the $100 I paid for it, it was a great deal, especially if you take it into account that it has a built-in USB hub and a battery, so your UPS will have to power even less stuff.

And it has a ridiculous battery life too: with the Pi, it does 5-10 hours. With nothing but itself to sustain... I'd say it's roughly the same.

That said, it is not great as a display or as any kind of input device. The chiclet keys are quite mushy, to the point that they sometimes don't register; and while almost as wide (~90%?) as a regular keyboard, it is much shallower. Many keys can only be accessed with a fn key combo (F buttons, del, home, end, page up/down). It actually doesn't have a insert or  a Windows key. The "~" (which is "0" in Hungarian layout) key is weirdly placed right of "P", which screws up the rest of the row, mislaying some accented, frequently used keys. (or if you are in English mode, {} and [], which are quite vital to coding.) So I usually just use Synergy, as it is much less of a hassle. And quite frankly, my 2004 laptop had a better screen, and no, I'm not even kidding.

Just the bare necessities. Or even less than that, in a stylish, brushed aluminium package.

The whole package:
Gigabyte GA-C1037UN-EU
LC-Power LC-1340mi (+75W PSU)
Fractal Design Node 304 White (+Pico PSU W-120 + 60W brick)
1x CRUCIAL 4GB DDR3 1600MHz CL11
OCZ Vertex Plus R2 60GB
in a Kingston USB drive: an old 60GB Seagate ST96812AS for some extra storage
...and a Motorola lapdock with some adapters as display

Plans for the future
Later on I might get a 120GB Samsung, to get rid of the USB drive, a UPS, and maybe another stick of 4GB DDR3. And I might try setting up a offline Wikipedia copy. 

No comments: