Tuesday, December 23, 2014

Don't Be the Workplace Martyr (Because the Workplace Don't Care)

I was talking to someone recently who mentioned that they would be probably be working in the office over the weekend. Again. He had mentioned before having to work over past weekends. Maybe you've met this type of person before. They work weekends without pay or compensation. It has to be done for the good of the department or the company. He or she may also be the last one to leave the office most days of the week; there's always stuff to be done, and if they don't stay it's going to lead to some dire unspoken consequences.

I used to be like that. I worked in a school system where I didn't have to come in the weekends (thank $DEITY!) but I did stay late to finish things up. Oh, the sacrifice! I would stick around to work on things despite being on salary, sometimes looking down on the unionized staff in Maintenance or the office staff who, when break time came, they were off clock. If you approached them you were asking for an eye roll and they would speak to you in a voice that was so heavily burdened that you'd think you just threw their universe out of whack by speaking to them about something work-related.

I was dedicated. I was paid crap, compared to market rates. That's how the school was...it reinforced my sense of martyrdom. I was working hard for the intangible reasons. It made them respect me more, working for the good of the organization rather than the pay (because the pay was below market so I sure wasn't doing it for that...). I was reliable. I made us look better as a department. I was important as an asset to the organization. It made me a good person that others could look up to as an example.

I was clearly delusional.

Part of this was conflating my identity with my job, then further conflating my job with my employer. There have been recent articles discussing the importance of loving your job, but not your company, because you don't know when your company will stop loving you. And no one is so important that a company won't be able to function without you.

Working in the school, I didn't often see people leaving...mostly because the majority of employees in schools are both protected by unions (I wasn't) and they had contracts for set periods of time, so when they want to get rid of people they did it with more politicking than efficiency. And sometimes it was absolutely brutal; people would jockey to get a good position for themselves before gathering together to lament the people that weren't able to get into a position that wasn't eliminated or a department without forced retirements.

I left the last position after 11 years or so of service to that district. Despite the extra hours I had put in, there was no noise made for my departure. No goodbye party. No lunch thing. I remember my last act being placing my ID badge and keys on a table in what served as the makeshift server room and saying goodbye to myself one last time before shutting the lights off and walking away.

It really felt like no one gave a damn.

And you know what? They're still chugging along. They hired someone to fill my spot kind of quick (guess I was easily replaced) supposedly with a similar pay, despite me having to work a decade with a degree to my name to get that amount. I doubt anything I did had a lasting effect.

A decade of my life...working on some small projects here and there...extra time put in without extra pay...and it amounts to nothing.

(Side comment: it's no secret that a lack of overtime pay also hurts employees trying to get ahead financially...)

My current employer is great; they offer perks like free snacks and lunches, they buy employees the tech they need to get their job done rather than the decade of having to try to make outdated scraps into something half-usable, and they offer a Christmas bonus and present for employees. But as a company grows, they also have had people leave...the first time I had to deactivate accounts, I was greatly affected by it. I'd never had a situation where one day someone's there, the next I'm locking them out and the company kind of acts like they didn't exist.

But the company goes on. No one is irreplaceable.

There are still times where I will be there late. Sometimes I'm working on something. Usually because there's a couple of things I wanted to get done and got tired of having to push it to the next day. Other times I was doing something that took about %20 of my attention so I'd babysit the process (upgrading a system, installing some software, running an AV check...) while watching something on our super fast Internet connection while drinking something from the free drinky-fridge. If it was after what was reasonably considered working hours, anything coming in as a trouble ticket, unless it's dire, is considered kind of optional. My employer isn't a slave driver, I was doing it because I didn't have something more pressing to do.

There are also times (much less-so in my current department, more for SRE-related tasks) when you would have to work over the weekend. Usually this was for an alarm situation (something is really broken, or some dickhead script kiddie is home from school and has nothing better to do) or something big and scheduled like a data center move. Most cases these were scheduled or, in the case of being "on call," was done on a rotation.

My employer has been cognizant of the idea of "work-life balance."

My previous employer wasn't.

And that's where I was delusional. I let my job define me. Kind of like the old days, when you see a strong middle class family whose head of household was defined as a Xerox man or an IBM man. The company was your team, and they cared for you and provided for you and your family. Today, you're lucky if you keep the same job for more than 5 years.

Working on weekends, voluntarily, when your boss isn't expecting it of you and you aren't compensated, and you're doing it repeatedly...that's a sign that you need more people working with you. Or you don't know how to properly get work done in an allocated time. Either way is a failure condition.

To be clear: there are times when it's valid to sacrifice for your company. These times are infrequent, and you typically have some recognition or support for doing this with actual results. Or it makes your life easier because you're making up for time you were out during the typical workday. Situations vary.

But if you are doing it because you claim that you've been overwhelmed all week, and there's still a load of things to get done, you're possibly:

  1. Overloaded. The company/organization needs to hire someone to help with the workload.
  2. Disorganized, and can't get things done efficiently enough to keep up.
  3. Being taken advantage of. After all, you're paid to work X hours. If you don't get overtime, you're giving work for free, and that devalues you and your skills (unless you're somehow compensated by owning part of the company...)
  4. Asking to be taken advantage of. Hey, you work extra for free? Soon it goes from being an occasional thing to an expectation. Don't be shocked. You conditioned others to treat you that way.
I've seen other people in situations where they worked their asses off for an organization, only to become embittered when they leave and the organization doesn't really care. Those people tied their identities to that employer, then were shocked to discover that their extra work in the practical sense meant very little. They were just another cog that was quickly replaced.

I fell for that delusion and I try not to anymore. The extra work I do...usually tying up loose ends at the end of the workday...isn't because I have to do it. Rarely am I swearing at the expectation of putting in extra uncompensated time. Because I understand that I need to do something with a little more meaning that will also outlast me, since at any time my employer can terminate my professional relationship.

For the most part I think my attitude has reached a healthy balance between "I want my boss to like me and I really love my job" and the people who I grew irritated with when I was trying to get something done and, for example, needed a door unlocked only to find staff in a lounge staring at the clock because "IT'S BREAKTIME WHY ARE YOU TALKING TO ME?!"

I'd like to think my employer likes me. I'd like to think I do a satisfactory job for them, and that they appreciate what help I can offer to other employees. But in the end I am me. I work for an employer. And I am not the company. You would do well to find that separation as well, for your own work/life balance and sanity. Maybe that's part of what happens as you get older...it's part of growing up and seeing the world with less optimistic lenses.

Saturday, December 20, 2014

Golang Update to 1.4 Went NOPE (Error!)

I recently tried to update my Go installation from source only to have it fail. Fortunately the fix was simple, and the error message was surprisingly helpful.

me@mysystem ~/go/src $ ./all.bash
# Building C bootstrap tool.
cmd/dist

# Building compilers and Go bootstrap tool for host, linux/arm.
go tool dist:

The Go package sources have moved to $GOROOT/src.
*** /home/me/go/src/pkg still exists. ***
It probably contains stale files that may confuse the build.
Please (check what's there and) remove it and try again.
See http://golang.org/s/go14nopkg

It even included a link to the explanation page!

I didn't have anything of consequence in that directory. It was as simple as

rm -rf $GOROOT/src/pkg

...then re-running the compile script. As a beginner just playing around, it was simple. If you actually have projects with stashes of stuff in that directory, copy the ones you want to another location and then delete stuff and re-run the script.

If nothing else, this is a reminder that Go is an evolving language and is going through a mildly turbulent tween years on its way to adulthood.

Saturday, November 22, 2014

Remember When Banks Weren't Entirely Evil?

My family hasn't had much luck with "local" (read: not international Wall Street-headquartered) banks in recent time. I've started to expect banks, even "home town" banks, to try to dick over their customers.

The first sign this month was when my parents paid to have our home's value assessed in a bid to have their names removed from the mortgage held by Citizen's and Northern. My parents had cosigned many many years ago when my wife and I were first starting out in home ownership; we both had jobs, and we've never missed a payment. In fact, we were paid ahead, paying extra on our mortgage payments up until I moved to NYC and we knocked back payments to the minimum in a bid to have a little extra cushion in the transition from paying for a house to paying for a house plus the ridiculous cost of living in the city.

The bank sent the assessor and she walked the house and left. The assessment came in. And we collectively gasped as the house's value had fallen nearly $30K.

Why?

The reasons cited to me were things like "animal smell" (which makes some sense, given there is a cat box that despite being emptied before the arrival of the assessor I know the animals are immediately drawn to use it as if out of spite), dirty walls (the hallways were never painted. If or when we sold the house, we'd most likely paint them; that's kind of a derp, as far as I'm concerned, and it certainly doesn't cost thousands of dollars to paint the areas not currently painted) and the carpeting is worn (we've not replaced it in a decade; while it certainly could use a good steam cleaning, we also swore we're note replacing it until the child has turned 18 and moved from the house.)

We had previous assessments performed, like when we refinanced and when the house was built; the home had gone up in value, then with this assessment plummeted by an amount none of us expected, despite having things like a coal stove installed which should, in theory, have raised the value of the home (we have a chimney now!)

When my parents, who paid for the assessment, went to talk to the bank about the findings because they seem more than a little fucked up, the bank promptly gave them the runaround. They're still getting stonewalled, having been told by a couple of their representatives that a supervisor will get back to them. It's been a couple of weeks now and they're still giving my parents the runaround.

My irritation with banks bubbled today because I decided to finally convert some rolled coin to dollars. I didn't think this was much of a chore; There is a bank, Astoria Bank, just a couple blocks from my apartment. I figured that converting rolled coin is something any bank can perform, given that they aren't losing anything in the transaction. They're literally taking rolls of coins and giving me the same amount back as paper currency; they don't need to take a risk that my check will bounce or some other ripoff attempt from a dishonest customer. At most I could shortchange them some coins (or, I suppose, a cylinder of metal stuck into a coin roll.)

I should probably note that, to the best of my knowledge, I did not shortchange them.

Anyway I pack up all the rolled coinage in a little case, and that case is now surprisingly heavy. I'm quite glad the bank is just a couple blocks away. I get there, walk in, wait in the queue a few minutes and finally step up to the teller. "Can you convert rolled coin to bills?"

"Do you have an account with us?"

"No..."

"Sorry, can't help you. Next!"

He did offer to have me open a checking account, at which point I could convert rolled coin. Yay. I would have to fill in paperwork for an account I wouldn't have any intention of using just so I could convert the coins to another form of currency. I was tempted to do that just so I could turn around and close the account; but I figured there was a minimum deposit requirement or some other way of preventing me from doing exactly what I was tempted to do. I couldn't be the first person to want to do that.

At this point I left the bank and checked the time; I had a little less than an hour to get to the bank I actually had an account with in order to convert the coinage, which at that point was making my fingertips tingle from the lack of circulation in my hand.

I hiked the three blocks to a subway, waited for the non-rush-hour train schedule for a subway car to arrive, and ride a couple stops to the area with the bank with whom I have an account. I hobble up the stairways leading to the non-subterranean world and up to the bank.

I go in, stand in line, and reach the teller. "Can you convert rolled coin to bills?," I said, pulling up my little case and popping it open.

"Do you have an account with us?"

I bit back the urge to reply with sarcasm, but I was also irritated that the bank was asking me this question in the first place. "Yes," I said, probably with a note of exasperation. I was surprisingly tired from the walk and carrying 3 digits' worth of metal encased in paper rolls.

He asked for my bank card or other ID, which I slid under the bullet-proof plastic to him along with the steady feed of paper cylinders. "Next time," he said, "you should write your account number on the rolls."

Write my...mother fucker, what? You want me to write that long-ass number on each of these rolls? "Write the account on each of those?," I repeated.

"Yeah, in case there's, you know, coins missing or something. It can be tied to the account." So...M&T is officially more petty than many quick-e-marts who will fudge a few cents from a cup on the counter if it makes a transaction a little easier or faster; you know, because rounding is easier than juggling pennies. I'm an idiot customer that has banked with this organization for years, and they're basically threatening to dig into my account if I'm a quarter or two shy in the count.

If only they had the technology available to dump coins into a bin and automatically sort and roll them for themselves, all while keeping track of the value of the coins. The strange thing is I'm pretty sure they have this technology available since I'm seen some kiosk that does precisely that, only for a fee, and it gives you currency in the form of a goddamned gift card.

Perhaps banks could convince a company to create something similar, only for them, so they can get accurate counts of money for their customers. to convert coins to bills. Wouldn't that be fantastic? You'd think that organizations with millions of dollars flowing through it could afford to purchase such a technological wonder and thus remove the nasty obligatory insinuation that their customers are thieves.

Remember when banks weren't entirely evil? Or at least made some effort to hide their disdain for customers, behind a happy mask of faux concern for customer satisfaction?

I was tired and a little irritated, but I at least had my much lighter form of currency. Now we just need to find out from the other bank how they justify my home losing tens of thousands of dollars in value because of our cats not being willing to not shit.

Tuesday, November 18, 2014

OS X and Power Input Status From the Command Line

The other night I was getting ready to head to my apartment when a tweet from ConEd, the power company, said that several residents near my area were reporting a power outage.

While ConEd charges, in my opinion, way too much, and their website tends to leave something to be desired, they do at least have a site that charts power outages. I confirmed that yes, the address they tweeted was near my apartment. Then I swore because I was planning on recording an episode of my podcast and a power outage would be a real pain to deal with; do I travel an hour to get back to the apartment and risk the power being out, or do I wait and record at the office and end up getting back really late at night?

I then wondered; my laptop is connected to the wall for power. What if it could tell me if it was on AC power? Just being able to connect means nothing. I have a small UPS connected to the router and cable modem, and the laptop battery will keep the laptop going even if power were out. But it turns out OS X can report whether it's on battery or AC power.

From the command prompt I ran:

pmset -g batt

Now drawing from 'AC Power'
-InternalBattery-0 100%; charged; 0:00 remaining

And there it was. My apartment still had power! How handy!

Sunday, November 9, 2014

Conversation by Meme

Wikipedia defines a "meme" as "an idea, behavior, or style that spreads from person to person within a culture."

I've noticed a trend in people's communication habits that I called, for lack of another term, conversational memes. Terms that act as shortcuts for larger, more complex concepts, often nuanced, only used ad-nauseam until their use (and in some cases definition) become distorted and are triggered by other conversational memes.

To be fair most of these trends seem to be centered in social media sites like Twitter, where there are a contingent of people who steadfastly cling to the notion that nuanced conversations can be had in 140-character hurled chimpanzee turds. While I have no doubt that there are people who have had productive exchanges on Twitter, there are far more conversations that quickly degrade into irrational thinly-veiled attempts to establish dominance in who is more righteous than right.

While I have seen examples of this used repeatedly, a particular exchange got me thinking more about the phenomena.


I have re-read this short bit of exchange several times and I'm afraid I still can't understand the use of "mansplaining" in this example. Mansplaining is supposed to be "(of a man) explain (something) to someone, typically a woman, in a manner regarded as condescending or patronizing." Was Ishan being condescending? Or even talking down to her? His experiences echo my own; I have not had widespread failure stories come to my attention aside from bluetooth and wifi issues. But somehow suggesting that she may have an edge case on her hands is "mansplaining," and she knows better because she's a software engineer.

Was she right about the buggiest mess? It's certainly an opinion, but anecdotal. I've not encountered huge problems running Yosemite. My users haven't been overly vocal about general problems with Yosemite. So it seems perfectly natural to suggest that someone having many problems is experiencing an edge case. If anything, I've seen more weird shit from systems belonging to technical people because they like to screw around the with the system configuration more often than regular users. The assertion is made that this was simply inaccurate, but there's no information backing this up. (I know, people hate to be told they need to back up the assertions they make, it makes them a victim, it's victim blaming to ask them to show evidence to back up a statement...)

I went to Twitter and asked about the use of "mansplaining." I only had one response and it was from someone saying they've never had someone give him a good (or consistent?) definition. Which would fit in with my biased observation nicely...mansplaining, like so many other terms, has devolved to a word triggered by "this person appears to be male and is expressing doubt in my claims." This triggers the response of "mansplainer!"

Not only is this unhelpful but it also destroys the true use of the word. In order for something to be attributed to "mansplaining" you have to have to have an understanding of the motive behind the alleged mansplainer. Somehow this term is thrown around an awful lot when based on a 140 word brain fart.

But perhaps I'm basing this on a position of privilege. After all according to this website checking one's privilege, "roughly speaking, ["check your privilege"] is a way of telling a person who is making a political point that they should remember they are speaking from a privileged position, because they are, for example, white, male, heterosexual, able-bodied or wealthy."

Privilege as a term was once again tossed into my Twitter feed when Richard Dawkins mentioned an article discussing three professors launching a "Check Your Privilege" campaign that specifically wants white, heterosexual, able-bodied, Christian or male individuals to recognize they have "unearned access to social power based on membership in a dominant social group."

"If you don't have to think about it, it's a privilege." 

I'm not quite sure what this campaign aims to do. The criteria overlaps so much of the population, it's almost ridiculous to claim that you're not, in some way, privileged. At best it's a reminder that when you speak, your perspective may be colored by your life experiences and position in life. It implies a criticism of who you are...but by definition you didn't do anything to put yourself in that position. But the more I read that article, the more it sounded like someone reminding everyone that they have something better than someone else. "Buck up! Don't be sad! At least you're not like <points out someone less fortunate>!"

But like mansplaining, privilege is a word thrown around by trigger words and criteria. Basically your statements are irrelevant if you are speaking from a position that is different than the person offended. They may even accuse you holding a particular viewpoint because you're entitled.

"Entitled: to give (a person or thing) a title, right, or claim to something; furnish with grounds for laying claim." Most of the meme-users seem to prefer accusing people with the Google adjective definition of "believing oneself to be inherently deserving of privileges or special treatment." When used in memesque conversation, however, entitlement is a way of accusing someone that that person believes that have some right to do or say something. It's a small but critical difference; the word is thrown around so often that it basically means you dared to think you were allowed to do something. 

The difference is the distinction between feeling you have the right to happiness versus a right to pursue happiness. To the people flinging the word around meme-space, it makes no difference, and it makes no practical difference to them. The very use of the word is something meant to break the conversation into an ad hominem accusation or question of your motives. Your argument is not to be heard not because it lacks merits but because the source is somehow tainted.

At that point you're derailing the conversation, another phrase bandied about freely.  The definition of derailment is to take a conversation about a particular issue and instead guiding it into a separate, only tangentially related subject. If you bring up something that as a topic intersects with the subject, however, you'll still be accused of attempting to derail a conversation. In many cases of meme-use it is tossed at someone questioning anything from the offended party. Asking a question they don't like is a free license to marginalize you for derailing rather than addressing the question or point.

All these and more, in social media circles, are triggered by keywords and attributes. If these triggers (which itself is another memeword...TRIGGER WARNING!) are used, they are then replied to with another keyword, and the conversation becomes a dance from an impromptu script comprised of unhelpful meme exchanges. Avoiding the use of such memes and perhaps...perhaps...you can get an educational exchange. Otherwise, the best way to share your perspective as well as gain insight into other people's experiences is through a medium that allows you to at least attempt to explore a nuanced topic in more than 140 characters.

If you have a comment you can try mansplaining why I'm wrong in the comments, but I warn you that you are probably trying to derail the conversation with your entitled and privileged views. Although at this point it is far far simpler to stop trying to keep up with the latest reasons why everyone is horrible and just try not to be a bad person yourself, because believe me, no matter what you do, someone will be offended and find fault with you.

Sunday, October 12, 2014

Athens Area School District, Propaganda, and Going Too Far

UPDATE - The school...over the course of the last 2 hours...pulled the front page!
**********

I'd like to think that when organizations grow larger a certain amount of dysfunction emerges. Hopefully when mistakes are made the organization tries to fix them and take steps to minimize repeating them in the future.

But some mistakes make you sit back and wonder if they even see them as mistakes in the first place.

The Athens Area School District, like many other districts, are in the middle of contract negotiations with teachers and staff (although for the rest of this post I'll refer to them collectively as staff.) teachers have been working for a few years now without a new contract, and the board has, in several cases, refused to talk with them. It's a pretty typical game that gets played out (although I find it horribly irresponsible of a board to even allow staff to have a contract term lapse, then have a pretense of an interest in professional behavior. But that is simply my opinion.)

As the non-contract-negotiation-period continues to drag on there tends to be an escalation in pressure tactics. Meetings are held in auditoriums for "informing the public". Editorials are published in the local paper. Today the public gets to share their half-formed opinions on newspaper websites to parrot displeasure in the existence of unions or the unfairness of benefits a union-backed group negotiated for staff in the past.

Same song, different band, played out every few years. Usually conflicts get worked out (eventually) and teachers go on teachering and support staff continue supporting and the community continues to disapprove of their favorite sports team generating babysitting service.

Did I word that in a way that you can infer how I have felt about public schools or the attitude other people have towards them?

Maybe. If you have reading comprehension skills.

Sometimes this is done on purpose. It's a way of using bias to spread a particular viewpoint. Some call it spin. Some call it framing the argument. Others use the blanket term "propaganda," and it's a skill that can be highly lucrative for people in public relations. When this skill is poorly executed, the spin is not only obvious, but insulting to the target audience.

That is what makes this latest escalation so horrifically terrible on so many levels.

(DISCLOSURE - yes, I have family working there. No, I don't get information on what's going on beyond things that affect work schedules. I've had family and friends of family working for various school districts in the area in positions ranging from custodial staff to teachers to principals, and I pay way too much in taxes to a school district as it is. I've seen the contract negotiation rodeo dance many times in my life. I've become familiar with many of the tactics used when groups drag out negotiations. I've stayed out of this back and forth mud slinging...it was routine, as far as I knew, and I got information everyone else got through local paper headlines. But this...well...this was more than a basic attention grabber, and quite frankly, it moved me to do a little more digging. These are my words. These are my opinions. If you accuse me of parroting or speaking for someone else, you're insulting and implying I'm incapable of...or don't have a right to...having my own opinions.)

On October 10th the students logged into the school computers and were greeted to a press release "in response to" an article in a local newspaper. I hadn't seen the article, or if I did I don't remember it...I've long grown numb to the whining of salaries and benefits and assurances that the board is just trying to keep taxes down and there's no money blahblah. But the content of this press release tells me it had something to do with salaries of administrators with a dose of healthcare costs tossed in for good measure.

Blanked out phone number. I want to illustrate what they saw, not be petty or childish...

Think about this for a moment. The students were greeted with a message about salaries, how expensive the teachers are, and it was in the form of a rebuttal to an article that the school didn't link to for information.

That in itself is a subtle message. It says the administration, and/or the school board, has no respect for their staff. They couldn't keep mommy and daddy's fighting behind the closed doors of newspaper articles or their own websites, or even documents available from links on the school website...they made it a top page, in your face article for students to see when they first log in to the computer and open a web browser.

Keep in mind that teachers are ROUTINELY hammered in evaluations for a thing called classroom management. Do you think having other adults...teachers bosses...sending a message that they don't respect the teachers helps teachers maintain respect and order in the classroom? Even if the effect is subtle, it'll contribute to a further inability to properly maintain order in the classroom.

I'd be horrified as an employee to see this. A tacit reminder that my employers hate me. Front page. Not bothering to hide it anymore. And most teachers keep their thoughts on such matters to themselves because who would they talk to? The people in a position to help are the people who appear to be actively setting them up to fail. Since this appeared on the school website, that would mean at least it was endorsed by the administrators and was an extension of the ongoing arguing between the union and school board.

Worse, the bias and bullying is simply obvious.
  • It's placed on the front page of a website that is set by default to come up on computers in the classroom.
  • In the release's own words, certain salaries were released "because the administrators have graciously agreed to share those figures and the district feels it is important information for the community at large to have." That implies this is special information pried from their cold dead hands. Hate to tell you but such state secrets are literally available from the state. Public employee salaries are publicly available. A quick visit to OpenPAGov.org will give you all the salary information. It is generous to say characterizing this otherwise is only disingenuous.
  • Numbers, numbers everywhere. Numbers are funny things. Any decent statistician...or presenter dealing with numbers...can tell you that they can be bent to show just about anything, especially if your audience is not versed in critical analysis. Much of the presentation documents frame salaries as "number of professional staff earning greater" and salaries on a table for position wherein many are filled with N/A (you didn't have a superintendent that year? Or you are focusing on a particular person?) and there is a mention of staff being paid more than others in the area. You don't give those numbers, though. I can say that in NYC public school janitors make over $100,000 on average.  Wanna keep playing "we need to pay what others pay" game?
  • In addition, the numbers are usually veiled to hid other details. Ask yourself...why are there so many percentages in one list? When they add up to 515%, you should probably stop and think about what it's really measuring and how they're used to possibly distort a point. (Hint...percentages are supposed to add up to 100. If they don't, something else is being measured instead of parts of a whole.)
  • It says it's in response to a press release in the newspaper. Why isn't it linked to? Or reproduced, so I know what exactly you're talking about? It's a press release. I would think they wouldn't object to having the text reproduced or linked to. Unless you don't want people to see it.
  • The article says information is available to the public on their own website. The website I'm reading it on. The website in the URL. Why didn't you just...I don't know...say it's available here. Not re-state the website URL. Worse, it's not restated as a link. It would still be weird, but it would show some effort for the medium on which you're writing.
  • It's interesting to note that in this format there's not a place to respond. No comments enabled. No contact information or author taking credit for the information. Who wrote it? Who do I write to if I have questions? The change log is publicly accessible, but the person listed vehemently denied having anything to do with the content he posted.
  • I like the use of terms like "Cadillac plan." Is that the technical term? Or is it used because it stirs up imagery of indulgence and negative connotations? I'd be interested in knowing if that is the proper term for it given that Cadillac, I thought, was a legally protected term.
  • The cuts in numbers for healthcare. There seems to be an implication that you want to drastically cut what the employees get. I suppose some of those savings are going to be given to the employees as part of their salary? After all, several employees are already opting out of your healthcare plan and instead going on their spouse's healthcare plans. Do your numbers reflect that in what you're feeding to the public, the number of insurance buyouts you have and what is saved in that process?
  • I also like the end implication of school staff not being community members. Do you have numbers on how many of your staff aren't living and paying taxes in your district? How many of your staff are shopping in your district, paying into the people who in turn pay taxes to your district? What is the definition of community member? Because it might be nice to not have people staying to host and chaperone your proms and sports events if they are somehow considered "not community members." Let them go home instead of contributing to events for your community members.
  •  Ooh! I did find some numbers for other districts in a separate presentation graphic from your public presentations. You made it easy to find (given you didn't give a link or discussion in the text so I had to search around your other material.) The graph used a technique I was recently acquainted with by a graphics designer friend from work. That bar graph looks REALLY big, jumping from $42K to $50K for average starting salary with a bachelor's degree! Although the survey of schools...what schools? What is the cost of living in those areas? And the vertical axis...was there a reason the spacing was chosen in increments of $2K? And the size of the graph must have made the difference look HUGE on the projector. In the future you can use $1k increments to make it look even bigger, if you keep the same spacing between lines.
  • Why was that chart in a link called a collective bargaining report? It was just a slideshow. Who made it? Did the union have a reply to this or input on the information?
  • How come all the reports are slide shows? I was under the impression a report was usually in the form of words. Lots of words with information. Margins. Graphics interspersed occasionally to illustrate a point. These reports in the form of town hall graphics. With big fonts. And no text explaining what was said in the town hall, hopefully elaborating on points. Was there a prepared speech, or were the slides just read to the audience?
  • Another reason numbers, numbers numbers are fun? I'm totally zoning out after the third chart. I don't know what it's trying to tell me other than "we have lots of numbers." How is it relevant except to overwhelm you with information that may or may not be relevant to the point? Does anyone actually explain what is happening in these negotiations in terms not meant to obfuscate?
  • Is the union going to get a chance to reply to this press release? Or is the school only allowed to show one side of the argument, the one that makes the person in the front of the room look bad?
  • According to the agenda, the meeting appears to be...the school board. So the school board gave the presentation to the public? Is there an equivalent set of information available from the union, or is it only the school board that determines what information the public should know about and be given a voice on the school district website?
  • I also see that in your agenda you had a lawyer give the status of negotiation talks. There is a lot of talk about how much staff costs, and how much effort is going into saving money. How much is the lawyer costing the district? How much are stalled negotiations costing the district, on average, per day, and how much have they cost so far?
  • Did the lawyer create your slideshow materials? They don't really have authorship information or contact information. But I saw through a quick search that the lawyer named seems to have extensive experience...and relationships...specializing in negotiations with many many public schools in the area.
  • Is there a reason contracts were allowed to expire and drag on this long so that retroactive pay is even an issue? Isn't that someone's job, to actually have contracts negotiated and renewed before they are due? How many people "in your community," as contract workers, would keep working without a valid contract? Is someone not doing his or her job, seeing as the teachers and staff have continued providing services to your community without a valid contract?
  • If a union is a group of individual workers working together to have a collective bargaining unit, someone to represent them and work for a group's benefit, while the board is often cast as the plucky community representatives trying to work in the best interest of the community, where does it fit in when your lawyer's name is attached to several districts with recent or ongoing contract negotiations? It didn't take much Googling to see that his name is attached to other school district work (just Google his name and a school district)...and that would make him privy to information among those bargaining units, I would think. And it's no secret that districts rarely want to be the first to do anything...they tend to make decisions based on what their neighbors do (Ah, fond memories of watching school winter closings...we knew that if a particular district closed, there was a 90% chance our district would soon be calling school as well...) So does that kind of sharing information kind of make the board working in a "psuedo-union" capacity?
  • The self-imposed battle lines seem to be drawn between the community and the union. But upon digging, I have been seeing more services being outsourced to other companies. Is it a little strange to give jobs to companies that aren't community members, sending dollars outside your tax base?
These are just thoughts that occurred to me as I read the information being forced into my face and the links to what were labelled as reports but actually were presentation materials. I didn't get into other subtle means of manipulating the public, such as...you really had security show up for the public meeting? What subtle message did you want to send, that you hired thugs and criminals to educate your kids, and needed protection from your own staff? And how much did the taxpayer crusaders protecting community wallets pay for security on top of a lawyer, who is not a local lawyer nor member of your community, to travel up to the district for a presentation?

Does anyone bring up what contributed to the district being in a position where there are so little funds, or take responsibility for decisions leading to this point, or is the accepted attitude that these things just sort of magically happen in a vacuum? Because as a lesson to the students, that...is wrong.

Using the school website as a tool for forwarding a biased agenda...is wrong. 

If you had a separate section where you can both air your grievances and explanations and give an equal voice to both sides, that would be one thing...but putting a press release...with obvious biases against the people in the classroom, members of your community educating your kids, from one side of the dispute...is wrong. 

The lessons this teaches kids about how to handle disputes...are wrong.

The toxicity of what this says to your staff through implications of a total lack of respect and value in the classroom...is wrong.

Placing such material as a tacit agreement of negative attitudes towards your staff on the part of the school board and administration, knowing that your staff can't say anything about it or have a chance to reply without fear of retribution...is wrong. And you should recognize that from the messages barraging your students through the use of your ongoing character programs. It's bullying.

What should be done is removing that material from the front page of the website. If you want to make it an outlet for "informing the public", make it a link to its own page. And give equal access to hear from the unions. You don't have to let public comments in...your prerogative and probably a bad idea if students are reading what is published. This should be presented with a pretense of professionalism despite the disagreements.

This kind of bias and bullying is something I would sooner expect on a playground. Not from the people holding school staff to a higher standard.

It's strange to constantly hear about "Athens Pride." It's a slogan on their shirts and banners. Apparently it's only a slogan, though. What do your staff have to be proud of? A community that hates them? A leadership that despises them? A job where their authority is undermined, then they are judged in part by this same professional sabotage? 

What effect do you think it has when your staff are teaching kids in an environment where pride is simply a hollow, meaningless word to be slapped on t-shirts? That there's no effect whatsoever on morale of students if you make your staff feel whipped, undeserving, and overprivileged despite the effort they put in, often above and beyond the terms of their contracts? (Although it's hard to make a case that the contracts are worth much when they can't be given the courtesy of having contracts negotiated in a timely manner.)

(Afterthought...normally at this point a third party is brought in to arbitrate with fact finding. Funny how I didn't see anything about that emphasized? Because there was a third party brought in. The report was rejected. Why? I don't know. But the report itself is public record, if you go digging for it yourself. Why wasn't that in an announcement with explanations for why it was rejected?


Tuesday, October 7, 2014

What I Learned About Functional Specs And Mockups

We've been having discussion in our department regarding workflow, communication, and automation. There came a point in these discussions where I described a system that I thought would make things simpler for us as a group with an interface that we and new hires alike would find useful.

I thought I was describing it eloquently. But then again, I knew what I was describing.

But there are other practical obstacles to communicating such ideas. For example, your team may feel they have better things to think about. Maybe they are biased towards their own ideas, or that this is a waste of time because dammit the current system works fine if only you weren't whining so much, or whatever their mind has wandered off to at that point of the meeting.

In the end the boss decided to steer the meeting by relenting to a "write something up and work with <coworker> on this, we'll discuss it after that" approach.

I should back up a little bit here...I'd grumbled about a lack of documentation on the state of the in-house project growing in our department for awhile, but because grumbling isn't seen as productive, I felt the concerns were dismissed. What I later understood was it wasn't a lack of documentation so much as a lack of a functional specification. Others on the team didn't understand the problem until we were in a meeting and three people had three totally different ideas on how the system did something. Because the application was in a functional state, there wasn't a problem seen. It was doing things, right? No alarm bells, nothing broken...move fast and break things then fix them later. Whiners were just falling behind.

Observation One: Functional specs aren't necessary to have a "working" system, but they can keep people on the same page.

Maybe that works until it dawns on everyone that what they know is wrong.

"But you're not describing a functional spec," you might say. "How a system does things is a technical spec!"

That's true, but sometimes the how something works affects the user interface and interaction...in this case there are ways of doing things that the system may mysteriously change behind your back without notice. That's an interface interaction that ideally is covered in both a technical and functional spec. The proper workflow should be baked into the functional spec.

The immediate reaction...thinking this is a documentation issue...was to have people document how the system worked. Which isn't bad to have for reference. But it's a band-aid; a reaction rather than pro action. Reading it didn't give me a sense of what the end product was going to do or how it would fully address the future integration of automation...it was a snapshot of what had already been done.

In a way, it was kind of a postmortem.

Observation Two: Documentation is a blanket term with many sub-categories. Sometimes you have to identify what kind of documentation is missing before identifying that as a problem.

I spent some time reading up on functional specs and pondering how I would approach the problem. Turned out I knew someone who had written some nice introductory material on functional specs freely available on the Internet.

At its heart a functional spec is a description of how an application is expected to work with the users. It describes, in detail, how the application works with the user.

I then started writing. You would think this is easy. You would be wrong. Maybe if you have a really clear idea of every bit of the proposed application in your head coupled with experience in writing specs, you'll find the task easy. Chances are you'll find that clear idea of how you want to interact with and configure the system is just a set of highlights you expect in a working system. You don't realize the number of things you just don't think about or take for granted in a system that a decent spec calls for you to spell out. ("Oh...yeah...logout button? Or a logout link? Is it in a menu?")

Observation Three: The Functional Spec was longer than I thought it would be.

This was a relatively simple web application, or so I thought. Then I started describing the pages I had in mind.

One thing led to another which led to another. It didn't take long for the first draft to hit 15 pages.

Observation Four: Mockups make specs come to life, and bring out glaring errors.

I thought the mockup was best for presentation purposes. The spec tutorials heavily rely on humor for keeping people engaged enough to slog through the details of what I think a website should look like. As you can guess, I'm not really entertaining enough to keep my team reading my proposal.

A mockup, however, is a picture worth thousands of words. After I completed my first draft of a spec, I pulled out a copy of a mockup application called Balsamiq. I had never used it before and dreaded the learning curve; fortunately, the fears were largely over nothing. It wasn't long before I had the initial pages staged.

I also discovered several places where my descriptions, so clear and useable in my head, were simply impractical or felt wrong once they were applied on the mockup. In other places I discovered redundancies in function that overcomplicated the workflow. Trying to map this in my head from words on the page didn't quite work; the pictures illustrated what turned out to be glaring errors, and when I went back to the page on the spec, the errors on the written page were such that I could not unsee them. Doh!

Other times I discovered ways of doing things better on the mockup that didn't occur to me on the written spec. More notes were scribbled down for future reference.

Observation Five: A good mockup program can make a good presentation tool.

Mockups are new territory for me. I never had a job where spending time on a mockup of an application would be potentially useful. It turns out that Balsamiq is more than Powerpoint for interfaces.

I discovered that this program allows for linking pages together, a natural display of features for mocking up a web application. I can also export the pages to PDF and it looks like those PDFs will be interlinked as I set up the mockup project. Balsamiq also allows for the use of comment notes that can be hidden, describing features and workflow within the mockup itself. If my functional spec weren't so wordy, and if there weren't some features and description that aren't really illustrated in the mockup, I'd be tempted to just dump the functional spec text into a series of comments in the mockup and forego the use of the separate functional spec altogether.

Observation Six: The mockup has given me more notes for the rewrite of the spec.

Aw, dammit...more writing.

The first draft of the spec was a page-by-page description of the web application. After seeing the pages illustrated, I now have many notes scribbled on post-its and in the margins of a printed copy of the spec. Now I have to go back and re-write parts of the spec.

The first draft isn't horrible, if I do say so myself. But it if I am to present this to the team, it needs to have I's dotted and T's crossed, and it needs to be in line with the mockup.

There will no doubt be mistakes. That's no excuse to not try fixing errors.

Observation Seven: Order of dependencies matter, as does the ability to reference information in the spec.

This is something I learned about in a Ruby talk about communicating with developers. It's meant to be a good practice for giving presentations, but I think it also makes sense in certain types of writing.

In a technical description, you should not have a dependency on something later.

That is to say, if you're talking about something technical, you should avoid whenever possible a situation where you describe something but "if you don't understand X, it's okay, we'll get to that in a bit." I'm sure you've run into that before; I know I've heard it. In the talk, the presenter said that he's given his thesis statement, the most important bit of information, as a "header" to the discussion. If the attendee fell asleep at some point in the talk, he would already know the idea that the presenter thought was most important, and in the process of the talk there were little to no loose ends.

As I go back through the spec I'm going to try keeping an eye on my descriptions to see if they need to be rearranged a bit for clarity. I'll bake in descriptions when necessary and minimize references to other spots in the spec; that way if I eliminate sections or change how something on a page works it won't make another spot reference a non-existing bit of information.

I'm also going to try making the spec referenced with a table of contents, so pages and sections can be quickly searched even if printed. A spec is a living document. If you can't easily navigate it as it grows, it won't be useful.

Observation Eight: Specs and mockups can become a skeleton of a user manual.

The more I wrote and the more I illustrated, the more I saw the beginnings of a user manual for an application take shape. It makes sense...if a functional spec outlines how a user is supposed to interact with your application, and it describes the expected behavior of the application, well...that's the basics of user documentation.

This documentation...proto-user-manual...not only takes care of the initial design work that goes into the application, but also takes care of the initial steps for the dreaded technical writing involved in documenting how things work! Two birds, one stone! As long as it's kept up to date, that is.

I harbor no illusion that this work will not be for naught. This is a proposal for something that may never see the light of day. And while specs are not fun for most people, I'm finding that the work that goes into the initial stages of planning the application can be rewarding. It's quite a mental exercise to map out an application in your head, try to communicate that to the written word, translate the written word into a mockup, and then refine the written word again.

Even the tutorial for specs pointed out how often this step...the functional spec...is skipped. People like to jump right into coding in some kind of shoot-from-the-hip coding style and fix issues as they crop up. But after trying my hand at my first attempt at a spec, I wonder if spec writing and review is akin to the lack of respect for editors in print news; the industry knows they can cut editors and still have a product to churn out, and they justify it by citing the speed of their competitor, the "Internet," with which they're competing.

They completely ignore the number of glaring errors and botched headlines that slip through. And poor quality writing. The difference between a good editor's refinement of a news story and the shoveled crap that makes its way to print is the difference between a showman's presentation like Steve Jobs' Apple events and those painful talks where every third syllable on stage is an "um."

Another point; how much time is lost having to re-code for errors or changes that would have been caught had it been properly spec'd in the first place?

But those are speculation and opinion. I still have work to do...several more pages to be mocked up and then the second draft to work on. The hard part is squirreling away the blocks of time to work on them. The surprising part is that I'm actually enjoying the process!

Sunday, September 21, 2014

iOS 8: I Can't Turn The Phone Off

My wife recently sent me a message on chat telling me she couldn't turn her phone off.

Of course I sent the usual "You're going to hate the obvious question," confirming that she tried holding the power button down for several seconds. She eventually confirmed it but not before telling me holding the home button did nothing first.

She said the only thing she had changed was enabling a feature where the hotspot turns on when the iPad is near. If you're curious, I think she is referring to "instant hotspot".

At first, she just couldn't get the phone to switch apps or accept input. Attempting to send a text message gave me an error on my phone, and at one point the button presses apparently put the display to sleep the wouldn't let it wake up.

I tried calling the phone (turns out that is still a feature) and she said it rang, but wouldn't let her answer the call; eventually it rolled to voicemail.

"You might have to run the battery out or try connecting it to iTunes," I said.

"I'm not home at the moment," she said. "I don't have access to iTunes."

"Try holding the home button and the power button at the same time for ten seconds," I said.

A few moments later she said, "It's showing an Apple logo."

That seemed to fix it; a forced system reboot. Or at least it's behaving for now. Was it an iOS 8 bug? Just a glitch? Whatever it was, remember there is the standard shutdown...hold the power button until you get the slider prompt to shut down...and a force reset where you hold the power button and home button until the Apple logo pops up.

Sunday, September 7, 2014

I Was Wrong (2-Factor Edition)

You'd have had to be living under the metaphorical rock if you haven't heard about the latest celebrity nude photo scandal. There have not really been many reactions; a handful of responses were quickly standardized and echoed between the THIS IS A HORRIBLE ACT BY HORRIBLE PEOPLE group and the THEY GOT WHAT THEY DESERVED SHOW ME THE BOOBZ group.

Nuanced exploration of the issues is apparently not a strong point for for most online people.

The theft of the images is a case study of many issues. It's an invasion of privacy. Celebrity culture. What are people entitled to know or not know about public figures. Cognitive dissonance from people condemning the image sharing as theft before going back to playing a pirated game or watching stolen movies. Exploring the revelation that one of the images was taken of...and by...an underage celebrity, so are they in possessing of child pornography as well?

The list goes on but there is only one aspect I'd like to review here. When this happened there were initially several reports about the "hack." How did it happen? Was it a breach in iCloud security?
Slowly details came out. While few were reluctant to admit it, it sounded like the celebrities in question basically had crap passwords coupled with security questions that were answered with information that people could find online. The thieves guessed passwords and logged in as legitimate users to get the data.

"You dumbasses," I thought. "You're stalked by fans and paparazzi all the time. Plus having your embarrassing pictures was publicized when Scarlett Johanssen had her pictures stolen a few years back. Why the hell didn't you use 2-factor to protect your stuff?"

I've gone over 2-factor before, but in a common implementation, when an unrecognized device tries to log into your account and correctly enters a username and password a token is sent to a designated "known good" device. The service gives you a limited time to enter that token or else it rejects the attempt.

Lots of parrots will reflexively reply that it's victim-blaming to say they should have had this enabled if they didn't want their stuff stolen. There is almost a need to not acknowledge that the tools to better secure information exist and there are risks to participating in certain activities; we must maintain a victim status, that these people had absolutely no control in stopping this with reasonable forethought placed on security.

Short of not taking the pictures in the first place, this was just inevitable!

As it turns out there is a grain of truth to this. Apple has two factor authentication, much like most other big online companies. But Apples implementation is seriously, seriously flawed. It doesn't cover the method believed to have been used to get access to the photo stream and dump images as a backup.

In other words these people could have done everything "right" and still have this happen.
An article on TechCrunch states that
  • iCloud backups
  • Find my phone data, and
  • Documents stored in the cloud
...are not protected by 2-factor.

So I was very wrong in this case.

Oversimplified, things that can end up costing you money like purchases on iTunes would trigger notification. Apple apparently wanted to keep 2-factor as a credit card protection. Attempts to access your data? Not so protected.

I suppose I shouldn't be too surprised. Apple services have often felt disjointed at points where they should be unified, and security has the feeling of being an afterthought. I remember one instance where I was talking to someone trying to change an AppleID password, and said he couldn't remember the answers to the challenge questions.

Challenge questions? I had changed the password before...I didn't need the challenge questions. Turns out he was using the Manage My AppleID web page to change the password. When I log in to the account through iTunes, it let me change the password without the challenge questions. Inconsistency is not endearing and in my head it calls into question how they're tying all their services together.

In the end it seems Apple has really dropped the ball on security. It's one thing when the end user avoids implementing a security solution because <insert excuses that really is summed up with "It's more hassle than I want to deal with but I'll complain when something happens that these steps would have prevented">, but it's another when a company implements security in such a way that it's not only incomplete but leaves you with a false sense of security in the process.

That doesn't mean the celebrities in this incident actually had 2-factor enabled. They very well might not. It seems at least one of them bragged about their lack of tech-savvy skills. On the other hand, this incident made Apple take noticed of the incident and now may pay more than lip service to the deficiencies in their security implementation.

Thursday, August 28, 2014

Time Machine Corruption...Such Fun

I make backups with an external terabyte hard drive. It is configured for backups through Time Machine, so it automatically makes incremental backups for me every hour.

For the most part, it's an automated function that I don't have to think about. But having worked in technology for a few years, I know better than to fully trust it. So I check my backup status periodically. So of course while reading through the logs I noticed that the backups had failed last Tuesday.

Well, that, and there was a popup saying there had been an error in my Time Machine volume.

It started off with a simple error about being unable to write a file. At least the drive wasn't clicking, and it was visible to the system...it just didn't work properly.

I opened Disk Utility and told it to repair the disk. After running for half an hour, a series of errors about orphaned linked and incorrect link counts scrolled by and a final error message popped up telling me that Disk Utility could not fix the drive. It actually told me that I needed to make a backup and reformat the drive.

The odd thing was that whenever I tried to use Disk Utility to format the drive, Disk Utility refused to allow a format. The partition couldn't be removed, and any attempt to erase the drive gave me an error.

I tried several variations of the diskutil, fdisk and gpt commands to wipe part of the drive; nope, didn't work (although fdisk did change part of the primary partition on the drive...apparently if you encrypt the time machine disk, the disk is not only very hard to repartition, but either the encryption process or the act of formatting the external drive created a "hidden" partition that I couldn't format or remove.)

I stopped short of trying to just cat /dev/random > /dev/(diskdevice), which might have worked, or...maybe not. Like I said, I stopped short of trying it, so I didn't try that.

I was trying to just get the disk to a state where I could get Disk Utility to reformat it. But the drive wasn't having it.

I even fired up the VirtualBox Windows VM and used the USB passthrough filter to try to convince Windows to format the drive. Each attempt just gave me another USB driver error on the VM. Eventually I decided that it was getting late. I was getting tired. And I was getting irritated that everything was failing on me.

The next day I connected the drive to a physical Windows system and opened the disk manager. It showed the drive; it had two partitions. It would let me format the large partition. But the small partition, marked as an EFI partition?

Nope.

Fortunately there is a way to just obliterate the disk contents.

Basically:

  1. Open a command prompt.
  2. type "diskpart".
  3. type "list disk" and figure out which disk is the one you're trying to nuke.
  4. type "select disk #" where # is the disk you're trying to nuke.
  5. If you type "list disk" again you should see an asterisk next to the disk you're trying to nuke.
  6. type "clean", hit enter, and hold your breath. It should be just a few moments. If you pass out, something is probably wrong, either with you or the disk nuke process.
  7. type "exit"
At that point, the drive can be re-partitioned and formatted and, in my case, turned into an encrypted time machine drive again.

The takeaways from this:
  1. Time Machine drives, when encrypted, are more susceptible to unrecoverable problems when there are filesystem corruption issues.
  2. EFI partitions and/or the hoops that CoreStorage goes through to encrypt the drive will make it harder to reformat/repartition should you need to do so. It doesn't make it impossible, but it can make a "newbie" user think the drive is possibly completely broken when in fact it's just being a pain in the ass.
  3. Windows does have some handy utilities hidden at the command line, as much as <favorite OS>-snobs will bitch about Windows for the sake of hating it.
  4. Virtualization is handy has hell. However, when it comes to directly hitting hardware, you're probably going to be at the mercy of the intermediate drivers. If the hardware is oddball or having problems, virtualization will probably not help. Stick to virtualization for software purposes.
  5. I decided to call it quits and go to bed before trying to nuke the drive with a simple "let's cat garbage to the raw device," which might have worked or might not have...but it can be handy to have another computer around running Linux or Windows to try low-level nuking drives too.
  6. I already mentioned using cat to redirect bleh directly to the /dev/diskx device (or rdiskx device, since using the raw interface should be faster) might have worked, but on PC hardware using something like DBAN (Dan's Boot and Nuke) or Ultimate Boot CD's utilities could probably have wiped the disk as well, as long as you don't accidentally wipe other drives you meant to keep in working order. Disconnect those if you can. Otherwise you feel stupid.
  7. Encryption is a good thing. It means the contents of a stolen or lost drive can't be easily read. It also means that if something gets corrupted...perhaps through an unplanned mid-read disconnect (didn't mean to lean on that cable...) the odds of catastrophic filesystem damage skyrockets.
So that was part of my fun day, and so marks the end of my blog hiatus!