Akkana's Musings on Open Source Computing and Technology, Science, and Nature.
Thu, 16 Oct 2014
Last week both of the local mountain ranges turned gold simultaneously
as the aspens turned. Here are the Sangre de Cristos on a stormy day:
And then over the weekend, a windstorm blew a lot of those leaves away,
and a lot of the gold is gone now. But the aspen groves are still
beautiful up close ... here's one from Pajarito Mountain yesterday.
[ 13:37 Oct 16, 2014
More nature |
permalink to this entry |
Sat, 11 Oct 2014
or: Smart communities can still be stupid
I attended my first Los Alamos County Council meeting yesterday.
What a railroad job!
The controversial issue of the day was the town's "branding".
Currently, as you drive into Los Alamos on highway 502, you pass a
tasteful rock sign proclaiming "LOS ALAMOS: WHERE DISCOVERIES ARE MADE".
But back in May,
the county council announced the unanimous approval of a new slogan, for which
they'd paid an ad agency some $55,000:
As you might expect in a town full of scientists, the announcement
was greeted with much dismay. What is it supposed to mean, anyway? Is it a
reference to exponential population growth? Malignant tumor growth?
Gaining lots of weight as we age?
The local online daily, tired of printing the flood of letters
protesting the stupid new slogan, ran a
about the "Live Exponentially" slogan. The results were that
8.24% liked it, 72.61% didn't, and 19.16% didn't like it and offered
alternatives or comments. My favorites were Dave's suggestion of
"It's Da Bomb!", and a suggestion from another reader, "Discover Our
Secrets"; but many of the alternate suggestions were excellent,
or hilarious, or both -- follow the link to read them all.
For further giggles, try a web search on the term.
If you search without quotes, Ebola tops the list.
With quotes, you get mostly religious tracts and motivational speakers.
The Council Meeting
(The rest of this is probably only of interest to Los Alamos folk.)
Dave read somewhere -- it wasn't widely announced -- that Friday's
council meeting included an agenda item to approve spending $225,000
-- yes, nearly a quarter of a million dollars -- on "brand implementation".
Of course, we had to go.
In the council discussion leading up to the call for public comment,
everyone spoke vaguely of "branding" without mentioning the slogan.
Maybe they hoped no one would realize what they were really voting for.
But in the call for public comment, Dave raised the issue
and urged them to reconsider the slogan.
Kristin Henderson seemed to have quite a speech prepared.
She acknowledged that "people who work with math" universally thought
the slogan was stupid, but she said that people from a
liberal arts background, like herself, use the term to mean hiking,
living close to nature, listening to great music, having smart friends
and all the other things that make this such a great place to live.
(I confess to being skeptical -- I can't say I've ever heard
"exponential" used in that way.)
Henderson also stressed the research and effort that had already gone
into choosing the current slogan, and dismissed the idea that spending
another $50,000 on top of the $55k already spent would be "throwing
money after bad." She added that showing the community some images to
go with the slogan might change people's minds.
David Izraelevitz admitted that being an engineer, he initially didn't
like "Live Exponentially". But he compared it to Apple's "Think
Different": though some might think it ungrammatical, it turned out to
be a highly successful brand because it was coupled with pictures of
Gandhi and Einstein. (Hmm, maybe that slogan should be "Live Exponential".)
Izraelevitz described how he convinced a local business owner by
showing him the ad agency's full presentation, with pictures as well
as the slogan, and said that we wouldn't know how effective the slogan
was until we'd spent the $50k for logo design and an implementation
plan. If the council didn't like the results they could choose not to
go forward with the remaining $175,000 for "brand implementation".
(Councilor Fran Berting had previously gotten clarification that those
two parts of the proposal were separate.)
Rick Reiss said that what really mattered was getting business owners
to approve the new branding -- "the people who would have to use it."
It wasn't so important what people in the community thought, since
they didn't have logos or ads that might incorporate the new branding.
Pete Sheehey spoke up as the sole dissenter. He pointed out that most
of the community input on the slogan has been negative, and that
should be taken into account. The proposed slogan might have a
positive impact on some people but it would have a negative impact on
others, and he couldn't support the proposal.
Fran Berting said she was "not all that taken" with the slogan,
but agreed with Izraelevitz that we wouldn't know if it was any good
without spending the $50k. She echoed the "so much work has
already gone into it" argument.
Reiss also echoed "so much work", and that he
liked the slogan because he saw it in print with a picture.
But further discussion was cut off. It was 1:30, the fixed end
time for the meeting, and chairman Geoff Rodgers (who had pretty much
stayed out of the discussion to this point) called for a vote.
When the roll call got to Sheehey, he objected to the forced vote
while they were still in the middle of a discussion.
But after a brief consultation on Robert's Rules of Order,
chairman Rogers declared the discussion over and said the vote would
continue. The motion was approved 5-1.
The Exponential Railroad
Quite a railroading. One could almost think it had been planned that way.
First, the item was listed as one of two in the "Consent Agenda" --
items which were expected to be approved all together in one vote with
no discussion or public comment. It was moved at the last minute into
"Business"; but that put it last on the agenda.
Normally that wouldn't have mattered. But although the council
more often meets in the evenings and goes as long as it needs to,
Friday's meeting had a fixed time of noon to 1:30. Even I could see
that wasn't much time for all the items on the agenda.
And that mid-day timing meant that working folk weren't likely to be
able to listen or comment. Further, the branding issue didn't come up
until 1 pm, after some of the audience had already left to go back to work.
As a result, there were only two public comments.
I heard three main arguments repeated by every council member who
spoke in favor:
- the slogan makes much more sense when viewed with pictures --
they all voted for it because they'd seen it presented with visuals;
- a lot of time, effort and money has already gone into
this slogan, so it didn't make sense to drop it now; and
- if they didn't like the logo after spending the first $50k,
they didn't have to approve the other $175k.
The first argument doesn't make any sense. If the pictures the council
saw were so convincing, why weren't they showing those images
to the public? Why spend an additional $50,000 for different pictures?
I guess $50k is just pocket change, and anyone who thinks
it's a lot of money is just being silly.
As for the second and third, they contradict each other.
If most of the board thinks now that the initial $50k contract was
so much work that we have to go forward with the next $50k, what
are the chances that they'll decide not to continue after they've
already invested $100k?
Exponentially low, I'd say.
I was glad of one thing, though. As a newcomer to the area faced with
a ballot next month, it was good to see the council members in
action, seeing their attitudes toward spending and how much they
care about community input. That will be helpful come ballot time.
If you're in the same boat but couldn't make the meeting, catch the
October 10, 2014 County Council Meeting video.
[ 12:54 Oct 11, 2014
More politics |
permalink to this entry |
Wed, 08 Oct 2014
We park the Rav4 outside, under an overhang.
A few weeks ago, we raised the hood to check the oil before heading
out on an adventure, and discovered a nest of sticks and grass wedged
in above the valve cover. (Sorry, no photos -- we were in a hurry
to be off and I didn't think to grab the camera.)
Pack rats were the obvious culprits, of course.
There are lots of them around, and we've
quite a few pack rats in our live traps. Knowing that rodents
can be a problem since they like to chew through hoses and wiring,
we decided we'd better keep an eye on the Rav and maybe investigate
some sort of rodent-repelling technology.
Sunday, we got back from another adventure, parked the Rav in its usual
place, went inside to unload before heading out for an evening walk,
and when we came back out, there was a small flock of birds hanging
around under the Rav. Towhees! Not only hanging around under the
still-warm engine, but several times we actually saw one fly between
the tires and disappear.
Could towhees really be our engine nest builders? And why would they
be nesting in fall, with the days getting shorter and colder?
I'm keeping an eye on that engine compartment now, checking every few
days. There are still a few sticks and juniper sprigs in there, but
no real nest has reappeared so far. If it does, I'll post a photo.
[ 18:10 Oct 08, 2014
More nature |
permalink to this entry |
Thu, 02 Oct 2014
The wonderful summer thunderstorm season here seems to have died down.
But while it lasted, we had some spectacular double rainbows.
And I kept feeling frustrated when I took the SLR outside only to find
that my 18-55mm kit lens was nowhere near wide enough to capture it.
I could try
it together as a panorama, but panoramas of rainbows turn out to
be quite difficult -- there are no clean edges in the photo to tell
you where to join one image to the next, and automated programs like
Hugin won't even try.
There are plenty of other beautiful vistas here too -- cloudscapes,
mesas, stars. Clearly, it was time to invest in a wide-angle lens. But
how wide would it need to be to capture a double rainbow?
All over the web you can find out that a rainbow has a radius of 42
degrees, so you need a lens that covers 84 degrees to get the whole thing.
But what about a double rainbow? My web searches came to naught.
Lots of pages talk about double rainbows, but Google wasn't finding
anything that would tell me the angle.
I eventually gave up on the web and went to my physical bookshelf,
where Color and Light in Nature gave me a nice table
of primary and secondary rainbow angles of various wavelengths of light.
It turns out that 42 degrees everybody quotes is for light of 600 nm
wavelength, a blue-green or cyan color. At that wavelength, the
primary angle is 42.0° and the secondary angle is 51.0°.
Armed with that information, I went back to Google and searched for
double rainbow 51 OR 102 angle and found a nice Slate
article on a
rainbow and lightning photo. The photo in the article, while
lovely (lightning and a double rainbow in the South Dakota badlands),
only shows a tiny piece of the rainbow, not the whole one I'm hoping
to capture; but the article does mention the 51-degree angle.
Okay, so 51°×2 captures both bows in cyan light.
But what about other wavelengths?
A typical eye can see from about 400 nm (deep purple)
to about 760 nm (deep red). From the table in the book:
|Wavelength ||Primary ||Secondary
|400 ||40.5° ||53.7°
|600 ||42.0° ||51.0°
|700 ||42.4° ||50.3°
Notice that while the primary angles get smaller with shorter
wavelengths, the secondary angles go the other way. That makes sense
if you remember that the outer rainbow has its colors reversed from
the inner one: red is on the outside of the primary bow, but the
inside of the secondary one.
So if I want to photograph a complete double rainbow in one shot,
I need a lens that can cover at least 108 degrees.
What focal length lens does that translate to?
Astronomical Adventures has a nice focal length calculator.
If I look up my Rebel XSi on Wikipedia to find out that other
countries call it a 450D, and plug that in to the calculator, then
try various focal lengths (the calculator offers a chart but it didn't
work for me), it turns out that I need an 8mm lens, which will give me
an 108° 26‘ 46" field of view -- just about right.
So that's what I ordered -- a Rokinon 8mm fisheye. And it turns out to
be far wider than I need -- apparently the actual field of view in
fisheyes varies widely from lens to lens, and this one claims to have
a 180° field. So the focal length calculator isn't all that useful.
At any rate, this lens is plenty wide enough to capture those double
rainbows, as you can see.
About those books
By the way, that book I linked to earlier is apparently out of print
and has become ridiculously expensive. Another excellent book on
atmospheric phenomena is
and Color in the Outdoors by Marcel Minnaert
(I actually have his earlier version, titled
Nature of Light and Color in the Open Air). Minnaert doesn't
give the useful table of frequencies and angles, but he has lots
of other fun and useful information on rainbows and related phenomena,
including detailed instructions for making rainbows indoors if you
want to measure angles or other quantities yourself.
[ 13:37 Oct 02, 2014
More photo |
permalink to this entry |
Sat, 27 Sep 2014
In the canyons below White Rock there are many wonderful petroglyphs,
some dating back many centuries, like this jaguar:
as well as collections like these:
Of course, to see them you have to negotiate a trail down the basalt cliff
Up the hill in Los Alamos there are petroglyphs too, on trails that are
a bit more accessible ... but I suspect they're not nearly so old.
[ 21:47 Sep 27, 2014
More humor |
permalink to this entry |
Mon, 22 Sep 2014
I had the opportunity to borrow a commercial crittercam
for a week from the local wildlife center.
Having grown frustrated with the high number of false positives on my
Raspberry Pi based
crittercam, I was looking forward to see how a commercial camera compared.
The Bushnell Trophycam I borrowed is a nicely compact,
waterproof unit, meant to strap to a tree or similar object.
It has an 8-megapixel camera that records photos to the SD card -- no
wi-fi. (I believe there are more expensive models that offer wi-fi.)
The camera captures IR as well as visible light, like the PiCam NoIR,
and there's an IR LED illuminator (quite a bit stronger than the cheap
one I bought for my crittercam) as well as what looks like a passive IR sensor.
I know the TrophyCam isn't immune to false positives; I've heard
complaints along those lines from a student who's using them to do
wildlife monitoring for LANL.
But how would it compare with my homebuilt crittercam?
I put out the TrophyCam first night, with bait (sunflower seeds) in
front of the camera. In the morning I had ... nothing. No false
positives, but no critters either. I did have some shots of myself,
walking away from it after setting it up, walking up to it to adjust
it after it got dark, and some sideways shots while I fiddled with the
latches trying to turn it off in the morning, so I know it was
working. But no woodrats -- and I always catch a woodrat or two
in PiCritterCam runs. Besides, the seeds I'd put out were gone,
so somebody had definitely been by during the night. Obviously
I needed a more sensitive setting.
I fiddled with the options, changed the sensitivity from automatic
to the most sensitive setting, and set it out for a second night, side
by side with my Pi Crittercam. This time it did a little better,
though not by much: one nighttime shot with a something in it,
plus one shot of someone's furry back and two shots of a mourning dove
What few nighttime shots there were were mostly so blown out you
couldn't see any detail to be sure. Doesn't this camera know how to
adjust its exposure? The shot here has a creature in it. See it?
I didn't either, at first. It's just to the right of the bush.
You can just see the curve of its back and the beginning of a tail.
Meanwhile, the Pi cam sitting next to it caught eight reasonably exposed
nocturnal woodrat shots and two dove shots after dawn.
And 369 false positives where a leaf had moved in the wind or a dawn
shadow was marching across the ground. The TrophyCam only shot 47
photos total: 24 were of me, fiddling with the camera setup to get
them both pointing in the right direction, leaving 20 false positives.
So the Bushnell, clearly, gives you fewer false positives to hunt
through -- but you're also a lot less likely to catch an actual critter.
It also doesn't deal well with exposures in small areas and close distances:
its IR light source seems to be too bright for the camera to cope with.
I'm guessing, based on the name, that it's designed for shooting
deer walking by fifty feet away, not woodrats at a two-foot distance.
Okay, so let's see what the camera can do in a larger space. The next
two nights I set it up in large open areas to see what walked by. The
first night it caught four rabbit shots that night, with only five
false positives. The quality wasn't great, though: all long exposures
of blurred bunnies. The second night it caught nothing at all
overnight, but three rabbit shots the next morning. No false positives.
The final night, I strapped it to a piñon tree facing a little
clearing in the woods. Only two morning rabbits, but during the night
it caught a coyote. And only 5 false positives. I've never caught a
coyote (or anything else larger than a rabbit) with the PiCam.
So I'm not sure what to think. It's certainly a lot more relaxing to
go through the minimal output of the TrophyCam to see what I caught.
And it's certainly a lot easier to set up, and more waterproof, than
my jury-rigged milk carton setup with its two AC cords, one for the Pi
and one for the IR sensor. Being self-contained and battery operated
makes it easy to set up anywhere, not just near a power plug.
But it's made me rethink my pessimistic notion that I should give up
on this homemade PiCam setup and buy a commercial camera.
Even on its most sensitive setting, I can't make the TrophyCam
sensitive enough to catch small animals.
And the PiCam gets better picture quality than the Bushnell, not to
mention the option of hooking up a separate camera with flash.
So I guess I can't give up on the Pi setup yet. I just have to come up
with a sensible way of taming the false positives. I've been doing a lot
of experimenting with SimpleCV image processing, but alas, it's no better
at detecting actual critters than my simple pixel-counting script was.
But maybe I'll find the answer, one of these days. Meanwhile, I may
look into battery power.
[ 14:29 Sep 22, 2014
More hardware |
permalink to this entry |
Thu, 18 Sep 2014
A female hummingbird -- probably a black-chinned -- hanging out at
our window feeder on a cool cloudy morning.
[ 19:04 Sep 18, 2014
More nature/birds |
permalink to this entry |
Sun, 14 Sep 2014
Global key bindings in emacs. What's hard about that, right?
Just something simple like
(global-set-key "\C-m" 'newline-and-indent)
and you're all set.
global-set-key gives you a nice key binding
that works ... until the next time you load a mode that wants
to redefine that key binding out from under you.
For many years I've had a huge collection of mode hooks that run when
specific modes load. For instance, python-mode defines \C-c\C-r, my
binding that normally runs revert-buffer, to do something called run-python.
I never need to run python inside emacs -- I do that in a shell window.
But I fairly frequently want to revert a python file back to the last
version I saved. So I had a hook that ran whenever python-mode loaded
to override that key binding and set it back to what I'd already set
(defun reset-revert-buffer ()
(define-key python-mode-map "\C-c\C-r" 'revert-buffer) )
(setq python-mode-hook 'reset-revert-buffer)
That worked fine -- but you have to do it for every mode that
overrides key bindings and every binding that gets overridden.
It's a constant chase, where you keep needing to stop editing
whatever you wanted to edit and go add yet another mode-hook to
.emacs after chasing down which mode is causing the problem.
There must be a better solution.
A web search quickly led me to the StackOverflow discussion
override key bindings. I tried the techniques there; but they
It took a lot of help from the kind folks on #emacs, but after an hour
or so they finally found the key:
documented -- the key there is "The “active” keymaps in each alist
are used before minor-mode-map-alist and minor-mode-overriding-map-alist" --
and there seem to be no examples anywhere on the web for how to use it.
It's a list of alists mapping names to keymaps. Oh, clears it right up! Right?
Okay, here's what it means. First you define a new keymap and add your
bindings to it:
(defvar global-keys-minor-mode-map (make-sparse-keymap)
(define-key global-keys-minor-mode-map "\C-c\C-r" 'revert-buffer)
(define-key global-keys-minor-mode-map (kbd "C-;") 'insert-date)
Now define a minor mode that will use that keymap. You'll use that
minor mode for basically everything.
"A minor mode so that global key settings override annoying major modes."
t "global-keys" 'global-keys-minor-mode-map)
Now build an alist consisting of a list containing a single dotted
pair: the name of the minor mode and the keymap.
;; A keymap that's supposed to be consulted before the first
(defconst global-minor-mode-alist (list (cons 'global-keys-minor-mode
Finally, set emulation-mode-map-alists to a list containing only
(setf emulation-mode-map-alists '(global-minor-mode-alist))
There's one final step. Even though you want these bindings to be
global and work everywhere, there is one place where you might not
want them: the minibuffer. To be honest, I'm not sure if this part
is necessary, but it sounds like a good idea so I've kept it.
(defun my-minibuffer-setup-hook ()
(add-hook 'minibuffer-setup-hook 'my-minibuffer-setup-hook)
Whew! It's a lot of work, but it'll let me clean up my .emacs file and
save me from endlessly adding new mode-hooks.
[ 16:46 Sep 14, 2014
More linux/editors |
permalink to this entry |