August 31, 2010

Sarah Nelson: Walking with Bethany and Emma

posted at 11:59 PM.

August 27, 2010

John Pederson: Other People Should Make My Life Easier

I'd like to be able to do something like this
try {
    /* and then, a miracle occurs! */
} catch (BarException beFoo => String.Equals(be.Property, "Foo")) {
    // foo handler
} catch (BarException beBar => String.Equal(be.Property, "Bar")) {
    // bar handler
} catch (BarException be) {
    // general BarException handler
}
Mostly because it seems slightly cleaner than the current approach to handling, e. g., OracleExceptions, where one might care about some of the error codes represented by the exception, but not all of them:
try {
    /* and then, a miracle occurs! */
} catch (BarException be) {
    if (String.Equals(be.Property, "Foo")) {
    // foo handler
    } else if (String.Equals(be.Property, "Bar")) {
    // bar handler
    } else {
    // general BarException handler
    }
}
Some flexibility is lost vs. using if-else statements instead, but you could produce the same thing with typeof and nobody sane does that if they can get out of it, either. Semantically, it's pretty much equivalent and, syntactically, it's more verbose (to no obvious semantic advantage), so I'm sure it's not actually a good idea. (Additional evidence it's a bad idea: I'm sure I'm not the first to hit on this idea, yet it isn't implement in C# as far as I can tell. Presumably, those guys know what they're doing.)

Granted, it would be even better if Oracle would throw different exception types for different error codes instead of throwing the one type with slightly different data, but some problems seem, prima facie, less intractable than others.

posted at 12:00 AM.

August 26, 2010

Dave Heigl: Chicken house update

Here’s a picture of me (with a stupid grin) putting up chicken wire.

Perhaps 1/2 the chicken wire is up at this point.

Perhaps 1/2 the chicken wire is up at this point.

posted at 03:32 PM.

August 25, 2010

Sarah Nelson: 99 at home. It was 101 when I first looked.

posted at 08:27 PM.

August 20, 2010

Logan Bowers: I reply to the Internet

Some guy named John Cook begged the question! On the Internet!

I, of course, did my civic duty. I commented.

You are begging the question by defining “minimalism” as necessarily thoughtless. So, of course, minimalists are!

As you mentioned in the comments, “minimal” is a superlative meaning (roughly) “no less of X is possible.” You appear to define ‘X’ as “things necessary for life without conforming to required social norms.” But your more-minimalist-than-thou minimalists could just as easily have a different definition, e.g., their statement could be “Buy my book. I have only 39 things, while still maintaining appropriate social relationships with my friends!”

Indeed, it is good you did not link to the man in question because context because or facts could undermine your point; your hypothetical man, by definition, does give you things you want in exchange for the hypothetical things he needs from you. With context, he could have been a brilliant mathematician who trades knowledge, co-authorship, and bragging rights for a warm place to sleep. I'd take that over 4 eggs and a cup of flour any day.

Then again, maybe he’s just douché. I guess it depends on the minimalist instead of the minimalism.

posted at 01:19 AM.

August 19, 2010

Nathan Froyd: horns

So. Horns.

Great video.

Anyway, I have a persistent inability to throw horns. This affliction is probably due to a video watched in church as a youngster describing the evils of rock'n'roll. You know, the video that talked about pentagrams and the twisted lyrics that only emerge when playing Black Sabbath songs backwards? For whatever reason, the bit about the hand gestures lodged itself deeply into my neurons.

Instead of throwing horns, I invariably make the I love you sign. (I never noticed that it combined the three letters together; that's rather slick.) This quirk would also make me a terrible Texas Longhorns fan, as I'd be making gestures of peace and love to the Texas Aggies sitting across the stadium.

posted at 03:38 AM.

August 18, 2010

John Pederson: The Expendables

Summary: Big, dumb, loud, violent, and more fun than it has any right to be.

2.5/5

The Expendables is a terrible film. The acting is awful, the story is stupid, the premise is preposterous, the characters crummy. (It is, in fact, so awful I think it must be intentionally bad.) It is also awesome. Honestly, this was probably the most fun I've had in the movie theater in at least a year and a half. (And I thought A-Team was great fun, FWIW.)

Recommendation: If A-Team was too cerebral for you, this is your film.

posted at 12:00 AM.

August 06, 2010

Edward O'Connor: Running Gnus in a dedicated Emacs

Gnus is an awesome mail and news reader, but it can be a bit of a performance bear, especially when using IMAP. Since Emacs is single-threaded, IMAP operations that take too long can disconnect you from IRC, Jabber, or any number of other network services you also use from Emacs.

The typical solution to this problem is to run Gnus in a dedicated Emacs instance. Doing so is really easy—just make a gnus shell alias like so:

alias gnus 'emacs -f gnus'

The catch is, such an Emacs doesn't know it's a dedicated, Gnus-only Emacs. When I used this technique, it was always confusing that quitting Gnus didn't quit its Emacs.

We can use command-switch-alist to define a custom -gnus command line argument that does what we want. Here's what I have in my .emacs file:

(add-to-list
 'command-switch-alist
 '("gnus" . (lambda (&rest ignore)
              ;; Start Gnus when Emacs starts
              (add-hook 'emacs-startup-hook 'gnus t)
              ;; Exit Emacs after quitting Gnus
              (add-hook 'gnus-after-exiting-gnus-hook
                        'save-buffers-kill-emacs))))

To use the above, we just alter our shell alias to use our new argument:

alias gnus 'emacs -gnus'

The only other thing to keep in mind is how this sort of setup interacts with emacsclient. (This is a command that lets you edit files in an already-running Emacs.) I really only want emacsclient to open files in the other Emacs I have running, and not in my Gnus-only Emacs. Let's fix this by restricting when we start the server that emacsclient talks to.

(defvar ted-server-emacs t
  "If non-null, this emacs should run emacsclient.")

Now that we have a flag we can use, let's only call server-start when the flag's been raised:

(add-hook 'emacs-startup-hook
          (lambda ()
            (when ted-server-emacs
              (server-start))))

The only bit left to do is to (setq ted-server-emacs nil) inside the custom command line argument handler above.

posted at 11:37 PM.

Edward O'Connor: A simple shell lifehack

OpenSSH lets you use per-host settings in your ~/.ssh/config file, like so:

Host foo
HostName foo.example.com
ForwardX11 no

If you have the above in your ~/.ssh/config file, you can simply type ssh foo instead of ssh -x foo.example.com.

It’s pretty much always the case that I’ll fire up GNU Screen when SSHing into a remote host. Here’s some code that’s been banging around in my .cshrc for a few years. It sets up handy shell aliases for all of the machines I commonly SSH into:

set ssh_hosts=`grep '^Host [^*]' ~/.ssh/config|cut -c 6-`

foreach host ($ssh_hosts)
    alias $host "ssh -t $host screen -DR"
end

Now I can simply type foo and I’ll be up and running with a screen session on foo.example.com. If I want to SSH into a box without firing screen up, I simpy ssh foo directly.

Now that we have this handy ssh_hosts variable, we might as well use it for other things too, like for adding intelligent tab completion:

complete ssh 'p/1/$ssh_hosts/'

Now I can just type ssh f TAB RET and I’m good to go.

posted at 07:18 PM.

August 05, 2010

Dave Heigl: Chicken house started

I built the base for the chicken house/tractor tonight. It was a good feeling, to translate the image in my brain of what it *should* look like into a physical object. The next step will be to set up the hoops that will hold up the roof.

posted at 03:00 PM.

August 02, 2010

Kent Rosenkoetter: Untitled

And now it’s time to go carry my cats to bed with me, only to have them immediately jump out and run away. What use is it to have really soft cats if they absolutely will not cuddle no matter what?

posted at 12:04 PM.

August 01, 2010

Nathan Froyd: long time no see

So, I haven't blogged in a while. I experienced my first ever hard drive crash several weeks ago; that was a fun experience. But that's not why I haven't been blogging. I've mostly been busy in the evenings doing things with GCC, like writing huge, machine-generated patches. Anyway, here's some of the things I've been reading in the time since my last blog post.

Ask a Korean! Just what it sounds like. I hope the few Koreans in my life will be able to appreciate the humor--definitely read around. I came to the site through Best way to learn a foreign language, but being a geek, I also appreciated Why is Starcraft popular in Korea?.

Nothing like this will ever be built again”, Charlie Stross's writeup of a tour through a nuclear reactor. I did a report on nuclear reactors in fourth grade. I wrote the entire thing (with poster!) the night before. I got an A+. Mr. Stross's explanation is way better than my little report.

Notes from the No-Lone Zone, Matt Blaze's trip through a nuclear missile launch facility. To wit:

It's worth asking whether displaying a terrible artifact of 40 years on the edge of oblivion for all to see really makes good sense. The author Barbara Kingsolver visited the site after it first opened for public tours and concluded that it doesn't. “If a missile museum,” she wrote in her essay In the Belly of the Beast, “can do no more than stop up our mouths with either patriotic silence or desperation, it's a monument the living can't afford. I say slam its doors for good. Tip a cement truck to the silo's gullet and seal in the evil pharaoh...”

I disagree strongly, and not just because I was grateful for the chance to see this horrible and beautiful place for myself and to meet the people who served there. We owe it to them to listen to their stories and to ourselves to learn from them.

Catalog Living, “A look into the exciting people who live in your catalogs.” Writing up captions for Pottery Barn advertisements was never so funny. My favorites include Light up the sky, Staying warm, We are family, and Reading is fundamental.

Vacuum pockets. You really just have to read this one for yourself.

You were doing it wrong: a humorous collection of things people have learned throughout their lives. I think my favorite is this one, about learning to ask for help and about Atlas Shrugged.

This writeup succinctly explains why I will not be starting a small business anytime soon. I simply don't have the market sense to recognize opportunities for things like bingo card generators. Sounds like a nice little niche.

Mother Earth Mother Board is Neal Stephenson's travel log of tracking the longest wire on earth (“the hacker tourist ventures forth”). I can totally see where Douglas Shaftoe came from. It is, as you might expect, somewhat long, but a worthwhile read--and I've only read a third of it or so at this point. Really wish somebody would do a followup piece.

posted at 04:11 AM.

July 31, 2010

Kent Rosenkoetter: Brilliance in the War on Drugs!

From an article about police relying solely on a known faulty test for marijuana use: Speaking of the D-L test, they wrote that “mace, nutmeg and tea reacted with the modified Duquenois-Levine,” meaning that they produced false positives.

So if a cop maces a suspect, can the cop then bust them falsely for marijuana use too? You could punitively punish organized protesters with mace, and give yourself cause to prosecute them at the same time! Brilliant!

posted at 09:50 PM.

July 30, 2010

Ryan Johnson: Convert 720p/ac3 mkv to 720p/aac iPad-compatible mp4/m4v on Mac OS X Snow Leopard

# Video is not transcoded, just demuxed/muxed
# Audio is downmixed to stereo with DRC 
#
# You need these tools:
# * mkvextract (to demux the Matroska file)
#   * http://www.bunkus.org/videotools/mkvtoolnix/
#   * Just install through MacPorts, it doesn't pull in anything annoying
# * a52dec (to decompress and downmix the ac3)
#   * http://liba52.sourceforge.net/
#   * Compile from source
# * faac (to recompress the audio to mp4a/aac)
#   * http://www.audiocoding.com/
#   * Compile from source
# * MP4Box (to remux into MPEG-4 container) 
#   * http://kurtnoise.free.fr/mp4tools/
#   * Pre-compiled standalone OS X executable

mkvextract tracks ${BASE}.mkv 1:${BASE}.ac3 2:${BASE}.264
a52dec -o wav ${BASE}.ac3 > ${BASE}.wav
faac -b 96 --mpeg-vers 4 -o ${BASE}.aac ${BASE}.wav
MP4Box -add ${BASE}.264:fps=23.976 -add ${BASE}.aac ${BASE}.m4v
rm ${BASE}.{264,ac3,wav,aac}
Update: Here's a gist of an mkv2m4v script that automates the process: http://gist.github.com/502844

posted at 03:47 AM.

July 06, 2010

Logan Bowers: Economic quiz for the day

Suppose you own and operate a Jimmy Johns franchise. You normally have two counters producing sandwiches, but since the 2008 recession you've been getting fewer customers, so you laid off half your staff and only operate one counter. The other one sits idle and unused.

Given that you already meet the reduced demand for lunches, what will motivate you to rehire your staff and open the second counter?
(a) A sack full of cash
(b) A loan from the bank
(c) Less government spending
(d) More customers

Bonus question: The sandwich counter manufacturer wants to sell you another counter, which of the above will cause you to buy a THIRD counter?

This is the mental exercise you should do whenever you hear a politician talk about tax breaks vs. stimulus spending. Tax breaks are (a), stimulus spending is (d).

posted at 05:55 PM.

July 05, 2010

rhit tag @ flickr: 292

maryheddy posted a photo:

292

posted at 10:41 PM.

rhit tag @ flickr: 288

maryheddy posted a photo:

288

posted at 10:41 PM.

June 30, 2010

Garrett Mace: Twilight Eclipse Globes: macetech on the silver screen

Our latest project with Tangible Interaction involves decorative programmable lighting for a party scene in the new movie Twilight: Eclipse. Well, actually...it's a pretty old project, started back in September '09 and completed in October. However, we've had to keep most of it under wraps until the movie was released today. Here's a photo from the set, it's been floating around the internet for a few weeks:

Over 100 glowing globes are scattered midair near the walls of a large room. They smoothly cycle through colors and patterns behind major characters during pivotal plot points. Each globe is brightly lit with an individually controlled 30-bit color. The system is controlled with several Arduino microcontrollers receiving DMX commands.

This project nearly overshadows our Olypmic involvement, in terms of worldwide exposure of products we have developed. Unlike the Zygote project we helped Tangible Interaction build for the 2010 Olympic closing ceremony, these globes use macetech products that are available in our store for purchase.

 Read more»

posted at 04:34 AM.

June 11, 2010

Dave Imler: Nerding Right Along

Software Nerd
So, in the past two weeks I’ve kicked out a prototype web site for a theatre I work with: The Improv Shop , which is a great place for those who are interested in long form story based improvisation. The theatre owner wanted something minimal, which was great for me, since I don’t really relish doing art much.

So, now, of course, I’m taking the static file template and redoing it in as a full fledged CMS in django, as my, “Dave teaches himself Django” project.

Improv Nerd

Last weekend was spent making a film for the STL 48 hour Film Festival.   It showed last night, and will show again at the Tuesday ‘best of’ showcase. Which is so wonderful.

I was lucky enough to work with Clinic Improv, and act, film, light in that one.  Rhiannon busted out her violin to provide depressing Eastern European riffs for our ‘foreign film’. I’ll post that one as soon as the festival’s publishing embargo is lifted.

posted at 06:38 PM.

June 03, 2010

Garrett Mace: Shifty VU Problem

Just a notice to anyone who purchased a Shifty VU Shield in the past few weeks or at Maker Faire: our supplier mixed up some diodes and it's very possible your shield will not work. If you're seeing no response on analog 2 and 3, this is probably why. Please contact us so we can determine if you have a faulty shield, we will repair any with incorrect diodes.

posted at 06:49 PM.

May 30, 2010

Robin: The Color "Pants Left in Wash"

(Title of post is from an Eddie Izzard routine where he talks about laundry.)

I wear enough red clothing that reds get their own load. Pity the poor white article that gets accidentally swept into that pile! One particular expensive t-shirt was abused in just that manner, oh, many years ago. I kept it around, not sure how to remedy the pale pinks and splotchy reds now decorating the whole of it.

Technology has advanced, and now they sell small packets of dry chemicals to remove evidence of this particular moment of stupidity. I tried out Carbona's color run remover on the shirt. After soaking for about an hour, most of the shirt was whiter than when I bought it. The commercially applied graphic was not harmed at all. There is a small splotch of very light pink where the darkest red splotch used to be, but you have to know it is there to see it. (I think the chemicals in one packet were exhausted by removing the rest of the color, and didn't have enough strength to take care of the last portion.)

The next time I was in Hancock Fabrics, I bought another box to keep on hand. I've also been very annoying telling my friends about this in person, so I figured I'd put it up here and tell all of you at once. Please do make sure the colors you want to keep are colorfast, or you'll have the experience of the upset Amazon reviewers who are blaming the product for ruining their stuff. Sigh... - only one entire panel of the box is dedicated to warning you against using it where it would damage the garment!

posted at 05:21 PM.

May 14, 2010

Dave Imler: A Relaxed Moment

I’m working in the home office, snacking on coffee and stuff from the local coffee shop, listening to Cake and Mc Frontalot. Rhiannon is taking a half day. We had kolaches together for lunch. Now she’s napping on the couch with a DVD of Daria playing in the background. The screen door is open, and the house smells like gentle rain.

I didn’t have to comb my hair today.

posted at 08:50 PM.

May 04, 2010

Robin: New Lens?

Now that I have basically the nicest camera I can imagine, I've been working on upgrading my lens collection. In late November of last year, I bought a Konica Minolta 28-75 f/2.8 lens, used, from eBay. It is my absolute favorite lens ever, and I love having the constant f/2.8 aperture. The focusing is fast, and the only thing it is missing is macro capability. In most situations, this is the only lens I use.
DSC00529

My wider angle needs are covered by a Vivitar 19-35 f/3.5-4.5.
DSC00056

My candid very-low-light shots are handled by a "vintage" (thanks, Barb + Nik!) Minolta 50mm f/1.7 prime lens.
DSC01393

The hole in my arsenal is at the telephoto end. I've got a Minolta 75-300 f/4.5-5.6 (known as the Big Beercan style lens) that I also bought used from eBay but has MAJOR problems.
DSC00109
For example, it can't change apertures anymore and I think the AF motor has a short circuit inside the lens, so it is manual focus only.

I've got a Quantaray 75-300 f/4-5.6 that I bought used from a local guy, for $30, which is functional but not very good. I can tell from the shots of the Lens Align focus targets that it just can't resolve fine detail very well.
DSC00321

In the middle of March, for the special occasion of D&R's wedding, I rented a lens to cover this hole from LensRentals.com. I had a good experience with the site, and would recommend them to you if you need this sort of a thing. For $62.25 they shipped me a fully-insured Sony 70-300 f/4.5-5.6 G SSM to use for nearly a week. (A four day rental ordered on Monday to receive on Thursday actually arrived on Wednesday and they didn't want it shipped back until the next Tuesday because they don't consider the rental period to start until the first full day of use that you scheduled. Sure, I'll take it. All of this UPS-ing back and forth was included in the price.) It is supposed to be a very nice lens, and retails for $850. I thought I'd love it.

Eh, not really.

I used it at the St. Louis Zoo, and wasn't floored with the experience. I ended up not using it at the wedding at all, partially because quarters were so close, but mostly because it wasn't fast enough. (As in aperture size, not focusing speed. It focused very quickly.) The previously mentioned favorite lens took care of almost the whole event, excepting a few wide angle shots of the venue.
02169_2010-03-14_13-26-22_print
(The ducky shot above was taken with the Konica Minolta lens.) I was glad I had just rented, rather than buying, an expensive lens I ended up being less than thrilled with.

Now we come to the point of this post. I recently learned that a patent I am primary author on was issued! We get some $ as a reward for IP disclosures, and more $ when the patent is issued. I like to do something significant and optics-related with these bonuses. The first patent I got, I put the money towards buying a lifetime membership in SPIE.

I am considering getting a nice telephoto zoom lens this time. Specifically, the Sigma 70-200 f/2.8 Macro which is also about $800 but does have the f/2.8, does have Macro, and is getting very good reviews. On paper, I'll love it. But, I'm wondering if I should rent it first, to be sure? That would be $84, insured, for another four day rental. If I don't like it, I send it back and keep looking for my knight in shining armor. But if I end up buying it anyway that adds 10% to the cost of the lens for the risk-reduction exercise. What do you think?

(P.S. If you know who I am in real life, please do not comment on WHICH patent I got on this blog. I don't need the Internet to know my full name, etc. Not that facebook gives a rip anymore...)

posted at 10:36 PM.

April 09, 2010

News from Rose-Hulman: Alumnus Tim Cindric Sets the Direction for Penske Racing's Success

When Roger Penske needed help to restore its stature in open wheel racing, he called upon Tim Cindric in 2000 to lead Penske Racing's daily operations. Since then, as team president, the 1990 Rose-Hulman Institute of Technology mechanical engineering alumnus has helped the organization dominate the Indianapolis 500, with four wins since 2001 and a record-tying three wins in a row from 2001-2003; become one of the top teams in the Indy Racing League, with victories in the first two races of this season; and become competitive in NASCAR's Sprint Cup league, with a victory in the prestigious Daytona 500.

posted at 07:32 PM.

March 24, 2010

News from Rose-Hulman: Rose-Hulman Faculty Earn Emeritus Status, Promotions and Tenure

The Rose-Hulman Institute of Technology Board of Trustees granted emeritus status, promotions, tenure and leaves to several faculty members during its winter meeting. Emeritus faculty status was awarded to Art Western, who is retiring after 23 years as vice president of academic affairs, dean of faculty and professor of physics and optical engineering; and Thomas Mason, who is retiring after 37 years as professor of economics and engineering management and former vice president for administration.

posted at 07:32 PM.

March 05, 2010

Matt Burke: "Biotechnology" == evil

Now that he's not at Microsoft, I generally find myself more tolerant of Bill Gates. I think it's awesome that he's throwing himself (and his fortune) into solving some big problems. I might not totally agree with it all, but it's certainly more noble than his previous occupation.

That said, I really really wish I could convince him that biotechnology (specifically, genetically engineered food) is not the answer to modern or future food supply issues. It's not his main deal, but I was reminded of his views by his article about a new farming book.

My thoughts on this subject have gone from almost complete ignorance a couple years ago, to vague malaise a couple months ago, to downright disgust with biotechnology in farming (read: GE crops). Granted, much of my education has been from biased sources, but I think I still have some fairly reasonable reasoning. And I'm not ragging on other kinds of biotech -- there is clearly a lot of good that it can do. But I am very opposed to GE food, for two basic reasons. The first is the way it is treated from an intellectual property perspective. The second is its lack of benefit when compared to its known and unknown risks.

The problem with GE intellectual property is this: when you put an unnatural gene into an organism, you can patent it. Not just the process, but the actual seed, the organism. This means that every plant with that gene belongs to the patent-holder. Farmers are criminals if they save seed. Compare this to conventional breeding: when I make a better variety of some plant, you can keep the seed. This change in options for the farmer results in a change in the formula for pricing the seed. If the farmer has the option of saving seed, the breeder has to keep the price low enough that it makes more sense to buy seed than to save it. If the farmer doesn't have the option to save seed, the breeder just has to keep the price low enough that the farmer still farms. This exact thing has happened: seed corn is somewhere around 400% of its price 20 years ago. Compare that to the CPI, currently about 200% of its value 25 years ago. So, if I make a GE seed, I can gouge you. And if I make the best conventionally-bred variety and then stick in a gene that you don't really care about, then I can gouge you some more.

The other problem with GE crops is the lack of benefits when compared to problems. The promise is this: higher yields, drought-resistance, pest-resistance, herbicide-tolerance. Compared to conventional breeding, GE fails to produce higher yields. GE has not produced a drought-resistant crop. GE achieved pest-resistance by making plants produce a toxin. Granted it's a "safe for humans" toxin. At least, it is when used in moderation and given a certain amount of time to wash off. However, the toxin is produced by plants at a rate 2-40 times higher than the toxin would have been applied by farmers, according to one estimate I heard. And every cell of the plant is producing the toxin: there is no "wash it off". Herbicide tolerance encourages the use of more herbicides. And that's the mostly-known effects of planting GE crops. GE seed is notoriously closed to scientific scrutiny.

So, that's my rant. I could go on and on, but that's enough for now.

posted at 03:40 PM.

February 21, 2010

Colin Hill: Pig muffins

Not too bad for my first attempt.

posted at 08:59 PM.

January 24, 2010

Colin Hill: On the subject of projects

So for the past several months I’ve been remarkably good at doing nothing in the small amount of free time I’ve had. Although I do enjoy starting at the wall from time to time I decided it was time for a new project. Strictly speaking it was time for a new software project. [...]

posted at 08:18 PM.

December 11, 2009

Scott Tomlinson: Time,

I've started writing 2010 on things. In my mind it's still June. I think I just lost 6 months. How odd.

posted at 07:08 PM.

November 03, 2009

Matt Burke: Bear Suit

This year, O dressed up as a bear for Halloween. It's the same costume he wore last year. It still fit (despite his 50% increase in age since then; though it doesn't fit very well with the hood up), and he really likes wearing it. Even though it's been hanging in the back of the closet for almost a year, he said "Bear suit!" as soon as he saw it.

While wearing said bear suit, he was very obliging and growled every time I asked him to. In some settings, he growled very quietly.

When he growled, invariably an adult would say, "What a scary bear!" O would reply, "I'm not a scary bear." The adult would then say, "I'm sure you must be a friendly bear." O disagreed, "I'm not a friendly bear. I'm not a bear. I'm just wearing a bear suit."

posted at 04:20 PM.

October 18, 2009

Herb Mann: The Puffin Perch

Renaming A Dead Horse

I decided that the previous name of this blog was becoming unseemly, so it is now “The Puffin Perch”.  Maybe I’ll finish some of those drafted posts now that I won’t be embarrassed to have people find them.  But no promises!

posted at 05:21 AM.

October 13, 2009

Dan Moore: Weighing myself in THE FUTURE

Why am I posting about a bathroom scale? Because this thing is probably the slickest, most polished gadget I've ever used.

Yes, I bought the Withings Wi-Fi Scale. If you're connected to me via any social networks or meet me in person, you've probably heard me drone on and on about my recent weight loss. But keeping track of that with pen and paper, or even an iPhone app as I had been for a while is so early-to-mid-2009. Now, I have a bathroom scale that connects to my wireless network at home and updates a private Web site and iPhone application. It measures not only weight, but also fat percentage by measuring impedance in one's feet (though I wonder how accurate that is).

What makes it so slick? Withings seems to have gotten everything right from the start. I've been using their iPhone app to manually track weight for a while, and after setting up the scale, bam - the scale displayed my name (taken from the website/iPhone app) on its screen, uploaded the data, and seconds later I had a push notification (badge) to my iPhone indicating there were new measurements to view. The new measurements uploaded from the scale appear just like the ones I was putting in manually, only now with additional information.

Of course, it should be easy to be easy when you're talking about a bathroom scale, but the setup is what could have been really complicated. While the scale does have a screen, it doesn't make sense to integrate a whole input device into the scale so you can configure the wireless networking, which they could have done but would have been really bad. Even worse would have been to do something where pressing on the scale would scroll through letters or something obtuse like that.

What Withings did, which is brilliant, is to let you configure it with an iPhone. To do that, all you do is load up the iPhone app in configuration mode and turn the scale over. There's a little iPhone shaped indentation on the bottom, with a single button below it. When you press the button on the bottom of the scale, it emits a tone and the iPhone and scale communicate audibly like a modem. Then you just configure the scale using a full interface on the iPhone. There's also a USB cable included that connects to an equally slick Mac or Windows application to configure it. Both processes work as easily as I could possibly imagine. I think that in addition to my name that it also pulls some other info from the website, but I need to play with it a bit more to make sure.

When I said "polished" up above, I meant cosmetically as well as functionally. It is an awfully good looking scale. The display is bright and easy to read. By looking at the photos on their website you can tell they spent some time on design, and it looks even better in person.

The iPhone app and Web interface to view the data is still a little clunky to me, but I'm pretty picky about software and besides, that can always be upgraded later. They got the hardware and integration parts down flawlessly and that's what counts. I'm hoping they come up with a real API to access the data, but for now, you can get a CSV export of all the data recorded through the website.

So, bravo Withings. My only complaint about the hardware is that it doesn't work well on the stupid carpet in my bathroom, even when using the special carpet feet included.

Disclaimer: I've only used the thing for a day, so if you want to buy one you might want to wait and make sure I don't rant about it breaking in a week or something.

posted at 05:42 PM.

October 04, 2009

Ryan Johnson: repos.rb

The RubyCocoa project makes Ruby an incredibly powerful scripting language in Mac OS X.

As an example, here's a script that I used to rearrange windows when switching between various monitors. Based on the width of the main screen (something which I couldn't find a robust way to query outside of the NSScreen Cocoa API), it applies my preferred size and positioning to specific windows I care about. If you run it with '-q', it instead dumps a structure with those windows' current sizes and positions, for feeding back into the script as configuration.

Enjoy:

#!/usr/bin/env ruby -w

require 'optparse'
require 'osx/cocoa' # http://rubycocoa.sourceforge.net
require 'pp'

options = { :query => false }
OptionParser.new do |opts|
  opts.banner = 'Usage: repos.rb [options]'
  opts.on( '-q', '--query', 'Query rather than set positioning' ) do |q|
    options[:query] = q
  end
end.parse!

def first_window_of( s ) %Q{the first window of process "#{s}"} end
WindowsOfInterest = {
  :adium_chat     => first_window_of('Adium')   + ' whose name is not "Contacts"',
  :adium_contacts => first_window_of('Adium')   + ' whose name is "Contacts"',
  :firefox        => first_window_of('Firefox') + ' whose name is not "Downloads"',
  :ical           => first_window_of('iCal'),
  :iterm          => first_window_of('iTerm'),
  :itunes         => first_window_of('iTunes'),
  :mail           => first_window_of('Mail'),
  :terminal       => first_window_of('Terminal'),
  :tweetie        => first_window_of('Tweetie') + ' whose name is "Tweetie"',
}
PropertiesOfInterest = [ :position, :size ]
ConfigurationForWidth = {
  2560 => {
    :adium_chat     => { :position => [2058, 1241], :size => [501, 357]   },
    :adium_contacts => { :position => [2419, 22],   :size => [141, 357]   },
    :firefox        => { :position => [632, 223],   :size => [1459, 1096] },
    :ical           => { :position => [3199, 800],  :size => [640, 715]   },
    :iterm          => { :position => [0, 740],     :size => [786, 860]   },
    :itunes         => { :position => [1080, 22],   :size => [1336, 946]  },
    :mail           => { :position => [0, 22],      :size => [1079, 717]  },
    :terminal       => { :position => [2560, 800],  :size => [641, 795]   },
    :tweetie        => { :position => [2058, 549],  :size => [500, 690]   },
  },
  1920 => {
    :adium_chat     => { :position => [1419, 844],  :size => [501, 357]   },
    :adium_contacts => { :position => [1785, 22],   :size => [135, 319]   },
    :firefox        => { :position => [397, 72],    :size => [1208, 1034] },
    :ical           => { :position => [949, 1203],  :size => [640, 715]   },
    :iterm          => { :position => [0, 355],     :size => [810, 844]   },
    :itunes         => { :position => [494, 22],    :size => [1280, 715]  },
    :mail           => { :position => [0, 22],      :size => [1079, 717]  },
    :terminal       => { :position => [312, 1202],  :size => [641, 723]   },
    :tweetie        => { :position => [1418, 293],  :size => [501, 550]   },
  },
}

def do_apple_script(s)
  result = OSX::NSAppleScript.alloc.initWithSource(s).executeAndReturnError(nil)

  # Return an array of the values (AppleScript uses 1-based indexing)
  (1..result.numberOfItems).map do |i|
    result.descriptorAtIndex( i ).int32Value
  end
end

main_display_width = Integer( OSX::NSScreen.mainScreen.frame.width )
window_properties = {}

if options[:query]

  WindowsOfInterest.each do |key,spec|
    window_properties[key] = {}
    PropertiesOfInterest.each do |prop|
      window_properties[key][prop] = do_apple_script(
        %Q{tell application "System Events" to get the #{prop} of #{spec}}
      )
    end
  end

  puts "#{main_display_width} =>"
  pp window_properties

else

  config = ConfigurationForWidth[main_display_width] or
    raise "No configuration for main display width #{main_display_width}"

  config.each do |window,props|
    props.each do |prop,rubyval|
      value = '{' + rubyval.join(',') + '}'
      do_apple_script(
        %Q{tell application "System Events" to set the #{prop} of #{WindowsOfInterest[window]} to #{value}}
      )
    end
  end

  system %Q{/Users/ryan/bin/emacsclient -e '(rdj-smartsize-frame-for #{main_display_width}))' > /dev/null}

end

posted at 08:55 PM.

September 29, 2009

Dan Moore: Quoting Myself

Dave Imler's IM status earlier: "Are you there, God? It's me, Dave. I've found several usability bugs in creation. Enclosed are the instructions for reproduction. Do you have any ideas about a bugfix timetable?"

Me: Can't you just fork the project?
Me: Or hasn't He gotten around to putting it on github yet?
Him: Man, I don't like reading that code. I can't even get through his 'documentation'. Leviticus reads like a freaking switch statement.
Me: BEGAT considered harmful
Him: winner is you!

posted at 07:24 PM.

August 21, 2009

Scott Tomlinson: 6 month update

Smiley here! Forget the dreaded post-less month, I've been out of it for 6. And I really don't know where to start, but I haven't updated Live Journal in the last six months, or the equivalent of an Appalachian Trail Thru-Hike. And when I put it in those terms, it's hard to think about.

The biggest news that most people know, is that I'm engaged to Audrey (Homeward Bound)! Yay!

After that, I'm hanging in there. Still employed, and in the Arlington Heights IL area for awhile longer. (Lease is up in mid-November so will be switching apartments then for sure.)

I don't know how much I'll be updating, but my continual goal is to make time for social interactions. How well I meet that goal is another thing entirely.

Good luck to everyone, and even if I have been hiding away just trying to survive for the last year, that doesn't mean I haven't been thinking of you. And yes that includes my family, friends from Robinson and college, friends from the trail, and all of my running buddies from Chicago! I'm Wishing I was better at striking a balance, and I'm working every day to be better. But lately that's all that it feels like I can do, work at getting through one day at a time, doing the best I can. And that's what I'll keep doing, the best I can.

All in all, life is good, and worth every effort. Still Smiling!

Scott (Smiley Happy Feet :-)

posted at 12:20 PM.

June 16, 2009

Herb Mann: WordPressalypse

Something went terribly wrong in my WordPress install today, and I’m not sure what, or why.  The database is fine, along with all the posts and comments, as far as I can tell.  Those who read by feed probably won’t even notice a difference.

Once I have time to descend back into the Jeffries Tubes around here, I’ll get it sorted.

posted at 05:58 AM.

June 07, 2009

L. Burke: My thoughts on a piece of bad news

A really terrible story.

http://www.dreamindemon.com/2009/06/04/emily-mcdonald-made-her-daughter-sick/

I am on another web site from whence I am familiar with this woman and her children. Sometimes I have a feeling about people but not this time. When she took her blog off line I figured it was because the child was dying and she didn't want any more public scrutiny.

But no, it was not that. At all. Much worse.

I do wonder what makes someone crack up like this. Certainly she was under a lot of pressure and was something of an overachiever (raising three young children, one with a lot of special needs, while going to school as well.) But what kind of person are you to start with, that this is what happens inside your head? Why do some depressed/ mentally ill individuals hurt others, while most just destroy themselves? If science could solve that problem the world would bow down and worship it..

I'm glad that technology was used for so much good in this instance. Modern medicine saved her child over and over. A camera caught her in the act. So often I tend toward seeing the darker side of technology and medicine. It was good to see them as the heroes (along with the medical professionals who suspected something like this) of a detective story. For my fellow bloggers who ask, "What is redemptive about this?" I'm going to answer, "The surveillance camera, and the people who figured out what was going on."

posted at 09:45 PM.

May 21, 2009

L. Burke: Corporal and other kinds of punishment

So, I have a two year old, and hang around lots of other parents. So this idea of "spanking" comes up sometimes. I don't believe in it. Here are some reasons why:

Things I, personally, learned from being spanked:

- My parents are people who hurt me
- The parent who hits harder is more to be feared
- Authority figures are scary and dangerous
- Disrespect is the only tool that I, a small and helpless person, have, and you can't beat it out of me. So I will cultivate this to a fine art.
- Physical violence is an acceptable method of problem-solving
- If you are bigger, you always get your way
- My parents spank me when they are mad/frustrated/angry and it doesn't always relate to my behaviour

I don't learn best when I'm irrationally angry, so I don't try to teach my child things when he is.

Ways I learned how to act like a more decent person:

- Modeling
- Quiet, gradual encouragement to do the right thing
- Natural consequences (don't put oil in the car = dead engine)
- Peer pressure
- Staying away from bad situations
- Kindness of others

A lot of this line of thinking was encouraged by reading Unconditional Parenting by Alfie Kohn. It's a very secular book, but it's very much in line with the way God relates to us humans. I've never, so far as I can tell, been spanked by God. :-) Allowed to experience the consequences of my own choices, yes.

Being a parent causes a lot of personal growth. I have to put aside my own reactions in order to deal with a situation lovingly. My child may have not taken a nap and be throwing toys around the living room after being asked to stop and having the toys taken away and I may be tired and hungry and he is getting on my last nerve. Believe me, there are times when I have to remind myself of all the reasons why I am *NOT* going to hit my child. But there are lots of other ways to handle it. What I usually do is some variation of getting us out of the area where the bad behaviour is taking place, then address some of the aggravating factors that might be contributing to it. (Hungry, sleepy, lack of attention from mom, etc) This requires.. self control! Hey, a fruit of the spirit! Alternatively, we can redirect the action into an acceptable outlet.. i.e. go outside and throw balls around the yard.

I know that as Mr. Toddler gets older and finds new, more creative ways to misbehave, I will have to keep coming up with new, more creative ways to deal with them. That's ok. It's good for both of us. He gets to learn how to channel his urges to do whatever, how to problem solve, how to deal with conflict, etc.. and so do I. He gets a little more slack, because he is two!

posted at 05:20 PM.

April 14, 2009

Angel Johnson: I can't win!

I had my annual physical exam today. Nothing exciting to report, although it amuses me that I'm apparently having the opposite problem as before.

I've seen the same doctor the past couple of years now. For a while, my weight was hanging out somewhere between 105-110, usually on the lower end. Since starting my job, however, I've actually gained a bit of weight and that range has moved up about 5 pounds. Add onto that the recent visit from family, which included a couple of meals at restaurants, and I weighed in at 116 this morning. After going over the other measurements the nurse had taken — blood pressure, heart rate, temperature — she gets to the weight, then looks at me and asks if that's normal for me now. She then strongly encouraged that I start exercising, because this sort of thing "can sneak up on you gradually, and before you know it you're 50 pounds heavier and wondering how the heck that happened"!

Normally, stress makes it even more difficult for me to keep on weight, and my job gives me a fair helping of that. I'm also on my feet all day and do a fair amount of walking around during that time. I'm still not eating breakfast regularly. I suspect it's a combination of eating a Hot Pocket for lunch about 75% of the time and then getting home ravenously hungry every day and snacking while making dinner. (Shame on me, I know. =) ) The weekly Friday donuts probably didn't help much either, but those are gone now thanks to budget cuts.

In any case, between that and the knee pain I've been starting to develop, that's two more strikes against my current job. ^^b

Or maybe my metabolism is finally winding its way down, which would be a shame. I'd hate to actually have to make an effort to stay thin. ;-)

posted at 12:27 AM.

March 03, 2009

Angel Johnson: Baaaaaaaaby Electronics

When we had some slow time at work, I went upstairs as a part of my large inventorying project to clean out the storage rooms. I found quite a few things that I would not have expected to find at a bank, including cowboy hats and doctor costumes. I guess at one point they had dress-up themes to go along with promotions. *shrug*

Apparently when they first came out with their Online Banking, they were giving out mini USB mice along with a free Online/Bill Pay consultation. I found one left and asked my manager if I could have it, and she said yes! :D

So now I have a ridiculously tiny (but functional!) mouse on my desk at home. It's shiny!

posted at 01:28 AM.