Archive for the ‘ideas’ Category

an rts or tbs game like aoe or civ, but where the player only influences via stealth and espionage

Monday, June 17th, 2013

That may be the longest blog title I’ve ever had.

I know I will never be a game developer. I thought several years ago it would be something I’d like to get into, but it’s just not me.

However, I do enjoy playing certain kinds of games – especially the strategy and puzzle varieties.

I would love to see a real-time (like Age of Empires) or turn-based (like Sid Meyer’s Civilization) strategy game where the player affects his nation’s status, power, influence, and vitality via special operations, espionage, and other “non-traditional” game elements.

For example, how fun could it be to play the Barbarians in Civilization? Be the ancient equivalent to modern terror or guerrilla groups. Wouldn’t it be a blast to play the what-ifs of a successful CIA operation at the Bay of Pigs? Or how about being the controller in charge of spies like Mata Hari?

I’d play that. I’d even consult on what I think would make good game play actions and objectives.

Most of all, I’d buy that game.

p2p cloud storage

Thursday, June 13th, 2013

I have yet to find a peer-to-peer file storage system.

You’d think that with all the p2p and cloud services out there, there’d be a way of dropping files into a virtual folder and having them show up around the network (encrypted, of course) – replicated on some kinda of RAID-over-WAN methodology.

I’m thinking Cryptonomicon’s data haven, but done on the cheap (and not in a dedicated place like the Sultanate of Kinakuta).

I’d use it if it were built.

automation {gp}

Friday, June 7th, 2013

The way people moved up the ladder in IT during my early days (starting in 1975) was to take on new projects that allowed them time to master the new software and become the local expert. As you became the local expert on many new software products, management became very comfortable giving you more and more of these new software projects. Now, at this critical time you needed to train your replacement for some of the software that you had become the local expert because you could not maintain forward momentum with the tremendous drag caused by being the local expert for so many software offerings. Of course, you would get management to agree to lighten your workload because your current workload didn’t allow you to work on their next “Pet” project (after all you are now their go to guy). Also, you would push to give up the software that was either too time consuming and/or not part of your future automation plans. If you didn’t give up something (holding onto knowledge is your power trip), you would fail to meet management’s expectations and someone else would get the new projects and your plans would stall (cut off from new software knowledge and isolated).

When you start to automate, you automate your existing manual processes usually by using a wrapper because it is the fastest way of showing progress. However, after demonstrating that you can automate longstanding processes, you now have the evidence to convince management to allow you to automate your next project (beginning to end) because you will become the local expert not only on the new software but also on the automation software. After successfully completing the automation beginning to end, you are in a position to push for the policy that states that all new software/applications will be automated as part of its installation/configuration steps. Now, you push for automation friendly software/applications because wrappers will no longer be acceptable automation options.

The philosophy of automation document was compiled during IBM user group meetings from around 1987 through 1989 when automation was a very hot topic.

The Philosophy of Automation

Automation is not a technical problem it is a people problem.

When you initially automate, you convert your process flow documents into executable code that consistently runs on a prearranged schedule, or through a monitor, or an error message. These executable processes enforce your process rules every time.

You cannot automate processes that are all over the place.

When you automate your processes they will be transformed.

Because you automate your processes automation never ends

Automate as close to the source as possible.

Problems with automated processes occur infrequently but are more difficult to solve than manual processes.

The combining of problem, change, and asset management with automated process management and root cause analysis, improves quality and allows you to consistently meet your service levels.

All automation code is throwaway code.

Automation is very exciting

Automation is very rewarding.

Everyone is on the automation team


Guest Post from one of my colleagues, Dave B

publicizing compensation – why not?

Tuesday, May 21st, 2013

Many (if not all) companies have provisos when you become a salaried employee that you not discuss your salary/compensation package with other employees.

Most people have been raised in a mindset, largely because their parents have worked for companies like this (and maybe their grandparents, too – it is 2013, after all, and this is not a new phenomenon), that they shouldn’t ever discuss how much they make doing job R when their friend does job H – even at a different company.

Let me state, first, that I am not going to promulgate the idea that everyone should go around bragging about how much they make – especially if you are in front of either mixed company, or in front of someone you know is having a difficult time financially- after all, who wants to be the one guy in the room making $35000 when everyone else is in the 6 figures and gloating about it? I sure wouldn’t.

However, (and maybe I’m weird – though I don’t think so) I have never cared about how much you made in comparison to myself. If we are doing the same work with the same experience and we do not have the same compensation, it implies that one of us negotiated better (I have some thoughts about negotiating, too, both published and not). If you manage to get an extra $1 an hour ($2080 more per year), that’s awesome.

Given that the previous paragraph, outside of “basic” jobs like warehouse work, cleaning cars, etc, never happens – why should anyone be surprised that not everyone has the same compensation as the next guy? Somewhere along the line we got the idea that salary+benefits needed to be “fair”. “Fair” is a concept that only exists in economic theories not based on effort. (The first thing to know about compensation is encapsulated in the book Everything is Negotiable – and a related, but highly specifized1 form for salaries.)

There are services like Glassdoor that help to provide “competitive” salary information … but salary is only a small portion of compensation. Let’s say you and I both make $5000 a month ($60000 a year – make the math easy). But you have 2 weeks of vacation, and I have 4. But I took the lower-deductible insurance option, and you took the higher. Which one of us is bringing home more per month? Who cares! My individual desires and needs are, apparently, being met on my package, and yours are with yours. So why does it matter that we not discuss salary information with each other? Transparency is vital in the security world, it also is internally in a company. And between friends (though, of course, the amount of data we dump, and the methods we choose, will vary) it establishes trust.

Do I care if everyone in the world knows how much I earn per year? No. Tax returns are not public, but they’re not exactly private, either (they’re not that difficult to get if you want them). House sales prices are matters of public record. And from a house sale, along with known mortgage rates at the time of sale, you can determine how much someone is spending on their housing payment every month within a decent error margin (eg, $200000 home, 4% interest, 30 year mortgage, 10% down, you have in the ballpark of a $1000 base mortgage payment2 – within about 5-10% (to cover taxes, insurance, and PMI)). Presuming you’re not living on your credit cards, that means you’re making at a minimum $1500 a month ($18000 a year) just to afford to have a house payment. Add-in other normal essentials of 21st century America (car insurance and maintenance (or bike/bus money), groceries, phone, internet, tv, student loan, etc), and you’re at least at the household income level of $40000 (pretax). Likely quite a bit higher – especially if you have a car payment of any kind.

Why go through the miniature exercise above? Because no one seems to mind comparing they car insurance premiums. Or how often they eat out. Or what they like to cook at home. But SALARY! Heaven forbid you ever talk about THAT! That’s the one no-no in discussion of financial data between friends and coworkers. But it’s irrational when in just a few second you can ballpark the minimum someone earns.

We can compare generalities – vacation time, insurance plans, sick policies, maybe even bonuses (but only as percentages – don’t you dare use real dollars when discussing them) … but not the salary.

I read recently an Atlantic article discussing Millennials and the slow break-down of corporate boundaries to sharing compensation information. I think that’s wonderful.

Publicizing (at least internally) salaries (even if it’s in bands, a la FogCreek, HP, IBM, or the Federal Government (and Military)) is extremely positive. It doesn’t disclose stock options, bonuses, etc, but can give some kind of indication between colleagues of their relative value to their employer.

At one former employer, I found out shortly after I started that another recent hire (with more years of support experience) was being paid barely more than half what I was. And had had no options when he started (just weeks before me), when I had a modest issuance. Neither of us was upset about how much I was being paid, but I was disappointed to finally see “in the real world” such salary discrimination going on. The entire reason he was paid so much less than me? He didn’t negotiate well.

It was technically against company policy for him to tell me how much he made. And me him. Technically, it was a dismissable offense.

That’s the ridiculous part of not sharing compensation data – that by sharing it you can have your employment terminated. Employers who are worried about little things like whether a given employee knows another employee’s salary are [most likely] micromanaging – at least from the Personnel Department3.

Additionally, if the company is concerned that finding out how much someone else is earning is going to cause unhappiness amongst the team, they’ve done several other things wrong. They’ve [at least]:

  • hired people whose only motivation is money (or believe that’s the only motivator)
  • intentionally tried to undervalue their team
  • established an immediate sense of distrust
  • decided to treat their employees like children instead of adults who can rationally and intelligently discuss differences between themselves – and not just on their preferred lunch joint

I would love to see this aura of distrust disappear.

If you really do have people whose only motivation is money, you need a better team: they’ll jump ship as soon as something more lucrative comes along – instead of changing only when the work becomes more boring .. or more interesting elsewhere.


1 I know it’s not a word – I’m using it anyway
2 Divide the mortgage amount by 180, and you have the rough base payment on a 30 year mortgage (for the under 5% mortgages I see in mid-2013); your base payment is the home’s cost *2 / 360 (number of months in 30 years) – or just price/180
3 I positively despise the term “Human Resources” – employees are only “resources” to the MBA types: they’re people, and should be accorded good treatment (including referentially) as such

what to offer to be the best possible employer ever

Monday, March 25th, 2013

This will likely be an ongoing series as time progresses, but here are a handful of thoughts on how to really WOW your employees (or potential employees). Some of these ideas were garnered from my personal thought and observations, some from former employers, and some from other sources including “A Field Guide to Developers“, Fog Creek, Opsware, and Google.

  • Automatically “match” up to x% of an employee’s 401(k) – but deposit it (on a vesting schedule) regardless of whether the employee participates or not
    • Maybe you pick where the money gets distributed (target retirement funds, for example), but do it
    • Your employees will LOVE you (eventually)
  • Increase your level of 401(k) match based on loyalty – the longer someone works for you, the better it should be
  • Fully-fund some level of “good” health care coverage – regardless of whether the employee is single or married
    • Let the employee choose to go higher out of their pocket if they want, but pick a “good” option for everyone at a bare minimum (maybe a 70/30 plan with a modest deductible)
  • Competitive salary
    • Offer your best on the first try
    • Ironically, this is the least important item on the list – be competitive, but offering your best the first shot means the candidate can evaluate with no ambiguity
  • Give good standard corporate paid holidays and vacation
    • Minimum holidays (in the US) – 11-13.
      • New Year’s Day
      • President’s Day
      • Good Friday
      • Memorial Day
      • Independence Day
      • Labor Day
      • Columbus Day
      • Election Day
      • Thanksgiving Day (and the day after)
      • Christmas Eve (if a weekday)
      • Christmas Day
      • Day after Christmas (if a weekday)
    • Minimum vacation
      • 3 weeks
      • 4 weeks is better
    • Reward loyalty with better vacation accruals
  • Great work space
    • For appropriate jobs, offer up to 100% remote work
    • For everyone, make sure you have full offices for your people
    • Ample meeting rooms
  • Great equipment
    • There is no excuse to not give your employees the best equipment money can buy
      • Great tools make the work better
      • This does not mean you buy everything, you buy the best for what you need
    • eg For tech folks, let them choose the workstation / laptop they want
  • In-office perks (ie, for folks who come into the office)
    • Free drinks
    • Free snacks
    • Free meals
    • Free childcare
  • Education / personal development
    • Cover related classes (or create appropriate classes) for your staff to improve their skills for the business
    • Give everyone a book/tool allowance – and let them keep the books if they leave
  • Certifications
    • Pay for at least the first try of a work-related certification exam for appropriate employees
  • Allow salary / compensation information to be “public” within the company
    • Don’t bar employees from discussing how much they make
    • Every compensation package may be on a per-person basis (raises, bonuses, etc), but it’s not a secret
  • Put everything in writing
    • All benefits need to be in writing – bonus structures, profit sharing, etc

geeks night out

Thursday, March 14th, 2013

Last week I went to the Geeks’ Night Out at Beerworks in Lexington.

One of the people I met was a junior EE major at UK named Robyn who, along with two of her friends, is looking to start a home automation company (The Unity Box) – but not in the realm of a company like Ambiance (interestingly, a company I was going to start with as a junior developer back in 2001 when the bottom dropped out of the tech bubble – but that’s another story). They want to make a small control device along the lines of a DVR or Roku that would control smart outlets/switches in your home (and be able to learn a la the Nest about your habits (with, of course, manual overrides for non-pattern events)).

Yesterday I found the WeMo from Belkin.

Robyn – looks like you and Belkin should talk: they’ve done the part about the smart outlets :)

farming whales

Thursday, March 14th, 2013

We farm tilapia.

We farm chickens.

We farm oysters.

We farm deer.

We farm shrimp.

We farm bison.

We farm ostriches.

We farm kangaroos.

We farm all kinds of stuff.

Why don’t we farm whales?

don’t implement your scheduler in a pure queue design

Monday, March 4th, 2013

Recently came across a seriously funky issue with one of HP’s products (don’t laugh – I know there’s loads of funkiness in HP tools).

HP Cloud Service Automation allows you to schedule requests in the future. It also allows you schedule end dates for subscriptions.

That’s neat.

Here’s the problem: if you delete a Service Offering (which allows something to be requested in the CSA catalog) while an active subscription is using it – any active subscriptions get delinked, and become unmanageable with the tool.

Now the dopey scheduler comes into play.

CSA’s scheduler works by putting all future items into a FIFO queue. What this ends up meaning is that if you have an item that fails (because, for example, you’re now past a scheduled end date, but the subscription is unlinked from an offering, so it can’t unprovision it), all other pending items fail, too. Even ones that should happen “immediately” – because “immediately” is still added to the scheduling queue… behind the erroring item(s). And since those items have errored, nothing can move forward.

This is stupid. (And yes – RFEs have already been filed over these problems in the product.)

Instead, have the scheduler put all items into a table – at the appointed time, iterate through the table and run everything you can – if it won’t run, flag it as an error, and move on.

This is how cron works. Why would you not use a commonly-accepted, reliable way of doing things? Oh yeah – you’re HP.

If you’re planning to write something for your product/software/tool – see if anyone else has done it before, and then try to mimic methods that work… please!

reference materials

Friday, March 1st, 2013

I learned recently that my wonderful wife was never taught how to use a dictionary, thesaurus, almanac, or encyclopedia as a child in school.

Not all of that can be because she went to public school whereas I was homeschooled. Nor can it merely be that she grew up in KY and I in NY.

I’ve seen myriad others younger than her that can’t use those resources, either :(

Most people have the basics of how to search online down – but barely the basics*. In many ways, I think online tools are killing our ability to think critically in some areas – learning to ask questions well is one of those areas..

Why are these tools still important in a digital age? Well, what do you do when you need to find something and you don’t have your iPhone, Android, tablet, laptop, etc handy? Do you wait until you have internet access again?

What about when you are looking for something at a library or book store – do you exclusively rely on the staff’s knowledge to help you find what you want, or can you start to locate it yourself?

Part of the problem is that schools, because of the misguided legislation that is NCLB, all teach to the test. Tests can be wonderful tools – but they have no bearing at all on the “real world“. Your ability to score a perfect ACT, ASVAB, GRESAT, etc means precisely bupkis.

Being able to find what you need when you need it once you’re out of school, however, will be your daily lifeline to keep from drowning at work and in life.

I remember many times having to learn how to use new reference materials – and how to use ones I already had been introduced to in better, more efficient ways (I still look for better ways to find what I need with tools I have). I remember an entire class day devoted to learning what an almanac is (the Information Please, to be specific), and then doing “information scavenger hunts” through it (for prizes, mind you – yes, my team won first place).

I remember learning how to use the Funk & Wagnalls and Britannica Encyclopædias (my aunt owned the Britannica, my parents the F&W). I remember learning how to use World Book at the library.

I also remember my first semester at HVCC in 1999 where we went to the school library to learn how to search for materials online for our English class – and no one knowing what search engines were … nor even how to use the catalog the school had!

I think that was my first worry about the state of education and how ill-prepared most people are out of high school to be ready to function in further schooling. And I have only seen it get worse.

There is a fundmental breakdown in the education system in the United States. Is a solution redecentralizing? Homeschooling? Montessori? Private/parochial schools? Eliminating teacher unions^? Performance pay for teachers?

I think all of those will play important roles in improving the future of the country.

Something needs to be done – because the state of education today is very bad.


For the record: my wife does know how to reference materials at least at a cursory level – but those skills weren’t learned until she had to have them in college.


* search is broken, but that’s another problem
^ specifically, abuse of power, lobbying, etc

replace the restaturant buzzer

Tuesday, February 19th, 2013

Somebody needs to replace the ubiquitous restaurant buzzer with either an SMS- or smartphone-based tool: when you put your name on the waiting list, you give them your phone number.

When your table is ready, they can buzz your phone.

Fewer moving parts for the restaurant. Fewer chances to lose stuff. Less crap to carry if you’re a customer.

And if you don’t have a phone anywhere in your party? Well, those few folks can get a buzzer.