Category Archives: DIY

Touchpad

I picked up one of the $150 refurbished 32GB Touchpads in the last firesale on Sunday. It seems like HP has done their very best to get as many Touchpads into the hands of hackers as possible, so whether or not it is well supported by HP, the community will do something fun with it. Besides, a $150 ARM developement platform that will boot Android, various Linux chroots, AND let me play with WebOS was too appealing to pass up.
Continue reading

Posted in Announcements, Computers, DIY, Electronics, Entertainment, General, Objects | Leave a comment

Source Scroller

I’ve been working on a side project to make a source display widget for the aggregate.org SC’11 exhibit, and it is surprisingly problematic. The goals for the program are as follows:

  • Take a directory of source files as input
  • Automatically perform appropriate syntax highlighting on the source files.
  • Display (On a dark background – intended use is a floating projection display) all the source files consecutively.
  • Scroll automatically through the output in a pleasing, readable way.
  • Be capable of repeating this action unattended indefinitely.

Continue reading

Posted in Computers, DIY, General, School | Leave a comment

Arduino Promotion Behavior

I was pulling up an old project (A little Simon game which has apparently fallen off the ‘net when I moved my site- will have to repost) to use as a classroom demonstration, and discovered that sometime in the last couple years, the int->unsigned long promotion in Ardino/Processing broke/changed without comment.

The code uses using primitive nested counters and delays to generate sounds and control difficulty, which means rather large numbers (100-microsecond scale delays running for seconds) are being thrown about. To isolate the change, I wrote the following test:
Continue reading

Posted in Computers, DIY, Electronics, General, Objects | Tagged , | Leave a comment

X11


Dear AMD,
Randall Munroe has correctly pointed out that you are adversely affecting my quality of life. Please fix your shit.
Hate,
PAPPP

Posted in Computers, DIY, Entertainment, General | Leave a comment

Power Factor Corrector

We’ve been tracking down the failure mode of power supplies in the clusters on campus, and picked up a plug-in “Power Saver” power factor corrector box for around $5 to look at in our experiments. Prices on these things range from about $5 (less than the cost of the components in small quantities… and in a nice wallwart case – this is what we paid) to over $70 (fleecing the morons).
This particular device is a “PowerSaver PowerStar CHT” (or some similar random string, the model is “CHT-001A”), about which a variety of bemusingly improbable claims are made.


Upon opening it up, it contains a large (5uF,450V) capacitor, two LEDs, three quarter-watt resistors, and a single-sided PCB with “Comment” all over the silkscreen where fields were not filled in. As best I can make out, the resistors are a very high impedance voltage divider to step down the 120V/60Hz from the wall to a level the LEDs can handle, and the LEDs are acting as their own rectifier. The capacitor is at least connected across the outlet. Curiously, only about half the board is populated, and I can’t figure out what some of the missing components would do – they appear to be a second independent indicator LED circuit rotated 90 degrees from the populated one.
Under a very limited set of circumstances (linear inductive load, like an AC motor) these things could actually help the power factor, but since most residential power billing is net, with no power factor penalty, it wouldn’t actually reduce bills. In the case of non-linear loads, like say, computer power supplies, it will do nothing useful. Experiment complete, although it may still be plugged in while instrumented for funsises.

Posted in Computers, DIY, Electronics, Entertainment, General, Objects, School | Tagged , , | Leave a comment

Note Synchronization?

I’ve started the hunt for a suitable new note taking program. My demands are simple: I want a stack of text documents with persistent offline access on my Linux and Android devices, Web access from elsewhere, and automated synchronization between them.

I’ve been using xfce4-notes-plugin, which has been adequate, is backed by plaintext, and is ridiculously light on resources — but it has no capacity synchronization. I wish Google hadn’t abandoned notebook, since that would provide a mechanism to build around without an extra entity I have to trust with my data, but its viability is long gone. In a similar vein, I’m getting a strong urge to find and punch the dropbox folks for using a goofy proprietary protocol instead of something I can trivially self host (hint).

Evernote, with the Nevernote Linux-compatible client, looked like a generally acceptable solution (persistent local copies mitigate the cloud trust issue) until I got a good look at Nevernote – a 55MB blob of crude, crudely-packaged Java code, which seems to function, but consumes 3-6% CPU and 3% memory to sit in the background empty on my i7M620/8GB system. I don’t care how snazzy it is, this is not a solution for a persistent tool.

Hacking something together with text-file-backed editors, rsync, and my web hosting is a last ditch option, since it really is all I want, but there must already be something light, functional, and not dripping with proprietary cruft floating around… right?

Posted in Computers, DIY, General, Objects | Tagged , | 1 Comment

Too Much Toolchain Time

Having my “work project” be finishing the code generator and simulator fronted for LARK, and my “play project” be coaxing uClibc and TCC to build for Android (demonstrably possible, it’s just a question of if I’m clever and/or tenacious enough…) is giving me a little too much time working with compiler toolchains to be healthy. It does make me understand how compilers people get their — characteristic — personality traits, though.

Posted in Computers, DIY, General, Navel Gazing, School | Leave a comment

Android Love of the Day: Like Things are Handled Alike

[This post is part of a series on my initial Android impressions.]
I think I’ve covered most of the really problematic things Google needs to get on. Some other issues are either already being fixed – they’re apparently already working on the notification shittyness – or unsolved problems for developers – like the fact that landscape mode is a definite second-class citizen, despite a profusion of landscape keyboard sliders.
And now a change of pace for the end of the week: this post is about something I think the Android designers did right, and certainly did better than many competing platforms.

Mobile platforms are especially guilty of treating otherwise indistinguishable objects as different. For years there has been the ringtone scam, with carriers and third party assholes charging for suitably down-sampled and/or converted music tracks, even when it is often visible that devices internally use .mid or .mp3 tracks for the function. Likewise, a couple of the mobile platforms distinguish between editable and non-editable text, which is absurd.

Android doesn’t pull that shit. Music is any compatible audio file the indexer can find. Ringtones are any native audio file that you point at as a ringtone, with a default /sdcard/Media/Audio/Ringtones directory for things you intend to use that way. Notification sounds are likewise audio files you point at as notification sounds, with a default /sdcard/Media/Audio/Notifications folder.
Text, with the occasionally irritating but entirely understandable exception of certain UI elements, is text. The same (clunky) select/copy mechanism works on all text, and it all goes to the same system-wide clipboard. Because I have a Sense ROM, the mechanism is actually this one(video), which is slightly less clunky than the default, but still inelegant. The important thing is that it’s consistent.

All in all, I like my MT4GS. It has some quirks, many of them in software which can and will likely be fixed with updates or third party extensions as time passes, and it costs a fortune to feed, but it does the vast majority of things I want in a little handheld computer, and it does them more elegantly than the competitors I’ve tried. I may not find Android to be an exciting platform, but it is a solid platform, with multiple, reliable companies backing it, a parent company actively trying to improve it, and enough market penetration to be a first-class citizen for years to come. It even appears the native code situation is improving, which should let me work around many of the things *I* would like to work differently that aren’t concerns for most users.

Posted in Computers, DIY, Electronics, General | Tagged , | Leave a comment

Android Hate of the Day: Missing Basic Functionality

[This post is part of a series on my initial Android impressions.]
Just to be clear, my Android criticism is because I want this shit fixed in the last promising mobile platform standing, not because I hate it. Platform specific comments are based on the default MT4GS Android 2.3.4 with Sense 3.0 ROM, rooted and largely de-bloated. And now for the hate.

Android doesn’t come with a file manager. It doesn’t come with a terminal emulator, or a task manager, or almost any of the things one has come to reasonably expect an operating system to have. This makes it excessively hard to share instructions, since everyone is using interfaces broken in slightly different ways, and means the first few days of using a new device are spent on “Damnit! why won’t it do $Basic_function? Now I have to sort through the crap pile in the app store until I find one that actually works.” (which, come to think of it, is likely the objective.)
The file handler functionality is as good as any desktop platform (I don’t actually know if it is based on XDG like most other *nixes, or some homegrown solution) so it wouldn’t debilitate third party solutions to have sane defaults, and the argument that most users wouldn’t want all of those functions is completely specious… it took me a couple hours to strip most of the unwanted crap off my new phone, and that crap was certainly less useful than the things I’m complaining about being missing.
Also, most of the third party solutions suck. I’ve been using ConnectBot for a shell, which is better than the other free options I’ve tried, but handles the keyboard differently than every other program, and thus has problems with entering symbols like “|” and “>” which are sort of important on the command line. Likewise, after several seriously disappointing alternatives, I’ve settled on ES File Explorer for file management (also a solid [s]ftp/smb client), which is a little quirky about permissions and different file systems, and is nearly unusable in landscape mode (a rant for later), but is generally adequate. I’ve heard there may be some paid alternatives which are significantly better, but the idea of paying for this kind of basic functionality is infuriating – it is basically the same situation of coughing up for a Mac then having to buy one of a dozen Finders from some random dude for $20 before you could use it.

Posted in Computers, DIY, Electronics, General | Tagged , | Leave a comment

Android Hate of the Day: Process Management

[This post is part of a series on my initial Android impressions.]
Just to be clear, my Android criticism is because I want this shit fixed in the last promising mobile platform standing, not because I hate it. Platform specific comments are based on the default MT4GS Android 2.3.4 with Sense 3.0 ROM, rooted and largely de-bloated. And now for the hate.

The task/process model Android uses is total bullshit. Task switching via the launcher is clumsy, and having things popping in and out of memory at random creates performance instability and the worst kind of non-determinism. To make an easy-to-demonstrate example, hit the “Internet” button – is it just bringing the screen back up, or starting over reloading the page you were on? You don’t know unless some form data disappeared, but the page probably does. This is especially significant in a mobile device, where user input is time and energy intensive, and, more importantly, the close button has a strong implication of “get up off my battery” that isn’t necessarily being honored.
This also runs afoul of the “never lie to your user” axiom; there is a difference between running and non-running processes, and trying to ignore that distinction, unlike every other multitasking platform, is going to cause more confusion that it saves.
This is again partially fixable via third party software – I’ve been using Gemini App Manager to hunt down badly behaving processes. Unfortunately, Gemini App Manager is seriously clunky, and between the profusion of RAM-eating background processes endemic to Android (and Sense…), and the number of apps designed with the expectation that they be allowed to sit in the background doing nothing useful, it isn’t really practical to keep an eye on what is running. I haven’t found anything that helps with the lack of a proper task switcher, and the “Recent” list from holding the home button or bringing up the notification screen is not even close to a solution.
This is, in my opinion, the most fundamentally broken thing about Android, and will be the hardest to fix in a sane way, especially without running afoul of someone else’s ridiculous patents. I’ve mentioned before that Google’s recent spate of UI hires gives me hope on this front, especially Matias Duarte who designed good solutions for task switching on a number of other mobile platforms, but for the time being it makes me irritable.

Posted in Computers, DIY, Electronics, General | Tagged , | Leave a comment