Thursday, June 5, 2014

Possibly the Most Useless Code Post


Need a quick and dirty way to take an element normal XML file and turn it into a CSV file.  I know I could create something from scratch, but was hoping for a jump start on this since I am in a big hurry.

So I find this post.

This person gives me the code to take XML and turn it into CSV for his/her XML only!  Geez how useless is that?

I guess it just bugs me because I have been doing lots of interview code reviews and if I saw this I would laugh and hit the DO NOT HIRE button for this person.  Which has actually happened.  Sigh.


 

Tuesday, May 20, 2014

More Quotes

This blog was started/named based on some funny quotes from people I know.

Here are some more that we put on the board of honor...

  • "Please adjust your tone"

  • "Why not be paranoid"

  • "Maybe you should try unit testing"

  • "Please fix your software"

  • "Please fix your process"

  • "If all our assumptions are good, then we are good"

  • "It works on my machine"

  • "It's a gift from the Security Team"


 

Wednesday, December 18, 2013

If you smelt...you dealt it


No this entry is NOT about flatulence.  Ironically, there is a Wikipedia page that is - here.  Instead my intent is to opine on the practice at my employer about developers supporting their own code - which means that if you broke something then you are going to be the one to fix it.

When I was managing the production support team at my previous employer; the team's responsibility was to focus on the operation of key systems and ensure that they were available and meeting SLAs.  This team did a good job at keeping things moving - if something broke they got to be pretty adept at fixing issues.  If you look at this as an outcome with a fixed cost (which is how we structured it) then it can look pretty attractive.  But in the end the people on the team had many concerns/issues/complaints/etc about the challenges they faced in sustaining this model.  In the end - I feel that this model takes too short of a view of life cycle of a system and therefore is flawed.

First it is worth noting that Amazon has a list of core leadership principles that they live and breath by.  I have done a lot of chin rubbing around these as of late and the more that I play with them the more I like them.  When considering this post there were a few in particular that I felt applied..."Ownership", "Invent and Simplify" and "Insist on the Highest Standards".  If you read the short descriptions for each of these they are all pointing to how separating support from development is flawed.

If developers are not responsible for keeping their own code running or seeing how it behaves in production then how they doing any of these things?  Sure it is possible that you get outcomes in this direction; but it is not likely - especially without the ownership.

A related topic to this is how we work this into our Agile methodology to ensure that we still get things done on time.

Thursday, December 12, 2013

Firehose Treatment - Open Wide

I needed to take a short bit of time off from blogging while I worked out the details of interviewing, negotiating and relocating (at least me) to Seattle from Connecticut.  I am now into my second week of work at the largest online retailer and the fire hose is blasting full force.

Being this big means that someone has already done a lot of thinking about how to make something massively scalable.  Back in "the day" I remember pouring over the Principles of Transaction Programming book by Phil Bernstein.  I knew this stuff inside and out and it still serves me.

 


Given the massive need for scalability I have had to dust of some new/old theories. ACID is out BASE is in.  Sure I have read about a bunch of these over the last few years, but it is different being at a place that is actually doing it.

Here is a list of things blowing my mind today...

  1. Eventual Consistency - It will get there when it gets there.

  2. Anti Entropy - Anything with the word entropy in it I find confusing.  So what is Anti-Entropy? :-0

  3. AWS - I had to pay for this before, now everything we deploy is already running on this.  Note to self; shutdown my services and save a couple bucks.

Wednesday, October 9, 2013

Nasty Security Issue

Yesterday a colleague asked me to help with a security issue he was having.  He is someone who I consider to be a good developer; but does not have a good understanding of Windows security beyond the basics...Right click on folder -> Properties -> Security.

The problem manifested as this developer (only) loosing access  to a NAS share - "it used to work".

First I confirmed that he was in the correct Active Directory (AD) groups and those groups had sufficient permissions to the folders in question.  Check.  Conclusion - it should work.

Then I had the developer write a quick web application to make sure he was passing his full credential to web server.  Check.  Conclusion - not something that is globally impacting authentication/authorization.  Seems to be something in the "conversation" between this workstation and the file server.

Hmmm.  Next thing was to try this from another workstation.  He remoted into a old Windows XP workstation.  It worked!!  Conclusion - something going on with his workstation.

Now I know that on my laptop, when I log into Windows but I am not connected to the network - I am using a cached credential on my workstation.  I also know that part of that credential is the groups that I am a member of.  So it seems that what this particular workstation is passing to the file server does not have the right groups since the server is denying the request.  Seems like there is something dirty/broken in the cache.

I typed "windows delete cached credential" into my favorite search engine and got this post.  We followed the steps that Ashok spells out...
  1. From Control Panel\All Control Panel Items\User Accounts click the username To the left you will see Manage your credentials.  From that select the share name and remove.
  2. Delete using net use Start > Run > cmd > net use * /DELETE
...and shazam...it worked.

There is a first for everything - this was definitely a first.

Now onto a nasty SharePoint issue that I have been putting off.   Hey at least I may end up with another blog post.

Sunday, September 29, 2013

Interviewing

I was recently helping some colleagues think about interviewing techniques. I like to see work product from people. So, a while back I developed an assessment that we use. It has been a big help in evaluating candidates. It was incremental problem where each step was a question that led to a larger solution. It wasn't perfect, but I got to see some evolution of thinking. 



When I worked at Microsoft we took our interviewing very seriously. Certainly, there are lots of stories (myths?) out there about the process. Some truer than others. I have a master list of good questions and suggestions I still find helpful to review to get into the right mindset. I avoid the "Mount Fuji" questions since they just don't give me much useful data.

Along these lines...I was recently turned onto InterviewZen. I like the idea of being able to watch a recording of someone creating a work product. We have a classic computer science sort of problem (weighted graph) that I use, but I don't get to see the person working thru their thinking. I am going to try and adapt mine to this format.

Thursday, September 12, 2013

Powershell Quickee

As this title rolled off my fingers it made me laugh a little.

But hey, isn't everything in PowerShell a little quicker?  At least that is the intent.  Over the past few years I keep dabbling in PowerShell from time to time.  I have just enough experience to know what can reasonably be done in the tool - without over extending it.  <soapbox> It looks like there are some people who take this tool and use it to bang every nail they have.  But that is another blog entry. </soapbox>

Here is the script I crufted up today for showing me all the services that are on a server set to run at startup (aka Automatic) and yet are NOT running now.

I was using the get-service cmdlet but it did not seem to be return the StartMode and State properties from a remote server (works locally fine).  So I Googled up an alternative that uses WMI.


Mad Skills - New Claude Feature