My trip to and from work has become a standard routine. My body may be in
transit, but my mind is already off in its own little universe - far away from
such mundane endeavors as negotiating turnstiles and uh... remembering where the
hell I parked in the morning.
But The Fates conspired to post a giant CLOSED sign on my brain's private
universe and bring my consciousness firmly back to the concerns of the real
world. If you don't like bugs or if you happen to have a thing about bees, you
might want to skip today's entry.
Normally, having a man appear on the sidewalk right in front of me is no more
than a cause to adjust my course a little bit. In this case, the man that came
around the corner instantly snapped my brain back to reality (if you could call
what happened next "normal.")
He was wearing a full beekeeper's outfit. Helmet, mask, gloves, boots,
overalls, and a sealing layer of duct tape. He didn't pause or hesitate before
simply offering me a hand broom and asking me, "could you do me a favor and
brush off the rest of the bees?" I could only see a couple bees, giving the
lizard bits of my brain no reason to refuse, though something at the back of my
mind was in that slow-motion Hollywood mode, screaming
"NOOOOOOOOOOOOOOOOOOOOOOOOOOO" while fully expecting something to explode.
And that's when he TURNED AROUND!
If the guy had bathed in glue and laid down on a nest of bees, his back could
not possibly have been sporting more unhappy insects. They started at the top
of his mask and completely coated him down to his beltline. There was not a
single visible patch of his protective gear through the mass of angry bees.
He helpfully assured me that they wouldn't sting me.
The same voice that had been screaming NOOOO kicked in with a less-than-helpful
observation. "You know all those times you've been in the emergency room?
It's because you do things like this for the hell of it and we both pay the
consequences later."
Shut up, brain. Where were you when I still had enough room on the sidewalk to
get around this guy?
I honestly don't think he knew how many bees he had on him when he asked me to
help. After several minutes of brushing I had bees on my arms, bees in my
hair, and I'm pretty sure I had one under my t-shirt for a minute. Those bugs
were not happy with him and didn't just brush off like confetti. As I worked,
he chatted about having just removed this gigantic swarm from someone's house
and that catching the queen meant that they'd all disperse eventually. Despite
the fact that these little buzzers were doomed, I wasn't going to vigorously
rake them off. My job was more of the gentle coaxing sort. My sense of
self-preservation had finally caught up with me, but not enough to send me
running.
In the end, the guy buzzed off and I got in my car (after checking for extra
passengers) and drove to pick up Parker. The beekeeper was right - I didn't
get stung. I sure wish I knew who that guy was, though. I'm going to need to
send him my therapy bills. =]
-rbarry
Doing the news troll for the day, I came across a debate about a number of
states who are considering mandating HPV vaccinations for 11-year-old girls. I
nearly choked on an opposition quote: "Ninety-five percent of woment who are
infected with HPV never, ever get cervical cancer."
So sure, that seems reasonable. Let's not vaccinate kids before their eleventh
birthday. By the time they turn 15, they have a 10 percent chance of having
contracted the disease that has a 5% chance of giving them cervical cancer.
20 percent of girls have HPV by the age of 17.
!!!
Think about it. Your 11-year-old girl has a 1 in 200 chace of getting cervical
cancer - 1 in 100 if you wait until she's 17 for the vaccination. If you are
seriously incapable of processing those numbers, do the species a favor and opt
out.
-rbarry
I'm going to come out right at the front of this one and say that I already
know what I'm going to be doing on November 6, 2012 - or rather, won't be
doing. For the first time since I was 18, I will not be voting for a Democrat
in a U.S. Presidential election. I was ecstatic to see Obama win, but his
election could not have been a clearer rebuke for the wars and on the vanishing
civil liberties we suffered under the Bush Administration.
Obama has done nothing about either issue. I'm going to ignore the Homeland
Security fiasco (for once, but only after saying I was never groped in the pre-
Obama era) and get straight to the point.
Obama moved into the Oval Office and knew that if he pulled out of Iraq and
Afghanistan without hesitation, as many of his voters would have liked, he would
have had to answer for the political and humanitarian mess he would have left
behind. Instead, he chose to wait until the moment of best political
opportunity. Mark my words, Obama will divest us of those wars with a timing
that best suits his re-election, but delays the blowback until after the
election is over and his second term is secured.
The President's political aspirations have cost this country immeasurably.
They have put us in a position where we have extended our debt beyond our
ability to pay - right when we most need to be borrowing. (Governments are
supposed to pay off debts in times of surplus, and borrow in times of recession
to stabilize economies.)
This country spends about two thirds of its budget on international assholism,
between "Defense," The Central Intelligence Agency, "Homeland Security," and
other departments. No other country even comes close. That cash could be doing
far better things. Instead, it's buying a president his job for another four
years.
Don't get me wrong, I won't be voting Republican, either. I expect that there
will be a Republican landslide if they can actually find a candidate. That
puppet will take the blame for not fixing Obama's mess and the cycle will
repeat four years later.
-rbarry
Fear drives markets. It's not the only driver, but Fear is not to Bear what
Greed is to Bull. I believe that fear is the greater of the two, which is why
major crash days are of greater magnitude than major growth days. It is so
much easier to fear that you're going to lose your shirt than to shed your fear
and jump into an upswing while it's just getting started.
The current market situation "seems" to revolve around Greece's debt crisis.
Now, "seems" is a wonderful weasel word, and I'm guilty of using it more
liberally than I should, but in this case I am using it in a broader fashion.
Picking through my usual news sources today has produced a vast array of
stories that invoke the sense of fear of Greece's default that dominates the
markets today. So, to the consumer of news, Greece is the hot topic of the
day. And so, I chose to say that the market consciousness "seems" to revolve
around the topic.
Here's where I get on my soapbox. (You knew it was coming.) The articles I
have read explain to differing degrees that Greece affects us because of some
variation on the following explanation: "If Greece defaults, Ireland, Portugal,
and Spain will likely be next, followed by a major global market downturn due
to the crushing economic burdens this would place, by extenion, on the entire
world."
It won't happen. When there is this much consensus of fear, I'll bet (in other
words, I'm heavily invested in the assumption) that the ocean of fear
surrounding the potential Greek default will mean that those in power will not
risk letting it happen. We will continue to see extensions to the time and
size of standing loans and greater oversight of Greece's economic navigation.
But we won't see them fold because the world is afraid of what would happen if
they did.
Crazy as it sounds, the level of fear surrounding the issue is my greatest
assurance that the U.S. market is going to have a hard time of this, but it
won't be allowed to turn into a catastrophe. Once the fear subsides, things
will start to improve again.
Welcome to the world of "Too Big to Fail," where only the little guy has to
worry about annoyances like fiscal responsibility.
-rbarry
I've been thinking about replacing the font on this page with something a
little different. If you've been keeping up with this stream for a while,
you might have seen a demo of this page that used a handwritten font instead of
one provided by your browser. It looked pretty good, but between the time it
took for a browser to render a page and the excessive space between characters,
I gave up on it after a while and moved on to other things.
Just for the helluvit, I wrote a quick script to count the number of
occurrences of substrings all the files that contribute to this blog. The idea
was that I could make the breaks between characters look better if some of the
entries in the "font" were character sequences, like "th", "he", "the",
"-rbarry", "TSA", etc. The combinations with the highest use counts would
(slowly) get "character" entries of their own.
So, the most common character combinations on this blog:
th (11210) the (6614) that (1541) thing (435) rbarry (313) -rbarry (280)
he (9130) and (2225) tion (1201) barry (313) people (137) through (132)
an (5619) hat (1962) ther (692) would (311) hrough (135) mething (103)
at (4978) tha (1732) with (637) about (307) rogram (122) because (103)
in (4754) you (1505) have (628) other (267) though (120) program (102)
I hope this fails entirely to be of any interest to anyone at all.
-rbarry (281)
I had to run a ton of speed tests on data in different byte orderings,
collecting average run times. It took forever, but it was worth it. After all,
the Endians justify the means.
-rbarry
If my pockets don't contain my Swiss Army Knive, my SpyderWrench, keys, wallet,
cash, cell phone, a memory stick and my pocket watch, I feel naked and can't
leave the house.
Of course, by the time I get all that crap into my pants, I'm naked again and
probably shouldn't leave the house.
Gift idea for this year: suspenders.
-rbarry
Nothing major. I've been wanting to get some serious political rant on, but
have been overoccupied with the rest of life. I did want to drop in a minor
little script that just enumerates the drives that are currently active on your
windows box.
I use the cygwin ruby. If you got it with the windows installer, you'll need
to change prefix to "" and the suffix to ":"
require 'pathname'
prefix = "/cygdrive/"
suffix = ""
if VERSION.split(/\./)[0] == "1"
$min = "a"[0]
$max = "z"[0]
else
$min = "a".ord
$max = "z".ord
end
$min.upto $max do |i|
drive_letter = i.chr
if Pathname.glob(prefix + drive_letter + suffix + "/*").size > 0
puts drive_letter
end
end
I feel I should make some excuse for my absence recently. I've been spending
most of my digital free time on a project to once-and-for-all handle the
process of backing up my files to remote locations. I started out with a
scheme for using Amazon S3 and Google Storage, but each had their drawbacks -
primarily the fact that they charge me for usage.
The organization that hosts foodini.org does allow me a great deal of storage
space for free, so I figured I'd be a fool if I failed to take advantage of it,
so I'm currently hacking away feverishly at ruby code to create the monster du
jour.
I should first acknowledge that there are a bazillion and two mechanisms which
accomplish what I'm up to. Yes, rsync is a perfectly reliable system and it
actually does everything that it claims to. In fact, I use it on a regular
basis. Most of my home crap is backed up via rsync to a number of offsite
locations. There is, however, a tremendous flaw in rsync's design: it assumes
that you trust the guy that you're sending your data to.
However, I don't like the idea that just because I pay someone for storage that
they are somehow to be trusted to keep their prying eyes off its content. To
be honest, I think that the most incriminating data I generate is publicly
available right here in this blog, (I don't keep a journal and I don't have any
photos of myself that would prevent me from running for public office or make
it difficult for me to pass a job interview,) but it's just the principle of
the thing.
I'd originally started with something that would sync my data to and from S3.
It was simple and, unlike an rsync solution, didn't require that I have the
plaintext AND cyphertext versions of all my files on my local system. But, it
was slow and required all syncs to push all data every time. Yeah, there were
tweaks that removed this need, but in the end, I just wasn't happy with paying
Amazon or Google for the gig and I didn't like the fact that my filenames were
out there in plain text.
So I've been learning about AES in ruby the hard way, swearing at the fact that
Digest returns binary data at times and hex at others, re-inventing the
initialization vector, and giving in to the idea that you can store an entire
lifetime of data in a single directory. It's really boring crap, but sometimes
I need a project that will force me to wallow through the tiresome stuff...
Whether the project in question will make it to the public, I don't know. I'll
probably post it here and let anyone who wants to fiddle with it suffer the
consequences. In the end, I'd be happy if it twisted the arms of the guys that
do rsync into adopting the same behavior. I looked at their code and it wasn't
something I was comfortable doing.
-rbarry
I think you would be hard-pressed to find anyone who still uses the Caps Lock
with any frequency. As you're probably aware, the Caps Lock is a throwback to
a day when manual typewriters' Shift Keys physically "shifted" the entire
striker rack vertically to change which part of the striking head contacted the
paper. Each head had a default character and a 'shifted' character to reduce
the number of keys required to represent the entire character set.
The effort required to depress the Shift Key was greater than that of any other
key, but it was customary to type anything from an address on an envelope to
the title of a memo in all-capital letters. Thus, chunking out
WOODROW WILSON
1600 PENNSYLVANIA AVE NW
WASHINGTON, D.C. 20500
...required the shifting of the striker rack four times, and that the typist
hold it down for nearly the entire block.
This is not nice to little fingers. The "Shift Lock" was added to typewriters
to allow the typist to toggle between shifted and unshifted rack positions.
While this still required four presses of the Shift Lock Key to send your
complaint to The White House, you didn't have to hold the thing down. The
mechanism took care of that for you.
I'm not sure when the Caps Lock made its debut, but given that there have been
computers manufactured with both (and there still are - I'm looking at you,
France) I will hazard the guess that it came with the electric typewriter. An
electric would have been able to help you type out your address by selectively
applying the Shift Lock only to characters. Addressing your letter to Mr.
Wilson would have required pressing the Caps Lock ("capitalization Lock") only
once. Conveniently, that keypress would have been essentially effortless on an
electric.
Enter the modern era, sans the French. If you're still typing any significant
portion of your missives with the use of the Caps Lock, please don't write to me
to tell me about it.
Despite the apparent fall of the function of the Caps Lock Key, we still have
them on nearly every keyboard being manufactured. (I gather that the Google
Laptop and the One Laptop Per Child projects have both made better use of that
space.) So let's see if we can come up with a better use for it than the one
for which it was intended.
What key gets the most frequent use of all the keys that are less-accessible to
your fingers than the Caps Lock? Why not the Escape Key? You probably don't
use it as frequently as I do, since I'm an insufferable vim user, but it is
still a terribly handy keyboard shortcut in just about every piece of software
out there, be it for Windows, Mac, or the Unix-like gamut.
The central machine at my desk is a PC, from which I use synergy to connect all
6-10 machines at my desk into one giant console. It all requires one mouse and
keyboard, so it is at this machine that I'll do my remapping of the Caps Lock to
Escape. In regedit.exe, add a "Scancode Map" key to:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
...and give it the value:
00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00
All will be well and good once you've rebooted.
--rbarry
(And this is where I press the Caps Lock Key to exit edit mode and return vim
to command mode.)
Like any good prophet, I have my off days. I should probably go back and keep
score on my hits and misses, but such activities are better left to posterity
anyway. Come to think of it, I don't think John of Patmos'* record to date has
completely withered his credibility.
So, with that out of the way, on to the prophecy. Today's topic is the future
of mobile gaming. Anyone with enough cash and few enough brain cells has leapt
headfirst with millions of dollars into an industry that can't support a flow
of million dollar projects. But I would like to share a revelation of my own:
Social games are, in practice, inherently anti-social activities.
Mobile games are, in practice, inherently isolating.
People participate in flash mobs for the same reason they attend church.
Okay. I'm laying it on a little thick, but whether you agree with my
observations or not isn't relevant. This is:
Make a fucking social game that depends upon cooperation with people in your
immediate physical vicinity to improve your performance and you'll lose the
anti-social stigma, stop isolating your players, and provide them with the
feeling that they're part of something greater. Why the hell else do you
think people show up for flash mobs?
Think about how often you see people hiding from reality on the subway as you
glide in to work. What if their little game were telling them that they really
should introduce themselves to the guy across from them. You know, the one
with the tie and glasses, because he can help you train your dragon faster? The
key point is: you have to TALK TO HIM USING YOUR REAL VOICE.
All the sudden, people would be MEETING ACTUAL PEOPLE by playing your game. We
have, as a culture, turned ourselves into little techno-troglodytes in the last
couple of decades and I, for one, am looking for an escape. What if social
games actually made us SOCIAL again? You'd find yourself walking into a pub to
find that it was being taken over by 50 guys that are trying to build... I
dunno.... a trebuchet?
It's frivolous, I know, but what part of gaming isn't? The devices and the
games are here to stay. You might as well be the one to profit from the next
huge idea, and I honestly believe that this is it.
The only thing that is important about this is that the game MUST NOT encourage
anything but the most enthusiastic cooperation. Asking two guys on the San
Francisco subway to have their avatars fight to the death sounds like a really
good way to start something very bad in our public transit systems... and I'm
pretty sure I don't want to share a reputation with our friend, John.
-rbarry
* Okay, dammit, I was being too obscure. John of Patmos was the author of
The Book of Revelations.
"Were it left to me to decide whether we should have a government without
newspapers, or newspapers without a government, I should not hesitate a
moment to prefer the latter." - Thomas Jefferson, to Col. Edward
Carrington, January 16, 1787
I'm of two minds in which direction I would like to take with this essay. On
the one hand, I'd like to chat with thinkers who take a philosophy like this
one:
"...though it is not clear whether the courts would consider Assange a
journalist" - Richard A. Serrano and David G. Savage, Los Angeles Times
December 7, 2010
I think I'll reduce this train of thought to a simple request, so I can get on
to the real meat of my thinking. I would ask my faithful reader (all of him)
to call into question any speaker who asserts that the actions of WikiLeaks are
not protected by the First Amendment to the United States Constitution because
of some question as to whether WikiLeaks' members are proper journalists.
Remember that the wording in the Bill of Rights prohibits "abridging the
freedom of speech, OR of the press." They are separate freedoms. When you
hear a discriminating factor that separates journalists from non-journalists,
just recognize that the writer or speaker is manipulating you. Regardless of
the answer to the journalist question, the first freedom in the First Amendment
applies. Period.
This brings me to the real core of the issue. What need does a government have
to restrain the speech of its citizens? Let's take the common example of
obscenity. There are reasons why we don't allow the public performance or
depiction of graphic acts. It is not in the public's best interest to protect
unrestricted dissemination of sexual or violent material, even if the material
itself does not depict a victim.
Why else?
Under English law, at the beginning of the 18th century, you could go to prison
for printing, writing, or even speaking criticism of the government, regardless
of the truth of the statement. In other words, the press was explicitly barred
from printing anything of a negative nature about the government, even if the
statements were verifiable facts. Atheist? Prison. Blasphemous? Prison.
Public statement denying the Holy Trinity? Execution. No shit.
The phrase, "We hold these truths to be self-evident, that all men are created
equal...." is one that no American fails to recognize. Do you know anything of
the sentence that precedes it, though? "a decent respect to the opinions of
mankind requires that they should declare the causes which impel them to the
separation" is how it ends. In other words, "Dear King George; Our opinions
matter and you have failed to respect that. Get the Hell out."
Somehow I suspect that John Hancock would have been a little less likely to go
for the over-sized Sharpie if they'd used my version, but I'm trying to make
the point that the colonies wanted to be able to make a point. Without going
to prison for it.
There is a second reason that government would desire to restrict free speech.
To protect the security of the republic. Even I, an unapologetic political
nutcase, would not argue against this one. What I will argue is that the
threat to our national security comes FROM our politics and our politicians.
We spend nearly an order of magnitude more every year on applications of war
than any other country. THAT is why people hate us and THAT is why they would
really like to come after us. The reason the First Amendment is there is to
make sure that citizens can get an account of how their government represents
them, and thereby hold that government accountABLE for their actions. It is
the nascent press of the internet (think about it, the potential distribution
of this article alone is greater than the population of the planet in 1776)
that is protecting the security of the republic from itself - by holding a
mirror up to its gross malignancy.
The press blackout in the wars of the last 20 years have prevented exactly this
kind of accountability. You are now living the result of a war without end -
or the informed consent of the voters: public apathy leading to massive debt,
crippled economy, and a government that seems to think that if it can railroad
one amendment, others (The Fourth, Fifth, Sixth, Eighth) might as well be next.
-rbarry
I was a little surprised to see the news this morning that Julian Assange, of
WikiLeaks fame, had been denied bail in the UK court system. The surprise was
not (yet) about the denial of bail, but about the fact that he'd been arrested.
Maybe I'm a day behind, but I'd not heard that he was in custody.
The representative of the Swedish authorities, Gemma Lindfield, argued that he
should be refused bail because of his "nomadic lifestyle," the spreading rumor
that he intended to seek asylum in Switzerland, his access to money, and his
status in the UK that only allowed him a short stay. (Because we all know that
persons out on bail are frequently sent abroad when their visas expire.)
Lindfield continued, "This is someone for whom, simply put, no conditions, even
the most stringent conditions that could be imposed, would ensure that he would
surrender to the jurisdiction of this court."
So he was denied bail.
So having absorbed the fact of his arrest, why was I also shocked to find out
that he'd been denied bail? Because he'd voluntarily surrendered to the
authorities! If he were committed to eluding due process, wouldn't he have -
just MAYBE - stayed out of jail in the first place?
-rbarry
To continue to harp on the point du jour, the United States Department of State
released an announcement that the U.S. will be hosting UNESCO's 2011 World Press
Freedom Day in Washington, D.C. From the press release:
The theme for next year's commemoration will be 21st Century Media: New
Frontiers, New Barriers. The United States places technology and innovation
at the forefront of its diplomatic and development efforts. New media has
empowered citizens around the world to report on their circumstances, express
opinions on world events, and exchange information in environments sometimes
hostile to such exercises of individuals' right to freedom of expression. At
the same time, we are concerned about the determination of some governments
to censor and silence individuals, and to restrict the free flow of
information. We mark events such as World Press Freedom Day in the context
of our enduring commitment to support and expand press freedom and the free
flow of information in this digital age.
Yes. The State Department really does think that little of your critical
thinking skills. I guess that they're part of the same government that chose
extensive expansion of military spending over the cost of your education, so
they should know...
-rbarry
I'm totally going to sue 3M for false advertising. Their adhesive products
taste nothing at all like whisky.
-rbarry
In other news, today: Greyhound is now employing Tardises on their San Francisco
to New York line:
-rbarry
"The Cold War." Many of us who grew up in the Untited States came to believe
that this was a dramatic expression for the state of East vs. West jostling
that followed World War II and persisted until the late 80's. Through four
decades, the U.S. and the U.S.S.R jostled for superiority not only politically,
but economically. The Cold War was, in many ways, about who could build more
weapons - conventional or nuclear - and deliver them more quickly, even if
those weapons and delivery systems were unused.
After the end of the war in Vietnam, infantry Col. Harry Summers, U.S. Army,
who had been tapped to serve on the negotiation team for the United States
during the peace process, said to his North Vietnamese Army counterpart, Col.
Nguyen Don Tu, "You know, you never won a single battle."
Col. Tu simply replied, "That may be so, but it is also irrelevant."
The NVA had never expected to defeat the United States Armed Forces. Any route
of the Americans would have been a pyrrhic victory, as the U.S. would have
simply used superior mobility, technology, and firepower to start all over on a
new front. Vietnam was a political war. As long as U.S. casualties mounted
and Americans kept seeing their soldiers' deaths on television every night,
support for the war would fade. The U.S. thought they were fighting a
conventional war of mobility, technology, and firepower. We were wrong. The
real conflict was one of ideology and economics.
Remember Ronald Reagan's Strategic Defense Initiative? Maybe you remember
hearing its more popular name: Star Wars. Why did the missile shield never go
up? Because Star Wars was an economic battle without the slightest possibility
of success. There was no defense against a ballistic missile that wasn't five
orders of magnitude more expensive to deploy than it was to defeat. Every leap
of technological brilliance that could be expected of Star Wars could be taken
out of commission by the simplest of countermeasures.
For example: The U.S. puts a series of laser satellites in orbit. The U.S.S.R.
responds by polishing their missiles with a mirror finish. The U.S. responds
with much higher-power lasers, so the small amount of unreflected light would
be capable of heating the missile's surface, burning through and destroying it.
The U.S.S.R. responds by having their missiles slowly rotate as they achieve
apogee, giving the area exposed to the laser time to cool before being
re-exposed. If all else failed, any U.S. satellite in the Star Wars program
could have been shadowed by a cheap satellite of Soviet manufacture that would
have simply kamikazed the U.S. missile killer when the U.S.S.R. decided to
launch. This inequality of cost of security and cost of penetration goes on
and on.
We spent billions on Star Wars with no hope whatsoever of seeing a practical,
deployable result from the investment.
Despite Star Wars' irresponsible cash drain, it was the U.S.S.R. that
eventually ran out of money, ending the Cold War by forcing a sweeping reform
of their government and economics. The U.S.S.R. incapable of sustaining the
escalation of armament.
And now we find ourselves on the losing side of the economic and political
battle lines. According to a video statement by Osama bin Laden in October of
2004, Al Qaeda spent $500,000 on the attacks of September 11, 2001. In his own
words, "...while America in the incident and its aftermath lost -- according to
the lowest estimates -- more than $500 billion, meaning that every dollar of al
Qaeda defeated a million dollars." He believes that it was his movement that
destroyed The Soviet Union: "[The mujahideen] bled Russia for 10 years, until
it went bankrupt." He made it clear that this would be their ongoing plan for
the U.S. Even now, his organization still gets to sit back and watch as that
investment continues to pay off.
I've introduced The Cold War, Vietnam and Star Wars, all to illustrate the
point that sometimes the conflict is less about the battlefield and far more
about how hard it is for you to be there. In the Cold War, the U.S.S.R.
couldn't keep up with the pace of Western buildup. In Vietnam, the U.S.
couldn't pay the price of public opinion, nor could they invade North Vietnam,
and so they lost the war without ever losing on the battlefield. Star Wars'
idiocracy is a perfect example of the importance of keeping economics in mind
in a conflict situation.
Star Wars brings me neatly to another point, though. No matter how much you
spend on security, you can never have it.
A trillion-dollar national security program can be circumvented with a bribe
one-millionth that size, or smaller. A secure government is an open, honest,
benevolent government. We have security problems in the U.S. because we are
tyrants. We are the bad guys. It's time to start solving American problems by
looking to our own solutions, within our own borders. You want to balance the
budget? Stop spending 2/3 of it on killing, maiming, torturing, and spying on
the entire human race. We could use that money for education, infrastructure,
and building a proactive, enlightened society.
The Romans believed their empire could never fail, too.
-rbarry
I finally got around to changing my facebook 'relationship status' and it took
facebook exactly one reload to start hitting me with related targeted
advertising.
-rbarry
I remember the day that I finished Math 322: Differential Equations. I walked
out of the final, liberated at last from the burden of college calculus once and
for all. (If I'd had to take up calc to do a master's program, I would never
have gone.) It was a bright, beautiful, clear day. I remember it as one of
those first sunny days after a long winter, the kind that seem so much happier
than the limits of reality, only because of the contrast to the many gray months
preceding it.
For all I know, this was all in my mind, given the liberating moment of having
walked out of the most dreaded exam of my college career with a spring of
confidence in my step and a little left-brain-killing song in my heart.
After an hour or so, I happened upon one of my classmates from the class in
question. It had been a test with few questions, so it wasn't odd for my friend
to have queried me numerically:
"So, what'd you get on number one?"
I replied, "Uh, which one was that?"
"The one on Newton's law of cooling?"
"Uh..."
We chatted for a moment about the problem. To this day, I still remember that
the question was a murder mystery that riffed on the O.J. Simpson Trial, which
was big news at the time. We were supposed to determine if Apple Jack Sampson
could have been at the scene of a murder, based upon the determination of the
time of death of the victim using the ambient temperature, body temperature,
etc. I even remember that part of his alibi was that he was known to be using
his cell phone to call a friend between - and I'm still pretty sure about this,
fifteen years later - 10:11pm and 10:18pm. His cell phone was on the opposite
side of town when the call was made. I even remember that he turned out Sir
Isaac Newton failed to exonerate Mr. Sampson.
So how is it that I remember all that fifteen years later, but an HOUR later, I
couldn't even remember how to do the problem, despite having all the details of
the question clear in my mind? It's not like I'd flunked the test. Indeed, I'd
gotten a B+ on it, securing me the best grade I received in a math class to that
point. (I did have to go on to some non-calculus-based classes.)
We went on to question number two, an examination of the rate of growth of a
bacterial colony. Same brain abort. The processes I'd learned in the class
had entirely escaped my mind. I still remembered anything that I could
visualize - a piece of paper with a test question, a blackboard with an example-
but there was nothing left regarding the processes I'd been learning in my
least favorite subject of all time. Kudos to Dr. Littlejohn, by the way. He
made an insurmountable topic almost enjoyable to me. Enough so for me to not
only pass, but to pass respectably.
So why am I ranting about why my brain doesn't work? Car Talk has recently
been asked by a listener, how do you determine that a cylindrical tank, whose
axis of rotation is horizontal, is a quarter full just by measuring how far up
the diameter the diesel reaches. There were some creative solutions offered up
on their website that required only physical thinking - filling the tank until
you measured half a tank with a dipstick, then adding one quarter of what you
knew the tanks held, then measuring again. That sort of thing. But I wanted
to solve it.
wolfram.com is your friend. I don't have to remember how to integrate
sqrt(1-x^2) dx, but I can ignore that and get on with the business of solving
my problem. It was fun...
-rbarry
As I re-watched a Carl Sagan segment from Cosmos (1980,) I found a small part of
it resonating with some of my own musings on color deficiency over the years.
Your eyes have three color-sensing constructs, one for picking up photons in
the red part of the spectrum, another for green, and another for blue. The dye
that your body generates to filter the photons entering these receptors is what
gives them their spectral signature and is a pivotal part of how you see. If
you have normal vision, your red, greed, and blue dyes match that of your peers
with great precision. Color deficient viewers vary radically, not only from
normal viewers, but from each other. If you were to pass white light through a
green dye, then a spectral analyzer, you'd see the same pattern for all normal
viewers. If you did the same thing with a group of color deficient viewers,
you'd see a different pattern in each person. Depending upon the types of
color deficiencies, you might see differing patterns in the green, red, OR blue
dyes. You might even see a viewer whose green dye was actually red.
It's a lot of information, and I've glossed it over heavily, but I only wanted
to touch the surface to illustrate the point that color vision is an incredibly
complex topic. With something like 4-5% of the population exhibiting some
level of color deficiency, it is simultaneously one of the most common
disabilities and one of the least understood. This conversation has been
played out in my life more times than I can count.
Ron: I haven't the slightest idea what color [whatever we're talking about]
is. I'm color deficient.
Cohort: Really? So what color does it look like to you?
...and I get asked that same question at least once or twice per month. It's
not world-ending that I've never been able to answer it, but hitting this road
block so frequently has generated an insane level of frustration.
In the last decade or so, I learned to stop telling people that it looks like
many different colors - an answer that confuses the hell out of everyone - and
I instead feed them an analogy: I have my listener imagine that they are just
now learning to read. I then ask them to imagine that every time they see a
letter, someone tells them that it is something different. Now it's a Q, now
it's a G, then an R or a T, a Z then an N.
For people with color deficiencies, this is an apt metaphor. Learning colors
as a kid was impossible because I was constantly bombarded with things that
looked the same but were labeled with different names. There is one particular
hue that has been the greatest offense to me: red LEDs, brown grass, orange
sunsets, yellow traffic lights, and green tree frogs are all the same damn
color to me. If you pointed to a color sample of any of them and asked me what
it looks like to me, the answer is a reddish, brownish, orangish, yellowish,
greenish color.
For the analogy to communicate this difficulty, I ask my listeners how well
they would have learned to read in this convoluted environment, and they start
to get it. I then ask them what their answer would be if I showed them a Q, a
G, an R, T, Z or N and asked them what it looked like to them. Usually, they
get it.
This particular thought experiment may or may not be original. I'd like to
think that it was a new perspective on the old issue, but it is still
gratifying to hit upon someone who has thought about the same disconnect
between the physical world and the world of perception. I had not seen this
segment since it last aired, but I had never forgotten seeing it. I'm not going
to clue you in further. If you watch it, you'll see the connection.
-rbarry
Did you hear the one about the math club that proved that they had n+1 members
in their organization? They recruited a new member. Proof by induction. QED
-rbarry
After my car was broken into last month and I had to cancel my credit card, I
needed to update my details with AT&T, and everyone else under the sun. All
the usual annoyances applied.
AT&T, is not, however, a usual annoyance. They have elevated stupidity to an
art form of which they have become the master. I have never once had an
experience with them that wasn't laughably abominable, so it is no wonder that
I have developed a Pavlovian response, bubbling from the pit of my stomach,
radiating pain to my toes and the very tips of my hair, that actually makes me
want to vomit.......... every time I am about to pick up the phone and talk to
these people.
To begin, I received a past due notice in the mail yesterday - the 28th of
September. This is odd, considering that I updated my autopayment information
nearly four weeks ago - a date that AT&T confirmed when I spoke with them. I
went to their website and navigated my way to their payment center. I was
greeted with this:
The "Due Immediately" portion listed one of those numbers that only makes sense
in the context of a mobile phone bill, but it was non-zero and clearly
represented more than a month's worth of billing. Yes, money had not been
transferred from my bank to theirs, but it was hardly for my lack of trying.
Clearly, I'd entered the right card. You can't see it because I've blacked it
out, but it was the correct one. Thinking that I'd mis-entered the rest of it,
I started navigating through to edit the card info. This is when the website
suddenly decided that the credit card they had on record was my old one again.
Que the nausea. I picked up the phone. Not my mobile. I'll be damned if I'm
going to subject myself to the paradoxical frustration (and yes, I chose those
words very carefully) of having AT&T drop a call when I'm online with their
"customer service."
Greeted by the silicon version of the phone robot, I started mashing 0 until I
got a carbon-based phone robot that had an only slightly worse grasp of English
than her predecessor. Before you assume I'm making disparaging racial remarks,
I assure you - I was connected to what passes for English in the United States.
The woman explained to me that I had to go back and manually pay the last two
months of service (re-entering all the same card info again along the way)
because the process of entering AutoPay info automatically cancels AutoPay.
Bypassing this particular stupidity, I moved on tho the stupidity that an
inactive AutoPay would so clearly display an option to discontinue it as we can
all see above. I pointed this out.
She explained that the problem is that they do AutoPay billings (for me, at
least) on the sixth of the month and that by missing that date this month, I'd
triggered something (I couldn't see her hands waving, but I could hear them)
that caused the normal billing cycle to fail. Somehow this puts ATT into a
mode where, despite having received my new credit card information long before
they required it, I was being sent past due notices.
How I missed the sixth by entering all my information on the second, I....?
Never mind.
She pinned my bogometer and from that point forward, it was an exercise in
getting off the phone as quickly as possible. Having attempted to point out
that entering all this info once should be sufficient and having her attempt to
justify the whole thing on technical grounds just made me further roll my eyes,
aggravating the usual throbbing ATT headache.
-rbarry
Pop culture has spawned one of my new favorite quotes, "I don't want to live on
this planet anymore." (Prof. Hubert J. Farnsworth, Futurama)
If you've been following the upcoming Koran-burning contest, you can probably
figure out for yourself why this statement is on my mind. Pastor Terry Jones
planned the burning for this September 11 as "a protest against radical Islam."
What do I burn to protest radical Christianity. The Bible? That would somehow
miss the point.
Let me just put it this way: Terry Jones, you don't get to protest radical
religious zealotism with radical religious zealotism. If you burn anything,
please do everyone a favor - Christian, Islam, and indifferent - and volunteer
as fuel.
-rbarry
The page you're now reading - whether you got here via fingerme.cgi, latest.cgi,
or permalink.cgi - has just suffered a rewrite in preparation for some redesign
of how I manage these pages.
Aside from some minor changes in formatting and the top-of-page header, the only
difference you should see is the addition of facebook thumbs-up doohickeys. The
latter exists ONLY on the permanant link and 'latest' pages, quite simply
because each one triggers a little chat between your browser and facebook. The
time difference between loading the entire blog without vs. with facebook thumbs
is the time difference between wondering what you'll have for lunch and actually
going out to eat. It was unacceptable.
The only reason I mention this at all comes down to the simple problem of long-
term, small-scale software engineering, which I have discussed before. When I
went to start writing the update, I thought that I'd start with a Ruby-on-Rails
project. So why did I write these three utilities out as a single 233-line ruby
.cgi script instead of going with such an exellent web project framework as
Rails?
Simple: Ruby-on-Rails is a swooping, soaring, gliding, rolling, majestic....
...pain in the ass to manage.
The people that handle foodini.org have a nasty habit of suddenly updating the
Rails configuration for the entire collection of customers all at once. Since
Rails does not guarantee that updates will be backward-compatible, there are
two choices; I can go offline for a month like I did the last time, spending a
couple dozen hours trying to fix compatibility with the new version, or I can
'freeze' my project to the current version of Rails. From then on, I have a
suspended animation version of Rails, forever stuck in that moment in time. I
cannot update my libraries without risking a compatibility issue, forcing a
complete update to the current Rails, no matter how much work that would
entail.
Freezing Rails, for a small personal project isn't such a bad thing, but it
does mean that ten years from now, I'm going to be doing a rewrite if I want to
do any significant update. So, if I'm going to run the risk of getting back
up-to-date on such a monumental system as Rails ten years from now, thanks, but
I'll stick with reinventing the wheel.
I should address an apparent contradiction between this position and that of
yet another previous essay, in which I essentially say, don't reinvent and
don't start from scratch. The differences between the essays that justify the
opposing views are that here I'm talking about a small personal project with an
extremely long lifetime, where earlier I addressed projects that involve full-
time programmers and end-of-life on a ship date.
Why does it make a difference? A project that will never take more than a few
hours of my life at a time has a very low threshhold before invested time is
wasted time. If I spend a week or two getting some weird-assed .swf hack to
give me upload progress bars in a Rails app, I'm not going to remember the
nuances of that system ten years from now when I need to change it. Ten years
from now, the odds that a google search for an issue with a ten-year-old
version of that software will not return a useful result.
Here's another way to look at it. The time that I will invest in fingerme.cgi
over the next decade will be microscopic compared to the time that the Rails
community will invest in their system. Rails will evolve so much faster than
my use of it that the majority of my project's maintenance would be in simply
keeping up with Rails. If I were a group of a dozen engineers writing a game
on the Quake engine, I can be certain of a relatively stable development
platform. Even if the engine changed during my development, it would be a
fraction of my team's overall investment of time to adjust to that change.
Given the leg-up that the third-party platform lends a large project, this is
an acceptable trade-off. It does not scale down to the microproject.
--rbarry
Somehow, the vim/emacs war still manages to rage on. I was introduced to vi by
Kurt Olsen in 1991 - probably in an attempt to get me to edit my own .netrekrc
for a change. Since then, it's been my goto editor for just about every line
of code that I've written.
Now and again, I'll find a use case that bugs the hell out of me with vim and
I'll do a bit of googling around to see if there's a solution.
Today, I finally got fed up with manually reformatting paragraphs to 80-column
widths and asked the only greater adherant to The Church of Vi that I know of,
Glenn Mulvaney, if he had an idea. With a push in the right direction, we
found.... gqap. Set your cursor in the paragraph in question and type gqap in
command mode. Nice.
Now all I need is a way to quickly turn this:
anothenatoe unoathe nato eunaho 1
anothenatoe unoathe nato eunaho 1
anothenatoe unoathe nato eunaho 1
anothenatoe unoathe nato eunaho 1
anothenatoe unoathe nato eunaho 1
...
...
...
into:
anothenatoe unoathe nato eunaho 1
anothenatoe unoathe nato eunaho 2
anothenatoe unoathe nato eunaho 3
anothenatoe unoathe nato eunaho 4
anothenatoe unoathe nato eunaho 5
...
...
...
...as previously requested.
-rbarry
UPDATE 20111007:
I've been using the visual-increment vim plugin recently, and it does exactly
what this post discusses. You can hit ^v, select a column of numbers, and
hit ^a to increment or ^x to decrement!!!
Don't ask me how I got here, but I'm reading the Federalist Number 10 today
(aka, The Federalist Paper #10) and remembering why I gave up on reading this
thing (The entire Paper) the first time through.
The effect of [the delegation of government] is, on the one hand, to
refine and enlarge the public views, by passing them through the medium of
a chosen body of citizens, whose wisdom may best discern the true interest
of their country, and whose patriotism and love of justice will be least
likely to sacrifice it to temporary or partial considerations.
-- James Madison
Number 10 is about balancing the factionalization of citizenry in such a way as
to prevent its influence upon the republic (yes, lower case) from overbalancing
and creating an unjust situation. It speaks in general terms, but if you read
this essay, it'll call many examples to your mind.
James Madison's statement, above, makes it clear that his view of a participant
in the republican (again, lower case) process had the best interest of the
whole at heart. He seriously believed that a representative would set aside
his* personal considerations for the sake of the greater good. Number 10 talks
about how the republic must guard against a representative that "betrays the
interests" of the citizens. He figures it happens naturally (in a large
republic) as a result of having more "fit" individuals from which to select.
He believed that by selecting the right number of representatives, you would
get politicians who were far enough removed from local interests that they
could represent those interests dispassionately, while avoiding a total
disconnect that would encourage a representative to engage his personal
interests in his politics.
Now, I mentioned that this was all supposed to be a balance against
factionalization. It all hinged on the idea that at heart, a representative
wanted to do what was best for everyone. Over time, our government has become
a tool for factions, rather than a guard against them. Rather than the intent,
a representative federal government made up of representative state
governments, made up of.... etcetera..., our government polarized into parties.
Parties? Factions. Special interests? Factions. All exploiting the
fundamental flaws in Madison's thinking, that people would vote with informed
self-interest in mind, and that their elected officials would give a damn for
their constituency (ALL the voters in their district) more than for their
factional affiliations.
The population of the United States has grown one hundred fold since The
Federalist. The number of states in The Union has increased by less than a
twentieth that figure. Maybe I'm too pessimistic and we've just gone too far
in the direction of representatives having too large a constituency. Either
way, The Federalist is making me Grinchy today.
-rbarry
* Yes, his. 1787, remember?
As we drove through Pacifica yesterday, I pointed out a hovering hawk to
Parker, who randomly stated, "If you're ever dead, and you see a buzzard, run
away!"
-rbarry
The woman across from me on BART this morning was nearing the end of her book,
John Edward's (not John Edwards') "One Last Time; A psychic medium speaks to
those we have loved and lost." Knowing nothing about the book or the author
except what appeared on the front cover (title, plus over-dramatic photo of the
writer) and the back cover (over-dramatic photo of the writer,) it occurred to
me that this would be just the kind of book that would make me hate to be a
book store owner.
I thought, I'd be unable to shelve this book. Whether I put it under fiction
or non-fiction, someone is going to see it as a judgement of the content. It
occurred to me that my store would need either a "WTF?" section or a "Really?"
section to cover such tripe.
Two thoughts from there: book stores do have such sections; religion, occult,
spirituality, etc. And, I'd never be the store owner in such a situation. I'd
never stock the thing in the first place.
-rbarry
I thought I'd share a little experience I've had in the purchase of a bow
recently, and detail a thing or two that an up-and-coming bow owner should know
before they set out. As I discovered, many a detail of the process isn't even
in the fine print and you're going to be doing some digging (or, in my case,
laying out even more cash) until the dark arcana have been invoked and you're
happily shooting bulls-eyes.
I bought a Mission UX-2. Black. I don't have anything against hunters or
hunting and I spent years of my life wearing camo pants and jackets, but I did
not want camo. (End of aside.) The documentation said that the UX-2 was
adjustable from 28 to 70 pounds, so when I was asked if I wanted the 70 pound
model, I answered yes. I should have asked for clarification on why I was being
asked what appeared to be a rhetorical question.
I'd loosed a UX-2 before, many times. The shop had a model that was adjusted to
45 pounds and it was perfect, so when I received the new bow and managed to get
it drawn by only a gnat's wing, I was surprised. The retailer offered to
adjust it down and I agreed, mentioning that I'd been at 45 before.
Here's the first bit where narrative gives way to substance: when I got the bow
back a few minutes later, it was at 60 pounds. After the huge struggle to get
a 70 pound draw, I think I'd pulled a muscle and couldn't easily do 60. The
shock came when I was told that 60 was as low as this bow could go.
Wait a minute. Mission advertises that this bow is adjustable from 28 to 70
pounds, but it can't be adjusted below 60?!?!?! It turns out that to 'adjust'
outside of a ten-pound range, you have to cough up an extra $250 for replacement
limbs!!!!! OUCH!!!!
I tried using the bow for a couple days - after my back had sufficiently
recovered, but I couldn't get more than one arrow per set, and frequently had
to take a break between sets. I was getting one arrow out for everyone else's
twelve, and I couldn't do more than a dozen in a day.
Now, if I were hunting, maybe this wouldn't be a problem. I am, however, a
target shooter. I need to get an arrow off every 30-40 seconds at worst. I bit
the bullet (not quite the right analogy for archery, but you'll have to pardon
it for now) and dropped the $250 plus tax for new limbs. I got the 40-50 pound
set and have been quite happy at 50 pounds. Of course, this means that I'll
likely need the 50-60 pound limbs as I develop some strength.
My friends will smirk at that last sentence, but I have - very rarely - managed
to increase my wiry frame's strength, even if I've never managed to put on the
appearance of bulk.
I do love shooting at 50 pounds, though the saga continues in that I can't hit
center without having the top pin of my sight nearly obscured by the riser. I
have been hitting a 2" radius at 20 yards in my first day, though, so once that
issue is solved, I'm going to be rather happy.
-rbarry
UPDATE 20100713
Ouch. Two days after this post, I had a little issue with my bow. I fired off
a shot, and the bow came unstrung. The string wrapped around my wrist as a
hundred pounds of tension were unleashed upon it. Black wrist for a week.
Soap opera as I dealt with every archery professional in the area. I've since
been shooting every other day and have had no further issues. I'm thinking
about moving up to the next set of limbs.
This morning, as I was packing Parker's lunch and preparing my soul for the
daily trip through purgatory, I noticed that there was a pedestrian ambling
down the street, with one of those 'invisible dog' leashes in his hand. After
my eyes were done rolling, I noticed I'd meen mistaken. He was, in fact, not as
insensible as I had thought.
He was Dowsing.
-rbarry
When you're spending nearly two-thirds of your total budget ($0.895T/$1.415T)
on Military and Security applications, maybe it's time to think about what you
have done to piss off the rest of the world to such an extent that it becomes
necessary to spend so much on aggressive intent and the results thereof.
-rbarry
Dear Professor Hawking,
Time Travel and Alternate Realities do exist. I just saw a twenty-five-year-old
Art Garfunkel strolling through Downtown San Francisco in a Business Suit.
So much for my previous hypothesis.
-rbarry
I get cold calls from recruiters about twice a week at this point. I try to be
polite, but they're wasting my time and theirs. It's annoying, and I'm tired of
it. The vast majority of the time that my phone rings with a mystery phone
number, it's one of these guys' desperate pleas for my business.
So when the phone rang yesterday morning with a 713 area code, I ignored it. I
was driving anyway, so I'm not going to argue with one of these morons while
Parker is busy reading in the back seat. I have better things to do and a
better example to set.
When I got to my voicemail, though, it turned out to be some collect call
service called Global Tel Link. Between the language of the call and the way
it was trying to direct me to a mechanism to pay with a credit card, I
immediately thought it was a scam. My first look at their website convinced me
of this, but they do seem to have some history online. Whether its an
engineered history, I don't know, but I wouldn't expect a company to do a Search
Engine Optimization pass using fake web pages that made them out to have a
customer service record that made Experian or AT&T look like something godly and
mythological.
At any rate, I've received a number of callbacks from these guys claiming that I
have an incoming call from the "Marathon County Jail," though I can't take the
call. I have to pay by credit card first. Not the most useful system. I would
guess that this refers to the City of Marathon in Brewster County, Texas
instead of Marathon County in Wisconsin (which, oddly enough, contains a city
named "Texas.") Contrarily, the corrections facility in Marathon is the
"Brewster County Jail."
Anyway, on the off chance that I actually know someone who is in Texas or
Wisconsin and found themselves in trouble with the law, I did my usual
cyber-sleuthing, made some phone calls, and came up blank. I'm guessing that
Global Tel Link had a glitch (engineering, or marketing, I wonder) that they'll
need to work out.
-rbarry
Parker's elementary school will be doing an egg drop tomorrow. Hundreds of kids
with hundreds of contraptions, pinning all their hopes on the survival of their
own little egg as it drops off the roof of a building. It'll be a carnival
atmosphere, I'm sure, but I can't help but think of what it would be like to be
a chicken observing the hordes of featherless, pink monsters as they hurl unborn
chicks to their fate.
-rbarry
Thank you very much, Pandora. Have you considered balancing the volume level
of ads against the music being played? Paganini tends to come across my
headphones about 30 decibels lower that the idiotic "Social Living" ad. What
you should be advertising is hearing aids: that ad'll be the last thing I ever
hear. What better advertising could you ask for?
My ears are still ringing.
-rbarry
Total coolness: Massive Lego project with five-year-old son.
O(Total coolness ^ 2): putting the kid to bed and continuing the Logo project
with my own father.
-rbarry
I'm about five knots of wind from meeting the Munchkins and crushing the life
out of the Wicked Witch of the East. Of course, I'm going to waste my one
opportunity to become the evil overlord of the universe: "There's no place like
the Guinness Brewery. There's no place like the Guinness Brewery."
-rbarry
I had to delve back into python for a few minutes today. The experience
reminded me of an episode of Nature about the Burmese Python on PBS recently.
They said that as a python crushes his prey, the victim's blood pressure spikes.
In the end, you're as likely to die from the blood-pressure-induced bursting
blood vessels as you are from the inability to breathe.
Python - the language - and a python - the snake - have something more than
their names in common. Every time I use Python my blood pressure spikes
and I have trouble breathing. How can you possibly make more errors in the
design of a language than your predecessors?
-rbarry
Lab Coat Science:
If:
A
And:
B
Then we can conclude:
?
Business Coat Science:
If:
C
And:
[We'll work this bit out later.]
Then we can conclude:
[Insert desired result here.]
If you'd told me two years ago that I was going to drop Perl like a Miller
Light by now, I would have been right in thinking that you knew something that
I didn't at the time: that there was something better.
Perl Sucks. My scripting genealogy looks something like:
1) TRS-80 Basic
2) Applesoft Basic
3) VAX/VMS DCL
4) Microsoft DOS Batch
5) csh/ksh/zsh/bash (It was all a blur.)
6) Perl
7) Python
8) Ruby
Note that the backward steps were from 3 to 4, though 5 didn't beat 3, either,
and from 6 to 7. Sorry guys, there's a lot of cool stuff it Python, but that
doesn't make up for the fact that they blew it from day 1.
Anyway, the point is that Perl was the first thing that anyone introduced me to
(or, in Perl's case, that I introduced myself to) that did text processing
worth a damn. Perl will get the job done, but everything about it is painful
and unpleasant.
Goodbye, $|. Farewell, shift-4. Bite me, curlies and semicolons.
I've been rewriting scripts that I hacked out in Perl years ago - at a line
count reduction rate of something approaching 80-90 percent.
--rbarry
Company meetings are interesting affairs at PlayFirst. We pack the entire crew
into a long room with a projection screen at one end, upon which we project the
company financials... in a very small font.
It was during one of these meetings that I hit upon a revelation:
For each meeting attendee, p is the position in R3 of their head, h is the
distance (height) of their eyes from the seating plane, s is the angle, in
steridians, subtended by the projection of the display screen upon a sphere
which is centered about the viewer's head, and t is time:
δp f(s)
-- = ---
δt g(h)
Henceforth, this shall be referred to as Ron's Law of PowerPoint Visibility.
-rbarry
I'm starting to work on 7-ball juggling and I think I've discovered why there
are fewer and fewer people at each major numbers-juggling milestone. It comes
down to practice time. When you're learning to juggle 3 balls, a drop usually
means you are stuck holding 1-2 bags and have to pick up 1-2. It's rare to be
stuck searching for a bag when this happens. First of all, you're not putting
much energy into the missiles so they won't travel as far. Second, when you
acquiesce to the fact that you've missed your catch, you can track where the
gravitational deviant has gone... as it makes a quiet roll a foot or so away.
Working with 7 means that I get off 7 throws and am lucky to be left holding 2
when I get done, requiring a search of the vicinity to locate the missing 5
bags. They go flying in all directions, with much greater vigor, while my
attention is still directed at the ceiling, getting lost under the couch, the
desk, or my office mate's chair. Most of my 'juggling' time is reduced to
locating the little delinquents, then apologizing to half the office for the
interruption.
-rbarry
I've been mentally stewing an entry for a while, though I need some more time
for the gelatin conversion process. In the meantime, contemplate what quantum
physics have to do with:
Blade Runner
A.E. van Vogt's "The Weapon Shop"
Total Recall
Hrm. I read/watch too much SciFi. The fact that the list above is all from the
same genre is irrelevant.
If you're not familiar with Rob Paravonian's soapbox/tirade/sermon about the
Pachelbel Canon, it's time for you to get up-to-date. I enjoy musical humor,
and I'm sure you recognized as many of the songs Rob references as I did, but
I had a Paravonian moment of my own last night as I transcribed The Rainbow
Connection. It wasn't the expletive-ridden moment that it might have been for
Rob - more of an ah-hah, now I see what he's talking about....
The software I was using to script out the piano lines, for complicated reasons,
makes it much easier to lay down the bass cleff by setting the pedal note for an
entire block of a song first, then go back and fill in the rest of the left
hand. Rainbow Connection is in 3 and is pedal-note-only for the first beat in
the left hand. This left me writing out most of 80 bars by arpeggiating up the
bar's chord, then back again down as I wrote out beats 2 and 3.
I heard the Cello part of Canon in D a number of times last night.
-rbarry
I found myself relating this story to a co-worker a moment ago, and was
surprised to realize that I'd never told it here. It was the first conversation
I had on September 11, 2001, since it was the incoming call itself that brought
me to consciousness that day.
The phone rang. Me, I never let the phone just ring. I figure that if a friend
is going to call me at some insane hour, they have a damn good reason and I'm
going to pick it up. It's probably past 9 a.m. my time, which means that more
than two hours have passed since events in New York City had begun to unfold. I
glanced at the caller ID and answered.
"Hey, Sarah."
"Uh, Hi."
This is an unusual beginning for the two of us. For starters, Sarah never
called at this point in time. There was also a missing tone of depression that
I had come to expect. She sounded far more anxious than anything else. No
surprise, but we now have hindsight on the context of the conversation. I
didn't even have my eyes open yet. Well, I found the phone, but you know what I
mean - I wasn't _awake_ awake.
"What's up," I asked.
"I'm in North Dakota."
Okay, Sarah lived in Idaho, so this was a bit odd. Also odd to be calling me
before I'm conscious to announce this fact....
"Why are you in North Dakota?"
"Because of the World Trade Center." Full Stop.
Now, I don't know about you, but at that point in time, it was a little hard to
imagine how a financial district on the opposite coast could teleport someone
across the breadth of two states. I attributed this shortsightedness to lack of
sleep (I'd been at work until about 3 or 4 a.m.) and charged ahead.
"What about the World Trade Center?"
"It's not there!"
A more obvious statement I had never heard, and I said so.
"Of course it's not there! It's in New York!" I felt I was being very patient.
I didn't have a kid at the time, but I felt like I was having one of those
toddler conversations.
Eventually, the tables turned and it was Sarah's turn to explain to me, in that
patient, explaining-to-a-child way that you have to talk to the sleep-deprived,
what was going on. She'd been flying to New York that day and had been diverted
to the closest airport to where she'd been cruising at the time. We discussed
arrangements for her travel back home and hung up.
After this, I got out of bed, showered, and drove to work, where I was shocked
to find out that the weird dream I'd thought I had had in fact occurred. I
called Sarah back to make sure I hadn't missed anything.
-rbarry
Entomology and Software Engineering have a fundamental similarity: a zealotous
vigor for the discovery and identification of bugs. However, when a software
engineer gets his bugs to reproduce, their population goes down.
-rbarry
After a bit of fiddling today, I have made the massive technological step
forward of titling my posts. Rah.
It may not be long before this is an actual Rails app. Don't bet on it. I
still like the old-school style.
-rbarry
I don't think I've ever made much of a secret of the fact that I hate San
Francisco. Try as you may to convince me that there is anything here worth all
the trouble, you're going to be wasting your breath. I've spent 5 years working
downtown, being exposed to all the really good reasons why you should stay the
hell away from this community, and today added yet another.
I ran afoul of the local fauna. Some asshole decided it would be fun to body-
check me in the Middle of Market Street. I saw him coming, looking right at me,
and suddenly he swerved and slammed into me. When I didn't go down, he tried
next to take my legs out from under me.
The whole experience is totally surreal: Of all the things I could have guessed
would have happened next, I didn't expect to have a handful of plastic Ketchup
containers hurled at me. Each did a Jackson Pollock across various bits of my
clothes, face, and hair, leaving me completely stunned.
I found myself wondering afterward why I didn't take him apart. I certainly
could have, but it really took me a while to absorb the fact that I'd just been
the victim of a random act of processed tomatoes. I'm still trying to figure
out how it went from getting jumped... to modern art.
Anyway, police showed up, saw my pocket tool and went straight after me. It
took a minute for them to accept that I was the one who had called them. Not
that I blame them - it's a prudent measure on their part but it was fun,
nonetheless, to find that even once the whole thing was over, It wasn't really
over. I got to do the whole nine yards with the officers while two of them
stood back with their weapon hands at the ready.
Between work, health, scheduling issues, and this - I'm convinced that this week
is trying to kill me.
-rbarry
I did a trip to the zoo with my son and one of his best friends recently, and,
true to form, split my time between kids, camera, and conversation. These days,
I wander around with a pretty hefty chunk of glass jutting off the end of my
toy. (There's a reason it's called a Canon.) So I tend to get envious looks
from everyone carrying an SLR.
Here's the thing, though. I stop, I watch the critters, I see something I want
to capture, I pull out the camera, I line up, possibly wait a while, and shoot
when I see what I want. I'm shooting what I've already experienced - though as
you can see, the shooting is often an experience of its own. More often than
not, I see guys (and yes, it's always guys) with SLRs who are not stopping to
see what they're shooting.
If you don't care enough about the subject to take a moment and experience it
while it's live, why do you think you're going to give a damn about a photo
later on? Stop and experience the shot. It'll improve your shooting, but it'll
make it worth having the shot to begin with.
-rbarry
I'm still towing along a 20 megabyte, hard-drive-based mp3 player. I've never
really tried to get all the media properly tagged and organized, so I've never
come close to having the thing full.
Well, I just organized. Between the audio books I bought when I was driving a
long commute and the CDs I've acquired since March, 1991...
It is full.
To recap:
Full. 20 Gigs.
Take a deep breath and fathom:
At roughly 1 Megabyte per minute, that is 20000 minutes, 333 HOURS of audio.
For comparison, my first computer had just enough memory to store one second of
that collection. Closing the circle in a nice, ironic loop: that computer
stored all its programs as audio-encoded bits on an audio tape recorder.
-rbarry
UPDATE (30 seconds later.)
I'm trying to decide what to play first.
UPDATE (30 minutes later. (I had email to cover.))
Problem solved. Turn on shuffle and start the first song an the list and
hit next. Clement Philibert Leo Delibes' Lakme - Duo Des Fleurs wins.
The internet truly is an infinite number of monkeys. What really worries me is,
they occasionally leave their keyboards to do other things. -rbarry
Something has been troubling me lately: the use of quotation marks in the
English language follows a set of rules that is ambiguous when used in technical
writing.
The American use of quotes requires that any ending punctuation in a phrase fall
inside the quotes:
"I'm leaving now," she said as she closed the door.
While this is legal, "correct" English, it is an inaccurate citation of the
speaker. In writing our language, nobody ever cares that the speaker didn't
actually pause in the middle of her phrase (the comma) only to leave the rest of
it unheard by the writer. She spoke a period, but we intentionally misquote her
for the sake of narration.
Again, nobody cares. But maybe you should.
Why? In technical writing, the only mechanism available for conveying exact
phrases is the quote mark. However, obeying the rules of the language leaves us
with ambiguous instructions:
Unless you type "disarm," without typos, the nuke will detonate.
Well, do you type the comma or don't you?
-rbarry
I received an invite to a get-together at my son's school. A social get-
together sort of thing. The title on the email was "Kindergarten Coffee
Wednesday Morning." I replied back asking if they were sure it wasn't too early
to be starting a bunch of hyper kids on caffeine.
I'm going to set a record for getting thrown out of a PTO.
-rbarry
On the river trip last month, I was the center of a traveling valence shell of
mosquitoes. It was a space that was guaranteed to contain a great many of the
parasites everywhere I went. Fortunately, a bottle of Muskol that was probably
purchased when I was in grade school kept the things off of me indefinitely.
They wouldn't latch on, but they didn't know better than to hang out, circling,
looking for an opening which never came.
Now, the Rogue River has a fair share of bats. If a walking probability field
of flying insects holds still, out in the open, a second field of flying fauna
develops.
I was describing this to Toni in the car the other day - how cool it was to be
surrounded by the sound of helpless mosquitoes, as well as the many sounds of
the rodent sonar. I was telling her that you'd just catch a glimpse of a bat
in the dark now and then when Parker interjected from the back.
"I don't like bats!"
"Why not, Parker?"
In a tone of voice that was both very patient and extremely exasperated with my
ignorance of this fact, he responded, "Because they suck your BLOOD, dude!"
-rbarry
With KnowledgeBlue gone, I am swirling in the eddies of internet identity: up
until a few weeks ago, I had a shell account that allowed me to ping, open
outgoing ports without restriction, and run a shell-based mail reader that gave
me a single place to read and store my email. Adding to that the fact that
everything was backed up for me and I consider it to have been a fair deal.
Trouble is, it was costing me upwards of $35 per month and each 5 gigs of
storage was going to add $5 to that.
Since the switch, I have been lamenting the loss of pine, my old mail reader.
By 'old,' I mean REALLY OLD. The PINE (PINE Is Not Elm) project started in 1989
and has seen its last stable release in the last 3 years. If it would just
connect to my IMAP server, I'd still be using it, but there are some subtleties
of the process that have hampered the effort, so I'm stuck looking for a
solution to at least the email centralizing issue.
-rbarry
What a week. What a freaking week.
I got back from the river trip to find that foodini.org had gone offline.
Sorry about that. Under Doran Barton's regime, this was a smooth and easy
process with no downtime that I was ever aware of, other than the times that the
hardware was being upgraded. Recently, a combination snafu of my bank and
knowledgeblue.com meant that people weren't getting paid and I wasn't getting
the notices to that effect. When knowledgeblue emailed me about the situation,
they contacted an address that they well knew had long ago been a massive spam
target. Somehow, they figured that I'd still be reading it, despite my having
told them many times in the past that this was not the case.
They have since claimed that they couldn't contact me directly. Somehow, they
must have missed the fact that my email and phone contact information are
clearly published on my home page. They're the ones hosting the damn thing.
You'd think they might figure that my PERSONAL web site might contain PERSONAL
information.
So anyway, after a full third of my life with a single provider (Doran's
business was bought up by knowledgeblue,) I've switched over to bluehost.com.
We'll see how that goes.
So in addition to being incommunicado due to the river trip, a ton of incoming
email was lost. This was followed by the most cruel form of layoff process I
have ever endured. I did survive the process, but it took twenty-four hours to
go from 'the company is in bad shape' to 'you do/do not still have a job.' I
think that the longest I've ever seen that process take was under a minute.
I headed home Tuesday to a sleepless night, wondering if my company was going to
close, lay off, or drop salaries. Wednesday night the fire alarms in my
building went off - twice.
On top of all of this, I've been transferring all of the foodini.org bits,
trying to get it all running, editing the 700+ photos from the river, and trying
to figure out when I'm going to have time to get the new photo browser up. I
_REALLY_ dislike the look of it (take a peek,) but I'm not sure what to do about
that at this point. I'm open to suggestion.
-rbarry
I have just spent the evening watching 10-year-old videotapes of myself, Brian
Carver, Nate Packer, and Mika Marumaya fencing in tournaments in Utah - a
century ago.
Other familiar faces were there: John Daley, Mike Mercy, Matt Nikols, Clief...
whose last name I can't remember. And Max Callao.
I've just found out that Max passed away a while back, and in that one moment,
I somehow lost a connection with that time - that feeling that it all happened
just so recently. Max was in his 50s when I knew him, but I dare you to find a
single human being more youthful and alive than he was.
To the family of Max and to Salle Boise, your loss is deeply - if from afar -
felt. I was just moments ago watching video of he and I joking around on strip
and working our asses off for every inch of strip and every point made. For me
his loss was just a moment ago and I heartwrenchingly regret not having tried
to look him up before now.
I tell stories of Max to everyone who hears about fencing from me - which is
just about everyone. While the rest of you are still here, I wanted to say
that everyone mentioned in this post, and Chris Oversby, Katrina Farrow, you
were all gemstone quality souls to me and there isn't one of you that I don't
think of and miss regularly.
I remember Max telling a story of drinking too much Courvousier on a flight to
Japan. I don't have any Cognac, but tonight I'm drinking to Max: a friend, a
teacher, blessed lunatic, and an explosion of character wrapped in a thick
application of Ben Gay.
-rbarry
If I may continue to harp on a point (it hardly seems worth linking my last
post, but what the hey) it would seem that Intel has stepped up to make
Linux the first operating system to support USB 3.0. If you're of the ilk
that compile your own operating system kernel, you can get it any time you
like...
The point I wish to harp upon is that while Linux may now support the data
interface to get bits from your devices to your computer and back, your
devices aren't going to work with Linux anyway. So, congratulations on the
press coverage guys, but how about having a chat with Canon and getting
some support for my camera? Until you get the device support, you've built
the digital equivalent of an 18-lane freeway to Coalville, Utah.
-rbarry
P.S. Don't miss the comment at the bottom of the link: "No hardware ...
but Linux supports it!"
Linux... hardware. Okaaaay.
Linux.
Love it or hate it, there it is. Even the most uninitiated of internet users
have probably stumbled across the name somewhere, though most are unlikely to
have any idea what on Earth it refers to. It's been only the last few years
that the world at large has become aware of the idea that there is something
unique about the software that their computer runs before they ask it to do
anything else. With the growth of Apple's market share, users are slowly
maturing in their comprehension: they have noticed the operating system.
Poor Linux.
And I mean that both as an expression of my sympathy and a description of
quality.
You see, Linux and all the related software are developed by volunteers. When
it comes to that, 'volunteer' is a poor word for what any developer of free
software does. When I hear the word, I think of the pre-veterinary student at
the pet hospital who 'volunteers,' and is directed to clean cages, walk the
clients' pets (and pick up their poop,) and mop up hairballs. He shows up and
is told what needs to be done.
A free software developer does whateverthehell he feels like working on. Sexy
technology gets attention from these guys. What you have to understand is that
there is a society of fame within the free software world. If you work on the
next big project and everyone in the Linux community starts using it - people
know your name. You get a Wikipedia page. People pay you to talk at their
conferences. It's the geek brand of fame.
What this has brought to the free software world is an abundance of geeks with
plenty of time on their hands, all eager to tackle the next sexy project. Many
of these guys use Linux exclusively and cannot fathom the unwashed masses who
would resort to using Windows or Apple's OS series. Off they go to write their
new programming language, protocol stack, or hack away at the Linux OS to
squeeze a few more points of performance out of it... without ever stopping to
really attack priorities.
With insufficient altruism in the Linux and free software world, the poop never
gets picked up.
What are the priorities of Linux and free software? Well, the one dream I have
heard from free software developers more than any other is this: "Free Software
will take over the world."
Bull Excrement.
Microsoft has spent billions of dollars studying how people interact with
computers. Billions. Most free software developers slap an ad-hoc
configuration mechanism on their software and call it done. If you have
problems setting it up, they are likely to be caused by a situation that the
developer was unable or unwilling to test. You're on your own.
This does not work for the home user. It never will. Ever.
I speak in brutish terms here because I'm an ex-Linux user myself. Ten years
ago, my list of complaints with Linux had grown long enough that I gave up and
switched to an OS that I knew would just work. Yes, Windows software pukes on
me from time to time, but my hours lost to fixing those issues has been trivial
compared to the time it took me to manage my Linux machines. And, if I need a
piece of software to do something..... I know I can find it. Linux: unlikely.
The nail in the coffin for me with Linux as a desktop system was brought back to
my mind just a few minutes ago, plain as day. A post on slashdot.org (a blog
for geeks, though thoroughly tilted in a pro-free-software direction) pointed to
a writer who enumerated his chief complaints about Linux as a potential entry
into the everyday desktop world. The issues therein have been the same since I
gave up Linux a decade ago. In other words, Linux has made little progress in
this domain in ten years.
Despite my home use being entirely Windows, I have run a number of distributions
of Linux during these last ten years. The best stride they have made so far,
that I can see, is that they do run a Graphical User Interface right out of the
box and many configuration options can be tweaked there. I applaud the effort.
Unfortunately, the last time I found myself using it, I was informed that I
would have to get beneath the covers and edit configuration files to solve my
problem. This is not acceptable to a home user. I'm a geek, I had a job to do,
I got dirty and edited. As I said, this is not home-user-caliber software.
I'll close my argument here with an address to the opposition view. The most
popular web server in the world at the time of this writing is 'apache.' It is
a free project, in development since the mid nineties. It has been the most
heavily-used web server in the world since 1996 and until 2006 showed no signs
of flagging popularity. BUT apache peaked out at about 70% of the servers
online, and has dropped - in just three years - below the 50% mark. Who is
stealing their thunder? Microsoft.
I've dealt with apache servers before. They're fine for simple applications,
but expert-level familiarity is required to get it to accomplish many tasks. I
once spent two hours on a plane trying to get an apache server on my laptop to
simply serve CGI applications (a trivial task with most servers.) My battery
died before it was working reliably. I have since done the same task with three
other web servers. None took me more than 5 minutes.
If apache wants to maintain its position, it needs to appeal to the new
generation of web administrators. It is unfriendly, unwieldy, and difficult to
debug when failures occur. This has been an axiom of free software for too
long.
The free software community needs leadership that isn't afraid to set the
priorities in unpopular directions: fix the sound system, fix the UI, fix
package management, fix X (the window manager - it's damn slow.) Provide a
unified front with which large corporations can negotiate so you can get first-
class drivers, and, GAMES. Most computer users play games now. I work in the
games industry and have no associates who do Linux games or would even consider
it. (Ask me for the details if you're interested.)
-rbarry
When I was working at Sun Microsystems, one of my projects involved the use of a
database of crytographic hashes of all the software Sun had ever released. It
was an interesting enough project and quite easy to implement, really. I sat
down one weekend, frustrated as hell with all of the red tape that was binding
my hands from the keyboard, and wrote the whole thing in Perl.
One of the crimson straps hampering my metacarpals was was the fact that the
hashing algorithm in use - md5 - had seen recent weakening at the hands of a
pair of brilliant Chinese PhDs. The project to which I was assigned had been
amassing md5 sums for years and the powers-that-be were paranoid that they (the
cryptographic checksums) were not going to provide the security they (the
powers-that-be) had hoped. I was told to start looking into moving in the
direction of other hashing algorithms.
This is where things got dicey. Mathematically illiterate factions of the
department wanted to wait to release the project until "The Next Hashing
Algorithm" was adopted. You know, the one with no potential for collision.
Other members wanted to archive everything Sun ever created so we could just
release modern-algorithm checksums for everything as the new hash mechanisms
became available. This scheme was objectionable to many because much of Sun's
old bits had been lost forever - or at least the authoritative ones had. (Why
we were clinging to the idea of providing cryptographic hashing security on
files nobody had seen in a decade and had no hope of hashing with a new process,
I'll never understand.) Most of all, there was objection that no new algorithm
would ever be 100% secure and the entire project essentially lay in crumbles
under the feet of these Bible-beaters.
Assuming that the thing ever released, whatever they adopted in the end, I'm
sure that last week's EuroCrypt news is going to rattle a few people. Sha has
seen another, serious collision attack. The worst of the lot so far.
From day one of the arguments about algorithms, I was trying to press the idea
that in perpetuity, Sun keep a pristine copy of every file we released from that
day forward and provide a hash string for every one of them that is the
concatenation of every crypto hash that had seen official use over the years.
So the md5 sum of foo.txt might be:
aabc843f86320750995d6b9a1dec2d3c
(despite the strange string in the first 4 letters, that is a legitimate hash.)
...and your sha1 sum might be:
c1b80463ab9662ae4a82d4983dc57bfd339710a8
(and that is the same file.)
...and your sha512 sum might be:
e75bcc0fc2008a6bfffacab227c3940557c44279312175659a7d2c4585683bd89d7d7993ebb03bf\
12a05bc980b52e60db105322517c026c9d8a402fe3e2c21d0
So the secure sum would be:
(aabc......)(c1b804....)(e75bcc...)
For those who see the 'obvious' 'flaw' (separately quoted for good reason,) I
congratulate their awareness, but consider: every one of these checksums is
vulnerable to attack individually, but finding a collision in one still leaves
you with a mismatch in the other hashes.
Given the difficulty of analysis, the likelihood of the combination attack ever
succeeding is extremely low and - given the time it would take to find such an
exploit - a new, trickier, more complex algorithm would have been concatenated
to the end of this list when that analysis was done.
Yes, this is the hashing algorithm I am suggesting that the cryptographic
community adopt. Every n years (for whatever n you like) another m bits (...)
will be added to the end of the stream by a new algorithm, designed to be the
state-of-the-art in secure hashing and as different from its predecessors as
possible.
-rbarry
Ruby has it's moments. Someone has to have done this before, but it was a good
way to kill five minutes. The wording was designed to incorporate the string,
the conditional, commas, and, or, the boolean, ()s, and the exclamation points.
class HelloWorld
def self.method_missing(id, *args)
"#{id.to_s} #{args[0]}"
end
def self.run
#Note: the following is not commented out.
I can't let this go by - consider the full impact upon our childrens'
lives! If you had gone your whole life without seeing it would you
have believed it to be true? All of this code parses, compiles and
executes with the ruby interpreter without complaint, warning or
failure! When you can invoke this: (brace yourself)
puts hello world
all bets are off!
end
end
HelloWorld.run
Digging around on a number of ruby-related threading posts, I came across this
chunk of example code:
x = Thread.new do
compute_ultimate_question
end
vogon = Thread.new do
Thread::kill(x)
end
In a flurry of unusual activity today (that is to say that the natures of the
activities were unusual, not that activity is unusual) I found myself in need of
the services of people from all over work - most of whom I rarely find myself
accessing. The blizzard of email went out and... triggered a nearly
instantaneous snowdrift of responses: Out of Office Autoresponses.
Shrugging my shoulders as I put the tasks at hand on the back burner 'till next
week, I went looking for another unusual target in my hit list for the day.
She was gone, as well.
Ambling back to my desk, I ruminated on the fact that my very need of a person
today triggers their absence. This Heisenburgism was entertaining enough to
share with a coworker, whose cubicle I was just passing. Making a left into the
tornado shelter (we shelter ourselves from the tornadoes of hardware and
paperwork by stashing them in his office) I declared:
...
"Now where've you gone off to?"
Heading back to my office, noticing that I had vaporized Drew, I shrugged again
and decided that he didn't really need to be bothered with something so
frivolous. I closed the book on the whole affair and gave it up as a typical
Friday afternoon at the office.
And that very instant, Drew walked in.
-rbary
I've been listening to Car Talk off and on for years, but being within range of
of a Public Broadcasting station at the right hour of the week - on a regular
basis - is a bit of a challenge. Even allowing for the fact I can stream most
radio stations to my computer doesn't cover the major challenge: The computer
is in the living room and weekend mornings I am - uh - not. As in, the
horizontal and unconscious version of not in the living room. Oh - or I'm with
the offspring, who hasn't been attentive to anything for longer than 5 seconds
in his entire life. Asking him to dedicate an hour to car repair and
automotively-induced interpersonal relationship issue counselling would be as
futile as trying to convince me to petition for George W. Bush's third AND
fourth terms.
Car Talk has moved into the modern age with the Podcast (TM, C, R, BYOB,) which
means that I finally get regular access. Well. I download it every week and
let it languish on my iPod until I've run out of anything and everything else
that I could possibly listen to. Then I'm reduced to catching up on the
Tappets.
If you were following in Februrary then enjoy. If you weren't paying
attention then you're outta luck because I'm not going to offer explanations:
UPDATE 20090518:
I've removed the image from the main page to save on load times. If you
want to see it, you'll have to follow the link.
-rbarry
Batteries.
In 1963, it was "Plastics," but now it is emphatically: batteries.
How many battery dependant devices are within arms reach of you now? Wireless
mouse, cell phone, camera, laptop, mp3 player, flashlight, camera flash, and
that's just my usual moment-at-the-office sort of day.
Batteries are expensive and they are environmental disasters of their own sort.
And like so many other things in life, you have choices and compromises to make
when you select your encapsulated metallic cylinders of electrical potential.
Rechargeable or Alkalyne.
1.2 Volts or 1.5 Volts.
Reusable or Disposable.
Democrat or Republican.
Some devices are harder on batteries than others. Parker's camera blows
through them at the rate of a full set of 4 AAs in about 30 pictures. I swear
I'm going to get him a real (rather than a 'toy') digital camera just for the
battery savings. His Leapster, on the other hand, seems to turn your common
AA battery into a damning counterexample to the Law of Conservation of Energy.
They last for EVER. But neither device can live on 4.8 volts.
Most devices that want 4 AAs arrange them in a rectangular array in exactly the
same way. Parker's Leapster does this, his camera does not. It would seem to
me that the best of both worlds could be achieved if someone would make a six-
volt battery pack by using FIVE Nickel-Metal Hydroxide cells in a form factor
that exactly matched the standard four-AA-cell configuration. Devices that
require that layout could take rechargeable batteries and suck them dry in
nothing flat and I'd happily throw the pack in the charger and slap another six
volts in the device: rechargeable, reusable, democratic, cheap and easy.
As with all the ideas that I truly love: contact me to license the idea. =]
-rbarry
If you haven't played^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HBraid^H^H^H^H
It's like this, ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HTime after^H^H^H^H^H^H^H^H^H^H
When I bother to sit down and t^Htw^H^Hwrite something, I'm us^H^H^H^H^H^Hit's
usually because I've found myself at one of the extremes of emotion versus
resa^H^Hason. As as ^H^H result, I either end up writing reams of garbage
about a topic which has occupied my cognitive functions for quite some time (and
frequently, has pissed me off to no end for an undue period) or I'm simply
venting about somtee^H^H^H^H^H^H ann^H annon^Hyance... e^HThere is a rare
occasions^H where I bother n^H to rant properly.
I'm a few levels into Braid so far, and I"m ^H^H^Hm ^H^H'm hger^H^H^H^Hhere to
rant properly.^H^H^H^H^H^H^H^Hgushingly.^H^H^H^H^H^H^H^H^H^Htremendously.
Download this game. Even if all you do is play the demo, do it. The taste
you'll get in the free download is more that^Hn enough to convince any
intelligent player that this is a great concept.^H: you are playing a 3D
platformer... where only two of the dimensions are spatial. Time is as much of
a medium through which you travel at will as you are accustomed to doing with
space. At times^H^H^H^H^H^H^HThrough the course of the game, the roles of time
and space o^Hare those of dependant dimensions,^H - with one flowing as a
function of the other, and....
Nobody reads this crap anyway.ESC:1,$d
Braid rules. Play it.
--rbarry
One of the biggest annoyances of vim is the color scheme. Come to think of it,
ls in cygwin gets into some reading difficulty where color is involved. But I
found this beauty recently and thought I'd share. It can go in your vimrc as
individual lines or it can be punched in at the : command prompt:
set hls
:noremap <F1> :set hls!<CR> :echo "hilight search (hls) =" &hls<CR>
set noic
:noremap <F2> :set ic!<CR> :echo "ignore case (ic) =" &ic<CR>
(The last line isn't a color issue, but it's handy and related so I'm including
it: it swaps between case sensitive and case insensitive searches.)
Make sure you enter the lines as they appear here. <F1> and <CR> are vim's way
of letting you let in know that you want it to interpret those keys. Clear as
mud? Good. I try not to be too easy to follow.
The advantage is that when you search for text and are blinded by the obnoxious
color scheme vim uses to hilight the hits, you hit F2 to turn off the colors,
then turn F2 again to turn them back on.
Minor annoyance: if you forget to turn them back on, you'll have to do so when
when you do your next search. I'll work on that.
-rbarry
It occurs to me that there is a certain lack of wisdom inherent in the
combination of decisions; allowing my girlfriend to be my personal trainer and,
having her on my life insurance policy.
-rbarry
I'm trying. I really am. I'm looking at netflix, I have my finger on the
button, and I see the first season of Babylon 5 right there in front of me. I
just don't think I can go through it again. It would be like facing the loss
all over again. All the pain of the destroyed fifth season relived? I'm not
sure I can do it.
-rbarry
P.S., Chronological order, anyone? B5 didn't air in the order that the units
tell the story, so....
0. "In the Beginning" Movie (IFF YOU CAN HANDLE THE SPOILERS!!! See #10)
1. "The Gathering" Movie
2. Season 1
3. Season 2
4. Season 3
5. Season 4 through "The Illusion of Truth," (Episode 8?)
6. "Thirdspace" Movie
7. Season 4 through Episode 22 (full season?)
8. Season 5 through "Objects at Rest"
9. "River of Souls" Movie
10. "In the Beginning" Movie (Not in chronological order, but SPOILERS)
11. "A Call to Arms" Movie
12. Season 5 final episode, "Sleeping in Light"
13. Crusade - if you dare.
I found myself perusing some of the dustier parts of my brain last night,
pulling the tarpaulins off of the kind of junk that we all keep in the attic.
It's fluff, trash, filler, and its taking up space that should be dedicated to
family relics and antiques.
Instead, science fiction.
That's right. We're not talking The Foundation Trilogy here, either. (By way
of confession, Foundation bored me to tears and I'll likely never suffer myself
to pick it up again.) Move over Asimov, Edgar Rice Burroughs, and Clarke. No
room for the A.B.C.s here. I'm pining for Babylon 5.
When I was about 12 - setting the wayback machine for 1982 here - the local
station was doing Star Trek reruns. That show was a little over a dozen years
out of the gate and showing a bit of age, but I'd never really seen Science
Fiction television before. I liked it, I watched it, I absorbed it, I became
a Trek fan. Never a Trekkie, but I enjoyed it.
When The Next Generation hit the airwaves, I watched. I even watched weekly
for years, but as college wore on I had to stop. The show ended and I felt a
slight pang of remorse about it, but I've never put a finger on why I hated to
see it go. It had a great run - 7 years or so - and I enjoyed it, but... well,
it had had a great run and deserved to retire while at the top of its game. My
greatest regret was that I had to watch the last episode having missed most of
the preceeding two years of the show.
Star Trek Generations (I promise this will get back to Babylon 5) was FIFTEEN
years ago now. It makes me feel so old to want that kind of creativity in my
television again. Well, invoking Generations means I should expand that to
movies as well, but you know what I mean: I want my TV shows to be creative,
epic, and emotional.
This lands us squarely in the court of Babylon 5. I watched as closely as I
could through the whole series. I felt completely betrayed by the fifth season,
as Turner Network Television's 'creative' control got out of hand and destroyed
the franchise, but I still love the first four seasons. And here's the main
difference between Babylon 5 and any TV show I've ever kept up with...
I miss it.
There. I said it. I actually miss the characters. As Star-Trekkie, do-goodie
as the ending was, leaving most of the characters alive, somewhere in the back
of my mind it still seems that they had a life... and have died. As Babylon 5
has gone through a few jump-start attempts over the years, I've been able to
pretend that it would rise from its ashes. I'm only now coming to grips with
the fact that it won't.
I make chainmaile, for some reason that I've never understood. It's fun to
hold and to play with. It is a hobby that demmands nearly none of my attention,
so over the years I've watched Babylon 5 while I worked on it. I think I may
have been through the show 2 or 3 times (I tend to skip the last season) in my
years of chainmailing. I did some math last night: my very last piece of
maille ever - I'm quitting the hobby for personal reasons - will require a block
of time from me that almost exactly matches the entire run of Babylon 5,
including all 6 TV movies and the hated 5th season. It'll be a long, fond
farewell to two things that have occupied me in an obsessive way for some very
rough bits of the last 15 years.
Now this is just getting sappy.
-rbarry
A couple - friends of mine - were having a ribbing back-and-forth about which
should get laser eye surgery first. Standing by watching this, I couldn't help
but to comment that this was an issue upon which they were unlikely to see eye-
to-eye.
-rbarry
This goes out to Richard Feynman,
He was not a Simple Simon
- Jeff Coffin, "Ah Shu Dekio"
At PlayFirst, I'm in the process of a very lengthy installation of packages on
a Mac Mini. I'll skip the details, but the short version is that I must add
a dozen or more systems to this machine, most of which aren't entirely stable
in their installation processes yet. Documentation is scarce - and very poor.
Part of this process involved installing the mysql gem for Mac OS. I've marched
this trail of tears before - thrice - on the PC. For whateverthehell reason,
you have to install a huge chunk of MySQL itself in order for the PC install to
even get underway. From there, you're still up a crick. You'll get to the
ocean eventually, but you'll want a couple spare patch kits.
Having been through this nightmare a couple times before, I heaved a sigh and
pulled up google. Finding a step-by-step for the Mac was not turning a profit,
so I heaved another sigh to properly bracket the attempt and fired up a Richard
Feynman blurb about bad science I found online (maybe someone sent it to me.)
The entire article was a lengthy read and looped through paths of thought
which didn't seem to progress in a steady direction, but I got through it. I'm
used to such meanders, being a regular reader of my own blog, so it was an
enjoyable game of intellectual hide-and-seek. The article eventually made the
point that before a scientist tries the new experiment, the old one must be
repeated. Always. My paraphrase does it no justice, but you can read the thing
yourself if you feel the need.
The point was that Feynman spent a long time addressing his readers/listeners
about the virtue of trying the knowns before the unknowns; that there is
integrity in open self-deprecation. At this, I thought to myself, "Feynman
should have been a computer scientist. He might easily have missed this
observation in our field... debugging is nothing but the iterative process of
hypothesis, test, hypothesis, test - and usually the subject of this iteration
is our own work. The observation would, to a computer scientist, be so
obvious as te be self-evident and unworthy of note."
Well. Maybe it wasn't so obvious. I did leave the article thinking that there
were nuggets in it that I could apply to my own work. I looked at my Mac and
thought, "Maybe I'll get a clue on how to start on this if I see the error
message again." Keep in mind, I'd seen errors a-plenty in the days I was doing
this on the PC.
> sudo gem install mysql
You're thinking it worked, aren't you? Well, it didn't. But at least I have
more crap to punch into google to push this further toward completion... and
I've managed to get you to waste another 5 minutes of your life suffering at the
expense of ruby, gem, and mysql. Welcome to the club. =]
-rbarry
My record made another step toward 'perfect' status today. The following is the
complete list of companies I have worked for to date and their current
operational status:
Sorenson Vision:
Their website is still up, but the most recent date on it is 1999
Evans and Sutherland:
Still technically in operation, but would have long since been delisted except
for the recent changes to such rules. Anyway, the business units I was engaged
with have long since been disintegrated. I hear the CEO was escorted out by
armed guards when he came under SEC investigation. I can only hope it is true.
Acclaim Entertainment:
Dead. Fishy, fishy, Fisch.
Shaba Games/Activision:
Still in operation, I gather. In the same office where I was working back in
2001.
Midway Home Entertainment:
Filed for bankruptcy today. The studio I worked in shut its doors long ago. We
did warn them that John Romero was going to be a net loss and we were painfully
correct. I wonder if the lawsuit was ever filed.
Sun Microsystems:
Also still in operation, but as Brian Scearce put it recently, they are pretty
much in the business of laying people off - and they're very good at it. The
acquire and fire and that's their way.
Perpetual Entertainment:
Dead. Who the hell hands $20-$30 Million to a couple of morons who have already
lost ten times that figure? Seriously, it was high comedy from day one. If you
ever have a chance to work for the clowns who founded this disaster - run. They
see engineering as a plugin business module that works by magic.
Stormfront Studios:
Dead. They still owe me $$$$$$. You probably don't want to go work for the
Lazarus version of this company either. I prefer to think in terms of Zombies,
though.
UPDATE 20090921
I received my letter from the California State Franchise Tax Board last
month, along with a number of others. I heard shortly thereafter that
Stormfront had been forced into liquidation as a result. So, Stormfront is
now entirely dead.
The United States, a nation in crisis divided by war, racial hatred, spiraling
personal and governmental debts, growing trade imbalance, and an ever growing
dependence upon foreign oil - placing the nation's economy in the hands of OPEC,
rather than holding it as our own destiny. And I was six years old.
If you have never read or heard Jimmy Carter's speech of July 15, 1979 [1], you
should. If you just rolled your eyes, swallow your blind conservatism for a few
minutes and you might just learn something for once.
"We can't go on consuming forty percent more energy than we produce. When we
import oil we are also importing inflation plus unemployment." I have news for
you. It's not forty percent anymore. His talk that day wasn't just precient,
it was also deeply moral - far more so than I have heard from any politician
since. This is why the U.S. failed to re-elect him.
There is something deeply troubling in that the party of big business is the
same party that the religious conservatives espouse. The goals of business and
of piety are in conflict. But it is the way it is, and I'm not going to change
any minds with what I write here today. This entry is pointing the finger at
more than just the parties. I'm pointing it at, well, you.
Just stop and think for a moment. In an election year, a President asks his
people to examine their greed and decide what is best for everyone - in the
present and for the futue. And he was defeated in a landslide.
Everyone has heard J.F.K.'s "Ask Not What Your Country Can Do For You" quote,
but who takes it seriously? People vote greed. People vote for the spread of
the homogenization of their own ideology. (Think Prop 8.) Franklin D.
Roosevelt was quite clear on this point: "The moment a mere numerical
superiority ... for their own selfish purpose or advancement, hamper or oppress
the minority ... that moment will mark the failure of our constitutional
system."
It will be 30 years this July since Carter's speech. He spoke of a failing
confidence in government, a growing self-indulgence, and a "growing doubt about
the meaning of our own lives and in the loss of a unity of purpose." I often
find myself writing blog entries and not knowing where to take them - there is
too much material to cover and so little time to cover it. (Nobody reads these
things past the second paragraph.)
So what am I trying to say?
Your government is huge because you voted for the guy that made it huge. You
voted for the guy that helped you keep your car and avoid public transit. You
voted for the guy that built roads instead of trains. You voted for the larger
military. You voted for the guy that backed the US Patriot act. You still vote
for the guy that inflates Homeland Security. What's more, you failed to act
after the mistake was made.
You voted Carter out of office when he told you to wake up and smell the Carbon
Monoxide.
I actually remember that election. My mom was in the basement - wearing a
shirt with a huge, pointy collar and a green suit... I think. On a little tiny
television, I remember some anchor droning on about something that didn't make
sense or seem important to me, but it obviously disturbed my mom. I think she
was knitting. Common as the night may have seemed, I wonder how many people
would go back to that day and change their vote. It seems to me now that every
president since has been part of a single file of men who came from the
electoral bifurcation of that day.
[1] Jimmy Carter, July 15, 1979
I dedicated myself to refactoring some code today, got the skeleton written, and
THE VERY INSTANT I was about to hit delete on a big block of code and start
rewriting it, I hear my shuffling iPod start in: "O Fortuna velut Luna statu
variabilis," the opening lines of Carmina Burana.
This is going to be an interesting day.
By the way, if you've ever been interested in what on earth O Fortuna is all
about: Check out the Libretto
-rbarry
Republican 2.0
It was bad enough to see John McCain - a man I held in greater esteem than any
other Republican in the last two decades - flipflop like a landed trout during
his campaign.
Let me return to the respect point for a moment. I would have considered
voting for McCain in his first Presidential bid. If you know me, you now
understand the gravity of the situation here.
But he flipflopped. And we're not talking about a billion for education or a
couple billion for the space program - we're into what Senator Everett Dirksen
called 'real money.' The bailout programs that have been flying around our
government like so much material in the chimpanzee exhibit were the objects of
love of both parties. I was shocked to see them in anything remotely
approaching agreement. Bipartizanship when more than five bucks is on the line
is just unheard of.
McCain's flipflop was from: "No, I do not believe that the American taxpayer
should be on the hook..." to the rhetoric of "But there are literally millions
of people..." Remember: these two quotes are gapped by less time than I am
consious for a straight run. And I'm not talking about my grad thesis years,
either.
Seeing a single politician cave is one thing. No-one in their right mind denies
the kind of money that gets thrown at these guys, and it isn't surprising that
a percentage of them would take, well, a percentage. Seeing a presidential
candidate flip - well, he probably read his contribution numbers that night and
realized that sticking to his guns on this one was going to mean sticking to
his senator's seat. So - no surprise.
But the ENTIRE F-ING REPUBLICAN PARTY?!?!?! These are the same guys that were
standing in one line to hand your money to billionaire CEOs who came flocking to
Washington to stand in the other line. Where was their voice of dissent then?
If you'd told me in October that the Democrats were going to be fighting the
Republicans to give money to big business, I would have laughed in your face.
It was the only thing the two sides seemed to be agreed upon.
Governments are supposed to spend to curb recession and save to curb inflation.
Unfortunately, that means that you have to operate as close to debt-less, on
average. I think that a $10,000,000,000,000 (count the zeroes) debt, along with
the kind of economic shrinkage we saw in the last quarter of the Bush
Presidency, is absolutely crippling. We got here by planning from election to
election. As long as these assholes are still more concerned about their own
jobs and their wallets than they are about the well-being of 300,000,000 human
beings, we're stuck in this mess.
This country has little left to export but military power. If we have to
rebuild our economy on borrowed money, make damn sure that we can see a return
on that investment. It's your money. Actually, if you pay US taxes, the US
debt after the Bush Presidency (I always choke on the phrase) is over $30,000.
That's not your family, that's not your houshold, that's YOU. The slice of the
pie for the average US family (3.14 people) soars over $100,000.
No, really. The $10 Trillion is gone. We're talking about upping that ante by
another 10%. Make sure it's a good one. Make sure it is done wisely. Don't
hand it to CEOs who've already shown they can't be responsible. Build. Learn.
Teach.
TEACH! By the time the current classes graduate, over 90% of the world's PHDs
will be in Asia. (Former Singapore ambassador to the UN and government
minister, Professor Kishore Mahbubani)
I'm suffering from a level of musical lassitude, a condition brought about by a
total emotional investment in music until I hit the age of, say, 32. Back then
(all of 4 years ago) I was a pretty solid fan of the Clumsy Lovers, and still
really enjoyed Bela Fleck at a deep level... but I'm stretching to find the
next thing for me.
My musical interests as a kid were pretty out of whack. I could play the
piano and the Saxophone, but until high school it never became clear that the
point of playing was to actually sound like you knew what the hell you were
doing. Until that point, I was still playing because it had been a requirement.
Then I discovered Miles Davis. It turned out that the first CD I ever bought
was a random Miles selection from the shelves of Quimper Sound in Port Townsend,
Washington: Kind of Blue. I bonded with that album and to a degree with more of
Miles' stuff. High school continued through Dave Barduhn arrangements and The
Cound Basie Big Band, Ellington, Kenton, Goodman, etc. (Thanks, Mark!)
College was Pink Floyd, more Jazz, Paul Simon's work of the time. I discovered
Bela Fleck in there somewhere.
Each of these musicians kept me emotionally committed for a great span of time.
I just can't find anything that seems to fit anymore, though. The Clumsy
Lovers and Bela Fleck continue to do good work, but other than the technical
accomplishments I see in them, I'm just not invested.
I realize that I often ramble without really saying anything. Today is one of
those days. I recently saw the Clumsy Lovers perform again and it was very much
a different band than the one I fell in love with at The Blues Bouquet. Most
of the members have left and it seems clear that the ones who are left aren't
really invested in their own music anymore, so I think my brain blew a fuse that
night that said "...then why should I care?" I went to the show out of habit.
I've always gone when they were in town, but their last two albums have seen
little of my attention and the new one sits in my car unlistened to.
So if anyone out there knows of a band with a firm grip on the single-father-
ex-floydian-saxophonist-engineer demographic, I'd be quite interested to hear.
I did my top ten games list, but that's a different story. I tried doing top
ten albums, but I am neither John Cusack nor Nick Hornby, so I abandoned the
effort. But it did give me appreciation for Rob's dilema when he attempted the
same thing in High Fidelity.
-rbarry
Bulk emailing drives me nuts - mostly because its existence hinges on a single
fault in the standard email delivery system - the Simple Mail Transfer
Protocol (SMTP.) That fault is that you can communicate with a mail server
anywhere in the world and convince it to deliver to your intended target. It
really is quite easy. In college, I used to send rebuttals in my religious
debates to rabid believers... with the 'From' line showing God@heaven.com.
In Utah, I was convinced that heaven had to be a .com. Anyway, I digress.
Anyway, one minor change to the protocol would fix the problem. I'm not
talking about authentication or any other crypto-heavy solution - just the
simple requirement that you MUST provide a From line and the email address
listed therein MUST be capable of accepting email in order for the message to be
delivered. It's that simple.
A bulk emailer will do anything to avoid having a valid target in the From
field because they know that they would have to handle an insane number of
bounced messages - as well as people who (and I used to do this) would send
them back the entire text of Monty Python's Holy Grail as punishment for
wasting the time of the recipients. In other words, if sending 100,000,000
email messages meant that you had to (potentially) handle 100,000,000 queries
in return, you'd probably not be able to send spam so economically.
Your email server probably already requires that an address be provided in
the From line, but this is not sufficient. As I said, you can use whatever
you like there. But what if the receiving server were to periodically contact
the sending server and ask "did you really send this message?" ...until such
time as the recipient showed up to read it?
An example, using client.me.com (my workstation, where I read my mail,)
client.you.com (where you read your email,) mail.me.com (my mail server,) and
mail.you.com (your mail server.)
The servers come up trusting nobody. You send me mail, and our servers kick
into action. mail.you.com contacts mail.me.com and hands the message off.
Until I show up to get that mail, mail.me.com will try to contact mail.you.com,
checking to see if it is still there. (If mail.you.com is consistently there,
mail.me.com will lengthen the delay between checks.) When I connect to
mail.me.com to get my mail and read it, I mark your email address as 'trusted'
and my mail server will be much less rabid about validation in the future.
If a spammer sends email to me, their server has to stick around and service all
queries until I check my email. Otherwise, it will never actually be delivered.
They cannot pretend to be someone I trust. Why? Because when mail.me.com
contacts mail.you.com, they will positively establish that the email was not
sent by you. My server will simply delete the message.
If a source of email were _really_ suspicious, I could take the negotiation one
step further. In addition to asking mail.suspicious.com if s/he sent an email
message, mail.me.com could send one back - holding delivery of the _received_
email until the verification email message triggered a "did you send this"
query back. =]
Clearly, there is an issue here: the server that sends the email has to remain
available. It is an inherent part of the protocol. If your mail server is
offline 10% of the time, then one tenth of the email it sends will be dropped
by recipients. I feel that this is an acceptable compromise. If your mail
server is offline 10% of the time, you have a problem with your ISP and someone
needs to do some serious, professional ass-kicking.
At first blush, there is another drawback: bandwidth. If receiving a 1k email
address triggers many more communications with the sender to verify that the
message is valid, the data cost of that message increases dramatically. If the
process works, however, I'd not have received hundreds of megs of junk mail in
the last 3 months. My total useful payload of email in that time is probably
a couple of megs at most. If verification were to increase legitimate traffic
ten-fold, it would still cut overall traffic by double-digit percents. It
would also mean a LOT less wasted corporate and personal time wasted reading
the crap.
-rbarry
Yet another _very_ slightly useful script... I stick these things here because
it's the only way I'll know where to find them.
UPDATE 20090217: It would probably be more useful if people knew what it did.
Anything passed to the script on stdin will have groups of digits broken up with
commas into triplets:
1234567890 => 1,234,567,890
===== comify.pl
#!/usr/bin/perl
while($line = <STDIN>)
{
$line =~ s/([0-9])([0-9]{3})$/$1,$2/;
while ($line =~ s/([0-9])([0-9]{3}[^0-9])/$1,$2/) {}
print $line;
}
One of the most useful scripts in my cygwin arsenal (other than the one that
titles my bash windows - see below) is a quick .pl I whacked together a few
years ago and saw a happy alteration into the land of brevity earlier today:
===== win (.pl)
#!/usr/bin/perl
$path = $#ARGV >= 0 ? $ARGV[0] : $ENV{"PWD"};
open (IN, "/usr/bin/cygpath -wp $path|");
$dosdir = <IN>;
chomp $dosdir;
$dosdir =~ s/\\/\\\\/g;
$syst = system "/C/ronb/bin/win.bat \"$dosdir\"";
if ($syst)
{
print "system (/C/ronb/bin/win.bat \"$dosdir\")\n";
print "syscall returned: $syst\n";
}
===== win.bat
@cd %1
@start .
When I type:
bash> win
...I get a Windows Explorer window of the current directory. If I say:
bash> win /C/foo/bar
...I get c:\foo\bar in an Explorer window. By the way, I do link /C to
/cygdrive/c, /D to /cygdrive/d, etc. Trust me, it's worth it.
-rbarry
I guess the guys at the Jet Propulsion Laboratory have not been seeing enough
traffic to the site where they (used to) update the status of the mars rovers on
a daily basis. In late October, Spirit went into a serious power crisis and
they stopped updating. Through other sources, I kept up with the news and -
just as everything was coming to a head - we went into solar conjunction. The
beleaguered little 6-wheeler wasn't going to be able to talk to us for about
two weeks - give or take.
Spirit and Opportunity are one of the greatest engineering accomplishments of
our time, but they aren't things. People ascribe personality to their cars,
but the Mars Rovers are the equivalent of vehicles that have clocked six to ten
million miles; they were designed for a 90 day stint and have been in near-
continuous operation for thirty times that long.
So Spirit and Opportunity are my team. No baseball, football, soccer,
basketball, thanks. Just give me my Martian Chronicle Sports Page every day
and I'll be happy. The last couple months have been hairy and I understand that
the blog isn't a high priority, but we - the armchair engineers - need it.
-rbarry
UPDATE 20090613
While the updates are currently weekly, at best, they are no longer
months behind. Given the current situation (Spirit high-centered on a
rock in soft soil,) I check the thing for news compulsively. I'm still
wishing they were doing updates daily, but I am at least happy that the
site is seeing some activity again.
I HATE MY HEWLETT PACKARD LAPTOP
Come to think of it, I hate every Hewlett Packard product I have ever owned.
Why do I keep buying them, then? Because they keep reviewing well on Consumer
Reports, which always figures heavily in my purchasing decisions.
The long-toothed liability of HP products in my life is causing me to question
my loyalty to that otherwise excellent publication.
HP does manage to make it through the paces that CR puts them through, but
there is something about the everyday use of HP products that makes me want to
throttle someone.
Back to my laptop. From day one, it annoyed the bejezus out of me. The clips
that hold the device together (when closed) are spring-loaded so they snap into
place, but the design leaves them hanging loose when not engaged. Every
keystroke causes them to rattle. I feel like I'm typing on a joy buzzer. All
the time. Seriously. When I use this thing, I run the dishwasher, loud music,
a DVD of random crap - just so I don't have to hear my laptop rattle like one
of Parker's baby toys.
I'm not exagerating. It's that bad.
Next on my list for this machine. MASSIVE heat issues. If I try to run
anything that utilizes the 3d hardware, I have to have the laptop proped up on
a book or other spacer. If it rests - even on a hard surface - it will
overheat in about ten minutes and do an emergency powerdown. You don't want
that to happen when you're in the middle of a timed job interview. I've had it
happen. I wonder if I have the same crappy NVIDIA chip in this thing that has
caused Apple to repair so many MacBooks?
While I'm on the subject of heat - when the cooling fan kicks up to maximum,
the power drain kills the wireless hardware temporarily. Now, let's see. If
I'm running 3D hardware (and it's not for job selection purposes) what might I
be doing? Playing a game online maybe? Not the best time for the net
connection to drop, maybe? Yeah. It happens. Constantly.
Still on the subject of heat: you only put this laptop on your lap if you want
your privates medium rare.
Off of heat now, I've owned it for juuuuuust longer than the warranty period -
and the battery suddenly goes from being good for 90 minutes of conservative
use to dying in 10 minutes. If I power it down completely and unplug it from
the wall, in two days, the battery will not be enough for it to even boot up.
Don't get me started on HP printers, scanners, or monitors. I've used them
all and God willing, never again.
"The PC - It's Personal Again" is their new motto. Oh, yeah. It's personal.
-rbarry
Bumping around online today produced an interesting find: an ear training
applet:
http://www.iwasdoingallright.com/tools/v2_23/ear_training.aspx
This is something I started working on quite some time ago myself and never
finished, so I was glad to see that someone else had tackled the problem. I'll
have to see if I can run the thing on my phone.
-rbarry
I've been doing a bit of random reading today, and it turns out that
while the limerick's birth seems to have been benign, it matured into
immaturity: 'clean limerick' is a contradiction in terms.
Thinking this through, I imagine groups of (Irish, and I yes - I am one)
men (I'm one of those too) hanging out in bars trading limericks. Sooner
or later, Irish Ale being what it is and having the effect it does, these
gentle(?)men eventually start improvising limericks for the purpose of
tossing insults across the divides between tables.
This is likely to be a rowdy event in any case. If you happen to be in
North Ireland, the man from Donegal may start:
A fat drunk from the county of Derry...
...and it's all downhill from there.
The thing is, if you are from Limerick - the city and county - you are
essentially immune to this sort of thing. Any fourth-beer brawls of
poetic wit in which you may find yourself engaged are dominated not by
your muse, but by your syllabic immunity: I can't think of a single
proper rhyme for Limerick.
-rbarry
Long, long ago, when I was still young and wore - almost without exception -
tshirts that carried strange and wonderful messages and put me in the position
(or so I have been told) of 'swimming around in...' a 'shirt too big for the
three of us.'
One of those lovely devices bore an obfuscated work of code, forever lost, which
I often wish I still had these years later. As far as one can be considered the
author of a piece of couture, I was the author of this shirt. Ever since its
disposal (an ex got hold of it before I could transcribe it,) I've often wished
I'd been more proactive about getting some record of the device.
Last night, I re-wrote said shirt, though I believe much of the art has gone
from this incarnation simply because this can only ever be an ersatz layout.
The original is gone forever, lost in the mists of OCD SOs.
C Your Brain: See Basic
int fib(n) 10
{ 20 Back then, I took the time to
if(n<2) return 1; 30 work out a 4-line version of this.
return fib(n-1) + fib(n-2); 40
}
Brain Your C on Basic:
int s[999999];
int fib(int i)
{
_1: int t=0; s[t++] = i; s[t++] = 0; s[t] = 0;
_10: if (s[t-2] < 2) { s[t-2] = 1; t-=3; }
_20: if (t < 0) return s[0];
_30: if (s[t] == 1) goto _60;
_40: if (s[t] == 2) goto _70;
_50: s[t++]++; s[t++]=s[t-3]-1; s[t++]=0; s[t]=0; goto _10;
_60: s[t-1]=s[t+1]; s[t++]++; s[t++]=s[t-3]-2; s[t++]=0; s[t]=0; goto _10;
_70: s[t-2]=s[t-1]+s[t+1]; t-=3; goto _20;
}
UPDATE 20090927
I actually found a picture of myself and Marie back in college - and the
shirt is in the shot. I might be able to do some photoshop work to
recover the original. I'll keep ya posted. =]
I'd like to introduce into the lexicon:
MMOment: em-em-OHM-ent (n) When connected to a Massively Multiplayer Online
(MMO) system, the actual period of time that follows a delaying statement like,
"Just a moment, I need a beer." An MMOment can be a time interval of exactly
the time it takes to get a beer from the fridge or go to the bathroom, but it
may extend - for the gifted MMOmenteer - to the length of time it takes to run
to the supermarket after a keg and get a high colonic.
-rbarry
The fantastic element that explains the appeal of games to many developers is
neither the fire-breathing monsters nor the milky-skinned, semi-clad sirens;
it is the experience of carrying out a task from start to finish without any
change in the user requirements.
-Thomas L. Holaday
It's one of those I-really-*&(ing-hate AT&T days. I have no idea how many
purveyors of iPhones I asked how much difference it would make to my bill if
I switched. I was told, unequivocally, every time, without exception, that the
only difference would be the $30 data charge per month.
I just looked at my bank account. My bill hasn't increased by thirty bucks. It
has doubled. Now I'm going to have to spend an entire day on the phone with the
bastards only to be told that there's some charge that they don't have to tell
me about when I sign up.
-rbarry
As I slowly lose my hair, it is becoming more and more difficult to manage.
There was a point in my life where I had shoulderblade-length hair (where was
my camera in those days?) Back then, I would get up - maybe pull a brush
through it, and be off to class in blissful ignorance of the days to come.
I seem to be asymptotically approaching a day when I will have but a single hair
remaining to me, but on that day I will look like some mutated bastard child of
Don King or Albert Einstein and Telly Savalas.
-rbarry
Of course, the Java buzz has been present since I was an undergraduate student,
but being in the games industry I have been so happily insulated from it that
the buzz has always maintained such a low signal-to-noise ratio in my attention
that I never really registered it.
Frankly, the only thing I ever use java for is when I write something that I
want to put on my website where the load involved in hosting the required CPU
cycles would be prohibitive, so I whack it together in Java and push it out the
door. I think I have only one surviving project like that, and I'm here to
tell you, Sudoku puzzle creators are a pain in the ass to debug in any
language. (As I type this, Internet Explorer has completely frozen up on me
trying to run the thing. Firefox is fine.)
But Java enjoys a growing popularity. I've never understood it, really, though
some of the more recent developments are really quite interesting. But I will
say this: if Java ever does take over the world (no language ever will, but for
the sake of the next wishful thought, we'll enter the Land of Make Believe)
then I'll never have to look at another Gawd-awful line of template code again
as long as I live.
Templates are the realm of the worst code I have ever seen. A company I used
to work for would require multiple inheritance - 10-20 typenames wide and 2-3
deep - to create a single object. Whoever came up with that crap was never
an engineer, they were just a programmer. And a laughable one at that. He
developed his - for a lack of a better term - "skill" by inflicting his
experimental contraptions upon a professional world. He cost that company
ten to fifty times what they paid him.
I've decided that we teach programming the wrong way around. We hand people a
computer and have them write their own code for years on end before they ever
have to really grok - at a fundamental level - any appreciable body of code
that was written by a stranger. We give budding engineers years to develop
their habits and foibles... then turn them loose upon the world.
It seems that the way to go would be to teach software engineering, the art of
coding, as a passive art for a while. Learning by doing imprints syntax,
semmantics, and algorithms, but it does not teach style. More importantly, it
does not teach one speck of how to write readable, flexible, extensible code.
A good software solution is like any invention, in that when you see it laid
out before you the idea is obvious. Your mind skips over it and only ends up
focusing on that which requires your undivided attention to decypher. By
letting novice coders run amok in their own little protected worlds, writing
code that only they will ever read, and failing to expose them to some serious
crap, some software bereft of thought, we set them up for failure in
professional life.
Think about it. How many programmers do you know that fell out of the faith
after their first job? There must be something fundamentally different between
the education they received - at great expense - and the professional life. For
me, the largest difference was simply... I never, ever, ever, had to look at a
large body of code, or even a small body of bad code.... until I was a
professional.
I still see this in every junior programmer I meet. I see it in every proud,
"self-taught" hacker I bump into.
We don't ask English majors to start writing their novel until they've read,
digested, disected, analyzed, and absorbed hundreds or thousands of authors.
It is so obvious that you wouldn't do it any other way that it would be
ludicrous for me to even suggest that authorship should come before readership,
so why on earth do we take this path with programmers?
Software is not getting smaller, it is not getting simpler, languages are not
going to minimize in any conceivable future. The shock factor of leaving 4-7
years of personal projects and getting dumped into a 100 man-year swamp isn't
going to get any more pleasant. If we want another generation of bit-heads,
this is a problem that must be addressed.
-rbarry
Conversing with Brian Carver about a wedding I will attend this weekend, I
mentioned that "one of the brides is pregnant."
Now, Brian lives in - and has lived in - Utah most of his life, so his next
question was totally reasonable. But I missed its subtlety: "Is this a Utah
wedding?"
I thought he was being glib about the pregnant bride - as such things are not
uncommon in Utah. I have attended many shotgun weddings there. I pointed out
the phrase "one of the BRIDES" again and he replied so as to make clear the fact
that the difference between a multiple-brides wedding in Utah and a multiple-
brides wedding in California is the presence or absence of a groom.
-rbarry
As I work to update the photo browser to something more modern, it occurs to me
that software has reached a new stage in its evolution - that of long-term
maintenance of the personal project. I have software that I wrote in the 90s
that still kicks around and gets my occasional glance, but I don't use it on
any sort of regular basis. Bugs in these things are simply not a concern.
However, the photo browser has had outstanding feature requests for well, years.
I've quietly ignored a few desires of my own for a number of reasons. First and
foremost - uploading data is a process that requires direct access to the
system. You have to copy the files to foodini.org via a secure copy operation,
which requires a username and password. After that, thumbnails are manually
generated by way of a script that hasn't changed since.... wow. July of 2004.
Editing database entries to add keywords is another process, and requires a bit
of specialized knowledge. I also have a specific request from no fewer than
3 sources that has been rotting in the background simply because the database
mechanism I created for this project wouldn't be happy to have it shoehorned in.
I could, of course, go through and make the changes. It would take a lot
less time than the current undertaking - a Ruby On Rails project - but the whole
process has me thinking about what happens 4 more years down the road. If I'm
happy with what I have, I'll ignore it. If I'm not?
RoR is far more complex than the current solution. The current browser simply
uses perl to process forms, hit the database, and generate html. It couldn't be
simpler - barring the 'specific request' listed above that would touch almost
every part of the thing in ways that would most likely break lots of stuff I
don't want broken.
So why RoR? In 4 years, I'll fill you in on the mistake.
-rbarry
So why on earth would my blog be a completely featureless black page with a
mono-spaced font, stretching on into infinity?
As is stated briefly at the top of the page, this thing got its start back in
about '97 - many years sooner, depending upon how you look at it. The first
incarnations of this blog would have been first seen on a VT-100 terminal
emulator. If you happened to be sitting in the Agricultural Science Computer
Lab, you might have been using an actual VT-100. Amber screen and all.
In fact, if you go to the very first posts, some of them were rescued from
tricky little terminal control-code animations that some of us were doing to
take advantage of exactly those terminals. I won't go into detail here, I'm
waxing nostalgic more than making any real point.
So today, I briefly switched the entire blog over to amber. I took one look
and swapped it right back. Maybe I'll try again later if I can find a font
that looks a little more deserving than courrier. Until then, you only have
to suffer through it for this one post.
-rbarry
So McCain is suspending his campaign today, stating that he has to focus on
the $700,000,000,000 payout to people who can't take the fall for their own
poor investment choices. This means that he won't be showing up for the debate
on Friday.
No surprise. In an actual debate, he'd have to answer for the fact that he
has consistently voted to protect exactly the practices that got us in this
mess in the first place. [S. 256, 3/03/05] [S.2338, 12/14/07]
[S.1928, 11/21/03] [S. 2452, 12/12/07]
Guess who has been voting against him at every opportunity.
$700,000,000,000 is roughly $10,000 for every household in the United States.
That money will end up in the pockets of the investors in those companies -
by way of their eventual ability to sell their current stake. This is what
GWB's trickle-down economy has gotten us: The rich make high-stakes bets, take
home the rewards while they are profitable, and unload the losses on taxpayers
when their luck changes.
-rbarry
UPDATE 20081021:
Ever see a British debate? Hell - ya ever see the PM addressing the MPs?
It's like a bloodbath. Fur and blood flying in all directions. Candidates
are Ripe for the beating and our debate format provides such a polite
environment that you never get to know how much fight is in the dogs.
"Mr. Holyfield, you now have one minute in which to address Mr. Tyson's
position on hearing loss."
So two retired San Franciscians sit in Golden Gate Park, admiring the scenery
and talking about their decades of BART ridership. The first says to his
friend, "Ahhhh....."
The second turns to him and replies, "Did you say something?"
"What?"
"Huh?"
"Sorry, my batteries are dead. You'll have to speak up."
-----
I usually wear industrial ear protection on BART - not earplugs, but the
earmuffs you wear when you use power tools 8 hours per day. For complicated
reasons, I had to leave them at home today. It's 11:30am and my ears are
still ringing. BART sustains more than 95 decibels in many tunnels,
and I've read that it gets up above 120 in the bay tunnel and the South
San Francisco-to-San Bruno tunnel. If anyone owns a good dB meter, I'd like
to verify this.
-rbarry
The very powerful and the very stupid have one thing in common. Instead of
altering their views to fit the facts, they alter the facts to fit their
views... which can be very uncomfortable if you happen to be one of the facts
that needs altering.
--Doctor Who, The Face of Evil (Tom Baker)
It is not my intent to turn this into a Ruby on Rails blog (though by including
the phrase "Ruby on Rails blog" I have almost assured a major spike in Google
Goggles here,) but it has come to pass that I now walk through the valley of the
shadow of this particular beast on a daily basis, so it is at the fore of my
brain. (I use the word "fore" here in the golf sense: I consider Ruby on Rails
to be more of a divot in my psyche than an actual skillset. =] ) If that last
sentence made any sense to you at all, you're one up on me.
Anyway, one of the odd things that I have found about reflective languages is
the incredible utility available from language constructs that tell you what the
hell your environment looks like. A good debugger will often provide this, but
I use Aptana, so I'm screwed. The point is, if you've been Rail(s)roaded, you
will like having access to:
self.class.class_variables
self.instance_variables
self.methods
I usually use these in conjunction with some prettying-up:
self.class.class_variables.join("<br />")
etc...
-rbarry
Since there seems to be little information on how to do it, I would like to
present (actually, there's nothing philanthropic about the documentation
gesture here - I just know for a fact that anywhere that I write this down will
get it lost so I'd better put it here) a solution for uploading files through
the form_for module of Ruby on Rails.
Most of the solutions I've seen are for more advanced users than I, so I'll take
this right from the beginning.
I needed to be able to upload an asset to my RoR application. Most of my
models, views, and controllers were created using the script/generate. So the
'asset' view that the 'script/generate scaffold' created looked something like:
<h1>New asset</h1>
<% form_for(@asset) do |f| %>
<% f.error_messages %>
<p>
<%= f.label :smURL %><br />
<%= f.text_field :smURL %>
</p>
...etc...
I needed two bits in the view, the first was to set up the form to do multipart
encoding. I replace the form_for line with:
<% form_for(@asset, :html => {:multipart => true}) do |f| %>
...and the new entry for the upload browser:
<p>
<%= f.file_field :raw_asset %>
</p>
That's it. If you cram that into your view, you'll see the upload box. Now, on
to the controller. I didn't change anything at all here, but it is worth noting
that, through a convoluted mess of ruby that I'm not about to grok in this
decade, the first line of the create action,
@asset = Asset.new(params[:asset])
... goes looking for a method called Asset.raw_asset=. (As a side note, I hate
trying to put technical tokens into English. It rubs me the wrong way to follow
an = (which is, in turn, a part of the raw_asset method name) with a period. I
also seem to have a habit of overusing parentheses.) Anyway, the place to
handle this is in your model. In my case, in asset.rb:
def raw_asset=(arg)
original_filename = arg.original_filename
data = arg.read
#now do whatever you like. The name of the file on the user's machine is
#in original_filename and the contents of the file is in data.
end
Seems simple enough, but googling was not as productive as one would expect for
simple a task.
-rbarry
As I write this, I have a couple facilities guys soldering water pipe in the
ceiling just a few feet away. My attempt to concentrate with the other power
equipment that has been running all morning has been interesting enough, but now
the situation has been elevated from a distraction of simple decibels to one of
a certain occupational curiousity.
As one gentleman stands five feet up on a ladder with a blowtorch, applying
solder to new joints of pipe, the other stands on the floor holding a garbage
can - a plastic garbage can - as close to the work as he can strectch. In other
words, his solder catcher is about four feet from the work in question. He is
wearing no goggles, no gloves, no bib and I'm just imagining the glob of liquid
metal that finds its way past (or through) the only safety measure he has at his
disposal. Que the pun-related groans.
-rbarry
If you're actually going to try this, you're going to need to be capable of
doing some customization. I have done everything I can to make this thing work
for every bash prompt out there, but that dream has pushed me through a dozen
or more (I'm not kidding!) iterations. You are about to see a serious hack. If
you find yourself thinking, "why didn't he do it this way? It would have been
so much simpler." It's because I did try it that way and one configuration or
another puked on it.
==============================
I spend a lot of time in bash. For the uninitiated, bash is a system that
you'll find on most unix machines and, thankfully, some windows and every
Mac out there. At first blush, it's no more than a command-line interface,
and therefore off the radar of most users who see such things as an anachronism
they'd rather forget.
I do nearly everything in bash. I READ MY EMAIL FROM A COMMAND LINE, which is
why I eschew marked-up email. I navigate directories, edit files, engage in my
daily source code checkout and delivery, search for files, search inside files,
reboot my machine, and even occasionally browse web pages from the command line.
bash is the heart and soul of my digital existence.
The trouble is that I tend to have about 6 bash windows open at a time. At
work today, I had one running a web server, another fiddling with my database,
a third, fourth, and fifth editing different files, while a sixth was grinding
away through my machine trying to record the names of every file on the system.
Why? Because it's handy to be able to search through such an archive if you
want to know where to find an object by filename.
When you do this, you end up with lots of windows in your control bar named
simply, "bash." This is fine if you only have one of them, but its agony when
you have 6 or more.... and two dozen other things going on. I have three
monitors under the simultaneous command of one keyboard/mouse pair and I still
feel the need for more. Each of those windows has several bash terminals open.
So I've plunked this together. First, place these lines in your
.bash_profile:
export PROMPT_COMMAND='export TRIM=`~/bin/trim.pl`'
export PS1="\[\e]0;\$TRIM\a\]\$TRIM> "
trap 'CMD=`history|~/bin/hist.pl`;echo -en "\e]0;$TRIM> $CMD\007"' DEBUG
I went through and wrote dozens of paragraphs on how this all works and exactly
why it is set up the way it is, but you're not really interested. Trust me.
There is an entire chapter of a book in why I did "CMD=`...`; echo..." on that
third line. Many people (including bluehost, where my other domain is hosted)
are still using and old version of bash with major bugs in how it handles traps,
so we're stuck with this. You can remove the CMD and replace it with
$BASH_COMMAND if you are current on your bash version and feel like doing the
research.
Anyway, the first script I use is here. It creates a nice prompt that contains
your machine name and directory, chopped down to a reasonable length:
============trim.pl===========
#!/usr/bin/perl
#It seems that my cygwin box doesn't have HOSTNAME available in the
#environment - at least not to scripts - so I'm getting it elsewhere.
open (IN, "/usr/bin/hostname|");
$hostname = <IN>;
close (IN);
$hostname =~ /^([A-Za-z0-9-]*)/;
$host_short = $1;
$preamble = "..." if (length($ENV{"PWD"})>37);
$ENV{"PWD"} =~ /(.{1,37}$)/;
$path_short = $1;
print "$host_short: $preamble$path_short";
==============================
There's a warning at the top of this blog post that you should read now before
you start asking stupid questions like, "Why didn't you just use the HOSTNAME
environment variable via @ENV?" Simple: Because that doesn't work for all the
systems I tried it on.
Now for the really cool bit. Remember line 3 of the .bash_profile addition?
trap 'CMD=`history|~/bin/hist.pl`;echo -en "\e]0;$TRIM> $CMD\007"' DEBUG
It's dumping the trim.pl script output in the same container as before, printing
to both the command prompt and the window title, but this time it's adding the
command that you just typed! This is why you don't want to be doing all
of this in your .bashrc: any script you run (on my machine, man is one of them)
will trigger this thing on every line. man's output gets seriously garbled by
what we're doing here. We're not exactly playing nice with the terminal.
To grab the command you just typed, we take the bash's history and dice it up a
bit:
===========hist.pl============
#!/usr/bin/perl
while (<STDIN>)
{
$line = $_
}
chomp $line;
$line =~ /^.{27}(.*)/;
print $1;
==============================
So now, I have a bazillion windows going and they say things like:
castro: /home/ronb blog
Ron-D630: /C/ronb/rails/depot script/server
Ron-D630: /C/ronb/rails/depot mysql -u ron -p
Ron-D630: /C/ronb/rails/depot find . > /C/ronb/system.map
Ron-D630: /C/ronb/rails/depot vi app/views/cart.html.erb
Ron-D630: /C/perforce/depot/ p4 protect
Ron-D630: /C/perforce/depot/ p4 sync -f
Ron-D630: /C/perforce/depot/
From the happy little bar at the bottom of the screen, I can now tell which is
which at a moment's glance. And because we've set PS1, as soon as a command
finishes executing, the command name is replaced by just the output of trim.pl
again.
-rbarry
UPDATE (same day):
This stuff (the .bash_profile entries) laid all kinds of hell on me when I
tried it in my .bashrc. Your .bashrc is executed by non-interactive scripts
whenever you invoke bash as a language. I hit this when I was trying to use
man. All sorts of garbage (the complete text of my .bashrc, plus escape
characters) showed up at the top of the man page. I would suggest testing
this gem with a quick 'man man' invocation at the command line once you get
it all together.
I guess it's time for me to pull the custom garbage out of my .bashrc and put
it where it belongs...
Incedentally, I found myself typing 'man trap' at one point in this process.
I'm finding that the common thread for anyone who attempts to get Ruby on Rails
going on a Windows box is that the mysql lib for ruby doesn't build. By this I
mean that descriptions of the problem are nearly everywhere. The problem would
be almost trivial to detect at run-time, offering a perfect opportunity to tell
the user where to find a solution.
Granted, the solution varies from configuration to configuration, but it seems
that the solution has yet to be splattered across the net for the poor soul who
tries to setup [sic] MySQL on Win using gem under cygwin - and it's the cygwin
bit that seems to be the headache - is in for a long run.
I'm hoping that my current efforts will close this issue and I'll be able to
post my solution here so the next unfortunate slob to run into it will have a
way out...
I attempted the local equivalent of:
gem install mysql -- \
--with-mysql-dir=/sw/bin/mysql \
--with-mysql-include=/sw/include/mysql \
--with-mysql-lib=/sw/lib/mysql \
--with-mysql-config=/sw/bin/mysql_config
...but that only got me the same errors, dumped into the mkmf.log (in
/cygdrive/c/cygwin/lib/ruby/gems/1.8/gems/mysql-2.7,) as well as a few new ones:
conftest.c: In function 't':
conftest.c:3: error: `mysql_query' undeclared (first use in this function)
UPDATE 20080801:
I found a blurb on blogspot that seems to attack the some problem I'm
having here. Quoting and annotating his solution, with shell commands in bash:
* Add devel -> make + ruby ? gcc ? subversion modules from cygwin
installation
* Download gems tgz install package from Ruby Gems download home
* tar xzvf rubygems-1.0.x.tgz
* cd rubygems-1.0.x
* unset RUBYOPT (before installing gems, clear RUBYOPT=rubygems)
* ruby setup.rb
* gem install rails --include-dependencies
(Ron Barry: the --include-dependencies is the default, I believe)
* Download mysql source tar.gz file from MySQL download page
(Ron Barry: the link on his page may go sour, so the way to get there is
probably best found here. You're after the
link under MySQL 5.0 Communiter Server - Generally Available (GA) Release,
where it simply says "Source." You want the Windows Source found on the
page this will get you to.)
* tar xzvf mysql-5.0.45.tar.gz
(Ron Barry: well, extract it however you need to to get your stuff.)
* cd mysql-5.0.45
(Ron Barry: again, however you get there is your problem.)
* ./configure
* make install (or to do it faster, just make install under sub directories
libmysql and include.)
(Ron Barry: I needed mysql anyway, so I built the whole thing. Trust
this guy. If you don't need to build MySQL in its entirety, don't. It
takes forever.)
* gem install mysql
(Ron Barry: It's this bit that was giving me so much hell before.
and this is the important bit: it's the installer of MySQL that
will kill you. You really, really, really need to do your own build of
mysql. If you need the GUI tools, I've no idea where you go next. I'll
probably update that bit later.)
* Change the database server from localhost to 127.0.0.1 in the database.yml
of your rails app.
* Install ImageMagick, libmagick-devel, XFree86-lib-compat, xorg-x11-devel,
libz2-devel module from cygwin installation file
(Ron Barry: this step is to support the RMagick gem that the original
author needed. I include it for completeness.)
* gem install RMagick
* ruby script/server. voila!
(Ron Barry: in other words, done.)
UPDATE 20080805:
If you've been doing the above, you're likely to be interested in the
following tidbit: it isn't worth using the version of mysql that you built in
the above steps. I've done an uninstall of mine - keeping it around only long
enough to build the mysql gem. I installed the windows version of the db with
exactly the same version number and have been doing alright with it, though
the mysql gem will go looking for database connection info in /tmp/mysql.sock,
instead of wherever the windows installation provides it. Keep your eyes on
this blog entry for the fix when I hit it.
-rbarry
So a friend pointed me at pandora.com today - a site where, based upon your
stated musical preferences, you are given their best guesses as to what you
might want to hear.
After having tried a couple different starting points, I created a 'New Station'
with 'Weird Al' Yankovic. It started by playing an Al tune, moved to 'The
Ninjas' by the Barenaked Ladies. Somehow, within a few more tunes, I get
'Another Brick in The Wall, Part 2' from Pink Floyd's Echoes. When I hit the
'Why did you play this song' link, it says:
Based on what you've told us so far, we're playing this track because it
features electric rock instrumentation, repetitive melodic phrasing, extensive
vamping, minor key tonality and an electric guitar solo.
I'm not being critical. It was just a touch of a shock.
-rbarry
Cubed chicken, browned in the juices of a previous chicken. Add about a half
cup of yogurt, (AGH! My net connection is so slow, I'm about 80 chars behind
my typing - I still see a blank where yogurt should be) and about a half cup of
sweet red pepper jelly, a cup of crushied pineapple - maybe more. Garlic and,
in my case the other evening, a dollop of curry mustard. Simmer to a thick
consitency. Holy cow. This one goes on the restaurant menu.
-rbarry
#######################bogosort.rb######################
#!/usr/bin/ruby
$n = 7
$comps = 0
$sorts = 1000
def index(max)
if max==0 then
return 0
end
if max==1 then
return 1
end
return rand(max)
end
def randomize(list)
$n.times do |i|
$n.times do |j|
if (rand(2) == 0) then
list[i], list[j] = list[j], list[i]
end
end
end
end
def checksort(list)
(list.size-1).times do |i|
$comps += 1
if list[i] > list[i+1] then
return false
end
end
return true
end
def bogosort(list)
loop do
randomize(list)
break if checksort(list)
end
end
list = []
$n.times do |i|
list.push(i)
end
$sorts.times do |sort|
puts "sort #{sort}: " + ($comps.to_f/(sort+1).to_f).to_s
bogosort(list)
end
420 seconds.
I've decided that python, used as a manipulator of large collections of files
under DOS, is less of a scripting language and more of a sparring partner.
-rbarry
(I spend about half my time getting backslashes to be handled correctly.)
My apartment complex left a notice in my doorjamb recently that pointed out that
they'd not received the pet rent this month and that they needed it.
This is fine and hunkey-dorey, but there was an odd qualifier: in order to
ensure that funds clear their account before some deadline or another, that the
payment had to be in the form of cashier's check or money order and that they
would need said payment within two days.
So I had to find time to get to the bank, which meant that they received the
cashier's check barely within the 48-hour deadline.
Had they simply accepted a check, I could have written it and dropped in in the
slot at the office within minutes and they would have had their funds a day
earlier.
Weird. Though, Archstone is proving to be weird in many, many ways.
-rbarry
At 10:30 this morning, my boss got up from his desk, went to the fridge, brought
back an alcoholic beverage, and placed it on my desk. That's the kind of week
it's been and it's only Tuesday.
-rbarry
I keep needing, in addition to maps.google.com, an edition that allows me to
choose a date and get the same behavior. For instance, if you need a current
map, maps.google rocks. If you're in need of something more intra-world-war,
you're up a crick. I'm not asking for a major level of detail here - I don't
need turn-by-turn directions from, say, Constantinople to Tsaritsyn (a journey
whose directions should probably indicate that you're in for a LONG trip,) but
even the major political borders and major cities would be nice.
-rbarry
Brand-new juggling bags are about eight bucks apiece and they aren't nice and
floppy like a beat-up set of mush bags are. Sitting in the train station with
absolutely nothing to do and $40 in bags in my laptop case and I can't do a
damn thing - simply because you can't stand far enough from the rail to prevent
a bag from giving it's all for the sake of boredom.
-rbarry
Parker's video game time is limited, but he does get some exposure. His
favorites are Super Mario Galaxy and Boom Blox. I went looking for him in his
room a few minutes ago and he was throwing balls at stacks of building blocks
in his room. I asked him if he was playing Boom Blox and he replied, "Yes.
But I'm not playing it on a real T.V., I'm playing it on a pretend T.V."
-rbarry
I'll be attending a funeral in Denver in a couple of days, which meant calling
the airlines to talk to customer service reps about what the industry calls a
"Bereavement Fare." I gather that this is supposed to be a discount for short
notice travel.
United Airlines' idea of a discount was to quote me the gross national product
of a small country. When I explained that it was 'quite a bit' more than I had
been offered by other airlines, they told me that their special rate included
the ability to cancel or change plans at any time with no penalties.
If not a penalty, what would you call the additional three figures they were
trying to charge me?
Why do we bother teaching ethics to MBAs?
-rbarry
The first commandment of password enforcement:
Thou shalt not disallow characters.
If there is one thing that will guarantee that someone is going to write their
password down, it's enforcing stupid rules about what they can and cannot use
for a password. Requiring a mix of case, a mix of characters, numbers, and
symbols is fine.
The second commandment of password enforcement:
Thou shalt not limit password length.
You're only computing a checksum anyway, right? If I find a 34-character
password (my current one is about 14, but my record is 23) easier to remember
than the 14 characters you limit me to (you know who you are) than you are only
encouraging your users to write down their passwords or worse - tie up your
support staff with calls about forgotten passwords.
I won't elevate this one to a commandment, but I'll share the curiosity. I once
had a pasword rejected because the organization in question thought that
"Sniggerfardimungus Lives in a Cream Cheese Bagel" contained an offensive
substring. It does. Who cares?
-rbarry
It would be REALLY nice to have a tool that ran behind bash that, upon request,
would list all the directories you've visited recently, sorting them by any
number of criteria. I only mention this here because I don't have a better
place to write this down right now....
-rbarry
UPDATE 20100603:
Put all this in 'acd_func.sh' and source it in your .bashrc.
"cd --" will give you the last 10 directories visited
"cd -5" will take you to the 5th directory in the list
# do ". acd_func.sh"
# acd_func 1.0.5, 10-nov-2004
# petar marinov, http:/geocities.com/h2428, this is public domain
cd_func ()
{
local x2 the_new_dir adir index
local -i cnt
if [[ $1 == "--" ]]; then
dirs -v
return 0
fi
the_new_dir=$1
[[ -z $1 ]] && the_new_dir=$HOME
if [[ ${the_new_dir:0:1} == '-' ]]; then
#
# Extract dir N from dirs
index=${the_new_dir:1}
[[ -z $index ]] && index=1
adir=$(dirs +$index)
[[ -z $adir ]] && return 1
the_new_dir=$adir
fi
#
# '~' has to be substituted by ${HOME}
[[ ${the_new_dir:0:1} == '~' ]] && the_new_dir="${HOME}${the_new_dir:1}"
#
# Now change to the new dir and add to the top of the stack
pushd "${the_new_dir}" > /dev/null
[[ $? -ne 0 ]] && return 1
the_new_dir=$(pwd)
#
# Trim down everything beyond 11th entry
popd -n +11 2>/dev/null 1>/dev/null
#
# Remove any other occurence of this dir, skipping the top of the stack
for ((cnt=1; cnt <= 10; cnt++)); do
x2=$(dirs +${cnt} 2>/dev/null)
[[ $? -ne 0 ]] && return 0
[[ ${x2:0:1} == '~' ]] && x2="${HOME}${x2:1}"
if [[ "${x2}" == "${the_new_dir}" ]]; then
popd -n +$cnt 2>/dev/null 1>/dev/null
cnt=cnt-1
fi
done
return 0
}
alias cd=cd_func
if [[ $BASH_VERSION > "2.05a" ]]; then
# ctrl+w shows the menu
bind -x "\"\C-w\":cd_func -- ;"
fi
XPrize for a moon robot. $25 mil on the line. Put a few hundred pounds on top
of a rocket with enough stored energy to get it (and a fraction of your fuel and
vehicle) there. Don't forget to do it cheap. Does it strike anyone else as
dangerous to be encouraging this kind of backyard experimentation? All it's
going to take is one idiot blowing up his neighbor's bathroom with an experiment
gone off-course to put the whole private-sector space flight thing on permanant
(federally mandated) hold.
It took the US government the better part of a decade to get from 'go' to
Neil Armstrong. I don't care who you are, $25Mil isn't going to get anyone to
the moon before 2012. I'll chalk this one up to Google going after a bit of
free advertising through social irresponsibility.
-rbarry
This has been one of those one-thing-after-another days, so.... meh.
Keeping Parker entertained and stimulated on weekends isn't the easiest thing,
sometimes. Especially over the last few months that have been a constant race
of packing, unpacking, packing, unpacking, and very literally - wading in
sewage. Keeping him happy and out of trouble can be difficult.
Despite the massive collection of still-packed boxes occupying nearly every inch
of space at the new apartment, I took Parker to the RoboGames over the
weekend. I figured there'd be enough there to keep him occupied for an hour or
two, then we'd have to call it quits and go elsewhere. Nope. We didn't leave
until the bots stopped ripping each others' guts out.
If you ever get the chance to see this stuff in person, I highly recommend it.
There is a certain shock that you don't get when you see it on television - the
sight of a 50kg robot flying 6 meters through the air to slam into a massive
wall of lexan. Between the sounds, the flamethrowers, the buzz-saws, the lawn-
mower blades, the exploding battery packs, and the bits of robots flying in all
directions, it's completely unlike anything else you've ever seen. It's like a
mechanical episode of Jerry Springer.
Anyway, everyone that Parker has talked to about it since has been told about
his visit to the 'robot store' and the robots falling apart and the piece of
robot wheel that they gave him after one of the bouts. Only he's not quite that
clear about his descriptions with it. He left his mother and my parents going,
"wha?"
-rbarry
"Testing the fucking profanity filter..." - seen today on website with a
presumably broken profanity filter.
AT&T is not my favorite organization. Of the half-dozen or more different
accounts I've held with them, I don't think I've ever had a happy customer
experience with them, and last night was no different.
First, outsourced tech support. I will give a certain small level of credit to
"Dominique" for her truly un-American customer support attitude. In other
words, she was patient and friendly. This, however is the only benefit that an
outsourced service provides for a customer. It is, unfortunately, heavily
overbalanced by the horrific audio quality of the call, the abysmal echo of my
own voice shooting back at me 1.0-1.5 seconds after I say something, and the
unbelievable lag between question and answer. Guys, VOIP is a bad idea when
you have a ping time of > .5 sec.
It's not the customer service issues that had me scraping my jaw off the floor
last night. I'm only going to touch on a minor fraction of the issues from
the call, otherwise I wouldn't even expect a man in solitary confinement to be
able to get through this entire essay.
The problem started when I looked at the IP settings they gave me when my
router connected. My subnet mask was 255.255.255.255 (!!!!!) and my IP address
and my default gateway had the same address.
Now, somehow AT&T has this all rigged up so that their routing can handle the
weirdness. My computer wants to send a packet and the subnet mask tells it that
it must go out via the gateway, so it happily addresses a packet to the gateway
with the same IP address in the Source IP field. Somehow, a response gets back
to me: every attempt to communicate with the outside world gets me a DNS hit
to the same machine in AT&T's network.
I can't even use my own DNS because my traffic is being blocked - I can't even
ping my venerable 129.123.1.1. (Without fail, every time I need to now if I
have a live connection, there's no place like cc.usu.edu. It's where I ping
when I don't trust my DNS and want to know if I'm connected.) I received no
response.
So I fire up a browser. I figured that if they were pulling this garbage, all
would be explained through that canonical internet interface.
Sure enough, I get a page telling me that 'there is something wrong with your
connection' (duh) and that I would have to call a 24 hour support line.
To make a long story short, in order to update the software on the AT&T modem,
I had to expose my computer directly to network traffic with no firewalling in
place... for about an hour. Constant failures of their servers, dependencies
upon popups, an inability to load with cookies from previous sessions, and their
constant insistence that they do not support any configuration except an
unprotected connection directly to the untrusted network... made for an
exasperating experience.
I would bet that AT&T doesn't operate their own networks with the same level of
obtuse ignorance that they insist that their customers do. God bless the
hypocrites.
For those of you who are still with me, please note that this is my second major
rant about the same company - on entirely different issues and services - in
less than a week.
-rbarry
Those who know me know that I am a morning person in much the same way that I'm
likely to announce support for a Republican Presidential candidate. So you'll
understand that I am not technically alive before 7 a.m., frequently much later,
and mornings are not the time to be annoying me. Especially not at 5:00 am,
thank you very much, AT&T.
I use my cell phone as my alarm clock, which has provided a certain consistency
over the last few weeks of hotels and residency establishments. My ability to
sleep through anything at all means that I have the volume on the thing set to
the maximum level. When it started blaring at about five minutes after five in
the morning, it took me a minute to come to terms with what the hotel clock was
trying to tell me. I knew I hadn't mis-set the alarm, so why the hell was it
(literally) beeping an S.O.S. at me?
I hit the end button - something I can do with my eyes closed - and was out cold
within seconds. Less than a minute later it happened again. As I hit the end
button this time, it dawned on me that S.O.S. was the sound my phone makes when
a text message arrives. Still groggy, the beeping started again and this time,
it brought me fully awake. Whoever was trying to get ahold of me at five in the
morning must have a damn good reason.
It amazes me sometimes how quickly the brain can scan complete ideas. In the
time that it took me to grab the phone from the bedside table, thoughts of my
son in an accident, of one of my east-coast friends in trouble, or other terrors
that I'm not going to share to the public - managed to claw greedily for my
limited attention.
Wide awake now, I stare in disbelief at my phone:
"Free ATT msg: ..."
"Free ATT msg: ..."
"FREE MESSAGE ..."
What was so important to AT&T that they had to destroy the next two hours of
sleep for me and leave me pacing an empty hotel room? They wanted to confirm
that I'd changed my address, deleted my old one, and changed my password. In
that order.
As soon as the iPhone is available through Verizon, I'm ditching these morons.
Anyone know if you can still free the device from ATT-dedication?
-rbarry
Back on to the Java thing again...
nudoku.java:639: incompatible types
found : int
required: boolean
if (mask | repeatOfRows)
^
1 error
You're going to have to take my word for it that mask and repeatOfRows are both
ints. If you know a thing or two about Java, and especially if you come from a
C/++ background, you have seen this error so many times that you know what it
means - even if the authors of the compiler couldn't get their head around the
problem well enough to actually help you with it.
Wasn't Java supposed to be this great teaching language? Such an assertion
would require far better reporting of errors than this.
If you don't do Java and _are_ a C/++ hound, weep for the future of anyone who
believes that this crap _is_ the future.
-rbarry
An interesting project idea that may or may not get my attention in the near
future: An application that simply hits a website for a list of peers, then
sends them requests for responses. Those responses would just be the current
state of the peers. The client would pool together all the responses to get
its own state computed. It would then compare your state to everyone elses
and tell you whether your net connection is 'cool', 'unbelievable',
'suckage', etc.
-rbarry
It seems that someone could make good money on a meeting defragmenter. I have
all this wasted time between 10- and 15-minute meetings that is going into
things like - er - what you're reading now.
-rbarry
Ugh. Finished a can of Pepsi and grabbed a can of Coke as a chaser. Ever drink
orange juice after brushing your teeth? There's a Cola War going on and my
digestive system is the battleground.
-rbarry
Playfirst, my new employer, is a bit cramped at the moment. Seriously, my cube
is about four feet on a side. Once you cram six textbooks, five juggling bags,
four calling birds, three computers, two monitors, and a monster-sized
Captain's Chair into the space... well, you get the idea.
But somehow I keep trying to take breather moments to advance my juggling skill.
With five bags.
Brand-new juggling bags are weighty, softish, and very round. I have succeeded
in chucking one over into the next cube, landing one in the garbage can, and
ricocheting one off my foot to roll into the CTO's cubicle.
I think I'm going to have to put off unicycle fencing at work for a while.
-rbarry
Further rantings on the stupidity of Java...
There is a quote from the early days of software:
As soon as we started programming, we found to our surprise that it wasn't as
easy to get programs right as we had thought. Debugging had to be discovered.
I remember the exact instant when I realized that a large part of my life from
then on was going to be spent in finding mistakes in my own programs.
Maurice Wilkes, 1949
As I said. The EARLY days of software.
The advance of technology has brought bigger and better debuggers, but in the
end, we still spend the vast majority of our time incrementing our understanding
of the systems we are working with.
A good compiler is a major part of that. Good error messages make the removal
of the trivial bugs (usually typos, usually very basic mistakes) easy to kill,
and I have gotten used to having this process occupy less than a percent or two
of my overall time.
Back to Java, I did this today (simplified to the test program it took me to
kill it):
public class tmp
{
static public void main(String args[])
{
System.out.println ("null");
} // Error pointed to this close bracket.
public int getIndexAttribute(Node node, int default)
{
return 0;
}
}
Note my comment. The compiler complained bitterly about the close squiggle
bracket at the end of main, saying I should insert another '}' to "Complete the
Class Body."
The actual error is one of those minor mistakes you make in this business.
All of my C and C++ compilers spot the same error, but tell me EXACTLY where
the problem is. Had javac done the same thing, it would have saved me
considerable time.
You may ask why I spend so much time bellyaching about Java? It's not that
much time compared to how much of my time Java wastes for me.
-rbarry
I'm bleeding the edge of software while using a 4-year-old iPod to drive
20-year-old headphones to play a 50-year-old album.
-rbarry
From the javac man(1) page:
-source release
1.3
[irrelevant]
1.4
[irrelevant]
1.5
The compiler accepts code containing generics and other language features
introduced in JDK 5. This is the default.
^^^^^^^^^^^^^^^^^^^
So why the hell is it that when I try a command-line compile of a Hello World
with one extra line:
private static Vector<String> foo;
...I get this:
1. ERROR in tmp.java (at line 5)
private static Vector<String> foo;
^^^^^^
The type Vector is not generic; it cannot be parameterized with
arguments <String>
I have to add the command-line option to get the DEFAULT behavior:
javac -source 1.5
I'm sure that there's some environment variable or config file that is affecting
this, but.... well...
It isn't so much that I'd like an answer to this particular question, but rather
the question: Why the ^#*( do I run into garbage like this every single time I
use this idiotic language? This is why I quit using java in the first place.
Of course, java's abysmal documentation style makes me wonder why any sane man
would ever choose to use it, too. Lemme provide a (very unfortunately) typical
example. Not exactly a useful learning resource.
-rbarry
So when Treebeard's folk left Middle Earth, would you say that was the Ent of an
era?
-rbarry
A sad, sad moment today. I went to do a search through my blog and realized
that I no longer had one large file that contained the whole thing - for the
first time in 15 years or so. It's the end on an era.
-rbarry
People quote shakespeare with wreckless abandon: "There is nothing good or
evil but thinking makes it so..." "A rose by any other name..." etc., etc...
...without ever stopping to think that maybe he was wrong.
-rbarry
I've been using a Kinesis Ergonomic Keyboard (image) for about 9 years now.
The, uh, same one.
It is, without a doubt, the best gaming keyboard I have ever laid my hands upon.
I can one-hand 34 buttons, without ever looking at - or moving - my hand. My
Netrek game improved by an order of magnitude by the simple addition of this
keyboard. What it has done for my gaming it has also done for my typing and my
day-to-day keyboard stamina. If it weren't for one issue, which I'll get to in
a couple paragraphs, I'd recommend one to everyone with ten fingers...
I've had issues with it where the printed circuits behind the keyboard have
worked themselves loose and I had to perform surgery. I've spilled a coke on it
and had to clean every internal bit of it with alcohol. The default mapping
that Windows XP uses when I switch it to Dvorak (I have an older model that
doesn't do this internally) is Just Plain Satanic, but I have a Scancode Map
squirrelled away that solves the problem. It's so old, it uses the old AT DIN
connector, but I've strung together a DIN-to-PS2-to-USB adapter chain, and the
device ticks along just fine.
This morning, the space key (not the space BAR, but the space KEY) was stuck.
The key would depress and release normally, but the machine was hearing a
keydown and no keyup. I opened up the case, checked the switch, found its
cover had popped up, fixed the problem, and am again typing on my favorite
keyboard in the world.
Geek surgery. Problems solved.
So why is it that when I was spotted by the IT department screwdrivering my way
into my favorite device of all time, and they offered to replace it, I told them
that I'd like to try a Maltron? Because no matter how many times I've
complained to Kinesis over the years that using calculator buttons for the
function keys makes them entirely useless to someone who uses them every minute
of every day..... my pleas have apparently fallen upon deaf ears.
In the first weeks of owning the Kinesis, it became apparent that the function
keys were going to be a major problem. They are so close together and devoid of
any characteristics that would allow you to differentiate them by feel that you
cannot operate them by touch. I am a 100% touch-typist. I learned to type on a
blank keyboard. If that weren't bad enough, over time the pressure required to
trigger them got to such a level that I now have to hold the keyboard between
my thumb and index finger and squeeze to use the escape key. As a rabid
vim user, I fortunately have this key remapped to the caps lock, but what about
the other function keys? My current solution to the problem is to have a
'normal' flat keyboard sitting behind my Kinesis. When I need F7, I move my
hand up to the second board and hit it. It's a pain in the ass.
Companies soldier on just fine by making a great device and never changing it.
But it seems to me that making a great device and actually being willing to
improve it is worth something. Take me for example - I'd happily buy a new
keyboard from Kinesis if they would fix this issue. In the last decade, the
only changes to the Kinesis have been in its firmware. The most deplorable
design flaw of the device remains uncorrected.
We'll see how the Maltron goes. If I like the thing, I'll donate my Kinesis to
a museum.
-rbarry
This morning, I went to tell Toni a joke:
"What has four legs and an arm?"
To which the proper answer is, of course, "a happy Pit Bull."
Parker however, was in the middle of Dumbo and came up with an immediate
answer: an elephant.
-rbarry
The Transportation Security Administration's new Registered Traveler Program.
Absolutely brilliant. No more waiting in line to get to your airplane, you
simply flash your card and walk on through. I hate the security line, and so
do you. Why wouldn't we implement something like this?
We shouldn't implement it for the same reason that you don't let someone into
your VPN without authenticating simply because they are logging in from home.
A free pass through any security system of any sort is a free invitation to the
bad guys to walk all over you.
Here's the scenario: John Doe is a bad guy. He's out to get.... whatever...
through a security checkpoint. Setting aside the fact that if he tried to do
it by going through the usual scan, his probability of success would be
something like 75 percent, we go on to how the Registered Traveler Program is
his best friend:
1) He applies for a card and is accepted.
Duh. He takes anything he likes on board.
2) He applies for a card and is rejected.
He finds someone who DOES have a card and either plants materials on them
or blackmails them into knowingly moving them.
3) He applies, is rejected, and cannot find an appropriate rube.
He simply takes his chances on a run through security and has a 75% chance
of success.
I should be brutal on point 1. It's actually a gaping hole. Homeland security
seems to assume that all 'terrorists' are idiots, but they (Homeland Security)
do manage to comprehend that The Bad Guys operate in groups. It is probably
the only point on which I agree with the idiots (TSA, not The Bad Guys.) But
it means that if one of them (The Bad Guys) doesn't get the card, there are
more who have a chance to apply for one. One of them will get it. Statistics
are on their side. How can Homeland Security have that second word in their
name and still not know the most basic principles about applying security
policies?
They're wasting your time, your money, and trampling your privacy.
To make it easier for our 'protectors' to execute their jobs, I offer the
following replacement for the recently-published work, "Terrorist Recognition
Handbook: A Practitioner's Manual for Predicting and Identifying Terrorist
Activities."
Your target will be carrying a Registered Traveler Card.
-rbarry
Those of you who aren't geeks are excused for now. I'm going to go off on one
of my horrific rants about Microsoft, and you probably don't want to suffer
through it.
I've been playing with DirectX9.0 a bit and the very first program that I wrote
was, of course, a "Hello World." Every frame, the words "Hello World" appear on
the screen - hundreds of times per second. (Well, it depends upon how you
measure it, I guess. Rerendered hundreds of time per second, redrawn to the
display about 60 times per second.)
Simple enough.
One of my eventual applications of this work will be to get the raw RGB memory
for the back buffer, hand-render (raytrace) into it, then flip the buffer. So
I was curious about the frame rate at which I could render the venerable line,
as it would give me a vague upper bound. A search through the dustier corners
of my brain (I haven't done serious PC-specific programming since all my hair
was brown and still attached to my head) gave me some timers to play with, and
a simple line of code or two later I was telling DirectX to render the frame
rate for the last frame, as well as the average rate for the entire program.
My two approaches to this program were:
sprintf (displayString, "Hello World");
...and...
sprintf (displayString, "%f", frameRate);
When the first version is run, the program screams along at a very high frame
rate. I render render each frame in a different color so I have a good idea
that it's running quite quickly, but I don't have specifics. The second version
runs fine - for a while, but slows down until eventually a given frame is on
screen for several seconds at a time.
I'll spare you the details of the investigation, but suffice to say that this
has been a problem with the DirectX SDK for years now. The problem is right
here:
mFont->DrawText(...., displayString, ...);
Get this: DrawText renders the string to a texture for caching purposes. I
get that and I agree with it: I don't want to be burning cycles re-rendering
the word "Score" every frame of my game. BUT any sane caching system in the
universe assumes that resources are limited. DrawText is not using a sane
cache. WHY, IN THE NAME OF ALL THAT BACKSTROKES IN BUTTERSCOTCH, DOES DRAWTEXT
NEVER, EVER, EVER, EVER CLEAN OUT ITS CACHE?
I'm not kidding. If I'm rendering fps as a float, each string is likely to be
different, meaning that each frame creates a new texture in the cache, but it
never reclaims unused textures. My machine starts to crawl when the executable
hits about 1 gig and pretty much dies at 2-3.
I've heard rumors that destroying the font and recreating it (a cpu-intensive
process in its own right) will take care of the problem. It is that which I
endeavour to suffer now....
Haven't these people ever heard of LRU? LFU? delete[]?
-rbarry
UPDATE (same day)
Destroying and recreating the font takes about .5 - 1.0 seconds. In
other words, you can't do it in a real-time environment. I'm exploring
other options.
Please explain to me why it is that AcroRead needs to be using 10% of my system
CPU when its minimized. No takers? Well, let's just close the thing...
...
...
...and it's still taking 10% of my CPU.
I wonder how many millions of megawatts have been wasted by Adobe on this little
modicum of stupidity over the years. Not that this is actually even in the
running for the top 10 dumbest Adobe issues, but for now it's the one that is
on my radar.
-rbarry
Color Deficiency. Yeah. I got it. A friend asked me what I see when I wear
blue-blocker sunglasses, to which I (eventually - hey I have a universe to save,
dammit) replied, "I see red people."
-rbarry
Vegan? Really? If it were the only option available, are you REALLY telling me
that you'd walk into the Colosseum naked, rather than with leather armor and a
whip?
-rbarry
Consider this to be a call for suggestions.
Evidently I have TWO loyal readers - or as I like to state it, my readership
has been doubling. For those poor saps, who can't seem to figure out how to
remove me from their RSS subscriptions, I offer the following opportunity for
input in the direction foodini.org is about to take.
I mentioned recently that I'd like to be able to blog on blogs. Each blog
entry would have a full blog connected beneath it, and so on. At any but the
top level, making entries would be a free-for-all.
Having back-burnered (I have a mental stove with a lot of burners) this idea as
being of little utility because, well, it is... my photo pages do bring in
quite a bit of traffic and having the ability for people to comment on photos
would be handy. It's trouble because I really didn't want to implement this,
but it looks like it's going to be a necessary part of making a user-interactive
photo archiving system.
Me? I can use any crap software I write. Even my radiosity engine. That's not
to say that my radiosity engine was crap, but getting input files made was like
creating a config.sys and autoexec.bat for the execution of random graphics
demos circa 1993. It was difficult, it was inflexible, but it was the
unavoidable bed of nails on the path to a certain kind of eye-candy
enlightenment. The point is that if you have an opinion, chime in. It's your
life that's going to get worse should you fail to do so. =]
-rbarry
Holy mother of logarithms! The recent addition of the permalinks has a few
search engines happily buzzing about, growing my logs by several k per hour.
-rbarry
For strange reasons which need not be noted here, I needed to find as many
groups of nine as I could. For instance, a baseball team fields nine players.
A cat has nine lives. A stitch in time saves nine. Nine planets, give or take
a planetoid. Nine circles of hell. This is about as far as I'd gotten in the
brainstorm.
When brain implants become a reality, all I want is a google interface. I
punched in:
cat nine lives "baseball team" planets "circles of hell"
There were nine hits. As this article ages, that number will, of course change.
In fact, it will probably include this page before too long.
-rbarry
UPDATE 20080604: Sure enough, today there are 14 hits, and this page is number
three.
http://www.foodini.org/latest.cgi will now forward you to the most recent
article in the mass. It is an autoforward, so you'll have to bookmark it
manually. I've also set up permalinks, so you can hit a single article at a
time and bookmark the specific entry in which you're interested.
I've been mulling over the idea of allowing comments on the page - essentially
each entry would have a complete blog of its own beneath it - ad infinitum. No
guest posters would be allowed in the zeroth level, but after that it would be
a free-for-all. My one reader would be able to argue with himself until the
rapture. Let the flaming commence, etc.
I have finally dragged myself, kicking and screaming, into the modern era.
After years of using the same cgi processing code, I may actually begin using
the CGI module that ships with perl. Years and years and years ago, a friend
handed off a code snippet that would do the work of converting the cgi data
passed to a script and turn it into an associative array. I've never needed
more and I've never felt like writing perl in anything less C-like than I'm
already forced to, so I've stuck with my current, archaic system.
Times change, though. I'm looking at replacing the photo browser on my website.
Really, that means that I'm replacing the entire website - there's hardly
anything in here other than the blog and the photos. The reason the photo
browser forces me to update is the need to allow friends and family to upload
photos. I nearly fell back to a .procmail solution - and if you know what I'm
talking about, you know why CGI.pm was preferable.
I'm a dinosaur. It's time to start updating some skills.
-rbarry
In the last couple of days, I've smashed together some changes to the ol' blog
style. The priority was, as it has always been, to preserve the vt-100 look of
the thing, but I did want to make it possible to view a single post at a time,
partly just to add a bit of google-bait, but partly because the large mega-file
version of it will hit the half-megabyte point within the next month or two.
Every hit was costing my service provider bandwidth which was no longer easy to
ignore.
I keep swearing that I'm going to plunk in something that allows user comments
and dialog, but the idea that won't stay out of my head is the bastard child
of Frankenstein, a Swiss Army Knife, and Bill Gates evil twin. Trust me when I
say it would be very weird - and a low priority.
My current priority set:
* Replace the photo browser in its entirety. This is going to be a mess on
too many levels because the highest priority there is simply to make it
possible for account holders to upload photos. In 1996, I was an HTML God.
In 2008, I can still do plenty of cool cgi-side html generation, but I'm in
no position to take the time to bring in much in the way of new tech.
* The hand-written blog font. My first pass is here. The individual letters
need less surrounding white space. Other than that, it is a good start.
The script is capable of using letters, words, or entire phrases - for the
sake of compression. The 500k blog file expanded to many megs of html with
the demo font.
* Many projects that have died in the last few years. My enthusiasm has waned
and my time has disappeared. Instead, I waste time on Eve Online. Pink Floyd
warned me about this.
-rbarry
There've been some discussions lately, from slashdot to NPR, about this idea
floating around about boarding airplanes more efficiently. The basics, as I
understand it, is to order everyone up by seat assignment and have all the
window seat passengers board first. The guys at the back of the plane are the
first in line, etc., so that when the door opens, a huge line of people get to
their seats at the same time. Then you do the middle passengers, then the
aisle.
Dumb. People sit together in the same row, and if you've ever flown with
children - especially multiple children, you know that splitting up families
would be catastrophic. I won't go into the "proof by example," but off the top
of my head, I can come up with several cases where making a special case out of
a row of passengers would make the whole thing a mess.
If you're going to line up everyone in a militant order - such that every seat
comes with a specific place in line, do the following (assuming a 50-row plane
with 3 seats on each side of the aisle, lettered (window)ABC(aisle)DEF(window):)
50A 50F 50B 50E 50C 50D
...then move up a few rows...
45A 45F 45B 45E 45C 45D
...until...
5A 5F 5B 5E 5C 5D
The idea is that you want to have enough room between rows so that when the
aisle is packed with people putting their stuff away, the people at the back of
the line just happen to be boarding to the rows at the front of the plane.
When you get done with row 5, start one row farther forward and do it again:
49A ...
44A ...
...
4A ...
And yes, you'll be paying me if you board your passengers this way, regardless
of how many rows you skip at a time or how many aisles or decks you adapt it
for.
-rbarry
I'm falling behind again - a month with no updates.
Certain types of meetings at Stormfront, while absolutely critical and usually
productive from beginning to end, do have the tendencies of a gas - they expand
to fill any container in which they are placed. When one critical person has
something else to do... that's when the meeting will probably end.
So Reed Knight was being asked for a decision on a major problem and after
giving a tentative decision asked, "Can I sleep on it after this meeting?"
...to which Geoff Jones replied, "Why wait? You can probably sleep on it
DURING this meeting!"
-rbarry
Yesterday was, unexpectedly, an emotional day. Toni and I took Parker to the
zoo for our first visit since just days before the widely-publicized attack on
three zoo patrons. The last time we were there, the Big Cats were getting their
Christmas presents: large paper-wrapped boxes containing great big chunks of
meat. The boxes had been placed up on platforms in the indoor cages, to which
each cat in turn would make a single, fluid, pulse of a jump... and tear the
box to shreds.
Parker was talking about the "Tiger Who Jumped Up," and her big present, for
weeks afterward.
It seems that every time conversation about the incident comes up, someone
hazards a statement about whether the men involved 'deserved' what happened to
them, always along the lines that of COURSE they didn't, but they were
obviously way out of line. I think I'm going to seriously risk a very
politically incorrect essay today.
It needed to happen.
Tigers have been living in that enclosure for decades. Doubtless, they've been
hassled by zoo visitors on a regular basis. However, whatever this particular
trio did while in the park after closing time, while nobody was around to keep
them in propriety, was more than these animals had ever suffered. It has been
shown that given sufficient motivation, the cats could get out, but they had
never gotten out before. Therefore, they had never had sufficient motivation to
do so, and we can safely conclude that this group of men provided a more severe
abuse to the tiger than she had ever received at the zoo.
That's saying a lot. The facts that the men involved were drunk, high, and
stubbornly uncooperative with the police supports the conclusion that they knew
that they were way out of line.
This kind of behavior is unacceptable. I refuse to refer to the incident as an
attack because I can't help but see it as an animal's only path of self-defense.
I say that this needed to happen because the casual attitude taken by many in
our society, toward animals, needs some examination in our society. If anyone
'deserved' this kind of result - and even I can't go that far - but if anyone
did, it was the threesome in question. If it had to happen, providence made its
best choice.
Tatiana the Tiger had attacked (and this time I use the word correctly) a keeper
the year before. I can't help but think that the keeper became careless. Tati
was a wild animal and needed to be treated as such without exception. I do feel
for the keeper because we all get lax from time to time, but there is a major
difference between a momentary lapse of attention and the cruel and torturous
assault carried out by a pack of drunks. Tati didn't deserve what happened to
her.
So you can see where I stood as I walked into Member Services at the Zoo at
closing time.
It was hard enough just getting through the front door. Much of the memorial
material zoo visitors had left behind was up in the office, some of which I
recognized from the newspaper. I was blinking furiously, Toni was sniffing and
asked to be excused. Struggling to control my voice I asked to adopt an animal.
Earlier in the day, I'd talked about adopting a Tiger, but I'm not sure Parker
had grasped any part of that conversation. Still, his normal shyness was
completely absent when the associate asked him what kind of animal he wanted.
He belted out, "A TIGER!" and I nearly lost it.
-rbarry
UPDATE: 20080311
Apologies in advance. It's 3am and I've been doing emergency plumbing for
the last hour....
I try not to edit any post after it goes in here. Well, to be honest, I'll
usually revise and edit a post for a few days, but I have kept a strict
policy of no content alteration after a week. It seems contrary to the
idea of journaling, logging, whatever you want to call it. However, this
evening, I've been thinking about how this particular entry will reflect
upon me in the coming years as family - Parker especially - friends, and
potential employers stumble across it. I told myself that "Just This Once"
I could justify it.
Eventually, I made only the most basic grammatical changes and tried to be
clearer where I thought I'd originally been foggy, but in the end I left
the statement that I felt this "needed to happen." If the punishment that
Karma-or-whatever-you-want-to-call-it dealt out to the three men in question
could be spread among all those who deserve some retribution for their
actions, then the result would be fair. Well, that's my opinion. But
statistics have their own sort of fair: you play the game, you roll the
dice, and you win or you lose.
If these three guys had, say, been caught by a zoo employee and been
convicted of some crime, there would have been almost no attention given to
the entire event. I think that the media attention that this has brought to
bear on animal cruelty is a good thing... and I also hope that somewhere,
someone has given second thought to similar behavior, even if not for the
obvious ethical reasons, but for simple thoughts of self-preservation.
That's where I see the only real silver lining here.
-rbarry Hopefully going to get some sleep. As long as I don't dream of
dripping faucets.
UPDATE: 20101022
I did edit a couple unclear sentences. The clarification, I believe, makes
the content of the letter even stronger.
A friend of mine from way back went to work for the government and was going
through the usual gauntlet of security interviews. Now, there's a small group
of people whom I've told to use me as a reference at any time. This friend is
one of them.
Unfortunately, I didn't find out that this friend had referred The Feds to me
until the phone call: "Hello, this is Ron." Keep in mind that this was a LONG
time ago and everything is a paraphrase. The gist should be about right...
"Hello, am I a addressing Ron Barry?"
"This is he."
"This is Agent John Doe of The Federal Bureau of Investigation. I'm currently
conducting background interviews about a Mr. __________ __. Do you know Mr.
___ _____?"
Now my first thought was that my friend had run seriously afoul of the law,
which seemed totally ludicrous. The thought of associating myself with someone
under the Federal microscope didn't seem so bright, but honesty being the
better part of self-destruction, I soldiered on.
"Uh. Yes."
...to which the agent responded that my friend was obtaining security clearance
and I'd been listed as a reference. It took me a few minutes to catch back up
with the conversation.
The discussion turned to setting up a meeting, and that eventual conversation
led to some entertaining moments. (When asked if my friend was involved in any
organizations which might be interested in subverting the Federal Government, I
replied that he was a member of the NRA.) Yes, FBI agents have a sense of
humor, though I think this guy's actual thought might have been, "how soon can
I get the hell out of San Francisco?"
-rbarry
Debugging is twice as hard as writing the code in the first place. Therefore,
if you write the code as cleverly as possible, you are, by definition, not smart
enough to debug it. - Brin W. Kernighan, Knight of the Symbol Table
Yarrgh, Matey! Climbing the cliffs of a Puerto Rican volcano used to boil me
blood and shiver me timbers, but now it dulls me hook and aches me peg leg, so
I'm afraid I'll have to give up bein' a pirate of the carabiner!
-rbarry (who else?)
I know plenty of software architects who are going to take one look at the
title of this essay and scoff. Who can blame them? Software has come a long
way since punched tape, but I'm still going to make the assertion that one of
the most critical components of the entire process of creating large software
systems has failed horribly.
Reuse.
Unfortunately, the software industry is proving its inability to grow. We love
new tech, new toys, and new ideas, but the industry is reaching middle age -
we also love our habits and our routines. Need a user interface for that
system you're putting together? Write one. That's the way we are.
Trouble is, this is an absolute violation of the fundamental engineering
principal of reuse. Don't tell me you're going to reuse it in your next n
projects and that it therefore qualifies as reusable, because you're going to
couple it to the software system you're currently writing and that will be the
only system which will ever be capable using it.
It isn't reusable when it is no more than an extension of a bigger system.
I think it would be helpful to bring in an example - what I consider to be the
canonical example of the issue: How many 3D vector libraries do you think
exist in active distribution at this very moment? Thousands. I would bet
that every games company has their own, every animation software house, every
audio processing, simulations, in-car navigation, cartography, and modelling
shop has its own.
This is bullshit. Even the open source community, an affiliation of zealots
(using the word in a positive sense, here,) can't get it together to make a
vector class that will allow you to use their many packages together,
seamlessly. Take the best of the open source graphics, physics, and audio
packages in the world, and your life will be miserable just because you have to
get these things to speak the same vector language.
This is what I call a failure of architecture. If the most fundamental unit of
a 3D denizen's life cannot encourage the software community to cooperate in a
communist fashion, then I see this industry continuing in its current, hopeless
thrashing through reinvention after reinvention. The real travesty is that this
disaster is shrugged off over and over as being normal - as though it's the way
things are, and therefore... the way it will always be.
It seems to me that open source's greatest victory isn't going to be domination
of the desktop market.... well, I don't think that'll ever happen, but if it
did, it would be even less spectacular than if it became standard practice for
every individual, organization, and corporation to go to OSS for every
fundamental building block of their software which lies outside of the direct
scope of the business in which they compete. This means games companies would
use an OSS engine which they would modularize to produce their competing IP,
effects, Artificial Intelligences, and interfaces. Sims companies would have
a single source of modular physics that they would extend to provide the
particular features which are their marketing bullet points. These modular
systems would, in turn, be constructs based upon smaller and more fundamental
systems - eventually including our venerable vector class. You get the idea.
We're wasting a lot of time here, people. We are drowning ourselves in
repeating and rewriting history, so to speak. In a rare link (for me) to
popular culture, I'll ask you if you've seen the movie "A Beautiful Mind." If
you have, you might remember the scene in the bar where the main character
observes that multiple entities can actually deadlock in a worst-case situation
if they each try to strive for that which is best for themselves, but can
achieve a better result - for everyone involved - if they cooperate toward a
solution?
The state is called Nash Equilibrium, and it is the topic which John Nash, the
main character (with John C. Harsanyi and Reinhard Selten) earned the 1994 Nobel
Prize in Economics.
When I discuss these ideas with other engineers, we inevitably reach the same -
very strong - counterargument: that there is no standard which would satisfy
everyone's needs. This is absolutely true. No implementation is going to
provide the total flexibility as a custom roll. My assertion is that the cost
of those inflexibilities is less than the cost of rolling your own solution.
How long does it take to roll a complete 3D math lib, complete with matrix
methods and native code for every platform you target? Once you've done it,
how often does it change? The only time I touch my vector math code is to add
new methods to it, and with a large public implementation, I get that for free.
Now, the vector class is a bit of a special case here. The definition of 3D
math and its operations don't change over time, while the requirements of a
software product do. If you are changing the requirements of your systems,
as long as those systems are the features with which you compete in the market,
you're getting the best benefit for the cost of implementation.
However, if an off-the-shelf system will get you there - at least for a while -
and let you work on your core business from the very beginning, you are wasting
precious resources rolling your own custom solutions. More often than not, a
"good enough" solution will get your business running and from that point on,
you'll not have time to replace the foundations because you'll be too busy
making the points upon which you compete better. If that means making the
vector class run faster, great! Do it! Go with my blessing, but make the
enhancements available for reuse.
-rbarry
A neighbor donated about ten pounds of dog fur - that's not a typo - to the
cause last year, giving my mother a bit of a hairy problem: how to make it into
yarn. Short story: her blue-dyed Samoyed-hair yarn took first place at the
Anacortes County Fair this year.
I now live with a quarter-dozen felines. I was thinking of collecting the
residue and seeing if she could make me some cat3 cable. (geek joke)
-rbarry
Created a wikipedia.org account: "Sniggerfardimungus" and can't post. The
username has been automatically blocked because: it is a blatant violation
of [the] username policy - it is obviously profane.
Using the word 'obviously' when you're auto-screening substrings is a little
iffy. I wonder if a lover of Japanese mushrooms would have a problem with
registration.
-rbarry
Well, we had a 4.5 earthquake here a while ago that lasted about 10 seconds.
Compared to the wind today, it was just a little bump. We're getting 60mph
gusts around here and the building faces 2 miles of uninterrupted space.
-rbarry
I can't listen to that much Wagner. I start getting the urge to conquer Poland.
- Woody Allen
I can't stand Woody Allen, but I guess everyone has their off days. In his case
an off day would be the day that I was actually entertained by something he
said. -rbarry
Parker and I left the BART station for his preschool this morning and just as
we were approaching the bus stop - it left.
I said, "well, kiddo, it looks like we're going to walk to school."
Somewhere, Parker has learned about explitives.
-rbarry
So in the last 18 months, Sony, Microsoft, and Nintendo have all released their
'new' consoles. I would like to take this opportunity to observe which is
selling the best. The Nintendo Wii. Why? I've been saying it since the 90s,
people: Gameplay is King.
Look at Wii Sports. THE TENNIS PLAYERS HAVE NO LEGS!!! THE BOWLERS HAVE NO
ARMS!!! If you make a great game, nobody gives a crap how it looks. If you
make a flashy, high-tech game which plays like crap and costs $400+$60 to get
into, the world will beat a path to the nearest collection agency to close your
sorry backside down.
I could spew off 3-4 pages - EASY - on where Sony blew it on this one, but left
as an exercise for the reader is probably best at this point. At this point,
I'll call this generation: Wii wins on profits worldwide, with the XBox taking
a respectable chunk. Sony will be lucky to break even. Why?
You have to sell early. With the XBox a year ahead, they had to do something
to get consoles in homes. There's a domino effect from there: low early sales
mean developers look askance at you and don't want to jump in to develop for
your device. That means that at no point during your lifetime do you have
titles - they're all being released for the console that had the sell-through
numbers. From about 18 months in, it's all downhill.
Could they have made it work? Yes. But that box would have had to hit shelves
at the same price as the XBox, or unnoticably close to it. Releasing without a
response to the XBox Live from THE PREVIOUS GENERATION was... I... There...
I sputter at the stupidity. I've got to stop. Seriously. I could go on
forever.
I would say that Sony is astronomically obtuse when it comes to taking care of
developers, but that title actually belongs to Nintendo. Again, if I go down
that road (Sony's or Nintendo's abuse of developers through neglect) we'll be
here all night, and it's already 1:42 am. Nintendo at least can get away with
it - they have all the original IP it takes to keep themselves alive forever.
In 2095 they'll be selling yet another gamecube clone but with 2 GIGS of main
mem and two whole processors. And it will sell 40 million copies of "Zelda,
Chronicles of an Aging Guy in a Green Hat."
So I ask you, dear reader, why the hell do you keep reading this crap?
-rbarry
So I'm sitting with Parker this evening as things are winding down, watching
him play Mario, and I tell him, "Okay, kiddo, last one. The next time you get
eaten, it's bedtime."
Parker's a couple months past three, so telling him to do something many times -
especially if he doesn't want to - is par(ker) for the course. This meant that
I was a bit surprised when, after Mario met an untimely end at the hands
(actually, they seem to be limbless) of a snow monster of some sort, he calmly
turned off the GBA and stood up.
I looked at him and said, "Parker, I'm very proud of you. It's a sign that you
really are becoming a big boy that you can both remember that it's bedtime and
be helpful about it when the time comes. You're becoming a grown-up."
He responds to this by grabbing my cheeks, flapping them back and forth, and
cooing, "BLAAAGH!!! BLAAAGH!!! BLAAAGH!!!"
They grow up so fast. *sniff*
-rbarry
How to Write Good Bug Reports: A Guide for Video Game Testers. Or, So You Got
The Testing Job, How Do You Turn it Into a Development Position?
A bug is a liability. Let's face it, the games industry of the 80s is dead and
if you can't define your company's each and every activity in terms of dollars,
then your company is probably going to be following the path of Acclaim. If a
bug is a liability, then everyone in the company should look at it as a process
in which their job is to minimize the cost of that liability.
Identifying a bug is only the first part of your job. In fact, I would assert
that it is the least fraction of the importance of the work that you do. It is
only when the bug report finds its way into the hands of the person who is going
to fix it that your work finds merit.
The following report has merit in all the categories that count to me, an
engineer:
Title: Can't kill the Kobold in Level 3.
Reproduction Steps:
1) Load a Level 3 savegame.
2) Go North two rooms and head West through the door with the broken hinge.
3) Standing to the left will be a Kobold carrying a bunny rabbit.
4) Beat on him.
5) Observe that when he dies, he simply gets back up and hits you with the
bunny rabbit.
* Repro rate: 5/5
Relevant issues:
* I've discovered that the only Kobold which has this issue is the one with
the bunny.
* The Kobolds in level 4 who carry bunnies die normally.
* The issue only occurs if you load a game, not if you progress through from
the beginning. (repro rate: 5/5 with loaded game, 0/2 playthrough.)
(Apparently) Irrelevant issues:
* There is a back way into this area. Using it doesn't seem to affect the
bug.
* My choice of weapon did not change the outcome.
* If I kill other enemies first, the bug still occurs.
The above report carries a wealth of information for the developer who must
track down and fix the issue. First, the odds are that the engineer in question
has never played the section of the game you're referring to. You play the
whole game, all day, every day... or at least you have, so it may be difficult
to imagine that the guy who wrote the code isn't intimately familiar with it.
He isn't.
The time it takes you to write up steps that get him there are 5 minutes of
your time that save him probably far more. Think of the cost of that 5 minutes
you spend in company dollars, and the potential cost of 15-20 minutes of the
developer's time. Those are the terms in which your value to the company will
be measured.
The example report next shows that you did your homework to identify the least
set of critical issues to reproduce the problem. It means the difference
between an engineer (or a designer, or whoever) having to go and discover these
things for themselves, and having the possibility of immediately recognizing
what the actual issue is. In many cases, a well-written bug tells me exactly
what the problem is before I go to look at my code. Guess how much cash that
saves our employer.
The 'Irrelevant' issues section is the collection of things that you tried in
attempting to establish the critical contributing issues which didn't work. For
example, you might think, "we had a bug where the player's choice of weapon made
it impossible to kill some enemies." Well, you really need to check that out.
It tells the engineer right off the bat that it's not a duplicate of the
previous bug and he doesn't have to waste time going through the game and
setting the breakpoints to prove it. Just take good notes as you test and be
clear on what did and didn't contribute to the issue.
Also present is the repro rate: How many times were you able to get the bug
given the 'minimum' set of repro steps? How often did the bug fail to occur
with different playthrough paths? Note that it may take a long damn time to
put all this together, but there's nothing that says that you only may work on
one repro at a time, is there? You can be doing playthrough for multiple bugs
at a time. Just be sure to make note of the details in each bug. DON'T skimp
on this bit. Nothing will annoy a developer more than seeing 5/5 on a bug
that they can't reproduce. You might as well tell them directly that you
didn't engage your due diligence.
Now that the major features have been called out, I'd like to take a page from
my personal history of bug fixing:
Title: Kobolds don't die.
Issue:
Whenever I kill a Kobold, he stands up.
The first thing a developer is going to do is send this back to you, assuming
that they don't just retire it altogether. I could analyze the crap out of this
one, but having seen the 'good' example, you probably shudder at how poor this
'bad' example is. Assuming that the developer believes you, how long is it
going to take them to reproduce the problem - especially in light of the fact
that they may not even know where the bunny-wielding Kobold in Level 3 is? If
you wrote this bug, you just cost the company more than you make in several
days.
Don't do it.
Getting to the point where you can ferret out the relevant issues takes practice
and experience. You won't be doing a great job overnight, but you'll get there.
Keep at it. It's worth it.
My title promised some help on turning a testing job into something bigger.
I'll level with you here. It doesn't happen often. Games companies don't
frequently move testers up the rungs, but it does happen. I work with several
level designers now who have done exactly that. How did it happen? They
had a good interface with the people who'd be fixing the bugs they found.
If I find that a tester is consistently writing great bugs, I know that guy's
name. But if a tester is consistently writing bad bugs, well... I know his
name too. If you want to be moved into the industry, you want to be the guy I
go to find to say, "Damn that was a nice catch!" Because if we start hurting
for level designers guess which testers are going to be the first to be given
the opportunity if that route is taken?
That's right. Be that guy. (Or gal.)
It really is about cost. Take the time to do it right and you save the company
money. Rush through it because you have a million things to check today, and
you may get a million bugs checked, but you were still a net loss that day.
-rbarry
Pixar. This is not a hit-or-miss organization. I will not name what is, in
my opinion, the worst of the Pixar films, but even if I did, it is still an
order of magnitude better than anything Disney Proper has done in the last half
century.
How does any organization manage to put out Faberge time after time after time
when its parent organization - or for that matter, its entire industry - is
plopping out Cadburys?
I bought Ratatouille on release day - yesterday. Having seen it twice in the
theater, I was happy to let the audio run while I hacked up game code. In the
evening, I watched it in earnest again, then let it run again in the background.
I've just done it again.
What is it about Pixar that 4 of the last 5 of their movies easily trump the
rest of the industry for the last decade?
Entertainment is a tough industry. It is very easy to get sick of your product.
Enthusiasm in a perpetual ebb tide for most (as Perpetual was a permanant ebb
tide of everything. Sorry - personal joke.)
It's been pointed out to me that Pixar is still rehashing tried-and-true themes.
Ratatouille is Cyrano de Bergerac, Bugs' Life is Seven Samurai, etc. But this
is no Roxanne or Magnificent Seven (though both were fantastic in their own
ways.) There's something about the presentation that makes the entire thing
new.
Did you _really_ feel for Cyrano after 20 years when Roxanne finally realized
the truth? What about for C.D. Blake? Not really? Remmy? If you're anything
like me, there _was_ a tad of a twinge there. I don't think that it's the
technology that is bringing Pixar rampaging into the number one slot of movie
production houses. The technology isn't puting the shine on an old number.
I've never worked anywhere where there was a true love for the product being
developed. Interest, yes. Intellectual stimulation, yes. Vehement hatred,
and my second Perpetual reference of the day, hell yeah.
I would love to love my product. It's been too long since I've done graphics,
or my resume would be at Pixar tomorrow because you can really sense the chasmic
depth of their embrace of their work. I'm already counting the days 'till
WallE.
-rbarry
So the press is running around at work at the moment - Nickelodeon wants to do
a piece on our game and its development.
This is not my first press zoo.
At Perpetual, there was a 'Self-Guided Tour' for the press who'd shown up to
the Games Development Conference. Essentially, areas of the office were
labeled as art, design, test, etc., and the guests were able to question any-
one in those areas as to how they did their work and what they did for the
project. The areas where the minor minions worked were roped off, making the
access to personnel a fairly selective thing, but there were a couple dozen
employees on display.
The entire engineering staff were off limits.
In previous similar events, the attention paid to engineers has been equally
dismissive. Nickelodeon has been no different, though I did get the attention
of a lighting man just long enough to let him make a wiring tangle out of my
office space and trip over my controllers. =]
There is an argument that engineering is a process that nobody understands, so
it's better to talk to designers, testers, audio, artists, animators.... because
what they do can be grokked by the average schmo. I'll not insult your
intelligence by pretending that this is an objective piece and get right to the
point: try doing design, test, audio, art, animation.... without the engineering
to back it up. Yet a department so critical to the process of producing a game
receives absolutely no public recognition for its efforts.
Another way to put it is that engineering is a process which nobody understands
because it's almost entirely evicted from eyeball time.
You want kids to stay in school? Keep up with their math? Think with
constructive self-criticism? Self-organize? Work well with others? Game
engineers should be your mascots.
Really - I wasn't going anywhere with this. It sounds a lot more like a rant
that it was intended. I'm mid-level here, so even if they were grilling geeks,
I'd be uninvolved.
So I gave an old Hammond to my local hospital as part of their annual charity
drive. The IRS denied the deduction, however. It seems they don't give you
a break for organ donation. -rbarry
Carpe Dig'em - Sieze the Sugar Smacks -rbarry
Reading through the Lesser Gnu Public License today gave me a bit of a giggle -
the doc refers to the "GNU/Linux operating system" as "the whole GNU operating
system['s] variant." It sure IS dark where Richard Stallman has his head at
the moment. In the whole GNU-vs-Linux thing, I'm about as uninvolved and
apathetic as one can be, yet even I have long since become convinced that
Stallman is off his rocker.
I can already hear the arguments of many a Debian user, carefully pressing
their own perception of truth in the matter, but the logic aside for the
moment, it was carefully worded by RMS himself as yet another (very low-
caliber) shot in his eternal tilt at the Linus windmill.
I actually liked the guy until I got stuck spending a few hours with him.
-rbarry
When you're making software, you test your code before you check it in. If
you don't, may the Archangel Gabriel laugh in your face. I gather his database
is more reliable than whateverthehell project you're currently thwarting. As
though I'd known it all along but had never given it any grey-matter CPU time,
it dawned upon me how often bugs make it into software because the underlying
systems change - not the feature itself.
For instance, you check in changes to a game level design, dropping the ceiling
by a dozen centimeters. You test it, it works. Sometime down the road, changes
to the camera are checked in, but they are not checked against the whole system,
only enough of it to be economical. There's enough testing to minimize possible
damage, in other words. If the new camera can't handle the new, lower ceiling
and ends up outside the room, well, that's software.
Software bugs are little islands of entropy in very large systems which live
in attempted violation of the second law of thermodynamics. Entropy is the
reward for entropy in a software system. The more you change - especially at
the lower levels, the more you will find yourself doing fixes... which brings
on more entropy.
Okay, so how to solve the problem? Obviously, minimize change.
It seems like an absurd argument. To get from an empty project to a complete
one, you have to implement features - you have to make changes. This is very
true, but you don't go out and rewrite everything from scratch, do you? I've
probably used printf more often than any other function, but I've NEVER
implemented it.
Get as much of your software out-of-the-box as you possibly can. If I hear one
more developer say that they can build X cheaper than buying it, I'm going to
have to hurt them. You are only going to use X once in your software - they
get to sell it many times. They get to amortize the cost across many customers,
which means that you get it cheaper than it would be to develop it.
But you don't need all those features? How much of it do you need? Ten
percent? Fine, can you really build ten percent of that product and get it
tested to the level that they did for the cost of buying it? You think so?
Are you keeping in mind that it takes more than 10% of the effort to develop
10% of the features?
Then how about this: Can you deliver it on day one of your project, in a state
that will not change time and again through the life of your development? No,
you can't. You will develop something that falls short of your design, in
more time, with more bugs, and those parts of your system - you know, the ones
that MAKE YOU MONEY - will suffer as a result of that entropy and your lack of
attention.
If you are in the games industry - get a third party engine. If you're in
data services, get a database system. Rolling a website? You're going to be
heavily reliant upon apache, perl, ruby, sql, etc. You wouldn't think of
writing your own C++ compiler for a single project, so why on earth would you
write your own physics, rendering, particle systems, animation, shaders, AI,
design tools, audio system, memory manager?
Yeah, you might want to do some of these things. But choose what your project
is supposed to be FIRST, then start making it. Only tinker with the foundation
when you find something totally unacceptable. Game design is the talent of
getting the most out of the resources you have available. Work within your
restrictions and play to your strengths and you're going to make the best game
you have the potential to produce. Waste your time writing an animation
system that makes you look the same as everybody else and you WILL fail
eventually.
-rbarry
They fed us at work today. Indian. Food Coma. Can't form.... nouns...
I was just contemplating the curry. Worland Wyoming (duh,) Port Townsend
Washington, and Logan, Utah had no Indian food. On my honeymoon, I (well, we)
ate at an Indian place in Victoria and a lifelong love affair began - with
curry.
Hey, I'm divorced. She's a good friend now, but I still see a lot more of the
chef at Little Delhi than I see of her.
But I still wonder how on earth the greatest cuisine in the universe managed to
be outdone by McDonalds, Pizza Hut, and KFC for the attention of the American
public.
Oh yeah. Right. _American_
PS. Yes, the best in the universe. If there's food on mu Arae, are you
prepared to bet that it's human-consumable? Well, less likely to kill you than
a Big Mac?
-rbarry
A lone ant returns from a long journey - an unsuccessful picnic-locating trek -
to find his entire colony dead, save the last gasping member of his ancestral
home.
"The humans! They lay out poison traps! We all ate from the cruel bounty
and.... and..." And he died.
Now, despite his regular expeditions to track down the picnics which had been
such a regular staple of his colony, an ant is not a creature which survives
well on his own. This particular ant was no exception, so he left in search of
companionship.
After many days of travel, he comes upon a pair of rats. "The Humans have
really gone out of their way this time," said the first. "I was getting sick
of eating garbage." He started to sniff at his meal.
The second rat nodded in agreement, "It was very nice of them to leave it here
for us, too. I'm getting too old for the walk out to the trash bins."
The ant, smelling the metaphorical rat, broke into the conversation. "DON'T
TOUCH THAT," he screamed, though his voice was all but inaudible to the rodents,
"IT'S POISON!!!"
The rats paused for a moment, then the second rat mumbled under his breath about
the size of an ant's brain, scooped a pebble from the cheese-shaped box, ate it.
And died.
The first rat was both shocked and impressed. "How did you know that the food
was tainted," he asked.
"I have a history with humans."
The rat asked the ant to return to his home with him, in the hopes of spreading
the word to the rest of his bucktoothed relatives about the dangers of poison
traps.
Just as the second rat had, the rest of the rats took no notice. Slowly, the
colony grew sick and many started to die. In increasing desperation, the first
rat and the ant tried everything to call attention to the cause; drama, musical
theater, tragedy, irony, sarchasm, but finally began to turn things around when
they discovered the ant's knack for comedy.
Soon, they were a huge hit - the rat playing the straight - er - man to the
comic ant. Working situations about the dangers of poison traps into their
routine slowly, but surely, turned the attitudes about the rats until the great
day of victory when every rat in the colony had shed their poison-induced
illnesses and sworn off the tantalizing boxes of rodent fast-food.
The moral of the story? When you're sick, never underestimate the importance of
a good De-Con Jest-Ant.
Epilogue:
Okay, Toni gets up before 6am on Thursdays ("I never could get the hang of
Thursdays") and drags me out of bed at about the same time. Between being in
the grips of the latest disease to make its rounds of parker's pre-school and
the sleep deprivation, this is what my brain does at 5:45 am.
-rbarry
Today is Halo 3 Aftermath Day. Well, for those of us who don't go to GameStop
at midnight on the release date, spend all night playing, and call in sick the
following day - it's Halo 3 Aftermath Day. A little tired, a little hung over
(Keith and I both opened the last beers of the evening. Doh.) But mostly in
the ranks of the survivors, I encubmer you with my first impressions.
My first, first impression is the price point. $60 is a number for an
unknown game on the shelf which forbids its purchase. It is also a number
which will become a factor in deciding whether (not when) to buy a current-gen
console. Keith and I have borrowed one, and will continue to do so.
When Halo 1 first came out, there was a great deal of complaint about the fact
that you spent much of your time going from one place to another - then the
rest of your time going back again through exactly the same spaces. For
Bungie (Halo's creators,) this works well. If you have to walk through a room
twice, you get twice the gameplay for the nearly the same production effort.
Further gains for Bungie were made by making large sections of the game out of
modular rooms, again providing more content, but making some sections of the
game feel repetitive.
Halo 2 shed some of the guilt of its predecessor. I have to admit that I spent
far, far fewer hours on 2 than Combat Evolved (Halo 1,) but my vague
recollection is that much less time was spent going through the same areas over
and over. To me, this seems like the natural way to set up a game. Let players
get their repeat experience from repeating the game. I have no idea how many
times I played CE, but after completing some sections once, I never did them
again - simply to avoid doing the same cloned rooms over and over.
In other words, the replay value of the game was diminished by the cut-and-paste
style of parts the level design.
Halo 3, to abuse the ring metaphor, hearkens its beginnings. In the first
few minutes of play, how many times do you see Ops, the Hangar, etc? Much of
the environment consists of a collection of generic objects strewn about to
provide cover for players and enemies, losing any sense of passing through the
environment. When two rooms look identical, the sense of progression through
the game suffers, even if they really are different places. This impression is
substantially reinforced when you end up going back to exactly the same place in
space for the nth time and have no idea how many more times you're going
to be forced to visit.
Consistent lighting, environment textures repeated ad nauseum, the lack of
unique landmarks, and the requirement that a player enter a room many times
from many angles are a modus operandi which inherently disorients the player.
Most of the time, the only way I knew I'd just walked through the right door
was because the game would helpfully inform me that it had just autosaved.
Don't get me wrong, I am enjoying the game. The CPU restrictions which plagued
Bungie in the first two installments, gone in the XBox360, have given them the
necessary resources to do much of the Artificial Intelligence work they were
unable to deliver on the original XBox. Enemies behave more dynamically,
though certainly still like dumb drones, but it still delivers a more enjoyable
interaction.
So while I am enjoying the game, I am disappointed by the apparent concentration
on the features the XBox360 could deliver while providing level design that
one might expect out of the days before 3D Hardware.
If you think this post was an over-extended rant, don't get me started on the
color-deficient gamer issues Halo 3 suffers.
-rbarry
It is amazingly cruel, somehow. I went into Eve-Online hibernation about 12
weeks ago to train up for a Chimera - the Eve equivalent of a small aircraft
carrier. The motivation was twofold; I was tired of the time it took to run
the high-level missions I was doing in a Battleship, and I desperately needed
to find a way to spend some of the cash I've been making in that game.
After about 6 weeks of training up my character, only days away from having
the required skills and already making bids on ships, I was confronted with the
toppling truth that capitol ships cannot be used in Level 4 missions.
Well, one option remained: a serious battleship. Like I said, I had cash to
burn and a need for a tank with some major firepower. So, (and this is where
I will revert into unashamed eve-speak - it's not necessary to understand it
all,) I did this:
Caldari Navy Raven (renamed to "Never More")
* 7x 'Malkuth' Cruise Missile Launcher
* Faction NOS
* Faction Shield Hardeners
* Faction Shield Booster
* T2 Ballistic Control
Short version: about 3 Billion ISK spent.
...which is where we come to the cruel bit: My training for the last module to
fit on this behemoth will finish at about the time I expect to get home on
Tuesday night - the date of release of Halo 3. I guess it's a good excuse to
put off the XBox360 purchase for a while and get some serious player advance
done in Eve.
-rbarry
A bit of an unusual move for me: I may make this entry sticky. I keep telling
people that such-and-such is in my top 5 games of all time - but I never do
manage to iron out what exactly that list is. This will be subject to change
and whim. Stuff may get bumped by current fad, but hey. The only constant in
the universe is change.
* Hitchhikers' Guide to the Galaxy (Infocom) - A permanant #1 in this list. ?
* Netrek (Open Source) - Nearly flunked me out of several colleg years.
* The Curse of Monkey Island (LucasArts) - What were they THINKING going 3D?
* Tetris - Original GameBoy (Nintendo?) -
* Addams Family Pinball (Midway) - Only pinball game ever to drain my wallet.
* Bubble Bobble (Taito) - Non-platformer side-scroller - simple, but addictive.
* Halo - XBox (Bungie) - FPS should NOT require an entire keyboard.
* Cyberball (Atari) - A 2-on-2 game cost $6 in 1989. Ouch.
* Battle Balls (Seibu Kaihatsu) - A sub-genre I've considered resurrecting.
* Super Sprint (Atari) - Uninterrupted high-score holder for 2 years.
* Pikmin (Nintendo) - Beautiful, polished, revolutionary, brilliant.
* Guitar Hero (Red Octane) - Special controllers continue to push the industry.
UPDATE (20100510)
* Braid (Number None) - 2D platformer plus time manipulation.
* Armadillo Run (Peter Stock) - Rube Goldberg meets Animal Care and Control.
-rbarry
Can I patent the idea of painting or otherwise displaying - company logos,
building names, names of complexes, street names, and other important bits of
geographical information - flat? I'm sick of looking at google maps and
trying to work out which building is Toys R Us, etc. Especially with how
unpredictable the address location of any mapping software is.
So. If ya wanna do it. Pay me.
-rbarry
Belay that colon-nerp wash what passes fer a smiley, lads. Today we be
lookin' fer somethin' with a bit more o' the sea in it's blood!
:{ ARGH! I be feeling a bit seasick!
:{>~ ARGH! I seem to have chucked me grog into me black beard!
,{ ARGH! I told ye kids ye'd put someone's eye out with that BB gun!
;) ARGH! Me optometrist done supplied me with a lovely eye patch!
;)? ARGH! I got a new hook to go with me eye patch!
,[! ARGH! Whoever stole me eye patch'll taste the steel of me cutlass!
The be yer only warning! Bring hither the goofyness or taste cold
exclamation point.
-rbarry
Ahoy mateys! It be Talk Like a Pirate Day!!!
E'n the weather be knowin' an takin' part o' the festivities! Po'rf'l trade
winds be whipp'n' the West'rn port o' San Francisco som'n fierce.
To top off the mood o' the day, I had meself a wee parlay wit' me hand
specialist, Dr. Gordon Brody - a fair soul if ever there be. The ship's
surgeon informs me I'll likely be needin' the touch of his cutlass. Witless
as I was this morning, I didn't think to ask if he could install a hook!
ARRRR!
-rbarry
What's the longest you've ever been on hold? That's what having a napping
toddler is like. You can't go anywhere and you have no idea how long the
stretch to which you've committed yourself shall be.
Today was major. Four hours. Finally iTuned Van Morrison's Moondance. I've
not heard much of anything of that band, but it's a good blues tune...
-rbarry
The camera doesn't lie. That's Photoshop's job. -rbarry
I don't think this qualifies as a Geek Challenge(TM), due to the likelyhood
of there actually being a solution, so for an un-scored un-trademarked un-
capitalized geek challenge...
You've just replicated a line in vi a bunch of times to look like this:
foo[0] = ...;
foo[0] = ...;
foo[0] = ...;
foo[0] = ...;
What is the fewest number of required kestrokes to turn the zeroes into a
sequence? Assume any number of lines. After all, I occasionally end up doing
10-20 lines of data entry like this.
If you're interested in the last (albeit, also weak) Geek Challenge, it's
a wee bit down
-rbarry
So far we've had politics, random tech babbling, jokes, more politics, a brief
tangle with financial investment strategies - which I hope to pick up again
soon - and a myriad of other subjects in here. In the interest of being
completely fair my constituency (a total of two semi-regular readers of whom
I'm aware,) I tend to avoid deep technical issues.
To be Completely Fair, however, now I chime in on an issue that is sweeping the
Linux world as I type: the Completely Fair Scheduler and its ancestry. Ingo
Molinar has fallen under the gunsights of a number of scheduler authors, who
shall remain nameless, for his alleged hijacking of their ideas and their code.
Several of these lamenters, though one in particular, have made the lambasting
of Molinar something of a crusade.
I find it greatly entertaining that this debate finds any fertile ground
whatsoever in the Linux world. Let's assume for the moment that Molinar was
unashamedly plagiaristic in his work - that a huge percentage of the CFS code
came from other digits than his own. If that were the case, I would still
congratulate him on his continuing in the footsteps of the Linux pioneers.
I'll draw back from the word plagiarism here, but to say that Linus Torvalds
drew heavily upon previous open source projects, like Minux and Gnu, in the
creation of Linux.... would be a whopping understatement. This is only the
first of many such adoptions in Linux, and Molinar's won't be the last.
-rbarry
I just realized that I've not done a geek challenge in AGES. I'll have my
people get right on it.
-rbarry
I had intended to publish a prophetic piece about Google, though my usual
vigor has failed to condense as it did yesterday. Maybe that's the point of
prophecy - the lassitude helps you adopt that flat, gravelly voice so common to
seers. For reference, see Harry Potter 5, Hitchhikers' 5, and Imbuggly Ferret
and the Thirsty Widleshauz.
Anyway, brilliant bit about the coming micro-humbling of Google deleted. You
didn't want to read it any more than I wanted to write it...
-rbarry
Reading through the logs for this page, I found someone who came here
searching for:
What does "The only winner of The War of 1812 was Tchaikovsky" mean?
-rbarry
Someone turned my rant up to 11 this morning...
It seems simple to me. Let everyone who supports the war, support the war.
I'll write off my contribution so far as a loss and I'll never speak against
any of the mind-numbing drivel coming out of Washington ever again. As long
as I don't have to continue to pay for it. 600 Billion spent in Iraq. That
cash could have been much better spent at home, and Halliburton could still
have escaped the country with their pile of it.
-rbarry
The NSF (The National Science Foundation) has been seduced by the Dark Side.
The Dark Side has many facets - and stupidity is one of them.
I'm going to skip right over the privacy issues here. I suspect that as a
privately-funded organization, they are almost as immune to such ethical
considerations as our own government. Too, I'll ignore how tired I am of
seeing a new web crawler come into existence every time I think I finally have
a handle on the level of traffic I'm paying for out of foodini.org. The NSF
is going to add one more, I gather. Into the bin also, the idea that the cost
incurred here could easily serve a more noble cause.... like actual science.
And straight on to the Dark Side of stupidity. Bin Laden. Alive. Yes?
NOBODY IS AS STUPID AS THE VAST MAJORITY OF AMERICANS SEEM TO BELIEVE
TERRORISTS TO BE!!! The TSA (Transportation Security Administration) is as
guilty of this as anyone, so they'll serve as my example. The TSA actually
believes that by making you carry all your liquids in up to a quart of 3.5
ounce containers, that they will prevent someone determined to carry a liquid
explosive from doing so.
For some reason TSA actually believe that of all the people out there
who have it in for the US, not one of them will be bright enough to realize
that it is possible to divide up their quart of product into a number of 3.5
ounce containers. These are the people who are wasting your money pretending
to protect you. Anyone whom the TSA assumes to be beneath their level,
intellectually, should consider it the gravest of insults.
"Get to the point," you say? Hey, I have to keep my readership down somehow,
but I shall appease you nonetheless: Please. Assume that the people you're
after are bright. Everyone. Starting right now.
Let this decree go forth: That no one shall be allowed to say, or to spend
money saying, that they are fighting terrorism unless they have assumed their
quarry to be more intelligent than the average teenager. Many teens I know are
capable of:
1) Setting up a computer and a net connection.
2) Setting up and running a website.
3) Encrypting all traffic to and from that website.
4) Encrypting all storage on that website.
5) Generating good passwords.
6) Hacking a WEP key. (This means that even if you have an encrypted wireless
access point at your home, someone else can still use it. It's not hard.)
7) Using 1-6 to make the NSFs new expenditure no more useful than the 600
BILLION that the US has already sunk/committed to the war in Iraq.
PS - 600 Billion dollars is $2,000 per man, woman, and child in the US. If
George had asked you to write the check for yourself and your family, would
you have done it?
-rbarry
Well, as the sticky header says, I've created a version of the 'blog' that
only gives the first few articles. I looked at the usage stats for my site
in the last 30 days and it came to nearly 30 gigs, so I'm trynig to cut back.
I learned my lesson about a year ago when a video I had in here was linked by
some sort of Korean slashdotting organization. The bill that month was
respectable, to say the least.
-rbarry
If there's one thing that I've learned from reading up on crypto, it's that
Alice and Bob seriously need to be getting more face time.
-rbarry
I think I was the victim of the most devious campaign call - ever - a couple
days ago.
It began while I was sitting at my desk, trying to grapple with software which
would be best left ungrappled. My cellphone - my Federal
Do-Not-Call-Registered cellphone - rings. The caller ID reads 999-999-999.
I have no idea why I answer these things. I guess I've had enough experience
with legitimate businesses and organizations, who have blocked or garbled caller
IDs for valid privacy reasons, to be willing to sacrifice 15 seconds of my life
in these situations.
Me: "Hello, this is Ron." When the ID is blocked, it's not a personal call,
so I answer in a businesslike fashion. If you ever called me while I was in
college, you'll have to take it on faith that I am actually capable of picking
up the phone in this manner.
We all recognize the grey noise, characteristic of a phone call that begins
with being connected to a sensor rather than a person, but for some reason
we soldier on: "Hello, this is Ron."
The woman that hits the other end of the line comes on, sounding like a reject
from the Baywatch cast. This woman has absolutely no history with the Blarney
Stone.
"Yeah, hi." Long pause.
"Yes?"
"Who is this?"
"Ron Barry. To whom am I speaking?"
"Is Ron home?"
"This IS Ron and this is my cell phone."
"Yeah." Pause. "I'm, um, calling for Gavin Newsom. You'll be voting for Mr.
Newsom for Mayor, right?"
I suspect that there are a number of reactions when the caller gets to this
point; guarded affirmation, disgruntled disagreement, or even a "Not now that
I've received THIS call." I hope the most common is the one I chose, which
was to simply hang up.
Immediately after doing so, I realized how perfectly this call had been
engineered - from the moment the phone rang - to annoy the living shit out of
the recipient. Caller ID that screams schemes, the our-time-is-more-valuable-
than-yours arrogance of providing to the telephone equivalent of a dead line,
the total moron on the other end of the line who 1) I don't believe was acting
as far as the sub-par IQ is concerned, and 2) was as forcing repetition of
everything in a perfect way to grate on my nerves.
I don't have much of an opinion for or against Newsom. My politics on this
are too complicated to get into here, so you'll have to trust that I'm as
personally invested in the SF Mayoral campaign as most New Yorkers when I say
that there is a far greater chance, in my mind, that this call came from one of
Newsom's opponents rather than from Newsom's campaign itself.
I say a greater chance and leave it at that. Certainly, the remise position
exists, but it would generate so few votes as to render the effort worthless.
-rbarry
So I'm sitting at the computer, trying to get my brain around the disaster that
Hewlett Packard has made out of it, getting along to a bit before midnight
when Parker comes toddling in.
He asks if he can sleep in my room and I tell him that Daddy isn't sleeping
yet, but that I'd be happy to cuddle him for as long as he likes. He comes
over for a hug and a snuggle, very, very drowsy. A couple completely
incoherent questions come out, then he gets up and walks to the door of my
room. He turns around and I ask him if I can do anything and, still confused
and trying to cover for his incoherence he rubs an eye, smiles, and says, "I'm
just being silly, Daddy."
Then he walks to his room, pulls the door most of the way shut, crawls into his
tent, and goes back to sleep.
-rbarry
The Jack Thompson Dictionary:
Sociopath: One who is crazy because he plays games.
Psychopath: One who plays games because he is crazy.
-rbarry
This may be the world's most infrequently read blog, but I feel that it is
time for me to take the soapbox on an issue which has literally been bothering
me for my entire life. It's not women, though I'm sure when I get around to
writing that entry, my readership will quintuple overnight. I'd like to be
able to say that the problem is one of ignorance, because ignorance is
generally forgivable in that education provides both the cure and gives one the
awareness of one's past transgressions. The problem is simple apathy.
We all suffer from apathy at some level. Hell, you could hardly live in this
world if you didn't have a filter between your physical senses and your
emotional responses. It's what keeps most Americans from going totally insane
at the fact that they now live in a military state.
But. Popping the political digression off the stack for later abuse, I will
now unveil the heart of the matter.
Color deficiency.
There goes my readership. Half of my audience, accustomed to the
get-it-over-in-three-paragraphs world that our information-flooded senses
desire, just checked out - operating, no doubt, on the happy deadweight of
apathy that surrounds this particular issue.
Fifteen percent of men are color deficient. No big deal, right? They still
live normal lives, participate in sports, yadda yadda yadda. Bull. It is
exactly the attitude that being color deficient isn't a disability that
makes it a disability.
I work in the entertainment industry, where color is the currency of the realm.
You would think that in such an educated, informed environment, it would
be easy to stand up and announce that screwing up the color in a game loses you
nearly 15% of your audience. I've tried it. If there's one thing you can be
sure about, it's that professional artists are nearly 100% normal-visioned.
Too too many in my professional history have placed their personal aesthetic
above such petty notions as producing an accessible product.
So we get games like Homeland - which turned out to be a $50 bookend for me.
We get an XBox controller with an A and B button, which are differentiated on
screen by their red and green colors. Don't get me started on the number of
items (including the Game Boy Advance) that warn you that the battery is dying
by turning a bright green light into a bright red light.
I've been 'consoled' on this issue by people who tell me that at least it's not
life-changing. I was passed over for a full-ride scholarship on the grounds
that I could not pass a flight physical. When Utah changed its street lights
to a color indistinguishable from a red traffic light, I had to retrain my
driving habits because, except for my Wife's quick thinking, we both would have
been killed one night when I nearly ran a red light at 60MPH simply because I
didn't even know that the stop light was there.
So here it is. I'm happy to quit screaming about this issue. I'd be delighted.
The trouble is, it is up to you to make this work. I don't care what you do
for a living. Whether you design XBox controllers (in which case, you're going
to hell anyway,) do art for simulators, or write parking tickets... all I ask
is that you take this seriously. It's very little effort to make a lot of lives
a whole lot easier.
If I've personally referred you to this entry, I promise that I'm not trying to
give you a hint. It's just good to have the occasional post actually get read.
=]
Oh, and - that photoshop plugin doesn't actually show you what I see.
-rbarry
"Naturally, I disagreed -- partially because I am a naturally disagreeable
person. Any idiot can make friends -- but can you make some really serious
enemies?" Howard Anderson, Network World, 05/10/07
Okay, I had thought that this was so obvious that everyone would have caught
on, but a conversation I overheard recently makes it pretty clear that people
actually need things like this explained to them.
Allstate Auto Insurance has been running a pair of commercials recently to
advertise two features of their new insurance plans: accident forgiveness and
rebates for accident-free driving. You get in an accident, and it doesn't
affect your rates. Figure it out - what the hell is the difference between
having your rates go up and not getting the rebate? Notice that they don't
advertise the two features in the same commercial? I guess they (rightfully,
it seems) expected most people to miss this if they didn't have it handed to
them within their 30-second attention span window.
*sigh*
-rbarry
Okay, so I ask our receptionist why so many clean-cut gentlemen with suits,
ties, and carry-on rollerbags have been piling into the office this morning.
They're here from MTV. MTV reps. In suits. Why is there a sudden stabbing
pain just behind my eyes?
-rbarry
Wells Fargo is a source of a great deal of useless mail for me. There are a
couple of mutual funds that I really like, each purchase of which generates
a new mailing of the company's prospectus to me. In addition, I get a flood
of fund updates, statements, offers, and now, notifications of a new privacy
policy.
Now, WF isn't so bright about how they generate this torrent. Any notice that
says that they have changed how they go about something results in my receipt
of at least 3 copies of that notice - each individually mailed.
Now they seem to have started addressing my mail thusly:
Wells Fargo Bank <Account Type>
Ronald S Barry
...where <Account Type> describes the type of account that generated that
instance of snail mail spam. I noticed this just this afternoon - on the three
copies of their new privacy policy which arrived today. Anyone who glanced
at my mail would know who I bank with, how many accounts I have, and the types
of those accounts. Very private.
As I'm writing this, my optimisim is slowly gaining some spark of life. If
Montana and Virginia go as they are now, the Republicans will have lost both
congressional majorities. I reserve the right to two avenues of consternation:
that the Governator won. Professional wrestlers and rappers shouldn't act, and
neither should bodybuilders act nor actors become politicians. Didn't this
country learn anything from the Regan years?
Second Avenue? I'm waiting to see if Diebold's card gets played to preserve
a Republican dominance when it _really_ counts: 2008.
America, you're not as dumb as I've been taking you for recently. I may have
to revise some of my investment strategies.
It seems fairly clear to me that computers are not the unemotional, relentless
minions to our will that we believe them to be. That isn't to say that they
experience fear - quite the opposite. They have some emotion that is totally
opposite to fear that compels them to continue to piss me off whenever I need
to threaten them with physical violence.
-rbarry
Considering the recent issues in Iraq with US Army enlisted personell -
everything from mistreatment of P.O.W.s to rape and murder of civilians - I
have certain misgivings about the new minimum recruitment standards being
applied:
"We're looking for high school graduates with no more than one felony on their
record."
Maybe instead of slipping the criminal record, they could have started taking
dropouts? I mean, they ARE looking for people dumb enough to voluntarily jump
into the infantry. It seems that taking dropouts before the social rejects
would be preferable.
-rbarry
I've been playing a bit more Guitar Hero recently, and I've been watching
other peoples' attempts at some tunes on youtube.com. This has led me to
one of those high-tech/low-tech observations. With all the crap we have
lying around these days, nobody seems to own (or at least, know how to hook
up) a VCR!!! People point a video camera at their screen and use it to
record their attempts - resulting in a crappy image. If they only used a
VCR, they could capture the video directly and have a clean video.
*sigh*
-rbarry
Hey, if I could stick my tongue up my own nostril, I'd probably do it all the
time. - Ken Johnson
Hear the one about the rooster and the steer? It's a real cock and bull story.
-rbarry
I've been working on the same annoying problem at work for about 5 weeks. It's
driving me insane, not because I can't solve the problem, but because the
system simply won't let me. Every avenue of exploration has exposed a major
limitation of the system (at least, to me) and left me backpeddling. Upon
venting this to an officemate, the conversation went something like this:
Abdul: So how are you going to approach the problem now?
Ron: Heavy drinking.
Abdul: Heavy drinking?
Ron: Yes.
Abdul: That's not going to solve the problem.
Ron: Maybe not for the rest of you!
U.S. District Judge Anna Diggs Taylor today declared the Terrorist Surveilance
Program (TSP) "[a violation of] the separation of powers doctrine, the
Administrative Procedures Act, the First and Fourth amendments to the United
States Constitution, the FISA and Title III."
She went on to say that "the president of the United States ... has
undisputedly violated the Fourth [amendment] in failing to procure judicial
orders."
The Justice Department has announced that they will appeal the decision and
the order to permanant enjoin from directly or indirectly utilizing the TSP in
any way.
The Justice Department has issued the following statement: "In the ongoing
conflict with al Qaeda and its allies, the president has the primary duty under
the Constitution to protect the American People. The Constitution gives the
president the full authority necessary to carry out that solemn dety, and we
believe the program is lawful and protects civil liberties."
Ignoring the fact for the moment that I don't believe at all that anyone at
the Justice Department both understands what civil liberties are _and_ believes
that the TSP doesn't violate them, I'll get right to the point of hypocracy:
They are standing on the power granted to the president BY THE CONSTITUTION,
the same document that Bush referred to as "just a goddamn piece of paper."
That same document EXPLICITLY grants us the freedom from the actions taken by
the executive branch. There are no clauses which grant the president the
exceptions he is claiming. The prioriy of freedom and rights are therefore
left no grey area. The TSP is EXACTLY the kind of program the signers of the
Constitution had in mind when they BANNED them.
The JUSTICE DEPARTMENT doesn't even understand this? Did any of these guys go
to law school, or are they all Bush's appointed cronies?
-rbarry
You may have gephydrophobia, but we'll cross that bridge when we come to it.
-rbarry
P.S. The treatment center will be opening up on Treasure Island next week.
This morning, as Parker ate a frozen orange juice popsicle, I jokingly told him
to "eat his popscicles." "No daddy," he exclaimed, "ONE popscicle!" -rbarry
General John Abizaid, commander of U.S. Central Command, told the Senate Armed
Services Committee today that the top priority in the Iraq war is to secure the
capital [of Iraq].
WHAT?!?! How ******* long do you need? It's been YEARS! What have you been
doing with the HUNDRED BILLION dollars we handed you to do this? Why are we
tolerating this level of incompetence in our leadership?
Since 9/11, the state of Texas alone has seen more traffic fatalities as a
result of drunk driving than we lost in that entire attack, and our government
spending on DUI prevention increases in levels of roughly .1% (yes that's one
one-THOUSANDTH) what we have put into the war. (See the "Traffic Safety Law
Enforcement Campaign Act.")
Think about it. Your odds as a US citizen of dying in the last 10 years of
a drunk-driving accident (at over 16,000/year) are about 1 in 2000. The
figure for being a victim of terrorism in the same time period is 1 in 80,000.
Can anyone at all give me any reasonable explanation why this sham is tolerated?
-rbarry
It's a new experience for me - working on a Massive Multiplayer Online
Role-Playing Game (MMORPG). One of the oddest bits never quite ocurred
to me before as an effect of this kind of work.
You see, our game world is HUGE. Mondo. Massive (hence, the name of the
genre.) It's Damn Big. Most of us have developed our haunting habits:
I began working here and was immediately shown how to find [area name
deleted] and where the useful bits of content were, and ever since, I've
stayed within a kilometer or so of that location.
Now, when you walk around downtown, you see buildings that weren't there
a year ago. Rarely, a building that was there a month ago has gone, but
you don't generally see, say, an entire population center drop into place
literally overnight. Over the course of the weekend, one of my little
country hangouts where I liked to test [stuff that I'm working on] turned
into a metropolis. When I left, trees and hills. When I returned, I was
standing in a fountain of a town square. It's like a GW Bush dream come
true.
-rbarry
I once had a graduate professor who claimed that you could hand half the
professors in the world their own dissertation, written using a different
notation, and they wouldn't recognize the work - though of course, they'd
think it was BRILLIANT!
So in the vein of 'Notation is Everything,' in honor of Doctor Egbert:
Name a system involving three dimensions of time-related variables, which
we note with a common, recognizable-to-the-everyday-person method.
In other words - it's a method of scoring out three different functions
of time.
I was once at a very good party in Salt Lake. Didn't know anyone there
except Eric Jenson, who was off smoking with some friends. Anyway, I
seemed to be hitting it off rather well with a very nice, young, short,
attractive lady. Having a great conversation.
Now, you have to imagine the flow of thoughts that went through my brain
as this happened. As I said, I was doing rather well with a woman for the
first time in... ?, and beginning to think that I had been in the wrong
places for quite some time and that I should spend more time at good
parties. When all of the sudden, another nice young lady walks by.
Very attractive, equally short, (I'm big on short, so to speak,) very
sexy, and I suddenly wonder if the girl I was talking to (who couldn't
have missed the sudden shift in my gaze and my sudden loss of cool) was
about to write me off as a bad job.
But we both laughed, commented on how nice the second woman's nipple rings
were, that the party seemed to be taking a fundamental turn, and continued
our conversation.
-rbarry
Looking through my logs today, I found that someone had come to this page
from a URL which was FIFTEEN HUNDERED characters long. They'd practically
typed in the entire description of how to cheat at some game or another
into a google search.... and wound up here. Weird.
Hey. I didn't promise that it would be a barrel full of laughs EVERY day
when you show up to read this thing.
-rbarry
I'm seeing a number of attempts in my logs by people who are trying to get
at the passwords on this system by requesting ../../../../../etc/password,
or whatever number of back-directories they feel are necessary.
It's pretty clear what's going on - they want a list of valid usernames at
this address so they can start spamming those users.
So this week's geek challenge, (you knew it was coming,) is to come up
with something truly evil to send back to these people when they attempt
to connect. I'm thinking that a valid-looking etc/passwd would be a good
start, but the winner will be the one who comes up with the ultimate in
justice for people who engage in these activities.
It just dawned on me that every one of these attempts is a violation of
the Computer Fraud and Abuse Act (and many other statutes, I'm sure.)
There has to be some fun to be had there...
-rbarry
Within a physical 6-inch radius I have:
1) my cell phone
2) my foodini.org email account open
3) my perpetual.com email open
4) the perpetual IRC channel
5) my ICQ account.
If I ever hear anyone complain that I'm difficult to get ahold of again, I'm
going to SHOW them how easy it is to get ahold of someone! =]
-rbarry
Deja Voodoo: I think I've felt this stabbing pain before.
-rbarry
A friend was making the happiest of announcements today, and postscripted
with a petition for baby names and contributions to the diaper fund.
I told him that I can provide a couple hundred diapers, and that if he names
the boy "Ronald Scott," they'll even be clean.
-rbarry
The only trouble with the World Cup.... is that it's Soccer. -Steve Clinard
I've been looking forward to the release of Guitar Hero II with...
AGH! I had to abandon in mid-post and now I can't remember what I
was going to say!
I don't envy the designers and engineers of said game their job of
creating a completely new genre: the cooperative multiplayer rythm
game. Damn, I can't wait.
Red Octane: Pink Floyd is a gold mine. Some B.B. King, maybe. Hell,
sneak in some Bela Fleck and Victor Wooten - you are doing bass, right?
Some of the Fleck/Wooten projects would be fun. It may not be Banjo
Hero, but have you _heard_ UFO Tofu or Live Art/Amazing Grace?
While I'm at it, George Thorogood, Move it on Over has a good lead/
rythm/bass tune. You ARE planning on supporting a multitap, aren't
you?
</psychotic rambling>
-rbarry
As the bugs pile up in my inbox (4 new ones today) I considered filing a
high-priority bug to everyone else in the engineering and design staff
which read "assign no bugs to Ron for a week." But then I realized that
they'd all get marked as duplicates of each other and the last one would
be assigned back to me.
-rbarry
Build at your own risk.
1. Large garbage can.
2. Insert large airbag assembly. Trail ignition wires out small hole in can.
3. Fill can with pingpong balls.
4. Cover can with tissue wrapping paper and tape along edge.
5. Aim.
6. Add 12 volts.
7. Despite how hilarious the whole thing was, realize how stupid you were
to fire it off near anyone.
-rbarry.
Having kids is somewhat like taking a stroll through a college biology
department. And licking all the petrie dishes.
I've been enjoying all the benefits, the last few days, of life at 104
degrees.
-rbarry
Meditation == Contemplating one's navel.
Given extended periods of time to contemplate one's navel, one is only going
to discover one thing: Belly-button lint.
If the purpose of meditation is enlightenment and belly-button
contemplation is going to turn up a near infinite supply of lint, then
lint must be enlightenment.
I'm on my way to the laundromat. I'm going to make a killing in the
second-hand enlightenment (soon to be trademarked "Enlintenment") market.
Meditate with me upon this.
-rbarry
update: Brian Carver tells me his Enlintenment(tm) is always blue.
It has been described as the holy grail of computer science: software which
is capable of recognizing and 'understanding' natural language.
I must disagree. Software capable of explaining to me what the hell I signed
when I bought my house would be a good start, but I'm feeling like a real
software mountain to climb:
This week's Geek Challenge is simple:
1) To earn basic points, create a piece of software that is able to explain
in plain terms, it's own End User Licensing Agreement (EULA).
2) To earn advanced points, create a piece of software that is capable of
explaining in plain terms, anyMicrosoftEULA.
3) To earn full points, create a piece of software that can explain in plain
terms, why the hell software still comes with a EULA, considering that they
never seem to hold up in court.
-rbarry
Advertising bugs the crap out of me. So much so that I tend to avoid
products whose advertising annoys me in any way - and trust me, it's quite
easy to annoy me in 30 seconds.
But last night, as I was 25 seconds into yet another annoyance, it suddenly
dawned upon me that the beer commercial I was suffering through (for a nasty
light beer, I'm sure) had planted in my mind the desire, the urge, nay, had
branded upon my very soul: the need for a beer.
As I walked to the fridge, it occurred to me that the last beer in the fridge
was no more. It had ended its long life on this planet as many beers do.
Consumed. Hopelessly, I rummaged through the fridge and spotted a minor
miracle. A Guinness, unresigned to its eventual fate, was cowering shamefully
behind a pickle jar. It's probably the most surprising thing that has
occurred to me in the last month.
I put Mr. Guinness out of his misery. The world was a doubly-happier place.
-rbarry
I've been thinking of arranging the Mario Brothers (or Mario Bros., take your
pick) theme music for saxophone and violin because 1) no such duet music seems
to exist anywhere - probably for a very good reason and 2) because it seems
that through the ages, my best friends have been violin players and the only
time I've ever played with any of them was at commencement ceremonies - from
a far distant part of the orchestra.
Anyway, add it to the stack of things I really need to get to sometime in my
life, though it's been given a higher priority than most because I have struck
(no pun intended) upon Awesome Band Name Number Two (where ABNNO was Sculpin
Oppressor). "Sax and Violins."
-rbarry
My office is a bit entertaining to reach. It's on the fifth floor. The
elevators are risky. At best. The stairs are a loop of about 20-30
meters per floor. So:
Mr. Kamen, you may ask, when you invented the Segway Personal
Transporter, did you in fact consider the issue of how one
gets to the fifth floor of 149 New Montgomery Street?
No?
Well, between the elevators that _might_ get you _close_ to
the floor you selected (assuming that you are out of the
elevator in the same hour in which you entered) and the stairs
which are a combination of stairwell and marathon, Mr. Kamen
seems to have left us denizens of 149 in the lurch.
Until now. Dean Kamen. I salute you. Somebody please leave
the window near my office open 24/7:
Man Slinger
Thank you,
-rbarry
"If there's one thing I've learned from Resident Evil, it's that you should
never enter a zombie-infested area without a lighter. I'm not going into
the SBC building without a shotgun and a lighter." - Yu Ping Hu
What can I say about Flagship Studios? I guess it's this: If you are facing
the prospect of taking an old employer to court, you have to be able to pay
for it. In order to pay for it, you have to have a job. Having a job means
being at your desk and not tying up all your time in court. So despite having
a lawyer ready to go to court ON CONTINGENCY over the rather questionable
behavior of this company, I had to drop it and move on.
But it warms my heart to see reviewers dropping them firmly on the top 10
bad titles at netjak.com:
#8: Hellgate: London, PC
Nothing says "We have no original ideas" more than leaving your old company
to form a new company, and then making the exact same game you made back at
your old company. Ladies and gentlemen, I present Flagship Studios!
This game is just about as similar to Diablo 2 as you can get without being
sued. Granted, it's fully 3D now, but you still fight demons from Hell, and
you still do the same damn thing over, and over, and over again. Randomly
generated dungeons, millions of mouse clicks, and 5 points to allocate every
time you level. Fantastic.
"I wish I wasn't [so rich]. There is nothing good that comes out of that."
- Bill Gates
World's richest man he may be, but he's never going to be in the running for
the world's brightest. It would seem that he could very easily make himself
not-so-rich AND do a lot of good at the same time. And I'd like to help.
Bill, if your sub-zero IQ is keeping you from being able to figure this out,
please feel free to contact me any time, day or night. I can grant you this
wish by helping you help some very worthy causes. (I hate Richard Stallman, so
the Free Software Foundation will not be among them.)
May I propose:
$10 Billion to form an Overexploited Software Engineers' Union.
I'll have to think about this one. You personally gave the limit to the Bush
campaign. Maybe $10 Million per war veteran to pay for their physical and
psychological bills in the decades to come?
This is a good one. I reserve the right to edit this one well past the 1 week
limit.
-rbarry
Note to self:
Need to document Parker/Bus thing and the creditcard door lock....
%20060428
It seems that somebody out there isn't so much of a fan of the
default courier font that most browsers use for preformatted text.
I've been getting the occasional complaint for quite some time about
it, but it seems like such a violation to take a blog which started
as a simple plan.txt file on a VAX (yes, an actual Digital Electronics
VAX 11/780) and turn it into something so modern.
At one point, I was at the bid sale at USU and they had that vax on
sale for $25. Of course, I would have had to unplug my stove to feed
it 220 volts, but I could _still_ have my plan on an 11/780... and
40 2800baud modems and a wholegigabyte of disk space!
Anyway, maybe it's that time. I'm going to have to think about it.
I am using up about 3-5% of my allowable bandwidth on my website
just serving out this one file.... Break it up a bit and switch to
something a little more modern. Maybe even allow (*gasp!*) comments.
Kicking and screaming.... Kicking and screaming....
-rbarry
UPDATE: 20080319
This post used to be in the standard browser font. For reasons of my
current formatting preferences, I've removed the browser's permission to do
as it likes with the thing - it breaks the layout of the entire page.
"Microsoft is now talking about the digital nervous system... I guess I would
be nervous if my system was built on their technology, too." - Scott McNealy
HOW TO DEFEAT THE ENCRYPTION ON ANY AUDIO FORMAT AT ALL
(And Why I Found It To Be a Good Idea)
-------------------------------------------------------
You buy music? Me too. Trouble is, the people who publish it are pulling
in far more cash from it than the artists who actually created it... and
they're spending that money doing something very stupid: trying to keep
you from copying it.
Let me be clear on this: I'm not advocating your 'right' to copy music,
only asserting that they (RIAA, etc.) are wasting cash that should be going
to artists doing something completely, patheticly, impossibly pointless.
Way back in the day when Napster was big, I ran out to buy the latest album
from my favorite band the very day it released. I had my own system which
allowed me to listen to my CDs at home, at my office, or at school, just
by MP3-ing them all and dropping them on a network only I could access. I
had assumed that I was going to be doing the same thing with the new CDs
so I could listen to them while slogging away on a programming project
later that day.
It turned out that the CDs (multi-CD album) had all sorts of nasty crap on
them to keep you from doing exactly what I was doing. The publisher was
assuming that I was ripping them to distribute them. I wasn't, but the
fact that they made an operation that, regardless of what lobbists were/are
bought to change the legality of the issue, was perfectly ethical - pissed
me off to no end.
When I arrived home that evening, I went to stage two. This is the bit for
which you are probably reading this article: I hooked up the digital output
on a CD player to the input on a computer - and simply recorded the audio
in real time, compressed them with my favorite codec...
...and then had an idea. Essentially, there was a nice solution here which
would get you around any copy protection scheme. Even if I were forced to
use the analog output from the stereo, I could still get a perfectly
acceptable result... but the publisher of the album in question had assumed
that I was up to no good, so I humored them. I dropped the whole thing on
Napster and called it a day.
My point, dear friends? If you're keeping up with the news, you are either
infuriated by how much power these people wield over our lawmakers, or
you're completely brain dead. Don't vote for the politicians they buy
(Senators Feinstein (D-CA) and Graham (R-SC), for example), and stick to
the radio. If they have so much cash that they can waste it on their
current activities, they don't need any more of yours. I'm certainly
listening to a LOT more public radio these days.
By the way, HDTV is similarly signal-interrupt vulnerable, but that's a
story for a different day.
-rbarry
If you feel the need to identify and catalog all of your obsessive behaviors,
do you have Meta-Obsessive Compulsive Syndrome? How would it be diagnosed
that I even think about these things?
-rbarry
Robert Downey Junior will be starring in a modernized adaptation of Moby
Dick. Downey, of course, will be playing the lead character, Captain Rehab.
-rbarry
Sun Microsystems, we stand in awe. Your Schwartz in definately bigger than
ours. But do you know how to use it? (Mel Brooks jokes, commence!)
Walking to the drug store, I noticed a guy with a small, grey bird sitting on
a bench by the sidewalk. On my way back, the pair had been replaced by an
extremely amorous couple. I elbowed Marilyn and grinned, "Cockatiel, Cop a
Feel."
-rbarry
Alien Robot Fleet. Some Assembly Required. (They come in pieces.) -rbarry
20100407 UPDATE:
I should have said "Lego alien robot fleets. They come in pieces."
"I'm the decider, and I decide what's best." - G.W. Bush.
Note the distinction between, "I decide what I think is best," and "I decide
what's best." Worst of all, I think he actually believes it.
Couple great quotes from the radio this afternoon:
"Keep the Devil interested, but waiting."
"No ounce of prevention can kill you like the cure."
...both from "Dave's True Story" (davestruestory.com)
I was just reading a blurb in the paper about Cheetah the Chimp - star of all
the Tarzan movies of the 30s and 40s. It said that he's Guinnessed as the
oldest chimp on record, at 74, and that chimps in captivity usually live to
around 60.
This got me to thinking: whenever you read about the life expectancies of
animals, you get a couple estimates; "in the wild" and "in captivity." This
begs the question, when you say I have a life expectancy of 80 years, is that
in the wild or in captivity and which one am I? -rbarry
I had an idea for the ultimate juggling act: It is quite possible to solve
a 3x3x3 Rubik's Cube one-handed. I'm not that ambitious, but I was thinking
about juggling a 2x2x2 and two balls... solving the cube in the process.
A 2x2x2 turns out to be quite difficult simply to manipulate one-handed.
-rbarry
Hrm.... someone just hit the website having searched for the "Mad About Ron
Porno Movie!!!!!"
-rbarry
I would like to propose the ultimate Lego Mindstorms challenge:
Build a robot that, when placed in a room full of random lego parts -
including all those that went into its own construction - can construct a
perfect copy of itself from those parts, including dumping its own program
to the new robot.
For extra points, it should be able to locate the boxes it needs in any
toy store or warehouse, and complete the process.
For extra extra points, make it evil.
-rbarry
I've had so many people express an interest in my color deficiencies, and
found myself trying to explain the technical side of it with a lot of
hand-waving and statistical language that I figure it's time to just store
a link to the best presentation on the topic I've seen so far:
http://www.firelily.com/opinions/color.html
Please note when you read it that once a photo has been made on film or
taken digitally, there is no way to simulate the process of trichromatic
color deficiency. Dichromatic, yes. If I can find a source of some
very specific camera filters, I'll be able to do the former... eventually.
--rbarry
UPDATE 20080803:
The problem with trying to simulate what a color deficient person sees when
starting with a photograph is that you are already too late: For a photon
of an ambiguous frequency, the camera has already captured it and lumped it
in with all the other photons that a normal-sighted person would see in the
same way. For me, for example, if a photon in the 'aqua-marine' part of
the spectrum hits a camera sensor, it will contribute some blue and some
green, but the photoshop filter has no way of knowing whether this color was
the result of a single frequency band or one of an infinite number of bands
that could result in the same color.
The photoshop filters that attempt to show what a color deficient viewer would
see in this situation will invariably appear to be some hue or another to me.
Trouble is - that part of the spectrum is totally grey to me, in real life,
anyway. In a photo, that section of the rainbow can be anything from grey to
green.
-rbarry
Well, at lunch we were discussing sushi - specifically, horse sushi/sashimi.
When one participant mentioned that he'd politely declined an offer of just
such a beast while in Japan, I commended him for not putting a gift horse in
the mouth. -rbarry
It's been a fun week. Add to everything else that the neighbors' retaining
wall dropped a ton (I'm not speaking figuratively here) of concrete into our
backyard last week...
Search engines must be getting better - I get far fewer hits here than I
was 6 months ago. I wonder if the sheer size of the page is giving them
a hint.... I am over a quarter megabyte and just now hitting 50000 words
in 851 entries.
Let me define stress for you:
* Having an 18-month-old. Parker's fantastic, but he has moments of good
as well as toddler evil.
* Wedding plans.
* Quitting a job to start a new one.
* Starting a new job.
* Getting canned with no explanation after 6 days. Soul-searching as a
result of this one is no good for the self-esteem, regardless of the
reason.
* Filing a lawsuit against employer for above mentioned issue.
* Trying to sell a car - especially when you're leasing it from Chase
Auto Financing. Never do business with these morons. This is the
second time I've been screwed in the four-figure range by these people.
* Spending literally 10 hours on the phone in the last 2 weeks to take
care of Chase and buyer.
* Getting above-mentioned car in an accident ON THE WAY TO HAND IT OFF
TO THE BUYER!!!
* Dealing with auto insurance company.
I can't figure out why I've had a screaming headache for the last three
days. Funny how no dose of ibuprofen has any effect at all.
Which wise man uttered "Beware the Ides of March?"
Hrm... I wonder if I could have sued Exabyte back-in-the-day for false
advertising: "This damn floppy only holds 320 KILOBYTES!!! Less than a
trillionth as much as advertised on the box!!!" - rbarry
Sorry, everyone - time for another rant about how much windows sucks.
I run a chunk of software on my desk at work called synergy, which allows me
to plug a monitor into my win box and my linux box and share a keyboard and a
mouse between them. The hardware is plugged into the windows machine and it is
the responsibility of that box to forward mouse and keyboard events to linux
whenever my mouse leaves the windows field and enters that of the linux box.
Comprende?
Anyway, any time I start the project I'm working on - or for that matter, try
to get Microsoft Visual Studio to do anything at all - the mouse is jammed in
windows space. I can't move it over to the linux machine until some cycles
free up. So of course, I go into the task manager to set the priority on
synergy to realtime so it can't starve anymore... and find that it already is.
In other words, Microsoft's real-time service can be starved by a low priority
process.
-rbarry
True story:
The IT guy for my office came in to deliver replacement memory for my
new machine - the old had been overheating and taking my machine down
from time to time - and a new lasermouse to replace the $3 hockey puck
that was passing for a pointing device on my box at the time.
As he left, he apologized for all the issues with my machine - that it
sucks to show up for a new job and have equipment problems from the
get-go. I told him that it was alright - that the best laid plans of
mice and mem often go awry.
^^^
-rbarry
I recently found myself discussing with a bartender/bar owner the
possibility of creating a website for him. A friend and I said we'd
be happy to tackle the job. When it came to discussing payment, we
said that his company's microbrew would be fine compensation.
He threatened to throw us out for using the four-letter-words "free
beer."
-rbarry
Well, it's official - I've handed in my notice at Sun Microsystems.
There's something to be said for an industry in which the 1 year, 11
months, and 2.5 weeks is my personal record for staying at the same
company. Numerous layoffs have seen to that quite efficiently - that
and John Romero.
<rant>
Now, I can't say anything about _why_ John Romero left Midway, though
I've been fortunate to be filled in on those details, but I can
speculate... which I have already done. To summarize my previous
statements:
JR left Midway to "Pursue other opportunities..." Um. He left
with no other jobs available and I can tell you the man has none of
his Id money left. He can't live without work. It was quite clear
that he was shown the door.
Gee, why would Midway let such a considerate, gender-sensitive,
mature person leave? Hrm. Let me think. How many female artists
were in the employ of Midway when he left? Maybe we can work this
out for ourselves...
</rant>
-rbarry
A friend of mine is scheduled for what he calls the Big Snip in a couple
of weeks. After telling me about a dream about the event involving
Scotch Tape, of all things, and a rather inept surgeon, I told him that
I'd be happy to call his doctor and ask to make sure that his equpment
is sterile before my friend's is. =]
-rbarry
Upon noticing that I was wearing only socks around the office, a coworker
asked me to explain. I said that it would appear as though I needed
to be rebooted.
-rbarry
Month-and-a-half since the last entry. I'm WAY behind here.
After reading yet another diatribe on the 'fact' that open source is going
to take over the world and will eventually become the only software model
in existence, I feel I must rebut.
I've been working at Sun Microsystems for quite some time and have been a
part of the movement to open Solaris. One is bound to observe that a great
number of people are being PAID to work on solaris.
I might go so far as to posit that the vast majority of people who currently
write open source software make their real living making software somewhere
that pays them to make 'closed' software. Does it not follow that if these
establishments, one-by-one, are dominated out of existence by open source,
that the same individuals who make OSS will become jobless, or at least in
rampant oversupply in the employment market?
The inevitable conclusion of such a trend would be that many people would no
longer see a future in Comp Sci and spend their lives - and their education
funds - doing other things. But you would be a hacker no matter what? Right.
I started twiddling bits on a TRS-80 when I was eight. I sold my first game
when I was 14. I've been through enough bleeding-edge pure-research and
absolute-latest-tech development projects to keep my brain reeling till I
die... and I have to tell you that if there hadn't been a sound financial
future in this when I hit college.... I would have done something else.
Now I don't deny that there are plenty of socialists in software. I had the
unfortunate experience once of having to spend an entire day with Richard
Stallman. I managed to go from idolizing the man to refusing to utter the
word GNU for a year in that day. But these people are still getting paid
by somebody. Your service department isn't going to bring in cash forever.
As the net becomes more and more organized, don't you find that your tech
support for every device/package/toaster/pet you own is a search engine?
People with brains and very expensive educations write software. Deal with
it. You're going to have to pay for the stuff one way or another. Even if
you insist on using nothing but open source, one could make the argument that
all the stuff you _can't_ do with it* (don't kid yourself. Why do you think
I suffer through having two windows boxes at home?) is part of the price you
pay.
* I use windows for:
1) You have two debuggers in this world that are worth a damn: Metrowerks
and Visual Studio. Only one of these is supported by the free software
packages I use to develop my games. (Micro$oft's)
2) Video. Ignoring the fact that Quicktime - and all the available content
it provides - is only available as a player under win and mac, I do video
editing. 'nuff said.
3) The Gimp. Sucks. Ass. You can scream all you like that it is as much
a powertool as Photoshop, but that doesn't make it true. It's interface
is designed by people who thought they were being radical, but they were
in fact being morons. Did I mention that it doesn't load the proprietary
formats that my hardware dumps data in? Photoshop does.
4) Games. I have to give transgaming a real pat on the back. They are
utterly f-ing brilliant. But that doesn't get you the latest ATI drivers
under your brand of UNIX. Besides, transgaming is strictly linux. What
about BSD/Solaris?
5) Hardware support. Like everyone else, I have a camera, an mp3 player,
a wireless hub, and other useful tidbits that I use regularly. Funny how
there are no wireless drivers for the brand-new laptop I borrowed from
work and tried running linux on. Those .exes that came with my camera
don't work under free software... etc.
6) This bears repeating: Debugging under linux is a pain in the ass. Most
of the hackers I know still debug with printfs.
wc -l /usr/src/project5/*.c
40000
/usr/src/project5/a.out
Segmentation Fault (core dumped)
shit. Good bugger-f-ing luck if you are using gdb.
-rbarry
Today being International Talk Like a Pirate Day, I believe that a very
important public service announcement is due: You can't say Chihuahua in pirate.
I mean, can you imagine Robert Newton busting out with "ARRRR! Do I ken a
Chihuahua that aint fit to swab a deck?"
Marilyn tells me that the subtext of this diatribe is that Chihuahuas aren't
very manly dogs to own.
Anyone wanna trade two Chihuahuas for a Labrador?
IMAGE DELETED (maddie and josie chasing on the beach)
-rbarry (on blogs.sun.com)
Wouldn't it be wonderful to think that G.W. Bush was capable of transcending
his background and becoming a person who could understand broader and more
fundamental issues of human contact... ?
- Roger Waters - Interviews From the Dark Side of the Moon DVD
From an ergonomic perspective, there is very good reason to get away from the
old qwerty layout. Having been out of work for 4 months as a result of Carpal
Tunnel and Tenosinovitis issues, I can attest that there are very good medical
reasons to abandon qwerty, as well. Most people are familiar with the old story
that the qwerty keyboard was designed to minimize key jamming on the old
typebar-style keyboards - that common key pairs in the language were
intentionally split as far as possible on the keyboard. Makes sense, right?
Unfortunately, 120+ years later, we're all still using the same layout. Our
computers are more than capable of keeping up with our typing no matter how fast
we go about it. Yet the odds that you touch-type qwerty (if you can touch-type
at all) on your computer are well above 90%. Doesn't make sense to me.
There are four common complaints issued when I tell someone they should consider
switching:
"I look at my hands as I type. If I switch keymaps, I won't know where
anything is."
*sigh* You've not really learned to type qwerty yet. You are a PRIME
CANDIDATE for switching. If nothing else, typing on a keyboard where
everything is mislabeled will teach you not to look at your hands. When I
switched, I had a IBM Model M keyboard, which had removable keycaps. I
simply took them all off and left them off. Looking at a blank keyboard is
useless - you learn to stop doing it.
"I'd have to learn to type all over again."
Yes, but NO. Your body and mind have already done the hardest part of
learning to type: learning the mechanics. Yes, learning where to find 'w' on
the keyboard was a large part of that, but when you switch keyboard layouts,
it's amazing how much of that training is portable. You get to keep all the
benefits of having learned the mechanics of typing - learning a new layout
takes a week or two. When I switched, I was 90+ words per minute on qwerty.
Six weeks later, I was around 65 on dvorak and improving steadily.
"I'm a programmer. I'm all over the keyboard anyway, so the dvorak
improvements will have minimal effect."
This issue I won't really address here. Programmers need a new interface
with their machines. ESPECIALLY those of us who are stuck in vi/emacs-land
doing our hacking.
"Whenever I switch computers, I have to figure out how to switch the
keyboard."
Granted, Windows doesn't make this easy. It wasn't so bad with 2000 or
95/98, but for some reason they have decided that XP keyboard layouts
belong in accessibility options. You have to tell XP "I have trouble using
a keyboard" to configure it.
Well, I couldn't care less about XP. I'm stuck using it for video publishing
(are you listening, Steve?), hacking (yes, I use MS Studio as an IDE), and
games. BUT, if you're using X, I think I can help.
xmodmap is a tool for diddling your keyboard configurations. I'm sure you can
read the man page as well as I, so I'll leave out the details. You can create a
keymap that will take your keyboard's keycodes and assign them to the
appropriate values, but switching keyboards means that many of those keycodes
change. Making your keymap portable is easy: get your current configuration from
xmodmap, replace the key entries with their analogues, and feed it back to
xmodmap as input. This script will work - with some obvious modifications - to
swap left-hand, right-hand, dvorak, qwerty, alphabetical (WHY?), or any other
keymap you like:
#!/usr/bin/perl
#I don't usually perl like this, but I wanted this to be
#easily configurable by non-programmers.
#HOW TO USE:
#This perl script exists in my bin directory as 'asdf' and I have a
#link from 'aoeu' to asdf. Any time I want to switch configurations,
#I type the 4 home row keys under the left hand, and it calls the
#appropriate script. Enjoy.
open (IN, "/usr/X/bin/xmakemap |");
open (OUT, ">/tmp/xmodmap.tmp");
#d2q: dvorak to qwerty mappings
@d2q{"bracketleft"} = "minus underscore";
@d2q{"bracketright"} = "equal plus";
@d2q{"backslash"} = "backslash bar";
@d2q{"grave"} = "grave asciitilde";
@d2q{"apostrophe"} = "q Q";
@d2q{"comma"} = "w W";
@d2q{"period"} = "e E";
@d2q{"p"} = @d2q{"P"} = "r R";
@d2q{"y"} = @d2q{"Y"} = "t T";
@d2q{"f"} = @d2q{"F"} = "y Y";
@d2q{"g"} = @d2q{"G"} = "u U";
@d2q{"c"} = @d2q{"C"} = "i I";
@d2q{"r"} = @d2q{"R"} = "o O";
@d2q{"l"} = @d2q{"L"} = "p P";
@d2q{"slash"} = "bracketleft braceleft";
@d2q{"equal"} = "bracketright braceright";
@d2q{"a"} = @d2q{"A"} = "a A";
@d2q{"o"} = @d2q{"O"} = "s S";
@d2q{"e"} = @d2q{"E"} = "d D";
@d2q{"u"} = @d2q{"U"} = "f F";
@d2q{"i"} = @d2q{"I"} = "g G";
@d2q{"d"} = @d2q{"D"} = "h H";
@d2q{"h"} = @d2q{"H"} = "j J";
@d2q{"t"} = @d2q{"T"} = "k K";
@d2q{"n"} = @d2q{"N"} = "l L";
@d2q{"s"} = @d2q{"S"} = "semicolon colon";
@d2q{"minus"} = "apostrophe quotedbl";
@d2q{"semicolon"} = "z Z";
@d2q{"q"} = @d2q{"Q"} = "x X";
@d2q{"j"} = @d2q{"J"} = "c C";
@d2q{"k"} = @d2q{"K"} = "v V";
@d2q{"x"} = @d2q{"X"} = "b B";
@d2q{"b"} = @d2q{"B"} = "n N";
@d2q{"m"} = @d2q{"M"} = "m M";
@d2q{"w"} = @d2q{"W"} = "comma less";
@d2q{"v"} = @d2q{"V"} = "period greater";
@d2q{"z"} = @d2q{"Z"} = "slash question";
#q2d: qwerty to dvorak mappings
@q2d{"minus"} = "bracketleft braceleft";
@q2d{"equal"} = "bracketright braceright";
@q2d{"backslash"} = "backslash bar";
@q2d{"grave"} = "grave asciitilde";
@q2d{"q"} = @q2d{"Q"} = "apostrophe quotedbl";
@q2d{"w"} = @q2d{"W"} = "comma less";
@q2d{"e"} = @q2d{"E"} = "period greater";
@q2d{"r"} = @q2d{"R"} = "p P";
@q2d{"t"} = @q2d{"T"} = "y Y";
@q2d{"y"} = @q2d{"Y"} = "f F";
@q2d{"u"} = @q2d{"U"} = "g G";
@q2d{"i"} = @q2d{"I"} = "c C";
@q2d{"o"} = @q2d{"O"} = "r R";
@q2d{"p"} = @q2d{"P"} = "l L";
@q2d{"bracketleft"} = "slash question";
@q2d{"bracketright"} = "equal plus";
@q2d{"a"} = @q2d{"A"} = "a A";
@q2d{"s"} = @q2d{"S"} = "o O";
@q2d{"d"} = @q2d{"D"} = "e E";
@q2d{"f"} = @q2d{"F"} = "u U";
@q2d{"g"} = @q2d{"G"} = "i I";
@q2d{"h"} = @q2d{"H"} = "d D";
@q2d{"j"} = @q2d{"J"} = "h H";
@q2d{"k"} = @q2d{"K"} = "t T";
@q2d{"l"} = @q2d{"L"} = "n N";
@q2d{"semicolon"} = "s S";
@q2d{"apostrophe"} = "minus underscore";
@q2d{"z"} = @q2d{"Z"} = "semicolon colon";
@q2d{"x"} = @q2d{"X"} = "q Q";
@q2d{"c"} = @q2d{"C"} = "j J";
@q2d{"v"} = @q2d{"V"} = "k K";
@q2d{"b"} = @q2d{"B"} = "x X";
@q2d{"n"} = @q2d{"N"} = "b B";
@q2d{"m"} = @q2d{"M"} = "m M";
@q2d{"comma"} = "w W";
@q2d{"period"} = "v V";
@q2d{"slash"} = "z Z";
if ($0 =~ /asdf/) {
while () {
if (/^keycode\s*(\S*)\s*=\s*(\S*)/) {
if (@q2d{$2}) {
print OUT "keycode $1 = @q2d{$2}\n";
} else {
print OUT;
}
}
}
}
elsif ($0 =~ /aoeu/) {
while () {
if (/^keycode\s*(\S*)\s*=\s*(\S*)/) {
if (@d2q{$2}) {
print OUT "keycode $1 = @d2q{$2}\n";
} else {
print OUT;
}
}
}
} else {
exit (1);
}
close (IN);
close (OUT);
system "xmodmap /tmp/xmodmap.tmp";
-rbarry (on blogs.sun.com)
I can't stand it anymore. I keep going through my logs and seeing all the
goofy shit that gets people to this web page and it just floors me. Most
of my readers aren't privy to all the details of what happens when you go
to a web page - among other things, your browser is nice enough to send
the server you access the web page that contained the link that you clicked
to go to the new page. Make sense? In other words, when you did a google
search for "mary-kate and ashley porn" and got this page, your browser
tells my web server that the page you came in from was (and this is an
oversimplified example) google.com/search=mary_kate_and_ashley_porn.
This information ends up in a log on my system and I have no end of fun
reading through the stuff that people actually search for:
So without further ado, the Search of the Day (I'll come up with a fun
acronym later) is:
> (google.com)What is the periodic table symbol for the element that slays
> the cybermen?
That would be Gold. Au.
BORING! NEXT!
> (google.at)Is mary kate olsen technically still a virgin?
I'm not going to touch that one. And I know what you're thinking.
> (google.com)In the Hitchhikers' Guide to the Galaxy, what was the scariest
> and most dangerous place in the universe and where is it located?
That would be the Frogstar, World B, the most totally evil place in the
universe. (Restaurant at the End of the Universe, Chapter 8.) It pays
to have electronic copies of these things. =]
> (google.se)Are frogs turing compatible?
Don Knuth (the computability and algorithms man Himself) once provided
an abstract to a conference on this topic as a joke. Maybe he didn't
want to spill the beans on his actual topic. Anyway. As far as I know,
nobody has managed to reliably flip a bit on any size frog array and
therefore it would be highly unlikely that they would be turing compatible.
-rbarry
Some time ago, I finally sat down and gritted my teeth: I was going to get
through the Hitchhikers Guide to the Galaxy Infocom Game if it was the last
thing I did.
I received my first copy of this abomination when I was in 7th grade - that's
1985 or 1986-ish. I never finished, despite ages of effort. I know people
that made it through by working as a team with others, but I was alone -
stranded in a hell of Douglas Adams' devising.
The game cheats. It lies to you. It makes fun of you. And try as you may -
read all of the books if you like - this is the hardest blasted game of all
time. Getting through Pikmin in 18 days was easy. Doom on nightmare mode?
Done. HHGTTG took me until I finally caved in as an adult and swore that my
epitath would not be something to the effect of having been beaten by a game.
For those of you who simply want to see how it ends, there is salvation. I
put together a rough doc that will get you through the whole thing. It's not
a hintbook. It is the definitive solution - line by line. You'll see the
game go by, but you won't appreciate it. So. For those of you without
Infinite Patience: you have what you need.
-rbarry
Utah is an interesting place in some respects. When it comes to conservative
causes, it is reactionary in the extreme - and to the extreme right.
The issue of gay marriage comes up and Utah is ready to start the Rainbow
Inquisition. The idea pops into someone's head that the church and state
separation can be neatly avoided by renaming creationism 'intelligent
design' (for who would argue with teaching something 'intelligent' in the
schools?) ....and Utah is stepping up to the plate to get started - and buy
the first new school textbooks the state has seen since the last time they
re-wrote history. (Don't get me started on this latter (Latter?) topic -
I spent more than a decade there.)
So when a friend of mine sent me a very well-written article, penned by a
professor of Biology at Brigham Young University encouraging the deflation
of intelligent design (http://sltrib.com/opinion/ci_2941591, or see below)
I replied with the following, republished here because I love a soapbox:
> Rather, we seek spiritual truth through our personal devotions and
> secular truth through the scientific method. We urge the Utah
> Legislature to do the same.
To paraphrase in a manner in which the general public is more likely to
meme: "Religion is the study of Who created the universe. Science is the
study of how it was accomplished." In short, there is no intersection.
I suspect that intelligent design will have to hit the supreme courts -
and it would get ugly there no matter what. If it is rejected, the Court
would eventually have to rule on whether evolution should also be a
verboten topic.
If the Court decided to allow intelligent design, there'd be a major
uproar: 1) Parents (myself included) would yank their kids from the
public school system. 2) Taxpayers (myself included) would be in a twist
over their money going to support a religiously jaded education system.
Given the options facing the decision-making bodies in the US today, a
student of the future might find himself in one of two extreme situations:
1) I believe in God and am required to study evolution. Is it possible
for me to assume the notion (for the moment) that this is how God
accomplished the task and that the school system is asserting nothing more
(or less.)
2) I firmly believe that god (note the careful choice of capitals) does
not exist as a creator. I therefore cannot accept any guise of
creationism and therefore requiring me to study intelligent design is a
fundamental undermining of my First Amendment rights.
Now it has been stated that the First Amendment specifically protects
religion and not non-religion. This attempt to turn the Bill of Rights
into a club for use by those who would impose their beliefs upon their
neighbors (you know, those people that you're supposed to love, respect
and forgive) are no better than the Church of England's treatment of
certain waterlogged, penguin-impersonating, turkey eaters of our past.
Or at least, that's what they taught me in the same schools they're now
trying to lumber with intelligent design.
rOn
(Original article from the Salt Lake Tribune, copied here because they
don't keep articles around for very long.)
Creationists' anti-evolution assertions are just plain wrong
Stephen Nelson
Over the past few months, the possible introduction of legislation to
mandate teaching intelligent design (a camouflaged form of creationism)
in Utah public schools has spawned considerable debate within the pages
of The Salt Lake Tribune.
Of particular concern to us are three anti-evolution creationist
"myths" that have all been raised recently in The Tribune. Although a
newspaper may not be the proper place for detailed scientific
discussion, some clarification is appropriate as belief in these
assertions may affect legislation and public policy.
l The first claim is that there are no transitional forms in the
fossil record. This is patently untrue; there are many examples, but the
creationists repeat the statement as if the retelling will change
reality.
We offer just a few examples: Mammals, it is clear, evolved on land.
But one branch, the whales, subsequently evolved to a marine existence.
Evolution predicted, and subsequent research has found, ancestral
(fossil) whales progressively adapted to the ocean. Similarly, hominids
(apparent ancestors of humans) now comprise a sequence of some 20
recognized species.
Indeed, Dr. Kurt Wise, a creationist with sufficient background to
speak knowledgeably on the matter, has repeatedly insisted that his
fellow creationists must stop their dissembling on the matter of
transitional fossils, and specifically points to whale and hominid
fossils as being transitional both in form and in time, and with which
creationists must honestly come to grips.
Further examples of transitional fossils can be found in any
paleontology text, including horses, elephants, birds, etc., not to
mention plants and invertebrates. Given the special set of circumstances
required for the preservation of fossils, the record of transitional
forms is quite striking. This issue should be laid to rest.
l The second myth is that methods of dating rocks and minerals are
unreliable, or produce different ages for the same rock. The latter, in
fact, is true at times. A classic case is the granite of Little
Cottonwood Canyon.
We know of four techniques that have been applied to two different
minerals in the rock (it is sometimes possible to apply more than one
technique to a single mineral). Each technique records the time at which
the rock cooled below a critical temperature. The oldest age, 30.5
million years, records the time elapsed since the granite solidified
from a molten state at a temperature of about 1,300 degrees Fahrenheit.
The other ages of 10 million, 5 million and 3 million years record
the time at which the rock cooled through 400 degrees, 200 degrees, and
150 degrees due to uplift along the Wasatch Fault. In other words, it
would have been entirely unreasonable for all four methods to yield the
same age. The fact is that when properly applied and understood, modern
techniques for dating rocks are very reliable.
l The third, and in some ways most distressing, myth is the
assertion that the second law of thermodynamics disproves evolution.
This rests on the notion that "disorder" is increasing, whereas
evolution postulates increasing order in life over time.
Thermodynamics is a difficult topic to explain in a few sentences.
Open-system, not closed-system, thermodynamics must be considered since
the Earth constantly derives energy from the sun. And in open systems,
energy transfer can and does drive greater complexity: For example, the
creation of snowflakes. There, standard physical and chemical laws
inexorably create myriad symmetrical forms and complex patterns.
Similarly, physical and chemical laws produce mutations, most bad
but some good, which produce new biochemical pathways in living
organisms, and which, when acted upon by natural selection and other
forces, have evidently produced the many forms of life. Evolution does
not violate thermodynamics; it is the product of thermodynamics.
For the interested reader, scientifically sound information on these
and other issues raised by creationists can be found at the National
Center for Science Education Web site at http://www.ncseweb.org..
To the non-believer, creationist objections are likely to sound
inherently absurd. However, as scientists who hold deep and profound
personal beliefs in God, we offer a few final observations.
Since there is overwhelming evidence for the evolution of life and
the antiquity of Earth, we find it very unlikely that God would set
about to deceive us. Although each believer may seek to understand the
purpose of creation, we believe it is unwise for any individual to claim
to know the mind of God concerning the mechanics of creation.
We agree with Apostle James Talmage of The Church of Jesus Christ of
Latter-day Saints, who, commenting wisely on the interface between
science and religion, said, "We do not show reverence for the scriptures
when we misapply them through faulty interpretation."
Rather, we seek spiritual truth through our personal devotions and
secular truth through the scientific method. We urge the Utah
Legislature to do the same.
---
Stephen Nelson and Bart Kowallis teach in the Department of Geology
at Brigham Young University.
I had the rather disconcerting experience today of reaching for my mouse and
getting a handful of stapler. For a split second I was imagining some sort
of weird alien ergonomic device. It's the simple things that will bring your
train of thought barreling off the tracks and into the ravine.
-rbarry
Okay, I've had doctors tell me to avoid phlebotomy colleges, nurses tell me not
to go to certain parts of Romania, and med students refer to me as a Big
(er, pulsating) Red Bull's-Eye.
But until today, it has never been so clear as when I soiled a doctor's tie.
I have veins. Big ones. I could rent them out for use by your local fire
department.
-rbarry
How to tell that your bank (Wells Fargo) is sending you way too much mail:
Wells Fargo Investing sends me mail to confirm any transaction on my accounts -
one envelope for every transaction on every account. So when I make my
IRA/ESA/TIRA contributions for the year and purchase my usual mutual funds (see
below) I receive an envelope for every account... all on the same day.
Just to keep things interesting, they also send me mail when my funds pay
dividends... like today when I received an envelope telling me that I'd
received a $.27 dividend - that's not an error, that's 27 cents - and they
sent me two pages of paper in an envelope crammed with ads. Postage? 27 cents.
-rbarry
A musing on time travel.
The argument has been made that if time travel were possible, we would have
seen time tourists by now. People hanging about at the tsunami high water
mark taking full-motion holography, recording the 2000 inauguration with their
pinkie rings, and generally converging on other natural disasters to mull
about and oggle.
It would seem that the universe's very presence would be sufficient argument
that (reverse) time travel will never be achieved. Were it to happen, you'd
eventually get to a point where the population of the universe had no universe
left in which to live - either due to the big crunch or heat death - and would
pick a time in their past in which to resettle.
Their progeny would repeat the process, and so on. Eventually, their combined
mass in any time would cause the universe to collapse in upon itself.
Maybe it will work out such that you have to replace an equal mass to your own
if you move to another time....
-rbarry
Kip Thorne's Gravitation Book, at 1215 pages, isn't just a book ABOUT gravity.
It's also a rather weighty demonstration. -rbarry
When I owned this thing, I remember it being not only the biggest, but also the
densest (mass, in addition to material to comprehend) book I'd ever owned.
There existed no sane method for reading the thing without experiencing great
pain.
And since I managed a limerick with Orange as the primary rhyme, I thought I'd
tackle Silver:
A man from the City of Silver
Had laid out his lunch on a salver.
His food did not sate,
So he swallowed the plate
quite whole, taking no time to savour.
(I'm still working on it.)
Science is a wonderful thing - if one doesn't have to earn a living at it.
- Albert Einstein
At least if you're a _Republican_ asshole, you'll never be without a peer
group. -rbarry
A man from the County of Orange
Had trouble all day with a door-hinge.
He screamed in dismay
Till his voice went astray
And he had to go suck on a lozenge.
-rbarry
Limerick. By committee:
There once was a man from Atlantis
Who found he had ants in his pantis.
His plans were thus laid:
His banjo he played
For the dancing ant-eating mantis.
-rbarry/bcarver
Zombie Cream Stout?
Had a bit of trouble naming this one, so it takes some explanation. The
original recipe comes from San Francisco Brewcraft, though the final form
is an improvisation. The SFB recipe was handwritten and almost completely
illegible: Qeeucli was eventually deciphered to Munich, Boilee to Barley.
However, we hit a snag with Kcesaflie...
None of the homebrew stores online list anything that seemed close enough
to decode this cryptograin, so Brian (Scearce) resorted to running an agrep
(approximate grep) through /usr/dict/words for a match... We saw "kestrel,"
"chevalier," and "vouchsafe," but nothing relating to grain.
We even hit upon cerebellum... We weren't convinced that a half-pound of
brains were quite right for brewing, but it led to the inevitable zombie
jokes... BTW, ZCS has a nice creamy head on it.
I gave up and called the store. Carafa.
-rbarry
I don't follow these things very carefully, so I can't say with certainty that
a star wars tv show is in the works. If it were, my only question would be
why it took lucas so long to get to that medium. Anyway, in case it is
happening and a title has not been agreed upon yet, I'd like to submit the
catchy: "The Reruns of the Jedi."
-rbarry
Don Marquis said, "A sequel is an admission that you've been reduced to
immitating yourself."
It was announced today that Disney is setting up shop in Glendale to start
production on "Toy Story 3." They've been reduced to immitating someone
they had to hire in lieu of doing good work themselves.
CNN link
If you've not been following the developments in this area, Disney and Pixar
have had a cooperative agreement for the production of 6 movies. After
Toy Story 2 came out, Disney pointed out (with logic that only seems to make
sense if you are a lawyer working for Disney or Michael Eisner - it's an
exercise for the reader to determine which has the longer horns and redder
skin - that TS2 wasn't a movie, but a SEQUEL, according to their contracts.
This left Pixar in the unenviable position of having made a movie - sorry,
Mike, a SEQUEL - for Disney for free.
So for the sake of a quick buck, Disney bent Pixar over the back of a chair
and ruined a very productive arrangement.
I've not missed opening night of a Pixar film yet, though I've not seen a
Disney film since they turned sour when I was a kid. Short version: I'll
happily ignore TS3 when it comes out.
If you own a German Shepherd, a Doberman, a Rottweiler, or even a Chihuahua -
and your house gets robbed - you can expect the dog to raise the alarm. The
only way you'll ever get an alarm out of a Labrador is if you tie a bell to
his tail. - rbarry
We have an even more ambiguous election this time around than last. *sigh*
All I can say is, is anyone surprised that Halliburton stock shot up (beat the
dow margin by 3x) the day after the election?
Dateline, Broward County, Florida. Broward was Gore's biggest landfall during
the 2000 election - a greater majority of Democratic voters turned out there
than any other county in the state. Today it was announced that 58,000 ballots
already cast.... have gone missing from Broward.
CNN isn't covering this. I had to go to The BRITISH Broadcasting Corporation.
To prove that he took the issue of global warming seriously, Marburger[1]
shamelessly cited a study that President Bush had commissioned from the
National Academy of Sciences. The administration had asked the NAS[2] to find
"weaknesses" in climate science studies to justify their efforts to derail an
international global warming treaty.[3] When the commissioned report instead
confirmed human-induced climate change and mentioned fossil fuels as a major
culprit the EPA decided to replace the findings in its Report on the
Environment with a discredited study funded by the American Petroleum
Institute.[4]
[1] Dr. John Marburger III - George W. Bush's science advisor.
[2] National Academy of Sciences.
[3] "Moving Target on Policy Battlefield," Washington Post, May 2, 2002
(http://www.washingtonpost.com/ac2/wp-dyn/A18131-2002May1?language=printer)
[4] "Report by EPA Leaves out Data on Climate Change," New York Times, June 19,
2003
Why is it that, almost without exception, people searching for porn online
can't spell? I get a half-dozen hits a day or more on this page - most of
which are people who are searching for free porn. Most common spelling
mistakes? 'there' instead of 'their,' 'mashine,' 'mary-kay' instead of
'mary-kate,'
I am not a fan of Wells Fargo. Just laying it on the line. I pay $7/mo or so for
billpay and I heave a sigh of contempt every time I do it. When I tell people
(actually, I tend to rant and carry on) how much I hate doing business with WF,
the obvious question always surfaces: "Why do you continue to do business with
them?"
Simple: WellsTrade. Wells FARGO and I do very little business. I dread having to
call them or god forbid I should have to go in to a branch to get something
fixed, but WellsTRADE almost makes up for the headache. I call them with
questions or changes almost monthly... and I have never spent so much as one
minute on hold. Never.
Let me repeat that: WellsTrade has never put me on hold. I dial their number and
they have the strangest device on the other end of the line. It's not a silicon-
based device like so many switchboards are, but carbon based. It operates at a
mean temperature of roughly 36 Centegrade and has a very sophisticated voice
recognition and synth module. I don't even have to press 1 for English.
I need to know how my Traditional IRA will affect my taxes? Boom. Phone call
over in 3 minutes. Need the last 9 pages of that ESA application refaxed? 2
minutes. Wonder about that 30 dollar fee I received snail mail about? 2 minutes
- "Ah, we sent you a cancellation on that bill yesterday. It should be in
today's mail. Your accounts don't fall into our fee schedules."
When AT&T Broadband and AT&T Cable kept getting into a contest to see who could
frustrate me more (Broadband would connect my cable and the TV company, knowing
that I shouldn't have TV simply pulled the plug) by keeping me in internet
service for 3 out of every 30 days, I spent man-days on the phone - most of it
with listening to whatever Whitney Houston song was most likely to get me to
hang up. Side note: do you think they keep track of what music makes what
customers the least likely to wait for an associate? Have you ever thought to
yourself, "Gee, I hope nobody picks up before this song is over?"
When the same AT&T combatants remanded my (paid) accounts to collections
agencies, I spent a year-and-a-half getting that fixed (they withdrew.) All of
this mess because the people on the other end of the lines either were computers
or were trained to behave like them. I commend WellsTrade for a job well-done.
For anyone listening, I suspect that between the fact that they get the job done
well and quickly, and that they keep customers, their customer service is far
'cheaper' than the digital nightmare we all steeplechase day after day.
-rbarry (on blogs.sun.com)
Still working on band names:
"Still Got Our Day Jobs."
-rbarry
I swear I'm going to make a regular feature of the searches that get people
to this page. The most recent ones that really caught my eye were:
* Mary-Kate XXX
* idiot's guide to sound waves
* 10-digit prime numbers in e - someone trying to solve the google labs
puzzle, I gather. I was VERY disappointed that there were only two
stages to the thing. When they have 10 or so, then I'll apply, acting
on the assumption that they've filtered out the riff-raff. =]
-rbarry
Two recent announcements from Microsoft have me up in arms. First, they're
going to offer an anti-spyware product. I'm not even sure where to begin on
this one. How about requiring that every executing program be visible to the
user in some way or another, like... say... the process management window?
When I suspect that something is running on my computer that shouldn't be (my
disk is grinding away when I'm not doing anything) that's the first thing I
start. Without fail, the offending process notices that PM is starting and
zonks out... and I'm stuck reinstalling my computer.
How about simply creating a PM that works as it should? That would be a nice
start.
Simply put, it's Microsoft's damn fault that spyware exists. Maybe they
should fix their OS instead of putting out a piece of software that is nothing
more than marketing drivel. If MS has an anti-spyware product, spyware _must_
be the fault of those nasty black-hats, right?
Second, Ballmer stating that the battle against viruses is a never-ending
battle. Ah, shit. Where do I begin with this one?
Set the wayback machine for 1995. Ron is working in the computer labs, where
students ask a myriad of questions, but there is definately a top ten list.
On that list are such gems as "can I get a virus via email?" ...and, at the
DEC/Ultrix lab, "is there a virus scanner in here?"
The answer to the first question was a resounding no. We usually got a private
giggle out of the question. I mean, email is a device for propegating text.
How do you get a binary from your source, to your inbox (on a unix box,) to
your local machine via a nice ASCII-filter? You couldn't. Leave it to
microsoft to invent a away to do so. It's called Outlook. For God's sake,
don't use it.
As far as DEC/Ultrix is concerned, my airing it regards a greater concern:
Viruses are a Microsoft-World problem. Full Stop.
In my time as a Unix user, I've seen ONE Linux virus and it depended heavily
upon the version of Linux you were running. You could only get the virus
from someone else running exactly the same version. In other words, the thing
was nothing more than an intellectual curiosity. I say that I've only "seen"
one unix virus before, but to be more accurate, I've only _heard_ of one. The
thing never propegated beyond a few dozen computers.
The reason viruses don't show up in unix is somewhat technical, but it boils
down to core priorities. Unix separates the user from the machine and then
allows the user at the important bits of the machine once it is determined that
such an action is allowed. Microsoft assumes that the user owns the machine
and can do whateverthehell he wants with it, so when something nasty finds
its way onboard, it can play havoc. Unix, no privileges, no havoc. MS - the
world is the Black Hat's paradise.
You may think that I'm just MS-bashing here, but I'm being very realistic.
Security has never been a priority at Microsoft. How could it be? You can't
market security to someone that believes that there's nothing on their
computer worth securing - even if they do pay their bills, access their credit
cards and bank, and work at home on that machine. Until (insert name of very
large, very unlucky company here) really gets burned and the world starts
holding individuals accountable for their online/email stupidity, Microsoft
doesn't have to spend a cent on security. They'll just keep treating it as
they have - in the press.
It occurred to me today that the S.C. Johnson quote:
A successful [software] tool is one that was used to do something
undreamed of by its author.
would classify bugs and security holes as _contributors_ to the success
of a tool, thereby neatly explaining the success of Microsoft.
-rbarry
From the RFC #2795, on the design of the Infinite Monkey Protocol Suite:
All IMPS protocols must utilize the following packet structure.
|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--|
|Version | Seq # | Protocol # | Reserved | Size |
|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--|
| Source | Destination |
|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--|
| Data | Padding |
|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--|
Version, Sequence Number, Protocol Number, and Reserved fields
are 32 bit unsigned integers. For IMPS version 1.0, the Version must
be 1. Reserved must be 0 and will always be 0 in future uses. It is
included because every other protocol specification includes a
"future use" reserved field which never, ever changes and is
therefore a waste of bandwidth and memory. [6] [7] [8].
Would someone mind explaining to me why the Selective Service System (SSS, not
to be confused with, but similar in some respects to the SS) is ramping up for
full activation? Every one of 20,000 draft positions (boards and appeals) must
be ready by June 15, 2005.
Who's our next war with, George?
By the way, you'll now have to get a "pre-clearance" to go to Canada - a
precaution against draft-dodgers.
It certainly would make the Mary-Kate and Ashley games a bit more interesting
if they got drafted.
It's 3am and I have just gotten back from the hospital and finished all my
chores for the day. I'll be getting marilyn in about 6 hours. So much for
a good night's rest tonight.
For those of you who have suffered through my plan day after day after day,
today is when it really pays off for you:
At 2:50 this morning marilyn was poking me awake. Not surprising - she has
the alarm on her side of the bed and I never hear it, so I asked her to make
sure she poked me awake a bit earlier than usual this morning. Tuesdays are
staff meeting days.
It was dark outside and the light in the room was on... and marilyn was working
on a glass of wine!?!?!?!?!? Hello, Leo G. Carrol.
"My water broke an hour ago."
I guess I'll be missing my staff meeting.
...and since, by the end of the week, I'll have 15 gallons of beer brewing in
my building (some is shared with the neighbors):
"Mr. Rumson, do you believe that everything that comes out of the earth should
be made into Liquor?"
"Whenever possible." - Paint Your Wagon, (AKA The Outlaw Josey Wails)
I want to build an optically transparent bowling ball with a video camera
mounted inside with a gyroscopic stabilizer to keep it level and aimed in
the direction of the pins. I have no idea why. -rbarry
State Farm Insurance has been my insurance carrier for the entire time I've been
driving - the better part of two decades. At times, I've had to call them to
tell them that I was changing my policy and they've always been good about
making changes retroactively.
Today, I called them to cancel my renters' policy - the title on our house
required that we have a year of insurance through the title company's cohorts.
"No problem," I thought.
I thought.
Well, I think I thought.
There is something about working every day with things that don't make sense
that seems to give the brain a chance explain to itself the complete nonsense of
what it's doing. I tried a half-dozen times to explain to the agent that if I
was cancelling a policy, my rate should go down. Over and over I was told that
this was not the case because I'd be losing my "multi-line discount." Since I
had a number of policies with them, they gave me a bit of a break. The break
turned out to be twice what I 'paid' for renters' coverage. I should have asked
how many policies I needed to add to my insurance to get to the point where they
were paying me every month.
Here's where it gets weird. Remember what I said about retroactive adjustment of
coverage? If the change to my policy had been made - and made retroactively - I
would have had to PAY THEM FOR THE LAST 13 DAYS OF TIME WHERE I WANTED THEM TO
NOT COVER ME FOR SOMETHING AGAINST WHICH I HAD NOT CLAIMED!!!
State Farm? It's been an interesting two decades.
-rbarry (on blogs.sun.com)
A friend and I (HI BRIAN) have had some interesting conversations about the
possibility of writing an adaptation of Sun Tsu's "Art of War" in the netrek
universe.
As you can imagine, there are some things that transfer rather well to a Star-
Trek-iverse Mini-Massive Multiplayer Simulation (STiMMMS.) Energy,
Maneuvering, the Skillful Attack. We're having a bit of trouble with it
where the horses come in, though.
Another first today: html formatting in the (gulp) blog.
The Four Word Film Review has become something of an idle sport for my
officemate, Brian Scearce and me. While discussing recent submissions (his,
mine) we started discussing an old sci-fi flick called The Terminal Man.
I'll spare you the gory details, but a dude has a device implanted in the main
character's skull to predict seizures and zap him when they're on their way.
It drove him nuts. Bad Sci-fi at it's best.
Just as I finish this conversation, I turn to my machine and give my password
to the screenlock. In front of me is yesterday's edition of gizmodo.com. I
hit reload.... and stare blankly at a screen displaying a description of a
device that does exactly the same thing.
I'll let you all know how the microphone search goes.
A little PSA for you:
You're walking down the street and behold - an unopened candy bar. Do you,
a) Pick it up and eat it?
b) Pick it up and give it to a friend to eat?
c) Ignore it - the problem will go away by itself?
The correct answer is:
d) Treat it as though it were an explosive device and call in the FBI?
Setting aside the political commentary about my dislike of the FBI and
Homeland Insecurity, I have a point to make about how so many of you are
treating your computers.
Someone sends you an email message with an attachment. Do you open the
attachment? NO! FOR CHRISSAKE, STOP DOING IT! How often has anyone EVER
sent you email that you didn't expect in some sense? Your children send
you pictures of your grandchildren? Great. If the filenames make sense,
by all means, open them up.
However, when the email comes and has no message body that says, "LOOK!
It's Junior's first explosive embolism! Isn't he CUTE?" ...you should
suspect that something is up. Even opening an IMAGE can be a security
problem. (http://www.us-cert.gov/cas/techalerts/TA04-217A.html)
Just delete it.
When you open these attachments, you're not only eating the candy bar,
but you're taking a chunk to your friends, co-workers, employers, and
anyone else you might have had an email correspondence with in the last
umpteen ages, jumping on their shoulders, yanking back their throats,
and shoving it down their gullets. Enjoy the imagery? Neither do I,
but neither do I enjoy getting these things. I'm pessimistic enough
about the intelligence of the average individual. The problems with
email worms would GO AWAY if everyone would just use some common sense
and realize that their computer is somewhat frail. It does whatever
you tell it to, even if you tell it to stick an untrusted .exe to it's
head and pull the int.
This message also applies to the literally hundreds of thousands of
people who have downloaded the "increase your doom3 performance by
40%" binaries. What the hell are you thinking? You trust a guy on
a soapbox to be able to optimize your game more than you trust ID to put
out a product that's had every CPU cycle carefully squeezed (squozen?)
out of it?
Worms and Spam are two problems that simply go away if people are bright
enough not to respond to the social engineering contained within. I'm
going to petition the SS (Office of Fatherland Security) to start
a "witless protection agency," where anyone who forwards viruses or
actually buys viagra online will have an agent sitting at their computer
whenever they use it telling them that taking melaphoxinine will not help
them choose lottery numbers.
"Our enemies are innovative and resourceful - and so are we," said George W.
Bush to a high-level meeting of Pentagon officials.
"They never stop thinking about new ways to harm our country and our people -
and neither do we."
I believe it. FUD is the only thing that will keep him in office.
I'm not sure I'd trust a kit called "Mr. Beer" to put out a good product.
After all, I've known an awful lot of Mr. Smiths in my time, but I'd not
trust a single one of them to shoe my horse. - rbarry
We were unable to access the page you requested. Our server july be busy.
Please wait a few seconds,