RSS feed for blog Linkin Skype Mail Me Twitter


Click for Full Blog Listing

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


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


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.


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


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.


  • 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>


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!!


  • 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.


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
        window.location = LogOffPage;
        console.log('Not IE');
        var xhr = new XMLHttpRequest();'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;


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() {

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

(function() {


  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


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… 

Click for Full Blog Listing
Latest Blogs