Saturday, July 30, 2011

Intermission

While I step away for a little while, enjoy this nice performance by Petteri Sariola.  This guy blows me away.  Hit YouTube for more clips of him in various places doing various things.  Amazing.  Enjoy!

Thursday, July 28, 2011

Group Policy Loopback Processing: Replace vs Merge

Recommended reading:

http://feeds.4sysops.com/~r/4sysops/~3/1zE6FrBmHj0/

This is a great "part 2" article on Group Policy Loopback processing by Kyle Beckman at 4SysOps.  The entire article set is a great resource for anyone who works with Active Directory Group Policy, even if you don't bother with loopback processing.

The best way to summarize loopback processing to someone that has no idea what Group Policy is, would be to say it's like an election ballot where the question reads: "Vote NO to not allow the disallowance of none of the nothings nobody never not wanted"  It can be pretty twisted if you don't pace yourself on the way in.  The best advice I can give anyone (if I'm permitted to give any advice of any kind) is that you shouldn't touch any Group Policy feature without first [A] reading up on it from as many sources as you can find, and [B] testing the behavior in a lab that mimicks your actual production environment.

I cannot stress [B] enough.  Having a lab that is "sort of" like the production environment is fine for testing applications, Windows deployments, SCCM, SCOM, SQL, LDAP and so on, but for Group Policy testing it is not going to work.  There is way too much involved with layering, merging, blocking, inheritance, WMI filtering, user vs computer, loopback processing, and so on.  One small difference can change the course of the entire test.  And with "tattooing" you can end up with a mistake that is very difficult to undo or reconfigure.  A minimalist approach is the absolute best approach to implementing Group Policy.

With all this in mind, this article is a fantastic resource for wrapping your mind around one of the more terse aspects of Group Policy: loopback processing.  Enjoy!

Calling a URL from WinPE / DaRT Environment

So maybe you find a need to call a URL from a WinPE or DaRT session (yes, I know, DaRT is a modified WinPE), but without IE or a browser you find it a challenge.  Fear not.  There are options at your disposal.

Option 1 is to install a light-weight browser into your WinPE bundle, like Bart’sPE did/does.  Firefox is a fairly common choice for that, but if you can get another browser to do that you have that option.

Option 2 is to invoke the XMLHttp object via script.  You can do that with VBscript since wscript/cscript components are part of WinPE and DaRT.  The nice thing about this is with XMLhttp, you essentially have a browser but without the GUI.  You call URL's and even fetch (i.e. "scrape") the return HTML results if needed (I do that a lot and may post some examples soon).  A command-line browser, sort of.

Here’s an example of option 2 – calling an ASP page with parameters…

url = "http://myserver.domain.com/loginfo.asp?c=Workstation123&os=Windows7&ts=Enterprise32b"

On Error Resume Next
Set ohttp = CreateObject("Microsoft.XmlHttp")
oHttp.open "GET", url, False
If err.Number <> 0 Then
wscript.Echo "fail: unable to open remote URL for asset number!"
wscript.Echo "fail: error is " & err.Number & " / " & err.Description
Else
oHttp.send ""
textData = oHttp.responseText
wscript.echo "info: completed"
End If


If error-checking isn't your cup of tea (or Four Loco), you can leave off the code from line no.4 to the end.  The meat of this is lines 2 and 3 actually.  Just create the object instance and call the .open method.  That boils down to just the following...



url = "http://myserver.domain.com/loginfo.asp?c=Workstation123&os=Windows7&ts=Enterprise32b"

Set ohttp = CreateObject("Microsoft.XmlHttp")
oHttp.open "GET", url, False

In This Corner: IT vs Business Management

What is the most important thing that Business Management folks do not “get” about IT?

   Agility

What is the most important thing that IT folks don’t “get” about Business Management?

   Quantification

You could replace “Agility” with “Efficiency” but most IT folks have a very tough time having a full-on conversation about “Efficiency” with a room full of MBA suits.

You could replace “Quantification” with “Business Case”, but MBA suits have a different view of that term that IT folks.

In either case: one side knows what they want, but have a tough time communicating it in quantitative terms.  the other side can show quantitative ideas all day, but can’t metaphorize it into tangible examples.  How do you like that word, “metaphorize”?  Ha!  I claim it.

You can take a noun and make it a verb, like “man up!” and “Google it!”, so why not draw a metaphor by saying you will “metaphorize”?  Why not?  Anyhow…

IT folks innately “know” what it means to glue to heterogeneous data sources into a third new form that provides added value.  They know what means to upgrade a software product or operating system to gain new features that save them effort and time, and allow them to pursue new automation practices previously difficult or impossible to consider.  But if you ask them to quantify the savings or the gains they look like a deer in the headlights.  I’m not talking about university-trained CIO types.  I’m talking home-grown CTO and underlings.

MBA/CPA types know how to balance numbers.  How to clearly point out income versus outgo.  Revenue and expense.  Profit.  And they can break down revenue streams and expense allocations to see where the money “flows”.  But if you ask them what value a new Active Directory scheme or a newer and more efficient database means to business efficiency and they will most likely think you just spoke Swahili in a Chinese restaurant.

Are there exceptions to this “rule”?

Absolutely!  There are exceptions to almost every rule.  There are fish that fly and cats that swim, so rules are always with their exceptions.

MBA types that started out in the trenches, before going to school, are the most valuable of all managerial types.  They understand the world upon which they oversee.  And IT folks that have gone to school to study business, marketing and finance are incredibly powerful assets for any IT operation.  There are exceptions.  But I’m talking about the majority.  The status quo.  The standard issue. 

Bridge the gap.

Tuesday, July 26, 2011

Why Not Windows 7?

Let me begin by saying this: I don’t care what operating system you use, or which one you think is superior (whatever that means), or “best”.  I really don’t.  It doesn’t matter.  If my employer told me I was going to have to support a different OS product and still pay me the same (or more) I’d support it.  It’s a tool.  Like many people I know: it’s a tool.  It’s not a religion.  It’s not an organic treasure found in some island paradise.  They don’t cure Cancer or solve world hunger.  People do that.  Computers are just another tool people use to solve these problems.  Left alone and without any human interaction, they simply consume electricity and keep the room warm.

So, with that said, some folks are still on the fence (as it were) about justifying or rationalizing the upgrade from Windows XP to Windows 7.

meeting_jpg

Personally, I believe firmly that from a technological, economic and operational aspect, Windows 7 is the better choice (over XP), but there are four common reasons given for why others avoid jumping on the bandwagon:

“My peripherals don’t have Windows 7 drivers”

Ok, if you have the budget to buy newer peripherals, do it. Not just because it’ll provide newer drivers, it will, but also because it’ll give you a tool with an additional lifespan, greater features (usually), and they look better as well.  Let’s face it: older products often look ugly and stupid.

Part of me says: “that’s not Microsoft’s fault, that’s the half-assed vendor’s fault” and that you should either dump it and buy a newer product, or buy from a different vendor.  Another part of me says: “I understand that you can’t afford the impact on your budget to replace all your non-compliant peripherals”.  I see both sides.  But when I hear people blast Microsoft about it, as if it was their fault, not the peripheral vendors’ fault, well, I get pissed and start grinding my teeth.  Why?…

First off, vendors were given WAY more time to test Windows 7 with their products than even TechNet and MSDN members were.  They were given the earliest “alpha” and “beta” builds, and access to WHQL support and direct access to developers and premier support personnel.  This was true for Windows Vista as well.  Microsoft also told all of the vendors that driver-signing was coming down the pike and to get ready for it.  They started that with Windows XP Service Pack 2, but did most vendors pay attention? No.  So when Vista turned on the signing-check and some drivers squalked, customers got pissy and started whining.  This is no different than if I told you that next year I was going to change my web site on a specific date and when you didn’t respond on the date you blame me, instead of admitting to being a complete worthless dumbass dipshit.

So, some vendors responded by saying “we can’t afford to go back and retrofit drivers for legacy products”, which is a valid claim.  House builders don’t go back and change out rafters on all the past houses they built unless it’s tied to a fault in the construction.  Just because a newer model or material becomes standard doesn’t mandate they retrofit the masses already in use.  So for that I have to agree with the vendors.

BUT – for the drivers they delivered since the they were informed – they have no excuse whatsoever.  None.  Zero. Zip.  Nada.  The only excuse that works is “we are lazy, dumb and stupid and are ripping you, the consumer, off.”

“My Applications don’t work on Windows 7”

Much of the same rationale I provided above applies here as well.  However, unlike driver compatibility issues, MOST applications can be made to work on Windows 7.  Whether by using “compatibility mode”, or making shims with ACT 5, or just running them in Embedded XP, they usually work. Not always, and yes I know of some specific examples that won’t work, but of the 2,000 applications I’ve been in close contact with as part of my job, most of them work fine without any modifications, and of those that won’t run “as-is”, more than half work when using the available (and free) tools to shoehorn them into Windows 7 happiness.

“My Computer doesn’t have enough RAM”

Budget.  Pure and simple.  If the hardware won’t accept more RAM, you bought the wrong hardware.  Period.  You failed to plan ahead and heed the obvious writing on the wall that most IT managers have followed for the past ten years.  So if you had your head in the sand and now are stuck with hardware that can’t use more than 1 GB of RAM, you fucked up.

If your hardware CAN accept more RAM but you can’t afford to buy it, you have other issues to consider.

  • Is it because the overall financial health of your company is in the toilet?
  • Is it because IT is a low priority in the grand financial scheme of your managers?
  • Is it because you just don’t care about making users more efficient and flexible?
  • Is it because there is not business incentive to completing work in less time?

I’ve seen all of these (and more).  If you fall into the first two, you should seriously consider finding a new employer…. NOW.  If you fall into the latter two, start drinking or consuming drugs heavily and you won’t even think about what a mess you are creating for the idea of “work ethic” and “American dream” stuff.  Go ahead.  Crystal Meth, Crack, Heroin, Gasoline, Bug Spray, whatever rocks your world.  Maybe your replacement will want to pursue a more progressive strategy.

“One of our in-house apps (or web apps) doesn’t work with IE8”

Meet with the developers and see what they can do to make their shitty-ass crappy code work like it should.  Seriously folks, this is 2011,  THERE IS NO F__KING REASON WHY A WEB APP SHOULD CARE WHAT BROWSER IS BEING USED.  If they refuse to meet you half-way, beat the living shit out of them.  If any “web developer” looks at you, and with a straight face, says that you must use Chrome, or Firefox, or IE, or whatever, or the app won’t work, do this…

Sit them down, lean in real close, lower your brow and squint.  Then in a calm, low voice, say the following: “Either you make it work with any browser, or I’m going to break my entire leg off in your ass and beat you like a wild dog in a Korean refuge camp.”  Don’t blink.  It adds that extra effect.

If that doesn’t achieve the desired result, you can hire ANY 16 year old web developer and they will have no trouble at all making you a spiffy, Web 2.0, AJAX/JQUERY kick-ass site with groovy graphics and they usually dress with more flair, so don’t discount the entertainment factor in that.

Summary

It never stops amazing me that IT professionals, of all people in this world, are often the most resistent to “change”, when “change” is an inherent part of the “T” in “IT”.  “Technology” is not buggies and donkeys, it’s trucks, high-speed rail, ships and jet aircraft.  “Technology” is not rubbing sticks together, it’s using a portable lighter, blow torch or electric arc.  Get with the program or find another career.  Change is always coming.  Always.  ALWAYS.  Shoving your head in the sand is failure.  Facing down the changes and grabbing them by the horns is not only good for business, it’s good for YOU.  Yes. YOU.  Your skills.  Your resume.  Your career options.  They all benefit with each new thing you grab, control and conquer.

If you can’t afford to upgrade, but you want to, then find a way.  Beg, borrow or barter.  Cut something useless and reallocate the funds to make it happen.  Shit, my son’s baseball team raised almost $1,000 doing a 3-hour car wash.  What’s stopping you?

You want to upgrade, but your employer poo-poo’s it as unnecessary?  Quit.  There are a shitload of IT jobs floating around right now (it’s really weird too).  Don’t’ waste your time trying to educate thick-headed MBA suits who’d rather beat-off to balance sheets than hear your propeller-head ideas for streamlining information sharing.

Maybe you just personally don’t want to upgrade.  You’re putting your head in the sand.  You’re fighting change.  Maybe you chose the wrong career.  You should be an insurance agent, a parking lot attendant, or pet groomer.  There’s nothing wrong with any of those options; I’m just making suggestions.  You’d rather keep your foot on the brakes than on the gas pedal, when IT is all about time trials and fast and efficient pit stops.  Think it over.

Conclusion

Yes, I know this is redundant with “summary” but who cares.  When I get paid for writing I’ll start caring.  Right now I don’t, so what.  The final point here is that you really need to sit down and face the true reasons why you are refusing, avoiding or deferring an upgrade for your company.  Who wants it?  Who doesn’t?  And jot down the “why” answers for each side.  Then ask yourself what would be best for your company, your business, your competitiveness, and your future.  Just don’t forget that Windows 8 is just around the corner.

(PS: None of the people in that picture above have a clue about IT)

Sunday, July 24, 2011

Google+ Thoughts

Some features I am still a bit surprised were not in the initial release of Google Plus. I’m guessing they will be added in the near future (not soon enough, in my opinion.  speed is of the essence):

  • Post to Twitter so that shortened URL ties back to Google+ post (traffic vortex, duh)
  • Post messages and photos to G+ without the need for a dedicated app (like Blogger can do already)
  • More integration with Google Calendar, Reader and Gmail (as a bare minimum - I’d like to see all of the Google assets merged or linked more cohesively)

Don’t get me wrong, I love G+ (so far).  I was on Facebook when it first went public (a week before that you had to have a .edu email address to join).  At that time, only people 25 and older had any interest in it.  The younger crowd all loudly proclaimed MySpace was cooler at that time and Facebook was dull and boring.  In 2008, Facebook added schlock garbage (redundant terms, I know) like Games, Ads, Events and Surveys, and the crowds went wild (and stupid).

Between 2006 and 2007 there was nowhere near the amount of comparison review done between MySpace and Facebook in the press as compared to what I’m seeing now between Facebook and G+.  And G+ is still pre-release.  Maybe Google likes this process.  It is very similar to how they handled the acquisition of Garfield (later renamed to GMail), which kept the “beta” moniker for years.  I hope not.  Google used to be known for being fast and crazy.  Then they hired a lot of people, grew their campus, added data centers and now they’re suffering from the same bloat that punched the faces of Microsoft, Dell and IBM over the years.

I could go on and list my current gripes and annoyances, but why bother? Others have already begun that effort and I don’t feel like reinventing any wheels.  I have to assume that Google will address those in due time.  The microscope is already on them to see how they fare against Facebook and anyone else that decides to crash the party (Microsoft?).  We shall see.

Saturday, July 23, 2011

Me, Myself and I

Some meaningless trivia about myself…

  • I love a good lightning storm. The louder and brighter the better
  • I love the smell of JP-5 and Diesel engines
  • I’ve been stabbed and shot (at separate times, thankfully) both times by accident by people I knew very well
  • I’ve been bitten by Brown Recluse spiders on 4 occasions (I thought 5, but my doctor corrected me)
  • I’ve had acute Salmonella
  • I stood atop the World Trade Center towers in 1986, and again in 1990
  • I saw Fred Gwynn in a bar in lower East side of Manhattan
  • I remember certain numbers forever:
    • Every phone number my parents had from 1970 to 1997
    • The serial number of my first bicycle in 1972 (N457110113)
    • I still remember my dad’s SSN (he passed away in 1987)
  • I can recite certain things from memory that have zero value:
    • The chemical formula for Agent Orange
    • The Greek alphabet
  • The first programming language I experienced was QBASIC
  • The first programming language I was paid to use was LISP
  • I don’t have a favorite food, color, musician, music style, movie or author
  • I can roll my tongue, move my ears and my nostrils (without my hands)
  • I saw two extra-large women with shaved heads walking through a Wal-Mart at midnight, attached to each other by a small chain connected to their nose piercings
  • I was in the delivery room for the births of all four of our children
  • My favorite beers are Ales, Bocks, Stouts, IPAs
  • I don’t like Pilsners, Lagers or any “Lite” beers
  • I once watched a man perform “I love Mickey Mouse” in the Times Square subway station at 1:00 AM wearing pajamas and playing a Casio organ with jingle bells on his feet
  • I saw a car explode with a man inside and the firemen could only wait until it finished burning
  • I saw a tail engine fall off a passenger jet as it rolled down the runway (nobody was hurt)
  • I was knocked down in an airport by a runaway St. Bernard when I was 10
  • I’ve been “run over” by a moped
  • I’ve been hit by a speeding limo on 7th Avenue in NYC (only scratched up a bit)
  • I saw a judge laugh at a cop in the court room after seeing the evidence she carried in
  • A dog I once had fell over while trying to urinate
  • I had a cat that used to crawl up on top of a bush and sleep there all day
  • I’ve watched a snake eat a frog
  • I’m a carrier for Group “A” Streptococcus.  I rarely show symptoms when I have it, even while those around me don’t appreciate that very much.  If anyone in my family gets Strep Throat, I also get treated.
  • I’ve watched a Hawk carry away a rabbit
  • My childhood friend Mark and I were the first in line to see the first Star Wars movie on opening day at the old Newmarket North mall in Newport News.  We cashed-in aluminum cans to pay for the tickets.
  • I pronounce “S” sounds incorrectly due to a combination of years of boxing and a nasty car accident in 1981.  I’ve been trying to correct it ever since.
  • I held the high score on Defenders at the “Time Out” arcade in Newmarket North Mall for an entire week back in 1978
  • I once puked all over a Navy officer in full uniform and he didn’t get mad
  • I’ve had 16 cavities filled in my dental history.  The first 8 were without Novocain (because at the time I was afraid of needles.  now I love them)
  • I’ve had my genitals handled and examined by four female medical professionals in the same day.  None of them laughed. None of them offered up phone numbers either.
  • I’ve done courses of the following antibiotics in my lifetime (many were more than once): Penicillin, Amoxicillin, Tetracycline, Erythromycin, Azithromycin, Keflex, Ampicillin, Augmentin, Doxycycline, Ciprofloxacin, and Clarithromycin
  • I was part of the original drug trial for Accutane®
  • Up until the 2nd grade, I wrote with both hands.  Then my teacher harassed me to pick one side and forget the other, saying that continuing on ambidextrous would cause learning problems later on.  I had learning problems anyway.
  • Aside from boxing and martial arts, I’ve been punched in the face at least three times in the past 30 years.

  • I was once interrogated by three police officers who repeatedly asked me: “Tell us about the candy canes!” to which I kept laughing (I had no clue what it was about).  Luckily, they didn’t beat me up, they let me go.

Thursday, July 21, 2011

1.0, 2.0, you go go go, 3.0, 4.0 is slow slow slow

Most seasoned programmers (aka coders, code writers, code monkeys, hackers, scripters, code jockeys, Skittle-munchers, Mountain-Doo-bee-doo-bee-doo-ers) have a preference regarding which stage of a software development project they like to be involved with.

1.0 is pretty exciting, but only when you have a vested interest in the project.  Either it’s your own vision, being loaded onto the catapult and prepared for launch, or it’s someone else’s vision that you find appealing.  Or it’s a tertiary attraction.  Maybe a chance to learn a new language, toolset or method to add to your growing arsenal of brain juice.  1.0 is also risky and therefore exciting, but only if you are an adrenaline freak.  Those that prefer comfort, predictability and safety don’t usually run to 1.0 projects.  They tend to quietly insert themselves into 3.0 or later.

2.0 is best suited for the stakeholders in the vision, OR those who sat on the sidelines during 1.0 with a frustrated angst that caused them lots of nail-biting and furrowed brows.  Either it’s an exciting chance to clean up a mess, or correct the trajectory of a powerful rocket, or it’s a deep breath moment to regroup and start over (hopefully not).  2.0 is appealing to the adrenaline junkies because there is still risk and opportunity to try new things.  But there’s the safety of having absorbed the experience of 1.0 and how it was received by the user community.  Where 1.0 is like a blind walk through a pitch-black room, 2.0 is like a brief moment of turning on the lights to get your bearings, before the lights are turned off again and you continue on.

3.0 is not as appealing to the risk-takers.  It’s more attractive to the risk-averse, but it’s also a magnet for the optimization freaks.  3.0 is a golden opportunity for making the critical third trajectory correction, as well as benefiting from additional time for feedback collected from 1.0 and 2.0 to polish up the UI and API hooks.  For the code-freaks, it’s where they crack their knuckles, stretch and crack joints and do some Zen Tai Chi moves, take a deep slow breath, and dive into deep refactoring nirvana.

Conclusion

If you prefer Monster, Rock Star, Red Bull or Four Loco, or better yet: Four Loco with powdered Ginseng tablets poured into a hot coffee and consumed with a bottle of 5 Hour Energy drink, 1.0 is probably your best bet.

If you prefer coffee, working weekends, after hours, at the bar, in the Starbucks, in Panera, in the park, with an average of 4-5 hours of sleep per night, then 2.0 might be more your cup of electrified tea.

If you prefer properly-brewed hot tea with a balanced high-organic diet rich in vegetables, fruits and soy proteins while listening to relaxing music in the comfort of your Prius and getting an average of 8.000 hours of sleep every night, then 3.0 might be for you.

If you enjoy Frank Sinatra, re-runs of Ozzie and Harriet, and watch PBS 24x7 while stirring your glass of Metamucil, you should feel very safe and comfortable working on a 4.0 or 5.0 project.  But like Nature itself tends to do: 5.0 easily falls prey to 1.0 replacements.  Nothing is certain in this world.

Wednesday, July 20, 2011

Where's Waldo?

Majel & David 1965Captain's Log.  Star Date 2011072107040000.00.

I've begun reduction of presence as set forth in previous statements.  Gradual withdrawal from Twitter, Facebook, E-mail and SMS has been met with complete indifference, as expected.  An occupation force will remain on Google+ and Blogger for now.

Questions remain.  .. ... ....

"Dave? What happened to all those insanely weird situations you used to tweet about?"

"You mean, like the two shaved-headed 300lb chicks in the Walmart at 1:30 AM with pierced noses and a chain connected them together from their nose rings, strolling up and down the electronics aisle?"

"Yes."

"Or the 80 year old woman in the wheelchair who flipped me off and told me to 'Fuck off!'?"

"Yes!"

"Or the string of tweets about hot chicks in traffic jams on I-64 picking their nose?"

"Yes.  Yes.  Why no more of these stories?"

"They still happen.  Oh yes.  They still happen.  Not those exact same ones, but many equally as non-standard.  Like I've said many times: I am a magnet for strange events."

"What happened?"

"I got tired of reporting them.  I'll just store them in my empty brain cavity for when I'm too old to speak and I can just replay them inside and giggle while nurses try to shove pills in my mouth as my false teeth roll around in dog hair on the floor and I drool uncontrollably."

"Why stop now?"

"I'm not stopping. I'm in semi retirement.  Just like Ze Frank gave birth to Phillip DeFranco, who gave birth to Annoying Orange and the Banana-guy: evolution keeps evolving.  Or devolving, if you're a fan of Devo."

"You didn't answer the question." (scowl face)

Finger's tapping..... "hrumph." (coughs)

"Well?"

"I'm going through some difficult times, but I'm not going to whine.  I'm not going to be a buzzkill boner-killer, I'm going to laugh all the way until I hit the steel-reinforced concrete wall at 800 MPH on fire, and even then I won't stop until God says: 'Dave? Shut up.'"

"800 MPH?"

"Ok, my Subaru won't go faster than 75, but that's fast enough to reach escape velocity.  But look, the point I'm trying to make is that I rarely make any point at all, and that's the point.  I need to keep the joke going to keep my brain from focusing on the bad, which is how I always deal with bad, and that's good.  I'm hoping the good luck train stops by soon. Until then, I'll keep my ears on the track and listen for its approach."

Yes, I know this is rambling. But it's so damn fun.

Tuesday, July 19, 2011

KixTart+VBscript+BAT+PowerShell=zzzzzzzz

Boredom is the sugar-daddy of invention.  Necessity may be the mother, but boredom is the Yang to that Yin.  For example, while sitting around pondering the endless string of bad decisions I've made in life, I decided to build a mouse trap of script code.

KiXtart calls VBscript calls BAT calls PowerShell

You can take this and do whatever you like or ignore it and roll your eyes.  I got the inspiration from a recent discussion with a long-time colleague about a former colleague from back in the 1980's who wrote some insanity for MIT that used LISP to write C code and compiled and ran it based on environment condition tests.  In other words: it wrote the code it needed to suit the environment at that moment.  I really miss working with LISP, eh, ughg, whatever... ok, so there you have it.  Oh, each of the scripts is named "hello.xxx" where "xxx" is the appropriate extension for the language (.kix, .vbs, .bat, .ps1)... fa la la la laaaaaaa...

[CODE]

rem hello.cmd
@echo off
kix32.exe "%~dp0hello.kix"

;; hello.kix
@break on
shell "cscript.exe /nologo hello.vbs"

' hello.vbs
Set objShell = CreateObject("Wscript.Shell")
result = objShell.Run("%comspec% /c hello.bat", 1, True)

rem hello.bat
@echo off
powershell -ExecutionPolicy Unrestricted -File "%~dp0hello.ps1"

## hello.ps1
$a = new-object -comobject wscript.shell
$b = $a.popup("Hello world!",5,"Wasting Time",1)

[/CODE]

Saturday, July 16, 2011

System Reset

The three of you that read my blog regularly (and I must say to you: I'm very sorry) may have noticed that my last string of posts haven't had the usual "zing" and stupid jokes weaved in.  That's because it's Summer and things are keeping me occupied, and because the projects I'm working on are not rendering much inspiration for blog topics, and because I'm going through a tough time personally, but I'm not going start whining.  I just need to see how the cards fall and where I'm at when things settle out.  In the meantime, I will try to keep posting something worthwhile but hopefully will again return to the stupid jokes and half-assed humor you've gone to sleep to for so long.

Thursday, July 14, 2011

Subjective Scalability

This is aimed at IT geeks primarily, so the rest of you can do what you typically do when viewing my blog: sleep.

Think about each question carefully...  As it pertains to growing a small environment into a larger environment...

1. At what point do you switch from workgroups to domains?

2. At what point do you setup centralized patch management?

3. At what point do you implement a means for remotely installing software on all computers?

4. At what point do you begin automating inventory reporting?

5. At what point do you switch from internal mail hosting to external? Or external to internal?

The answer is?...  When it's convenient.  Yeah, I could dive into all sorts of painful metrics and ROI-ish rationale, but really, it comes down do convenience.  Even when the raw numbers prove to be a wash, the tipping point is gut feeling.  That dreaded morose feeling when you think of one more day of doing things the same way you've done for way too long.  The appeal of taking one more thing off your daily plate and freeing up time, hassle and also streamlining your environment, usually tips the ball into the new court.

The point is that with all the technology, all the fiscal analysis, all the economic pressures, the biggest deciding factor in major technological transitions is human emotion and human perseverance.

Some additional thoughts

One of the most common, and most commonly overlooked, concerns of many IT professionals is figuring out where their environmental "scale" sits in comparison with other environments.  Most of us think we have a large environment.  Or we think we're in a small or medium environment.  Whatever.  But how do you based that assessment?  Most of the time it's based on subjective reasoning based on conjecture and anecdotal information. 

I have no idea what that last sentence meant, but it almost sounded like I did.  But really what I'm trying to say is that we base our self-awareness on what we learn from talking to peers, reading articles, blogs, and so on.  We hear from six people that 30,000 computers is a large environment so we assume our 10,000 computer network is "medium".  But to someone with 250 computers, your 10,000 computer network is indeed "large", while to a 500,000 computer network admin it's a small environment.  It's all subjective.

I remember having a conversation with a Microsoft engineer years ago while rolling out SMS 2003 just before it was RTM.  After months of working in the beta program I was ready to roll it out but I had a question about architecture with respect to the size and geography of our environment.  I asked if 5,000 computers was "medium" or "small".  He said "well, that depends."  I said "on what?"  He said "how are they located?"  They were indeed dispersed widely across the U.S.  That led to another hour of chatting, but the take away I remembered was that even that isn't a hard-written rule.  It too was under the subjective view of a human.

So, if you're feeling confused or even a little in doubt regarding how to size up your environment, don't feel bad.  Even when it directly impacts decisions about how to plan and deploy a new product, don't be fooled by vendors making confident statements without doing your own analysis and comparisons.

Scripting and Configuration Manager Packages

Config Manager admins (like Altiris, etc.) are often splitting their time between deploying MSI, EXE application installers as well as custom scripts.  Quite often, and for good reason, they use CMD or BAT scripts to wrap up a sequence of things that would otherwise take longer or require more effort to do within a re-packager like InstallShield.  The problem that I see quite often is forgetting to return a meaningful result code to the Config Manager agent.

For example (BEFORE):

@echo off
msiexec /I “%~dp0myinstaller.msi” /quiet /norestart
cacls “%programfiles%\myApps” /e /t /c /g users:c
reg add HKLM\software\myApps\Fubar /v “Tarfu” /t REG_SZ /d “ABC” /f

If you don’t bother to explicitly return the %errorlevel% value you could be in for a very unhappy surprise.   A little dose of error checking helps a lot.  Here’s (just) one example:

(AFTER):

@echo off
set log=%temp%\myapp.log
echo %DATE% %TIME% msiexec /I “%~dp0myinstaller.msi” /quiet /norestart >>%LOG%
msiexec /I “%~dp0myinstaller.msi” /quiet /norestart
echo %DATE% %TIME% exit code %errorlevel% >>%LOG%
if %errorlevel%==0 (
   goto Configure
) else (
   if %errorlevel%==3010 (
      echo %DATE% %TIME% reboot required (suppressed) >>%LOG%
      goto Configure
   ) else (
      goto Failure
   )
)
goto END

:Continue
echo %DATE% %TIME% doing custom configuration changes… >>%LOG%
cacls “%programfiles%\myApps” /e /t /c /g users:c
reg add HKLM\software\myApps\Fubar /v “Tarfu” /t REG_SZ /d “ABC” /f
echo %DATE% %TIME% installation complete >>%LOG%
goto END

:Failure
echo %DATE% %TIME% installation failed: exit code %errorlevel% >>%LOG%
exit %errorlevel%

:END
exit %errorlevel%

Sunday, July 10, 2011

Ignoring the Obvious

The term “organic” occasionally gets tossed into conversation with regards to software architecture/design.  The basic concept is to make the software behave as though it sprung from Mother Nature, rather than a herd of Monster-swilling, Skittles-munching teenage kids with headphones on rocking out to the latest neo-punk and rave tunes.  PhD engineers spend considerable time trying to concoct things that appear organic.  A common example is Apple, but that’s much too narrow.

The best way to determine if something is organic, in my stupidly-humble opinion, is to look at how complicated or problematic something is in the eye of the user community.  That sounds pretty vague, I know, because it is vague.

Maybe if I pointed at two examples to contrast it will make more sense?  How about comparing System Center Configuration Manager (CM) 2007 and Windows Server Update Services (WSUS) 3.0.  If you skim through the various discussion groups and gather a sampling of the kinds of things that tend to confound users, new and old, and apply some basic trending, you’ll no doubt come to the conclusion that CM is a bit tougher to master than WSUS.  Granted, there are more moving parts and more things to consider for CM than for WSUS, but if you then take that a step further and compare the pain points from CM 2007 with the new features in CM 2012 you will see that the smarter engineers are looking at the same things to determine where to focus their efforts on the “next release” of their given product.

User Experience (UX) analysis is not a new art.  It’s been around for decades.  In fact, if you broaden your scope a bit, it’s been around for centuries.  But specifically within the software engineering world, it only comes up in small circles of discussion.  It often gets (unfairly) lumped in with User Interface (UI) Design and analysis.  That is misleading and very often completely misses the point.  User Experience is just what it says “User Experience”.  That definition goes way beyond UI analysis.  It also includes secondary and tertiary aspects of the behavior of a software product or technology, such as command line, format interchange, troubleshooting processes, deployment, licensing, configuration management, yada yada.

So, how then do most software companies tackle UX analysis?  Good question.  The answer is that every company has evolved their own methods.  There is rarely any standard, even with text books and professional groups trying to derive some common ground.  Some of the generally accepted methods are:

  • Beta trials, Previews, and so on
  • Anonymous surveys
  • Focus groups

The problem with these is that they don’t shine the full spectrum of light onto the gamut of issues and aspects involved with charting a software design direction.  It’s like walking into a class room and confronting a student with questions about a subject, as opposed to listening passively to a conversation between the students about the same subject.  The end result will almost always be ENTIRELY different.  I could cite other examples, but you should get the point by now.  I’m not saying that the assertive approach isn’t worth using, but it’s not going to yield comprehensive results.

The “obvious” term in the post title is aimed at what is most often missed.  Most vendors have online discussion forums, even Facebook pages (soon, maybe, even Google+ pages?), but discussion forums and open/public sites (like MyItForum.com) are golden opportunities for vendors to peak into the lives of their user community and see, directly, first-hand, what their customers find most challenging, most daunting, most annoying. It’s almost like being a fly on the wall.  Yet I am surprised at how few vendors take advantage of this opportunity.  Most are still focused on the three assertive methods I listed above, even though they have their own user-community discussion forums. 

I often wonder if it might help to have a dedicated section in most vendor discussion forums called “Bitching and Gripes” and let users get it off their chests.  Sure – there will be a lot of useless noise – but there will also be some golden nuggets to pluck and make use of.  I don’t know.  It sometimes feels like vendors have lost the art of communicating with their customers.  Customers want to talk, just let them, and then make use of it.

Friday, July 8, 2011

I’m Not Done Flip-Flopping on My Done with Flip-Flopping Flip Flop, OK?

One thing we, all one of us, can agree on, is that I’m not wired correctly.  Part of me is wired with sticks and mud, the rest with duct tape, condoms and beer bottle caps.  I’m all conductive though, trust me.  I just don’t conduct finances well.  I’m more of a fiscal insulator actually, but that’s a story for another year.

So, I drove a stake through WWA and pronounced it dead.  I turned to walk away, in slow motion of course, complete with dramatic movie music, only to have it spring to life and attack me blind.  I got it into a LAPD choke hold, wrestled it to the ground, placed its teeth on the curb and applied a Ed Norton American History-X stomp to it, but it still came to life, and grew additional arms, legs and eye balls as well.

To be fair, I never said the project itself was going to die.  I said it was not going to be maintained online, for public consumption.  It’s very much alive and well in multiple production environments, and therefor gets a daily dose of loving, feeding, and moral support.  As of today, it’s up to build 2011.07.08.002 and contains over two dozen additional features since 2011.05.13.001, the last public release before yanking the project from SourceForge.

To help out a few die-hard supporters and have an easy-to-access repository from almost anywhere, I returned the .zip download to my Google Site (http://sites.google.com/site/skatterbrainz) under the Downloads section.  If you care to keep up with its progress you can either visit it when you really bored, or add an RSS feed from the page to whatever RSS feed reader you prefer.  Cheers! Chou! Bon Voyage! Danka!  Arivadouche!

Windows 8

Two small, yet irritating things, that I hope Windows 8 addresses with respect to Windows 7:

  • Being able to put the Recycle Bin in the SysTray (or Task Bar, etc.) and not on the desktop, but still easy to access
  • Not assuming the name of a new compressed folder archive

The second one is confusing to describe, but here goes:

You open Windows Explorer and open a folder with a bunch of files and sub-folders.  You click and press CTRL+A to select “all” items, then right-click and choose “New –> Compressed Folder”, only to discover that it takes the name of whatever file or folder your cursor was near and uses that as the base name, and simply appends “.zip” to it.  To be fair, it automatically switches to “rename” mode after the compression is completed, but still, this is dumb UI/UX design.  It’s doesn’t make sense.  Just try to do a mock staff meeting where you pretend to be the UX engineer describing this behavior as though it were 2007 and you making a pitch to the dev team.  Yeah.  They’d shit-can you in the first 20 seconds.

So, here’s to hoping they address these little annoyances.  However, do NOT assume that I’m in any way “anti-Windows 7”, but I’m not.  I love the product from inside to outside.  But there are small things that could be improved, especially when we’re talking about a MAJOR release (not a .1 minor release).  I personally cannot wait to get my hands on the first test copy of Windows 8 once the new metro UI is fully bolted on, spit-shined and ready.

Saturday, July 2, 2011

A World Without Competition

Try to imagine what things would be like today had there not been fierce competition in certain key parts of our world.  I’ll give you some examples:

Had VMware not come about, cheap and accessible virtualization might not have happened at all.  Even if it had found its way into data centers, it would have likely been priced out of reach.  Free versions would likely never have happened.  Not because VMware did all this.  But because their emergence pushed others to step up and compete.  We got Virtual Server, GSX, VMware Player, Virtual PC, Parallels, Virtual Box, Xen and others.  Then came the hypervisor products and all that.

Had Google not pushed into web search services, free web applications and web advertising, there wouldn’t even be things like Bing, iAds, Virtual Earth, Bing Maps, Office 365, or even half the search features found in products like Sharepoint.  Again, this is not all Google’s doing.  It’s just that once they stepped onto that boat and it began to move fast, everyone else dove into the water to see what they could do.

Without Apple, where would portable music and multimedia devices be?  Where would tablets be?  Sure, Microsoft and others tried tablets many times, and they all failed horribly.  HORRIBLY.  But now they’re back in the game.  What about ultra-thin notebooks?  What about touch-screen phones?

Without Amazon, where would ebooks be today?  Where would the Nook be?  Sony Reader?  iBooks?

Without Netflix where would all the online movie services be today?

Without Toyota, where would hybrid vehicles be?

Without FedEx where would all the other overnight carriers be today?

COMPETITION IS GOOD.

PERPETUAL COMPETITION IS BETTER.