Contact

Subscribe via Email

Subscribe via RSS/JSON

Categories

Recent Posts

Creative Commons Attribution 4.0 International License
© Rakhesh Sasidharan

Elsewhere

On following your passion …

Read an article yesterday which talked about how the usual slogan of “following your passion” is bad advice. I skimmed through the article on my phone so I don’t have a link to post here, but do a Google/ Twitter for this phrase followed by “bad advice” and you’ll find many hits. I think this video by Cal Newport is what the author was referring to.

Anyhoo, this is a topic that is of interest to me. I work as an IT Manager/ System Administrator and the sole reason I am in this field is because I am following my passion. I love spending time with computers, so back in my teens when it came to choosing a track for college I went ahead with Computer Science. In retrospect Computer Science was a bad choice because what I was really interested in was Information Technology and generally fiddling with computer – but I was stubborn and didn’t ask anyone before making a decision (nor were there anyone to advice me either!) so I ended up in Computer Science. After that I started working and got into the role of a System Administrator, which is where I wanted to be in anyways.

It hasn’t been easy though being in this field. For one, I am over-qualified for it (doh!). For another, I haven’t been able to get the kind of work that interests me. I spent a lot of my undergrad days and the years after that working on Linux – setting up mail servers, web servers, blogs, tinkering with general back-end System Administration stuff – but due to bad luck or poor choices the work I do for a living is more of user support and working with client OSes and software. I keep trying to move on to the other side but it never happens – not for lack of trying from my side though, it just doesn’t click even though I am quite good at what I do.

This has been demotivating obviously. And many a times I’ve been lost and unsure on what to do next. What can I do – within the limitations of where I am, family commitments etc – to get more work that’s interesting to me and makes better use of my skills.

Somewhere along the line I read Wil Wheaton’s book “Just a Geek”. He was asking similar questions about his state of life in the book and he remembered a speech by Patrick Stewart on passion and how maybe he didn’t have enough of it. The gist of Patrick Stewart’s speech was that if you want to follow your passion you have to love it a lot – so much so more than all the hate and negativity that will come against you in the pursuit of that passion. Following a passion is a struggle, something to consciously keep in mind as you constantly badger through all the obstacles. Wil realized that he didn’t have that much love towards acting (his passion). Sure he loved acting, but he tired of sacrificing his time with the family for this passion and wasn’t willing to humiliate himself any more with pointless auditions. He realized that he loved acting but it had come to be that he no longer loved it more than all the other stuff working against it, and that he was now done turning down other things he was equally good at (and loved too) but which he had been turning down so far in pursuit of acting. This realization was a turning point in his career.

I loved that section of the book because it resonated so much with my state of mind. And it got me thinking that perhaps I should stop focusing so much on getting server level work and instead start enjoying the kind of work I am otherwise getting and which I am good at. This has been a good strategy in that while I haven’t managed to completely ignore my pursuit of server related work, I have managed to keep it under control or at least recover from bouts of demotivation when things don’t click. I guess I don’t love it enough – or in my case, I guess I don’t have the luxury of loving it enough to leave everything else behind after it!

A side effect of not trying so hard has been that I also get more time to enjoy other things. Previously once I got home from work, I’d mostly be on the laptop trying something out. Or I’d sleep early and wake up early so I can study Exchange 2010 and fiddle with my virtual machines! But now that I don’t do any more of that, I have more free time to spend with my daughter, read a book, listen to some music, or watch TV. And these are a lot less stressing than constantly trying to break through the invisible barrier.

And then I read the article I was referring to at the beginning of this post. That made a lot of sense too. What the author says is that following a passion is not as easy as realizing you have a passion for it and then everything will miraculously fall into place for it. You have to put a lot of effort into it and have to be prepared to keep at it for as long as it’s necessary. Also, every task has a learning curve and you may currently be doing something that seems difficult or boring and not meant for you – but that’s only because you are still mastering it; once you overcome that curve and get to grips with the task, it might very well turn out to be your passion. In short – don’t blindly discard everything else in pursuit of your passion, keep an open mind at trying other things and developing those if they seem to work out better! (Note: I am paraphrasing all of this from memory, so I could be way off base from what the author said. The above is how I understood the article anyways and what I took from it).

This made a lot sense and it related to what I had read in Wil Wheaton’s book. I realized that during all the time I have been trying to move on to server level work I have been getting better and better at handling users and supporting their demands, at working with client side OSes and software, and generally in terms of managing the IT tasks of an office. My server interest hasn’t been wasted either as I better understand how both sides fit and so am more aware of how the software my users use work, resulting in me being better able to troubleshoot them or work around issues as needed. But at the end of the day – after about 11 years of working as an IT Manager/ System Administrator – this is what I have mastered and this is what I am great at, so it’s time to stop wishing for something else and just focus on working harder at what I am good at and try and do an even better job than what I already am!

So that’s that!

DNS zone expired before it could be updated

Earlier this week Outlook for all our users stopped working. The Exchange server was fine but Outlook showed disconnected.

Checked the server. The name exchange.mydomain could not be resolved but the IP address itself was ping-able.

As a quick fix I wrote a PowerShell script that added a hosts file entry for exchange.mydomain to the IP address on all machines. This got all computers working while I investigated further. It is very easy to do this via PowerShell. All you need is the Remote Server Admin Tools via which you install the Active Directory module for PowerShell. This gives you cmdlets such as Get-ADComputer through which you can get a list of all computers in the OU. Pipe this though a ForEach-Object and put in a Test-Connection to only target computers that are online. I was lazy and made a fresh hosts hosts file on my computer with this mapping, and copied that to all the computers in our network. I could do this because I know all machines have the same hosts file, but it’s always possible to just insert the mapping into each computer’s file rather than copy a fresh one.

Anyhow, after that I checked the mydomain DNS server and noticed that the zone had unloaded. This was a secondary zone that refreshed itself from two masters in our US office. Tried pinging the servers – both were unreachable. Oops! Then I remembered that our firewall does not permit ICMP packets to these servers. So I tried telnetting to port 53 of the servers. First one worked, second did not. Ah ha! So one of the servers is definitely down. Still – the zone should have refreshed from the first server, so why didn’t it?

Next I checked the event logs of my DNS server. Found an entry stating the zone name expired before either server could be contacted and so the zone is disabled. Interesting. So I right clicked the zone and did a manual reload and sure enough it worked (the first server is reachable after all).

It’s odd the zone failed in the first place though! I checked its settings and noticed the expiry period is set to one day. So it looks like when the expiry period came about both servers must have been unreachable. Contacted our US team and sure enough they had some maintenance work going on – so it’s likely both servers were unreachable from our offices. Cool!

Find removable drive letter from label

Been a while since I posted here, and while the following is something trivial it is nevertheless something I had to Google a bit to find out, so here goes.

I have a lot of micro SD cards to which I sync my music. The cards are labelled “Card1”, “Card2”, and so on. Corresponding to these I have folders called “Card1”, “Card2”, and so on. I have a batch file that runs robocopy to copy from the folder to card. I have to specify the drive letter of the card to the batch file, but now I am being lazy and want to just double click the batch file and get it to figure out the drive letter. After all the drive with a label “CardX” will be the one I want to use.

How can I get the drive letter from the label? There are many ways probably, since I like WMIC here’s how I will do it:

This command will list all the volumes on the computer. There’s a lot of output, so a better way is to use the /format:list switch to get a listed output:

Here’s an example output for my micro SD card:

It’s easy to see that the Label property can be used to check the label. The DriveLetter property gives me the drive name. If I want to target removable disks only (as is my case) the DriveType property can be used.

Thus for instance, to filter by the label I can do:

Or to filter by both label and type I can do:

To output only the drive letter, I can use the get verb of WMIC:

The second command is what I will use further as it returns the output in a way I know how to use.

In batch files the FOR loop can be used to parse output and do things with it. The best place to get start with is by typing help for in a command prompt to get the help text. Here’s the bit that caught my attention:

Finally, you can use the FOR /F command to parse the output of a
command. You do this by making the file-set between the
parenthesis a back quoted string. It will be treated as a command
line, which is passed to a child CMD.EXE and the output is captured
into memory and parsed as if it was a file. So the following
example:

FOR /F “usebackq delims==” %i IN (set) DO @echo %i

would enumerate the environment variable names in the current
environment.

This looks like what I want. The usebackq option tells FOR that the text between the back-ticks – set in the example above – is to be treated like a command and the output of that is to be parsed. The delims== option tells FOR that the delimiter between parts of the output is the = character. In case of the example above, since the output of set is a series of text of the form VARIABLE=VALUE, this text will be split along the = character and the %i variable will be assigned the part on the left. So the snippet above will output a list of VARIABLEs.

If I adapt that command to my command above, I have the following:

Output from the above code looks like this:

As expected, the picks the DriveLetter part. What I want instead is the bit on the right hand side, so I use the tokens option for that. I want the second token, so I use tokens=2. I learnt about this from the FOR help page.

Here’s the final command:

That’s it! Now to assign this to a variable I do change the echo to a variable assignment:

Here’s the final result in a batch file: