RSS feed for blog Linkin Skype Mail Me Twitter

Stickfight

Blog Category: status

ChargeTech Plug

Kickstarter/Indiegogo projects seem to fail rather a lot, but I have long wanted a battery I could charge a monster laptop from and so I could not resist the ChargeTech as they promised a 250 Watt output, which would handle the 130-170 Watt power supplies that nearly all my laptops have. after the delays that are now run of the mill with the outsourced production that is common on Kickstarter projects, they did actually deliver, my wonderful monster battery came in a very smart box and inside the battery in all its glory but with a huge yellow label on it1


Plug-01.jpg

The Plug its self has the size and feel of an extremely bottom heavy hardback book, it has a quality feel about it.


Plug-02.jpg

The business end of the Plug, I have used a lot of these universal sockets, they often feel fragile and like they are going the break if I push the plug in hard, these, however, feel just perfect. the blue LEDs on the USB are a tad on the bright side, there is also a usb-c and a barrel charge port on the left-hand side.


Plug-03.jpg

The accessories you get are basic but expected, I also got a car charger (not shown), I will talk about the charger later, the bag is perfectly satisfactory if a bit tight but in a nice touch it has a hole on the side so you can charge the Plug while it is still in the Bag

Usage

Using the Plug is logical and simple, turn it on at the front and get shown a little LED % readout, and then there is a separate switch to turn on the AC power, the % indicator remains on during use, I plugged in my laptop and then every USB port, and it just took it like a champ, happily worked on it for a few hours till the % readout read 00 and then it turned off,I unplugged my stuff and then plugged in the included charger, the % counter then slowly counted back up till it read 99 then FF (for full)…… don’t know what I expected but it behaved perfectly.

Notes

  • Not for Planes : Now this thing is not to be taken on a plane either in hand luggage on checked in, it’s well over the limit (which I think is 27,000Mah), but that is OK, there are plenty of battery packs that handle that area of the market (ChargeTech themselves makes one, and I have the omnicharge from another Kickstarter coming soon anyway <looks guilty>

Niggles

Even though the Plug is a product from an existing company and not just a Kickstarter newbie it does have a couple of bits that are not perfect

  • Charger The charger that comes with the the Plug is a basic off the shelf job and it shows, particularly in contrast to the build quality of the Plug its self, it’s a 43W charger in the case of 75W/90W charger and this is a special crime in a product that is designed to be portable, however all is not lost, the plug uses the most common barrel power connector and I suspected it uses the same charge circuit as their other AC power products which will accept an input voltage of between 19.5v and 24v according to their manuals, this was supported by the fact that the AC charger provided is 24v but the car charger is 20v, a brief dig around in the old cables box unearthed an old 40Watt Lenovo charger that worked perfectly was better build quality and was a fraction of the size, for shame ChargeTech, for shame!!


Plug-04.jpg

  • Charge Levels The charge % on the front has a couple of numbers it seems a bit fond of, mine, in particular, seems very fond of 9% and 64% I don’t know why, but the first couple of times using it I actually thought it was broken.

  • Power Low After a week in my bag, I took the Plug out and checked the % …. it was at 70%, WTF!!! … after a minor panic, I realised that because the on/off button is a raised one on the front, it was simply getting turned on in my backpack, so I will have to get a couple of small rubber glue on feet to stick either side of the button to prevent this, perhaps make this button recessed in a future release.

Conclusion

I like the Plug, it’s a slightly strange beast, it has the feeling of something that was designed and build by Techs, then finished off by accountants, the 250 Watt outage is done perfectly and will make a real difference to my remote working, though I wish you could do a trickle charge off USB-C or some other method.

The sheer size of the 54,000mah battery was a joy, taking a few hours of my Lenovo P50 running flat out plus all the USB ports in use to kill it, it fills a gap in the battery market that has been open for a long time and I am glad I now have one.


  1. This worried me for a second but it just turned out to be a REALLY pushy registration card….. so frankly it can get stuffed… 

Basic Authentication logout issues

A quite interesting bit of work I am doing at the moment is building an AngularJS app running on an IBM ISeries, this has presented a whole series of odd little challenges but the one that bit us hard by corporate standards was logout and session expiring, The system and its sessions are on an Apache box sitting on an ISeries, it has turned out that not only was the Apache logout URL not present but that the Apache session expiry did not take effect1.

So what to do….

I have done a nasty little JavaScript solution but one I think fits the circumstances.

  1. As this is for an AngularJs app, no jquery or such
  2. I did not want this solution to actually be built into the angularjs app, as in a perfect world the underling issues will be fixed and I want it easily ripped out, also I don’t want the code mentioned in each controller etc etc.
  3. The server that the app is running on has no facility to handle log off and does not have session based authentication (or even a login page)

Basic authentication does not really handle log off very well. For everything but Internet explorer you basically have to perform a fake login.

function detectIE() {
    var ua = window.navigator.userAgent;
    console.log('In detectIE');

    var msie = ua.indexOf('MSIE ');
    if (msie > 0) {
        console.log('IE 10 or older');
        // IE 10 or older => return version number, but I just want true
        //return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
        return true;
    }

    var trident = ua.indexOf('Trident/');
    if (trident > 0) {
        console.log('IE 11');
        // IE 11 => return version number, but I just want true
        var rv = ua.indexOf('rv:');
        //return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
        return true;
    }

    var edge = ua.indexOf('Edge/');
    if (edge > 0) {
        console.log('Edge (IE 12+)');
        // Edge (IE 12+) => return version number, but I just want true
        //return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
        return true;
    }

    // other browser
    return false;
}


function ClearAuthentication(LogOffPage)
{
    if (!LogOffPage) {
        LogOffPage = location.pathname;
    }

    if (detectIE() == true)
    {
        console.log('In IE');
        // Logoff Internet Explorer
        document.execCommand("ClearAuthenticationCache");
        window.location = LogOffPage;
    }
    else
    {
        console.log('Not IE');
        var xhr = new XMLHttpRequest();
        xhr.open('GET', location.pathname);
        xhr.setRequestHeader('Authorization','Basic XXXXXXXXXXXXXXXX');
        xhr.onload = function() {
            if (xhr.status === 200) {
                console.log('did not log you off');
            }
            else {
                console.log('should be logged out')
                window.location = LogOffPage;
            }
        };
        xhr.send();

    }
}



Followed by a very iffy 30 min log off timer, that surprising works rather well

var inactivityTime = function () {
    var t;
    window.onload = resetTimer;
    // DOM Events
    document.onmousemove = resetTimer;
    document.onkeypress = resetTimer;

    function logout() {
        ClearAuthentication();
    }

    function resetTimer() {
        clearTimeout(t);
        t = setTimeout(logout, 1800000)
        // 30 min till logout
    }
};

(function() {
    inactivityTime();

})();

  1. but even if it had, it would have screwed up the Internal application that most people use to have an Iseries Session via a browser. 

Not at Engage 2017

Crying

Due to a disagreement at the passport office (they said that because my passport got wet 2 years ago1 then it was “damaged” and could not be renewed, only replaced — which is exactly the same process but takes longer)

As such I cant get to Engage this year, which frankly is a total sod as I was going as part of the LDC Via pile and I have a session on as well, not to mention it is the most AWESOME conference.

But thankfully the rest of the LDC Via mob is still going and Matt is doing my session… we had a handover meeting where I explained to him about different types of dragons and what an Ork is..

The session is

“Choose your own adventure: Update/Convert/Replace” Tuesday, May 9 13:30 - 14:30 in Room C. Gorilla 3

A world of adventure awaits you within every app’s lifetime, none greater than when the managers decide it is looking a bit long in the tooth. The realm is a tricky one, your cause may be just but how to you justify you opinion to the grand council of the Elder PMs? Hunt for the hidden forest where backing from the business is said to dwell. Visit the fantasy lands of ‘bolting on the latest tech’ Face the dark overlord of Rip and Replace Your challenges will not just be technical, but political & economic, can you defeat evil forever or will it rise stronger in 5 years time? Let us be your Gandalf, and take you on a journey where you are the hero

Please go, it’s one that entertained me to write and also go grab a drink with the rest of the evil mob Ben, Julian, Matt and see if they will give you a prize off our stand, while I sit here and sob on my keyboard.

Also sorry to Theo who has not put out a contract on my life for cancelling at such late notice.


  1. Apparently not damaged enough for the TSA or Japanese or E.U or British customs, but too badly damaged for a civil servant sitting behind a desk who likes to p**s on peoples lives…. not that I’m bitter or resentful or anything… 

New Laptop for 2017


P50-05.jpg

So it was time to get a new laptop…

My current one had given sterling service for the last two and a bit years, but there are a couple of broken bits on it, it was starting to make distressing overheating beeping noises and hard drives would often cut out, meaning I had to get a replacement before it gave out completely (and also before its warranty expired as I want it fixed to be my backup machine)

Time to start the hunt, but what are my requirements:

  • At Least 3 storage bay slots: I don’t need optical, but I do need:
    • An OS and home drive.
    • Dedicated drive for client VM’s.
    • Slow big drive for downloads and general none secure storage.
  • Loads of RAM, in this case looking at 64Gig for running multiple VM’s at the same time.
  • 15-inch screen (just the size I am used it)
  • A none cra**y power supply connector1: it needs to be simple and hardy (like a standard barrel plug) or able to cope with being yanked out (like an apple plug)
  • As plain as possible: I think that all electronics should be a plain matte black but I am aware that I’m in the minority in this

So basically a portable server, I have a separate VM for every client I work with (that includes clients of clients when I am subcontracting), I find that it just makes things cleaner, not only does it mean I can adhere to the desktop standards of each client but there is zero chance of leakage of any client details to another client and lastly, sometimes there is a long period between work for a given client and this way I can just archive a VM till its needed again.

Contenders were:

  • One of the high-end machines from https://www.pcspecialist.co.uk/ they are cheap for their specs and I have had their machines twice before, but I don’t like any of the new models and when the current one had an issue they were very unresponsive when it came to getting it fixed under warranty.
  • The latest high-end Lenovo workstation, 2 laptops ago I got a W510 and the darn thing is still going strong, sometimes I don’t get them if their current spec is not very up to date.
  • Apple Macbook there is no denying the quality of these, and they are used by people whose opinions I put a lot of faith in, but but I just can’t, they don’t run Linux very well, they are very much “we do things awesomely so you must do as we want” and they fecking solder their HDD’s in for goodness sake.
  • Razer Blade Pro a newcomer and the nicest looking machine I think I have ever seen, but just too much money for something that I won’t be using for gaming.

After asking around, the decision was obvious, the P50 series from Lenovo was the only one that matched all the requirements this time round.

I ordered the machine plus various components for it and all had arrived in roughly a week, this time I had splashed out on a docking station as I always buy 2 power supplies anyway and I had drooled over them for years.

Up and Going

I still use Mint Linux (currently version 18.1) as my host OS, and it installed straight away, all standard hardware was detected and function keys worked so that was a nice none event, boot time was 6 seconds cold to login which was a bit jaw-dropping, the docking station worked perfectly with Linux, in fact, nothing went wrong and it was all in all a 10-20 min job, a quick copy over of my existing data and I was done.

Even though the keyboard was one of the new island types, the spacing is the same as the old Thinkpads, so my fingers settled in nicely, an added benefit that I was not expecting is the size and weight reduction, the laptop its self is both lighter and smaller than my current one as is the power brick, nice!

Two changes I did have to make were in the BIOS, Vmware had a little grumble at my 64bit VMs meaning that I had to go into the BIOS and enable “Intel VT-x” as show below


P50-09.jpg


P50-08.jpg

Also when when I was testing using multiple monitors I got a load of terrible screen tearing, even after installing the Nvidia drivers, Linux is know for being a bit poop when it comes to video drivers but in the end it turned out to be the integrated Intel Video, as the dedicated video card is only a 4Gig one, I just turned it on in the BIOS and will live the with slight battery hit (however the quality is so much better that I don’t think I would go back to the Intel one anyway)


P50-07.jpg


P50-06.jpg

Storage

Storage seems to be the issue I always have to do the most faffing around with as no laptop producer seems to have the options I want in their customization

In this case my budget would strech to 2 x 1TB M.2. SSD and 1 x 2TB Sata Spindle Drive (basically M.2. replaces mSATA which replaced the old IDE connectors)

Now I did not know that M.2. is just a name for a socket, its not actually a name for the new transport mechanism, it can support mSATA and NVMe, OK, what is the difference, turns out a huge amount, there are hundred of articles and videos on the difference but basically mSATA (the mobile form of SATA) was designed for spindle disks and so is designed around their speed limitation whereas NVMe behaves far more like RAM and so can access SSD’s very very fast


P50-03.jpg

How the feck is this a TB Drive!!!!


P50-04.jpg

fully populated and running like a dream. :)

Niggles

Nothing is perfect, but in this case, I am happy to report that the minor faults I have found are nothing to do with the engineering of the Laptop and everything to do with me being a minor idiot and a little bit of disconnect on Lenovo’s side.

  • Backlit keyboard: Early morning I sit down at the laptop and squint at the keyboard, why is the keyboard not backlit?, <tut>, I have just not turned it on, <moment of squinting at the keyboard> where the feck is the backlight?, quick visit to google, then a shamed visit to the Lenovo order page, a backlit keyboard is an OPTIONAL EXTRA, and like a numpty I had only glanced at the keyboard option to make sure that it was set to the UK, I did not notice that there was a none backlight option, it can be fixed by buying a a replacement keyboard, but seems odd to have an £20 option that has been standard on high end laptops for years set to off.. oh well RTFS

  • Installing SSd’s: as mentioned above I installed my own SSD, but you can’t just install the M.2. stick of gum, you need a plastic adaptor which is not supplied either with the laptop or with the SSD, these are not hard to find and the ones for the P50 look like this


P50-01.jpg

  • Well that is NEARLY true, the adaptor above LOOKS like it is for all SSD (it even has the icons for both types) but if you are installing an NVMe, then you need one with the insulation pad at the back (see below), yes this info is in the detailed technical manual but part sellers do not make it obvious.


P50-02.jpg

Conclusion

Very very happy, I feel I have picked the right laptop for the next couple of years, it has the same tank like build that is the hallmark of Thinkpads, and with features like USB-C and NVMe I don’t think I will find it wanting during its life span, it is also claimed that it has a full day battery which is something I have not had in a laptop EVER but anything more than a couple hours will really make my year.

Now if I can just stop it getting greasy and dirty, and get some good stickers for the lid.


  1. This was the main reason that I did not get another laptop from https://www.pcspecialist.co.uk/ all their new laptops have these rubbish 4 pin power connectors which I have had problems with in the past, I phoned up and asked but the guy said that they were stuck with them for the next round of laptops. 

Fitness the long road back - Week 1

Got to get fit , GOT TO GET FIT, want to go back to fencing but I would be an embarrassment at the moment, so I have set my self a baseline first

23/04/2017

Run 2.4 Miles (3.9 KM) to the Park and back 1 : 33:45 Fail

1 x Complete 7 Min Workout : 4 out of 12 Fail

25/04/2017

1 x Run 2.4 Miles (3.9 KM) to the Park and back 1 : 31:22 Fail

Complete 7 Min Workout : 5 out of 12 Fail

27/04/2017

1 x Run 2.4 Miles (3.9 KM) to the Park and back 1 : FAIL WORKING LATE

Complete 7 Min Workout : FAIL WORKING LATE


  1. So the passing score for the Army 2 miles run (I have no idea which Army the US one I expect is 19:30 for an old fart like me I have no idea if that is carrying pack or what but its a good start, the park I will be using for fitness is 1.2 miles away, Sooooo 19.30 which equals 1170 Seconds, Pro-rata that: ( 1170 Seconds / 2 ) * 2.4 = 1404 seconds = 23.24, that will be my baseline the end goal will be the top mark in the old fart chart of 13:36 which Pro-ratas to 16.20 (hahahahahaha) 

Modern Web Dev on Iseries

I have recently been merging very old tech (RPG on ISeries) with modern tech (angulaJS 1.6) and it has brought a whole bundle of fun little issues on the ISeries side that I thought I would just note down.

I am NOT an RPG programmer (and never will be), but if you are ever having to deal with REST services (or Web Services) being hand cranked1 for you by a Iseries Dev, there are some of the issues that you may hit

  • Truncation: JSON data can quite easily pop the string limit on ISeries, so your Iseries Dev will have to do this “write to file” thing to get round it, if your JSON is over about the 6Meg limit then you are really going to cause some speed issues.
  • Inconsistent data types: Given that the PUT/GET/POST services are all coded separately, you will get field formatting issues especially if changes are made retrospectively, a Field that is a string in the GET may be a numeric on the PUT, you just have to keep a grip on it and try not to go for the easy option of “we will get it working then come back and fix it later”
  • Leading zeros on numerics: If you are passing decimals less that 1 then the Iseries is going to want to send them as “.000” rather than “0.000” thus invalidating the JSON, don’t be tempted to turn these numbers into strings, they CAN be formatted correctly.
  • Character sets: A lot of the activity seems to be UTF-8, and you may get a fair amount of issues revolving extended character sets, if you are getting errors that are simply baffling when you send stuff to the ISeries, check the formatting of the characters that you are sending.
  • Alternating Parameters: You may be used to REST services in the format “\Name\Parmeter\Name2\Parmeter2” well this causes problems apparently, so you have to deal with them in the format “\Name\Name2\Parmeter\Parmeter2”

A lot of RPG Programmers will not have done this kind of programming before, so testing the results will be a pain to them, may I suggest that you get chrome and https://client.restlet.com/ installed on their machine so they can test and https://jsonformatter.curiousconcept.com/ so they can test the results they are getting.


  1. Yes hand cranked, The ISeries is very good at dealing with text formats and handles REST/MarkDown and its developers have had lots of practice at coding to such, this combined with the extreme pricing of bolt on features <cough> gouging </cough> mean that its most likely your client will drop the bundle of fun on a developer. 

Coming Up For Air

Well that was a hell of a first quarter, a crazy mix of stuff that all HAD to be done, just surfacing on the Easter weekend

so what did I miss:

Connect 2017

First year in what seems forever that I was not pounding off to the US in Jan for the yearly pep conference on all that is IBM, alas a thousand things conspired to stop me this year but mainly just too many client deliverables to take the time off, though it seemed I got on the big screen.


Youjo Senki 01.png

From what I could see from other peoples blogs the conference was a good one, and that we are finally shaking off the older stale parts of what we do and getting on with the new stuff.

what with UKLug/ICON not being on this year looks like my only conference will be Engage, where I will be speaking, this years dodgy session is: “Choose your own adventure: Update/Convert/Replace” at 13:30 on Tuesday in Room C (Gorilla 3).

IBM Champion stuff

Not spent any time in the chat and even missed the yearly swag frenzy (but thanks to Amanda she is going to bring me some stuff over), but I have been doing lots of IBM champion things in that I have been upgrading a variety of IBM tech as well as integrating it with other modern stuff, just not been very visible.

Qualifications

Hmmm I was supposed have got a s**t load of Salesforce qualifications by now, I have had opportunity enough, free training (thanks to bluewave) and what not, but still spend all my time DOING stuff rather than learning stuff, must MUST get a grip on that. also on the radar is docker and the other platform support bits we are looking at for LDC Via






On the plus side I have solved a huge number of client crises in these last few months and made a number of clients very happy, so that is a excellent thing :)

Onwards!

Free beer and disreputable company

Due a huge number of unfortunate events LDC Via are not at connect this year (though we will be at other IBM conferences), refusing to give up on the core tenant of such conferences we will be getting pissed and watching the OGS.

Come join us and let us buy you drinks Register Here, it will be upstairs at the Castle pub next to Farringdon tube station (London) On Tuesday 21st from 5:30pm

A Year in Review 2016


Year In Review 2016

Time for the annual year in review blog post! This year has just about everything in it, everything apart from peace and quiet. A huge diversity of work and skill-sets, from Salesforce to Sametime, from AngularJS to admin work on SAML, so much so that my tiny mind is bulging at the seams.

My Salesforce skills have come on leaps and bounds: it is an interesting platform, with a lot of opportunity for the clever hacking I enjoy so much. I must give Bluewave a huge thank you for letting me work with it (Salesforce is very partner-oriented, with little place for true freelancers) and most particularly Barry Hughes, the most patient guru who also lets me sit in on internal training sessions despite having finished my full-time work (with Bluewave’s permission I might add).1

For the first time ever, I have a proper office rather than simply relying on client sites or my home workspace: my rented office is at Purple Patch, and it has proved to be just perfect. I can get tons done, and it’s also somewhere to meet, and work, with clients.

LDC Via has had a busy year with booths at multiple conferences and loads of changes and new features based on client feedback and installations. We even launched a whole new offering: KEEP.WORKS.

What skills have I used this year?

Salesforce —> The full range of Salesforce app building, from standard declarative coding to involved, large chunks of Apex and Javascript programming. I also spent loads of time training people on Pardot, working with this very “defined” marketing framework to flex it in a way clients actually want it to function.

JavaScript —> The continuing growth of JavaScript as a primary language for projects showed up a lot this year, in everything from AngularJS to Salesforce Lightning.

Proper Programming —> Java is still my core “serious” language. I’m using it enough to keep things sharp, but it’s not a growth area.

Supplementary stuff —> full on iCal work2, search integration with Solr and Nintex for Sharepoint stuck out this year.

IBM —> Sametime, Domino, WebSphere, ISeries and the other staples of the IBM family continue to test my imagination with integration and upgrade work, ensuring everything stays up-to-date and relevant.

Guesses for 2017

Two big items to guess about here:

Skills

JavaScript - this will continue to grow for me, driven by multiple things:

  1. LDC Via and its extensive use of node.js.
  2. Salesforce Lightning - the direction in which Salesforce are clearly steering.
  3. For Domino-based web work, a JavaScript framework talking to Domino services turns out to beat XPages hands down every time.
  4. Lots of clients want to “glue” existing systems to third-party APIs.

Salesforce - I’m less sure about this. The model favours a race to the bottom, which is already starting to show. The company is also incredibly partner-oriented which means it’s hard for smaller companies and individuals to find work. I will just have to keep the skills sharp and see what happens.

Work Load

Bugger knows, this year has been busy, but it’s been in fits and starts3, such is the joy of freelancing. I had a couple of quiet spots and a couple of periods of full-on mayhem. For 2017, I’m hoping to avoid the two things that make we want to scream: (1) the sudden cessation of all work, followed by a couple of stunned weeks looking around, and (2) the conversation with someone later on that year who says “I would have asked you, but you always seem so busy…”

OK, that is enough of the fluffy blog posts for a while. Next up: proper tech stuff!


  1. I was there as a contractor to help take deal with a sudden heavy load, they have now hired permanent staff, but still treat me as part of the team and I’m there if they hit another peak. 

  2. Including requests to Google and other web email vendors for native buttons and drag-and-drop meetings, etc., etc. 

  3. or even ‘Stits and Farts’ 

Ical Invites with Gmail tip

Just a quick tip for developers who are coding and testing ical solutions with Google / Gmail web client, if you update a meeting in the past i.e. you reject a meeting in the past that you had previously accepted it will NOT send a notification back to the meeting organiser to inform of the change where as something like the Outlook think client WILL,

That’s it

Latest Blogs