Friday, March 9, 2007

The PDF From Hell!!

We've all had those days. We've all reached that point. Something is broken.

Everyone, their brother, and some dude name Cletis is on a conference call. It's chaos. Citrix is Down! People are eating each other alive and flinging small children out of windows. And one more MBA-sucking assclown manager wanting a status decides to ask you for an update on the crisis de jour .

"Well Frank, It's just about the same as it was 2 minutes ago the last time you asked me."

But this time the blackberry toting walrus has done it. That's it. You can't take it anymore. It's done. You f-ing quit!

.....

But wouldn't it be icing on the cake if you could really show them all just how far down the crapper they're going to be without your able hands on deck? Of course, I'm not talking about corporate espionage or anything of the sort, rather just illustrating the cumulative impact of very inefficient computing.

Enter the PDF from Hell.

Consider the following stats: (from loginconsultants.com)
  • Memory a couple of seconds after opening the doc: 80MB
  • Memory after browsing extensively: 150MB
  • Memory after printing : 216 MB
  • CPU 100% for a couple of seconds while browsing to the next page.
  • Starting a Printjob: 100% CPU for about 2 minutes
  • Printjob spoolfile size: a whopping 741MB!
Chances are that if your company is using thin computing one of the apps they're delivering is email. Get it? Imagine sending this little puppy to several thousand email users at once. If you figure about oh I dunno ~50 or so users per server the impact is immediate and ugly. In other words..tell those servers to bend over and kiss their dual core asses goodbye.

Of course, this type of thing is very useful when load testing and capacity planning too.

Play nice kiddies.

-CG

Tuesday, March 6, 2007

Deliver this.

Is it me, or this just disturbing?

Look, I get the whole podcast thing. I have a number of audio books that I follow via podcast. Really, I'm one pod-happy dude.

But please, we buy your stuff already. We spend thousands on licensing, training, and getting hammered at iForum. We've built our careers on your technology. Leave it at that and save the propaganda for the sales ferrets.

We're engineers, not corporate sluts.

-CG

New ICA Client Connection Tool

Released from Citrix today is the new version of the Client Connection Tool. You old school peeps no doubt remember the CSTK, which was a pretty decent hack for down and dirty load testing. Well this is like that, but with a little crystal meth thrown for good measure.

In our environment, it's only slightly more pleasant than rectal surgery to get users and business units to actually perform valid load testing. They're like little three year olds - slobbering all over their power ties with thick spittle that smells slightly of the lunchable that they just polished off.

They want it now and don't care whether or not it works. That is, they don't care whether or not it works as long as it works. As soon as it breaks or starts to run slow, they're the quickest to start screaming like that guy in Deliverance.

While admittedly this little tool won't help you slash you users' tires or send them threatening emails from their manager's mailbox, it will make simple load testing a little easier. The main bells and whistles include: A well constructed PDF that explains how to use the tool, an account creation utility, the actual connection tool itself, and a couple runtime files.

I'd like to give Citrix props for having the foresight to bundle all this stuff together. It's refreshing to not have to ferret out all the various dependencies that are needed to get the thing going.

So anyways, there's three basic features you can leverage with this thing:
  1. Custom Application Creator - this is the equivalent of your standard Loadrunner load generator, but with down syndrome. It does all the fundamentals, but nothing terribly intelligent. Of course for me, this is perfect because I couldn't give two shits about how to write Loadrunner scripts.
  2. Customer Application Duplicator - this is cool because it lets you basically define a template ICA session and then spawn several inbred step children from it. It automatically plugs in different user names and such to streamline the process. Kudos.
  3. Application Test Set - If you're the die hard application set kinda person, this setting can run published apps from the app set. I don't know how useful this really is since everyone I know uses Web Interface or PNAgent, but there ya go.

It's not terribly robust, but it gets the job done.. oh and hey it's free. Definitely worth checking out.

-CG

Tuesday, February 27, 2007

ICA v10.0

As the dawn breaks anew over the thin computing landscape, Citrix admins awake with a tingle in their arms and legs. They know. Somehow they know. It's what sets them apart from your average server wonkie. They feel it.

A new ICA client has been released.

There's actually a couple new releases. There's one specifically for Vista, and then there's the one that most of us refer to as the Win32 client which should also work on Vista. There's also a new "streaming client" which is consistent with the new desktop application streaming product offering. Pretty cool stuff.

I'd love to give you more info on them, but as of this writing the admin guides have yet to be updated to reference the new version. Helloooo? Citrix?? Can you hear me?

So don't take my word for it. Be the envy of all your friends and neighbors; download the new ICA client today! You won't be sorry. (But if you are, that's too damn bad because there's no docs to help you in troubleshooting)

Happy clicking!

Monday, February 26, 2007

Customers to Dell: "Give us Linux, Dammit!"

Here's a fun story that my brother sent me this morning.

Apparently Dell opened a customer feedback site. Now while this is pretty astounding by itself, even more surprising is what the top 5 requests are.

1. Pre-install Linux
2. Pre-install Open Office
3. Native Linux Build - basically the same as #1
4. No extra software installed (I really hate that crap too)
5. Install Firefox as the default browser

I think it's coming down to this. I don't think people are sick of MS necessarily, but people are getting smarter and more tech savy. At the same time, Linux is now much more than a command line. It's robust, very flexible, and pretty easy to use. Add to that the fact that more and more companies are writing software to run on Linux and you've got good recipe for a supportable software platform.

As a result, people aren't as intimidated by it as they once were and are willing to explore it as an alternative to Windows. To that I say Fuck Yeah!

What does this mean to Citrix?

Disclaimer: I don't work for Citrix, so anything I say about them is pure speculation on my part and probably a lie. Do your own homework.

For a long time the Windows platform has been the bread and butter for Citrix both on the server and client side. Of course Citrix already has a Linux client, but if they want to keep their head in the game they need to start paying more attention to where this thing is headed. They need to start putting some resources into rounding out their product offerings to include better than average software on the Linux side of the house - especially on the server platform.

Ideally, you could run a mixed farm of Windows and Linux servers and access applications from most any OS though Web interface. You could be running Gimp and Paint from the same farm. We're talking sick integration here, people. Stuff that today would only be allowed in Massachusetts and California.

Will it happen? Who knows. Remember that Microsoft owns terminal server, and the two companies are in bed pretty closely. It would be interesting to see what kind of pressure Microsoft puts on Citrix if they were to start offering a Linux suite.

-CG

Wednesday, February 21, 2007

Dear Microsoft, Suck it.

In case you haven't heard, DST is the new Y2K. That is, the hysteria once owed to the Y2K bug is now circling around the Daylight Savings Time bug.

You see, this year our esteemed government has decided to change the daylight savings dates around a bit. Of course, the typical PC with the typical operating system wasn't invited to that meeting and knows nothing about that decision or the impending collapse of civilization that will come from it.

In a mad rush to save us all from the inadequacies of their own products, Microsoft has released some patches to head off this calamity at the last minute. Swell, right? They only knew about it since August 2005. It's not like we server wonkies have anything else to do, right?

Well, they're only releasing patches for the newer OS's. That's right. Bastards. Oh, because no one in their right mind would still be running Windows 2000, right? That is so, like, old and stuff.

Well, I have news for you Microsoft. Your track record of stable OS releases is less than stellar. Hence, many companies have taken the wait and see approach so that they don't have to devote copious resources to keeping their environments running. So even though they're not on the most fashionable release of Windows, their stuff works and they get to do a little business on the side to keep the lights on. The point is that there are alot of legacy servers out there that are humming right along.

But that's not okay by you is it? You can't get any license revenue if folks don't constantly have to upgrade their stuff. So instead you publish a knowledge base article that outlines the slew of registry updates that have to be made just to get your stuff to work like it's supposed to. (http://support.microsoft.com/kb/914387/en-us).

In a situation such as this, Microsoft should step up and own the fix for their products, legacy or no. It's naive to think that everyone has moved on to Windows 2003 when 2000 is still a viable solution for many companies. Based on the scripts for updating Win2k that are listed on the above site, it would take slightly more than a gorilla to compile those into an MSI or MSP.

I wish I could run a company where the business model was, "screw the customers". It would sure make things alot simpler around here.

Tuesday, February 13, 2007

Server Uptime Script

The thing that you have to understand about J & E (former coworkers) is that they can script a sunny day. Script demons these guys were. Me? Yeah, not so much.

So as you might imagine, I was actually quite pleased with myself when I wrote my first vb script to pull server uptime. Of course it shelled out to uptime.exe and was very basic in it's functionality. My gleee was short-lived as J was quick to inform me that only people without penises shell out to stand alone exe's to accomplish tasks.

Alas, with J & E gone it has fallen on me to script things as needed. This is pretty scary when you consider the size company I work for and my relative skill set when it comes to scripting. The flip side is that it's given me a chance to improve.. which is coolio. So today I crafted a script that is pretty handy for pulling server uptime.

It's still pretty basic, but is flexable enough to use logic against the uptime value. i.e. if a server has been up too long, reboot it. Is it the most efficient code? Oh Hell no. E would probably crap a brick if he ever comes across it. Instantiating objects over and over again was one of his pet peaves.

Still it works, and my shabby development skills definitely allow for you to improve it when you steal it for your own use and claim to your manager that you came up with the idea. Hey it's cool; I know how it works. There's one guy in the world who actually knows how to write code, and he posts to the internet. Everyone else downloads, plagurizes, and re-posts it somewhere else. It's the great circle of life.

So here ya go.

'
'Try this in Production first. Just for grins.
'// USAGE: cscript.exe uptime.vbs (duh)

option explicit
'//Declarations
Dim strComputer, thefarm, aServer, intsystemuptime, objWMIService, colOperatingSystems, objOS

'// Get the farm 411
Set theFarm = CreateObject("MetaFrameCOM.MetaFrameFarm")
theFarm.Initialize 1

'// If this doesn't work we're screwed so exit
if Err.Number <> 0 Then
WScript.Echo "Can't create MetaFrameFarm object"
WScript.Echo "(" & Err.Number & ") " & Err.Description
WScript.Echo ""
WScript.Quit Err.Number
End if

'// Loop through the server name
For each aServer in thefarm.servers

'// set the hostname based on where we are in the loop
strComputer = aServer.servername

'// Compensate for small penis and crappy coding
on error resume next

IF not strComputer = "" then
wscript.echo "Checking " & strcomputer
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

'// Will error if the server is offline. You might want to know about that.
if Err.Number <> 0 Then
WScript.Echo "Something is jacked up. "
WScript.Echo "(" & Err.Number & ") " & Err.Description
WScript.Echo ""
End If

Set colOperatingSystems = objWMIService.ExecQuery _
("Select * From Win32_PerfFormattedData_PerfOS_System")

'//Nested For loop to enumerate the objects in the collection, yo.

For Each objOS in colOperatingSystems

'\\Get the number of seconds and divide by 3600 to get hours
'\\set as an integer because decimals are for nerds!

intSystemUptime = Int(objOS.SystemUpTime / 3600)
Wscript.Echo strComputer & " has been up for " & intSystemUptime & " hours."
wscript.echo ""
Next
Set objWMIService = nothing
Set colOperatingSystems = nothing
End If
Next

Monday, February 12, 2007

Resource Manager Web Interface

It's no secret that the resource manager summary database, while robust and filled with wholesome goodness, can be a pain in the ass to deal with. It's gotten better with the introduction of report center in PS3 and PS4, but it's still pretty basic. On several occasions, I've asked Citrix about this, and the response has always been, "It's all there, just write a query."

Fair enough, but if you're like me you don't really have time to devote to doing sql and asp.net development just to provide some useful metrics to some assclown manager. Fortunately if your name happens to the Jason Conger, you're nothing like me. In fact, I would wager that you're a fair bit smarter because this is exactly what Jason has done.

Enter Web Interface for Resource Manager. Just like it sounds - it's an easy way to pull meaningful data from the RM Summary Database and display it in a simple graphical format. Wow. Truly a deeper shade of soul.

Just to be fair, one of the managers at Citrix did author a similar tool a couple years back that was asp based. It's good, but it's not on the level with Jason's. I think it can still be downloaded from the Citrix website if you want to compare.

J turned me on to his website at www.jasonconger.com. Kudos to JC for a job well done. He's got some other cool toys for you MFCom code junkies out there too.

Tuesday, February 6, 2007

I hate web applications.

The problem with publishing a browser in Citrix is that it becomes very difficult to control what the hell these tards that call themselves users are actually doing.

Case in point, we have a slew of applications on our intranet that are accessed via a central login provided by websphere. Hence to access any one of them, a user needs to log in to the main page first. So it's just about impossible to limit what these wankers can get to since they all have the same launch page to get there.

So as one might imagine we're having performance problems with a web app. Surprise! Of course as we all know, some crap application going bulimic on system resources is always a Citrix issue. Oh right, because the chance of some half-cocked web application having problems is far and remote! Never mind that it was written by some 2 dollar outsourced developer who could likely not even spell "Terminal Services" much less write anything to run on it.

Like any other homicidally frustrated system admin, we went back to the original business group who absolutely had to have the application published or the company would never make another dime and we calmly said to them, "Hey, your shit is broken."

Then we said it again.

...and again.

...and again.

(you get the idea)

Finally, I consider taking a hostage when I receive an email from one of these business whelks saying that they have no reason to believe that the application is causing performance issues.

AGGGH!! WHAT??

How about the edgesight reports (great product, btw), screenshots, perfmons, and RM reports we sent you? How about the 15 years of experience I bring to the table that might lead me to believe that perhaps I would be able to spot a problem application when it repeatedly projectile vomits all over my damn servers? How about because I friggin say so?

Sometimes it's not even worth bringing the KY.

-CG

Friday, February 2, 2007

The very first post!!

Hi Folks,

Citrix guy here. And yes, this is the first post. You found it. Lucky friggin you.

Normally, the first post is reserved for fruity little blitherings about who I am, what I do, things I like, and other little factoids to help you get to know me.

Well screw that. I don't really care if you know me, and honestly it's probably better that you don't. I'm kind of an ass hole sometimes.

So on to the Citrix stuff. It's been a week from hell. Our normally stable environment has been riddled with stability problems. All of which have landed squarely on my lap. There's nothing better than some tard of a manager on a crisis call trying to tell you how to do your job. Yes please yell at me some more and then ask me again if the server has been rebooted.

The diagnosis is easy enough. It's a ticketing black hole. The ZDC logs show that some LLS ticketing request crapped out. Then low and behold Web Interface requests start to queue up on the xml broker and pretty soon things start to break down into dung.

The problem is that I'm probably too dumb to figure out what is randomly causing my Metaframe servers to take a dump when trying to issue tickets. It's one of those things that is going to turn out to be exceedingly simple like setting the "GOCOMPLETELYTOSHIT" value to zero in the registry. Of course, I could call my friend J who would listen to the sound of the mouse click over the phone and determine that a .dll file was the wrong version on three of the servers, but that would be the easy way out.

J of course is smarter than me and no longer works for our company.