I wrote a case study on our company website about how we’ve
been using AI for document analysis, working with a large
library of content, and some of the limitations of such a system.
I get wrist pain in … well, obviously, my wrists.
Man, that was a bit of a daft start to a post.
Especially when using a mouse, but also when I have to do a lot of typing. I do touch type, but not ‘formally’, with perfect full-hand position, and so on.
Anyway, to try and make things better, here are some of the things I’m using
Microsoft Natural 4000 Keyboard
One of the weird things about keyboards is that essentially, we still use the exact same design that was needed for swinging arm typewriters. Stuffing all the keys as close together as we can, in orderly rows, so that the arm can hit the paper in the same place every time. Actually, though, our hands would be a lot happier somewhat spaced apart, and at an angle, rather than trying to line up next to each other.
I have been using one of these Microsoft Keyboards for over a year now at work, and although it’s not perfect, it is a lot nicer than regular cheap and nasty keyboards, and a lot cheaper than someotherErgonomicKeyboards.
I currently have it at home, as, since this is a bit of a quiet time at OMNIvision, I thought I should finally get around to learning a more sane keyboard layout than QWERTY. I’m learning Workman, which is a little obscure at the moment, but to me makes sense. We’ll see if it takes off at all in the future…
Kensington Trackball
The thing which makes my wrists hurt the most is using a mouse, so I’ve been playing for a while with using the popular alternative to mice: trackballs. This one is really cool, in that it has a built in scroll wheel. That’s normal on mice, but for no apparent reason, is kind of unusual on trackballs.
I’m not 100% sold on trackballs as the answer, I think probably as big a part of it as anything is having to reach way over to the side and grip at an angle. So I try to keep the trackball in the middle of the desk, and I have it also on an angle using an old empty CD spool.
Wowpen Joy
At home, I tried for a while using another trackball I got on ebay, as it was cheap, as it was second-hand. It also wasn’t very reliable, so it ended up being more frustrating than helpful. I then looked at Vertical Mice - mice which are designed to keep your hand in the ‘handshake position’ more naturally than the twisted flat position of normal mice.
A lot of vertical mice, like ergonomic keyboards, are pretty expensive. However, on ebay there were a lot of these incredibly named ‘WowPen Joy’ mice. The name itself is enough to put you off. Anyway, I thought I’d try and see how one was. It’s actually very nice. It is kind of small, but still works fine with my big hands, I just use my middle and ring fingers to click, not index and middle.
I finally had a bit more time this morning to write a bit more in the A/V manual. There’s lots of bits and pieces of documentation on board, but no comprehensive single getting started manual. So I’m writing one, bring together bits and pieces from all over the place, sorting out what documentation there is, updating schematics, etc.
Anyway, here’s the rough version on the article I just wrote about how balanced sound cables work. It’s pretty much my standard explanation of Balanced Audio, and aimed at people coming to A/V from a non-techy musical background, rather than for Electronics Engineers. You may find it interesting. Then again, you may not.
---–
Sound is basically vibrations in the air.
TODO: more details, pingpong ball analogy?
Inside an (SM57) Microphone head. That is the bit of plastic and the coils!This translates really easily into an analogue electrical signal: you simply turn the air vibrations into voltage vibrations.A Dynamic microphone does this by having a small bit of paper (or plastic) which vibrates with the air around it, and pushes against a very small copper coil which, moving inside a magnetic coil itself, generates a very-very-very small amount of electrical current.
TODO: more pictures.
This gets dumped down a wire, which gets amplified by (you guessed it) an amplifier into a very big amount of electrical current, which then drives a big electromagnet inside a speaker, which pushes another copper coil around, which is attached to another big bit of paper (the speaker cone), which causes the air around the speaker to vibrate – with the same vibrations that the microphone vibrated with, just bigger.
The trouble with simply dumping an audio signal down a cable, and picking it up at the other end is that your signal line, and return (usually ground) will pick up noise (say from A/C mains electricity, fluorescent lights, dimmers, mobile phones, etc) along the way.
Here’s an original signal:
And here’s some noise:
And the result:
This is a Bad Thing™.
So some clever engineers, back in the deep recesses of time figured out the following:You could take a signal, and before sending down the wire where it could pick up noise, invert it:
If we add the signal to the inverse, you get a grand result of nothing (e.g. -3 + 3 = 0).
Now, if we throw these two signals down a pair of very similar cables twisted round and round each other like crazy, then they’ll both pick up noise pretty much the same as each other:
Note that 3 (the original) + 1 noise = 4, while -3 (the inverse) + 1 noise = -2. NOT -4!
This is really cool, because if we add these two signals together, we don’t get 0 anymore, we get no original signal, but you do get the noise (doubled).
So we’ll use our amazing maths skills again, and divide this doubled noise in half. (2/2 = 1).
In OSX, users are created starting with UIDs 1000. So the admin user is 502, I’m 501, and so on. Also, the ‘staff’ group ID is 20.
On Debian, users are created starting with UIDs 1000. So I’m 1000, my testing blank account is 1001, and so on. The ‘staff’ group ID is 50.
This is a bit of a problem when I want to share files. Since it’s just me on the computer, technically I could just mount the drive with full read/write permission to me. But I don’t want that. I don’t want to be able to muck around with stuff outside my /home (or /Users/) directory without really trying hard.
Debian squeeze comes with FUSE installed, and has bindfs, but the version of bindfs that comes in the repo wasn’t up to date enough, so you may need to compile your own.
There will be quite a big performance hit from using bindfs. Some benchmarks (linked from the bindfs page) reckon about 80%. Not a problem for me here, since it’s fast enough. But to be aware of.
Here’s a script which I put in /etc/init.d/osxfixperms.sh to run this on bootup.
Which I’ve then installed (on debian) with (as root)
update-rc.d osxfixperms.sh defaults
You’ll need to be mounting the OSX drive *BEFORE* this happens. Generally, that means stuffing it in /etc/fstab in the appropriate way. You can ask google / debian docs. It’s fairly well documented. Unlike using bindfs.
is the link. I put it together in a few hours, it should have been quicker, but I’m still re-acquainting myself with python.
It is a nice language.
One thing I did today, while cleaning up a bit, was wonder about something I remember from doing python years ago - string concatenation. Joining two strings (texts) together.
“Hello” + “World” -> “HelloWorld”
I remembered something about it being slow, and python recommending using
‘’.join((“Hello”, “World”))
which seems to me one of the most blatently ugly obscure gotchas I’ve come across in a long while.
Anyway, I refactored my code into that style - converting databases and song lyrics and writing XML stuff is pretty much all Text formatting and concatination.
It made no discernable difference. So I went back to normal easier to read x += y, and x = y + z type of code.
I appologise for how techy and geeky and boring this post is.
I even find it so myself.
But I need to get this off my chest, so I can actually write about interesting stuff later…
And some geeky people may actually find something comprehensible in here. Perhaps even interesting.
If you want to read it, then if your eyes glaze over with techiness, then stop reading, drink a glass of water, scroll down to ’ And another thing’, and read from there.
So then.
Most of my recent work has been on the omnitube.org website.
It’s a site I put together with David when I visited OMNIvision 4 years ago (now that seems weird!). We put it together in about 2 weeks, based on a well known large complex CMS (Content Management System) called Joomla, which was the OM standard web-site-software-package, a few very large complex modules for that, specifically “VirtueMart”, plus a bunch of my own hacks in php/javascript, plus a load of very clever HTML/CSS from David. Since then, I’d done a few fixes for them, logging on from a ’net cafe in Singapore, and when Becky and I arrived at OMNIvision 2 years ago, it was basically in the same state.
The trouble was that in the 2 years since we’d put it together, the internet had changed quite a lot, and we hadn’t had the time to really work on OMNItube to change with it. Joomla had advanced significantly, as had Virtuemart, and alas, we couldn’t smoothly upgrade to the latest versions of those without majorly breaking everything.
About a year ago (from now), I decided it was about time to do something about this, as I was scared that a now 3 year old install of joomla/etc without being able to have security updates was a bit scary. Especially as we wanted to sell videos online, and DVDs, and so were doing credit-card type security stuff. And the system admin wanted to upgrade the server, and I thought doing that would probably break everything again.
I spent about a week trying to upgrade things to the latest versions of joomla and virtuemart. Some bits I got almost close to working, but in the end it just totally bogged me down. Joomla + Virtuemart + all the plugins and modules which were installed to make everything work as we wanted ended up at around 7000+ files, and 800'000 lines of code. Not joking. So tracking down bugs and errors and trying even to find which function I was looking for took forever, and I simply don’t have a big enough brain to hold that much in my head at once.
So after a week or two of working hard to try and upgrade things, I gave up, it was just too big a job for me to do on my own. I’d made no progress, and it was still a big stinkin’ mess.
We also had some new features we wanted to get working. Specifically, iTunes subscriptions, XML sitemap, facebook commenting/liking/etc, and related product lists. The “search” system was also very broken, giving pretty much useless results most of the time.