Day 231 – Simplify: Technology

I had already simplified the living-room entertainment set-up late last year with a 7.1 Harman Kardon amp and a consumer BluRay player to replace the Media PC that had done confusing duty for years to the dismay of all visitors that want to casually watch some television.

My aim for this year is further simplification though. I had looked wistfully at the Dell XPS 15 for some time as a replacement for both my Samsung ATIV 700 Touch convertible laptop and my custom PC (Silverstone case, 16GB ram, 240GB SSD, Radeon 7850).

I was hoping for something with more compelling gaming performance to come around… but then I realised that halving the output resolution on the XPS 15 probably gives enough performance for my needs anyway.

Then, when I spotted the bargain in the Dell Outlet Store for 40+% off the full retail price I decided Dell was trying to tell me something. So I gave in. It should arrive by the weekend.

That’ll reduce the number of my computers by 1.

The next and last step of my technology simplification plan involves our trusty QNAP 409 that has done faithful duty for a long time. Sadly its ARM 400Mhz processor is a little underpowered for what I’d like to do with it next. And a number of features in the latest models that I’d like to avail myself of.

As well as, eventually, installing enough space to rip copies of all my media off the discs we bought them on so that we can always play anything we own without having to find the right disc first. Yes, it’s lazy and indulgent. What about it?

I am very strongly leaning towards the QNAP 870 PRO model for the following reasons:

  • 8 bays = up to 28TB RAID 5 storage = enough head-room to keep everything
  • HDMI output with 5.1 sound = direct media playback if needed
  • Personal DropBox-alike system for file replication without using the cloud
  • Automated/scheduled backups of specified Windows folders
  • Add-on packages for Java, Python, MySQL, Git, and various web solutions
  • Virtualisation solution that can run multiple Windows/Linux VMs inside the QNAP

It looks like a capable candidate to quietly serve all our existing IT needs as well as some completely new ones within a convenient 60W profile.

Day 72 – Personal Development

Preparing for the presentation I did last Wednesday has had unexpected flow-on effects. Looking through code listings that I had not seen for a year, and re-reading my post on Reflection Performance made me want to play around and re-implement a more flexible version of the APIs in the latest .NET version.

And then the inevitable happened.

I started reading web pages.

And I remember all the techniques and methodologies I have meant to write about and apply properly. Maybe I should take this as a sign to combine the two and write a series of posts on my journey of “Doing Fast Reflection Right”.

What this would look like is something like:

I’ll try not to make (all) these posts a part of my 365 day challenge for fear of boring any non-developer readers.

Day 51 – Fractional Resource Plan

The Problem

I like being systematic and scientific about things where I can. Today I had to figure out what could be done to add bandwidth at work so we can take on more projects.

Let me paint a hypothetical that has slightly easier numbers than the real-world scenario I was working through.

Let’s say:

  • I have no spare bandwidth across my existing employees
  • I have 100 days of work to do
  • Contractors are going to take about 1.5 times as long due to lack of experience with the systems to complete tasks
  • Contractors need oversight, and for every day of original effort I will need to leave an employee on the work for 1/4 day to supervise and explain things

How hard can this be?

Trial-and-Error

I just needed a number, so let’s start from the top:

  • 100 days of work done with contractors will take 150 days
  • 100 days of work will leave 25 days in-house for oversight

Done! … Oh, wait… the reason I was doing this was because I had no in-house resources left, so I need to contract out 25 days of already planned in-house work to free up in-house resources for oversight:

  • 25 days of work done with contractors will take 37.5 days
  • 25 days of work will leave 6.25 days in-house for oversight

Ah, but again, the same problem… still… 6.25 days is almost negligible, I think one more iteration and we’ll have this worked out:

  • 6.25 days of work done with contractors will take 9.375 days
  • 6.25 days of work will leave 1.5625 days in-house for oversight

And let’s just call that a rounding error. So the total then becomes:

  • Contract resource: 150 + 37.5 + 9.375 = about 197 days
  • In-house oversight: 25 + 6.25 + 1.5625 = about 33 days

It looks like we end up with an endless series of ever-more-fractional contract resources that we need to hire, but luckily it converges quickly. But I’d rather not work this out step-by-step in the future.

Mathematics to the Rescue

I decided that working out the formulas to get straight to the totals based on variable parameters for oversight and the contractor-multiplier would give me a handy tool to assess ballpark figures in the future, so here goes.

I got out some of my old University textbooks to get some inspiration for the right approach to work this out. Luckily my instinct to go straight to my number theory books quickly delivered a winning strategy.

Definitions

To make the following formulas easier to work with, I use the following definitions throughout:

  • R = the number of in-house effort days to fill with contractors (100 in the example above)
  • M = the effort-multiplier when using external contractors, the more experienced and knowledgeable the contractors are in the systems they will work on, the closer this number approaches 1.0 (1.5 in the example above)
  • S = the supervision-multiplier for the amount of in-house effort that stays in-house as oversight (0.25 in the example above)
  • O = the cumulative total number of in-house oversight days needed to supervise the contractors we need
  • C = the cumulative total number of contractor days needed to resource the extra work

Total Oversight “O”

The formula for “O” is slightly easier to derive, so I’ll start there. First, I’ll quickly recap the example I worked through before:

  • O = 25 + 6.25 + 1.5625 + …
  • O = 100*0.25 + 25*0.25 + 6.25*0.25 + …
  • O = (R*S) + (R*S*S) + (R*S*S*S) + …

To get a completely accurate result I would have to keep going on indefinitely adding further ever smaller pieces of employees. (I hope HR doesn’t find out about my plans to slice employees into ever more fractional parts!)

With a bit of trickery though I can collapse that infinite formula into a much more compact version:

  1. O = (R*S) + (R*S*S) + (R*S*S*S) + …
  2. O = (R*S) + S * ((R*S) + (R*S*S) + (R*S*S*S) + …)
  3. O = (R*S) + S * (O)
  4. O – S*O = (R * S)
  5. O * (1 – S) = (R * S)
  6. O = (R * S) / (1 – S)

Step 1 is our original formula. In step 2 I isolate the first term and split out one “*S” from the remainder of the infinite series. The piece between brackets at the end of step 2 looks very familiar… it’s exactly what “O” is defined to be in step 1! In step 4 I subtract “S*O” from both sides of the equation. In step 5 I factor out the “O” on the left hand side. And a quick division takes us to step 6 with a three-operation formula for the oversight component.

Now, note that the division by “(1 – S)” from step 5 to 6 is obviously only valid if S is less than 1. But then, if your supervision factor is 1 or above there is really no point trying to bring contractors in. I’m sure we’ve all worked with people like that.

Unless you are in the enviable position of having contractors available that are so good they do not need supervision, then S will also never be too close to 0.

My gut feel at the moment is that realistic values for S probably are somewhere in the range from 0.2 to 0.5; where it falls exactly depends on the complexity of the work you want to get done, and how much of the work you are prepared to entrust to contractors.

Using this formula on my original hypothetical suggests that in-house oversight would actually be: O = (100 * 0.25) / (1 – 0.25) = 33.3333…

Total Contract Resource “C”

After explaining the derivation of “O”, doing “C” is actually a little easier. Going back to the example again for a recap:

  • C = 150 + 37.5 + 9.375 + …
  • C = 100*1.5 + 25*1.5 + 6.25*1.5 + …
  • C = (R*M) + (R*S*M) + (R*S*S*M) + …

Solving this infinite series of fractional contractors follows a similar pattern to my earlier attempt:

  1. C = (R*M) + (R*S*M) + (R*S*S*M) + …
  2. C = (R*M) * (1 + S + S*S + …)
  3. C = (R*M) * (1 + S*(1 + S + S*S + …))
  4. C = (R * M) + (R*M)*S*(1 + S + S*S + …))
  5. C = (R * M) + S * (R*M) * (1 + S + S*S + …)
  6. C = (R * M) + S * C
  7. C – S*C = (R * M)
  8. C * (1 – S) = (R * M)
  9. C = (R * M) / (1 – S)

I won’t explain the steps, because the tricks used are pretty much the same as in the previous formula.

The bounds on S were already explained above. M should never normally be less than 1, unless you make a habit of hiring the wrong people. How high M could get depends on how much you are prepared to spend on a contractor.

Once again, if you are in the enviable position of having a contractor that doesn’t need supervision because they are already familiar with your systems due to working with them before, then M could theoretically be 1.

If you are solving this problem for S = 0 and M = 1 though, I suggest that you just hire the contractor already because they are probably practically working for you anyway… and a salary is going to cost you far less than contract rates.

Realistically I’d say M is probably somewhere between 1.25 and 2. With values greater than 2, I’d suggest spending a little more and getting a better contractor instead.

Using this formula on my original hypothetical suggests that the required contract resource would actually be: C = (100 * 1.5) / (1 – 0.25) = 200.

Summary

To summarise, assuming you have no employees available at all in-house, then you can calculate the amount of contract resource and oversight you are going to need by picking:

  • R = number of days an employee could do it in
  • M = effort-multiplier for contractors (probably between 1.25 and 2)
  • S = in-house supervision-multiplier (probably between 0.2 and 0.5)

Then the total amount of in-house resource you will spend is: O = (R * S) / (1 – S).
And the total amount of contract resource needed is: C = (R * M) / (1 – S).

These are obviously fairly idealised formulas, but by playing around with the values of M and S around where you think they should be will give a pretty good sense of what the range of possible real-world outcomes might look like.

And if you have some amount of employee resource available, you’ll probably always want to use that first and subtract it from R before doing anything else.

Link Triage – On Sexism

Some links I had bookmarked are on the topic of sexism. I had planned to build a grand post linking it all together, but I think that is beyond my ability to pull off well enough.

My slightly less ambitious approach below is to just explain the links I collected (and some additions I found specifically for this post) and why I did.

Note that it has been a while I reviewed these links in detail. I will do my best to skim all of them and put warnings where needed before hitting “Publish”, and most of them will have been written by authors careful to put their own warnings on, but a blanket trigger warning might be appropriate here.

In Comics

It must have been a couple of years back that I first saw a post on Boing Boing on this topic. Everyone knows how female super-heroes … let’s say, do not have exactly the same kinds of outfits as the men. The standard counter-argument revolves around how unrealistic the male characters look as well… except they do not get put into over-sexualised poses at the same time.

An Equal Serving: Not so Comfortable
(via: Boing Boing)

It’s funny how images like this elicit “ow my eyes” and “make-it-go-away” style comments from guys that’d otherwise make the exact argument I reference above. Hypocrisy much?

In my efforts to try to re-find this image which I unfortunately hadn’t bookmarked, I came across another few good links on the same topic:

  • The Hawkeye Initiative (trigger warning) – which takes submissions of “fan” art that places Hawkeye in the poses of female characters; I haven’t checked the comments, and I recommend you don’t either
  • The Avengers Re-imagined – perhaps a little over-the-top (I think the artist has something for asses), but the point stands

On the flip-side of this particular coin, there is a Tumblr that specifically has images of Women Fighters in Reasonable Armor. It’s what it says on the packaging. Again, I’d recommend against reading the comments, but the images should be okay.

In Gaming

That last link above belongs in this section as much as the previous one. There is another Tumblr called Repair Her Armor that takes images of skimpily clad female characters and fixes them up. There is one specific post that digs into the dire state of female outfits in most MMORPGs though: Clothes I’m Forced to Wear in the Majority of MMORPGs.

Functional Armor

Now, let’s not get too stuck on clothing… it’s not the only problem surrounding women in gaming by a long shot, but it may well contribute to some of the other problems.

There is a series of very worthwhile videos by Feminist Frequency on YouTube that deal with the Damsel-In-Distress situation in games. It’s more dire and pervasive than you might think:

And let’s be clear, as Anita Sarkeesian herself suggests; there is nothing wrong with enjoying the games. But it’s important to acknowledge the problematic and pervasive dis-empowering stereotypes these games are commonly built upon. I hadn’t realised how common the Damsel-in-Distress is until she put loads of them back-to-back Daily-Show-style.

Then, early last year there was a story surrounding a Capcom fighting competition turned reality show (trigger warning). There is a video that shows how a female member of the team being shown gets harassed. And the story includes gems that equate the fighting game community with sexual harassment. By the coach of one of the teams. It’s stomach-curdling.

Unfortunately this isn’t unique to fighting games.

And it’s also not unique to the players alone. The story of Jennifer Hepler who got stalked and harassed on the Internet (trigger warning) for indicating in an interview that she doesn’t like playing games so much as experiencing the stories they contain. Her job? She’s one of the writers for Dragon Age. The same players that enjoyed her contributions to the story of the game ended up crucifying her over the admission that story matters more to her than play.

In Movies

Ever hear of the Bechdel Test?

It’s a very simple test that requires the following three things from a movie, and these three things alone:

  1. It must have at least two women in it
  2. They must talk to each other
  3. About something other than a man

Surely that cannot be a very difficult bar to clear for a movie? You’d be surprised. Painfully and unpleasantly surprised.

Enjoyable Movie, but Fatally Flawed in One Way

Some recent movies that fail to clear this low bar:

  • The Lone Ranger
  • Monsters University
  • Pacific Rim
  • Star Trek: Into Darkness
  • The Avengers
  • The Hobbit: An Unexpected Adventure
  • Looper
  • Cowboys & Aliens
  • The Muppets
  • Rango
  • Kick-Ass

This is by no means comprehensive, I just picked a few of the most recognisable titles for the list. And all the ones I’ve seen were very entertaining and I would see again. But that doesn’t change how troubling the systemic nature of this fundamental story flaw is. Many more movies that technically pass would fail the test if it required a whopping 60 seconds of conversation fitting the aforementioned requirements, so let’s not even go there.

In Science and Technology

This one I feel least able to be objective about, so instead of doing my own writing I will summarise the links I had bookmarked on this topic. They are all worth a read for what it’s worth.

I haven’t checked every article below in detail, so a general trigger warning applies… and again, don’t read the comments. Never a good idea on these kinds of posts.

Generally Speaking

I’m not sure why this post.

Actually, I am. Going through life as a straight white male is the lowest difficulty setting possible, and sometimes it’s good to remind myself of what a very common higher difficulty setting can look like.