June 2017 Gadget update

Every 6 months I do an update on the state of my gadgets and what I use


Lenovo Thinkpad X1 Yoga (2017) – replaced my 2015 ThinkPad Yoga 14

This is my main laptop now and replaces my Thinkpad X240, and Thinkpad Yoga 14. A light, convertible laptop, weighs only 2.8lbs (substantially lighter than the Yoga 14 which I previously had), docks with a one link dock connector and wireless dock, has that traditional Thinkpad robust build quality and great trackpoint keyboard, and is convertible which means I can watch movies in 4 different modes, and comes with a gorgeous 1440p OLED screen to boot. It loses the dedicated graphics (Nvidia 840M) of the Yoga 14 but improves on it everywhere else including ports, display and weight. Compared to the X240, it loses the VGA, full size SD and Ethernet ports but is much lighter, has a much better display, and is convertible.

Dell Latitude 7370 (2016) – replaced my 2016 Vaio S

This is my main portable laptop (yes the X1 Yoga is portable too but it has a lot of sensitive data that I would rather not take on travels). It replaces my Vaio S, and is basically the fanless, futureproof version of the Vaio. Compared to the Vaio, it has thinner bezels on the display, loses two USB3 ports, VGA, full size SD and Ethernet (legacy ports), but gains microSD and 2 USB-C (more futureproof ports).

Alienware 15 R3 (2016) – replaced my 2011 HP Envy Beats, 2015 Asus ROG G751

This is my main gaming and VR computer now, replacing my aging HP Envy Beats 14 and hefty Asus G751. I decided I wanted a 15 inch because of its lightness and portability, yet its still powerful enough to have a GTX 1070, power my Oculus Rift (VR ready), hooks up to my external monitor, plays all the latest games, and looks great at home on a laptop stand.

Macbook Pro 13 (2016)replaced my 2012 Mac Mini
My replacement for my Mac Mini as a programming/entertainment computer. It’s light (3lbs) and runs macOS making it great for development and the lack of ports is made up by my Dell USB-C Dock at home.

iPad Air (2013)

The iPad Air is my go to tablet for surfing, gaming, music or reading. Has been since 2013.

iPhone SE (2016) – replaced my 2013 iPhone 5S

The iPhone SE is my main video recorder, which I use on occasion to record videos, mainly because my model is a 64GB one that can store more videos. Plus love the small size which is what cameraphones should be! light and small. It replaces my aging iPhone 5S.

Google Pixel (2016) – replaced my 2014 Sony Xperia Z3C
The Google Pixel is my main phone now. It has a great camera as well, and is generally just a fast and capable phone all around. It replaces my Kyocera Duraforce Pro and Sony Xperia Z3C as my main Android device.

BlackBerry KeyOne (2017) – replaced my 2015 Blackberry Priv

The BlackBerry KeyOne replaces my Blackberry Priv as my secondary phone and video call device, has a way better keyboard and gets wayyyy better battery life to boot.

Sony Walkman A17 (2017) – replaced my 2015 Pioneer XDP

The Sony Walkman has replaced my Pioneer XDP, since its much lighter and more portable. It doesn’t sound *quite* as good as the Pioneer, but it’s 80% as good and still much better sounding than most smartphones (with the exception of a few like the HTC 10). The Pioneer is more like the old HDD players like the iPod Classic and Creative Zen Vision – stores more music and plays videos, but big and bulky. The Sony Walkman is a small flash based player like the iPod Nano and Zune HD. They both have their uses.

Huawei Watch (2016) – replaced my 2012 Seiko Kinetic, 2016 Orient Sun&Moon

Now with the Android Wear 2 update, Huawei watch is awesome and is definitely my main watch now. It replaces my Seiko Kinetic (quartz) and Orient Sun & Moon (mechanical) which I used before.


Generally I prefer using speakers at home and headphones on the go. I rarely use headphones at home. The advantages of speakers – everyone can hear it, higher fidelity and larger drivers, but usually also more expensive and not as portable.

Razer Hammerhead BT (2017)

Razer Hammerhead BT

These are very convenient bluetooth earphones for mostly working out where the wires getting in the way would be troublesome.

Fender FXA3 (2016) – replaces 2014 Master&Dynamic ME03

The Fender FXA3s are my main earphones for traveling and studying.

Denon Music Master MM400 (2016) – replaces 2014 Sennheiser Momentum

This is my main headphone that I use at work to listen to music and for conference calls.

Absolutely the best over ear headphones I’ve ever had, these now have replaced my Sennheiser Momentums which were falling apart as well. I use it with my Creative SoundBlaster E5s at work for the extra oomph!

Creative SoundBlasterX Katana (2017) – replaces 2015 Creative T4W

Now used as my computer speakers for my Alienware. It’s the first soundbar designed specifically for computer use. RGB lighting, bluetooth, 7.1 virtual surround and a bunch of other options – what’s not to love?

Klipsch Promedia 2.1 (2016) – replaces 2015 Klipsch R-4B Soundbar

Klipsch Pro Media 2.1 Klipsch Pro Media 2.1

Absolutely fantastic computer speakers. Now using it for my TV and gaming systems since I found it has better bass than my Klipsch R-4B. The bass and overall sound quality is fantastic. Replaces my non-functioning Creative T4Ws which shorted out :(, and the Samsung and Klipsch soundbars that I used before.

Klipsch the Three (2017)

This speaker is really cool and retro looking especially with the Ebony wood finish, and pairs well with my Google Home (using Chromecast audio) and my Fluance record player to play some nice vintage tunes!

Bose SoundLink Revolve (2017) – replaces 2015 Creative Soundblaster Roar 2

This speaker replaces my Creative Soundblaster Roar 2 as a portable outdoor (splash proof!) speaker, also pairs very well with my Macbook.

Yamaha TSX-B72 (2017)

This is my alarm clock radio that I use by my bedside to wake me up each morning 🙂 and yes it has bluetooth and can charge my phone too. It replaces my Sony BSP60 bluetooth alarm speakers those ones are a little complicated to operate and I just wanted a simple vintage looking alarm clock radio.


Nikon D5100 (2013)
My DSLR camera for serious video making. I usually pair it with my Samyang T1.5 24mm cinema prime lens.

Sony Action Camera AS300 (2016) – replaces 2014 GoPro Hero3+
Replaces my Sony Music Video recorder and GoPro Hero 3 as both my action camera and my wide angle camera that I can use for blogging, travel videos, action videos, etc and has optical image stabilization which no other action camera has! Also waterproof/dustproof as well and quite small, making it great for situations where my Osmo+ would be too heavy.

DJI OSMO+ (2016) – replaces 2015 DJI Osmo
My go to camera for taking cinematic walking shots, travel video, and completely replaces any camcorder. The Plus model now has optical zoom capabilities with it too.

DJI Phantom 4 Advanced (2017) – replaces 2015 DJI Phantom 3
Replaces my DJI Phantom 3, better sensors, obstacle avoiding, takes better night shots etc

Other laptops: Asus G751 (secondary gaming laptop and workstation), HP Revolve 810 G2 (secondary Win7 laptop and secondary convertible), Thinkpad X240 (still only laptop I have with hot swappable battery and mobile broadband), GPD Pocket (mini netbook)
Video game systems: New Nintendo 3DS, Nintendo Switch, PS3, PS4, PS Vita, PSTV, Nvidia Shield Pro, GPD Win
Displays: Mobile Monitor 2 Go, Dell 24″ Gsync 1ms 144hz infinityedge monitor, Royole Moon, Avegant Glyph, DJI Goggles
Storage: 1 Synology DS412+, 2 Synology DS416j, 1 Synology 416slim (20TB all in RAID 1)

Laptop collection (one for each size)
11.6″ 1366×768 – HP Elitebook Revolve 810 – 4th gen Core i5, 8GB RAM, 180GB SSD, 3lbs, Win 7, 6 ports: 2 USB3, DP, Ethernet, microSD, headphone
12.5″ 1366×768 – Lenovo Thinkpad X240 – 4th gen Core i7, 8GB RAM, 256GB SSD, 3.5lbs, Win 7, 7 ports: 2 USB3, miniDP, VGA, Ethernet, SD, headphone
13.3″ 3200×1800 – Dell Latitude 7370 – 6th gen Core m7, 8GB RAM, 256GB SSD, 2.5lbs, Win 10, 6 ports: 1 USB3, 2 USBC, microHDMI, microSD, headphone
13.3″ 2560×1600 – Apple Macbook Pro 13 – 6th gen Core i5, 8GB RAM, 256GB SSD, 3lbs, macOS, 3 ports: 2 USBC, headphone
14.1″ 2560×1440 – Lenovo Thinkpad X1 Yoga – 6th gen Core i7, 8GB RAM, 180GB SSD, 2.8lbs, Win 10, 7 ports: 3 USB3, miniDP, HDMI, microSD, headphone
15.6″ 1920×1080 – Alienware 15 – 6th gen Core i7 quad, Nvidia GTX 1070, 16GB RAM, 2TB SSD, 7lbs, Win 10, 8 ports: 2 USB3, 2 USBC, HDMI, miniDP, Ethernet, headphone
17″ 1920×1080 – Asus G751 – 4th gen Core i7 quad, Nvidia GTX 970M, 16GB RAM, 2TB HDD, 9lbs, Win 10, 10 ports: 4 USB3, SD, VGA, miniDP, HDMI, Ethernet, headphone/mic


Upcoming/current gadgets list

Upcoming gadgets I’m excited about

Google glasses
Meta glasses
Vuzix M100
LG G Watch
Huawei watch
Withings Activite
Pebble Watch
Neptune Pine
Moto 360
Lumus DK40
Smarty Ring
Nike fuelband
Razer Nabu
Jawbone Up
Martian watches
Meta Watch
Misfit wearables
Kiwi wearables
Epson Moverio BT200
Zeiss Cinemizer
Sony HMZ-T3
Gameface Mark IV
Recon JET
Avegant Glyph
Optinvent ORA
Smart Googles
Myo Armband

Cameras / Displays
Looxie HD Explore
Contour cameras
Garmin VIRB Elite
Sony Action Cam
FollowFocus Shifter
Rhino stabilizers
Aericam DSLR stabilization system
Ghost stabilizer
Lynny Lens
Sail video system
Lomo Instant Camera
Petzval Lens
SoloShot 2
Sony QX100
Dos Owls Odin
Monitor 2 go
Touch Pico projector
Asus MB168B portable display
S1 Pocket projector
Asus Widescreen MX2990Q
Asus 4K monitor
Samsung 4K monitor
Viewsonic 10 point multitouch display
Viewsonic smart display
Sony 84″ Ultra HDTV
Sony 4K projector

Nvidia Shield
Origin PC
Steam Boy
Nvidia 3D vision2
Modbook Mac Tablet
Razer Edge Pro
Razer Christine
HP Omen
Razer Blade
Aorus X7
Asus ROG
Sony HMZ T3
Vuzix Wrap 1200DXAR
Vuzix Star 1200XLD
MS Surface 3
Tango PC
Asus Taichi
Lenovo Horizon tabletop PC
Alienware Alpha
Nexus 7
Vivo Xplay
Fiio X5
Meizu MX3
Parrot Asteroid
Archos Gamepad 2
Steam Machines
MadCatz MOJO
Leap Motion
Moga controller
Handy Phone
Yotaphon 2
Nokia Lumia 1020

Oculus Rift
Eyesight Tech
Virtuix Omni
Reactive Grip
MS Kinect 2
Creative Senz3D
Asus Xtion Pro
Cyberith Virtualizer
Sixense STEM
Double Robotics
Revolve Robotics
Willow Garage
Pepper/Nao bot
Bitcraze copter
Hovis Genie
Razer Hydra
Parrot Drone AR2
Zano drone
Parrot Bebop Drone
Parrot Jumping Sumo
Parrot Rolling Spider
Hex copter
Pocket Drone
Draganfly X6
DJ Phantom 2 Vision Plus
Beam Plus
Budgy Bot

Connected / Home objects
August Smart Lock
Archos Smart Home
Piper security
Electric objects

Hendo Hoverboard
Tile App
Aurora Dream
Fender Custom Shop
B&O Beolab 14
Ollo clip
Pegasus 3D printer
Form Labs 3D printer
Kudo 3D printer
Micro 3D printer
3D Doodler
Darkly Labs Laser printer
SCIO sensor
Dacuda sensor
Structure Sensor
Earin earbuds
SlingBox M1
Bragi wireless earbuds
OMONE floating speaker
Clearview invisible speaker
Rocket Skates
Outdoor Tech

Programming Tech

Google Glass Unboxing and Review, Jasmine-Jquery+SquireJS example

Google Glass Review

I just got my Google Glass Explorer 2.0 edition in not that long ago, and I know alot of people are curious about how this gadget works, so I’ve put up a video of it (an unboxing one, and a review).



Example client side Jasmine unit test using the jasmine-jquery + SquireJS libraries
Ok, so I finally figured out these client side tests. I have an example test here that uses Backbone Models as objects, the Jasmine-jquery library to test DOM interactions and the SquireJS library to mock out requireJS dependencies. Hope this helps someone.

//your jasmine test suite
describe('Car View', function() {

        beforeEach(function () {
            this.injector = new Squire();
   = new Car();

        afterEach(function () {

       it('test car creation with a mocked out owner', function () {

            var ownerInput, brandInput, modelInput;
            var carMock =;
            var injector = this.injector;

            //squire injector runs asynchronously inside its own closure so we need to run synchronously in Jasmine via run and wait
            runs(function() {
                    brand: 'Honda',
                    model: 'Civic',
                    owner: 'John Wayne',
                    url: '/car/civic/123456'
                //Owner is some backbone model that is pulled in via requireJS that we want to mock because it can't be mocked normally
                var ownerMock = new Owner({ name: 'John Wayne' });
                injector.mock('dep/owner', ownerMock).require(['car.view'],function(CarView) {
                    var carView = new CarView({
                       model: carMock
                //lets say on render, your car view populates some owner field with the owner name, and the brand and model fields the same way.
                ownerInput = carView.$el.find('.owner input');
                brandInput = carView.$el.find('.brand input');
                modelInput = carView.$el.find('.model input');            

            //wait for dom to render 

            //do your assertions
            runs(function() {