July 21, 2017

Kent Rosenkoetter: Russian adoptions.

Trump Jr. says his meeting with a lawyer for the Russian government only talked about adoptions. He thinks this somehow exonerates him because he wasn’t colluding with a foreign government representative. Here’s what needs to be repeated as often and loudly as possible.

When the Russian government talks about Americans adopting Russian orphans, what they mean is Lift US sanctions against Putin and his murdering associates.

This isn’t immediately obvious, which is why Putin’s agents are doing it. But have no doubt at all, whenever a Russian agent says adoptions, they mean lift US sanctions and nothing else. So what Trump Jr. is actually saying is, I met with a lawyer for the Russian government after the lawyer promised me illegal help with our campaign, and when we got to the meeting, the Russian government lawyer immediately started talking about lifting US sanctions on Putin’s friends.

Read that a few more times. This is blatant admission of criminal activity. There is no "if", "but", or "maybe". It is illegal. This is offering aid and comfort to an enemy of the United States, which is defined in the Constitution as treason.

Just to lay it all out as repeatedly as possible, this is the sequence. There was a Russian named Sergei Magnitsky who exposed a massive tax-theft scam by Putin’s associates. (Massive as in hundreds of millions of dollars equivalent.) Sergei Magnitsky was key in the investigation into Putin’s associates when he was murdered in jail pending trial.

In response to this obvious corruption and criminal activity, the US passed the Magnitsky Act in 2012 to freeze the American assets of Russian officials guilty of gross abuse of human rights (like murder).

In retaliation for the Magnitsky Act, Putin froze all the adoptions of Russian orphans by American parents, and told the Americans that the freeze would remain in place until they convinced Congress to repeal the Magnitsky Act. So Putin is responsible for adoptions being halted. The US is not responsible for that happening. And Putin has been very clear that it is inextricably linked to the sanctions.

So every time you hear Trump Jr., or a Republican talking head, or even Trump himself say that Putin or Russian government lawyers or Russian diplomats are only talking about adoptions, remember that they are really saying the Russians are trying to convince them to lift US sanctions against criminal Russian officials.

Trump himself just admitted to yet another undisclosed conversation with Putin, and he said it was centered around adoptions. That means that, once again, Trump is admitting to collusion with Putin against American interests. It is really not possible to overstate just how significant and damaging to America this all is.

posted at 06:35 AM.

July 11, 2017

rhit tag @ flickr: rhit w2 discussion pie

Cassadel posted a photo:

rhit w2 discussion pie

posted at 09:00 PM.

rhit tag @ flickr: rhit w2 discussion histogram

Cassadel posted a photo:

rhit w2 discussion histogram

posted at 09:00 PM.

June 23, 2017

Kent Rosenkoetter: GOP "healthcare" bill

The GOP should name its healthcare bill KTP.

Kill The Poor

The modern Republican party wants poor people to die in agony. They really do. If you're a multi-millionaire, you get subsidized by everybody else's tax money. If you're poor, you die in agony from preventable illnesses.

How did the political party of my grandfather turn from a reasonable and rational collection of ideas into a fascist mouthpiece for billionaire propaganda?

posted at 07:51 AM.

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.

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.

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 hober@apple.com.

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.

image

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.

image

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. https://skydrive.live.com/

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. http://www.thinkgeek.com/product/b88d/ 
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.  http://www.crashplan.com/consumer/crashplan-plus.html  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.


DSCN4289

DSCN4288

DSCN4287

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.

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.

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.

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.

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.

June 05, 2006

Looptid.com: The Humpty Dance

Verse One

All right!
Stop whatcha doin'
'cause I'm about to ruin
the image and the style that ya used to.
I look funny,
but yo I'm makin' money, see
so yo world I hope you're ready for me.
Now gather round
I'm the new fool in town
and my sound's laid down by the Underground.
I drink up all the Hennessy ya got on ya shelf
so just let me introduce myself
My name is Humpty, pronounced with a Umpty.
Yo ladies, oh how I like to hump thee.
And all the rappers in the top ten--please allow me to bump thee.
I'm steppin' tall, y'all,
and just like Humpty Dumpty
you're gonna fall when the stereos pump me.
I like to rhyme,  
I like my beats funky,
I'm spunky.  I like my oatmeal lumpy.
I'm sick wit dis, straight gangsta mack
but sometimes I get ridiculous
I'll eat up all your crackers and your licorice
hey yo fat girl, c'mere--are ya ticklish?
Yeah, I called ya fat.
Look at me, I'm skinny
It never stopped me from gettin' busy
I'm a freak 
I like the girls with the boom
I once got busy in a Burger King bathroom
I'm crazy.
Allow me to amaze thee.
They say I'm ugly but it just don't faze me.
I'm still gettin' in the girls' pants
and I even got my own dance

Chorus

The Humpty Dance is your chance to do the Hump
Do the Humpty Hump, come on and do the Humpty Hump
Do the Humpty Hump, just watch me do the Humpty Hump
Do ya know what I'm doin', doin' the Humpty Hump
Do the Humpty Hump, do the Humpty Hump

Verse Two

People say Yo, Humpty, you're really funny lookin'
that's all right 'cause I get things cookin'
Ya stare, ya glare, ya constantly try to compare me
but ya can't get near me
I give 'em more, see, and on the floor, B,
all the girls they adore me
Oh yes, ladies, I'm really bein' sincere
'cause in a 69 my Humpty nose will tickle ya rear. 
My nose is big, uh-uh I'm not ashamed
Big like a pickle, I'm still gettin' paid
I get laid by the ladies, ya know I'm in charge,
both how I'm livin' and my nose is large
I get stoopid, I shoot an arrow like Cupid,
I use a word that don't mean nothin', like looptid
I sang on Doowutchyalike, and if ya missed it,
I'm the one who said just grab 'em in the biscuits
Also told ya that I like to bite
Well, yeah, I guess it's obvious, I also like to write.
All ya had to do was give Humpty a chance 
and now I'm gonna do my dance.

{ Chorus }

Breakdown

Oh, yeah, that's the break, y'all
Let me hear a little bit of that bass groove right here
Oh, yeah!
Now that I told ya a little bit about myself
let me tell ya a little bit about this dance
It's real easy to do--check it out

Verse Three

First I limp to the side like my leg was broken
Shakin' and twitchin' kinda like I was smokin'
Crazy wack funky
People say ya look like M.C. Hammer on crack, Humpty
That's all right 'cause my body's in motion
It's supposed to look like a fit or a convulsion
Anyone can play this game
This is my dance, y'all, Humpty Hump's my name
No two people will do it the same
Ya got it down when ya appear to be in pain
Humpin', funkin', jumpin',
jig around, shakin' ya rump,
and when the dude a chump pump points a finger like a stump
tell him step off, I'm doin' the Hump

{ Chorus }

Black people, do the Humpty Hump, do the Humpty Hump
White people, do the Humpty Hump, do the Humpty Hump
Puerto Ricans, do the Humpty Hump, just keep on doin' the Hump
Samoans, do the Humpty Hump, do the Humpty Hump

Let's get stoopid!

{ Chorus }

Oh, yeah, come on and break it down

Outro

Once again, the Underground is in the house
I'd like to send a shout out to the whole world,
keep on doin' the Humpty Dance,
and to the ladies,
peace and Humptiness forever

{ Music and fade }

posted at 04:30 PM.

May 15, 2006

RGSB LiveJournal community: Upgraded planet; needs tweaking

Hi all,

I've upgraded rgsb.org to use Sam Ruby's flavor of Planet. Expect several time-units of tweaking to follow. Please yell if you notice any problems.

posted at 08:41 PM.