2015 in review

The WordPress.com stats helper monkeys prepared a 2015 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 60,000 times in 2015. If it were a concert at Sydney Opera House, it would take about 22 sold-out performances for that many people to see it.

Click here to see the complete report.

Cisco VPN Windows 10

There’s lot of information out there on how to get Cisco VPN to connect to your work computer using Windows 10, but only one site I’ve found actually gives information that works:

5 Steps to make Cisco VPN work in Windows 10

I’ve summed this up below as it contains too much information, this is what worked for me, I was getting:

Error 433 Secure VPN Connection terminated locally by the Client. Reason 433: Reason not specified by peer.

snap shot of error

The likely reason is due to the DNE LightWeight Filter network client not being properly installed by the Cisco Systems VPN installer.

To solve this, please try to do the following

A) First, uninstall any Cisco VPN Client software you may have installed earlier
B) Reboot your computer.
C) Run winfix.exe, to ensure the DNE is properly cleaned up, as no doubt this isn’t your first attempt.
D) Reboot your computer again.
E) Download Sonic VPN software from here: 32-bit or 64-bit
F) Install the Sonic VPN software from above.
G) Reboot your computer.
H) Reinstall the Cisco VPN Client software again. (If you face a version not suitable for Windows 10 issue, run the msi file instead of the exe file)
I) Install the Cisco VPN Client Software: 32-bit Windows VPN Client (version 5.0.07) or 64-bit Windows VPN Client (version 5.0.07)
J)Reboot.
K)Make changes to the registry:
Open Registry editor regedit in Run prompt

Browse to the Registry Key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CVirtA

Select the Display Name to modify, and remove the leading characters from the value data value as shown below,

For x86 machine, shorten the string “@oem8.inf,%CVirtA_Desc%;Cisco Systems VPN Adapterto just Cisco Systems VPN Adapter

Or for x64 machine, shorten the string”@oem8.inf,%CVirtA_Desc%;Cisco Systems VPN Adapter for 64-bit Windows” to just “Cisco Systems VPN Adapter for 64-bit Windows
L) Reboot your computer.
M) Your Cisco VPN Client should now work in Windows 10

Are you getting a 412 error?

cisco412

I was getting this when I was trying to connect from within my organisation, this isn’t allowed as your organisation is blocking the required UDP ports 4500/500

Solution, try connecting from somewhere external to your organisation.

If this doesn’t work for you then you’ll have to delve into the full site to work it out for your set-up.

Windows 10 Update Uninstalls “Cisco Systems VPN Adapter”

I noticed that a recent Windows 10 update kindly uninstalled my Cisco VPN Adapter! Why? I’m not sure. Apparently ‘removed due to incompatibility issues’ But if you want it back, you’ll need to uninstall ‘Cisco Systems VPN Client 5.0.07.0440 in Add or Remove programs then re-run the msi installer, this will FAIL, now jump to the unzipped directory ‘C:\Users\\AppData\Local\Temp‘ to find ‘vpnclient_setup.msi‘, run this, you might need to run it twice as it complains about failing to add itself to the Services. Then you need to re-edit the ‘Display Name‘ using the Registry key in Regedit, as above.

 

 

C# JQuery bundle not loading?

I was having issues with my JQuery script not working in C# Visual Studio 2013

The _Layout.cshtml had the required JQuery bundle in it @Scripts.Render(“~/bundles/jquery”)  & BundleConfig.cs had  bundles.Add(new ScriptBundle(“~/bundles/jquery”).Include(“~/Scripts/jquery-{version}.js”));

So way the heck doesn’t my script work

Answer because I didn’t surround the script call line with:

@section scripts{
  <script src="~/Scripts/ifDeviceAndroidRemovePrintButton.js"></script>
}

All because I had this at the top of the view & it was being called before the JQuery bundle loaded, therefore it did not know about JQuery and where to find it.

Moving the call script line to the last loaded item of the view and surrounding it with @Section scripts did the trick.

JQuery script to detect Android device

I needed to create a way of detecting whether my application was running on an Android device, as an Android device does not cope with the command ‘window.print(), although the user may still go to the Android browser menu and click print to reveal the same option.

The way I did this was to create the following script:

$(document).ready(function() {
 var ua = navigator.userAgent.toLowerCase();
 var isAndroid = ua.indexOf("android") > -1;
 // If Android then do something
 if (isAndroid) {
    // Find class <strong>.printButton</strong> and add 2 new styles to it
    $(".printButton").css({
        "visibility": "hidden",
        "display": "none"
    });
   }
});

The CSS for .printButton before the script runs looks like this:

.printButton {
 font-size: 16px;
 float: left;
 color: black;
}

After the script runs, .printButton acts like this:

.printButton {
 visibility: hidden;
 display: none;
 font-size: 16px;
 float: left;
 color: black;
}

Link showing the above in action within JSfiddle

Bootstrap 3.0 Collapse iOS, ipad, iphone issue

I’ve just come across this issue with iOS devices and Bootstrap.
The Collapse function does not work if you use a DIV tag :

<div class="chevron-toggle collapsed" data-toggle="collapse" 
 href="#@unit.ExtraInformationDivId" aria-expanded="false"
 aria-controls="collapseUnit1"></div>

But it does work if you use an A tag or a Button :

<a class="chevron-toggle collapsed" data-toggle="collapse" 
 href="#@unit.ExtraInformationDivId" aria-expanded="false"
 aria-controls="collapseUnit1"></a>

or

<button class="chevron-toggle collapsed" data-toggle="collapse"
 href="#@unit.ExtraInformationDivId" aria-expanded="false"
 aria-controls="collapseUnit1"></button>

If it is to be used inside a Table, then you need to do it like:

Then remove the buttons styling:

.chevron-toggle {
 outline: 0;
 border: none;
 float: right;
 /* Add some extra padding around the button, for larger fingered people */
 padding: 1px 10px 1px 20px;
 background: none;
}

Then the remainder of the code is the same:

<div class="collapse" id="@unit.ExtraInformationDivId" style="position: relative;
 z-index: 3000;">
 <div class="well UnitDetail">
     simple collapse – lorem ipsum dolor sit amet, consectetur adipiscing elit.
     vestibulum facilisis felis in metus vehicula, vitae sagittis quam scelerisque.
     nullam ornare ante ac ipsum dictum, nec imperdiet purus porttitor.
     cras nec auctor tortor. cras posuere odio volutpat mauris facilisis,
     at luctus magna egestas. sed accumsan dolor non ante pellentesque, et pretium
     quam imperdiet. ut vitae dolor nisl. suspendisse porttitor.
  <p><strong><br/><a href="http://www.google.co.uk/search"
   target="_blank">What to do next?</a></strong></p>
 </div>
</div>

This part from above is used to fix Boostrap Collapse within IE browsers.

  
style="position: relative; z-index: 3000;"

Hope it helps, I couldn’t find the information anywhere else.