fallenpegasus: (Default)
Every bad thing that has ever happened to me has, in retrospect, after enough time, turned out to have been for my benefit, or at the very least, made me more of what I like about myself.

I know that I am extremely lucky in this manner.
I also know that this streak of luck could end right now.
And I know that most people have terrible things happen to them that never result in anything more than misery.
I also know that memory is frail and is too easily rewritten.
I know that the human mind is particularly bad at accurately remembering pain and misfortune.
I know that it's not actually possible to accurately know "what might have been".
I also know that when I was going though bad times, if most anyone had told me then "you will be glad this happened", I would have reacted with nothing but hatred and rage.

Still, right now, I am grateful, both for all my blessings, and for all my past misfortunes.

#thanksgiving
fallenpegasus: (Default)
Another evening was spent walking around Greenlake Park Walking Path and then Gas Works Park with Silver, playing Ingress and Pokémon Go.

There were Pokémon Go players everywhere. It was especially spooky at Gasworks, after sunset, in the darkness dimly skylit by the lights of the city on the other side of Lake Union, dozens and dozens little clusters of adults, tweens, and kids, faces dimly reflecting the distinctively colored light from a Pokémon Go screen, on foot, wandering back and forth across the grass, along the waterline, and around the titanic metal structures of the park.

This is starting to feel like one of those B-grade science fiction stories, one of the early warnings of the alien parasite invasion is that you notice everyone everywhere all doing the same thing, alone together.

What the hell, I don't care. Silver and I both are enjoying the exercise and each other's company.
fallenpegasus: (Default)
About 10 years ago, I was involved with something that completely accidentally suddenly turned into an unlicensed supper club. And demonstrated exactly why supper clubs strictly control their RSVPs and headcounts:

A dozen-ish of us started getting together weekly in a group geek house for a book and craft club. A friend of one of us liked to cook, and offered to cook dinner for us and our friends in exchange for we all throwing in cash for ingredients.

The next week, everyone brought all their SOs to share the dinner. The week after, also many of our other good friends.

Within a month, pretty much the whole larger circle of friends was coming.
A month later, the friends of friends, and the friends of friends of friends started showing up, because the word had gotten out that for about $5 cash you could get a large filling delicious home cooked dinner.

Came the day when the house was full of a couple of hundred people, most of them strangers to us, all of them demanding a meal.

That was the end of that.
fallenpegasus: (Default)
A mile is a thousand strides of a marching soldier. A pound is a rock that fits in your hand. A cup is a good drink of water. A yard is one arm pull of fabric or thread. A bushel is one easily carried bundle of harvested food. An acre is the amount of land that one man can plow in one day. An hour is the length of time that can be easily snap measured by glancing at the angle of the sun. The traditional dry goods and wet goods volumes and weights are doubles and halves of each other, rooted in the smallest common food grain and the smallest possible pour of water. Inches, spans, cubits, feet, yards, are all derived from the human body, and let one use your own body to measure things out. Degrees F are a 100 unit scale from the lowest temperature to the highest temperature that will ever regularly happen were people could live before the invention of modern HVAC.

They all make sense, when you know their history, and are using them for what they are used for.

The metric SI units are useful doing... science. But not so much for living day to day.
fallenpegasus: (Default)
I wonder about media leakers.

I'm not talking about whistleblowers, who reveal coverups by governments and corporations that are keeping secrets of bad or illegal actions.

I'm talking about people who "confidentially source" to the media details of business negotiations, media productions, and gossip of private heartache. Things that are private and confidential for a reason, will be revealed when they are properly baked, and that do nobody any good for being revealed early, except maybe for a burst of clickstream traffic for the "news" source that "scooped" it.

I know a fair number of secrets. Some of them are close friends' private heartaches, which are theirs to reveal, if ever. And some of them are business negotiation secrets incidental to my job, and a few of them part of my job to know. I actually go out of my way to avoid learning things I shouldn't need to know at my employer, just so as to firewall myself from even the appearance of impropriety.

Any of them, if I "confidentially sourced" them to the tech press, would do nothing but cost money that is not mine for no honest gain to anybody, possibly prevent good things that I would like to have happen not happen, and would betray my own principles I try to hold myself to.

So, why do other people do it?
fallenpegasus: (Default)
Long ago, almost two decades, which is a few eons in internet time, on discussion forums long since destroyed and passed away, I observed two different social justice zealots. This was before the term "social justice warrior" had been invented. (And as an aside, the term was invited and taken up by people who loudly described themselves as such. It was not, as they now claim, a term created as an insult by their "enemies".) Anyway...

There were these two social justice zealots. And each one claimed to be politically active in their local politics, each one of them working to undo a great racial injustice.

One of them, they were involved in a struggle to change the electoral rules in their city, to change it from at at-large vote for the entire city council, to instead divide the city up into districts, so that each geographic region of the city would have representation on the city council, as this was the way of racial justice, and any opposition to this could only come from wicked racists.

And the other one, they were involved in a struggle to change the electoral rules in their city, to change it from divided districts, one district per council member, to instead have an at-large vote for the members of the council, such that each ethnic group spread across the city could join in solidarity to back a candidate of their ethnicity, so that each ethnic group would have representation on the city council, as this was the way of racial justice, and any opposition to this could only come from wicked racists.

I was not the only person to notice this. However, despite some efforts, nobody was able to get the two of them to engage with each other.

I learned a number of important life lessons from watching this, all of them darkly hilarious.
fallenpegasus: (Default)
One of the tricks to writing with a fountain pen with highly saturated ink is to keep a small glass of water and a heavy paper napkin on the desk. If the pen ever skips, dip the nib for a moment into the water, and then wipe it off with the napkin.

I've been writing with FPs since 1987, and only figured this trick out this year.
fallenpegasus: (Default)
When I lived in North Carolina, my best friend was Michael Wilson. He was a big kid, two years older than me, one year ahead of me in school, and he lived on the same rural dirt road that I did.

We met on the school bus one of the first weeks of school when I was in the 1st grade, and completely new to the area. He decided we should be friends, and thus so we were. He was a big happy guy, despite his family's grinding rural poverty and the death of his father to lung cancer.

We stayed best friends for the next 7 years, until I left NC in 1982 at the age of 13 to move to UT. This was, of course, long before email and facebook, and cross country phone calls were expensive, so we promptly fell out of touch with each other.

A few years ago, I started considering finding him again, and hoping to discover him owning his own machine shop somewhere around there in NC. Last week I discovered that my sister Suzanne was FB friends with one of her old friends from NC who also lived on that street, and so I asked her about Michael.

Two years after our family moved away, in 1984, he and his mother were killed in a serious traffic accident. He would have been 17 at the time.

Goodbye, Michael. You are remembered. You were the first real friend to a shy scrawny overly smart kid who didn't know how to be friends with anyone until then.
fallenpegasus: (Default)
At one company I worked at, one of the problems it didn't have was IT.

When someone was hired, by the time they got to their new desk, there was a computer on it with the correct image on it, their desk phone worked, their email worked, the calendaring and scheduling worked, and all necessary passwords and ACLs were configured. The internal ethernet networks all worked, were fast, and were properly isolated from each other. The wall ports were all correctly labeled, and there where the right kinds of wall ports in each cubical and conference room. The presentation projectors and conference room speaker phones all worked. The printers all worked, printed cleanly, were kept stocked, and were consistently named. The internet connections were fast and well managed. Internal and external security incidents were quickly recognized and dealt with. Broken machines were immediately replaced with working and newly imaged replacements. If someone accidentally deleted a file, getting it back from backup typically took less than an hour. Software updates were announced ahead of time, and usually happened without issue.

The IT staff did not seem noticeably bitter, angry, harried, or otherwise suffering from the emotional costs traditionally endemic to that job role. In fact, they were almost invisible in their skill and competence.

So, of course, came the day when the senior executives said "the carpets are just naturally clean all the time, we don't need all these janitors!". IT was "reorganized" into a smaller staff of younger and much less experienced (and probably cheaper) people.

Of course, it all went to shit. New employees would go a week before they had machines, phones, passwords, and ACLs. Printers ran out of paper, projectors ran out of lightbulbs, servers ran out of storage, networks got misconfigured, and so forth. The total time lost and wasted across the whole company was most certainly greater than the savings of laying off the expensive and skilled IT staff.

This is not to say that the reorganized IT staff were stupid or lazy. They worked very hard and ran themselves ragged trying to keep up with the cycle of operations, while trying to skill themselves up in their "spare time" and with a slashed training budget.

The lessons I learned from this experience speak for themselves.

What lessons that may have been learned by any of the other people involved, especially the executives who made these decisions, I cannot say.
fallenpegasus: (Default)
I was working on a highly constrained consumer electronics device, a little "satellite device" that spoke to the main device over a CATV RF coax cable and also received commands from an IR remote control. My code was failing in bizarre ways. I adopted an extremely paranoid defensive programming stance, filling my code with asserts and doing paranoid cross checking of all inputs. This didn't make the device work. Instead it consistently didn't work, instead of inconsistently, because the cross checks and asserts would usually (but not always) trip before it would crash. It also started to run out of memory because of the all the paranoia code I had added.

I asked for the source code for the driver for the IR receiver, and for the driver for the CATV RF digital transceiver, and for the peer code that was driving the cable digital that ran on the main device.

The driver for the CATF RF digital transceiver was handed to me the first time I asked. And by "handed to me" I mean that I was pointed to where it was sitting in the source repo.


The business partner / hardware supplier who was supplying the IR glue and drivers just , after giving me a runaround, finally just flat out refused, citing trade secrets, confidentiality, secret sauce, and similar bullshit.

So, I finally "stole" the source code with a disassembler. And found the sources of many of my problems. It was complete shit. "Unexpected" input from the silicon would cause wild random pointer writes. And random sunlight on the receiver optics would cause it. "Expected" input of undefined remote commands wasn't much better, generating and handing back blocks of garbage with incorrect block length headers.

I ended up writing, nearly from scratch, a replacement IR receiver driver.


The peer device driver code was written by a developer in a different group in my same company. I finally got the P4 ACLs to read it after loudly escalating, over the objections of it's developer and his group manager. It was also complete shit. I cannot even begin to remember everything that was wrong with it, but I not only figured out may of the sources of my own pain, I also found a significant source of crash and lockup bugs that afflicted the main device.

I was not allowed to rewrite the peer code, as it was not in my remit. However, I was able to sneak in and check in a large number of asserts, using the excuse that they were "inline documentation".


On, and the device driver for the CATF RF digital transceiver? The source code I got for the asking, without a fight? When I reviewed it was easy to understand, efficient, elegant, and as far as I could tell, bug free.


In the end, I made my part work. It just took over two months instead of the original guesstimate of less than two weeks. This caused a schedule slip in the release of the satellite box. Which would have been a more serious problem, except…


Except there was also major schedule slip for the main box. A significant reason for that slip was because the peer code that I had filled will asserts was now crashing with assertion failures instead of emitting garbage. I was lucky that I was not more officially "blamed" for that. The reason why I wasn't, was mainly because the people who understood what I did understood the problem, and the executives who didn't understand what the problem was were also too clueless to blame anyone, let alone me.


My lesson learned from this experience is: if someone is refusing to show the source to suspect driver code, citing trade secrets, confidentiality, secret sauce, partnership agreements, or similar excuses, it's not because they are protecting their magic. It's because they have screwed up, and they are trying to hide it.

A second rule of thumb I have is: source control systems that don't allow any developers to check out and review any arbitrary source code file are expressions of moral failure. It is unethical for an engineer, designer, or other technologist to ever sign off on a project that has been mutilated by such a broken tool.
fallenpegasus: (Default)
It's really annoying to be so aware of a non-rational mental block in my own head, know it's origin, understand what it's trying to protect me from, know how and why it's counter-productive, and have that piece of non-rational pattern of thought also be the very thing that is stopping me from letting go of it.
fallenpegasus: (Default)

I just went on a half-hour binge reading about pertussis, as a result of reading that WA state has an epidemic outbreak that the public health agencies are struggling to stop.



Reading people's first hand accounts of having it will cross your eyes in empathized pain. One person described that she has given birth, has suffered a compound fracture of a leg, has passed a kidney stone, and has had whopping cough. Only one of them made her wish for death. It's been described as feeling like an asthma attack while someone is punching you in the ribs. Oh, and most all cough medicines do pretty much nothing for it.



You, reading this. You. Right now, pick up your phone, and call your doctor's clinic. Ask them if you're up to date, and if you're not, go get your freaking DTaP shot. You can get one at Walgreen's for less than the cost of a high-end Starbucks drink. You owe it to yourself, you owe it to public health, you owe it to your friends and coworkers, and you owe it to every pregnant woman, every newborn, and every immunocompromised person you share this biosphere with.

fallenpegasus: (Default)
If you found this personal blog from some link about my work on open source and open standards work, my work on OpenShift, on Drizzle, or my speaking at and participating at some technology conference, or so forth, you probably want my tech blog over at Machines Plus Minds.

This personal blog is entirely for stuff about my personal life, and if you don't know me personally, you will probably find it utterly uninteresting.
fallenpegasus: (Default)
The daffodils are blooming again.

It's now been three years since I wrote Love Stinks, and a year since I wrote Love Stinks, Two Years Later

I read them, feel the scars again, and muse. Any fundamental change? Not really.


I do not retract a word of it. But my outlook has become more nuanced.

Some of that nuance is even more bitter, some of it more gentle.

I understand more. Understanding does bring peace. Or, at least, it moderates ineffective action.

Things that use to hurt all the time, now only have the occational pang.

I've gotten better at keeping my teeth together, and my tongue still.

I have gotten better at knowing how and how much to trust people.

Some people are selected out from my life.
Some people have drifted into my sphere.
Some people have drifted out.

With some, there has been rapprochement, and a friendship again.

Some old acquaintances, have become new friends.
Some old friends, have become new friends.

And there have been some pleasant surprises, and some new adventures.

I still don't trust "love", but friendship and affection are nice, and I try to enjoy what of it I have, from where and when it is offered.
fallenpegasus: (Default)
Comparing the crowd at Denver International Airport with my recent post about the crowd on the Metro bus in Seattle.

The racial mix is significantly more white. The people are generally taller and more stocky. There are a lot of people with tanned skin. Many of those tans are leathery. Faces, hands, arms, and necks, everywhere I look I see signs of significant long-term sun damage and other weathering, almost as bad as what I saw in Los Angeles. Their clothes are just as layered as in Seattle, but significantly more warm, and in darker colors. Lots of heavy wool full jackets, and lots of heavy weather coats. A lot of blue denim jeans. Lots of waterproof shoes and boots with high-traction soles, and showing a lot of water, salt, and snow damage. What "flair" there is, if any, is of a southwest and/or cowboy theme.
fallenpegasus: (Default)
My fellow passengers:

A large black woman, her hair short dreads. Wearing black t-shirt layered with green vest with jenin jacket. Brown socks with sandals. She's reading a technical manual.

An elderly woman with pixie haircut, sky blue northface coat, open, with two layers of thin sweaters, over a bloase. And a hand knit scarf. Yoga pants. Brightly colored knit socks with sandels. Her eyes look at nothing.

A muscular white man in his late 20s, tightly stretched blue t-shirt with ironic text, blue jeans with rolled and ironed cuffs, scuffed leather ankle boots.

And so on. About 2 dozen people, a mix of white, hispanic, asian, native, and black.

All wearing relaxed layers, mostly in subdoed earth tones, water resistant sport wear, comfortable shoes. Lots of dyed hair in subdued colors, crazy tights, nose rings on office workers, and hoodies. There is not a bit sunlight tanned skin in sight.

If I didn't already know I was in Seattle, inside the city proper, one look at this crowd would tell me where I was.
fallenpegasus: (Default)
It's getting to be that time of the year again, and I like sending cards for the holidays. So here is the deal: tell me your postal address, and you will probably get a card around the end of the year.
fallenpegasus: (Default)
Today, while waiting in line for an ATM at my credit union, I got to witness two interesting customer service interactions.

The first customer was dealing with the aftermath of an all-to-common PayPal issue. Her account had been emptied via PayPal charges and/or chargebacks. The BECU agent said they see that sort of thing all the time. He had the information on hand to report a fraud to PayPal if her account had been compromised, or how to start fighting with PayPal to get her money back if PP themselves were grabbing her money. He also had a process in place to set up a "valve" account keep PayPal at arms length from one's money.

After she left, the next customer sat down. He was a trim white-haired guy, a prototypical small businessman. He was holding a big stack of envelopes branded with the blue Chase logo. The BECU agent asked him what he needed, his response was a blunt "I'm tired of these fuckers, what can you do for me?"

And then it came to be my turn at the ATM.
fallenpegasus: (Default)
A few days ago I was interviewed by a Georgia Tech student about my job and career, and what advice I may have for students of computer science and programming.


  • Take on as little student loan debt as possible. And if someone will not pay you to get a post-grad degree, don't waste the debt and the time. Keep out of debt. You never want to feel stuck somewhere so to make rent and pay bills.

  • Learn to write. You learn to write by writing. Take writing classes, read about good writing, and practice writing. It doesn't matter what kind of job you get or life path you take, you need to know how to write.

  • Get involved in some open source projects, and make real contributions to them. The Google Summer of Code is a good thing to get involved in. A portfolio of demonstrated contributions to open source projects is more impressive than a GPA on a new resume.

  • Get involved. Find your local makerspaces, hackerspaces, and barcamps. Volunteer and participate. Go to Ignite. Speak at Ignite.

  • Always be fluent in at least two programming languages, and practice learning new ones. Languages and frameworks come and go, learning new ones is forever.

  • When getting a job, beware of the non-compete and copyright assignment clauses in the employment contract. Push back on them. If they are non-negotiable, too onerous, are enforceable, beware and be careful of taking that job. Keep your list of "personal and outside projects" ready to attach as an appendix.

fallenpegasus: (Default)
The tech rumor mill has been churning for a few days about "Amazon launching a Netflix for books". While a neat concept, I'm a bit disappointed that it is for ebooks. This plays to Amazon's strengths, but is not what I have been wanting for years.

For years I have been wishing for a "Netflix for Books", for physical books.

Here is how I envision it working:

A large municipal library, or a consortium of them working together, set up a site and paid service very similar to Netflix, only for books.

I, as a user, select how many books at a time I want to rent. There would be different monthly payment levels, just like Netflix.

Books in my queue get checked out from the library or via inter library loan. They get mailed to me, along with a return mailer. Postage would be book rate, of course. Unless I am willing to pay extra for Priority or Express mail.

I read the book, keep it for as long as I want (maybe with a one year maximum), and then either return it with the return mailer or by dropping it off at the library like a regular book.

I could keep using my muni library "for free", or use this service for the convenience factor. It could even be a source of much needed funding for the amazing public library system that we all too often take for granted, and do not use enough.

Profile

fallenpegasus: (Default)
Mark Atwood

November 2016

S M T W T F S
  12345
6789101112
13141516171819
202122 23242526
27282930   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 7th, 2016 04:19 pm
Powered by Dreamwidth Studios