Tag: Hardware

ಠ_ಠ Keyboard Button

August 26, 2015 » Geek

The other day I was looking at keyboard stuff and decided to order some arrow keycaps for my keyboard. They also had one with the look of disapproval face on it, so I bought that too.

I popped it onto my Print Screen key, which maps to F13 in OS X, then I wrote an Automator service to copy/paste ಠ_ಠ when F13 was pressed.

on run {input, parameters}
	set the clipboard to "ಠ_ಠ"
	tell application "System Events"
		key code 9 using {command down}
	end tell
end run

I have never written AppleScript before, so the result was kind of wonky. It worked in some inputs, but not in others.

Then, Alex pointed out that Alfred workflows can be triggered by global hotkeys. What can’t Alfred do?

A quick workflow later and my ಠ_ಠ key was working like a dream.

ಠ_ಠ Workflow

You can grab the workflow here, if you want. I bet you could figure it out for yourself too though.


USB7 + pySerial

December 21, 2009 » Geek

Update: 2009-12-30
I put a bunch of scripts together into a collection on github, called pyUSB7. Check that out for lots of this sort of thing.

I recently dug out my USB7 and thought I would play with it. I don’t know if it has to do with my distro (sidux), or the kernel development in general, but the USB7 works on plug in, contrary to what the product site says.

Anyway, once I got tired of echoing numbers to the USB7, I thought I’d try writing something with pySerial, which I had looked at a long time ago, but never tried.

It is remarkably easy once you get the settings right. Here is a little clock program that I wrote which counts up the elapsed seconds in the day, and also has an hour/minutes/seconds layout. These toggle back and forth every 10 seconds.

# -*- coding: utf-8 -*-
import serial
from time import sleep, mktime
from datetime import datetime, date

ser = serial.Serial('/dev/ttyACM0', 9600, timeout=0)
  swap = True
  while True:
    now = datetime.now().timetuple()
    now_t = mktime( now )

    then_t = mktime(date.today().timetuple() )
    diff = int( now_t - then_t )

    if 0 == diff % 10:
      swap = not swap

    if swap:
      ser.write( "%d\n" % diff )
      ser.write( "%02.0d.%02.0d.%02.0d\n" % ( now[3], now[4], now[5] ) )

    sleep( 1 )

Tags: ,

Cool Camera

October 18, 2007 » Geek

At work we’ve been working with a cool little camera from Prosilica. Michael wrote a nice wrapper and I spent the last week or two wrangling the data out of the buffers and into the application. The cameras are pretty cool, they spew out 1620×1220 frames at about 300 milliseconds a frame in Bayer 8, and about 500ms in rgb24. The driver they gave us has a really quick conversion from Bayer 8 built in, so we went with that.

The big problem moving to these from the Nikon kits we had, is that the Nikons had their own processing box that did the work of converting the raw data into jpegs. They work pretty fast, around 250ms a frame, but those are 320×240 frames, 640×480 take a tiny bit longer.

Anyway, without that processing box, we have that load moved directly onto our weak little clients, which take about 3 seconds to crush a frame down to a 320×240 jpeg with Magick++. So we decided to just do a raw, fullscreen live image, and it is really cool.

The point of all this introduction is that I like the little guys, and were they under 2 grand I might buy one for myself. Regardless, I get to play with one at work, so here are some pictures I took when we were still working on the full screen mode. They have, of course, been compressed down from the full size. Click through for a 640×480 version.

DigiPro Tablet And Linux

March 18, 2007 » Geek

A few days ago I finally gave in to the two-for-one tablet deal at geeks.com. On a side note, I’ve always had very good luck with geeks.com, good stuff, right price, no problems. Anyway, I gave in and bought myself two of the DigiPro 5.5″x4″ drawing tablets, Model No. WP5540. I tried to find some compatability information about the tablet and linux, but couldn’t.

I got it yesterday, hooked it up and its working just fine. I don’t know about the “512 Pressure Levels”, since I’m not sure what app on my machine would take pressure levels anyway. The GIMP didn’t seem to act any different however. I did uncomment the information for a wacom tablet in my xorg.conf and restarted my X server, but I haven’t tried it without that change, so it may not be necessary.

5.5″x4″ is about as small as it sounds, but it really isn’t that big of a deal. There is plenty of fine control on the tablet, and it’s more than big enough for me. I intend to use it when I’m working in the gimp, for fine control of the lasso tool, etc. If it had a scroll wheel on it, I think I’d replace my mouse, it’s that comfy. Plus you can roll the pen between fingers and type just fine. No more grabbing the mouse every few seconds.

For the record I’m on Mepis, whatever is current there, with kernel 2.6.15-26-386.

Holy Cow, Java Serial Goodness!

December 1, 2006 » Geek

I got my Arduino board today, and I went to check out the IDE. It’s written in Java. Holy freakin’ cow. Couldn’t be more perfect because it’s all written and released under the LGPL! I found the Serial.java in the SVN trunk, and I’m reasonably certain I can figure it out enough to use it. You wouldn’t believe how happy I am right now. I need some breadboard and LED’s.