Getting started with coding – Part 1 – Introduction

Introduction

If you work with computers in any aspect of your life, being able to code can be a very powerful tool. All too often however, I hear people say things like “it’s too difficult” or “I’m not a developer” and they never take more than their first few steps. This post, the first in a series on getting started with coding, addresses both the fears of taking your first steps and the benefits of starting that journey. The remaining posts then give you all the help you need to overcome those perceived obstacles and have some fun along the way. Continue reading “Getting started with coding – Part 1 – Introduction”

Taking the Python Challenge

Introduction

A few months back, I came across a cracking website called Python Challenge, which poses a number of increasingly difficult challenges.

Crazy and fun at the same time

This isn’t a site for complete beginners. It assumes you already know the basics of things like loops, branching logic, various data types, etc. It also assumes you have a specially wired brain so don’t be surprised if you run in to a few brick walls where you will probably have to cheat a little i.e. find a solution on line.

However, the best thing about this site is that each of the 33 challenges (current as of 28/10/16) covers a different skill set and gets you using different Python modules in creative ways e.g.

  • re for regular expressions
  • pickle for (de)serialising Python objects
  • zipfile for working, unsurprisingly, with zip files

I found this approach really useful in forcing me to learn new tools to solve a problem, probably one of the best ways to get familiar with tools that you may need from time to time but don’t want to just plough through some documentation when you need it.

Summary

At some point in your path to learning to code, you’ll probably find yourself stumped as to what to do next. You’ve learnt the basics, you’ve applied them to some problems you’ve had but you aren’t sure how to widen your horizons.

Try out Python Challenge and see how many challenges you can get through before your head explodes.

Till the next time.

Ubuntu on the desktop

Introduction

I’ve tried a couple of times in the last five years or so to make the move to Linux on the desktop. Namely Ubuntu on my work’s laptop. Doing it on my own kit is easy, but as we’ll see, doing it on a corporate machine presents difficulties.

First question, why?

First of all, I like learning new things and having come from a Microsoft and networking background, the beardy ways of Linux were my weak spot. I wanted to force myself to use it in a way that running it in a VM wouldn’t let me.

Secondly, I wanted to see if the Linux desktop experience has matured to the point where migrating is viable.

Thirdly, I wanted to see if I could remove my working dependency on the Microsoft ecosystem, namely the extended Office suite.

Starter for 10

I’ve installed Linux of different flavours many times but regardless, installing Linux really is a piece of cake. The hardware was a Dell Latitude 5570, with 16GB of RAM and a 256GB SSD.

I ran in to some initial hardware compatibility issues with my Dell docking station, which would cause my X-server session to completely reset each time I undocked, causing the laptop to shut all apps and loss of work. A quick look in /var/log/syslog showed the culprit service and a bit of Googling gave me some config to put in a file to resolve the issue.

I installed VMware Workstation 12 Pro so I could install my Windows 10 VM and whilst I found it to be performant most of the time, I did have strange issues with system sounds playing like a wasp farting in a tin can. All other sounds from both the VM and host played OK.

Playing about

The Unity desktop had a few quirks that annoyed me, namely the system tray at the top right appearing on all monitors so it would suddenly appear on top when I was clicking on menu bars in my Windows VM.

I installed a number of other desktop environments e.g. Gnome, KDE, XFCE but the latter in particular caused some strange behaviour and I ended up spending a good couple of hours removing all traces and reverting back to Unity.

I tend to use Python on server editions of Linux or my Windows machine but having it on a Linux desktop added that extra level of simplicity and ease of access.

Smashing Windows

I use Microsoft Office a lot. Outlook is not only my mail client but my main time management tool. I’ve not found a Linux client that comes even close, but Outlook Web Access gave me most of the functionality I was after. The same thing applies to OneNote, another tool I use extensively but can be accessed via OneDrive online.

Word and Excel proved more difficult, especially when people like creating fancy macros that aren’t compatible with OpenOffice or LibreOffice.

The biggest sticking point however is Lync, or Skype For Business as it’s now known. The sound quality was questionable but the worst point for me was that the mic would just stop working at random intervals. Reconnecting the USB headset would get it working again, only to disconnect within the next couple of minutes.

I got the Empathy IM client up and running with my work’s SFB server, but it wouldn’t show contacts and voice/video wouldn’t work. In short, a show stopper.

Summary

Ubuntu has come a long way since the last time I tried this experiment. My home laptop has Kali installed and will continue to do so, but due to the dependencies on Windows and drop in productivity, I could only put up with it for two weeks before reinstalling Windows again.

At the end of the day though, I can’t completely ditch Windows simply because of how entrenched it is in my organisation.

In terms of my goals for the experiment, I certainly used Linux a lot more, especially on the CLI, so am confident I’ll be using my Ubuntu server VM more than perhaps I have done in the past.

Till the next time.

The cost of self improvement

Introduction

In my earlier career, I measured my knowledge by how many exams I had passed and how much frowning I did throughout the day. I’ve lost the exam bug over recent years, mostly because the 700 page study tomes contain perhaps 100 pages relevant to either my role at the time or my future goals and with the pace of IT these days, I honestly have better things to be doing with my time.

That’s why I try to focus my learning goals myself, rather than be told by somebody who doesn’t know me is what I should be learning.

The Training Trap

The cycle of continuous training contains many pitfalls. First of all is the cost. Training courses, books, ,other materials, exams. The whole refresh cycle means that once you are committed to remaining certified, you are on a one way journey to Emptywalletville. Unless you are lucky enough to have a sponsor that will pay your way.

The vendors love telling us how marketable these certifications make us too and we seem to eat it up by the bucketful. What annoys me the most is how these vendors lock businesses and individuals in to the training trap by insisting you need so many MCSx/CCNx/etc. people to maintain certain partner level accreditations. Just another set of hoops to jump through, another maze to remain locked within.

Same shit, different day

Every time I go to the supermarket or newsagents, I always have a browse of the magazines. Over the years, I’ve even subscribed to several of these covering Film, IT, photography and gaming, but none have lasted more than a couple of years.

With the ever expanding catalogue of available publications, it is easier than ever to see that a large percentage of these publications are simply regurgitating the same material in a cyclone of confusion and trickery.

The worst offenders seem to be the IT and Health sector magazines. The same top 10 lists, learn how to do this or that, absolute beginner’s guide to blah, blah, blah. Even within the same month, on display you can see magazines that have similar content to attract your hard earned money.

Another sector that is guilty as sin for this is the self-help book brigade with the same information commonly being thrown at us time and time again. Sadly, the target audience for these are often the most susceptible to the need to buy.

Suckers for or victims of punishment

One thing that is for sure, these publishers would not remain in business for long if they didn’t have a steady revenue stream. The way out is easy enough in this scenario and is covered below.

The more difficult scenario to disentangle oneself from is the vendor partnership scheme. For these, you need to ensure that the benefits you receive from participating outweigh the associated effort and cost, but you often have little leeway in this regard.

I’ve yet to find a magazine in the supermarket that contains information that is not easily and freely available on the Internet, within minutes from anywhere in the world where I can connect, or to download for later offline reading. The fact that I can dive deeper in to those articles by ‘going down the rabbit hole’ at no extra cost and end up with a much fuller understanding is another free benefit. Despite the electrical usage, I’m also a little greener by saving the trees.

For those people who argue ‘I like to feel the paper in my fingers’, my advice would be to count the bundles of cash you will save instead.

Summary

The wider field of self improvement, no matter which topic we are talking about has created a business sector which is growing year on year, with no signs of slowing down. For some reason, we buy in to their marketing as if we’ve briefly forgotten what a connected world we live in, just for those moments between the shelf and the checkout.

From a certification point of view, I’ll mostly only be recertifying and proving my knowledge via other means.

I like to think I’ve seen the light. At the very least, I’ve got a few more pennies in my pocket and a lot more time to enjoy the more meaningful things in life.

Till the next time.

The difference between inspiration and motivation

Introduction

I’ve heard people use these words in the wrong context before and it got me to wondering, are people looking in the wrong place to get things done? This brief post covers the difference between motivation and inspiration.

Inspiration

Inspiration happens from the outside in. That is, an external force triggers a reaction in you that causes you to behave in some way. Inspiration infers a positive force causing a positive reaction, at least for sane people with a love of life.

The reaction might be a smile, or pleasant thoughts or it could be something more active like going to the gym, doing some DIY and getting down to some studying. It could also be something more selfless, such as making a charity donation. Regardless, without the external force, the inspiration simply doesn’t happen.

Motivation

Therein lies the rub for me. Why wait for something external to have an impact before I decide to get something done? Motivation happens from the inside out. That is, an internal force triggers a reaction in you that causes you to behave in some way. You aren’t relying on external forces, just yourself. Shia Labeouf would love this post, I’m sure.

Let’s face it. Motivation is effectively self-inspiration. You need to inspire yourself to get something done and quite often for that, you will need a strong will and a very good imagination. But what you won’t need is to wait for any external stimuli.

Summary

Essentially, in this post I called people who rely on being inspired to get things done lazy and unimaginative. Own the trigger and just do it.

Till the next time.

Respect your future self

Introduction

Day in, day out, life is full of decisions from the mediocre, ‘which socks should I wear today?’, to the more life changing, ‘do I accept the job offer?’. Many of these decisions are made almost automatically whilst others, we pore over for what can seem like an eternity.

Having given this process some deep thought recently, I came to the conclusion that most people use a complicated set of factors and brain algorithms to arrive at the final decision, but that for the most part that decision is what is deemed best at that moment in time. People might use historical data to help drive the overall decision but we are very much in the moment when we make our choices. You only have to look at how late most people start seriously saving for retirement to see what I mean.

Meet your future self

For the smaller decisions, that probably isn’t a big issue but if you sit and think about what your top five life priorities are, set goals for each of those and think how each decision you make helps you get closer to achieving those goals, even if it hurts a little in the short term, I believe you’ll make better long term decisions, especially the important ones.

For example, your top priorities might be health, family, career, travelling, music. To make it less abstract (some people struggle to see in to next week, let alone 10 years away), try to imagine yourself having a conversation with your future self. How would you justify your decision? How do you think your future self would react? If you see them shaking their head in disbelief or disappointment, you might want to rethink before you proceed. If your future self feeds back that you have looked after their goals well, then you are on the right track.

Don’t cave in to the temptations of the present with the ‘I can sort this all out at later time’ attitude.

Summary

Just to clarify, I’m not condoning being a boring fart that has no fun. I’m only talking about the important decisions that affect your top life priorities. Map those out now and consider how you will look back on these big decisions in the future before you dive in head first.

When you get older, you’ll be talking to yourself all the time anyway so why not get some practice in now?

Till the next time.

End of year review 2015

Introduction

What a crazy and busy 12 months. I’ve just noticed that five months have gone by since my last blog post and I honestly can’t think of when I had a spare slot to write a blog post in that period. The goals I set myself at the beginning of the year have been tweaked, dropped and completely changed along the way. With that in mind, I thought I’d review what I actually got up to.

So what got done?

I’ve been managing the network team at my current company for a couple of years now but I was keen to try and get back to my hands on roots this year to prevent those skills from evaporating.

The opening of our brand new data centre in Aberdeen gave me the perfect opportunity to do just that, running with the project from the design and planning phases, through procurement, implementation, testing and finally live operations as of October. Introducing new technology in to our portfolio and the importance of the project made this a very rewarding experience.

I’ve also dived in to a number of long lasting customer projects in the last 12 months, most notably taking the lead on a migration from another data centre in to our new one. The best two things about this project were brushing up and learning some new skills and collaborating with the customer team. I really enjoy having discussions with customers about how they can get the best out of technology.

Summary

With 2015 drawing to a close, I could look back at the goals I set at the start of the year and feel a sense of disappointment. After all, most of them were not achieved. However, I think being flexible in what you hope to achieve and finding yourself at the end of the year largely happy with what you did achieve is what the overall goal should be for anybody.

For 2016, I really want to carry on with my sleeves rolled up, working with great technology and people. I also want to try and be a bit more frequent with my blog posts!

Have a great festive period everybody and hope to see you all next year.

Till the next time.

The human OSI stack

Introduction

Earlier this year, I attended a growing InfoSec event hosted at Abertay University in Dundee, Scotland called Securi-Tay. One of the talks was about carving a career out in InfoSec, presented by the talented Javvad Malik during which he showed the well known OSI model as mapped to humans.

I’d had something like this in mind for a while so, with Javvad’s kind permission to partly rip off his concept and his subliminal motivation, here is my take on how to make sure your human OSI stack is compliant with any current or potential employer’s.

Human OSI stack

  1. Physical. As shallow as it may seem, first impressions do indeed last. How you dress, your personal hygiene, your haircut, what type of glasses you may wear, the colour of your nails, whether you make eye contact or look at the floor. All these things, rightly or wrongly, form an impression. Try and be as smart and professional as you can be, whilst maintaining a certain degree of individuality. As with all layers of the OSI model, you can get a good idea of how best to be ‘compliant’ by looking at other successful people
  2. Data-link. Beyond first impressions, the way you actually communicate is going to make or break you. The importance of knowing how to talk to people at all levels cannot be overstated. Don’t think that emails, IM or social media are exempt from this rule. It covers all form of communications. You can spend a long time carefully building a professional persona and bring it crashing down in a single exchange. As one of my colleagues at a previous company used to say, ‘you are always just one click away from being fired’.
  3. Network. OK, so you’ve managed to get this far but you are only known for your abilities within your own team or maybe your company. It is more important today than ever that you get out and about and make a name for yourself. You need to extend your network of people beyond the walls of the building you work in. At worst, people will hear about the good things you are achieving, at best you will have a large pool of resources you can rely on for the rest of your career. Get to know key people in other businesses, especially your customers, competitors and vendors.
  4. Transport. Driving a nice car might draw more attention than taking the bus but I want to discuss the transport of work through your part of the business. Have you ever even considered the concept of work in progress, even just in your team but more generally through your business? Do you sit and complain about how there is never enough time in the day or do you look for the pinch points and what can be done to remove them? Defining what the manual process is will always be the first step. Write it down, step by step. Then look at how that process can be improved and made more efficient. Then start automating the different steps, with the aim being a completely automated workflow. Now you have more free time to work on other tasks and keeping the work in progress down to a streamlined minimum. Time well spent.
  5. Session. Not sure about the rest of the world, but in the UK, going on a session means having a few drinks. For the purpose of this bullet point, I’m talking about taking regular time outs. Don’t burn yourself out with work all the time. Find the things in life that make you relax, sit back and smell the roses/coffee/whatever. It might be having a social drink with friends and family. Or taking your kids geocaching. Or hitting the gym. The important point is…don’t lose sight of this. It is critical to achieving a work/life balance and you’ll not regret the long hours and hard work you put in.
  6. Presentation. Not so much about your own presentation, covered in the Physical layer but more about your presentation skills. Whether standing up in front of a group of people or publishing a book or a blog, you should be able to adjust your message based on audience to get it across in an entertaining and professional manner
  7. Application. How you apply yourself to your role is critical. Are you a 9-5 type person who comes in, works through their ‘in tray’ and signs out again? Or do you rip up the role and responsibilities sheet and look for new and different ways to offer value to your employer? The latter approach will almost certainly accelerate your career but at the very least expand your knowledge

Summary

This was a slightly tongue in cheek look at how to use the OSI model to help guide you in your career but the truth is that using a simple set of guidelines like this should prove more useful than just winging it or worse still, being a passenger.

Till the next time.

CSI Cyber – drinking game

Introduction

I was a big fan of the original CSI TV series set in Las Vegas, my spiritual home town. CSI Miami had some of the cheesiest lines ever spoken on a TV show, probably on account of David Caruso being one of the producers. The New York spin-off never really grabbed my imagination and eventually, the ‘quality’ of the others dropped enough for me to drop them.

Enter CSI Cyber. The name alone was enough to make me realise the car crash that was coming but the fact is, two episodes in and I’m hooked. It’s awful, but it’s so bloody awful, its good. There is something, however, that can make it better; a drinking game. So without further ado, let’s get down to business.

Requirement

You will need booze. Lots of it. Preferably beer, spirits and shots and suitable glasses for each. Otherwise you simply aren’t playing properly.

Rules

  • There is no 1st player, everybody has to follow the rules below until there is just one person still able to code ‘Hello World’ in assembly
  • Every time somebody on the show says one of the following, drink 1 shot
    • ‘It can happen to you’. This is just to limber you up for the ride ahead
    • ‘Cyber’
    • anycolour-‘hat’, double shot where anycolour is not black, white or grey
    • description-‘web’, where description is dark, deep, dingy, dangerous or anything similar
    • ‘Firewall’
    • ‘Glitch’
    • ‘Breach’
  • Every time one of the following happens, drink two fingers of your favourite spirit or beer
    • Somebody uses their mobile phone, with a lovely HUD shown for our convenience
    • A dramatic change in the music
    • Somebody gives away a tell to Patricia Arquette’s character
    • Text on a screen morphs in some way
    • Main theme plays. Everybody needs a top up
    • Somebody gets killed

I’ll possibly update these as the series progresses, assuming I have the staying power to watch any more of this drivel.

Summary

Vegaskid takes no responsibility for anything that happens as a result of you playing this game. But I’d love to hear the stories. Drink responsibly…

Till the next time.

Know the technology, know the business

Introduction

As I progress through my career, I can’t help but find myself drawn to learning more about business, both as a general topic and specifically related to the company I work for and the customers I work with. This post covers some reasons why you should start learning some key business skills.

Cross pollinate

In my 10 Tenets of working in IT series, I blogged about cross pollinating although it was specifically referring to expanding one’s technical knowledge base.

At the end of the day, IT is a service that the business consumes and so it would be naive to think you could offer that service without better understanding the consumer.

The starting point should be to learn about the business you work in. Look at the org chart, determine how each of the business units interface with each other, what services do each of them provide to each other and to the business as a whole? Don’t get dragged in, but try to understand the office politics as this can offer a wealth of information you won’t find documented anywhere. Try and spend time working with each team to get a deeper understanding.

I’m not suggesting you spend a week on secondment with the janitor but some key functions to understand are:

  • Finance/accounts
  • Procurement
  • Sales/marketing
  • Project team

to name but a few of the non-technical ones. Once you get a good understanding of how your team fits in with all of the others, you should be looking to understand your customer’s companies too, although you will most likely be far more limited with regards to access.

As well as learning what other team’s and customer’s expectations are, you should learn their language too. For example, despite doing an accounting course at college back in the days of the abacus, the terminology used by the finance ‘speakers’ within the company was as much jargon to me as OSPF was to them. A couple attempts to try and get an explanation tended to muddy the waters and so I found it best to simply buy one of those ‘finance for non-financial types’ books which was far more helpful. The key is I can sit in on more senior meetings and grasp all aspects of the discussion as well as converting my technical knowledge to layman’s terms as required.

I think IT folks can sometimes become isolated from the rest of the business by their own perceptions and experiences but I think that is a mistake. To really progress beyond a certain level in IT, you need to better understand your customer, whether that is internal or external.

Summary

There comes a certain point in a techie’s career where understanding the business that the technology you work with supports becomes critical for you to offer any added value. Don’t be afraid to learn things you perceive as being outside your comfort zone. It will be a worthwhile investment.

Till the next time.

Preparing for failure in IT

Introduction

Question: what does a £5 USB pen drive have in common with a multi billion pound IT contract?

Answer: both will fail at some time, at some level.

As IT professionals and as organisations, a strong measure of our success should be how we both prepare for and deal with any such failures and everything in between.

Embracing failure

All too often over my career, I’ve seen individuals and companies go in to panic mode when something fails, even more so when it leads to a service outage. This usually exhibits itself through some/all of the following:

  • People asking questions during the outage that should be reserved for the post mortem
  • Fingers being pointed and voices being raised
  • People terrified to admit what they did, which prolongs the incident
  • Any resemblance of an incident management process being completely ignored
  • At the other end of the spectrum, an over engineered IM process crippling the repair effort
  • Incessant hovering by ‘do-gooders’ over the person trying to fix the problem

These should be familiar to most IT professionals with anything more than a couple of incidents under their belt even if, like me, you are lucky enough to currently be at a company that has a culture of embracing failure.

What do I mean when I say embracing failure? If I was to list some of the behaviours associated with that mindset, it would include the following:

  • Proactive monitoring
  • Capacity planning
  • Good documentation sets in place
  • Mock incident scenarios
  • Open, no blame culture

More importantly than anything else is that any failure, regardless of whether it causes an incident or not, should be nurtured as an opportunity to learn. Improve individual knowledge, find the holes in your processes, firm up your monitoring, help build confidence and relationships, etc.

Post mortem

The port mortem is perhaps the most important part of the entire process. You can get a tricky issue resolved in record time, get a pat on the back from the customer and senior management and then see the whole thing ruined by some prat who thinks the key requirement of the port mortem is determining which poor numpty is to blame. Inevitably, you end up with people’s confidence and willingness to take on more risky tasks nose dive.

The post mortem should be a relaxed affair where everybody’s main goal is to learn. Learn exactly what went wrong, learn how the process to deal with the issue could be improved, learn how to reduce the risk of the issue recurring, learn how to address other peripheral risks, learn where the knowledge gaps are in your team, learn what makes your colleagues tick…the list goes on.

Summary

Whether you like it or not, failure is something you will experience whilst working in IT. The key thing that should separate you from the headless chickens is how you prepare for, deal with and learn from failure when it inevitably happens.

Till the next time.

Exam pass: 640-911 DCICN

Introduction

Over the last few months, in between a busy work schedule, I have been covering off the CCIE Written blueprint topics, the aim being to pass the written exam to renew my Professional level exams but more importantly, to refresh my routing and switching knowledge.

Progress has been slower than I would have liked, having only really covered off the layer 2 topics, but I’m not discouraged as I’ve been spending more time on other topics, including Python and Nexus.

Learning curve

It has only been in the last few months that I’ve had more exposure to the Cisco Nexus line of switches. My company’s new data centre that will be opening in Aberdeen, UK later this year will have a healthy Nexus footprint and we are bringing more customers on-line who utilise Nexus switching. With that in mind, I arranged for all members of my team to attend a suitable course and we all agreed that getting certified on that track makes sense.

Guinea pig

The CCNA Data Centre certification is made up of two exams:

The links above take you to the relevant Cisco page. I’m a little disappointed with the exam topics, which look like they’ve been typed up by somebody who has never sat an exam in their life.

The 640-911 exam is portrayed as a subset of the CCNA R&S and so I volunteered to be the team guinea pig and sit it first, without any studying to see if my current knowledge was sufficient.

The exam

This is the first time I’ve done an IT exam with no studying whatsoever, having only decided to do it the day before I sat it. It was more of a challenge just to see exactly where this exam sat. I was pleasantly surprised, but not with Cisco’s exam topic list, which is inaccurate and misleading.

Firstly, the number of questions and the time limit was quite challenging. I swear they add more questions and knock minutes off with each iteration. Another thing that quickly became apparent in the first few questions was that my Nexus knowledge needed to be better than the exam topic list suggested. Thankfully, Cisco were asking some silly Nexus based questions in this exam that I had asked the trainer in my Nexus course only a couple of weeks ago and so I’m happy to say I got a good pass mark. Looking at the Cisco website, you might be forgiven for thinking that a CCNA R&S will allow you to fly through this exam and that Nexus knowledge is only required for the 640-916 exam. My advice would be to be more prudent and ensure your basic Nexus knowledge is in place for 640-911 too.

I have already pre-ordered the Cisco Press book for the 640-916 exam and will be going through the INE Nexus video course before booking myself in for that one to ensure my knowledge is sound. At that point, I will also have had more hands on experience, my preferred method for increasing knowledge.

Summary

I had decided quite some time ago that certification for the sake of it was not something I was interested in but with me having more and more exposure to Cisco’s data centre product line, including Nexus, MDS and UCS, I think using the CCNA DC and maybe eventually the CCNP DC certification tracks to help me focus my learning makes perfect sense.

Till the next time.

A single glass of pain – IT management tools

Introduction

The title of this post more accurately reflects the state of play with many current IT management tools. Below, I cover my main gripes with the tools that IT engineers try to squeeze for usefulness every day.

My cup floweth over

Firstly, I am disappointed that the WordPress spell checker does not include archaic English and is trying to change floweth to flowerpot.

Now, have a think about how long you have worked in IT. Now think about how you manage your estate today compared to how you did it when you started out. Sure, there may be improvements you can point out but how many of those are based on budget increases or moving to a new company, for example?

I’ve been in the industry for 10+ years (I will only ever change this figure from this point onwards for each 5 years, then when I hit 100 years, increments will be in 25’s) and I can honestly say that IT management tools have progressed at a rate that frustrates me.

I will concede that virtualisation has brought improvements with the associated toolset, but not in line with the complexity that the technology has brought with it. I remember working on a contract back in 2002 (when the servers were all bare metal) that used a Computer Associates product that allowed me to monitor a national IT estate of over 400 sites with 10000+ users and multiple data centres, deploy patches and desktop/server applications. However, the software suite was composed of several different applications all under the same badge and utilised different back end databases. They had no common interface to them. Several other tools were used to fill in some gaps. Anything that couldn’t be done with the software got scripted.

Fast forward 13 years and I’m not sure the tools we use as an industry have made 13 years worth of progress. OK, so some tools can abstract the layers beneath e.g. Microsoft VMM can now manage VMware and Hyper-V, but if these hypervisors sit on Cisco’s UCS for example, or indeed any other vendor, you have another tool for managing the hardware, a different GUI for managing backups, monitoring to any real level of usefulness will usually require a number of tools (that may or may not be available in the same GUI, with a uniform feel) that quite often come with a hefty price tag if you don’t want to spend all of your remaining life getting the thing installed, configured and maintained.

You still end up having to script the things that all these tools still fail to deliver on. What is the root of the problem? I blame the vendors. Until they start agreeing on and offering standards based management interfaces for applications to be built on, we will always have a mix and match requirement to improve our operational visibility and control.

Summary

The year is 2015 and the ecosystem is still a fragmented mess. The single pane of glass model appears to still be way over the horizon.

There are some great management tools out there, don’t get me wrong. The fact is however, that there is nothing that comes even close to being a single pane of glass that we can use to manage our estate, end to end.

I implore vendors to start standing next to each other, bang heads a few times and start working together to create the tools that will allow us, the customers, to spend less time fire fighting and flicking from one tool to another and add real value for our customers.

Till the next time.

Introduction to Python

Introduction

Over the course of my IT career, I have used a few different platforms to create tools that help me in my day to day work. Initially, VBScript used to be my scripting tool of choice when I was a Sysadmin. When PowerShell was released, I quickly embraced it and really liked it’s human readable verb-noun structure. It saved my bacon on many an Exchange deployment/migration. I’ve also dabbled in various flavours of Visual Basic over the years to create some small applications but I am no developer, by any stretch of the imagination.

Over the last 18 months or so, I’ve been looking to learn a tool that was more cross platform, easy to pick up and could be used across the board for not only my networking tasks, but anywhere I could save time and do things more consistently. I probably spent far too long dwelling on the options but about this time last year settled on Python.

This discussion is about Python but that assumes that you have chosen Python yourself as a language you wish to learn. If that isn’t yet the case, the discussion below on which version of Python to use could also be applied to which language you should settle on and the sections further below apply to any programming language you finally set out to learn.

Version

Don’t get hung up on whether to use Python 2 or 3 (or Java, Go, Ruby, C, etc. for that matter). Whilst 2.x fans will argue it has a larger support base including more modules and libraries, more deployed code etc. it is well known that 2.7 was the last version that will be released on that track and the creator of Python, Guido Van Rossum seems to be committed to the 3.x train. I have been learning 3.x because I found that everything I set out to do in my first months learning Python had suitable modules available.

The key is not to spend too much time on this decision though. Take a look at them both, read up on some of the arguments in favour of each and then pick one and stick to it. Most modern Linux distros seem to have both versions installed so if you are really unable to flip a coin, learn both…but learn at least one of them!

As a quick note on why I chose Python over other options I would have to say:

  1. It’s relatively easy to learn
  2. There are loads of on-line resources
  3. It is well supported across many different areas and vendors
  4. I can use it to create the most basic of scripts up to the most elegant of object oriented applications and everything in between
  5. It’s fun!

Tool kit

When I say tool kit, I’m talking about setting up your environment to make working with Python and the code you create more enjoyable. There is nothing worse than trying to learn something new and having to jump through a load of hoops before you get to the good stuff. Take GNS3 back in the early days. I can remember spending up to an hour on some occasions just to get my lab up without crashing. Not fun. The bullet points below briefly cover off the main points you should be getting in place:

  • Platform. I come from a Microsoft background and initially started playing with Python on Windows. I quickly realised that Linux was the way to go. Not only is it better supported and comes already installed on many popular distros, it has the added benefit of upping my Nix skills at the same time. Hoorah!
  • Editor. For me, there are two options here. Either Notepad++ or a Python specific Integrated Development Environment (IDE) and I use both of them depending on my needs. Notepad++ has syntax decoders built in for most languages in use and if you save your file with a .py extension, it will get recognised as a Python file, with nice colour coding to highlight your syntax. An IDE adds better file management and will also have intelligent help systems that can give you pointers on the usage of certain features and syntax. I use Jetbrains Pycharm as an IDE, but most of my scripting is done in Notepad++ at the moment. Make sure you set both of these up in a way that suits your workflow. As an example, I have got my Notepad++ configured to insert four spaces when I press the TAB key as it’s easier to do but Python convention dictates that indents are spaces and not tabs
  • Code repository. You will quickly find that keeping track of your different scripts and the various versions of each of those becomes a time consuming task so you will want to utilise something like Git, which is what GitHub uses. You can get an account for free but just be aware that if you want to keep any of your code private (e.g. it contains database connection strings, or IP address information), then you will need to pay for a private account, which isn’t extortionate. Another option if you are feeling daring is to install your own version of Git

Training materials

The best resources are to be found on-line and there are countless websites that have great content relating to Python on them, with the Python homepage being a great starting place. I haven’t found any really good video based training to date that would pass as a course as such but there are lots of books available on the subject. My favourites so far have been:

  • Python Cookbook (latest edition for Python 3)
  • Hacking Secret Ciphers with Python
  • Python 3 Object Oriented Programming

Read the reviews, use Amazon’s ‘Look Inside’ feature to see if the style suits and start building a reference library to consolidate that knowledge.

Get yourself a project and play, play, play

All those tools and all that knowledge will still make your journey a tedious one if you don’t apply it to the real world. Find a project that could use your Python skills and put them to the test. I initially struggled trying to learn Python from a network engineer perspective as it involved ugly screen scraping techniques on kit without APIs. What I found really useful was when we started using a dashboard application in house that is built on Ruby and converted all the Ruby scripts to Python. I now feel much more confident about tackling  more difficult tasks. The key is not just to type up the scripts you find on-line or in a book but to create something that you needed anyway. This will be so much more rewarding for you in the short term, which will motivate you further in the long term. If you are struggling to find a project, buy a Raspberry Pi and a related project book to get your teeth in to.

Summary

Regardless of what field you work in, if you use a computer on a regular basis and have a number of tasks you repeat, I strongly suggest you look at Python as a great tool to help you get those tasks done quickly and more consistently. You’ll soon start seeing that you can use these skills all over to help make life easier.

[sourcecode language=”python”]
print("Till the next time")
[/sourcecode]

The year of automation, 2015

Introduction

2014 was a slightly strange year for me in some respects. I moved in to a new leadership role, delivered some big projects successfully with the help of my team and got lots of the smaller jobs off my plate, but it still felt like I could have achieved a lot more. The good news is that I’ve been tracking everything that needs addressing so have a good idea of what my team’s priorities are for the coming year already.

My own priorities

My aim is to make 2015 the year of automation. Not in any one area anywhere I think I will hit my two key goals, those being to get a ROI on my time and to standardise as much as possible and I will be using those goals to measure where to focus my efforts. I am already familiar with PowerShell from my SysAdmin days and have built a number of tools in Visual Basic over the years but will be taking what I have learnt about Python over the last few months to a new level. I have already started taking related scripts and creating my own modules and already have ideas on how I want start making bigger applications that are more object oriented.

I also plan on blogging more about my automation journey so expect some Python posts in particular.

Summary

2014 was the year of steadying the ship, ensuring nothing critical fell through the cracks and hopefully helping my team develop personally. I’ve heard people across the industry quote how 2015 will be the year of SDN, IPv6, NFV, blah, blah, blah. I make no such claims, although out of those, I would put my money on NFV and maybe blah. For me though, this year will be about brushing down some old and not recently used skills and giving them a high polish. I won’t need to become a fully blown developer but the skills I intend on picking up will be useful in many areas of my life, both at work and otherwise.

Till the next time.