Remote Desktop While Away

In a few weeks I pop off on my first holiday for 2 years, for this trip I really do not want to take my laptop, this would seem odd as the darn things have been practically glued to me for the last 20 Years, but:

  1. Its time to learn to take a break
  2. As a Member of LDCVia I need to learn to know when to share the work, and how to hand over.1
  3. Errr… welll… There are now countries that were once thought to be friendly, that have now shown a distressing habit of being hostile at their borders and want to take your clients private data away and look at it for “Reasons” and I figured this would be a great dry run for having to travel to such a country again.

But I’m not insane, nor can I leave my clients, sooo I needed to retain access in some way so that I can support as and when it is needed. some sort of cloud desktop that I can reach from a cheap laptop or tablet seemed like an obvious answer.

Requirements:

  1. It must be able to run a form of VMWARE as each of my clients has their own separate VM machine(s) with separate security.
  2. It must support Android (large and small screens) and Linux as clients.
  3. It must not cost a bleeding fortune.

Contenders

AMAZON Workspaces: This looked a perfect fit to start with and I use AWS for lots of other services including this blog, but the setup was a right faff, and was slow and cumbersome, Then I realised that it would not allow VMWARE or any virtualisation, undaunted I thought I would at least check out the performance, only to discover that despite stating “just connects from anything” it only meant large android screens (not my phone) and not from Linux at All.. so in the bin it went.(shame really).

VMWARE Remote Console: Wince!!..I have to own to a bit of paranoia here my self, direct access to the Clients VM’s is just too much of a risk from external, it just stops there. sorry VMWARE, I tried to mentally run through the conversations explaining my actions to clients, and none of them went well.

I started to look at Citrix then got a grip and thought, “OH COME ON” its just one machine. Just get another machine load your VM’s on it and get a good secure remote client… cue another 30 mins wasted looking at online hosting, and then a small local server, then more swearing comes from the office as I realise “JUST USE YOUR BLOODY LAPTOP YOU TWIT YOU WON’T HAVE IT WITH YOU”…. fsss.

So it just comes down to good remote connection software:

The 3 that stood out were:

Logmein : From my point of view easy to discount as it does not support Linux guests but would have been discarded anyway as it has a small company feel which would again make it a difficult sell to clients.

Team Viewer : Used by many of my clients and supports a lot of nice security features, but a bit on the pricey side.

VNC Connect : I was attracted to this as I use the free version for my Raspberry Pi’s, I also like the VNC standard and it has been security hardened by many a grumpy sys admin and dev over the years, the VNC Connect platform provided by Real VNC ticks all the boxes.

I was actually hard pressed to pick between Team Viewer and VNC Connect, on paper they provided all the features/platforms and security that I could want, but in the end VNC Connect won, partly because of price (its £42 2 a year vs £384) but mainly the fact that the android viewer on team studio does not support the use of a mouse via Android.3

Security

OK, lets get the elephant in the room out of the way, how are we handling security.

Well VNC Connect is nicely paranoid about security so to get to my laptop now requires 2 logons both different 12 digit ones (1 to login to VNC Connect and 1 to get to my laptop ) then each VM is encrypted and requests a login appropriate to the OS used, then of course the normal password for each client to connect via VPN/Programs etc etc.

I ran that through potential questions via any of my clients and it came out OK.

Physical Setup

I have attempted to do this kind of thing before and obviously used remote software all of my career, and thus have sworn at my fair share of thin clients, phones, and tablets

Requirements

  1. Lighter than just taking my laptop
  2. Resolution of a decent Screen
  3. Good keyboard
  4. Good mouse
  5. Either not a silly price or very reusable

I looked at Chrome books but frankly all in the price range were poo, Microsoft surface laptops were too expensive and I’m not in the IOS ecosystem, So an Android Tablet it is, that meant a Nexus or Pixel as few of the other vendors keep the security patches up to date, thankfully the Pixel C was on special offer (most likely due to being replaced in the next month or so) that meant I could get a good tablet with a great screen and a very pleasant keyboard, paired with the new Logitech tracker ball and I had something that was very usable thank you.



Testing

Next I did 2 basic tests, performance and usability

Performance: I connected my laptop to a VPN in Japan, then tethered the tablet to my phone, then connected via the remote and sat down to work, it was totally usable , there was that slight lag on the mouse you get on any remoting software but no more than I get when I VPN into any clients network, and that was going to be the real test, using a VM via another VPN while remoting to the host PC, here I have to say I cheated like a devil, as my laptop is in the comms room of the office where it has access to the AWESOME least line we use (and is physically secure), so in fact it was actually faster and more responsive than normal, which was a more than pleasant surprise

Usability: Not bad, not perfect but not bad, it worked as well as any remote program, with a couple of extra qwerks, it does not re-size the client desktop as it is a genuine KVM rather than creating a new session, which is both good and bad but easy to work around, the other qwerk I’m still working on, is that the top and bottom bars for the Real VNC client triggers very easily and they don’t always retract cleanly without an extra click, I would like it if you could allocate a special gesture to the client to stop it working in modal form, the same as VMWARE client, perhaps a 3 finger swipe from the top or something like that

Conclusion

OK, I have been doing dry runs of leaving my laptop in the office and just taking the tablet and mouse home at night then working on that and I have to say I am now comfortable just going to Japan without the laptop, this setup works…. wish me luck.. :p

FootNotes
  1. I get told off about this about once a month.[]
  2. They do do a cheaper version but I wanted the higher level encryption.[]
  3. But I do have to give the Team viewer client credit for handling screen render better than VNC, it would have been nice to get the best of both worlds, and I hope VNC improves on that front.[]

New Logitech TrackBall

I moved to a trackball instead of a mouse about 22 years ago when I got a twinge of RSI in my shoulder and the best one on the market at the time was the Logitech ps2 Marble TrackMan, Since then I have upgraded with each new model resulting in the current M570, a week ago on an off chance and needing a blue tooth trackball I checked the Logitech site, squeaking with surprise I saw the new MX Ergo trackball was just out

A few days later it arrives in my sweaty hands and I discover that someone at Logitech seems to be a mind reader and has added just about everything I wanted. So this review is going to be a bit unbalanced but I will try to point out the good and the bad.,

Good

  • Lots more grip: the M570 had 4 little rubber feet that had a habit of coming off and disappearing into the ether, meaning the mouse would rock slightly until you replaced them, the MX Ergo has a solid rubber foot that nearly glues you to any surface with NO sliding.
  • Multi-connection: the MX ergo uses both Bluetooth and the Logitech Unified Receiver as well as supporting 2 devices swappable with a button click, this means I can swap between my laptop and tablet very easily and with no messing around to re-pair, it is JUST what I wanted and works flawlessly.
  • Easy precision switch: there is another little button that swaps between fast and high precision mode, another feature I have wanted and expect to come in useful.

Bad

  • The Little devil is more than twice as heavy as the M570, which is both good and bad, good in that it feels far more solid to use, bad as in I carry the sod around all the time.
  • Fragile: Now I don’t really think it actually Is any more fragile, but as it feels more complicated I think it could get grubby pretty quick and the base plate would fall off in my bag
  • Expensive: An extra £30 over the M570 plus £20 for the case I feel it needed, makes this a pricy old mouse.




Size and Feel is nearly identical to the M570 (which just shows they got it right the first time) with the addition of the 2 position rocker (Hand flat and hand at 20°)




The underneath of the MX Ergo vs. one of my well-worn M570’s you can see the solid foot and absence of a battery hatch, The MX Ergo just recharges via USB meaning I no longer have to carry around any spare batteries.



The detachable foot, which attaches to the MX Ergo with 2 magnets, I can’t say I’m in love with the solution and would like the option to leave it off, but there is no denying that it sticks on well and gives both weight and stability.




Given the cost, less rugged nature and “waiting to fall off” base, the investment of a case seemed a prudent idea. I went with a Hard Travel Case by co2CREA

Conclusion

I love this mouse. I REALLY love this mouse. Yes, it costs more than its predecessor; yes, you can’t just bung it in your laptop bag anymore, but to use, and in particular to use on different platforms, it is just a pleasure, comfortable, responsive, and smooth…… Happy Sigh

Unlimited Test Email Addresses

A silly tip that has saved me tons of hours and make clients happy is having an Email domain that has “catch-all” routing on it.

Basically this is having a domain that any address that you use with it automatically routes to a central email address, mine is the “energywins.co.uk” domain, anything you send to that domain ends up at my main address, be it “clientTest1@energywins.co.uk” or “fakeUser200@energywins.co.uk”, this did not used to be that useful when all apps were internal, but in the world of cloud apps and PARTICULARLY with the Salesforce/Pardot world that only allows an email to be registered once it is invaluable and helps you to keep clients separated (they also love to have you use emails address that are specific to them ie “MicrosoftTEST@energywins.co.uk”

This can be done easily with just about any email provider, but I use Gmail for domains as it is easy, fast and cheap1.

Strangely the Gmail for Domain instructions keep changing, are oddly poor for Google and the setting is buried REALLY deep which I assume means they don’t really want you to do it. so if things change, just search for “Gmail Catch All” in the meantime:

  • From your inbox, Click on the little cog on the right-hand side and select “Manage this Domain”

  • Then select “Apps”

  • Then select “G Suite”

  • Then select “Gmail”

  • Then scroll down to the bottom and select “Advanced Settings”

  • Then scroll nearly down to the bottom and under “Routing” you will see the setting for “Email routing”, change the radio button for “Unknown mailbox account messages” to “Route to catch-all address”, and put in your main email address for this domain.

That’s it, for most people this is not a suitable setting because it just slightly increases your spam content, but for me and anyone who needs a constant stream of individual email address and to not lose track of old ones used one 6 months ago, it’s invaluable.

FootNotes
  1. Some of my colleges use temp email domains such as http://www.throwawaymail.com but I have found that such things have a habit of being needed again in 6 months when the client comes back for more work.[]

A Change Of Headphones

Anyone who knows me will find the idea of me not wearing a set of headphone at all times a strange one, and for the last 6+ years I have been a faithful purchaser of the Sennheiser PXC range, gently working my way through the range over the years from the 360 to the 550, however when it came to buying a spare battery (after a spate of losing the devils) I found out that the style that I had been used to years had been changed, not a problem, all designs change and grow i’ll just get the new version…. Ah no I won’t… because the new ones are angled and that is a deal breaker, it means I can’t wear them the wrong way round 1 and I cant tuck one behind an ear which I NEED if I am on a client site as there is nothing that gets headphones banned faster than managers not being able to call you when they want.

Requirments

  • Over-ear Design.
  • Bluetooth + Wired.
  • Standard Ports: I fecking hate proprietary ports of all types, you use your own ‘Special’ port so you can sting me for replacement accessories then you are on my s**t list.
  • Vertical alignment: headphones must be vertically aligned, not tilted.
  • No Noise Limiters: I’m not bloody 5 and I Like loud music.

The Choice

I looked at the new Sennheiser PXC but they failed because of the tilt issue raised above and their other suitable models tipped the hipster scale too far, Bose cost too much and just feel like they are not going to last long under the strain of my life and Plantronics are huge and just fall off my head, so enter an outsider in headphones but a venerable name in music: Marshall and their Monitor Bluetooth




The Good

  • The Bluetooth is much much stronger than the Sennheiser, I can leave my phone on my desk and wander round the flat with no issue, a great improvement.
  • Snug fit: The headphone are a very tight snug fit, far too tight for my wife, but a positive for me.
  • Sound Quality: richer and far louder than the Sennheiser a huge improvement
  • Duel Input: When working I am always using the Pomodoro timer from my phone via blue tooth, but am often wired in at the same time for things like calls and such, the Marshall headphones handled both of these at the same time which is a pleasant upgrade.

The Bad

  • No Lateral Movement at all: was not really expecting any given their classic design and the absence of an extra join sure makes the whole structure stronger, but without one I can feel the extra pressure when I tuck a headphone behind one ear.
  • Control knob: a poor gimmick, not a knob but a mini joystick which is both fiddly and unintuitive, the volume should have been changed by TURNING the knob!

The Unexpected

  • The replaceable headphone pads are easy to swap: My beard and stubble shreds headphone pads so I was forever replacing the Sennheiser pads, and boy were they a PITA to replace, the Marshal ones are magnetic and nice and easy.
  • The Marshall headphones gave me a total blast from the past to my dads old Pioneer SE-205 which I loved from years ago, true retro.

The Conclusion

It’s still early days and the Marshals are not quite as easy on my ears as the Sennheisers but the sheer upgrade in nearly all features blows that out of the water, Recommended.

FootNotes
  1. Which I want to do when I want the the cable or buttons on a certain side, or if the Bluetooth signal is having problems with my head!![]

Salesforce and Third Party Calls

This is just a post to help other Salesforce devs who have to face the same repeat question time and time again and the same disbelief in the answer, So they can prove to the client that they are telling the truth.

Dear Sir/Madam
If you are reading this then someone has sent you to this post because you have asked about linking to a third parties data “on the fly” or “in Real time” or “before it opens” on Salesforce and wanting for such data to arrive before showing the page to your users…

the simple answer is this

Salesforce will never make the speed of their website dependent on anyone else!!!

It will never wait for anyone else before opening a page
It will never wait for anyone else before saving a page
It will never wait for anyone else to do ANYTHING

Yes, you can call just about anything with Salesforce, but it will do this asynchronously, so it will make the call to the Third Party, then get on with its own stuff without waiting for an answer.

You just have to write your Salesforce code/page/whatever to deal with the result when it comes back from the Third Party, it’s well documented, there are lots of ways to deal with it: Batch runs, Ajax etc and plenty of neat solutions.. but none of them is “can’t it just wait”

Fin.