Professional Geek
RSS icon Email icon Bullet (black)
  • Spring Cleaning – Feedback wanted

    Was thinking of having a revamp of the blog

    I’ve been using the current template for quite a while now and while i think it’s very geeky cool it’s quite heavy, not to everyone’s taste and isn’t 100% user friendly

    If you consume this site via RSS feeds you probably have no idea what I’m talking about!

    If you do read the blog could you give me some feedback about the theme please?

    Should I leave it as it is or try something fresh?

    If I make changes what would you like to see?

    Thanks in advance!

  • McAfee False Positive

    You may or may not of heard about the massive mistake McAfee made last week.

    On Wednesday 25th April they released a virus definition file (5958 – April 21st) that incorrectly identified svchost.exe as a threat and deleted it on systems running Windows XP SP3.

    Svchost is used for launching services (full description here) and any individual instance can run a group of services. This means its a pretty critical process!

    Unfortunately for us a large chunk of our client base is running McAfee anti-virus software, the others run Trend Micro.

    We knew something wasn’t quite right when we received several calls all around the same time with similar symptoms. However, while the symptoms were similar they weren’t identical so initially we didn’t quite know what was going on. Unfortunately the one thing they did have in common was a loss of network connectivity which meant we couldn’t fully diagnose the issue.

    Later that day McAfee issued a notice, an updated definition file and details of how to fix the issue.

    Basically we had to,

    Boot into safe mode

    Add an EXTRA.dat to the c:\program files\commonfiles\mcafee\engine folder (or just run the 5959 Super DAT which is quicker)

    Recover a copy of svchost from the service pack cache c:\windows\ServicePackFiles\i386\ or if not present, C:\WINDOWS\system32\dllcache\

    Restart the computer

     

    McAfee released an automated tool for this the following day (It’s in this KB article)

    A simple enough fix to but as I said earlier every PC we’d seen with this issue had no network connectivity.

    This meant we potentially had to physically visit ever single PC we look after.

    I say potentially because this only impacts running Windows XP SP3, we do have some clients running Vista or Windows 7. But most of our clients still currently run Windows XP. Also VirusScan 8.7 systems were harder hit. Some of the PCs were still running 8.5.

    Still, for some people it would be every PC they own

    Now regardless of the size of your company ask yourself some questions.

    How long would it take you to spend 5-10 minutes on every PC you look after?

    Did you factor travel time into that?

    Who do you make a priority when everyone is offline?

    Fortunately we got a little lucky

    We configure the McAfee products to fetch updates from the global McAfee update site every hour. Any servers on site will then check for and get updated every hour

    PCs check every 2-3 hours but we also put a random delay on this. The main reason is so that on larger sites we don’t want lots of PCs all generating network traffic at the same time. By putting in the random offset it’s staggered through the day. So this is in combination with the fact McAfee actually got the DAT update out the same day meant that lots of PCs never actually received the faulty update.

    That said. We still had a LOT of work to do.

    We visited as many sites as we physically could over a two day period and some other sites that had some tech savvy people on site we managed to go through it on the phone with them.

    I also had to cancel other appointments which I hate doing and some other promises I made were a little strained.

    I’m sure we’ll still be dealing with issues at the start of next week

    Obviously for our contract customers this was all at our expense.

    I can’t even begin to think what this will cost McAfee as customers start to move away at their next renewal period.

    McAfee have an FAQ here as well as a couple of blog post apologies.

    As you can imagine there has been a lot of commentary on this and other vendors are jumping in to take advantage. 

    http://www.pcmag.com/article2/0,2817,2363018,00.asp

    http://www.betanews.com/article/One-very-false-positive-McAfee-in-full-damage-control-mode/1272040662

    http://blogs.zdnet.com/Bott/?p=2031

    Especially since it turned out this down to poor quality testing.

    As the IT world always seems to throw odd coincidences, on Friday i got an email inviting me to the McAfee stand at the InfoSec exhibition next week – I imagine that stand is either going to be very busy……or very empty

    This scenario is truly a management nightmare – an automated update that renders a PC unusable that can only be repair by hand. On top of this we’re going to have our own PR exercise to sort out.

    All our end-users see is a broken PC. It’s our responsibility to keep them up and running and while we still fixed the problem. They’ll still be asking US questions as to why it

    For new installations we moved away from McAfee long ago (there are other McAfee posts on this blog)

    Our existing customers have been using McAfee for a variety of reasons but when the renewals come up we’ll be making a concerted effort to get them away.

  • SharePoint as a Twitter Client. Sort of – Part One

    This is going to be quite lengthy so I’ll split into a couple of posts.

    Back in March, Mark Wilson of MarkWilson.co.uk (if you’re not reading his blog….go check it out now!) asked the following on Twitter.

    Does anyone know how to read XML (i.e. Twitter updates) into a SharePoint List (not the XML webpart reading it dynamically)?

    Since I like a challenge I decided to take a look at it.

    If you search (using your favourite search engine) for Twitter and SharePoint you’ll find one of two things.

    Either, examples of how to use a webpart to grab the RSS feed of someone’s Twitter status or people creating a Twitter-like application using SharePoint (which is pretty cool anyway).

    What Mark was looking for was something slightly different.

    He wanted to collect posts from a specific user into a SharePoint list. In effect creating an archive that a team could view. They could even use SharePoint to create views to look for keywords.

    This meant the webpart wouldn’t do as it only shows a snapshot of the current status updates. If the particular user tweets quite a lot you could miss stuff.

    Mark initially pointed me in the direction of the RSS feeds for each user (here’s mine) but this gives us a similar problem to the webpart as it only shows the last 20 tweets.

    This was when I stepped out of my comfort zone and started looking at the Twitter API 

    It turns out the Twitter API isn’t actually very complicated. All you need to do is craft a URL to pass certain parameters and it’ll throw some XML back at you.

    For example,

    This url will retrieve an XML file containing my last five tweets.

    http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=AndyParkes&count=5 (you can click this even if you don’t have a Twitter account. Authentication is only needed for protected accounts)

    So I’d now found a way of grabbing the tweets…but how to get them into a SharePoint list?

    IF I were a SharePoint developer armed with a copy of Visual Studio I actually don’t think this would be all that difficult to do. (you’ll see why in one of the later parts to this post)

    However, since I’m not I need to make use of the tools at my disposal.

    I had to think of something that can make use of XML but also talk to SharePoint and the answer is….

    Microsoft Access

    Yep..seriously.

    Access has the ability to import XML files into a table.

    Access also has the ability to link to a SharePoint list and update it.

    By putting these two bits of functionality together I was actually able to reach the desired effect.

    You can try it yourself.

    Open Access and create a new blank database.

    Click the External Data tab and choose XML file.

    image

    Access 2010 screenshot – procedure is similar in Access 2007 though

     

     

     

    Enter your API URL into the file name field. The URL I’m using will return my last 20 tweets

    image

    You’ll be prompted to verify the import

    image

     

    Choose structure and data first time round so you actually create the tables

    On subsequent runs you can just append the data

     

     

     

     

     

     

     

     

     

     

    Done…you can save the import steps if you want so you can repeat this without going through the whole wizard again.

    image

    I’ve now got my last 20 tweets into an Access database.

    image

    You’ll notice there are actually two tables created.

    image

     

    Status contains the tweets.

    User contains the details about the user this is being pulled from –it’s part of the XML returned.

     

     

     

    So to get it into SharePoint.

    Select the status table, click the External Data tab again this time use the Export section and select SharePoint list.

    image

    Run through the export wizard.

    Choose a destination site.

    image

    You’ll see it creating the tables.

    image

    Done!

    image

    You can then browse to your site and view the list!

    image

    You can also create a view to just show the important fields.

    image

     

    TaDa!……well not quite.

    Currently it’s not very dynamic.

    All it does is fetch the last 20 updates. If you re-ran the process above again you’d run into problems doing the SharePoint export as the status table already exists you’d end up with multiple lists (eg. status, status_1, status,2)

    Also it’s not smart enough to realise that if we already have some tweets in the database we don’t want to re-add those. If you followed the procedure above for a second time you’d also end up with duplicate tweets.

    Finally if you tried to put them into chronological order you may notice the sort doesn’t quite work under certain circumstances.

    So in the next part we’ll put Access to work to make this a bit more intelligent and finally automate the whole thing so it’ll fetch the tweets all by itself!

  • InfoPath – Errr! What?

    I got an email earlier this week from Richard Tubb asking a couple of questions about InfoPath.

    This is also the same Mr Tubb who has been “nagging” me to post more about InfoPath and SharePoint. I do take his point as I’ve posted very little on the topic since I spoke about it at AMITPRO last year (can’t believe it’s been nearly 12 months since that!)

    So….InfoPath!!

    I’ll talk about InfoPath in the Office 2007 world at the moment. Even though the latest version is upon us the current version will be hanging around for a while. Also the skills are transferrable and I’ll need material for future posts right? :-)

    What is InfoPath?

    In a nutshell it’s all about electronic forms.

    If you’ve ever created a form in Microsoft Access it’s along similar lines. What’s cool about InfoPath though is that it isn’t tied into a specific database system. It can talk to SQL Server, Access databases, SharePoint (which is is it’s main strength) and more. You can even make use of InfoPath forms within Outlook to gather information via e-mail!

    I also think that when stacked up against a form in a Word document InfoPath wins a lot!

    InfoPath allows you to do form validation to ensure data is entered correctly.

    It’s biggest strength is it’s capability to “unlock” data which a Word document just can’t do. (Unless you want to do a lot of VBA coding)

    This means an simple example is in order.

    Lets say you had a Word document that your staff used to enter their weekly hours worked.

    It might look like this.

    image

     

    As you can see there is a lot of important information here.

     

     

    At the top we have data that lets us know who the time sheet belongs to, and when it’s for.

     

     

    Moving down we have the actual data itself.

    The hours worked.

     

     

     

     

    Finally we have a brief summary of data so you can see at a glance what’s going on.

     

     

    So what’s wrong with this?

    Data Validation

    You would have to trust whoever fills out the form to put a date in right place and numbers in the hours worked fields. What if someone enters 25 hours for single day? What if “Sales” isn’t even the correct name of the department?

    Now you can sort of do this in Word 2007. But it’s not exactly simple. In fact, good luck finding how to insert a form field – The developer tab is hidden by default (I’ll explain how to display them in another post). Then you have to contend with “legacy form controls” and the new Office 2007 form controls. Not fun at all!

    Calculations

    Once again you’d need to trust whoever is filling out the form to get their maths right. As with data validation you can get Word to do calculations on tables but it’s not exactly simple or intuitive!

    Trapped Data

    This is the biggie!

    I’ve only showed you one form. Let’s imagine you’re Mr Anderson’s line manager. Your boss walks up to your desk at 9am Monday morning and tells you that your department is spending a fortune in overtime. He wants to know exactly how many hours your department logged in overtime for the last three months overall and on a per-person basis…..and he wants it for the management meeting at 11am!

    So lets say that each person would have 4 timesheets per month. That’s 12 per person.

    If your department had 5 people in it that’s 60 Word documents you need to open, read through, check the maths and note the important figures to bring into your total summary.

    That’s going to take some time!

    How does InfoPath help?

    Here’s the same form designed in InfoPath

    image

    At first glance you’ll notice it’s essentially the same form as before

     

    But if you look in the first block of data

    You can see a calendar control button. This means I can choose a date with the mouse as well as typing one in.

    It won’t let me put anything other than a date in the field.

    You’ll also notice all the fields in the first section have a red star next to them.

    This because I’ve made them mandatory fields. It’s a little visual notification to remind the user to put some data in.

    You also get InfoPath to pop up a little message if no data is entered!

     

    The fields that contain the hours worked data also have some validation rules.

     

     

     

    This screenshot shows I’ve tried to enter some text in a numeric field

    image

    We get the nice red dotted border AND a tooltip to let me know what’s wrong.

    What’s really cool about this is that I didn’t even need to set this up. Just by specifying that the field was numeric InfoPath setup the basic validation for me.

    Each control has LOTS of options around data validation to make sure we get exactly the correct data in.

    You may also have noticed that the department field is a drop down list.

    image

     

    This means that we can ensure that only valid departments are entered. You’ll see why this can be quite important later on.

     

     

     

     

     

    Also, the data is actually pulled in from a SharePoint list.

    image

     

    This means that these lookup lists can easily be managed without having to edit the InfoPath form. We can also set security on the SharePoint list to ensure only specific people can make changes to the department details.

    InfoPath also has rules and events we can work with. We could actually set this up so all the staff names appeared in another drop down and that once a department has been chosen only the staff in that department are shown (or vice versa. You choose your name and your department is automatically filled out)

     

    This totally solves the Data Validation problem I mentioned above.

    So what about calculation?

    Easy!

    image

     

    Same form as above with the same data entered

    However this time the summary data is updated automatically.

    I’ve set the summary fields to do a simple bit of addition and then made them read-only so they just work on there own without any user input needed!

    image

     

    Sorted!

    Data Validation and Calculation all dealt with quickly and easily.

     

     

    I could understand if you were still a little sceptical at this point though. As i said lots of similar functionality is already available all across the Office suite. That brings me onto the final point I made above.

    Trapped Data

    The real magic happens when this is published to a SharePoint site.

    When I published the form I specified that I wanted the summary fields to be pushed through to the SharePoint form library.

    image

     

    This is called “property promotion”.

    Here is the time sheet Tom Anderson just filled out on the SharePoint site.

    image

    I can now see how many hours Mr Anderson worked that week without even opening the file!

    Multiply this across the whole team and you can see at a glance what everyone was up to!

    Let’s throw a bit of SharePoint magic in.

    I’ve grouped by Department and then by Week Commencing Date.

    image

    Can you see why it was important to get the department entry consistent?

    We can now get a real overview of the hours entered by each person.

    And one finishing touch.

    I’ve asked SharePoint to sum the totals fields.

    image

    This can look a little confusing your grouping as it gives you overall totals as well as a total at each group level. You’d be better setting up a filtered view to do this.

    Something like this.

    image

    I’ve removed a level of grouping and filtered to only show the Sales team.

    You can now see really easily over the last two weeks the Sales team have posted 18 hours of overtime.

    Just to show off….you could then dump this out to Excel for further analysis.

    image

    I created that chart with about five clicks of the mouse. Getting that report together for the boss would be nice and simple.

    Finally one other cool thing about using SharePoint and InfoPath for a solution like this.

    The files themselves are stored in XML format

    image

    This means if yoy needed integration with another system (your accounts package for example) this makes the whole thing a lot easier.

    I’ll stop there….this was supposed to be a quick introduction.

    If you’ve made it to the bottom of this post thanks for the reading!

    This was just one example of how you can use InfoPath in a real world scenario.

    There is lots more you can do, especially when you put it together with SharePoint.

    For example, imagine having an expenses form tied into a workflow so that management approval is required when a certain monetary threshold is met?

    Hopefully this all makes sense and you can see why I’m such a fan of InfoPath!

    Please comment if you want me to post more about InfoPath and I’ll be happy to do so :-)

     

    *I’ve just noticed all the dates are in US format….I didn’t change the regional settings on my newly created test site…..i’m not re-doing the screen shots though! *