Win8 Tips and tricks–Copy large files using Robocopy and offloading data transfers
File cache and the way how Windows (especially since Vista\2008) is using it can be a real science – and while it’s extremely interesting topic, I don’t want to dig deep into it in this blog post. Hopefully, I will create one dedicated blog post that will focus only on file cache and how it behaves.
To make long story short – there is difference between “Free” and “Available” memory. When memory is not required by any application, Windows will use this available memory for caching (“Free memory is bad memory”).
I really like to use built-in Resource Monitor (“Memory” tab) and RAMMap for digging deeper into memory usage.
The problem with Robocopy (historically) was the fact that all copy operations were buffered. This blog post from MSDN summarizes the issue and recommends ESEUTIL as a tool to copy large files (.VHD for example).
New Robocopy that is included in Windows 8\Windows Server 2012 changed this by adding new switch “/J”:
/J :: copy using unbuffered I/O (recommended for large files).
So if you’re copying large files over the network, you definitely want to use this switch.
New Windows also introduced concept of Offloaded data transfers (ODX) – you can find description here. ODX is actually very cool technology and is used by default, but if you would like to disable it (for whatever reason), there is new switch that allows you to do so:
/NOOFFLOAD :: copy files without using the Windows Copy Offload mechanism
Martin Zugec
Win8 Tips and tricks–Battery report
It’s almost one year when I wrote my article “Windows 8… The cloud era?” – and Windows 8 was finally released and met many of my expectations (including my rant about Live ID).
Now, I would like to start with small tips and tricks and minor changes to Windows 8. The BIG changes (like new Start) are nice, but you can find tons of articles and posts about them, so I will try to be the first one to show you few minor (yet interesting) changes in Windows 8.
If you think you know everything about Windows 8, these series of posts are for you. If you want to get an overview of the biggest changes in new OS, then you should look somewhere else.
This first post is going to be about small extension of PowerCfg command line tool. New option /BATTERYREPORT was added.
Battery report is actually quite interesting if you want to understand how your battery behaves, how long it will last and what is actually happening.
To use it, simple run command line “powercfg /BatteryReport /Output <Path_To_html_File>
Attached below is example of my report (notice the Connected Standby – shame my laptop doesn’t support this cool feature, I will have to wait for my WindowsRT tablet):
| COMPUTER NAME | DEVNB |
| SYSTEM PRODUCT NAME | Hewlett-Packard HP EliteBook 8540p (WD921EA) |
| BIOS | 68CVD Ver. F.0F 03/09/2011 |
| OS BUILD | 9200 |
| PLATFORM ROLE | Mobile |
| CONNECTED STANDBY | Not supported |
| REPORT TIME | 2012-08-26 14:19:03 |
Installed batteries
| BATTERY 1 | |
| NAME | Primary |
| MANUFACTURER | Hewlett-Packard |
| SERIAL NUMBER | 00187 2010/02/08 |
| CHEMISTRY | LIon |
| DESIGN CAPACITY | 56,650 mWh |
| FULL CHARGE CAPACITY | 56,650 mWh |
| CYCLE COUNT | - |
Recent usage
| START TIME | STATE | SOURCE | CAPACITY REMAINING | |
| 2012-08-23 14:40:33 | Active | AC | 96 % | 54,605 mWh |
| 17:29:47 | Active | Battery | 100 % | 56,851 mWh |
| 17:48:43 | Active | AC | 84 % | 47,894 mWh |
| 17:50:42 | Active | Battery | 87 % | 49,018 mWh |
| 18:01:26 | Active | AC | 75 % | 42,667 mWh |
| 20:50:19 | Suspended | 100 % | 56,592 mWh | |
| 21:01:20 | Active | AC | 100 % | 56,592 mWh |
| 21:08:09 | Active | Battery | 100 % | 56,750 mWh |
| 21:12:25 | Suspended | 96 % | 54,691 mWh | |
| 2012-08-24 11:56:26 | Active | Battery | 91 % | 51,710 mWh |
| 12:47:00 | Suspended | 44 % | 25,186 mWh | |
| 12:47:58 | Active | Battery | 43 % | 24,307 mWh |
| 13:11:22 | Active | AC | 18 % | 10,368 mWh |
| 14:53:45 | Suspended | 99 % | 56,016 mWh | |
| 20:24:51 | Active | AC | 100 % | 56,592 mWh |
| 20:24:51 | Suspended | 100 % | 56,592 mWh | |
| 20:25:26 | Active | AC | 100 % | 56,592 mWh |
| 21:28:41 | Suspended | 100 % | 56,592 mWh | |
| 2012-08-25 10:52:10 | Active | Battery | 98 % | 55,829 mWh |
| 11:00:07 | Suspended | 90 % | 51,307 mWh | |
| 11:28:02 | Active | Battery | 89 % | 50,674 mWh |
| 11:47:55 | Active | AC | 70 % | 39,542 mWh |
| 14:40:41 | Suspended | 100 % | 56,822 mWh | |
| 15:22:34 | Active | AC | 100 % | 56,822 mWh |
| 19:41:24 | Suspended | 100 % | 56,822 mWh | |
| 20:36:06 | Active | AC | 100 % | 56,822 mWh |
| 21:06:41 | Active | Battery | 100 % | 56,822 mWh |
| 21:23:31 | Suspended | 85 % | 48,226 mWh | |
| 2012-08-26 09:22:04 | Active | Battery | 82 % | 46,426 mWh |
| 09:22:04 | Suspended | 82 % | 46,426 mWh | |
| 09:22:39 | Active | AC | 82 % | 46,426 mWh |
| 10:57:44 | Active | Battery | 100 % | 56,837 mWh |
| 11:53:49 | Suspended | 47 % | 26,698 mWh | |
| 11:54:47 | Active | Battery | 46 % | 26,222 mWh |
| 11:56:00 | Suspended | 44 % | 25,214 mWh | |
| 11:57:57 | Active | Battery | 43 % | 24,163 mWh |
| 12:00:04 | Suspended | 40 % | 22,738 mWh | |
| 12:06:48 | Active | AC | 40 % | 22,594 mWh |
| 12:58:00 | Suspended | 93 % | 52,747 mWh | |
| 13:57:00 | Active | AC | 100 % | 56,650 mWh |
| 14:18:00 | Report generated | AC | 100 % | 56,650 mWh |
Battery usage
| START TIME | STATE | DURATION | ENERGY DRAINED | |
| 2012-08-23 17:29:47 | Active | 0:18:56 | 16 % | 8,957 mWh |
| 17:50:42 | Active | 0:10:44 | 11 % | 6,351 mWh |
| 21:08:09 | Active | 0:04:16 | 4 % | 2,059 mWh |
| 2012-08-24 11:56:26 | Active | 0:50:34 | 47 % | 26,524 mWh |
| 12:47:58 | Active | 0:23:24 | 25 % | 13,939 mWh |
| 2012-08-25 10:52:10 | Active | 0:07:57 | 8 % | 4,522 mWh |
| 11:28:02 | Active | 0:19:53 | 20 % | 11,132 mWh |
| 21:06:41 | Active | 0:16:50 | 15 % | 8,596 mWh |
| 2012-08-26 09:22:04 | Active | 0:00:00 | - | - |
| 10:57:44 | Active | 0:56:05 | 53 % | 30,139 mWh |
| 11:54:47 | Active | 0:01:13 | 2 % | 1,008 mWh |
| 11:57:57 | Active | 0:02:07 | 3 % | 1,425 mWh |
Usage history
| BATTERY DURATION | AC DURATION | |||||
| PERIOD | ACTIVE | CONNECTED STANDBY | ACTIVE | CONNECTED STANDBY | ||
| 2012-08-17 | 0:22:56 | - | 0:16:33 | - | ||
| 2012-08-18 | - | - | - | - | ||
| 2012-08-19 | - | - | - | - | ||
| 2012-08-20 | 0:40:21 | - | - | - | ||
| 2012-08-21 | 0:01:13 | - | 0:13:23 | - | ||
| 2012-08-22 | 0:13:30 | - | 1:09:11 | - | ||
| 2012-08-23 | 1:04:03 | - | 1:23:43 | - | ||
| 2012-08-24 | 1:12:31 | - | 2:05:34 | - | ||
| 2012-08-25 | 0:44:37 | - | 6:10:49 | - | ||
Battery capacity history
| PERIOD | FULL CHARGE CAPACITY | DESIGN CAPACITY |
| 2012-08-17 | 56,810 mWh | 56,810 mWh |
| 2012-08-18 | 56,880 mWh | 56,880 mWh |
| 2012-08-19 | 56,880 mWh | 56,880 mWh |
| 2012-08-20 | 56,644 mWh | 56,644 mWh |
| 2012-08-21 | 56,243 mWh | 56,243 mWh |
| 2012-08-22 | 56,712 mWh | 56,712 mWh |
| 2012-08-23 | 56,728 mWh | 56,728 mWh |
| 2012-08-24 | 56,671 mWh | 56,671 mWh |
| 2012-08-25 | 56,713 mWh | 56,713 mWh |
Battery life estimates
| AT FULL CHARGE | AT DESIGN CAPACITY | ||||
| PERIOD | ACTIVE | CONNECTED STANDBY | ACTIVE | CONNECTED STANDBY | |
| 2012-08-17 | 1:38:52 | - | 1:38:52 | - | |
| 2012-08-18 | - | - | - | - | |
| 2012-08-19 | - | - | - | - | |
| 2012-08-20 | 1:36:21 | - | 1:36:21 | - | |
| 2012-08-21 | 2:08:23 | - | 2:08:23 | - | |
| 2012-08-22 | 1:52:52 | - | 1:52:52 | - | |
| 2012-08-23 | 1:40:53 | - | 1:40:53 | - | |
| 2012-08-24 | 1:44:02 | - | 1:44:02 | - | |
| 2012-08-25 | 1:44:20 | - | 1:44:20 | - | |
| Since OS install | 1:41:58 | - | 1:41:58 | - |
Martin
Dear Microsoft (and your personal cloud strategy decision maker)
I understand what you are trying to achieve with your Windows Phone and Windows 8 (especially Windows RT strategy). The trend that we can see in the recent years (and many people don’t realize it yet) is that both you, Apple and Google are trying to finally push personal cloud strategy.
I agree with you that this is PC+ (or Post-PC) era instead of cloud era.
The difference as I see it is an emerging trend of having multiple devices that are easy to manage – I wrote about it in my article Windows 8… The cloud era?
The important part (and I didn’t stress this fact enough in my previous article) is that all of you (Microsoft, Google and Apple) are trying to act as an aggregator between the end user and their services (because none of you can fully satisfy everyone of course). The center of my life is Live ID (or Apple ID or Google ID), I connect all services to this ID and then I connect my devices to this ID.
The business model is very simple – once I will have enough devices and services\applications connected to this ID, it will be very hard for me to change my “provider”. Also, you can get small revenue from each of the services that are being aggregated by you (marketplace, Xbox Live…).
I expect that this approach is definitely the future of the computing – and I’ve been trying to use it this way for many years, so I’m really glad that now I can get rid of most of my proprietor utilities and scripts and finally use built-in functionality.
I prefer your approach here – your aggregation strategy is more advanced than the ones your competitors can offer at the moment. But still, you are not very successful – why is that? I can try to give you few ideas.
I want to use my Live ID for my life
Yes, I’m one of those customers you can dream of – I simply want to create single entity and use it for the rest of my life. But you make it really, really hard for me.
Now, something new for people from US – the rest of world is divided to smaller countries. Some countries are actually so small, that you can move 100km in one direction and end in another country. Also, with the recent (and upcoming) crisis in Europe, it’s more common that people will decide to move to another country to get better life.
Dear Microsoft,
If I move to another country, please allow me to take my Live ID with me. Right now, there is no option to simply change the country of residence. And guess what? I cannot use my old ID, because some services (for example Xbox Live) will simply refuse to work (your ID belongs to different country than your actual location based on IP address).
Dear Microsoft – US is not the only country in the world and you should ALWAYS keep that in mind. I’ve changed my residency twice during the last 10 years. I don’t want to throw away all my pictures, documents, games I’ve bought… Can you imagine that you will need to create brand new ID, buy all your games again, move all your documents and notify all your friends if you would move from Connecticut to New Jersey? Don’t think so…
Every time to tell me to create new ID, I start thinking if the new ID should be from Microsoft, or rather from Apple\Google. If I choose to try Google this time, believe me, it will be very hard for you to convince me to trust you again.
You want to get our money – we don’t want to give it away
These are basics of economy – you want to get my money, I don’t want to give it away, until you offer something that I really want. The important lesson to learn here is – make it easy for me to give you my money.
Right now, credit card needs to be the same as Live ID location – and your physical address needs to be the same as your Live ID location (which cannot be changed) and the country where credit card was issued from.
Do you see the point? I’ve tried to buy some games recently from Xbox Live – ah, my credit card was not accepted, since my region was US and my credit card was issued in Czech republic.
I’ve created new Live ID and moved to UAE after 6 months – and guess what? My Live ID (CZ) and credit card (CZ) are not accepted, since my IP is from UAE… And of course I cannot add my UAE credit card, since it wouldn’t match with Live ID location…
I can create NEW Live ID again, or I could buy a Playstation 3 – guess what I did?
Dear Microsoft,
If you want to get my money, I understand. But make it easy for me to pay – if the process is complicated for me, I will rather give my money to someone else.
If you agree with me, please vote here - and even if it doesn’t affect you directly – think, would you want to create new Live ID if you would relocate one day in the future?
Martin Zugec
Applications, tools and utilities–the ones that I love
Using actively new different laptops and desktops can be tremendous task – after a while, you will realize that there are many tools and applications that you install and never actually use. 2 years ago I’ve bought my first SSD disk (and the only one so far – another one is on the shopping list only).
While it was great boost in performance, the limited disk spaces (70GB for Windows 7) forced me to really think which tools do I really need to use. And every now and then I change this list – so I’ve decided to write a quick summary of the tools I love and use on all my machines, maybe it will help someone.
I will skip the obvious ones, like .NET Framework or Microsoft Office – I don’t expect it will be useful information for my readers.
Windows Live
I consider Windows Live to be the most important application on my system. There are two particular applications that I cannot live without – Windows Live Writer (I’m using it right now) and especially Windows Live Mesh. I use Mesh on all my computers and it’s the only way how I can keep it organized.
I don’t need to remember where did I store which document, since everything is automatically synchronized. I use Live Mesh not only for storing my documents, but also to store most of my applications (HINT – they are automatically synchronized across all of my computers). Some of them doesn’t need any applications (like Sysinternals utilities) and I’m using Citrix Streaming Profiler (not free) or Cameyo (free) for the rest of them.
Simply isolate your applications, place them to the folder that is being synchronized by Live Mesh and job well done.
I also use customized profile solution to synchronize the setting of few applications that I’ve got installed locally. These applications settings are also synchronized using one folder in Live Mesh.
Google Chrome
I love Google Chrome – and I was a die hard fan of Internet Explorer before. It’s small, fast, got a lot of extensions, but there is one particular feature that I love to use – cloud synchronization.
If you enable it, Chrome will automatically synchronize all your computers – and we are not talking only about the bookmarks, but also about the extensions, configuration etc…
Gizmo Drive
Do you remember Daemon Tools? When Windows Vista beta came out, Daemon Tools didn’t work. That’s when I’ve discovered this small perk. Gizmo Drive is free, fast and reliable and doesn’t only allow you to map virtual disks into a virtual drives. It can do much more – provide customized launch menus (with global keyboard shortcuts) or burn images.
Jing
As a consultant, I often need to take a screenshot and make few small modifications (add some text, highlight some area etc.). As a husband (and IT pro), I often have to explain to my wife how to do something. Jing is really great replacement of built-in snipping tool – free, easy to use and supports one-click sharing.
Instead of writing extensive email, I often just open Jing, start recording, at the end click on upload (and the link is automatically copied to your clipboard afterwards, nice touch) and simply send the link instead of instructions. Oh, did I mention it’s free?
LastPass
Another must have tool for me – password manager that got central synchronization. I’ve decided few years ago that I don’t want to use few rotating passwords and instead of trusting hundreds of anonymous sites, I will choose one that deserves my trust. That’s when I’ve discovered LastPass – easy to use password manager, free of charge (but I recommend you to get PRO version – it costs only $1 per month), centrally synchronize with support of almost every device out there.
Meebo Notifier
Meebo is a well know web-based multi-IM client. It’s quite simple to use – you register, add all your IM identities (few different GTalk accounts, Messenger, ICQ, Facebook) and you can use all of them from a single webpage. Meebo Notifier is a small application that resides in your systray and notifies you when there is new message waiting for you.
XML Notepad 2007
Simple and fully functional XML editor – if you need to read or edit XML files (but it’s not your core business), XML Notepad 2007 from Microsoft is the way to go.
PDF X-Change Viewer
Annoyed by the fact that Adobe Acrobat was getting worse and worse, I’ve discovered PDF X-Change Viewer. Simple, small, free, very fast and lightweight – even the Outlook preview works as expected. If you are looking for an Acrobat Reader replacement, search no more.
PowerGUI
If you’re writing a scripts in Powershell, you probably already know PowerGUI – if you don’t, it’s a must!
MouseWithoutBorders
MouseWithoutBorders let you share your keyboard and mouse between multiple computer – in reality it’s like having multiple computers, where you utilize power of each of them (but don’t have an option to drag&drop windows between them). If you know Synergy or Synergy+, that description probably rings a bell. MouseWithoutBorders got one disadvantage compared to Synergy – it’s not multi platform and supports only Windows.
The advantage? It works (and allows you to share clipboard content also)!
TortoiseSVN
Each developer knows Subversion – and each IT pro should learn how to use it, too… Easy to use versioning for any type of data (as long as they are stored in files) with a nice explorer integration. This tool should be mandatory for every IT professional out there (instead of creating documents like “xxx 1.2.doc” or “myscript.ps1.bak”
SharpKeys
I don’t like using mouse, most of the time I don’t even take it out of my bag – I’m keyboard guy… One of my laptops is Dell Latitude E6410.
This model got one disadvantage (at least for me) – it lacks the context menu key (the key between your right alt and ctrl). SharpKeys fixed this issue for me – it allows you to remap any keys, so I’ve simply remapped my CapsLock with context menu key and happily lived ever after.
Ketarin
It’s easy to build system of your dreams, but it be obsoleted almost instantly – you installed all your favorite apps, but once new version is released (and your application doesn’t support auto update), you need to check it every now and then and update it manually.
Ketarin is very simple to use once you understand it – it allows you to create very simple rules that will automatically tell you when new version of application is available (and download it). There are few different applications on the market that do the same, but there is something special about Ketarin – it doesn’t use any central database, but you create the rules on your own. If you use software that is not very common (like Chrome or Windows Live), this is a blessing.
I cannot imagine managing my desktops without Ketarin.
zetProgressBar 1.1
Good news everyone! After looong (way too long) time I’ve opened Visual Studio today to have a look at a bug reported by Denis.
The bug was pretty obvious and simple to fix, but I’ve decided to completely test all the functionalities and I’ve fixed a lot of bugs – if you’ve tried zetPB before and it was not working as expected, I highly recommend to give it another try.
As a small bonus (and apology for missing documentation), I’ve also added test.cmd to the archive – this is the script I’m using to test all the functionality of new builds. You can see here how to use zetPB properly.
For those of you that are not familiar with zetPB: it happens very often that administrators will create logon scripts in their environment (to manage drive mappings, automate some tasks or map network printers). Users always hates logon scripts – they don’t know what happens, it takes ages until that black box disappears and they will start complaining.
zetPB is aimed to help here – for the end users, actual performance is actually not very important, it’s rather about perceived performance. You can create much better user experience by simply telling your users what is happening. It is similar approach as with todays smartphones – they are not always fast, but since the GUI doesn’t simple freeze and gives you some animation, you’ve got the feeling that it’s damn fast.
At beginning, there were few specific requirements – for example since zetPB was used in multi-user environments (Citrix XenApp\Microsoft RDS), it was supposed to be lightweight (not spawning new process for each update) and it had to support multiple users on the same computer. There were different usage scenarios – for example you may want to use continuous bar (if you don’t know how many steps you want to perform, just want to inform users that something is happening) or you may want to use static bar (if you exactly know how many steps it’s going to take). zetPB was also designed to be universal solution – you can use it with cmd scripts, vbscript, Powershell, any language you want (as long as it can create files).
Few tips and tricks before we start
- When you are creating Message\Success\Error messages, always append text instead of replacing (use “>>” instead of “>” in your script)
- Ideal combination to initialize zetPB is /CloseWithParent:1 and /HideParent:1 – what it does is that it will automatically hide parent process window (ugly cmd box) and automatically close progress bar once your script is finished (it will automatically close when parent process is closed)
- CommandFolder is automatically deleted when zetPB is finished – do not use general folders like %Temp%, instead use %Temp%\PB_%UserName% for example
- zetPB.check file is automatically created when FSW (file system watcher – this is responsible for announcing any new files that are created in your command folder) is initialized – wait for this file when launching zetPB (you can see example in test.cmd)
- You can either use command line arguments when you initialize zetPB, or you can use command folder. Running zetPB with /Title:”My script” is equivalent to creating file “Title.My Script.pb” in command folder
So without any further delay, I would like to invite you to try this new version and please leave a comment if you like it (or if you’ve got any questions).
Cloud computing–don’t ignore SMB segment
Cloud is everywhere around us – everyone is talking about it, everyone wants it and IT professionals are predicting that this is era of the cloud.
I’m big supporter of the cloud computing for many years – there is actually a thin line between cloud computing and grid computing (especially since there were concepts years ago about public and hybrid grid to easily extend your existing infrastructure).
But the biggest problem of cloud computing these days is that it’s still considered to be buzzword – I’ve attended conference 2-3 years ago about cloud computing and it was extremely hard to find anyone that had some real vision about the future of cloud computing.
I would like to offer you my vision of the cloud computing future and potential – maybe you will disagree with what I want to say, maybe you will agree with it, so please share your comments, I’ll be looking forward to any discussions.
In the first part of this series of articles, I would like to focus on something that troubles me last few years and I think that’s the reason why we only talk about cloud computing and are not really able to make the big step forward.
There are many different definitions of cloud computing, but for me personally the most important part of any definition needs to be consumption of service – I’ve seen many companies that were talking about cloud computing, but what they actually were looking for was hosting. Instead of focusing on service description, they rather discussed technical details, used architecture etc. Let me give you one vision of the potential cloud computing customer.
Peter decided to start his own company – he wants to produce fertilizers, which is something he always enjoyed and really liked (please don’t elaborate, I had to choose something). He understands the basics of using computer – he knows where the power button is, he knows left click, right click and few other useful tricks. Peter discussed with few friends and colleagues, for starts he would like to have 3 employees and expand later on. He visits webpage of his current mobile provider and clicked on button to create new company registration. He filled very simple form – his contact details (as owner), company name (he also added domain name he would like to use and checked that he wants to register this domain and create mailboxes for all his employees), he added few packages to his basket (virtual desktops for his users, some additional software like accounting) and in few minutes he’s got everything ready. Now he just created user accounts for his employees (they will automatically get an email to access their virtual desktops with all assigned applications) and used special offer to get basic webpage customizations free of charge. After few hours, Peter is ready to go – all he needs to focus on is his own business.
How this scenario sounds to you, does it make sense?
Now we can talk about what’s wrong with current cloud computing and why this kind of service is not very common. The problem is that Peter never heard of cloud computing and he doesn’t really care what it is – all he needs is to get some basic functionality as a service, without paying any attention to details. What he wants is SaaS + DaaS combination of offerings.
If you have a look at typical representative of any cloud-related discussion, you will typically see either enterprise customer or enterprise focused vendor. Enterprise customers are not really comfortable with consuming services – they want to be in control, they want to know how it works, they want to get customized solution, they will tell you how they work and they expect you will be flexible enough to work the same way. For vendors, you need to offer what enterprise customer wants – and that’s usually just leasing of computing power. That’s why most of the discussions about cloud computing are focused on IaaS type offerings.
Cloud computing is actually right here, right now – but the successful implementations are focused on the end users and small\medium business rather than enterprise. For example we can mention consumer oriented services (like Gmail, Facebook or even better, Zynga) or SMB oriented offerings (Google Apps or Office365). It’s always important to double-check the facts to confirm your opinion – in this case we can mention that the fastest growing offering from Microsoft is Office365 and more than 90% of the customers are companies with less than 50 employees.
I’m not saying that there is no room for IaaS offerings (definitely not – just have a look at how successful is Amazon). I’m just saying that SaaS\DaaS focused on the end users could potentially be more successful business than IaaS focused on enterprises. These two offerings are different though – for example ideal provider of SaaS\DaaS is company that already knows how to communicate with the end customers and SMB segment (as mentioned in my example above, for example telecom companies).
If you want to be successful with offering your cloud services, do not focus only on the enterprise customers – they are not ready yet (most of them). Focus your attention on SMB segment – and invest into enterprise business once they are ready to move on. There is a chance that you will attract 100 customers with 10 employees rather than single customer with 1000 employees.
If you focus on enterprise only, it will require a lot of effort and investments to be successful.
Martin
In my next article about cloud computing, I would like to talk a bit about the importance of resellers and finding proper business case for cloud computing – stay tuned and let me know if this topic is interesting for you.
Microsoft Future Vision
What’s the best way to determine if one company is visionary or not? Well, I always like to look how they were doing in the past.
Good example is Microsoft – I always like to watch all MS future visions and there is one reason behind – it’s not just a vision, it can tell you a lot about Microsoft roadmap.
To start this discussion, I recommend you to watch below video from 2005 (vision of 2010):
And now think if it’s unrealistic or not… Of course ignore the clothes ![]()
Online collaboration, smartphones, tablets, mobile connectivity, cross-platform communication, virtual office, VOIP? And now just have a look around you and think how close this is to reality you can see around you today.
What is very interesting is the amount of details – for example notice the roundtable camera – even the design is very similar to reality. You can also see a lot of bits that are used in Lync.
Well, it gets interesting if you have a look at the future vision 2019:
And don’t forget to check all the technologies that has been licensed by Microsoft. For example this “dual module portable device” – doesn’t it remind you of something?

Microsoft patent no. 20100240390
You can find few other patents that are very similar to the technologies described in Microsoft Vision 2019. I really enjoyed this video and I was rather surprised when they released a new version few days ago – well, I was surprised until I started searching for active Microsoft Research projects.
Second Microsoft Vision video
Did you enjoy it? Now, interesting question is how close this is to reality? Many people are saying that it’s far from reality. The problem as I see it is that we like to put such visions into todays realities (and technical limitations).
Let me give you my vision just for the moment – the biggest enemy of mobile devices (which are getting more and more popular) are two factors – the output is limited by the fact that different devices got different computing power (of course the slower device, the less powerful it is) and small screens. In the future, I would expect to see the acceptance of cloud computing (no buzzwords – in this case I am referring to the fact that processing can be done somewhere else and the end point device can just display the output) – this way we could solve the issue of using different devices with different processing power (your end device would be used just to display, not to process).
Second important change would be the introduction of intelligent projectors – that way I could read my electronic newspaper, but also use big screens (or any wall in fact). This intelligent projector could not only display the data, but you could also interact with it to manipulate the data.
Once I realized that these are prerequisites, it was pretty easy to find a trails of Microsoft working on this. The best example I could find was released almost the same day as above video:
Early prototypes?
Microsoft first step into this field is on the market already – Kinect was a great start – and don’t forget, we should get “Kinect for Business” in 2012 ![]()
Martin Zugec
Powershell and fixing the common issues
Ufff, it’s been for few years when I wanted to write a blog post about scripting frameworks and I am still not sure how I could easily explained it to someone who doesn’t have first hand experience with using it… Anyway, I will try to clear my way with this blog post.
To quickly summarize – scripting framework is something that takes responsibility and complexity from writer of the script and moves it to creator of framework. Ideally (and usually) it’s also hidden behind some kind of easy to use GUI – so you will end up with framework that is initially quite hard to create, much easier to extend and very easy to use (I wrote about it recently).
You are probably not aware of that, but most of the end users are using scripting frameworks on regular basis – the reason is quite simple, the troubleshooting platform is fully based on Powershell scripts. Don’t believe me? Simply browse to %WinDir%\diagnostics\system and see for yourself – these scripts are used for troubleshooting.
Windows Troubleshooting Platform is very easy to use – simply select the problem you are experiences and get some automated remediation. But did you know that you can easily extend it and even write your own troubleshooting packs?
Not only the execution of your troubleshooting steps will get nice GUI out of the box, but there is even designer that can help you to create new troubleshooting pack. This Windows Troubleshooting Pack Designer is part of freely available Windows 7 SDK (download here). After download & install, you will get new entry in your start menu.
In following example, I will try to create very simple troubleshooting pack that will simply empty my recycle bin. I want to check recycle bin, in case there are more than 0 items I want to ask use if he wants to apply my “fix” and empty recycle bin or not.
1.) I will create new troubleshooting pack called “Not enough space”
2.) New troubleshooting pack was created
3.) Now I will need to add first “root cause” to it – this is going to be recycle bin. Each root cause needs to have unique root cause ID, usually identified by prefix
4.) Each root cause consists of (at least) two parts – Troubleshooter and Resolver. Troubleshooter detects a particular issue and Resolver helps you to solve this issue – as you will see later, you can use same Troubleshooter later on to check if your problem was solved. Third component is Verifier – this one detects if Resolver was able to successfully fix the issue – most of the type Verifier and Troubleshooter is the same script.
5.) Now I am creating Resolver. Resolver script is automatically launched when Troubleshooter confirms that root cause was detected.
6.) Now I need to configure last part – Verifier. I can use the Troubleshooter script to verify that the issue was solved.
So far it’s very easy – you need to understand three components and the setup is pretty much straightforward. Now we are getting to more complicated part – writing scripts themselves. But no need to worry – even for scripting part, framework will make your life easier.
All the required scripts are automatically created for you and prefilled with required commands.
Below you can find DEFAULT script that will open – notice the script name and the fact that it’s already prefilled:
I will add few lines of code to detect if there are any items in Recycle Bin – as you can see, nothing too complicated.
And that’s it – I’ve just finished writing my Troubleshooter and Verifier (same code) with few lines of code. So I can detect the problem, now I need to fix it – simply empty the recycle bin.
And that’s it! Now I can simply run my new troubleshooting pack (Build –> Run or simply press F5) and I will get very familiar experience:
Martin Zugec
Windows 8… The cloud era?
My daily job as a consultant\architect is to follow the trends and analyze them – to put it simple, understand where we were few trends, where we are heading now, what it means and what would be the logical next step. Then just imagine the path to get there and identify all critical milestones and tasks ahead of us.
I usually keep my thoughts for myself, but I made decision some time ago that I need to break this habit and start explaining why I think that X will happen in Y months and it will lead to Z – and this is my first tribute to this resolution.
The best trend analysis is usually the one that doesn’t say anything new, it just puts together all the things that “everyone knows, but don’t talk about” – that means that your predictions makes sense and people can imagine they will fulfill sooner or later.
Right here, right now…
To understand what’s the future of Windows desktop, we have to look in the past and think for a while how computers changed our daily lives.. When Windows started to emerge and found it’s way to regular households, it was very common that one PC was shared by different people – typical family had only one PC.
Years later, PC became commodity and as result, we have seen the trend that there were more than single PC in a typical family – the wide spread of portable and cheap laptops allows this change, especially since laptop didn’t require as much space as typical desktop and you could easily have multiple laptops at you home, each one personalized for each household member.
Last two years we have seen big boom of new devices – it all started by iPhone and now we can three major device types – smartphone, tablet and regular laptop. Because we are talking about trends, please forget about your favorite brand – the fact that iPad is the most successful tablet at the market doesn’t mean that it’s the only one (and definitely doesn’t mean that it will stay number one in the future). When thinking about the trends, we need to find general rules.
Why is this trend important? Because what we can see is that multiple computing devices are being used by single person for different reasons. We are no longer limited to single device per user and this brings new challenges.
For example I am using desktop\laptop for creating content, tablet for consuming content and smartphone for getting notifications.
A picture is worth a thousand words:
Citrix vision of form-factors co-existence
The fact that you are using more devices than few years ago also means that management and maintenance of these devices needs to change – you can no longer afford to spend hours updating and configuring each one of them, you simply want to connect them to your “personal cloud” and start working immediately with your favorite applications and working environment you are familiar with.
This will be definitely one of the most important industry trends that Microsoft will need to face with upcoming Windows 8. Devices will change to simple cloud plug-n-play extensions.
If you will need to spend 3x more time on configuration, maintenance, updates, then you won’t be able to productively use multiple devices. As a result – you will either stay with single preferred device, or you will switch to a vendor that understands this trend and is prepared to offer you this new type of work style.
Personal cloud
I wrote about personal cloud many times before – in fact I presented a session called “Personal Cloud” more than 2 years ago. This session was mostly explaining that we are not going to “jump” to the cloud from one day to another, but we are rather going to see a change in our mind sets – we will still use the local processing power (of laptop\tablet\smartphone), but we will use internet (“the cloud”) as a central synchronization point and our end-point devices will just store local cache and process the data.
I was talking about Live Mesh\DropBox, contact unification platforms, cloud storages, Facebook… If I have a look at this presentation today, I think that we are really getting there. One of the topics I was talking about was roaming configuration (the way how Google Chrome works today).
If I buy a new device, I want to connect it to my “cloud” and get access to all my data immediately. I want to have access to same data from all of my devices and I want to minimize the amount of work required when I replace one of my devices.
There is a problem however. Applications are ready for the cloud.
You cannot simplify management with current Windows ecosystem – the foundation was created more than 20 years ago. Even though regular folks believe it’s possible, you cannot simply make a huge changes from one day to another and current Windows ecosystem is extremely huge and complex, with incredible number of dependencies. What you can do however is to introduce new platform side-by-side with existing one – that’s what Microsoft did years ago when they introduced .NET Framework. I think it’s time to do similar change now – with a platform that will be prepared for cloud based future.
The real challenge for Microsoft is not to change itself – the real change is to change all vendors, independent software developers and partners. You can spend ages on education, or you can introduce new platform with strict rules to follow. This requires of course clear vision and very disciplined execution. We want system that simply works – even if we will have to pay with restrictions and lock-downs (why is Apple successful and Linux is not?).
For the end-users, this will mean few changes – marketplace will be integral part of operating system (at this moment it was already officially announced by Microsoft, but I’ve been thinking about this for a while already), applications will be layered (operating system will be isolated from applications, configuration will be separate from application installation, user data will also represent separate layer). This approach is much more similar to smartphone architecture, therefore Microsoft will be able to use same platform and applications on different form factors. The important part is to de-couple applications from their configuration and data themselves, so you would need to have at least 3 different layers.
Operating systems is just used to execute the applications and applications are just used to manipulate with data. First layer is installed on device itself (application), second layer (configuration) is stored on device, but synchronized through the internet and third layer (data) is stored in the cloud (and potentially locally cached).
In ideal case, you can achieve this through the end-users – create something they like and they will slowly force developers to change their products. Similar change was introduction of UAC in Windows Vista – hated by most of the population, it was necessary and painful change. It’s not annoying (well, mostly) anymore – not because UAC changed in any way, but mostly because vendors changed their products based on complains from end users.
Is this end of the Microsoft?
In last few years, there was huge amount of predictions that this is the end of Microsoft. This is the end of PC era, new cloud era is coming! Few days ago, VMware’s CEO Paul Maritz said that in three years, more than 80 percent of the devices connected to the Internet will not be Windows-based personal computers.
I don’t agree with this opinion – but I think we can say following:
In the near future, not only desktops\laptops, but many different form factors will be connected to the Internet. Period. That doesn’t mean that Microsoft is out of game.
That doesn’t say anything about Microsoft, nor about Windows. One of the worst things you can make when analyzing trends is to expect that only your subject will change and the rest of the world will stay as it is today. PC (which usually means desktop\laptop form factor) is not going to die in few months, but will stay with us for years – even if ratio between different form-factors will change, mouse + keyboard will probably be preferred method if you need to create content.
Imagine for example that we will end up with 3 different platforms (iOS, Win* and Android) that will have similar feature sets. As an end user, I will choose my devices based on my needs and familiarity. If my mobile phone is iPhone, my tablet is an iPad, I will probably choose Mac OS as my laptop. If my mobile phone is Windows Phone, my laptop is Windows 8, I will probably choose Windows for my tablet device. Again, I would like to stress the fact that in our hypothetical situation all 3 platforms are equal.
Not long time ago, Microsoft was competitive only on the field of laptop form factor – Windows Mobile was obsolete platform and tablet editions of Windows couldn’t be compared to iPad ease of use.
Is Microsoft ready for this change?
The first sign of Microsoft adapting to this situation was definitely release of Windows Phone platform – while I was really disappointed by huge Microsoft mistakes at launch (in my opinion completely wrong promotion of the product – you can’t afford to not share details about your product if you are trying to enter mature market divided to few big players and expect customers to massively migrate to newcomer – same mistake as HP did with their tablet), one of my first thoughts when I started to use it was – this device is cloud mobile phone, not regular mobile phone.
To explain – when you turn on your Windows Phone for the first time, you will receive few questions – are you using Facebook? Are you using Google? Are you using Exchange?
Next, next, next, finish – then wait for a while, so all your accounts and data are synchronized – and within 20 minutes you can start using it.
You will get different calendars merged into one view – green for my private Google Calendar, blue for my business calendar, pink for my wife’s calendar. Your contacts from different sources are automatically merged together – so if I’ve got my wife at Facebook, Google contacts and Exchange, it’s merged together under one contact. Almost nothing is stored locally on the mobile phone itself – even the photos you take are synchronized to SkyDrive.
My device should plug-n-play to my personal cloud and adapt to it.
When you are saving contact, you no longer decide if you want to save it to your phone or to your SIM card – rather you decide whether it’s private and business contact (and it will be saved to the cloud). If one of your friends changes his mobile phone number, he doesn’t need to send SMS message to his whole contact list – he will simply change it at Facebook\LinkedIn and this change will be distributed to all his friends\colleagues.
Ok, so they started with mobile phone, now what?
As I said, I think that Windows Phone is a great foundation for Microsoft to start with moving users to the cloud – but smartphone is the least important of all form-factors.
At this moment, Microsoft can cover only smartphone and laptop\desktop form-factor – and these two platforms are not very well integrated. Microsoft first take on “tablet” market was 20 years ago with Windows for Pen Computing – even though they were trying really hard, it was never successful (nor were the follow ups like Windows XP Tablet PC Edition or latest Windows Vista\Windows 7). Tablet is different from PC, usage cases are different and Microsoft needs to understand it.
I have been a big fan of tablets for years – still got my 6 years old HP tablet under the table and I recently bough an iPad. I never really liked MS tablets – they were too similar to regular laptops. I am probably the only one that doesn’t really like iPad (even though it’s much better than Microsoft approach) – for me, even though it’s the best choice, it’s still more like a big mobile phone than regular tablet platform.
I am still looking for my ideal tablet – it should be somewhere between smartphone and laptop. This balance is very hard to achieve and it can easily slip to one of these extremes. If new Windows 8 tablets will be comparable with an iPad, then it will be huge success of Microsoft. But it needs to be different from regular Windows OS, otherwise it will fail (again).
Facebook anyone?
Uff, hold on, how does Facebook fits into this discussion? To answer this question, we need to ask ourselves – why is Facebook so successful?
Is it because it’s technically brilliant? Definitely not. Is it because it’s something new? Don’t think so, social networks have been here for years. For me, the reason is that everyone is at Facebook and it doesn’t make sense if you alone would be at brilliant social network – but without any friends.
Which identity is the most spread around the world though? Is it Facebook profile? Google profile? Live ID?
I think that the most common identity is your regular Windows profile you are using daily. Everyone (almost) got it. Everyone is using it.
What Microsoft should do (and there were small hints that they already starting doing it with Windows 7) is to change your Windows profile to your cloud profile. When using Windows Phone, Live ID is required, why can’t it be the same for your desktop?
I would love to use my Live ID to logon to my Windows – to each of my Windows at home in fact. If my identity will be stored online, it would open completely new world.
I could easily synchronize my settings between different workstations – the same way as Google Chrome can synchronize using your profile. I could easily share documents with my wife and friends – using their Live IDs. I could link different profiles together – link online my Live ID with my Google ID with my Facebook ID… The potential is unlimited. This could be the single entity that would link all the topics discussed before together.
Summary
This is much longer post than I originally expected to write, so I will try to summarize my points here:
1.) Microsoft will need to carefully choose which parts of Windows they want to move to cloud and be very disciplined when executing this strategy
2.) Microsoft will need to finally make serious attack on tablet market – similar way as they returned to smartphone market
3.) Microsoft will need to find a way how to push vendors to adapt to this change – guidelines, trainings and best practices are not enough in this case
4.) The real challenge is with applications and the whole Windows ecosystem. Fail here and you will close your door to the future
5.) Windows Phone was a good start – now it’s time to bring Windows and Windows Phone together (ideally with real tablet OS in between)
I am running 5 desktops (+ smartphone + tablet) for few years, these thoughts are based on my experiences with using multiple devices.
Like it? Don’t like it? Leave a comment!
Martin Zugec
My Personal Cloud (part 3-application updates)
In the previous part I was talking about how I handle applications – I mostly prefer xcopy applications (the ones that doesn’t require installation) and I isolate the rest, so I don’t need to install them.
There are always exceptions however that are deeply integrated with the system (or the ones that I don’t want\cannot isolate) – for example Office, PDF viewer, Skype, Windows Live suite and few others…
Something that always annoyed me when I reinstall my computer was the fact that I had to download all the installation sources over and over again – I’ve solved this by using central storage on my home NAS server. So I simply store all my installation sources on NAS and install them from this drive if needed.
It sounds reasonable (and NAS servers are no longer as expensive as they were few years ago), but it brings another problem – my installation sources were getting out of date and it was pretty annoying to install “new” software just to reinstall it with newer version immediately.
I’ve been thinking about it for a while and even wrote a few scripts (using WGET) to automatically download newer versions. I’ve even created more intelligent system that could learn how to get to installation sources (go to site X, click on download, select first link etc…) – but it was never finished and was not definitely useful for average Joe.
Later on, I’ve found tool called Ketarin and I can highly recommend it. Ketarin is a small application which automatically updates setup packages. While there are many utilities like this, Ketarin got one huge advantage – it doesn’t use central database of known applications, but allows you to configure your own rules.
Same applications are very easy to define, the others are more complicated. The easiest are the ones where the download link is always the same – all you need to do is to specify the file location (good example are utilities from Sysinternals).
If version is part of the filename (setup_1.2.3.exe instead of setup.exe), it’s a bit more complicated (but still pretty easy though). The most common method I am using is to parse the webpage and choose the beginning and end of string. 
The red highlighted text is the string you are assigning to variable {version}. All you need to do is to select the text that is BEFORE and AFTER this string.
While this method is probably too complicated for regular end users, power users should be fine with it. You don’t need to understand the HTML content itself, you just need to know what you are looking for.
I’ve also “tweaked” the Ketarin a bit – I’m running it as a schedule task, so all my applications gets updates every 3 days and I created scripts that will automatically report which applications were updated, which updates failed etc…
Of course Ketarin is part of my xcopy installations, so it’s automatically distributed (including the rules) to each of my computers. When I bought a new NAS, all I had to do was to change my storage location and re-run Ketarin – all installation packages were downloaded immediately.
Martin