Git. Command Line or Graphical User Interface?

I was doing some reading today about Git and whether software engineers (or anyone else for that matter) should learn to do all their changes, etc for Git using command line or a graphical user interface. It was an interesting piece and some valid points were made for both using a command line and/or a graphical user interface. Me personally, I use a graphical user interface because it is extremely easy, hooks directly to the Git commands (under the hood) and can give you a nice visual tree of what the repository looks like. For your information Sourcetree is the client I use. However the more programming and development I do, the more I appreciate and want to learn what, how and why.

Some of the reasons why using the command line approach is valid and well worth it include but not limited to:

  1. Platform Independence:
    • No matter what operating system you are on, the commands are universal. So if you can use the Git commands in a Linux environment, then you will have absolutely no problem whatsoever doing it on a Windows or MacOS machine.
    • Git clients like Sourcetree for example are not available on every platform, and I imagine the other Git clients are also not available on every platform.
  2. Understanding:
    • This fundamentally for me is important and I think should be high on everybody’s list when using something.
    • By using the command line you get a level of understanding of what exactly you are doing, whereas using a graphical user interface this level of understanding (well to me) is abstracted and partially lost.
    • It also comes back down to point 1. If you understand what you are doing then you can take it to any platform.

Now using a graphical user interface is not the end of the world. Sometimes you just want to get something done and using a terminal if you are not comfortable with it can be extremely daunting. I personally would never be caught dead (well right now anyway) resolving merge conflicts and looking at diffs using a command line, and rebasing using a graphical user interface is so much easier.

I did some quick Googling and found what I feel are two really good resources that help and ease you into using the command line for Git. There is Try Git and Learn Git Branching. There are probably more out there but those are the two that I felt provide a good starting point. If there are others out there that you use or feel that there is a resource that is definitely worth reading then please add a comment below (sharing is caring) 🙂

Kaspersky Anti-Virus + Microsoft Windows 10 + Microsoft Office 365 Issue

Recently I had updated three of my household’s Windows 10 machines (one Surface Book 2, one custom built gaming PC, and one ASUS laptop) to the latest stable/release version of Windows (Microsoft Windows April 2018 Update). Each of machines also have a copy of Microsoft Office 365 installed, along with the latest version of Kaspersky Anti-Virus.

What I have found after the Windows 10 April 2018 Update installation; Microsoft Office 365 fails to properly recognise that I have a registered version. I can still use the products in the suite such as Word, Excel and Outlook, but am given 3 days to rectify the problem before the product runs in a limited capacity. I have the correct account logged in, the credentials are correct, and if I try to register and authenticate via the Internet option (phone option is not available) it completely fails. Googling or Binging the error code that is produced does not show any resolution or worthwhile results.

Restarting the machine, restarting any of the Microsoft Office 365 products also does not seem to resolve the problem. Initially I thought that communication to the Microsoft servers was unavailable (sometimes servers go down), but trying to use the product at any time resulted in the register/authenticate prompt to appear on all the machines. So out of sheer desperation and curiosity I thought perhaps I should disable my anti-virus because sometimes they can cause problems with certain applications. Low and behold when I booted up any of the Microsoft Office 365 products the registration/authentication prompt no longer appeared. It appeared that Kaspersky Anti-Virus was blocking or limiting my ability to properly communicate with the Microsoft servers.

Now that Microsoft Office 365 could be restarted without the register/authenticate prompt appearing I decided to re-enable my Kaspersky Anti-Virus, restart my machine and launch the Microsoft Office 365 products. Still no more register/authenticate prompts; great news. Whatever happened between the Windows 10 April 2018 Update, Kaspersky Anti-Virus and Microsoft Office 365; it seemed like it invalidated my copy of Microsoft Office 365. If you encounter the same problem after updating your Windows 10 machine then try the following steps because they worked for me:

  1. Close any open Microsoft Office 365 product you have open.
  2. Disable any anti-virus that you have running (if possible).
  3. Open a Microsoft Office 365 product.
  4. Close the Microsoft Office 365 product.
  5. Turn on your anti-virus.
  6. Restart your Windows 10 machine (this is optional).
  7. Open a Microsoft Office 365 product (the register/authenticate pop up should no longer appear).

Hopefully the above steps helps to resolve your problem.

Another Android Messaging Play?

Poor Google.

If you have ever used Android, then you may be familiar with the various messaging and chat clients that Google has provided you throughout the years. There was Google Talk, Google Hangouts, Google Messenger, Google Allo, etc. Some of them no longer exist, some have been repurposed, some have been renamed and some have/had no support in a long time.

Now it appears that Google will be trying to unify and have one primary messaging and chat app for the Android OS with the backing of a number of telecommunication companies, mobile phone manufacturers and service providers. This is sorely what the Android platform really needs if it wants to catch up to Apple and the iMessage system that they have.

This information appears to have been broken exclusively by The Verge and propagated through other media outlets afterwards. When I watched their video and read the article I was excited, and still am. However I do have some reservations with what they are offering. Some of these are unfortunately unavoidable while others are concerns based on how Google likes to work.

What excites me:

  1. A single, unified, quality chat and messaging app:
    • I don’t need to have Allo, Messages, etc on my Android device. There is just one default app now called Chat.
  2. Support from a number of third parties:
    • From the telecommunication companies to the mobile phone manufacturers, it appears to be backed.
  3. Charged for data messages instead of SMS where possible:
    • Data messages cost me significantly less than a standard SMS. Anything to save some money is fantastic.

What concerns me:

  1. No end to end encryption:
    • With all the snooping, data gathering and harvesting, ensuring that your messages are readable by only the intended parties IMO is critical.
    • iMessage has the leg up here.
  2. Long term support from Google and third parties:
    • Will the third parties drop support soon after launching?
    • Google has a habit of:
      • Throwing stuff at the wall and seeing what sticks.
      • Constantly drop support for apps and services when they get bored and try to start again.
      • Not letting apps and services mature before they get cut or dropped.

Looking at the list of operators, Telstra appears to be on the list so that is good for me. HMD Global/Nokia appears to not be on that list, but that may change in the future as they seem to be going the route of pure stock Android. Having Microsoft onboard is also great because it could mean that a Windows 10 desktop client may also be in the works.

Messaging on Android may get a cleaner and uniform in 2018, but for how long?

Update: HMD Global/Nokia Missing Android Security Updates

Update 28/04/2018

Recently I was in contact with the HMD Global/Nokia support team and I had two very different experiences. The first support person I was in contact with I explained my situation and wanted to know why my Nokia 8 had not received the Android Oreo 8.1 update and the April 2018 security patch. They were extremely friendly and happy to assist. They tried a number of different methods to force the update and were not sure why some Nokia 8 devices received the update and others did not. I was told to contact the support team again later on in the week if the update had not arrived. My second support contact was no where near as friendly or helpful however.

Unlike the first support person I was in contact with, the second support person was hostile, rude and did not seem interested in helping me at all. As the first support person instructed me I let the second support person know what was happening and that I was told to ask for further assistance if the update had not arrived. This second support engineer did nothing or try to find answers to my problem. Instead all they kept responding with was to “just wait and the updates may come”. This right here is not really reassuring to a customer who just wants a little explanation as to why this is happening and to be so rude and completely unwilling to assist helps no one.

Yesterday I got a little notification on my phone that allowed me to update to Android Oreo 8.1 and also update to the March 2018 security patch (not the April 2018 security patch unfortunately). I will be closely monitoring the situation and if HMD Global/Nokia continue to delay patches to their Android smartphones then I may have to bite the bullet and buy a Pixel phone in 3 years time.

Original

I was really hoping that I would not have to write this post.

When I was looking for a brand new Android mobile phone, one of the requirements that I had was that the mobile phone would be supported by Google and the manufacturer for at least three years (two for the major Android OS and three for the Android security updates). The only manufacturer that I could find that met this requirement was HMD Global/Nokia (not including Google) and why I chose to pick up the Nokia 8. On the Nokia Android home page it clearly states:

Regular security updates and two years of OS upgrades…

If you navigate to the Nokia Smartphone Security Maintenance Release Summary page you can see that HMD Global/Nokia are pushing updates to various Nokia mobile phones (including the Nokia 8). However, not all models are receiving the updates. The security patch release information is done on a Device – Build_number basis it appears. My Nokia 8 has a Build_number ’00WW_4_390_SP02′, which unfortunately does not appear in both the March and April security patches.

When contacting the HMD Global/Nokia support team about this, they could not provide a valid reason why my Nokia 8 was not getting the security patches even though my device (not the build number though) was listed in the security patch release. Looking through the forums shows the same confusion and frustration from other customers. Some sort of answer would be greatly appreciated by HMD Global/Nokia.

Has HMD Global/Nokia gone back on their promise of regular security updates? I would say partially yes. They are updating some devices but leaving other devices based on build numbers it would seem. In saying that however how regular is regular? Is a monthly security patch regular? Is a two month or three month interval regular? Right now I wished that HMD Global/Nokia would have been more specific about the regular security updates. To their credit though, compared to Samsung, LG, HTC, etc. they are trying to ensure their devices are up to date.

Recently I came across an article on The Verge discussion manufacturers lying to customers about the security level on their Android devices. That is even more concerning. I would not want to “update” my mobile phone only to not be properly protected even though it appears that it is protected. Hopefully HMD Global/Nokia is not one of these companies.

Right now I am sitting and waiting for the latest security update for my Nokia 8. But if it never arrives then when it comes to buying a brand new mobile phone it may be time to switch to another manufacturer. Perhaps going back to the Google products (RIP Nexus line) and buy a Pixel mobile phone is the only option. Are Android security patches and OS updates worth the premium price of those Pixel phones? For me the answer is yes. I would happily pay more for a device that is supported and updated timely.

I will update this post if my Nokia 8 receives the April security patch, but will not be updating it after April as a two month gap between security patches is not regular IMO. Am I making too much of a fuss? Or should HMD Global/Nokia and other manufacturers take more responsibility and ensure that customers are protected while using their devices?

My Artificial Neural Network Application & Podcast

The last month my blog has been fairly quiet.

I have been a little busy working on my artificial neural network, practising BJJ and playing some video games; plus I was sick for a couple of days. Initially my plan (which I stuck to for an extended period) was to put out a blog post every one to two weeks. However coming up with meaningful content that often can be fairly difficult.

This month I plan on writing about my artificial neural network with some emphasis on how a multi-layer perceptron works and how my application works/be used. It can be viewed on my GitHub page.

The current state of my artificial neural network on GitHub is just the skeleton with the majority of the code still not pushed to the repository. As I start to push the meat of the artificial neural network components such as the feed-forward, backward propagation, etc I will be creating specific blog posts.

The podcast that I was working on has not turned out as expected so I am in the process of re-evaluating the tools and topics that I will cover. I still plan on creating a podcast and with the new Content Creator version of Skype it should make the process  much simpler.

Android and Split Screen

Recently I have been noticing that sometimes when I unlock my Nokia 8 which runs Android Oreo, I see that the split screen mode has been enabled/triggered. At first I was extremely confused as the device was supposed to be locked in my pocket, but yet the apps at times (mainly Spotify) would go into split screen mode.

Looking through all the settings I could not find a way to disable this split screen mode. Again I find that odd and slightly confusing because the new picture in picture mode can be turned off. So why did Google not provide a means to disable the split screen mode for the apps?

While doing some more reading I managed to find how potentially I was triggering the split screen mode in my pocket. The app switching button if it is held for a short period of time triggers the split screen mode. The 9to5Google Android N quick-tips: How to activate split-screen multitasking mode outlines the same method that I have detailed above how to trigger the split screen mode, but they list two other methods.

Perhaps Google when they finalise Android P they will offer a way to disable the split screen mode. If someone does know of a way to disable split screen mode then please do let me know because the only pieces of information that I could find on the Internet are articles about how to ensure your app handles split screen mode.

My New Sennheiser PXC 550 Wireless Over-Ear Headphones

For a little while now I have been looking at getting a new pair of over-ear headphones. The main reason why I would like a new pair of over-ear headphones is because my current Beats Solo on-ear headphones begun to fall apart. 2017 had not been a great year for me with respect to headphones. Early 2017 saw my microphone detach from my Turtle Beach X12 headset I use for my PC (luckily I could just force it back together and the wires were not broken), then sometime in the middle of 2017 my in-ear headphones broke and had to get a new pair (I bought some Sennheiser headphones), and then finally at the end of 2017 my on-ear Beats Solo headphones started to break down.

Before I purchase a product I do my research; so for a couple of months I was watching various YouTube videos that reviewed a number of over-ear headphones, both wireless and wired and read a number of different reviews covering the same over-ear headphones. Finally I settled on the Sennheiser PXC 550 wireless over-ear headphones. It was between those wireless over-ear headphones and the Bose Quiet Comfort 35 wireless over-ear headphones. My original plan was to buy a significantly cheaper pair of over-ear headphones but the price I saw these PXC 550 headphones was too good to pass up. The reasons why I picked up the Sennheiser PXC 550 wireless over-ear headphones were:

  1. Comfort:
    • The pair of headphones fit around my ears and the top of my head perfectly. The cans are shaped like human ears 🙂
    • The cans and band on top of my head did not press down or create a large amount of pressure on my head. Wearing these for an extended period would be easy and comfortable.
  2. Quality:
    • Unlike my Beats Solo headphones these headphones felt extremely well built, everything clicks, fits and moves with precision. Nothing felt misplaced or miss-aligned.
    • The materials used all feel like they are premium and nothing on the headphones feel cheap.
    • Audio produced from the headphones is great. I am not too fussed or picky as I am not really an audiophile but I can definitely tell when some headphones sound tinny, are too heavy or too weak in one area. These were perfect for me.
  3. Features:
    • NFC for quick and easy pairing.
    • Android application that gives you a number of handy details about the headphones status.
    • Touch controls. There are only really two buttons on the headphones. Nearly everything is controlled using touch controls on the right eat cup which is super handy so there is no clumsy guesses which button or control you are touching or fiddling with when you are wearing them.
    • Headphones turn on and off using an extremely intuitive and innovative technique. When you want to turn your headphones on, just put them in position to put them on your head and they turn on. Want to turn them off, position them so that they are ready to be packed up.

Unboxing my headphones revealed a zip-lock fabric case. The case is not hard, so it won’t protect the headphones from extreme pressure; but it also is not too soft such that it can be easily squashed. The case also has a small pouch section inside that can house your cables or other adapters. You get a micro USB charging cable (would have loved a USB C), a 3.5mm headphone cable, an aeroplane headphone connector and a larger connector for various mixer or audio devices. So right off the bat you are welcomed with a number of useful accessories, something that other products don’t provide, kudos Sennheiser. Pairing the device is super simple. I used NFC with my Android phone, but you can also pair using the standard Bluetooth method. Using the headphones is also super easy. The instructional booklet that is supplied details all the gestures that you will need to use and remember. To start and stop your audio, just tap the right ear cup. To turn the volume up just tap and move your finger up the right ear cup. To turn the volume down just tap and move your finger down the right ear cup. You get the picture. All the controls are tied to the right ear cup.

The microphone on the headphones is also pretty good (I have not tested the inline microphone on the 3.5mm detachable cable). After testing out the headphones with one of my favourite Spotify playlists I asked my brother to give me a call so I can test the quality of the call and if he can hear me clearly. It all checked out and he could hear me loud and clear with no issue and I could hear him just as clear. Now as these headphones are wireless the battery life is very important. Unfortunately the battery is non-removable, but these headphones are supposed to last at most 30 hours on a full charge and they take a full 3 hours to completely charge. From what I could tell, the Sennheiser PXC 550 headphones have the longest battery life for the price point. As with any new electronic device I get, I always recharge the device completely before using it and these headphones were no different. After several days wearing the headphones to/from work (I walk to/from the bus stop and catch the bus to/from work) and at work I have barely drained the battery life on these headphones. There is nothing more satisfying that putting on some noise cancelling headphones, picking up a couple of Jira issues and programming for an extended period. I plan on recharging them only when the battery reaches less than 10% so that I don’t have to worry about plugging them in every night or afternoon when I come back from work.

As of right now I cannot really fault these headphones. They were expensive but thanks to a 20% eBay discount I managed to snag them for ~$370 AUD. The headphones feel, sound and perform great. You get a number of accessories that you don’t get with other high end and similarly priced wireless headphones. A really worthwhile video to watch the shows off how good these headphones are and what features they have is The Best Wireless Headphones You Can Buy Right Now by Unbox Therapy, it was one of the videos that helped me decide that these were the ones to buy. If anyone has any questions about the headphones just leave a comment and I will try to answer it as best as I can.

Android Wear Are You?

Is it just me or has every smartwatch that doesn’t run watchOS become vaporwear? I feel like if you want to buy a smartwatch then you will most likely have to settle for the Apple Watch or a smartwatch that really isn’t “supported” by Google. By supported I mean that they are featured on the official Android Wear web page and will be getting continual OS updates from Google.

When the start of the current smartwatch craze occurred I really wanted a smartwatch too. It wasn’t for the style or visual appeal but the convenience of not having to actually have your smartphone in the same room as you to respond to a new message, or even check the time (like a standard watch). Right now I generally carry my smartphone with me and leave it on the table whichever room I am in. Recently I started to get the itch to get a smartwatch but when I saw what was on offer I was a little disappointed. There was nothing on the market that I could find that was easy for me to purchase or supported by Google. Living in Australia has not made getting a smartwatch very easy it would seem.

Going to the official Android Wear website and examining the different Android smartwatches that are available was flat out disappointing. Not only was the selection fairly poor but actually getting a hold of one of the smartwatches through the officially supported stores was near impossible. Starting with the LG Android Wear smartwatches, none appear to be available to purchase in Australia. I continually get routed to the US website and when I change to Australia and check for availability it shows “coming soon”, even though these smartwatches have been out for some time. The three other Android Wear smartwatches (Zenwatch 2, Huawei Watch and Moto 360 2) all are supposed to be available through the Harvey Norman store. But when you click the link to examine the item all you get is a “Page Not Found” page. Google appears to not have abandoned the Android Wear platform entirely either. Android Police appears to have obtained information about Android Wear smartwatches that will be getting Oreo updates and/or already have the latest version of Android (see here). But why are these smartwatches not displayed on the Android Wear webpage?

Microsoft is also out of the smartwatch market as of 2016. They stopped producing more Microsoft Band 2 devices and unfortunately had no plans to release a Microsoft Band 3 according to this article from The Verge. Unlike the traditional smartwatches the Microsoft Band was closer to a fitness band with its emphasis on health and fitness monitoring. With Cortana integration it was super appealing to me as that is my primary AI assistance, even on my Nokia 8 (running Android Oero), Cortana has replaced Google Now/Assistant. Maybe Microsoft will return back to the smartwatch market, but with them also pulling out of the smartphone hardware market I doubt it very much. If (and this is a big if) they release a Surface Phone or Surface Watch then I will most likely be picking them up. I have never had any major issues with any of the Surface products that I have purchased, even the Surface RT. But nothing Microsoft has said, shown, or even hinted at has indicated a new smartwatch from them.

Do I really need a smartwatch? Not really. Would it be a nice to have? Absolutely. I have a couple of really nice standard watches. Some have leather bands, some have metal bands. None are “smart” and none do anything more than show me the time and date. For now this will have to do. I will be taking a look at various online stores to see what I can get here in Australia, but right now the Android Wear future does not look as bright as it once was.

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.

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?