Shallow Thoughts : : Jul
Akkana's Musings on Open Source Computing and Technology, Science, and Nature.
Thu, 30 Jul 2015
It's been a good week for unusual wildlife.
We got a surprise a few nights ago when flipping the porch light on
to take the trash out: a bat was clinging to the wall just outside
the front door.
It was tiny, and very calm -- so motionless we feared it was dead.
(I took advantage of this to run inside and grab the camera.)
It didn't move at all while we were there. The trash mission
accomplished, we turned out the light and left the bat alone.
Happily, it wasn't ill or dead: it was gone a few hours later.
We see bats fairly regularly flying back and forth across the
patio early on summer evenings -- insects are apparently attracted
to the light visible through the windows from inside, and the bats
follow the insects. But this was the first close look I'd had at a
stationary bat, and my first chance to photograph one.
I'm not completely sure what sort of bat it is: almost certainly
some species of Myotis (mouse-eared bats), and most likely
M. yumanensis, the "little brown bat". It's hard to be sure,
though, as there are at least six species of Myotis known in the area.
We've had several woodrats recently try to set up house near the house or
the engine compartment of our Rav4, so we've been setting traps regularly.
Though woodrats are usually nocturnal, we caught one in broad daylight as
it explored the area around our garden pond.
But the small patio outside the den seems to be a particular draw for
them, maybe because it has a wooden deck with a nice dark space under it
for a rat to hide. We have one who's been leaving offerings -- pine
cones, twigs, leaves -- just outside the door (and less charming rat
droppings nearby), so one night Dave set three traps all on that deck.
I heard one trap clank shut in the middle of the night, but when
I checked in the morning, two traps were sprung without any occupants
and the third was still open.
But later that morning, I heard rattling from outside the door.
Sure enough, the third trap was occupied and the occupant was darting
between one end and the other, trying to get out. I told Dave we'd
caught the rat, and we prepared to drive it out to the parkland where
we've been releasing them.
And then I picked up the trap, looked in -- and discovered it was a
pretty funny looking woodrat. With a furry tail and stripes.
A chipmunk! We've been so envious of the folks who live out on the
canyon rim and are overloaded with chipmunks ... this is only the
second time we've seen here, and now it's probably too spooked to
stick around.
We released it near the woodpile, but it ran off away from the house.
Our only hope for its return is that it remembers the nice peanut
butter snack it got here.
Later that day, we were on our way out the door, late for a meeting,
when I spotted a small lizard in the den. (How did it get in?)
Fast and lithe and purple-tailed, it skittered under the sofa as soon
as it saw us heading its way.
But the den is a small room and the lizard had nowhere to go. After
upending the sofa and moving a couple of tables, we cornered it by the
door, and I was able to trap it in my hands without any damage to its tail.
When I let it go on the rocks outside, it calmed down
immediately, giving me time to run for the camera.
Its gorgeous purple tail doesn't show very well, but at least the photo
was good enough to identify it as a juvenile Great Plains skink.
The adults look more like Jabba the Hut
nothing like the lovely little juvenile we saw.
We actually saw an adult this spring (outside), when we were clearing
out a thick weed patch and disturbed a skink from its hibernation.
And how did this poor lizard get saddled with a scientfic
name of Eumeces obsoletus?
Tags: nature, wildlife, bat, lizard, chipmunk, trap
[
11:07 Jul 30, 2015
More nature |
permalink to this entry |
]
Sun, 26 Jul 2015
I've had no end of trouble with my Asus 1015E's trackpad.
A discussion of laptops on a mailing list -- in particular, someone's
concerns that the nifty-looking Dell XPS 13, which is available preloaded
with Linux, has had reviewers say that the trackpad doesn't work well --
reminded me that I'd never posted my final solution.
The Asus's trackpad has two problems. First, it's super sensitive to
taps, so if any part of my hand gets anywhere near the trackpad while
I'm typing, suddenly it sees a mouse click at some random point on the
screen, and instead of typing into an emacs window suddenly I find I'm
typing into a live IRC client. Or, worse, instead of typing my
password into a password field, I'm typing it into IRC.
That wouldn't have been so bad on the old style of trackpad, where I
could just turn off taps altogether and use the hardware buttons; this
is one of those new-style trackpads that doesn't have any actual buttons.
Second, two-finger taps don't work. Three-finger taps work just fine,
but two-finger taps: well, I found when I wanted a right-click (which
is what two-fingers was set up to do), I had to go TAP, TAP, TAP, TAP
maybe ten or fifteen times before one of them would finally take.
But by the time the menu came up, of course, I'd done another tap
and that canceled the menu and I had to start over. Infuriating!
I struggled for many months with synclient's settings for tap
sensitivity and right and left click emulation. I tried enabling
syndaemon, which is supposed to disable clicks as long as you're
typing then enable them again afterward, and spent months playing
with its settings, but in order to get it to work at all, I had to
set the timeout so long that there was an infuriating wait after I
stopped typing before I could do anything.
I was on the verge of giving up on the Asus and going back to
my Dell Latitude 2120, which had an excellent trackpad (with buttons)
and the world's greatest 10" laptop keyboard. (What the Dell doesn't
have is battery life, and I really hated to give up the Asus's light
weight and 8-hour battery life.) As a final, desperate option, I
decided to disable taps completely.
Disable taps? Then how do you do a mouse click?
I theorized, with all Linux's flexibility, there must be some way to
get function keys to work like mouse buttons. And indeed there is.
The easiest way seemed to be to use xmodmap (strange to find xmodmap
being the simplest anything, but there you go). It turns out that a
simple line like
xmodmap -e "keysym F1 = Pointer_Button1"
is most of what you need. But to make it work, you need to enable
"mouse keys":
xkbset m
But for reasons unknown, mouse keys will expire after some set timeout
unless you explicitly tell it not to. Do that like this:
xkbset exp =m
Once that's all set up, you can disable single-finger taps with synclient:
synclient TapButton1=0
Of course, you can disable 2-finger and 3-finger taps by setting them
to 0 as well. I don't generally find them a problem (they don't work
reliably, but they don't fire on their own either), so I left them enabled.
I tried it and it worked beautifully for left click. Since I was still
having trouble with that two-finger tap for right click, I put that on
a function key too, and added middle click while I was at it. I don't
use function keys much, so devoting three function keys to mouse
buttons wasn't really a problem.
In fact, it worked so well that I decided it would be handy to have
an additional set of mouse keys over on the other side of the keyboard,
to make it easy to do mouse clicks with either hand. So I defined
F1, F2 and F3 as one set of mouse buttons, and F10, F11 and F12 as another.
And yes, this all probably sounds nutty as heck. But it really is a
nice laptop aside from the trackpad from hell; and although I thought
Fn-key mouse buttons would be highly inconvenient, it took surprisingly
little time to get used to them.
So this is what I ended up putting in .config/openbox/autostart file.
I wrap it in a test for hostname, since I like to be able to use the
same configuration file on multiple machines, but I don't need this
hack on any machine but the Asus.
if [ $(hostname) == iridum ]; then
synclient TapButton1=0 TapButton2=3 TapButton3=2 HorizEdgeScroll=1
xmodmap -e "keysym F1 = Pointer_Button1"
xmodmap -e "keysym F2 = Pointer_Button2"
xmodmap -e "keysym F3 = Pointer_Button3"
xmodmap -e "keysym F10 = Pointer_Button1"
xmodmap -e "keysym F11 = Pointer_Button2"
xmodmap -e "keysym F12 = Pointer_Button3"
xkbset m
xkbset exp =m
else
synclient TapButton1=1 TapButton2=3 TapButton3=2 HorizEdgeScroll=1
fi
Tags: linux, laptop, trackpad, synaptics, synclient, syndaemon, xmodmap
[
20:54 Jul 26, 2015
More linux |
permalink to this entry |
]
Sun, 19 Jul 2015
I'm sure I'm not the only one who's forever trying to plug in a USB cable
only to find it upside down. And then I flip it and try it the other
way, and that doesn't work either, so I go back to the first side,
until I finally get it plugged in, because there's no easy way to
tell visually which way the plug is supposed to go.
It's true of nearly all of the umpteen variants of USB plug: almost
all of them differ only subtly from the top side to the bottom.
And to "fix" this, USB cables are built so that they have subtly raised
indentations which, if you hold them to the light just right so you can
see the shadows, say "USB" or have the little USB trident on the top side:
In an art store a few weeks ago, Dave had a good idea.
He bought a white paint marker, and we've used it to paint the logo side
of all our USB cables.
Tape the cables down on the desk -- so they don't flop around while
the paint is drying -- and apply a few dabs of white paint to the logo
area of each connector. If you're careful you might be able to fill in
the lowered part so the raised USB symbol stays black; or to paint only
the raised USB part. I tried that on a few cables, but after the fifth
or so cable I stopped worrying about whether I was ending up with a
pretty USB symbol and just started dabbing paint wherever was handy.
The paint really does make a big difference. It's much easier now to
plug in USB cables, especially micro USB, and I never go through that
"flip it over several times" dance any more.
Tags: hardware, maker
[
20:37 Jul 19, 2015
More hardware |
permalink to this entry |
]
Tue, 14 Jul 2015
After months of at most one hummingbird at the feeders every 15 minutes
or so, yesterday afternoon the hummingbirds here all suddenly went
crazy. Since then, my patio looks like a tiny Battle of Britain,
There are at least four males involved in the fighting, plus a couple
of females who sneak in to steal a sip whenever the principals retreat
for a moment.
I posted that to the local birding list and someone came up with a
better comparison: "it looks like a Quidditch game on the back porch".
Perfect! And someone else compared the hummer guarding the feeder to
"an avid fan at Wimbledon", referring to the way his head keeps
flicking back and forth between the two feeders under his control.
Last year I never saw anything like this. There was a week or so at
the very end of summer where I'd occasionally see three hummingbirds
contending at the very end of the day for their bedtime snack, but
no more than that. I think putting out more feeders has a lot to do
with it.
All the dogfighting (or quidditch) is amazing to watch, and to listen
to. But I have to wonder how
these little guys manage to survive when they spend all their time
helicoptering after each other and no time actually eating. Not to
mention the way the males chase females away from the food when the
females need to be taking care of chicks.
I know there's a rufous hummingbird (shown above) and a broad-tailed
hummingbird -- the broad-tailed makes a whistling sound with his wings
as he dives in for the attack. I know there a black-chinned hummer
around because I saw his characteristic tail-waggle as he used the
feeder outside the nook a few days before the real combat started.
But I didn't realize until I checked my photos this morning that one
of the combatants is a calliope hummingbird. They're usually the
latest to arrive, and the rarest. I hadn't realized we had any
calliopes yet this year, so I was very happy to see the male's throat
streamers when I looked at the photo. So all four of the
species we'd normally expect to see here in northern New Mexico
are represented.
I've always envied places that have a row of feeders and dozens of
hummingbirds all vying for position. But I would put out two
feeders and never see them both occupied at once -- one male always
keeps an eye on both feeders and drives away all competitors, including
females -- so putting out a third feeder seemed pointless. But late
last year I decided to try something new: put out more feeders, but
make sure some of them are around the corner hidden from the main
feeders. Then one tyrant can't watch them all, and other hummers
can establish a beachhead.
It seems to be working: at least, we have a lot more activity so far
than last year, even though I never seem to see any hummers at the
fourth feeder, hidden up near the bedroom. Maybe I need to move that one;
and I just bought a fifth, so I'll try putting that somewhere on the other
side of the house and see how it affects the feeders on the patio.
I still don't have dozens of hummingbirds like some places have
(the Sopaipilla Factory restaurant in Pojoaque is the best place I've
seen around here to watch hummingbirds). But I'm making progress
Tags: hummingbirds, birds
[
12:45 Jul 14, 2015
More nature |
permalink to this entry |
]
Thu, 09 Jul 2015
For a year or so, I've been appending "output=classic" to any Google
Maps URL. But Google disabled Classic mode last month.
(There have been
a
few other ways to get classic Google maps back, but Google is gradually
disabling them one by one.)
I have basically three problems with the new maps:
- If you search for something, the screen is taken up by a huge
box showing you what you searched for; if you click the "x" to dismiss
the huge box so you can see the map underneath, the box disappears but
so does the pin showing your search target.
- A big swath at the bottom of the screen is taken up by a filmstrip
of photos from the location, and it's an extra click to dismiss that.
- Moving or zooming the map is very, very slow: it relies on OpenGL
support in the browser, which doesn't work well on Linux in general,
or on a lot of graphics cards on any platform.
Now that I don't have the "classic" option any more, I've had to find
ways around the problems -- either that, or switch to Bing maps.
Here's how to make the maps usable in Firefox.
First, for the slowness: the cure is to disable webgl in Firefox.
Go to about:config
and search for webgl.
Then doubleclick on the line for webgl.disabled
to make it
true
.
For the other two, you can add userContent lines to tell
Firefox to hide those boxes.
Locate your
Firefox profile.
Inside it, edit chrome/userContent.css (create that file
if it doesn't already exist), and add the following two lines:
div#cards { display: none !important; }
div#viewcard { display: none !important; }
Voilà! The boxes that used to hide the map are now invisible.
Of course, that also means you can't use anything inside them; but I
never found them useful for anything anyway.
Tags: web, tech, mapping, firefox
[
10:54 Jul 09, 2015
More tech/web |
permalink to this entry |
]
Fri, 03 Jul 2015
I wrote last week about
developing
apps with PhoneGap/Cordova. But one thing I didn't cover.
When you type cordova build
, you're building only a
debug version of your app. If you want to release it, you have to sign it.
Figuring out how turned out to be a little tricky.
Most pages on the web say you can sign your apps by creating
platforms/android/ant.properties with the same keystore
information in it that you'd put in an
ant
build, then running
cordova build android --release
But Cordova completely ignored my ant.properties file and
went on creating a debug .apk file and no signed one.
I found various other purported solutions on the web, like creating
a build.json file in the app's top-level directory ... but that
just made Cordova die with a syntax error inside one of its own files).
This is the only method
that worked for me:
Create a file called
platforms/android/release-signing.properties, and put this in it:
storeFile=/path/to/your-keystore.keystore
storeType=jks
keyAlias=some-key
// if you don't want to enter the password at every build, use this:
keyPassword=your-key-password
storePassword=your-store-password
Then
cordova build android --release
finally works, and creates a file called
platforms/android/build/outputs/apk/android-release.apk
Tags: android, programming, PhoneGap, Cordova
[
18:02 Jul 03, 2015
More programming |
permalink to this entry |
]