Software Development: Try Catch Finally

I have been meaning to write another software development blog post for a little while now, but had struggled to come up with something that is really worth writing about. After browsing StackOverflow and various programming forums and blogs I finally decided that it may be time to visit the “Try Catch Finally” code block. At work recently I have been using it more frequently due to the functionality that I am needing to implement (reading from files/streams, and writing to files/streams).

I’m not going to go into too much detail but just cover two of the areas where I feel plenty of developers either fall short or forget certain concepts about the “Try Catch Finally” block. One of these is hopefully blatantly obvious while the other may not be so clear.

Not a Logic Workflow

Your “Try Catch Finally” block should not be used as a means to control your logical flow of your application. I have read a number of times on StackOverflow where there have been contributions/answers that say something along the lines “Use the ‘Try Catch Finally’ instead of ‘If Else’ to control the flow of your application”. To other contributors credit these contributions/answers get down voted and commented heavily saying that this is wrong, not good practice and is not the reason to be using a “Try Catch Finally” block in the first place.

This thinking is wrong (using a “Try Catch Finally” for logical workflow), in that the “If Else” block is a means of controlling the logical flow of your application and the “Try Catch Finally” block is a means of handling thrown exceptions from your application. I always try to check for nulls, the correct format and instances of objects before using them (where ever possible), but I also always encase my methods with an appropriate “Try Catch Finally” block. Not only is this good programming practice but it helps ensure that your application is bullet proof, everything is logged and nothing unexpected happens.

For example if I am reading or writing to a file/stream there is always a chance that an IO exception will be thrown. By encasing my logic in the “Try Catch Finally” block I can correctly handle this exception, log it and then in the “finally” part close the file or stream if it is still open after the exception.

Remember this if you are to take something away from this post:

  1. “If Else” statements control your logical flow of your application.
  2. “Try Catch Finally” statements handle your exceptions thrown by your application.

Execution of Finally

This got me at first when I was learning about the “Try Catch Finally” code block. In nearly all circumstances the “finally” component will always get called, even if there is no exception thrown in your “try” component and you are returning. Originally I did not believe this but when I tried it out for myself, I was so surprised; I was not lied to by my lecturer, the textbook and the website I was referring to. If all three sources all said the same thing then I probably should have believed them I guess 😛

Here is an example where you may think that the “finally” component will not get called.

public String getStringValue(String value) {
	...
	try {
		if ("None".equals(value)) {
			return "Nothing";
		} else {
			return "Found at least one.";
		}
	} catch (Exception e) {
		logger.error(e.message());
		// Do more stuff.
	} finally {
		Console.WriteLine("I was still called.");
		// Do more stuff.
	}
	...
}

Why might you think that the “finally” component is not called? Well in the “try” component there is a return statement. If the method in the “try” does not throw an exception then we should drop out of this “getStringValue(int value)” method. However, as we have a “finally” statement, before we drop out of this method we will always write to the console “I was still called.”, and do any other stuff that is not shown in this code snippet.

To all the developers out there, if you use add a “finally” component in your “Try Catch” statement then be aware that it will always be called.

Surface Book 2 Impressions Part 3 of 3

If you haven’t already please check out my two previous posts about my impressions and experience with the Surface Book 2. The first post can be found here, and the second post can be found here. Enjoy 🙂

This is my third and final part of my Surface Book 2 impressions. The first post was an introduction to how and why I chose the Surface Book 2 as my primary laptop device over everything else on the market. The second post was about how I felt about the design and aesthetics. Now it comes down to one of the most important aspects when choosing a new device, what is the performance like and does it live up to expectations.

I have been using my Surface Book 2 while at home whenever I can. It has essentially become my daily driver when it comes to a PC; I have been avoiding using my gaming PC for most things like programming and word processing to ensure that I test the Surface Book 2 completely.

Display Detached

I have only detached the display a couple of times and it has been an okay experience. The detach process is fairly quick and there are no issues attaching the display back to the base. What I found was that using the display by itself (like a clipboard or a tablet) I would get 4 hours worth of battery easy (which I think is acceptable for its size and what you can really do without a keyboard). I didn’t really do too much with just the display; I watched videos and did some note taking with the Surface Pen and OneNote. In my day to day use I will most likely be keeping the Surface Book 2 as it came out of the box and like a traditional laptop.

Windows Hello 😉

The Surface Book 2 is equipped with Windows Hello, and is also the first Windows device I have ever had with this feature. Logging in to your Surface Book 2 is super easy and quick with Windows Hello and I highly recommend it; just look at your camera on the log in screen and it logs you in if it authenticates you. The entire Windows Hello experience is less than 3 seconds.

One thing I noticed was that when I first launched and configured my Surface Book 2 with Windows Hello, I had a beard so Windows Hello was recognising my face with a beard fine. Recently I shaved my beard off and it didn’t recognise me so I had to improve the recognition, not a major issue but something to consider if you change your facial hair frequently. To its credit though it recognised me with and without glasses with no issue.

Top Shelf Battery Life

The 13.5” i5 Surface Book 2 has an absolutely amazing battery. It has lasted me easily 10 hours before going to around 15% (shown by the battery indicator), and it could go for a little longer. The maximum amount of batter life I have gotten from the Surface Book 2 is around 11 hours (but closer to 12 hours really). Is it the 17 hours that Microsoft claims? Well no, but in saying that I have not been using the top of the line model and have not been watching videos only while offline with the display on a low brightness settings. The 10 hours that I have experienced is an average over several battery charge cycles with the lowest being 8 hours (closer to 9 but rounding down, this was when I was doing some taxing tasks) and the highest being 11 hours (close to 12 but I rounded down and this was with normal tasks).

Surface Book 2 Battery IndicatorA nice feature is the battery display which shows two batteries. From what I can tell “Battery 0” is the battery in the display and “Battery 1” is the battery in the base of the Surface Book 2. Microsoft didn’t need to do this and could have easily only shown a single battery level. What this allows you to do is before you detach the display from the base you can easily check to see if you will have enough battery to use the Surface Book 2 as a tablet. Kudos for Microsoft for adding this feature for the Surface Book 2 through Windows 10. The complete harmony of the hardware and software is present here, very Apple like.

Initially I used the Surface Book 2 fairly lightly and did not do any programming or perform any heavy duty tasks; I mainly did some web browsing, video consumption and document editing. I let the battery completely drain (well around 5%) and then let it completely charge. Once I knew that the battery was charged all the way back up to 100% I started to push the Surface Book 2. To get a good average I did this battery drain cycle and charge a number of times.

Even when taxing the Surface Book 2 with Visual Studio and the Windows Mobile emulator plus a number of other apps running in the background the battery still impressed me. My Surface Pro 3 could get close to maybe 6 hours battery if I was lucky, here with the heavy duty use I was getting close to 9 hours. Can this device be your “leave your charger at home” type of laptop? It sure can, no problem. Personally I would have no issue leaving my Surface Book 2 charger at home and it would last me the entire normal work day. Rating the battery life for the time that I have been using the Surface Book 2 I would give it a 10/10.

Cool to Touch

One thing that is really good about the Surface Pro devices is that all the components are in the display, the keyboard that is attached is essentially just the keyboard and cover. Your lap then would never get hot if you were using the device on the go and not on a surface. This is a major problem with most traditional laptops in the market, but it is not a problem with the Surface Book 2.

I found that compared to other traditional laptops the Surface Book 2 runs extremely cool, I barely even noticed any heat on my lap while doing taxing tasks. I have used some laptops that are incredibly hot after a short period of time making them near impossible to place on your lap. Where you palms rest while you type and where your thighs are positioned under the base of the Surface Book 2 there is no heat generated at all. The only place where there is any heat felt at all is at the center back of the base, and that really isn’t too hot or uncomfortable at all. The heat distribution and management is fantastic.

San Fan (No Fan)

The Surface Book 2 that I have has no fan (i5 version). So unlike the insanely loud fan that would spin up on my Surface Pro 3 whenever I was doing anything taxing (or watching videos in Google Chrome for that matter), there is no noise being generated from my Surface Book 2. This is a welcome change and something that once you realise how quiet your device can be, you may miss it when you go to another device that has a loud fan. If you have an i7 version of the Surface Book 2, you unfortunately do have a fan and I imagine that when you do something that really pushes the device you will end up hearing the fan fairly easily.

No Lag or Compromise

With the combination of some pretty decent hardware and Windows 10, the Surface Book 2 has never lagged or slowed down on me, even when I was on less than 15% battery while doing programming tasks. I imagine that Microsoft has done some optimisations to the OS so that it runs well on the Surface Book 2 (like the battery indicator for example).

Other laptops and even to a lesser extent my Surface Pro 3 when the battery was getting close to being completely depleted the mouse would start to slightly lag and then some apps would take a little longer to respond. To date I have not experienced this with the Surface Book 2. Visual Studio is known to at times freeze/lag and then pick up again (even on my beefy gaming PC), but I have not had any issues with Visual Studio on my Surface Book 2, even when running the Windows Mobile emulator on around 20% battery.

My Final Thoughts

Microsoft has crafted and extremely durable, elegant and pleasant to use device in the Surface Book 2. From the premium unboxing experience to the outstanding battery life and no compromise performance even under heavy use, the Surface Book 2 can pretty much do whatever you need. For me, the Surface Book 2 met all the criteria for me to purchase and use as my primary laptop device, and it has exceeded my expectations from the unboxing to using it.

There really isn’t too much that I can fault the Surface Book 2 on. The keyboard is one of the best keyboards that I have ever used. The trackpad is the best trackpad that I have used. The display is one of the sharpest and crystal clear displays I have seen on a laptop and that is even after using the Surface Pro 3. The battery life has amazed me and can easily go a single work day with one charge and there is still battery life to spare. Windows 10 and every application that I have used on the Surface Book 2 has not lagged, frozen or crashed on me. If I had to fault the Surface Book 2 at all I would say that having the 3.5mm headphone port at the top right of the display when docked is a little annoying.

I would recommend the Surface Book 2 with no hesitation.

Surface Book 2 Impressions Part 2 of 3

If you haven’t already please check out the first part of my Surface Book 2 impressions here. It outlines how I chose the Surface Book 2 and what I was after in a laptop.

This post is going to be about the look and feel of the new Surface Book 2 13.5” version. I will be doing a performance and usability break down in the coming week as I want to have as much time putting the Surface Book 2 through its paces first.

The Surface Book 2 unboxing experience (actually any Surface product I would say) is very close to how I would imagine an Apple MacBook unboxing would be. I’ve never had an Apple product so I wouldn’t know exactly, but from what I hear Apple tries to make the unboxing experience as premium as their device. The box is extremely durable, minimalistic and has each component placed ever so thoughtfully to make the experience as pleasant to the consumer as possible. From the get go Microsoft has made the experience feel premium, kudos.

Once you take the Surface Book 2 out of the box you immediately feel you are holding a premium product. I will probably end up using the word “premium” or the phrase “top of its class” a number of times in this post because that is probably the best word and phrase to describe the Surface Book 2. The Surface Book 2 is not too heavy and not too large, so carrying it and using it on the go or on your lap is not going to be an issue. Note that I am using the 13.5” version and not the 15” one, so perhaps the 15” might be a little different; the 13.5” is the perfect size and weight for me your experience may vary.

Covering the ports and buttons quickly, the Surface Book 2 has on the left of the base two USB A ports and an SD card slot. On the right side of the base it has a USB C port and a proprietary charging port. Something most phones in 2017 don’t have is a 3.5mm headphone port; however the Surface Book 2 has a 3.5mm headphone port. It can be found on the top right of the display/lid which is great when you are using the device as a tablet but not so great when you are using it as a traditional laptop. The top left of the display also has the power button and the volume buttons which is nice to have, especially if you are going to use the device as a tablet.

Every part of the device is made from what appears to be a premium metal, it has a matte finish so there are no finger prints and makes the entire device look and feel luxurious. There are really only two colours on the device (not including the chrome inlayed Microsoft logo on the display). The colours are the light gray and black. I don’t think I can find any plastic on the Surface Book 2. Microsoft seems to have gone the route of “if you are going to be spending big bucks on a new device, then you are going to get premium parts” and I commend them on that. I have bought gaming laptops in the past which come close to the price of the new Surface Book 2 and have significantly more plastic in the build. They could have skimped on some parts but they didn’t.

If you look at the device from the side with the display/lid is closed there is a gap (it does not completely close) and that is a result of the hinge that Microsoft uses. I personally have no concern that my device does not completely close and actually am a fan of the hinge design; it is unique and does the job well in giving the consumer a good display tilt. Lifting the display/lid is extremely easy and takes minimal effort. Closing the display/lid is also just as satisfying as when the display/lid touches the base there is a satisfying magnetic click; most likely they added this to highlight to the consumer that you have closed the display/lid and it will not open up by accident. It is the little things like this that make the device feel premium and well thought out. Microsoft didn’t need to add these little touches, but it shows they really care. This is something that Apple does well and many other manufacturers miss.

One of the top two most important features of any laptop is the trackpad. Many manufacturers like HP, Dell, Lenovo, etc. generally have extremely poor to barely adequate trackpads. They are sized poorly, or placed in an odd location, or feel cheap. The Surface Book 2 trackpad however is top of its class. It is positioned perfectly on the base, is large enough, and feels smooth which to me allows for extreme pointer precision. Apple makes some of the best trackpads in the business, but Microsoft has caught up and its trackpad on the Surface Book 2 is on bar with the best that Apple offer. Kudos to Microsoft for not skimping out on the trackpad, they could have easily given us something smaller and made from plastic but they have gone again with the premium materials used throughout the device.

Something that a laptop needs to truly be useful is a solid keyboard, especially if you are to be typing on your lap or are not docked anywhere. Along with a premium trackpad there is a premium feeling keyboard. I have used many different keyboards, both on laptops and on desktop PCs. Personally I am a major fan of mechanical keyboards. There is something about that key click and key travel on them that makes typing on it such a pleasant experience. The Surface Book 2 has the keys perfectly spaced and the key travel is also near perfect. I don’t know if it is a mechanical keyboard but it sure performs like one. Every time you hit a key you get a satisfying click, and with the optimal spacing and travel you can easily type with little slow down. The keyboard is backlit which is pretty common now and is a handy feature to have. Out of all the laptops I have used this has one of the best if not the best keyboards. A close second would have to be my old Lenovo ThinkPad which also has that satisfying click and mechanical feel. It also worthwhile to note that the device feels perfectly weighted so there is little to no wobble when you are typing on your lap.

With the keyboard and trackpad covered I should probably move on to the display. You get a beautiful 3000 x 2000 resolution display. Some people are really picky about the colours on their displays, me personally I am not overly too concerned. As long as my blue is blue and my red is red I’m happy. The colours on this display are perfectly acceptable and I would not think many people would have any issues with them. The display also can go extremely dim and also extremely bright, so you have both ends of the spectrum covered. Images, video, everything that is presented on the display is crystal clear and extremely sharp. On a laptop, it has to be one of the best displays I have used. I cannot fault Microsoft here on the display. If there is one thing that I would have liked is a slightly smaller bezel, but I can understand why they had to have a bezel of this size. Coming from the Surface Pro 3 which itself had a large bezel and brilliant display, the Surface Book 2 is miles ahead in display quality.

Overall I feel that Microsoft has crafted a premium and top of its class product. I know there really isn’t much different when you first glance at the Surface Book 2 over the original Surface Book but this device really has been refined. From the precise trackpad to the near pixel perfect display, everything has been thought of. Microsoft have designed and engineered a marvelous device that can act as a laptop and a tablet. Nothing feels cheap or tacky, you are getting a premium product with premium looking and feeling parts.

As noted at the start stay tuned for my final post which will cover the Surface Book 2’s performance, and let me know if there is anything specific you want me to test. I’ll be pushing the device to its limit while I use the development tools I have installed and work on my side projects.

Surface Book 2 Impressions Part 1 of 3

My History with the Surface Line

I have been a big fan of the Microsoft Surface line since it first launched. Hell I even purchased a Surface RT, and to the device’s credit it lasted all the way up until mid 2017 before the battery was no longer any good and trying to load a web page was near impossible. Windows RT might not have been the future but Microsoft had something with the original Surface products and I am happy that they continued to refine and rework them. They could have easily thrown the line out like the did with the Zune, RIP Zune I will miss you.

My primary mobile computing device was a Surface Pro 3 and one of the main reasons why I purchased that product was that it was a laptop and tablet in one with decent performance and a good battery. Plus the Surface Pen and OneNote made taking notes in my Artificial Intelligence and Mathematics classes while doing my post graduate Computer Science degree far easier. I also credit that device to my higher average marks overall. With the combination of better note taking and easier material management I recommend that any student who wishes to take notes in class and have everything digital then a Surface product with OneNote and the Surface Pen is the way to go.

While my Surface Pro 3 had done the job while I was studying, some of my side projects were not running as well on that device compared to my gaming PC. Over time the more I started looking at AI and emulation programming the more I realised that purchasing a device with only 128GB of total hard drive space and 4GB worth of RAM might have been a mistake. I should have saved up a little more cash and purchased the 8GB and 256GB model, but we all make mistakes and we all learn from them (I know I have).

With the announcement of the new Surface Pro 2017 edition, and the new Surface Laptop I knew that I had options. Before pulling the trigger I waited a little longer to see if Microsoft will be doing a refresh of the Surface Book line. There was the Surface Book with the Performance Base, but I didn’t want a first generation Surface Book and the discrete GPU did not interest me. Thankfully my patience paid off as Microsoft announced the new Surface Book 2. I started to read and follow any news about the new Surface Book 2, making note of the little details that were mentioned in the videos and blog posts I read. One week before the release date I decided to pre-order the device from the Microsoft Store. It had everything that I needed.

My Laptop Needs

I used my Surface Pro 3 originally as my primary mobile study device while at university, but I also used it as a development laptop while and after I graduated. I used Android Studio, Visual Studio and IntelliJ on it. So any new device needs to be a workhorse, but it also needs to be built like a tank with all the ports that I need. I really appreciate the details that Microsoft put into their Surface line so I decided to stick with them as the build quality of my Surface Pro 3 was top notch.

I have used other manufacturers laptops in the past and they have been hit and miss. I had a Lenovo but the device is very “plasticy” and the trackpad is horrible, but the keyboard is amazing; I had a HP which has a more solid feel than the Lenovo but the keyboard is one of the worst I have used (poor spacing and key travel). I also had an ASUS gaming laptop which has all the necessary power I need but is not very portable.

The Surface Book 2 appeared to check all my boxes (according to the initial impressions from the media and the individuals who had used the device at preview events). It has:

  • A fundamentally solid build, no obvious plastic here.
  • A keyboard that is spaced well and the keys have a near perfect travel, plus there is backlighting to the keys (I sometimes code deep into the night so this is now a necessary feature).
  • A trackpad that is Apple like.
  • More than one USB port (this is something that I needed, as having a single USB port on my Surface Pro 3 was quite annoying and even the new Surface Pro 2017 edition and Surface Laptop only have one USB port).
  • The ability to function as a tablet and has touch/pen support (I still use OneNote to draw up wireframes for apps and take notes, plus at time I just want to watch Netflix in bed).
  • Enough horsepower to run Visual Studio and any emulation software I need when developing my apps and working on side projects.
  • A battery that can last a near full day’s worth of work (so around 6 hours worth of development and Internet browsing at a minimum).

How Big and How Much Horsepower?

I have used laptops from both ends of the spectrum with regard to size and performance. What I have found is that the optimal size for me is a device that does not have a screen much larger than 13”. Any larger and the device becomes too large to lug around and is too heavy. So right out of the gate the Surface Book 2 that I was getting was the 13.5” and not the 15”.

Do I need a laptop with a discrete graphics card? No. I don’t play any video games on laptops, all my gaming is done on my Xbox One X or my gaming PC which has a GTX 980. Maybe a GPU would be useful in regard to AI programming but I doubt a single card would matter too much. The new Surface Book that I would end up purchasing would not have a discrete GPU.

Something unfortunate is that all the i7 laptops have a discrete GPU. This means that the Surface Book 2 that I would be purchasing would have an older generation i5. I had spoken about this with the other software engineers at work and they all felt that having an i7 option with no discrete GPU would have been great. I most likely would have purchased that build. Maybe in the future Microsoft will offer an i7 with no discrete GPU, but I highly doubt it. One nice feature with the i5 version is that it is completely san fan 🙂 Not a major loss here, but having a new generation CPU which has better performance would have been nice.

With the i5 version I don’t really get much choice in regard to RAM and HDD size (in Australia anyway, not sure about the rest of the world). It comes with 256GB worth of storage space, which is going to be a big relief after living with only 128GB worth of space on my Surface Pro 3. Having 8GB worth of RAM is also going to be a nice bump from the 4GB that I had with my Surface Pro 3 (2x worth the bump I might add).

I plan on releasing two more blog posts, one about the build quality of the Surface Book 2 and one about the performance. The build quality post will be released very shortly, but the performance post will take a little longer. I want to spend some more time running the Surface Book 2 through it’s paces while I am doing some development work. So stay tuned in the coming days for part two and in the coming weeks for my final (part three) Surface Book 2 impressions.

My New Xbox One X

I wanted to write this a little while ago, but needed to have some more time playing on the Xbox One X and try to experience as much as possible. Since the launch of the new Xbox One console, I have been having a blast. Yes I am an Xbox fanboy so maybe my view is slightly skewed but Microsoft made an extremely great (dare I say) near perfect console.

Xbox One X Project Scorpio with various Xbox One controllers
Xbox One X Project Scorpio with Xbox One Day One, Elite and Project Scorpio Controllers

To my luck, I managed to pre-order an Xbox One X Project Scorpio Edition, I know a number of people that wanted this edition but missed out due to the limited number. After using it for a little while I thought I might sum up the experience I have had with it so far and also areas where there is some contention on the Internet.

Breakdown

Price

I knew I wanted to purchase the Xbox One X when it was still called “Project Scorpio”. From what I was reading and the rumours swirling around the Internet , I knew it was going to be a powerful console and it wasn’t going to be cheap. A high price tag was not going to discourage me from purchasing it. I pre-ordered the Xbox One Elite controller and that was $200 AUD, so paying around $700 AUD for a new, and powerful console was not an issue. I mean a GTX 1070 is still going for $700 AUD. For the power and convenience the console provides it is super cheap, plus I have a large library of Xbox games so I am not going to invest in another console.

4K and HDR

Weeks before the lead up to the release of the console there were many gaming sites that posted about how “unnecessary” or “wasted” it would be to purchase the Xbox One X console if you do not have a 4K TV or one that supports HDR. Funnily enough there were none of these articles written when the PS4 Pro was coming out/released (bias “journalism” maybe). I don’t know where these so called “journalists” got this information because Microsoft to their credit on numerous occasions highlighted the benefits a gamer would have if they only had a 1080p display.

I personally do not have a 4K/HDR supported TV; mine is still a 65” 1080p Panasonic plasma TV. The games (enhanced or not) all look gorgeous. Gears of War 4, Halo 5 Guardians, Quantum Break, etc. all look brilliant with their enhancements. Even the games that haven’t gotten the enhancements look slightly crisper and cleaner to me like Battlefield 1. I have spoken to a number of friends on Xbox Live who do have 4K TVs with HDR and have an Xbox One X, and there has been a unanimous agreement that the visual fidelity is high class.

Performance

I knew the Xbox One X was powerful and would help with load times, framerate, etc. but boy did I underestimate how much of an improvement there would be. Off the top of my head I can think of two games where the load times have significantly improved. Destiny 2 and XCOM 2 (I’ve been playing these recently). Loading to the Tower or any planet in Destiny 2 took it’s sweet time on my original Xbox One. On the Xbox One X the time it takes to go to those same locations is easily halved.

XCOM 2 on the original Xbox One was a disaster when it came to loading. If you tried loading a save, loading a mission, or coming back to your ship, it could easily take one minute. On the Xbox One X it loads in under 15 seconds. Before I could go and grab a drink from the fridge and come back to still see that the game is still loading, and now on the Xbox One X it just loads too quick to do any of that.

Games like Halo 5 Guardians, Gears of War 4, Battlefield 1, etc. all feel smoother. They feel like they are hitting higher refresh rates (or targets that they were originally supposed to be reaching). I don’t know, I can’t measure it and maybe I’m just imagining it, but the games feel like they play better. It is the same as going from a monitor that doesn’t support 144Hz to one that does and you reach that refresh rate, the game just feels so much better. So overall I think the Xbox One X is on a completely higher tiered level to the original Xbox One. Kudos Microsoft for squeezing so much performance out of such a dense little box.

Good Internet

My current Internet download and upload is 100Mbps and 40Mbps respectively (again I am fortunate enough to be able to have fibre connected directly to my house). I also do not have a data cap. Both of these (speed and data) are extremely important when considering the Xbox One X. The game updates to handle the 4K assets, etc. are massive (some games nearly double in size). So if  you have slow Internet download speeds or have a relatively small data cap then it will seriously hamper your ability to play the recently updated Xbox One X Enhanced games. From what I can tell there is no way to not download these updates if you have an Xbox One X console.

I did notice that downloading titles on the Xbox One X seemed slower than on the original Xbox One. I am on the Alpha Insider Preview ring so there may be some OS issues, but other people I have talked who are not Xbox Insiders pretty much agree that their downloads seem to be going slower on the new console. I’ll be keeping an eye on this and if it persists then I may have to have a little chat with the Microsoft Support team or raise an issue.

Storage Space

Along with these large downloads to support the 4K assets comes the need for more storage space. This is one area I think Microsoft needed to do a little better. A 1TB internal storage device is not nearly enough to support all the new Xbox One X Enhanced games that a gamer could potentially have. My internal HDD is near capacity with all the updates my games have received recently (I only have 75GB left). I do have an external HDD but may need to consider purchasing another. So do invest in another storage device to ensure that you do not run out of space.

Final Thoughts

Who is this Xbox One X console for? Well due to the high price tag I don’t imagine it is for the casual gamer, or someone who is not interested in playing the latest games at the highest fidelity possible on a console; for that I would suggest the Xbox One S. The individual who would buy this console would be one of these I believe:

  1. Looking to buy a new console where money is not a purchasing factor.
  2. Looking to upgrade your old or original console where money is not a purchasing factor.
  3. Looking to upgrade your old or original console to play the latest games at the highest console fidelity possible.

Do you need a 4K/HDR supported TV to enjoy the Xbox One X? Absolutely not. I don’t have one and I am having a blast; everything looks amazing and the games play better than before. There is a noticeable difference even in 1080p 🙂

Do you need a good Internet to use the Xbox One X? Unfortunately I believe yes. I cannot see in the settings anywhere to disable 4K updates if you don’t have a 4K TV. Downloads could take an extremely long time and you may hit your data cap if you have one. This is one of the downside of 4K gaming.

If someone off the street right now asked me, “Would I recommend the Xbox One X?” I would say “yes” in a heart beat with no hesitation. I would tell them that they don’t need 4K or HDR to experience what the Xbox One X offers, I would even mention to be mindful of the download sizes for game updates.

I don’t give technology a numbered rating but if I had to give one to the Xbox One X, it would easily be a 9.5/10. I cannot fault Microsoft for the product that they have built.

Kudos Microsoft.

My New Nokia 8 Smartphone

My time with the Motorola Nexus 6 has unfortunately come to an end. I loved that smartphone and it has served me well since I purchased it. To Google’s credit the smartphone received constant system and security updates; unfortunately October 2017 would be the last month that Google would officially support the device [1]. So it was time to move on to a new and shiny toy.

I didn’t just purchase a new mobile phone because the software would no longer be updated, but the battery that once lasted me a good work day would now only last around 5 hours. So after doing my research and weighing up all my options the one smartphone that had what I wanted and not break the bank was HMD Global’s new flagship smartphone, the Nokia 8. If you would like to see my Android journey so far and what I want in an Android smartphone, check out my post here.

Premium Build and Feel

Much like the original Nokia handsets, the new Nokia 8 is designed and built extremely well. When I took the smartphone out of the box it was heavy (personally I felt that it is heavier than the Nexus 6 even though it is supposed to be 24g lighter), and it easily and comfortably fit in my hand (most likely because of the curved edges/side). The Nokia 8 appears to be a smartphone that is built to last. I appreciate the high quality design and build, kudos HMD Global. If you would like to see how durable the Nokia 8 actually is then take a look at JerryRigEverything’s Nokia 8 Durability Test. Going forward I will always be looking at these types of tests because I want my smartphone to last at least 3 years.

A 3.5mm Headphone Jack

Last year Apple was “courageous” when they removed the 3.5mm headphone jack. Some other mobile phone makers followed suit like HTC. Google this year followed in Apple’s footsteps by releasing two new Pixel smartphones without a 3.5mm headphone jack. To Samsung, LG and HMD Global’s credit they have kept the 3.5 mm headphone jack in most, if not all their smartphones. As someone who does not have wireless headphones and listens to podcasts and music on the way to work and while at work, a 3.5mm headphone jack is vital. Personally I feel it hurts the mobile phone maker’s brand and it turns people off future devices when they remove such fundamental components. Nearly everyone that I talk to say that they will never consider buying a smartphone without a 3.5mm headphone jack. It is just an option that they are taking away from the consumer.

Stock “Pure” Android

I am a massive fan of the Android OS, however manufacturers see the need to add unnecessary apps, skins, launchers and other elements to their smartphones without the consumer’s choice. By having all these extra items over time the phone begins to slow down due to poor support and optimization, and updates to the OS nearly never come or come months later. The Nokia 8 comes with stock Android :D. When I mean stock Android, I really mean stock Android; there are no fancy skins or launchers, there are no extra or unnecessary apps pre-installed. It is how the Android OS is supposed to be experienced IMO. Google’s own productivity suite (Google Docs, Sheets, and Slides) is not installed on your device for example; for me this is great because I use Microsoft’s Office suite instead along with an Office 365 subscription allowing me access to 1TB worth of OneDrive storage. If you are like me and want the bare minimum with the ability to add what you want and with timely OS and security updates from Google, then the Nokia 8 will most likely fit the bill perfectly.

My Experience So Far

From the 3.5mm headphone jack to the micro-SD card slot next to the nano SIM card, the Nokia 8 has everything I need from a hardware perspective. Sure it might not have dual front facing speakers like my Nexus 6 but the bottom speaker it does have is perfectly fine, and it isn’t waterproof but I don’t plan on taking it swimming with me and if it does rain, it is splash proof. There is also no wireless charging either, but I am not going to pay another $300-$400 AUD for wireless charging capabilities.

Instead of a fingerprint sensor on the back like most Android smartphones, there is a fingerprint sensor where the dedicated home button is usually placed. This is the first smartphone I have ever had with a fingerprint sensor and it is responsive and accurate. I don’t take many photos but the front and rear cameras both do the job; it also has a “boothie” mode where it shoots the front and the back cameras simultaneously (doubt I will be using this mode much).

The battery life is incredible on the Nokia 8. My Nexus 6 had a 3220 mAh battery and my Nokia 8 has a 3090 mAh battery, so you would expect the Nexus 6 to have a better battery life. When I purchased my Nexus 6 it would last close to a full 24 hours before needing a recharge, while my Nokia 8 does better getting closer to 36 hours. The display is also bright and the colors are perfectly acceptable. Moving back to a smaller sized screen would seem difficult but I have adjusted fine.

Using the stock Android experience is just as I expect. Fast, and responsive without any hiccups or stuttering. When I switch between apps there is no lag or delay, and I can easily scroll through web pages loading different media with no problem (something my Nexus 6 eventually had trouble doing). The first thing I did when I started my phone up was check for updates and to HMD Global and Google’s credit there were three security patches waiting for me (one for each month up to October).

I cannot find a flaw at the moment with this device, but if I had to really complain about something it would be the slight camera bump. I am getting a case for my smartphone so that should fix that problem. If HMD Global keeps their promise of keeping the Android OS updated [2] and ensure that security patches are rolled out ASAP then this smartphone is going to last me a long time.

Nokia is finally back through HMD Global and giving everyone a run for their money. Other mobile phone manufacturers watch out.

Please Websites Stop Doing This

I generally don’t rant too much, and if I do I definitely don’t do it on the net. But it has gotten to the point where it has really started to annoy me and most people I talk to say the same thing. So I decided to make this little post about the latest annoying trend on the Internet. Videos that automatically play with or without sound (primarily with sound).

Many sites are doing this now. If you go to a site that has any videos you may notice that the video starts to play automatically at full volume, if you continue to scroll through the page and the video is still at the top of the page all you can hear is the video’s audio, or the video player shrinks and moves somewhere else into view and continues to play. Who in their right mind thought that it was ok to have videos automatically play (with audio)? When did this practice become standard? Does no one think of the consumer of the content? There is nothing worse (when visiting a website) than getting unwanted material/content thrown in their face without your consent, it hurts the eyes and the ears.

I have two main problems with this new trend:

  1. Will someone think of my bandwidth – when I’m on my home network I’m not too concerned about my bandwidth because I am on an “unlimited” plan (thanks TPG). But when I am on my mobile I am on a pre-paid (pay as you go) “plan”. I don’t need to be excessively charged for videos that automatically start streaming.
  2. “Ow my freakin’ ears” – that awkward and frustrating moment when you visit a page, you start scrolling down, while unknowingly to you a video somewhere on the page starts to play and the only thing you can do is hear it. You start to hunt where on the page the annoying video is playing from. It is absolutely rude and obnoxious to play a video with the audio on without the individual’s consent.

The only social media platform that I am a part of, LinkedIn, will start to have this feature as well. However to their credit the audio will be off which covers my second point above, but it will still chew up bandwidth if left playing I assume [1]. So if you produce content on the internet and have a website that contains videos, please for the love of God I beg you do not have videos automatically play. If you truly must (I don’t see why you would though) have videos automatically playing then at least have it muted.

I can see in the near future extensions for browsers that block automatically playing videos, just like individuals creating extensions to block invasive ads on web pages. If the content providers don’t change to be more conscious and consumer friendly then the consumers will take their browsing experiences into their own hands just like they have with ads and ad blockers.

A Microsoft Twist on Google’s Android

Update: Within 6 hours of me posting this Microsoft sent me an email about the availability of the Microsoft Edge browser on Android, in Preview. You can find it here in the Google Play Store. Enjoy your new browser.

I have stated this before but I’ll do it again. I am a HUGE Android fan, I love Android. I like being able to customize my phone (from a stock Android experience) and use the full range of supported first party apps. However, I am a HUGE Microsoft fan as well; even bought the original Surface RT (R.I.P. Windows RT). When I read that the Redmond software king was coming out with a new Android launcher called Microsoft Launcher (seems to be a re-skinned Arrow Launcher from their Microsoft Garage team) and Microsoft Edge I was over the moon. You can read more about the announcement on the Windows Blog here.

I have on and off used the Arrow launcher previously on my Android device, and I use Microsoft Edge on my Surface Pro 3 and Gaming PC (alongside Google Chrome. See here about my experience running Edge and Chrome on my Surface Pro 3). I could not be happier to try out these two new apps from Microsoft on my now nearly no longer security supported Google Nexus 6.

Note: As of writing this blog post the Microsoft Edge browser is currently only on iOS, you can however sign up and get informed when the Microsoft Edge becomes available to use on Android. See here for more information about the Microsoft Edge browser for Android availability. The Microsoft Launcher for Android is in Preview aka Beta and already available.

Several days later my heart sank slightly. The high I was on from the new software announcement did not last. I read that Microsoft is officially not going to be adding new features and build new hardware for Windows 10 Mobile; see here for more info about that news. I was really and truly hoping for a Surface Phone (still am, even after the announcement). Sure I don’t have a Windows 10 Mobile supported OS but it is always good to have competition and the experience I had on the Windows Mobile ecosystem was acceptable with the exception being the lack of first party supported apps. A real shame because the performance and UI to me was superior to that of the all too similar iOS and Android platforms.

With a new launcher in use and a new browser coming to my Android phone all coming from Microsoft I decided to have a look at the apps and services I use on my phone. What I saw was a little shocking at first, I used to primarily only use Google’s services and apps. As time went on my needs and preferences must have changed which in turn led to changes to the apps and services I use. The Google launcher I was using is now a Microsoft launcher, I will no longer be using Google Chrome but use Microsoft Edge (once it becomes available), and I don’t even use Google’s AI assistant, Cortana is my go to AI (she syncs with my Windows 10 PCs so easily it is stupid of me not to use her). The majority of my day to day apps or services are Microsoft now. Recently I even purchased a subscription to Office 365 so having that extra space on OneDrive and having the Office suite on my phone has Google’s suit of “Office” products obsolete.

I have always been dependent on the Google ecosystem (from Chrome to Gmail), but now I feel that I have finally managed to escape Google’s tight grasp. It isn’t that I don’t like their services or apps, it is just that I have found better services and apps. What Microsoft is offering on the Android platform is fantastic and the clear differentiation between the two technology giants is that Microsoft understands that synchronization and integration between mobile and desktop is important, plus getting people to use their services no matter the platform is important. Google’s lack of proper app support on desktop is a major problem for me as doing everything through a browser is not amazing plus the features on their browser supported products pale in comparison to the Microsoft offerings. Google Docs does not come close at all to what I can do in Microsoft Word, even Microsoft Excel completely destroys Google Sheets. What Microsoft offers with Office 365 is light years ahead of what Google offers.

So it appears that even though I am running stock Android (mainly for the performance and security updates), my time with Google’s apps and services appears to be coming to a close with Microsoft’s apps and services easily taking over. Nothing Google showed at Google IO this year has changed my mind and even the hardware they showed in early October has me avoiding their products (no 3.5mm headphone port, really, are you serious). Microsoft may be slowly abandoning their own platform but they are building a strong foundation on both Android and iOS which can in the long run position them extremely well in the mobile space. It is not about having your own platform to gain market share in the mobile space, it is about getting the mobile user to use your services to gain market share which I feel is more important and Microsoft now realises this.

Time will tell now whether I stay on the Microsoft apps and service bandwagon or I jump back on the Google apps and services freight train. What about you guys? Do you mix and match, or are you staying loyal to a single provider?

UWP: Localized String UI XAML Properties

I was messing around in Visual Studio today and decided to spruce up my UWP apps a little bit. Originally what I was doing for all my string UI XAML properties on every project was hard coding them in the XAML code like this:

<PivotItem Header="Item 1">
    ...
</PivotItem>
<PivotItem Header="Item 2">
 ...
</PivotItem>

However there are several major flaws with this:

  1. Your strings are hard coded in the XAML code and if you were to make any modifications it would need to be done programmatically which could get messy.
  2. There is no consideration for other languages other than the one you have hard coded; a big oversight if you plan on releasing your app worldwide.
  3. It is not very flexible and easy to manage; if you need to change your strings it would have be done across a number of XAML files and it could take a long time to change everything.

Nearly every tutorial or blog post when they are writing string UI XAML properties they  always do this ‘hard coded’ method. Even Microsoft does this on their official page when outlining the different Controls and Patterns, see the Tabs and Pivot example here. Really though, I don’t blame them as it is really simple and gets the picture across nicely for beginners and the focus is really on the Controls and Patterns. However if you are going to be making a commercially viable product that will be used across different continents, supporting a number of languages is critical.

Eventually to solve this problem you have to do some Googling or Binging (not sure if that is the Bing equivalent), or if you use the new extension/tool called the ‘Windows Template Studio’ to help build your new app it sets everything up nicely for you. This is all well and good if you use the extension/tool but if you are not, then Microsoft again has a convenient page to look at, see here. I used this page to solve this very same problem and it should help you as well.

The solution to this problem can be broken down into several steps:

  1. Set a Default Language on your Package.appxmanifest (outlined in red).
    Package.appxmanifest Default Language Setting
  2. Create a ‘Strings’ folder in your root project solution.
  3. Create a subfolder that matched the Default Language you have set.
  4. Create a Resources.resw file under the subfolder.
    Default Language Strings Folder Structure
  5. Add all your string UI XAML properties in the Resources.resw file where:
    1. Name: The XAML property you are referencing including the XAML object.
    2. Value: The value for the XAML property, what you want shown.
    3. Comment: A simple comment to help identify and describe what the property and value is for.

The Microsoft page listed above outlines a very simple example and how to test your application, so I am not going to go into further detail here and I suggest you look at their example and testing method. If you are starting out doing some UWP app development then you might not be aware of what the best practices are (I still don’t), so hopefully you find this information useful and you can create commercial grade UWP apps for the Microsoft Store.

Google Chrome VS Microsoft Edge On My Surface Pro 3

There have been many tests, and comparisons between Google Chrome and Microsoft’s browser, Edge. Now it is my turn to talk about my experience using both browsers. I am not going to be doing a technical breakdown, but will be doing an experience breakdown, specifically on my Surface Pro 3.

I have been using Google Chrome for an extremely long time and it is still my go to browser at work and on my primary desktop PC at home. When I purchased my Surface Pro 3 and used Google Chrome, my experience using my new device was disappointing. The battery life was extremely poor, I was only able to get three hours out of my device at best and the fan would spin at what would seem full speed whenever I watch online videos making the back right of the device Hell hot. So using Google Chrome on my Surface Pro 3 was a no go it would seem, as it made my mobile device essentially a stationary device.

Luckily Microsoft came prepared with their own browser, Microsoft Edge. I decided to give it a go. At first it was tough to get used to the new browser. I didn’t mind using Bing, it performed just as good if not better than Google for some search results (props to Microsoft there). All the extensions that I used in Google Chrome were not present in Microsoft Edge (at the start Microsoft Edge did not even support extensions, but now it does and it has all the ones I need, so props again for listening to your consumers). But the extension issue I had was not the major problem with Microsoft Edge, loading and viewing web pages was the biggest problem. Not all pages would load correctly, the tab would constantly become unresponsive, UI elements on the page would not behave correctly, etc. Microsoft Edge still has this problem even in 2017 which is extremely frustrating. On the plus side of using Microsoft Edge I would easily get six hours out of my device, the fan would not spin up when watching online videos, and the device would not get hot at all.

So do I use a browser that essentially ruins the mobile experience due to poor battery performance and an insanely loud fan spinning while watching online videos making the device too hot to touch or do I use a browser that keeps the battery charge, has the fan spinning at a reasonable speed, but lacks the ability to perform when it comes to loading and viewing some web pages?

Right now I use both to try and get the best of both worlds. If I need to do some web browsing then I turn to Google Chrome, but if I need to watch any online videos then I always use Microsoft Edge. It may not be the best solution but neither Google Chrome or Microsoft Edge perform as expected on my Surface Pro 3. Maybe Google will work on optimising Google Chrome to ensure that it doesn’t take up all your resources, and reduce your battery to nothing in a short period. Or Microsoft can look into the issue where Microsoft Edge fails to load and display web pages correctly, because really that is the only show stopper for me; and for a web browser it if pretty important to have pages loaded and correctly displayed.

%d bloggers like this: