Fix the slow performance problem on Surface Pro 4

Right after I installed the new Microsoft Anniversary Update, I started to notice performance issues with my Surface Pro 4. Switching between apps became a nightmare and the mouse started to move painfully slow. Nothing helped besides performing a complete restart. This happened to me during a meeting with one of my clients, causing me to apologize and stall untill the reboot was completed. I started my presentation again, only for the same problem to happen.

My desktop however was acting all fine, weird right?

Doing some detective work, I figured out that my CPU is stuck at the same frequency of 1.5 GHz. No matter what the Surface is doing, I get the same frequency all the time.

CPU Stuck Frequency

The Problem

I started to wonder why this is happening on the laptop but not the desktop? And why after the anniversary update of Windows 10? Google linked me to more people who are suffering from the same problem on Reddit and on the Microsoft Feedback Hub, oops!

Reading through the pages, I found out that the reason behind the slow performance was a new feature that Microsoft enabled on the Surface line, called “Enhanced Intel SpeedStep® Technology“, which does the following:

Enhanced Intel SpeedStep® Technology is an advanced means of enabling very high performance while also meeting the power-conservation needs of mobile systems.

  • Separation of voltage and frequency changes. By stepping voltage up and down in small increments, the processor is able to reduce periods of system unavailability that occur frequency change. The system is then able to transition between voltage and frequency states more often, improving balance between power and performance.
  • Clock partitioning and recovery. The bus clock continues running during state transition, even when the core clock and phase-locked loop are stopped, which allows logic to remain active. The core clock is also able to restart far more quickly under Enhanced Intel SpeedStep Technology than under previous architectures.

The tl;dr version of that goes along the lines of: In a computer, the OS tells the processor to speed up or slow down depending on current needs. Intel Speed Shift turns control of that over to the processor, and as a result everything is quicker (and theoretically can save a small amount of battery life).

The Solution

At first, people were hacking their way through the registry to enable extra power settings that doesn’t usually appear for users and are locked away. Changing those settings fixed the problem but on the account of causing more problems. Thanks to Microsoft, this was fixed by a firmware update that was released just recently which you can get by running Windows Update.

Surface Speed Fix

After applying the update and rebooting, the CPU started to change its frequency according to the OS needs. I haven’t tested if there is any improvement in the battery life, but that is yet to come in a future blog post.

CPU Stuck Frequency Fix

It’s worth mentioning that you need to remove the registry hack and revert to the original settings if you ever applied it BEFORE you install the update, and to also reboot the Surface machine at least twice for the update to be completely applied.

Missed Google I/O 2016? Read my virtual coverage for the event

In a 360 degree live stream video, Google I/O 2016 keynote was full of new announcements and cool stuff that will take Android to the next level. New services, apps, hardware, features and improvements that will be all part of Android N.

There were loads of really nice announcements that made me go WOOHOO and some that I could really care less about, but overall I think Google is doing pretty good this year.

My biggest surprise would be not announcing the official name of Android N, Google decided to leave that job to the public by asking them to vote on the next new name of Android, I’m very much rooting for Nutella here and I won’t deny it.

Google Allo and Due, your new messaging and video conferencing apps

After so many failures (and I really do mean so many: Google Talk, Google+, Google Hangouts), Google decided to hit the reset button on messaging and video and create all new apps that is Android and iOS compatible.


Google Allo will be the latest attempt to enter the messaging arena with new features that looks really interesting, mainly you’ll be able to use “Incognito mode” ot keep your conversations private even from Google. You’ll also be able to use Google’s search assistance within the app itself, saving you time to do searches within your conversations instead of using another app.


Google Due is the new video conferencing app that Google promises to be super efficient on slow networks. One of the coolest features that it has (called Knock Knock)  is that you would be able to view live feed of the person calling you, giving you the chance to see what kind of conversation you’ll be getting yourself into before answering. It is end to end encrypted and it works based on your phone number instead of login IDs (WOOHOO!).

Google Now? How about Google Assistant? and let’s make it more fun with Google Home

We’re already impressed by the capabilities of Google Now, but that didn’t stop Google from ever trying to improve the heart of their voice search engine. Instead of just throwing commands, now you can have (real?) conversations with Google to make things happen.

If that was not enough, They aimed even higher and created an always listening device to decorate your room and help you without the need to have your phone with you. Google Home, which is a speaker, is the direct competitor of Amazon Echo. It operates using Google Assistant and it can do really neat stuff. It can be connected to your TV, lights and all sort of entertaining systems at home, allowing you to control of that using voice commands. I wonder if half of what it can do will be able to work outside the US though.

Android N is going to be awesome with a ton of new features

There has been a lot of confirmed features coming our way the last couple of months, specifically after using the new Android Beta Program which allows you to install and test drive the new version of Android, but this was the first time that Google announced those features in a keynote.


Android N will be focusing on three different areas:

  • Performance: Google is now introducing the Volcun API into Android to allow developers to create visually stunning games (Need for Speed does look really good). The Volcun API will give direct access to the phone GPU resources without sacrificing performance. Other areas of improvement include better battery consumption using a new aggressive version of Dose. A new JIT compiler will boost performance between 30 and 600 percent, this will also make apps 75% faster to  install and use 50% less space, nice!
  • Security: Updates are now upfront on the matter, previously installing them was a pain (get notification, download, restart, wait, wait, wait…) but now Google addressed this problem with a seamless update mechanism which downloads the updates silently and applies them the next time the phone is restarted. The greatest gain here is that the lengthy message “Optimizing Apps” that appear after installing updates are now gone (WOOHOO!). You’ll also get File level encryption for protecting user profiles.
  • Productivity: We asked for it, and we got it. Multitasking split screens and picture-in-picture viewing are now a reality and are happening in Android N, a feature that was only available by custom OEM development like Samsung and LG. Quick Switching between last two apps is also a new feature activated by tapping the recent apps button twice, this will be useful specially for phones with small screens and working with multiple apps. A new Clear All button was also introduced to close all recently used apps instead of closing apps one by one. The app notification has seen some improvement too by giving you the ability to interact with notifications without opening the respective app, we can now also choose how notifications are being handled by deciding to completely block them or show them silently. And oh, Android is the first OS to support Unicode 9, messaging will be a lot more entertaining.

Who has time/storage/bandwidth to install apps? Android Instant Apps has got you covered

Instead of downloading an app to use a small feature or open a link with it, Google is now pushing into a different direction to make things easier for the masses. One of the coolest features announced is Google Instant Apps.


It basically allows you to use applications without fully installing them on your phone. So if you click a link to something that links to an app, Android will run the link without installing the full application, it will only download the required pieces of the app and run it in the background. The good news is that this features is compatible all the way back with Android Jellybean 4.1.

VR All the things, DayDream is now Google’s VR Platform

VR (Virtual Reality) is the hottest topic after mobiles, and everyone is trying to get a piece of that pie. Google is playing it smart. Along side launching their own hardware controller and VR goggles, they’re lunching a VR platform called DayDream with a set of APIs and standards into Android N. This will allow software developers and hardware manufacturers to dip into the VR platform easily.

We heard a lot names already working with Google on DayDream. Samsung, LG, Huawei and HTC are all in, big software companies like EA and Ubisoft are also onboard too.

Wearable is getting a new refresh, looks pretty cool

I admit I have never been into the wearable technology frenzy everyone is going through, but I believe that we’re getting there anytime soon, Google is working hard to make that time come sooner than later by releasing Android Wear Developer Preview 2.0 with lots of new enhancements.

For starters, Android Wear apps can run in a standalone mode by accessing the internet directly over Bluetooth, Wi-Fi, or cellular without relying on your phone. New features also include full keyboard (yup, I don’t get it too) and  handwriting recognition to allow easier use of the watch.

So that was it, what do you think? How did Google do this year? Do leave a comment below and do make sure to vote for the Android N name. (Nutella all the way)

Cloud Computing Patterns: What you need to know

Who of you hasn’t bought a computer before? In this age and time, I would say no one. During your buying journey for a new computer, I’m sure you’ve stumbled upon some of the technologies that are used inside it, such as CPU, RAM, Disks and Network. You install a software operating system on top of the hardware you get and you start doing whatever you want with it. Servers are not much different than buying a computer for your own house, except that the components used inside a server are designed to serve a large number of people accessing the data inside those servers.

What does all of this have to do with “Cloud Computing Patterns”? I’m sure you’re wondering by now. My answer would be: if you’re able to tell the limits of a computer or a server, you could grasp the idea behind Cloud Computing Patterns easily. Let me explain.

Cloud Computing Patterns

I have been in the IT business for so long that I can always see over/under utilized servers, companies pour money into buying server hardware only to end up using a fraction of what the hardware can do. I’ve seen my share of the exact opposite scenario too where companies try to stay on a tight budget by buying the bare minimum of hardware requirements to run all the company apps on. Some will argue that Virtualization would be a solution to all of the above, I’ll leave this discussion for another post entirely.

Enter Cloud Computing Patterns to the rescue, a concept that allows you to utilize and use hardware components on the cloud depending on your app needs. A concept much known by the term “Elastic Cloud“. The term came from the idea that if you deploy an application on the cloud, you can configure it to increase or decrease the amount of CPU, RAM, Disks and Network that its using based on current load and other factors you may choose to use.

If you’re wondering why you should know all about this and why you should care, perhaps reading my “Cloud Computing? Anyone?” introductory post to Cloud Computing would be a good idea now.

Alright, lets jump into talking about the five most cloud computing patterns out there, shall we?

  • Static Pattern: If you’re using physical computer or just the default installation of a server on the cloud, you’re using the Static Pattern, you’re not getting the “Elasticity” of the cloud. The resources you have will not scale up or down based on your needs, and you’ll end up paying the same amount for the resources allocated regardless if you’re using them or not. Not our preferred pattern but its faster to deploy in terms of time.

Cloud Computing Pattern: Static Pattern

  • Predictable Bursting Pattern: With this kind of pattern, the resources you’re utilizing are scaled up/down on regular bases and on known times. This is suitable for scenarios where the hardware resources being used are no longer needed and can be scaled down to cut cost, such as the end of a working day where employees are no longer working. The opposite also applies where your apps are in need for more hardware resources to run smoothly, such as the beginning of a working day.

Cloud Computing Pattern: Predictable Bursting

  • Unpredictable Bursting Pattern: Unlike the predictable bursting pattern, we don’t know when a spike of demand will appear to our app, and we don’t have any reading to when or how our app will be utilized. The unpredictable bursting pattern will help in this case by allowing hardware resources to scale up/down based on the app need without user intervention. This is very ideal for scenarios such as a social media site or a news websites where users will be accessing the site at random times based on real time events.

Cloud Computing Pattern: Unpredictable Bursting

  • Growing-Fast Pattern: with this type of cloud patterns, we start small and start scaling up gradually as demand starts to increase. The hardware resources will be added automatically as long as there is demand on the app. This is very useful for startups and companies who are just developing and evaluating new ideas, they start by paying the bare minimum and scale up as demand grows.

Cloud Computing Pattern: Growing-Fast

  • Once in a lifetime Pattern: In this type, the hardware resources are utilized for only one time and then discarded. This scenario is very useful for apps that are used during special events like an online event or the new year celebration. Once the event is done the hardware resources can be safely deleted since they’re no longer in use.

Cloud Computing Pattern: Once in a lifetime

*Images are owned by:

The Internet of Things (IoT)

The Internet of Things (IoT) has been thrown around by tech people for a while, talked by many, understood by few,

What is IoT?

IoT is a term that is coined to describe a concept, not an actual technology mind you. It’s a the ability to let different “Things” talk to each other and exchange information using the “Internet” and make automated actions and decisions based on the information they exchange. The information is gathered by using different kind of sensors and gadgets. The “things” in here can be… well, anything, really.

The internet of Things IoT

Imagine a world where your car, home, washing machine, office, fridge, chairs, coffee maker, keys and everything in your life is connected somehow to the internet. All these things have built-in sensors that monitors different kind of things, such as location, temperature, time, humidity, noise, capacity and many other things. All of them are working all the time to collect and exchange information using the Internet.

The value that comes from this is for example, when you wake up, the coffee maker knows that, and it automatically turns itself on. At the same time, your computer wakes up and starts downloading emails from the internet, it notices that you have an appointment somewhere and it checks if your car is in a good condition to go to that appointment. Your car knows that your appointment is at a distance X away and it calculates if the gas is enough to make the trip. However, it knows that it might not make it using what it has and it tells your mobile to pull up a list of nearby gas stations along with the appointment notification that you received on your computer. Now you get dressed and you’re ready to go out, but you can’t find your keys, so you pull up your Smartphone and ask it to locate the keys using GPS. At the same time, the fridge senses that your milk has gone sour and it displays a message on the fridge door that you shouldn’t drink the milk. Also, the fridge automatically notifies your favorite shopping location to send fresh milk along with a list of things you need for your cooking party tonight.

Everything is connected, everything is talking to each other, the possibilities are endless.

How does it work?

Black magic? Nope, it’s all made of current technology, someone just figured out how to connect the dots together and viola, the IoT is reality. What made this all possible is actually a combination of current technologies that has been around for a while.

IoT Layers

  1. Data Collection (Sensors): it all starts with collecting data, sensors of all kinds and sizes are actively working around the clock to sense and measure things that we want to monitor and keep track of. The sensors are monitoring changes around us and are sending these changes to a central location (usually a data center in the cloud) for further processing.
  2. Data Filtering and Authorization (Gateways): if the working sensors are generating a large amount of data that is hard to send to the cloud all at once, then a “Gateway” (which can be called a small processing computer) can be installed to act as a bridge between the sensors and the data center. There are many uses for the gateways, to name a few:
    • Filtering all the generated data from the sensors and only sending what is important to the data center.
    • Translating the data generated by the sensors to machine language that computers can understand and work with.
    • Securing the data before sending it to the data center and insure that there is no unauthorized access to the sensors.
    • Taking actions on specific generated data, or control the functionality of the sensors by giving them specific commands.
  3. Data Presentation (Application): this is where end users get to look at the full picture of the IoT. The application ties all the layers together by providing the interface that helps us look at and understand the data collected by the sensors, and see what kind of actions were performed after the collection and analysis has been completed. The application allows us to interact with the things that we’re monitoring remotely as well.
  4. Data Processing and Analyzing (Cloud): the centerpiece of the IoT is the cloud, where all the data that is generated by the sensors and filtered by the gateway are sent to their final destination to a data center in the cloud. The data center saves the data and sorts and compiles it into human readable format. The data center also acts as a central control unit for all the gateways and sensors, it monitors their status, updates their software and reports any problems to end users.

Why haven’t you heard about it before?

Because it’s fairly new, although the technology of sensors have been invented and used for many years, it wasn’t like what we have today. There are some factors that helped shape the future of IoT into what we have now, some of these factors are:

  • Smaller, powerful, and affordable hardware: all those sensors and gateways used to cost a lot back in the day, but not anymore. The advancement of science allowed us to create sensors and computers that are very small in size which can fit into spaces and locations that were inaccessible to us before. The manufacturing costs of those devices has been dramatically reduced over the years.
  • Global & cheap mobility: there are many communication technologies available for the IoT devices. GPS, GPRS, 3G. 4G, Wi-Fi, Bluetooth, NFC or simply the Internet. All of these are different examples for communication methods that can be used to allow the IoT world to talk, but the real force here is the rapid cost reduction to be connected online. What used to cost hundreds or thousands before can be simply bought for the price of nearly free. This allowed the IoT devices to be always available, always connected.
  • Availability of supporting tools: manufacturers are having a furious race among themselves to excel in what they provide to the market, and in order for them to provide a unique experience to customers, they’re now producing a massive amount of information and support to the products they sell (insert name of different types of sensors, gateways or communication devices here). Gone are the days when you get a device that you need to work with, but only to be hit with the reality of not knowing how to even start it.
  • The cloud force: there is no better place to handle the amount of information that is generated by the IoT devices than the cloud. Perhaps this is a good time for you to take a look at my previous post where I explain the benefits of the cloud in detail.
  • Mass market awareness: the good thing about IoT is that we don’t have to wait to start getting the benefits of implementing it. What we always thought to be impossible to accomplish before is now limited by our imagination. We’re seeing what it can do, and we are demanding for even more. Who knows? Perhaps those episodes of Star Trek are not to far to be real.

6 Things that are making Windows 10 great

Microsoft has finally managed to get their ship on track. By the time of writing this post, Windows is now being used on over 110 million machine all over the world, mind you that this number counts only the activated machines that is currently being used by people, it does not include machines that has Windows 10 preinstalled and ready to be sold. This is a very impressive number to think about, considering that Windows 10 was released in the 29th July, 2015, two and a half months ago.

Windows 10

So what are the things that made Windows 10 this successful and managed to grab the attention of 110 customer? here is my personal take on this matter:

  1. The return of the Start Menu: they say “you never know what you’ve got till it’s gone”, the start menu was spot on example for this, as the well missed feature was horribly removed from Windows 8/8.1 and replaced with what is known by the Modern UI, the Modern UI was Microsoft’s failed mission to bring the tablet/phone experience to the desktop, This created panic and fear for those who are genetically programmed to know that all your computer files and programs are right under this little icon on the bottom left side of the desktop. With Windows 10, someone thought that it would be a good idea to bring the start menu back to its original roots with a twist from the Modern UI formula, and you know what? it worked perfectly.
  2. The 1 year upgrade offer: the keyword here is “free”, who doesn’t like free? it was one of the smartest moves Microsoft did by offering Windows 10 free for those who have a valid license for Windows 7, 8 and 8.1 Professional and Home edition, they managed to create a hype for the upgrade by asking users to reserve their right to get and install Windows 10 before it was released, they even coated this great offer with a time limit of a full year, giving the people the freedom of deciding when to upgrade.
  3. The easy upgrade experience: speaking from experience, upgrading Windows from older version was never a successful task, installing a new OS always meant a fresh clean format for the entire data on my hard disk, but with Windows 10, I have managed to upgrade over 80 different machines from Windows 8.1 that have different hardware/software, and it worked perfectly after the first boot, all the data and settings are preserved, it was never that easy before.
  4. Compatibility and Drivers: building on top of the previous point, installing a new OS always meant waiting for the companies that sell hardware to release drivers for their hardware that would allow you to run and use the hardware you have.  Guess what, Windows 10 is compatible with Windows 8.1 drivers, meaning that your hardware is most likely ready to rock on with Windows 10, not only the drivers are compatible, but almost all programs and software you use are ready to be used on Windows 10 too.
  5. Performance and stability: for a relatively new OS, Windows 10 is blazing fast, and stable too, not that Windows 8.1 had any trouble in that department, but the idea that you get to upgrade to a new OS that does everything better without trade off in performance is a great bonus, especially for those who like to delay their upgrade cycle for some time until all the problems in the OS are ironed out.
  6. Windows as a Service: Windows 10 will be the last iteration of Windows to be released, but don’t panic, Microsoft created three different branches of Windows 10 that meets the needs of customers and enterprises. Beside the security batches and fixes, Microsoft will be always updating the OS with new features at no cost on regular intervals as long as your hardware support it. This might cause problems to enterprise customers who would like to take control of their features update cycle, for those Microsoft has created a special edition of Windows 10 called Current branch for Business (CBB) that give administrators the option to delay the updates up to 90 days until the updates are verified compatible with the existing business, if 90 days are not enough, Long Term Servicing Branch (LTSB) provides long term support for mission critical systems and allows administrators to opt out of the new features but keep receiving only security updates up to 5 years.

IaaS vs PaaS vs SaaS

I have been working a lot with Microsoft Azure Cloud Computing Platform and Office 365 for Business, Microsoft has worked very well in providing the IT masses with the a robust enterprise-grade platform to run your cloud services on. I believe that everyone and everything should be heading the cloud, and if you or your business are starting to consider the move, then it is important that you understand the available types of cloud computing, and how you can benefit from using each one of them, this does not only apply to Microsoft Azure, but to all other cloud computing providers out there.

There are three different types for cloud computing, those are Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS)

IaaS vs PaaS vs SaaS

IaaS vs PaaS vs SaaS

Infrastructure as a Service: the most advanced type of the cloud, you get a total control of your environment, but unlike a local data-center where you have to manage everything your self, the IaaS takes off the burden of buying and running your own Networking hardware (such as switches and routers), Storage devices (such as NAS, SAN and backup solutions), Servers (insert any brand like Dell, HP and type like Blade and server technology like clusters, RAID controllers, UPSs) and Virtualization, which is considered the heart of cloud computing, your building blocks in this type are virtual servers with your own OS hosted on them, virtual storage and networks devices. This type makes sense if you are an IT Professional and would like to extend, move or build a new data-center infrastructure and have a control on the type of Virtual Machines that you would use to run your application and services on, without investing on the hardware side of the data-center. An example for this module would be Microsoft Azure and Amazon Web Services.

Platform as a Service: in addition to the layers mentioned in the IaaS module, PaaS takes of the burden of configuring and running the Operating System VMs (such as Linux or Windows “duh!”), the Middleware (HAL, device drivers and virtualization processes) and Runtime (library, framework, or platform that an application code runs on such as .Net, C and C++), what you’re left with is a place where you can develop your own software and applications and make them run on the cloud using PaaS services, the provider will take care of running the infrastructure where your application is hosted while giving you a limited control of that environment using a self-service portal. This module makes sense if you’re a Software Developer and just want to focus on lunching your application or services to the masses without worrying too much about the technology running your application, making you focus your time and efforts on improving and optimizing the application and saving you time on the operational cost of the infrastructure, an example for this module would be Azure Web Apps.

Software as a Service: the most used type of all modules and by far the biggest market available. With this module, the cloud providers will take care of all the computing layers in a IaaS and a PaaS deployment, and will also include the Data and Application layers, which is web application that you use on your computer using a web browser without the need to install any software on your computer to make the application run, the providers will take care of all the application life cycle such as updating, backing up, securing, upgrading to new version and if needed, restore your data in case of disasters, what you’re left with is access to online applications that are secure and available to you from any where at any time. This module makes sense if you like to run a business and have the lowest possible operations time and investment on software and hardware, a great example for this layer would be Microsoft Office 365 and Google Apps for Business.

Cloud Computing? Anyone?

It’s impossible to talk about IT and not hear the word “Cloud” being mentioned these days, and this is happening for a very good reason, everything is going cloud computing these days, but hey, what does the cloud computing really means? let me try to explain what that is.

From an end users prospective, the cloud is the visible mass of liquid in the sky, in rare occasions they might say that it is something IT related, but from an IT professionals prospective, it’s the ability to offload their IT problems to someone else on the internet, problems such as building an infrastructure, buying server hardware, purchasing software licenses, applying batches and taking regular backups of their systems and many other things. Instead of doing all that, IT professionals will rent “Resources” on the internet to host their systems on without worrying about all the problems we just mentioned, or worrying about how these resources are running and maintained, where is it running or by whom, they will only pay for the resources they are using just like paying for any other utility bill like water or electricity.

Pay special attention to the word “Resources” here as I’ll use it later on to explain different types of cloud computing services in later posts.

This is a down to earth answer that simplifies the idea and possibilities of using the cloud, once you get the idea around your head, you should be able to tell what are the pros and cons of using cloud computing with your business, let me summarize that down for you.

Pros and Cons