Being an Xbox and Windows Insider

After installing a new Xbox OS update on my Xbox One X console, I launched the Xbox Insider application to see what the changes were and if there was any new Quests, Polls, Survey, etc. I noticed that I had been an Xbox Insider for 3 years and 11 months, essentially as soon as there was an option to try the latest features and opt in to new functionality I jumped on it. Along with being an Xbox Insider, I am also a Windows Insider; but I have not been as active in that program in recent months. Checking out the new features and functionality that the teams over at Redmond and around the world working at Microsoft are developing is something that really excites me. I love trying out new gadgets, devices, software, etc. What Microsoft is doing with both their Windows and Xbox platforms, allowing individuals to try new features and provide constructive criticism and feedback is extremely positive and very pro-consumer. It helps ensure that the best product is produced.

However by trying out early builds on either platform is not always fine and dandy. There have been a number of times when simple and basic functionality such as Xbox Live Party Chat did not work at all or installing and/or updating applications completely failed. Luckily to combat this, Microsoft has separated the Insider builds into “Rings” which determine the stability of each build and how new the features you will be getting are. If you are in the Alpha Ring (like I am) then you will get the latest and potentially breaking builds or you could be in the Delta Ring and get a significantly more stable build but not have the newest features. This creates choice for the individual while still allowing them to contribute to the evolution of the platform and assist in bug reporting (something as a software engineer is extremely helpful, the more testers the better). More software companies really need to start providing this feedback process as software is becoming ever increasingly more complex.

Many people will most likely not want to be involved in trying unstable or incomplete builds/features for various reasons. To me though, providing feedback and helping the features become less buggy and complete ready for the masses is rewarding (even though I do not write a single piece of code). To make trying out the new features more enticing and understandable, Microsoft has created Quests and Surveys. Generally if there is new functionality added after an update a new Quest will appear which shows you how to activate and or try it out. It is a very handy way to get your device configured with the new features. The Surveys provide an easy way to communicate how you find the new features (if they even do work as intended) and if there are any issues that you encountered. Reporting bugs and issues is also extremely easy. Each platform as their own Hub that allows you to provide as much detail as possible to help Microsoft resolve your problem, and if others have the same issue then they can piggy back off yours and add further information and diagnostic data.

Overall the entire Insider experience on both platforms has been fun and for someone who is looking to try new features before others, or just wants to help Microsoft out in providing the best possible experience for everyone then the Insider programs are a must. For more information about the Xbox Insiders Program check out the following link. For more information about the Windows Insiders Program check out the following link.

Microsoft Edge and Paid YouTube Content

This evening I decided I wanted to watch some YouTube content on my PC using Microsoft Edge. I have a decent list of purchased movies and TV series through the Google Play Store. After looking over the list of paid content I settled on a movie and I clicked on it ready to watch on my second monitor while I was doing some other stuff on my primary monitor. To my surprise I was greeted by a playback error. To be exact I got the following error message in the video player (I have blacked out some content that I deem not relevant).

YouTube Paid Content Playback Error

The exact message reads, “An error occurred. Please try again later. (Playback ID: MLeXgYpv05LH1Uhq)“.

I decided to click the “Learn More” link which would hopefully provide some informative information as to why I got this error. But in typical Google fashion I have found it was little to no use. I decided to try their troubleshooting steps.

YouTube Paid Content Playback Error Troubleshooting Page

I first closed every tab that I had open except the YouTube tab and tried again. No luck got the same error message, a different Playback ID error code was presented though. The next step was to restart my router, did that and still no luck. I restarted my computer to see if that would help like it said, again the same error message. The second last option was to verify that I was using the latest version of my browser; there was no Windows updates and I am unaware of any other way to update Microsoft Edge (if there is please let me know). The absolute last resort is to use Google Chrome. I’m sorry Google but this isn’t going to happen and really is not a troubleshooting step.

Curiously I decided to try some videos from some of my subscribers and those videos played absolutely fine with no issue on Microsoft Edge. In fact I am watching one of my favourite YouTubers playing XCOM 2: War of the Chosen as I write this. So clearly there appears to be an issue trying to stream paid content through YouTube on Microsoft Edge. I quickly tried my Android phone and using the official YouTube app I had no issue playing the same video (so it was not a licensing issue) and the video plays absolutely fine on my Xbox One X using the YouTube app.

Finally I decide to try Google Chrome. Low and behold the video starts with no issue. I tried again on Microsoft Edge and I get an error message. To me it seems that Google is doing something in back that is restricting content being played on Microsoft Edge or Microsoft has something in Edge that Google does not like, blocking paid content from being played. Perhaps being paid and licensed content I thought maybe there was a setting that was causing issues, but Netflix on Microsoft Edge had no issues playing. Has anyone else had the same issue? If so did you get it resolved or does the problem persist? Generally I have found Google to be near useless when it comes to any support and their response to issues is down right abysmal (the only other company to be close or worse is Valve and Steam Support). Looks like when I am on my PC or laptop I won’t be streaming any paid content from YouTube until this is fixed.

Software Development: Crunch

Nearly everyone in their working life will experience at some point a very tight deadline, significantly increased pressure to complete a specific task, and/or an insanely amount of extra hours that are expected of you to do. In the software industry (could also be used in other industries not too sure) this is referred to as “crunch“. There are many articles out there about crunch, especially in the video game industry. It is a time where you rarely see your family and friends, you eat and drink way too much junk food, your regular exercise regime is thrown completely out the window, and you may even dream about the code you had written (and not in a good way).

Currently during my software engineering career I have only ever experienced this crunch period twice. I wouldn’t consider the first time really crunch though. I did have to work towards a really tight deadline, longer hours, but it was only for a very short time. The second crunch I experienced was recently and it was for a longer period with an insanely tight deadline, a significant amount of work, and very long hours both during the normal work week and weekend. Personally I think crunch every so often, but not too frequently is a good thing. A little stress and hard work can be beneficial. In saying that though, working in an environment where you are in crunch mode every couple of weeks is probably not great for your well-being and highlights a potential problem with the operations of your organisation.

During my crunch I had to unfortunately stop attending my BJJ classes, working on my side projects, playing video games and even going out with friends and having a couple of beers. After my crunch period ended, I was exhausted but I made a commitment to myself to go back to my BJJ classes and attend my usual social gatherings at the minimum. With the software engineers that I worked with during this crunch period, I asked them how did they cope with all the stress, what techniques they used to mitigate feeling like garbage, and do they have any tips or tricks to make crunch not feel like a massive drain? All of them essentially came back with the same or similar responses:

  1. Breathe and take everything one step at a time:
    • Don’t panic as panicking will only make things worse.
    • Rushing or not paying attention to what you are doing will only cause you to make more mistakes and then cause you to panic even more.
  2. Switch off after your day is done:
    • You most likely won’t work for 24 hours so when you are done for the day and have worked close to 20 hours, clock off.
    • Focus on something you enjoy and do not bring your work home with you.
    • Be with your family and/or friends, or enjoy what little sleep you can get.
  3. Communicate and do it early:
    • There is nothing worse than needing help and not asking for it, you will only then fall further behind, rush and make mistakes and/or panic.
    • Others may be able to help you solve the problem faster and you will less likely panic if you know that others are here to help.

Along with all of these handy little tips and tricks I remembered some of the useful information that was presented in “The Clean Coder: A Code of Conduct for Professional Programmers” Chapter 11 – Pressure. That chapter essentially had the same information as what my colleagues had said to me.

Come the next crunch (which I know will happen at some point in the future) I will be better prepared mentally and will ensure that when I do get some time to myself\ I spend it making sure my body gets the rest it deserves or spend it with the people I enjoy being around. Keep my mind and body sane and happy 🙂

What I Enjoy The Most As A Software Engineer

The last two weeks or so I have been thinking about what I enjoy the most about being a software engineer. Do I love implementing new and exciting features for the customers to use? Absolutely. Do I enjoy designing and building new tools to make lives easier for the software engineers and testers where I work? Of course. Out of all the tasks that I perform on a daily basis, nothing beats fixing bugs.

The way you need to think is completely different in my opinion when you are fixing bugs compared to designing and implementing something from scratch or adding a new component. I treat this process much like a problem solving game where I assume the role of a detective trying to find out where the problem is happening, why it is happening and what is the best way to fix it so that in the future it won’t break again. With the use of logs, breakpoints and tests I ensure that the problem is fixed.

Why you may ask that I prefer to fix bugs over performing other tasks? It is extremely challenging, rewarding and you need to pay even greater attention to what you are doing. It really is the ultimate problem solving challenge in some ways. Your absolute attention to detail and focus is imperative and the amazing feeling you get when you successfully fix the bug is satisfying.

In the future will I still love fixing bugs over other tasks? I don’t really know. Most likely though I would say yes. I have always enjoyed a challenge, the problem solving game and that feeling you get when you succeed. Only time will tell, but right now any time I look at the Kanban boards or have issues assigned to me and it is a bug I get excited no matter how small or large the problem may be.

Goodbye 2017, Hello 2018

2017 I bid you farewell, and I welcome 2018 with open arms.

Overall 2017 was a great year for me, I started a number of things such as Brazilian Jiu-Jitsu and this very blog site. But with having done everything there was still a couple of things that I would have liked to have done such as release my app to the Windows Store, read a couple of more books and learn some new technologies that are not directly related to my work.

So now that 2018 has rolled in I am going to start making quarterly goals with mini goals in those quarters. With these quarterly goals I am hoping it will allow me to focus, reach some more milestones and achieve everything that I want to in 2018. If I was to give 2017 a label, it would be the year that I started many things. With 2018 I want it to be the year that I not only start new things but continue and finish a number of other things.

Right now I am in the process of thinking about and starting to write my quarterly goals. The very first item I put on that list was to release the alpha version of my artificial intelligence app to the Windows Store around April, some more information about the app currently can be found here. I also have picked out the first book I am going to read for 2018, Astrophysics for People in a Hurry; more information about the purchasing the book can be found here.

Let the 2018 adventure begin 🙂

Intrusive and Abusive Website Ads

Many consider this to be a controversial topic and there are generally only two camps that most people fall into. There is the “content creators live off the ad revenue they receive and the ads are not that bad” and then there is the “ads are ruining my browsing experience, so they are going to have to go when I browse“.

My position on the ads that are shown on websites has changed over the years. At first I was extremely annoyed by them (no matter the type of ad) so when the various ad blocking extensions arrived for Google Chrome I jumped right on them. Later on I took the position where the ads were not too annoying so I did not use any ad blocker. Now I have come back into the camp where ads on sites are just plain intrusive, in your face and annoying, that ruin your browsing and content consumption experience. If I was a major content provider I would make sure that the ads that I was offering were non-intrusive.

The type of ads that I don’t mind are the ones that sit in the background, don’t play any audio or video, and absolutely do not change the way that the website is presented; YouTube ads obviously are a different story and because I subscribe to YouTube Red I don’t see YouTube ads. What I found while not using an ad blocker extension recently was that there are more and more ads being shown on the various sites that I visit that completely rearrange the website’s content and either have intrusive audio playing or banners popping up. The worst experience that I have had was on mobile where the page’s content would load and then all the ads would load which rearranges the content or there is a pop up that has a difficult close button to press.

If content creators were so concerned about the ad blockers being used then maybe the ads that they show should not be so intrusive. A good example of intrusive website ads from a couple of weeks ago was on the video gaming site IGN and there was a promotion running. Not only was the home page of the site littered with ads for the promotion (banners on the top and both sides), but a large pop up ad was shown that played a video with muted audio. If you did close the pop up and started scrolling a small banner would follow that detailed the same promotion. This situation right there is intrusive and in my opinion should not be allowed. It ruined my browsing experience, slowed the site down, and also made actually viewing the content much more difficult. With the ad blocker on the page loaded significantly faster, there was no banner ads and the annoying pop up ad was gone.

As long as these types of practices for ads being displayed on websites continue then people are going to use ad blockers. I am fine with the top and side banners displaying the ads as it did not take away from the content itself and they did not ruin the experience. Having an ad pop up play a muted video and then have a banner ad follow you as you scrolled through the page is not consumer friendly and intrusive. So for the foreseeable future if websites continue to provide these intrusive ads then I am going to continue to use block the ads. If a site however is providing consumer friendly ads then I will white list the site and allow the ads to be shown. What are your experiences with ads on certain sites? And do you use an ad blocker while you browse the Internet?

Java Deprecation Annotation

An annotation that is near and dear to my heart; as someone who constantly evolves their classes it is vital that if I cannot remove some old methods and/or fields at a single moment, I correctly identify that they should no longer be used and a new method or field should be used instead. I have also been seeing it more and more the last couple of days on the open source projects that I am viewing (which is strange as this is not the first time I am thinking about a certain concept and then it appears everywhere).

The reason why I really appreciate the @Deprecated and @deprecated Java annotations are because as your classes evolve you sometimes have to signal to the developers working on the project that “hey this should no longer be used, it has been superseded by another method and you should use that one instead”. Both these annotations do just that.

@Deprecated vs @deprecated

If you take a quick look at the annotations then you may not see the difference. But having a capital letter ‘D’ instead of a lower case letter ‘d’ is important.

The @Deprecated annotation is to let the compiler know to generate a warning whenever your program is using the class, method or field that has the annotation.

The @deprecated annotation is specifically used for the Javadoc and notifies to the developer to not use the class, method or field and use the appropriate superseded one.

Generally I use both. @Deprecated to actually deprecate the class, method or field and then the @deprecated annotation in a comment to highlight which superseded class, method or field to use instead, and also very importantly note why the class, method or field was deprecated.

I have seen plenty of times only @Deprecated is used with no information as to what to use instead, which is slightly frustrating. It is always worth spending a small amount of time to correctly document why something has been deprecated and what to use instead, it makes everything much easier for you and everyone else.

Using @Deprecated

It is very simple to use the annotation.

To deprecate a class:

@Deprecated
public class Person { ... }

To deprecate a method:

public class Person {
	...
	@Deprecated
	public String getName() { ... }
	...
}

To deprecate a field:

public class Person {
	....
	@Deprecated
	private String name;
	...
}

Using @deprecated

Just as important as deprecating a class, method or field I believe in documenting what to use instead and why the original class, method or field has become deprecated. This annotation is sometimes missed by many developers from the open source projects that I have looked at.

To document a deprecated class, method or field:

/**
 * @deprecated
 * Replaced by {@link #Entity}
 * No longer valid as a Person objects are replaced by Entity objects.
 */
@Deprecated
public class Person { ... }

Official Documentation

For more information about the two annotations then take a look at the official Oracle documentation, here.

BJJ: A Physical and Mental Workout

I have been doing Brazilian Jiu-Jitsu for nearly a whole year now and I obtained my second stripe on my white belt last Friday; I was extremely happy that I managed to get it as well, but I know there is a long way to go. I want BJJ to continue to be a part of my life for a long time to come. It has been extremely beneficial for me both physically and mentally, plus my training partners are some of the nicest people I have ever met; the ego is checked out at the door at where I train.

When I wanted to start training BJJ there were plenty of people from family and friends who asked me “why do you want to do it?“. As a UFC fan I really appreciated the ground and submission game at play and listening to the Joe Rogan Experience podcast with the likes of Joe and Eddie talk about BJJ, how it changed and made their lives better; I thought why not give it a shot and what do I have to lose. While I was in high school I was fairly active so I was keeping fit, but as soon as I started university and began working full time, my physical activity essentially became non-existent. The only real exercise I ever did before starting BJJ was walking to and from work.

Starting BJJ was an eye opening experience. I knew I was out of shape, but I didn’t know I was that out of shape. My cardio was really bad. I had problems lasting more than a couple consecutive 5 minutes rolls at a time. So from the get go I knew BJJ was going to help get my cardio to where it should ideally be for someone my age. My cardio has gotten significantly better but personally it is not where I want it to be. I don’t gas as early but I still gas before the end of my session, something that I personally want to change in the coming year.

Learning all the various positions, submissions, etc. is extremely satisfying. Knowing that if I get into a street fight and it goes to the ground I can defend myself if they have a jacket (Gi) or they just have a shirt on (no Gi). I don’t need to physically hurt them either which is a bonus, I can painlessly subdue them while making sure I am safe. I don’t plan on getting into any fights anytime soon but if something does happen or I need to help someone, I am at least more prepared than before.

One thing that I really did not know was how much of a mental game BJJ is. Joe Rogan and others I kept hearing say that BJJ is like a physical chess match where you have to be multiple moves ahead of your opponent to beat them. I can for a fact verify this. If you clock off mentally for a split second there goes your full mount or your closed guard; you could even fall into someone’s triangle choke. You have to be on the ball and always thinking about your next move. I love this about BJJ. I have submitted people who are physically larger than me but I have also been submitted by people who are physically smaller than me. It really does feel like a physical chess match. At no point can you not be prepared.

Some days I feel really good because I didn’t get submitted or performed successfully a submission on someone, but other days I feel really bad. I either got submitted a crazy amount or I just did not have a good session. What I learn from this is that I need to continue to improve; I never take it too personally. I don’t dwell on the success or the failures for very long because I found that in BJJ your performance can change from roll to roll and session to session. Never take anything for granted because it can be taken from you so quickly. Your ego should never get the better of you and you should never feel bad when you get rolled by someone else.

Overall I feel that BJJ has made a positive impact on my life. Physically I have never felt better. Being a very competitive person it allows me to vent and release my competitive nature, otherwise I would have to do it while playing video games. Mentally it has allowed me to be both humbled when getting destroyed by people physically smaller than me and it has shown me that I have so much to learn (something that I really love doing). With every roll and session I learn new and little improvements that get added to your list of moves and positions.

After every BJJ session I come home physically exhausted and mentally drained, and I love every part of it.

Google Chrome VS Microsoft Edge On My Surface Book 2

Now that I have moved on from my Surface Pro 3 and have been using the new Surface Book 2 since it was released on a daily basis, I thought it would be a good time to do another comparison between the two browsers. If you want to check out my previous comparison of the two browsers on my Surface Pro 3, it can be found here. This time around I put Google Chrome up against Microsoft Edge on my Surface Book 2, and the results surprised me a little. If you want to read about my Surface Book 2 experience then click here.

Normally it is standard practice to install another web browser as soon as you install a version of Windows. Nearly everyone I know uses either Google Chrome or Mozilla Firefox (no kidding, I maybe know a handful of people who use Microsoft Edge and they all live in my house). No one even bothers to give Microsoft Edge a go and see if it does the job, which is a real shame. Whatever Microsoft has done with the Fall Creators Update and subsequent updates to the Microsoft Edge browser has made it extremely more stable, responsive and well, usable.

Here is just a short list of gripes I had with the Microsoft Edge browser that resulted me in having to install Google Chrome when I was using my Surface Pro 3:

  1. Lack of first, and third party extension support.
  2. Web pages failing to load and render.
  3. Tabs would become unresponsive too often.
  4. Constant crashes after not being able to recover web pages and tabs.

Now as you can see some of these issues are problems that make the browser not usable in one’s day to day browsing, I mean who would really want to properly render and load a web page without it crashing?

Once I setup my Surface Book 2 I did not install Google Chrome, I wanted to give Microsoft Edge a fair go. On paper Microsoft Edge has all the features a user would want and more. Since using Microsoft Edge I have noticed little to no issue with web pages failing to load and render, tabs are very rarely becoming unresponsive if ever and when they do become unresponsive they recover quickly and do not cause the browser to lock up and crash. Come to think of it I have not had Microsoft Edge crash on me once during my time using it on my Surface Book 2, and I have not had to force close it either.

Microsoft Edge has had no negative effects such as causing my Surface Book 2 to generate a large amount of heat or spin up a fan (my Surface Book 2 does not have a fan because I have the 13.5” i5 version), and the battery life has been extremely good. The only thing I wished was better with Microsoft Edge was the support for extensions, and from the extensions that are available most are buggy or do not function as well as their Google Chrome counterpart. With all this positivity I still wanted to see how Google Chrome performs on my Surface Book 2. After installing Chrome and using it for a couple of days, it showed me how far Microsoft has gone in catching up and passing Google when it comes to web browser optimization.

Google Chrome is known to be a resource hog and to Google’s credit it has been improving the resource management of the web browser with each subsequent release. Google Chrome chews up a large amount of your available RAM, unlike Microsoft Edge. But chewing up your available RAM is not the major problem here; I mean really using up available resources is not an issue (it is there to be used for a reason). The absolute worst part about Google Chrome on the Surface Book 2 is the drain on the battery. With Microsoft Edge I can get solid day’s worth of use on my Surface Book 2; Google Chrome on the other hand cannot give the same amount of battery life doing the same browsing. A solid day to me is 8 hours and using Microsoft Edge with other tools running easily passes this. Google Chrome and the same tools running can only last me around 6 hours. To some people 2 hours is not much, but that 2 hours can determine whether you leave your charger at home or now.

The issue where watching YouTube on Google Chrome would spin up my CPU fan of my Surface Pro 3 did not happen on my Surface Book 2. The primary reason for this is because my Surface Book 2 does not have a fan. What did happen though was that my device was a little warmer when watching YouTube on Google Chrome than on Microsoft Edge, it was not too hot to use on my lap but there was a noticeable difference.

Overall I think I’ll be sticking with Microsoft Edge completely now on my devices (on my Android device I have switch to Microsoft Edge and will most likely change my default browser back to Microsoft Edge from Google Chrome on my gaming PC), especially on my Surface Book 2. With the fixes that Microsoft have done to the Edge browser, if you have not given it a chance then try it out; it will surprise you I think at how well it performs compared to Google Chrome, and if you have a device you take on the go with you then it will probably drain less of your battery.

Well done Microsoft in really taking the time in optimizing your default browser, now if people only could shake the bad taste of Internet Explorer out of their mouths, they may give Edge a go.

Nokia 8 and Android Oreo

HMD Global was touting that the 2017 branded Android Nokia mobile phones will be receiving Android OS and security patches extremely quickly, as of December they have delivered on this. They also said that the mobile phones will also be one of the first to receive Android Oreo, before the end of 2017 I might add. This is a mighty claim, many have tried and failed with many manufacturers like HTC and Samsung holding out on the Android updates due to software issues with their launchers and skins. The Nokia mobile phones run a stripped down and pure Android OS with no bloatware or skins; this should make the update process much quicker and smoother.

Last night I got a little notification that allowed me to download and install Android Oreo on my Nokia 8. There were rumours that this version of Android was in testing and would be ready sometime in December (no indication whether it would be at the start, at the end or somewhere in between). I applaud HMD Global in pushing out the update extremely quickly. HMD Global is only one part of the update puzzle however. Your mobile phone provider also has to ensure that the update still works on their network and does not completely render your mobile phone useless on their network.

Telstra has been notoriously slow with pushing these updates to consumer’s mobile phones (even if you bought the mobile phone outright and not through Telstra). You can go to their forums and support channels to see a number of posts with people complaining that Telstra is blocking mobile phone updates. This time Telstra has pushed the update out fast. Have they changed their tune and business practices regarding mobile phone updates? Perhaps, but it is too hard to tell. One Android update coming to your handset in a timely manner does not excuse or disregard the numerous other delayed or blocked updates.

After the update was installed I noticed really only a couple of differences compared to the previous version of Android; there are probably more but these are the ones that stood out to me straight away:

  1. Notifications Bar – now with white icons and the expanded notifications bar has a white background with dark icons.
  2. Battery Percentage Indicator – other launchers and skins already had this but now Android comes with this handy little feature right out of the box.
  3. Nightlight – another feature that required either a third party app like Twilight or a custom launcher. The ability to change the blue hue on your display based on the time of day now comes standard with Android Oreo.
  4. Picture in Picture –  some apps have the ability and option to now work in “Picture in Picture” mode. You can easily browse the Internet while having YouTube running in a small window. Personally I have disabled this feature.
  5. Settings Cleaned – the entire Settings app has been cleaned up and made streamlined. There is no more confusion or ambiguity of where a particular setting sits. Well done Google.

Under the hood I imagine Google has made some improvements regarding battery life, optimization of the Android OS and other little improvements to make the Android experience that little bit more fluid, consistent and uniform. I use the Microsoft Launcher so I cannot comment on the default Google/Android launcher and if there has been any changes to that, but it most likely also has been improved like previous versions. So if you have a Nokia 8 (or potentially any other Nokia 2017 mobile phone) and you are on the Telstra mobile network then see if your device has an update.

Enjoy your new version of Android Oreo 😀

%d bloggers like this: