Showing posts with label rant. Show all posts
Showing posts with label rant. Show all posts

Thursday, 31 March 2016

The Pluralsight Mobile App Sucks

There is a request to allow offline storage of courses on the SD card but it's been active for over two years now.

This can't be an insurmountable problem as quite a few apps quite happily allow this:


In any case, yesterday after I could not update several apps for lack of space for about the umpteenth time, I thought, enough is enough and I endeavored to find a solution.

I first wrote a small script in PowerShell that called Handle.exe on a loop, to get the list of files being opened by the pluralsight desktop app and wrote that list of files to a file:

if (-not (test-path 'handle.exe'))
{
 write-host "Can't find handle.exe"
 break;
}

$files= @()

while($true) 
{
 $video =.\Handle.exe -p pluralsight | Select-String mp4
 
 if ($video)
 {
  $path = $video.Line.Split(')')[1] 

  if (-not($files.Contains($path)))
  {
   Write-Host $path
   Write-Host "Files Added So far: " + $($files.Count)
   $files+=$path
   $files > file.txt
  }
 }
}

This required me to click on each chapter (video) of the course to get it to be logged by handle, which while a little bit annoying I thought could be automated somehow with CodedUI or AutoHotKey but the former was not very reliable and I didn't have the patience for the latter.

The above script worked on the first course I tried but it was a bit hit and miss on the second and after a lot of playing about I realized that for small videos it would simply not work, not sure why that is, is it reading the file quicker than the loop loops?  I've not stopped to do the maths but it seems odd in any case.

The second part of the process was the script below, which moves the files to a new folder so that they can be copied safely across to the phone/tablet:

param ( [Parameter(Mandatory)] [ValidateScript({Test-Path $_})][string]$sourceFile, [Parameter(Mandatory)][ValidateScript({Test-Path $_})][string]$destination)

$files = Get-Content $sourceFile
$counter = 0 

foreach($file in $files)
{ 
 $dest = $(join-path $destination $counter) + ".mp4"
 Copy-Item $file.Trim() $dest
 $counter++
}

If the first script grabbed all files, then this script worked fine, but like I said, it didn't always do it, it seemed not to work for small files.

So, I did a bit more googleing, alas, it seems that there is no strace equivalent in Windows and then when I was about to give up*, I hit upon Process Monitor, which does exactly what I needed, in other words, and among other things, it can list the files that an application opens. In order to do this, all that is needed is the correct filter and a little bit more of PowerShell scripting.

Open Process Monitor -> Filter and set the following filters (in green):


In reality, it's probably enough to do the path ends with mp4 filter as no operation seems to generate a single entry for a file read, which means that some processing will be needed, but the QueryNetworkOpenInformationFile Operation seems to generate the fewer hits so I stuck with that.

Note, sometimes it simply doesn't register anything, in which case, just restart Process Monitor.

With this running, I can now go through all the chapters of the course that I want to watch on my mobile and I get something like this:

Now it's time to export the results to a CSV file, which you can do by simply pressing CTRL + S

Finally, it's time to process the file that I've just saved, for which I slightly modified the second PowerShell script:

param ( [Parameter(Mandatory)] [ValidateScript({Test-Path $_})][string]$sourceFile, [Parameter(Mandatory)][ValidateScript({Test-Path $_})][string]$destination)

$source = Import-CSV $sourceFile
$files=@()
$source.Path | % { if (!$files.Contains($_)){$files+=$_}}

$counter = 0 

foreach($file in $files)
{
 if ($counter -lt 10) { $prefix= "0" + $counter} else {$prefix=$counter}
 $dest = $(join-path $destination $prefix) + ".mp4"
 Copy-Item $file.Trim() $dest
 $counter++
}

The above script is fine, but I'd rather have a single file than loads of files, so I use ffmpeg to concatenate the clips:
param ( [Parameter(Mandatory)] [ValidateScript({Test-Path $_})][string]$sourceFile, [Parameter(Mandatory)][string]$destFile, [Parameter(Mandatory)] [ValidateScript({Test-Path $_})][string]$ffmpeg)

$source = Import-CSV $sourceFile
$files=@()
$source.Path | % { if (!$files.Contains("file '" + $_.Replace('\','\\') + "'")){$files+="file '" + $_.Replace('\','\\') + "'"}}

$fileList = (Get-Date).Ticks

Set-Content -Path $fileList -Value $files

$x= $ffmpeg + " -f concat -i $filelist -codec copy $destFile"

Invoke-Expression $x

Remove-Item $fileList
Remove-Item $sourceFile -Confirm
Using this technique is actually quite flexible I can create individual videos for each module if a single video for the whole course is too unwieldy.

Unfortunately, this last step doesn't appear to work too well on new pluralsight videos, which is annoying as there doesn't appear to be a free Video Player for Android that does all of these:
  • Play all files from a directory.
  • Play at up 1.5x speed.
  • Allow the video to fill the screen.
So I say that there is no free video player that does this at the moment for Android.

Monday, 15 February 2016

Can't afford a certificate

Today somebody at work told me to log in to our gotomypc account and I manually typed the address: https://www.gotomypc.co.uk/


Clearly the UK is not an important enough market to merit a proper cert or a SAN.


This is the certificate for the .com website:


Wednesday, 3 February 2016

MSDN Subscription - A Very British Rip-Off

So a few days back I was considering whether we should take the plunge and fork out for an MSDN subscription for all our developers, there is five of us and given where we want to be it made sense.

This was a cost that had been budgeted for so, in theory, this should not be a problem, but as with all large purchases, and for a small firm, 5 MSDN subscriptions is a Large purchase, which meant that we had to get approval from above so I went to this site to confirm prices.


5 x $1199 even at silly exchange rates, should be less than £5K, so I thought, this would be an easy sell as it was less than we had budgeted, boy was I wrong.

If you are in the UK, you can see for yourself here, which shows you this:


What????? 

The exchange rate used by Microsoft is $1 = £1.01, rather than $1 = £0.68, so close to 50% surcharge. 

To put it another way, if we converted back to dollars, the price would be ~ $1780 rather than $1199.

I really like to hear an explanation from Microsoft, it certainly can't be the taxes the have to pay in this country, as the sales will probably be billed to the Irish subsidiary.

For the record this is the exchange rate today, according to Google:



and for the really lazy: 


I know there are resellers out there that do a cheaper price, it still does not change the fact that Microsoft itself applies an almost 50% surcharge to UK developers.

Saturday, 22 March 2014

Some companies take security best practices seriously, others not so much

I was trying to register for an online account with Sainsbury's Energy last night so I navigated to https://www.sainsburysenergy.co.uk. 




So to sum up, I'm trying to navigate to www.sainsburysenergy.co.uk and the certificate is for www.sainsburysenergy.com.

Note that https is only mandatory for Log In and Register Now only but I'm too lazy to take screenshots again. :)

This is www.sainsburysenergy.com, as I said above, it will only go on https for Log In and Register Now


Somebody should set up a proper redirect or get another certificate.

Wednesday, 12 June 2013

Developers vs Testers

Last week I had the usual argument between developers and testers. (Note, I did not actually write the code that was the source of the issue, but I am getting ahead of myself.)

Tester: Why did you close the ticket as working to spec?
Me: Occam's razor. 
Tester looks baffled at me
Me: Wikipedia
Tester looks even more baffled
Me: Look it up in Wikipedia
Tester left admitting defeat.

That's how it should've played out but alas it wasn't.

The issue raised was that the invoices related to an account did not have the correct number, for various reasons too involved to explain here, we have separate auto numbering counters for different invoice types, thus it's perfectly valid to have 30 invoices and the 31st be numbered 1 if it's the first invoice of this type, e.g. 30 for consultancy services and 1 for accountancy services.

Unfortunately, the auditing system in MS dynamics CRM 2011 is not perfect so deleting invoices, which is actually a custom entity, leaves a record that they were deleted, by whom and at what time, but crucially it does not say which invoice was deleted.

I responded to the tester, after checking the audit view, that he must've deleted the invoices and that explained the incorrect number and closed the ticket.

The tester was not happy, they thought it was a real issue that needed looking at and this is where things normally take a turn for the worse, because we, as developers, assume that the tester did something wrong. 

We don't just assume that the tester did something wrong, of course, we check our code (✔), we run a unit test (✔), we might actually prove to the tester that the functionality that the tester raised a defect about working properly (✔), so why is this insignificant little tester wasting my time rather than accepting that they did something wrong?

It's pretty simple really, they need an explanation that satisfies them

Nobody likes admitting that they are wrong and in cases like this, where the issue, at least to the tester, is intermittent, they would like the developer to prevent it from happening again.

At this points my options were:

  1. Get into a ticket passing ping pong match (which almost certainly would've escalated to ..)
  2. Escalate to PM and/or TM
  3. Reproduce the bug.
So I did, and it turned out that my explanation was only half right. Yes, they had deleted some invoices but there were genuine holes in my explanation.

Is there anything that can be learned from this episode?

  1. Don't be lazy.
  2. Don't assume that the tester made an error
  3. If you are sure that the tester made an error, then see #1 and do replicate the error that they made, who knows they might help you uncover some bugs in the system.

Monday, 25 February 2013

How to hire experts in a field of which you know nothing about

I went to another interview a few days back, the position that I was interview for was of MS Dynamics CRM developer. The company had decided, god knows why, that their perfectly good .NET system wasn't up to scratch anymore and so they were going to move it to MS Dynamics CRM 2011. It looks as if the head developer might have done some of the Dynamics CRM 2011 certifications, but it doesn't look as if anything else related to Dynamics CRM 2011 might have been done by anybody, other than install it on the dev server.

I was asked three technical questions:
  1. Write a complex SQL query (I was given some tables and asked to write a query to extract the average of some column with some filtering and joining)
  2. Explain how locking works for SQL Server Databases. In particular what was the behaviour of  selects and update statements, see this for details.
  3. How would I debug a WCF service? I don't know, run it from Visual Studio or use a remote debugger.
It is possible that they decided that they did not want me and were looking for a way of closing the interview quickly, but I think that they just didn't know what would prove my knowledge of, or lack thereof,  Dynamics CRM 2011 so they asked me about stuff that they knew about as some sort of knowledge proxy.

I must admit that I've never been in a position to make a decision about hiring anybody, I have looked over many CVs, but never actually interviewed anybody, but I simply cannot see how this is a good way of establishing potential performance on a person on any given subject. It is a good way of establishing whether they know about something that you know, but that's not really relevant when you are hiring for something that you don't know, is it?

Granted that these were not random questions but it's hard to see how they enable to make a reasonable guess at anybody's competency on another somewhat related field. How related these are is a matter of opinion.

The salient point is that use knowledge proxies is a bad idea.

At the same time, I must admit that I don't know of a good way of establishing degrees of competency on a particular subject, if you know very little about the subject.

If somebody were to bullshit me about the intricacies of STP or VPNs, I simply wouldn't know because I know very little about those areas, certainly not enough to establish somebody else's competence on the field.

Recruitment agencies could do some of this job, but all they seem to do is look at CVs and ask really bland questions, e.g. so you are comfortable writing plug-ins and custom workflows?. I guess somebody may answer: actually, I haven't got a clue what you are talking about, but it's unlikely. 

At the end of the day they are recruitment people not techies, so they would have to charge more for their services if they had techies to evaluate other techies on competency, but how would these judges of competency by judged themselves and I guess therein lies the problem.


Tuesday, 8 May 2012

Use PowerShell to test TCP and UDP connectivity (Open TCP/UDP Socket)

A while ago some security expert, and I use expert in the loosest sense of the word, raised the alarm about telnet. Yes, that old trusted telnet used by all to test connectivity using TCP sockets and used by none, I hope, to connect to a remote shell. If you are reading this and still use telnet to connect to a remote shell, let me introduce you to openSSH.

Telnet, we were told was not secure, which is true, but it is also true that not a single server in the estate had a telnet server running. All (windows) servers could use a telnet client, but it's not very useful if the server is not there, but no matter a new GPO was created to prevent the use of the telnet client.

Today, we needed to test connectivity to a server as a batch had failed. We were being told that it was a network issue and thus we needed to be able to establish that this was not the case, but telnet was not available, thank you security expert, which raised a bit of an issue. Enter PowerShell:
 $socket = New-Object net.sockets.tcpclient("hostname",portnumber)
That is it. If the socket can be opened this will take a very short time, if it can't then, it will take a while to time out. Note that the IP address can be used instead of the hostname, but the method still takes a string, so it must be in quotes:
PS C:\> $socket =New-Object net.sockets.tcpclient("74.125.132.105",80)
PS C:\> $socket

Client              : System.Net.Sockets.Socket
Available           : 0
Connected           : True
ExclusiveAddressUse : False
ReceiveBufferSize   : 8192
SendBufferSize      : 64512
ReceiveTimeout      : 0
SendTimeout         : 0
LingerState         : System.Net.Sockets.LingerOption
NoDelay             : False
Note, that there is a udpclient on the System.Net.Sockets namespace that can be used for testing udp connectivity.

For completeness, this is the result of trying to connect on port 8210:
PS C:\> $socket =New-Object net.sockets.tcpclient("74.125.132.105",8210)
New-Object : Exception calling ".ctor" with "2" argument(s): "A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 74.125.132.105:8210"
At line:1 char:20
+ $socket =New-Object <<<<  net.sockets.tcpclient("74.125.132.105",8210)
 + CategoryInfo          : InvalidOperation: (:) [New-Object], MethodInvocationException
 +FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

PS C:\> $socket

Client              : System.Net.Sockets.Socket
Available           : 0
Ttl                 : 32
DontFragment        : False
MulticastLoopback   : True
EnableBroadcast     : False
ExclusiveAddressUse : False

Monday, 20 February 2012

The Windows Security problem or ...

A few weeks ago, I got home, switched my desktop PC, which runs Windows 7 Ultimate, patched to gills, and I was greeted with bucket loads of errors.

It complained that I had some sort of issue writing to disk. One of my hard drives makes a really strange noise sometimes and I thought it had finally given up the ghost. 

A pop-up appeared suggesting that I could fix it now or later, when I clicked later it bounced my desktop. It started up again and the same malarky with the errors occurred, so I decided to fix it this time. This started a program that scanned my desktop and it announced that the c:\ drive was unreadable, which is when the alarm bells should have started ringing, because if it weren't readable then how did the system boot up? 

Anyway, I followed the charade a bit more to see how it develops, after all I wasn't sure what was going on and after a diagnosis telling me that my ram is running at 83 C, which to my eternal shame I believed, at least for a moment; I'm informed that most of my problems will not be fixed by free version, but if I buy the paid version, all will be well. So I follow the link, which launches I.E.

Except that it isn't I.E. but something that looks like I.E., I guess so that people are not freaked out, and this is when the penny finally dropped and I realized that this is one of them fake programs, welcome System Check Virus;a bit slow on the uptake, I know (hangs head in shame).

I have read about these virii before and I know my mother in law actually paid to get rid of it. She got rid of her computer shortly after, so I don't know whether the pop-ups would come back after a while. I suspect that not for a while, until the new super duper version was out and her credit card was not abuse, but I digress.

So I followed this guide to get rid of the little bugger, which can be done with Malwarebytes' Anti Malware. Ironically, I had installed it but because I barely use my desktop at home anymore, I never actually ran a scan with it.
Let that be a lesson for me in the future.

It's simply mind boggling, though, that this kind of virus can run in Microsoft's latest and greatest OS and yet UAC prompts you to approve even something as mundane as opening a management console.

One of these days I will bite the bullet and buy a Mac... well maybe.

Sunday, 15 January 2012

Windows Azure from Windows XP

A few days ago a colleague pointed out that thanks to our subscription to MSDN we get free access to the Microsoft cloud system, Windows Azure. So I thought I would give it a try, boy was I in for a surprise.

After signing up and logging in, I made an attempt to get the SDK to see what all the fuss was about and this is where all the fun began. Microsoft's answer to Yum or Aptitute,  Microsoft Web Platform Installer was installed and then all the pre-requisites are installed in order, which takes an awful long time and when you think it has finished, you realized it has failed to install everything because, and I'm not kidding, IIS 7.x is needed, say what? I'm running Windows XP, why the b£$%^& h!"£ would it not check this first? I appreciate that each installer will run its own checks but why doesn't MS Web PI check this? Why isn't it clear that development on Windows XP for the Windows Azure is no longer supported, if it ever was. I sometimes dispear with Microsoft.

You need to go to the microsoft download page, e.g. sdk 1.4 itself to check the pre-requisites as there is nothing on the Windows Azure page itself. If you click install this launches MS Web PI and then you run through the whole frustrating process.

Saturday, 14 January 2012

The Linux usability problem

It seems that every time that I want to do something quickly in front of my Kubuntu Laptop it almost always turns into a bit of a nightmare. I'm quite conformable using a console, vi does not intimidate me anymore and I consider myself to be reasonably tech savvy, but Linux at home really does try my patience. 

At work, I really don't mind if I have to spend two hours to do something that takes 3 minutes in Windows (e.g. joining a RHEL 6 box to a Windows 2003 AD); I consider it the price one pays for freedom and most of all I really do relish the challenge. If something is hard when it's finally achieved it feels like so much more of an achievement, because it is, even if in reality it isn't, you just didn't know how to do it. 
However, when I'm at home I want things to work, I already spend 8 to 10 hours a day dealing with frustration, I don't want to do the same at home and Windows 7 just works. Just two examples that have led to loads of frustration recently:
  1. I wanted to have a look at a web page that had a java applet, which kinda works out of the box in Windows, yet I could not get it to work in Firefox and when I got it working in rekong, it did not work properly. I know there are guides to install the java plugin for firebadger but I couldn't get it to work. I also know I'm an idiot and an ignoramus for not getting to work, still. I had similar issues with Flash before I upgraded to 11.10.
  2. I acquired a Logitech webcam to do video conferencing with friends and family. I've also used it to record a few videos clowning about for said friends and family from my Windows 7 desktop. I wanted to do some clowning about in the sitting room using my kubuntu laptop but I could not get any of the various options (VLC, Mplayer,  Cheese, UVC) to work properly. No sound, would not record, would crash, etc.. Compared to plug and play, download Windows Movie Maker and off I went, it's not contest.
I guess if I didn't work in application development/support I might enjoy the challenge at home, I know I used to, but now it's just a lot of hassle for relatively little reward, I think I'm sticking with Windows 7 for home use for the time being.

To a some extent the problem is due to lack of manufacturer support, but seeing as Linux currently commands a 1% share of the desktop market, they figure it's not worth the hassle and thus fewer people will make the jump, thus not giving manufacturers a reason to invest in Linux, in other words a classical catch-22 situation.

Friday, 16 December 2011

What the ...., Microsoft?

In the run up to Christmas we seem to have a very light workload and I thought I'd give MS Sharepoint a try to see what all the fuss is about.

I got the ISO from MSDN and after using my newly acquired mad PowerCLI skills to clone a new VM, I ran the Sharepoint installer.

I clicked on the install pre-requisites option and after a few minutes it stopped working, why? because it could not connect to the internet, say what?

You expect an enterprise grade application to have internet access? This is insane, this is the sort of crap that really makes me wish I had nothing to do with Microsoft.

Anyway, you can find all the pre-requisites here, download them and then you can install Sharepoint 2010 SP1, maybe.

What I really don't understand is why they are not contained in the ISO: if they are pre-requisites then they should be in the ISO. It's only the optional pre-requisites, that's a good oxymoron, that should need to be downloaded, but mandatory pre-requisites? 

I sometimes don't understand Microsoft. It seems to bend over backwards to make life easier for everybody, particularly developers, and every so often you get stuff like this, which makes no sense whatsoever.  

Monday, 12 December 2011

The Magic Wand Theory

If you've been working in IT for a long time, like I have, at least it feels like a long time, you probably have experienced the effects of the magic wand theory. This theory could be formulated like this: 
There is an employee/consultant that has sufficient knowledge of a system and/or technology that he or she will be able to fix any issue with said system or technology as if by waving a magic wand.
At least management seem to think that this theory holds true.

I feel very strongly about the magic wand theory as I've been on both sides of the theory: The Apprentice and The Wizard.

The Apprentice

I joined my current company fresh out of university and consequently there were massive gaps in my knowledge, I was the Apprentice to the consultant Wizard. We ran into several issues during the first weeks of live running for an application and time and time again the consultant would repeat the troubleshooting steps that I had carried out. Sometimes he fixed the issue, sometimes he didn't, but the reality that I was an apprentice meant that whenever there was something unexplained or that I could not explain satisfactorily, The wizard would be called. Ordinarily he would be just as stumped as I was and it was through collaboration and analysis that we managed to sort the issues out. Yet the perception that I was still an apprentice never quite faded.

The Wizard

I only became a wizard through the process of acquiring an apprentice, i.e. somebody with less experience than me. In a similar fashion as when I was an apprentice, my apprentice's opinions were ignored and almost always required my confirmation, even when, as was the case most of the times, I was in agreement with my apprentice, but such is life in the world of IT support.

It is quite revealing how disconnected middle management is from upper management on this issue. The former is an ardent supporter of the magic wand theory and can be quite willing to provide perks and salary increases (within their limited power) to keep wizards from leaving, whereas the latter just cares about the bottom line and is pushing for off shoring as if it were going out of fashion.

Wednesday, 30 November 2011

Install Scripts

At work nobody seems to bat an eyelid when presented with a 50 or 60 page document to install an application (This is a bit unfair, we seem to be doing better than before where 100+ page documents were the norm). The last project I was involved in had a document with almost 70 pages documenting how to install  the application, admittedly, it does contain a good number of  pages to un-install the application,  say, for the sake of argument, or because I've just checked, that the un-install part is 8 pages, that still leaves with 60+ pages of documentation. Some of it is due to corporate templates, so remove another 5 pages and you are still left with a mammoth 55+ pages. Why?

Well, for starters Wix or something similar was not used, so there is a lot of steps documenting how to create and configure a website in IIS.
Secondly, some processes were not found to be reliable when automated, the solution? Add a myriad of manual steps instead. Heaven forbid that we should spend some time trying to understand the issues. 
Finally, the fact that it covers two types of configurations as the customer wasn't quite certain about what they wanted and wanted to have the flexibility to switch between the two.

This type of install is never going to be a simple double-click an msi and then click next until it installs, but it could be made so much simpler that it is by following a few simple rules:
  1. Use Wix. I'm partial to Wix even if it does have a very steep learning curve.
  2. Script everything.
  3. If you can't script it, go back to rule 2. If you've already been to rule 2 a few times, then go to rule 4.
  4. Write an application that automates the install.

Friday, 23 September 2011

ITIL Foundation certificate V3

I passed my V3 Foundation Certificate in IT Service Management exam, what more can I say?

Can I have those two and half days of my life back?

Having already done V2, I struggle to quantify any benefit I got out of this course.

At least management got their numbers, which is all that counts.

Monday, 12 September 2011

Bespoke vs COTS

It seems that, lately, all that our sales people push are COTS packages, which I guess is fine. They are cheaper (possibly), quicker to deploy (maybe) and easier to maintain (not guaranteed), but unfortunately, require a significant level of understanding from the customer of what they are actually getting. Yes, they are customizable, some products even, extremely customizable, but that doesn't mean that you will be able to do everything that you want with it.  You will have to learn to compromise, if you want the application to do exactly what you want, then go bespoke and stop wasting everybody's time. We'd all be happier that way.

Friday, 2 September 2011

A simple fix

Last week we had an incident raised, the problem was simple. Users where exporting the results of a advanced find query as a pivot tables and it was either failing to load the data on the Excel spreadsheet or it was failing to update. The users received this error:
[Microsoft][ODBC SQL Server Driver][SQL Server] Transaction (Process ID 92) was deadlocked on lock resources with another process and has been chosen as the deadlock victim.  Rerun the transaction.
After a bit of searching I found this KB article. I read through it, looked at our advanced find query and confirmed that it had similar date filters and I thought: problem solved. A simple change to the registry and Bob's your uncle. Not quite. You see, there is a note to the KB
Note: You will need to install Microsoft Dynamics CRM for Microsoft Office Outlook to export new dynamic Microsoft Office Excel worksheets because CRMTicket based authentication is used instead of integrated authentication.  Worksheets that were exported prior to the introduction of the UseWebQueryForLiveExport registry key will continue to pull data over integrated authentication which requests data directly from the SQL server hosting the Microsoft Dynamics CRM database.  You must re-export the dynamic Microsoft Office Excel worksheets to take advantage of the performance gains.
Say what now? Install Microsoft Dynamics CRM for Microsoft Office Outlook for each user? That's ok, after all we only have several hundred users that might be affected by this issue. Why is this not the first thing that's in the solution to this issue? What the .....?

I know I should have read the note, but a major modification like this cannot be simply added as a little by the way. Sometimes, I wonder...

Friday, 26 August 2011

C is not German

One of the perks of working for a big IT organization is that every so often we get requests, normally urgent, to help a project.

I love helping people, I really do, particularly at work, because it normally gives me the opportunity to look at how other people work, and sometimes gives me an opportunity to learn new things.

The only problem is that the person or people making these requests for help are normally moderately high up the management chain and rarely do they know what they are talking about. The average request goes something like this:

We need somebody with experience/skills in X. Have you got anybody in your team with experience/skills in X and a bit of spare time to help?
or
We've looked at your skill set and you have experience/skills in X. Could you spare some time to help this project?

The problem is that X tends to be a programming or scripting language rather than an actual problem (say configuring client certificate authentication in IIS).

A programming language is not like a language.  I might have been working with C# for the past four years but I've not really done any serious multi threading so I would probably be a hindrance to any project rather than be any help, not to mention that even if I could help, it is going to take me more than two hours on a friday afternoon to get up to speed with a project that has been running for more than several months.

I sometimes despair at the ignorance of IT middle management about technical issues. What makes this worse is that, some of them have risen through the ranks from technical positions, yet they seem to have forgotten about how much an actual programming language can encompass.