March 07, 2017

Nathan Froyd: nibbles and ironclad releases

I have released new versions of nibbles (0.13) and ironclad (0.34). They are available from their respective tags in their github repositories; I have not created tarballs for them. Ironclad, in particular, has many new features; please see the NEWS files for both packages for some of the changes.

This is also an appropriate time to announce that I will no longer be maintaining nibbles, ironclad, nor any of my other Common Lisp packages. This has been the de facto state of affairs for several years now; we might as well make it official.

posted at 12:12 PM.

January 19, 2017

Garrett Mace: Audio Sensor Development Part 4: Taming the Transient Tiger

It’s been a long time since Part 3 of this design series, but most of that is because we solved the main problems with the design and moved into production. In this article, I’ll go over the changes and release the OSHW design files for the newest version of the Shades Audio Sensor.

The first major problem with the sensor was, at no surprise to any analog designer, power supply noise. The RGB Shades posed a perfect recipe for analog difficulty:

  • A low voltage power supply delivered through several feet of thin cable
  • 68 RGB (or 204 individual) LEDs on the same supply, controlled via PWM
  • An electret microphone with millivolt-level output
  • A single-supply op-amp with about 30x gain
  • A mixed analog/digital chip with another 12x gain
  • Positive feedback (explained more below)

The positive feedback issue was pretty difficult. Any supply noise from the LEDs would leak into the microphone supply circuit, which would then be amplified greatly along with the actual audio signal. This audio signal was processed and used to drive the LEDs. Since most audio-reactive patterns show more/brighter LEDs when there is higher audio input signal, this could cause a feedback loop that drove the input to the top of the range and kept it there.

 Read more»

posted at 01:57 AM.

December 19, 2016

Kent Rosenkoetter: message to the Electoral College

This is what I ended up mailing to the members of the Electoral College last week. Sadly, nearly 200,000 other people also mailed to them, so the chance my message was read is virtually zero.

This is an attempt to summarize the clear rational argument for why the Electoral College should reject Donald Trump on December 19th, and instead elect Bernie Sanders.

  1. President Trump is an existential threat to the United States of America.
    1. His Cabinet is filled with white nationalists. ( NYTimes DemographicsPro Mother Jones )
      1. "White nationalists" is what neo-Nazis named themselves to avoid the stigma of "Nazi". ( CNN Vanity Fair )
      2. They have already put forward the idea of re-introducing internment camps like we put Japanese-American citizens in during World War 2. ( Business Insider Reuters )
        1. President Reagan apologized for those internment camps, to bring them back is to dishonor his memory. ( NPR Smithsonian )
      3. There has been a surge in hate crimes since Trump's victory. This surge will become a pattern once Trump takes office. ( Forbes Slate )
    2. He plans to cut all funding for NASA's climate change research. ( The Guardian Deutsche Welle )
      1. The current warming projections depend on massive investments in carbon-capture technology. ( International Energy Agency Global CCS Institute The Guardian Springer )
        1. Carbon capture technology does not exist yet. ( The Verge Carbon Brief MIT Technology Review MIT Technology Review )
      2. Without NASA's research, we will see warming of at least double what is agreed to in the Paris accords. ( EPA The White House )
        1. The Paris accords have already been adopted by other major polluters such as China. ( Scientific American NY Times )
        2. The US is the largest polluter, without our action all other nations' actions are largely useless. ( The Atlantic )
    3. His Cabinet is filled with the very corrupt people he promised to eliminate from Washington. ( NYTimes Washington Post The Intercept )
    4. He will have complete control over the most powerful spy agencies in the world.
      1. The NSA can literally record all text and voice communication across the country. ( Wired Schneier on Security The Guardian CNET Vice )
        1. This information can end up in the hands of the FBI, the IRS, and local police. ( Reuters Techdirt Techdirt Extreme Tech )
        2. The potential for blackmail and other forms of control is limitless. ( Business Insider The Telegraph kieran healy NY Mag EFF The Intercept WashingtonsBlog Reuters Huffington Post )
      2. We have already built the nationwide apparatus for totalitarianism. The only thing we are missing is a strong leader to come into power and use it for ill purposes. ( University of Chicago Press Daily Kos McClatchy DC Wired )
      3. Donald Trump has a history of petty and vindictive behavior. ( )
  2. President-Elect Trump does not have a mandate.
    1. He lost the popular vote. ( Inquisitr CS Monitor USA Today IBT )
    2. Polling during the primary process showed he would have lost to Bernie Sanders by a landslide. ( Huffington Post Real Clear Politics )
      1. Those same polls predicted a very close race between Clinton and Trump, which is exactly what played out in the general election.
  3. The Electoral College is not legally bound by the popular vote. ( Politico )
    1. If it were, George W. Bush would not have been allowed into office his first term, he lost the popular vote but won the electoral vote.
  4. The Electoral College was originally intended to be a final government check on blind public sentiment.
    1. Alexander Hamilton wrote in the Federalist Papers that the Electors were meant to be men of conscience and wisdom who would select an appropriate leader without being swayed by the passions of capricious public sentiment. ( Wikipedia )
  5. We cannot elect Donald Trump.
    1. His stated positions and actions match the textbook definition of fascism. ( The New Yorker Salon Slate Newsweek )
      1. Our grandparents died by the millions fighting fascism in Europe. To allow it to take hold in the US is to spit on their memories.
    2. Russia ran a concerted campaign to support Donald Trump. ( Associated Press USA Today CNN )
      1. Eighteen different national intelligence agencies have all said Russia was openly and deliberately trying to sway the American election for Trump. ( Chicago Tribune NY Times )
      2. When Trump's victory was announced, the Russian parliament broke into a raucous ovation. ( The Independent Public Radio International The Daily Beast )
      3. Russia spent millions on propaganda efforts to smear Clinton.
        1. The claims that Clinton would start war with Russia originated in Russian-spread propaganda. ( Fortune Forbes The Gateway Pundit Foreign Policy Russia Insider )
      4. Russia hacked every one of Trump's opponents' campaigns, but did not hack Trump's campaign. ( Raw Story NBC News Wired )
      5. Allowing Trump to gain office is to allow Russia to succeed in their plan to subvert American democracy.
  6. We cannot elect Hillary Clinton. ( Salon Daily News Bin )
    1. Clinton's disapproval ratings are second only to Trump's. ( ABC News Gallup )
    2. A huge swath of the population voted specifically to deny Clinton the Presidency. ( Politics USA Hillary Men )
  7. The Electoral College must elect Bernie Sanders.
    1. The people have expressed a clear anger with the establishment parties.
      1. Both parties had "outsider" challengers that received huge public support.
      2. Electing any of the establishment Republican leadership will anger the majority of voters.
        1. Kasich is not a choice the public will accept.
        2. This anger will be bi-partisan.
    2. Bernie Sanders has bi-partisan appeal. ( Observer )
      1. He is a choice the public will accept.
    3. Bernie Sanders ran on a platform of economic populism that was very similar to Donald Trump's.
      1. There was a lot of overlap between those who supported Sanders and those who supported Trump. ( US News The Daily Beast The Atlantic Washington Post )
    4. Bernie Sanders' campaign was undercut by underhanded tactics by the DNC. ( Time Politifact Politico Washington Post )
      1. The DNC scheduled the fewest debates in recent history. ( Huffington Post Daily Caller )
      2. The DNC scheduled debates for low-viewership nights. ( Washington Post Politico National Review )
    5. Sanders is not a Democrat.
      1. Electing Sanders does not validate the DNC. It is a scenario the DNC specifically tried to prevent.
    6. Sanders is not endorsed by Vladimir Putin and the KGB.
      1. Electing Sanders is a strong rebuke of Russia's attempts to control America's democratic process. ( NY Times )

posted at 08:09 AM.

October 24, 2016

Kent Rosenkoetter: The Fourth Amendment

Yaay. My little history note actually got moderated up on Slashdot.

posted at 03:47 AM.

October 23, 2016

Garrett Mace: Using the Shades Audio Sensor without RGB Shades

While the Shades Audio Sensor was designed to work with the RGB Shades, it's really just a breakout board for the MSGEQ7 spectrum analyzer chip. It also has a microphone, pre-amplifier, and gain switch to select high and low sensitivity modes. We've gone through a number of revisions of the hardware, mostly fine-tuning the power supply filtering to make the Shades Audio Sensor reject most of the power supply noise caused by LED applications.

Here's a video showing how to connect the Shades Audio Sensor to an Arduino UNO. We're using a ShiftBrite Shield, but any proto shield or a simple breadboarded circuit would work. As a demo of the finished project, we've connected it to an old ShiftBrite project (Rusty VU) from 2008.

Example code: Rusty VU MSGEQ7

posted at 02:11 AM.

October 12, 2016

rhit tag @ flickr: RHIT_Homecoming_2016_Pep_Rally-29547

Rose-Hulman Institute of Technology posted a photo:


Pep Rally - Homecoming 2016

posted at 07:27 PM.

rhit tag @ flickr: RHIT_Homecoming_2016_Pep_Rally-29541

Rose-Hulman Institute of Technology posted a photo:


Pep Rally - Homecoming 2016

posted at 07:27 PM.

April 26, 2016

Edward O'Connor: Updating Our Prefixing Policy

When implementing new features for the Web, it’s important for us to be able to get them into the hands of developers early, so they can give new things a try. (Of course, this also helps us identify and fix bugs!) In the past, browsers did this by using vendor-prefixed names for features. This was intended to protect the Web from the churn of spec and implementation changes. Browsers would eventually implement the standard version with no prefix and drop support for the prefixed version.

Over time this strategy has turned out not to work so well. Many websites came to depend on prefixed properties. They often used every prefixed variant of a feature, which makes CSS less maintainable and JavaScript programs trickier to write. Sites frequently used just the prefixed version of a feature, which made it hard for browsers to drop support for the prefixed variant when adding support for the unprefixed, standard version. Ultimately, browsers felt pressured by compatibility concerns to implement each other’s prefixes.

The current consensus among browser implementors is that, on the whole, prefixed properties have hurt more than they’ve helped. So, WebKit’s new policy is to implement experimental features unprefixed, behind a runtime flag. Runtime flags allow us to continue to get experimental features into developers’ hands while avoiding the various problems vendor prefixes had. Runtime flags also make it easier for us to have different default settings between stable builds and preview builds such as Safari Technology Preview.

We’ll be applying our updated policy to new feature work going forward. Whether or not a runtime flag should be on or off on WebKit trunk (and thus in nightly builds) depends on the maturity of the feature, both in terms of its spec stability and implementation maturity.

What does this mean for Web developers?

Initially, developers shouldn’t notice anything different. In the longer term we hope this change will make it easier for you to try out upcoming features. As always, we encourage you to give in-progress features a try. Feedback and bug reports on experimental features are very welcome.

What about currently prefixed features?

We’ll be evaluating existing features on a case-by-case basis. We expect to significantly reduce the number of prefixed properties supported over time but Web compatibility will require us to keep around prefixed versions of some features.

We invite comments and feedback on the new policy from Web developers, educators, and our colleagues working on other browser engines. Feel free to reach out to me on Twitter (@hober), Jon Davis (@jonathandavis), @webkit, or email me directly at

posted at 01:54 PM.

Nathan Froyd: the power of reality

The sight and smell of so much manure reminded me of an allegorical article I was made to read in high school during the Cultural Revolution. A group of urban youths sent down to the rural areas to receive &lquotreeducation&rquot stumble upon a pile of fresh cow dung on a similar muddy path. As they search for a shovel to scoop it up, a peasant girl appears, cups the dung in both hands, and carries it to the communal manure pond. The young peasant girl sets a powerful example for the young city people who are unable to see past their petty bourgeois habits. Our teacher left us with a series of questions: Which was worse--the horse dung or petty bourgeois thinking? Who had the purer mind--the peasant girl or the urban youths? Some forty years later, school teachers no longer imbue cow shit with Communist ideology. Chinese people know shit stinks and that anyone in his right mind would use a shovel to collect it, whether proletariat or bourgeoisie.

God is Red by Liao Yiwu

posted at 01:22 AM.

November 09, 2015

Dave Heigl: Kid thing

Today I brought home a used kid thing, put it together, cut it up some, then reinforced it elsewhere. Hopefully it will be a fun play spot through the cold months.


posted at 06:39 AM.

October 12, 2015

Dave Heigl: Deck, part 3

The deck is done except for sealing it. Need to figured out when that should be done.


posted at 12:52 PM.

February 01, 2015

John Pederson: Destiny and Its Discontents

Destiny's big problem is that it's design doc probably reads like "what if we bolted Halo's FPS to a vanilla WoW-like theme part MMO and made lots of money?" This would be a minor variation on the "What if we made a WoW?" thing that was circulating through the games industry a while back. I had thought the last gasp of this idea was ESO, but further reflection suggests it's actually Destiny.

I think Bungie underestimated the amount of content this really required, probably suffered some internal and external political (corporate politics, not federal politics) pressures that made a dysfunctional hash of the story content, and attempted to streamline a progression model that is practically death to a meaningful endgame experience (in this, I think they were successful, but it exaggerates the problems that already went with this design). I'm not sure to what degree the loot and progression system are aimed at extending the paltry content offering vs. being a result of Bungie misunderstanding the sort of game they'd built. It doesn't really matter.

There's some rumors spinning around their forum at the moment that the next expansion will break progression, again, in a way that will favor the raiders over regular PvE shlubs. That's probably good news for me: it'll be a good excuse to give up on this train wreck, if I haven't, already.

posted at 12:00 AM.

John Pederson: Happy Groundhog Day

The latter half of last year was long and often both bleak and unpleasant.

So, we'll say no more about it.

posted at 12:00 AM.

July 07, 2013

Colin Hill: Life Update

Who’s got two thumbs and got engaged yesterday? This guy.

posted at 12:30 PM.

March 13, 2013

Edward O'Connor: Herodotus on standards work

It is also their general practice to deliberate upon affairs of weight when they are drunk; and then on the morrow, when they are sober, the decision to which they came the night before is put before them by the master of the house in which it was made; and if it is then approved of, they act on it; if not, they set it aside. Sometimes, however, they are sober at their first deliberation, but in this case they always reconsider the matter under the influence of wine.

Book 1 of the History of Herodotus

posted at 10:46 PM.

December 26, 2012

Robin: My Favorite Ways to Clean Up a Windows Computer

My computers all have huge hard drives and large amounts of RAM, but that doesn't mean they can hold everything and do everything and still run smoothly.  Computers, Windows computers at least, run better and are much happier the less stuff they have on them.  Here are my favorite ways to clean up my computers and improve performance and security:

1) Delete old restore points.  This isn't obviously presented as an option and isn't possible unless you've got administrator privileges. But it can reclaim a lot of hard drive space.  Restore points build up each time Windows Update installs or updates anything on your computer.  I haven't found an option that auto-cleans them up, so here is the method for manual deletion.  These instructions are for Windows 7, but there is something very similar in Windows Vista and even Windows XP Professional.

A) Open a Windows Explorer window (windows key + E) and select your computer in the left pane, so that the hard drives are visible in the right pane.  For fun, make note of the free space on your hard drive.

B) Select the main hard drive, right mouse button, and select properties.  In the window that pops up, find the button that says Disk Cleanup and click that.

C) Even if you are logged in as an Administrator, you need to do this step.  On the new window that pops up, find the button that says "Clean up system files" and click that.  If you aren't logged in as an administrator, you have to give administrator permissions to do this.

D) Windows recalculates things, and pops up that same window as before, but this time there is another tab to choose from.  Go to the More Options tab.  Find the "System Restore and Shadow Copies" section, and click the button that says "Clean up..."

E) Yes, you are sure.  Click Delete.  (That doesn't actually do the deletion, it just sets the option that you WANT to do the deletion.)  Back at the window, go back to the main Disk Cleanup tab.  Review the options in the list and make sure you agree with the other checked items.  Then click OK.  Yes you are sure.  Click Delete Files.  Now you can close out of the properties dialog box and Refresh the view in Windows Explorer to see how much space you have regained.

2) Don't put an office suite on your computer.  This makes the most sense for laptops with smaller SSD hard drives and computers that are mainly used for entertainment instead of work.  Instead, use a free web-based office suite.  The Google Docs suite has been an option for a while, but now even nicely functional versions of Microsoft Office products are available.  I wouldn't recommend this for a business computer, or if you always need the ability to open a spreadsheet even if the internet is down.  But it saves a lot of space and hassle with updates if none of this lives on your computer.

* Microsoft Office with Sky Drive.  This was a pleasant surprise to find online.  You sign up for an account and get 7 GB of free cloud storage to use with online versions of Word, Excel, PowerPoint, or OneNote.

3) Delete programs and plugins without mercy.  Update everything else.  Go into Add/Remove programs, and start going down the list.  If you don't use a program, uninstall it.  If you do use a program, open it and check for updates - usually this is in the Help/About menu or screen.  Uninstall all the versions of Java you see in the list, and reinstall just the freshest version from their website.  Uninstall all the browser toolbars, all the partially functional software that came with the DVD drive, and all of the virus scanning and security software that isn't Microsoft Security Essentials.  Do get MSE if you don't have it.  It is free, unobtrusive, and has worked well for everyone I know who uses it.

4) The outside of the computer can be cleaned, too.  A slightly damp microfiber towel works very well to scrub grime off of mice, controllers, and laptop surfaces.  Dry microfiber cloths will remove dust.  Start with clean cloths and don't press down to avoid scratching displays.  I have used the CyberClean product, and find it helps most on standard keyboards because it gets between the keys. 
Just noticing your computer is sticky or discolored and doing something about it can make a huge difference in how new it seems.

Finally, resolve to keep your software up to date and set up an online backup service.  I paid for CrashPlan+ service, which I consider a bargain - only $139 for four years of unlimited backup from one computer.  That is cheaper than one external hard drive, which in my experience will either fail or run out of space in less than four years.  Sorry if most of this post is obvious or things you already knew, I hope it helps a few people with maintaining their computers.

posted at 07:05 PM.

Robin: Sinusoidal Scarf

This is an easy pattern for a knitted scarf.  I made it up to practice knit and purl stitches, to build up speed and work on keeping an even gauge as I go.  It is supposed to be wavy when finished, resembling the shape of a sinusoid curve.  This is done simply by alternating garter stitch sections, which lay flat, with stockinette stitch sections, which tend to curl towards the knit side.  I alternate the side the stockinette faces to form the max and min points.  So, this is a very nerdy project.

(Any yarn and needle size can be used, gauge is not important, adjust stitch count for the width of scarf you want.)

Yarn: St. Denis Nordique, 100% wool, 50g per 150 yards, 2 to 3 balls, blue eggshell

Gauge: 19 stitches for 4 inches

Needle: US 8 or 5.00mm

Cast on 30 stitches.

Rows 1-4: knit all stitches.
Row 5: purl all stitches.
Row 6: knit all stitches.
Row 7: purl all stitches.
Rows 8-13: knit all stitches.
Repeat rows 5 through 13 until scarf is desired length.  Bind off.




posted at 06:05 PM.

September 19, 2011

Sarah Nelson: Delux!

posted at 04:13 AM.

Sarah Nelson: the master gardener

posted at 02:27 AM.

January 09, 2011

Colin Hill: Range Report

So yesterday I took my NRA basic pistol course and at the range finally got to break out my brand new Kimber 1911. I ran 195 rounds through it with only a couple of minor feed problems. My accuracy needs work, but I feel reasonably good given the fact that it was my first time […]

posted at 07:47 PM.

November 02, 2010

L. Burke: No subject.

Every once in a while I think, "Hey, I should start blogging again."

And then I think, "Nah."

posted at 01:07 AM.

September 13, 2010

Matt Burke: Parental enlightenment

"... if your children ask for a loaf of bread, do you give them a stone instead?" (Matthew 7:9, NLT)

Since I became a parent, I've had this verse floating in my head as something like "If your child asked for food, would you refuse him?" I took that a bit as a challenge, and tried to be accommodating. When my son asks for food, I try to get it for him.

However, this has its limits. For a while, at bedtime, he would ask for food. I could ask if he was hungry and wanted food, then ten minutes later say it was time for bed, and he'd ask for food. As this game became more obvious, more limits were defined, usually in the form of a timer.

So, having been a parent for almost four years, I would answer Jesus's rhetorical question now with, "Of course not. I might not always give him the food he's asking for, but it would be very cruel to give him a stone. Sometimes he gets bread, and sometimes he gets nothing."

posted at 06:37 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.

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)
#   *
#   * Just install through MacPorts, it doesn't pull in anything annoying
# * a52dec (to decompress and downmix the ac3)
#   *
#   * Compile from source
# * faac (to recompress the audio to mp4a/aac)
#   *
#   * Compile from source
# * MP4Box (to remux into MPEG-4 container) 
#   *
#   * 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:

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.

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.

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.

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.

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.

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.


#!/usr/bin/env ruby -w

require 'optparse'
require 'osx/cocoa' #
require 'pp'

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

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

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}}

  puts "#{main_display_width} =>"
  pp window_properties


  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(',') + '}'
        %Q{tell application "System Events" to set the #{prop} of #{WindowsOfInterest[window]} to #{value}}

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


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.

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.

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.

November 15, 2007

Chris Prince: Uhh...

Pardon my French, but what the fuck? And this is an ally?

For what it's worth:
Royal Embassy of Saudi Arabia
601 New Hampshire Avenue, NW
Washington, DC 20037

posted at 10:02 PM.

December 21, 2006

Chris Prince: Hilbert, party of n+1?

I'm in Indianapoils now, and have been for about 26 hours. I spent most of those last 26 hours either sleeping or working, though. I won't write about work just yet, since I'm now furious with my boss over a few issues, and I'd rather write about it when I've calmed down.

That said, I am glad to be home and relaxing (after work today, anyway). Is there going to be a Hilbert party heading out sometime over the holiday? I'd like to see the old Rose crowd again.

Lastly, I was a bad Chris this year and didn't send out any holiday cards, so, as appropriate, Happy Christmas/Hanukkah/Solstice/Kwaanza/Festivus/New Year, or if none of those apply (what, no New Year celebration?) hope you enjoy whatever time off you have coming to you.

posted at 06:26 AM.