I recently stumbled on a blog post called Building Faster AMD64 Memset Routines, written by Joe Bialek of the Microsoft Security Response Center (MSRC). The blog describes his efforts to improve the performance of the Windows kernel memset() function, across all sizes of memory to set. The reported optimizations are quite fascinating, and could be summed by avoiding branches even at the cost of doing redundant stores. Basically, stores are free while branches are expensive.Continue reading “Microsoft Windows memset Optimization – Stores are Free”
I have had some annoying problems in recent months with my work laptop refusing to connect to certain WiFi login pages (more technically known as Captive Portals), essentially locking me out of the WiFi in certain places. Here is how I solved it.Continue reading “Failing to See WiFi Login Page [Captive Portal] / Solved”
For some reason, Microsoft has decided to hide some decidedly useful features in Windows 10 explorer behind the non-intuitive and rather unknown “shift-key + right-click” combination.Continue reading “Off-Topic: Windows Explorer Tip: Shift Right-Click”
I recently asked myself the question of just how many Powerpoint files I had on my work laptop and on my home machines. It turns out that it was pretty easy to figure that out using Windows Powershell, with some commands I found on a random website.
Thanks to a tip from “Derek” on a previous blog post about a replay debugger from 1995, I was made aware of the reverse execution ability that was available in the Borland Turbo Debugger version 3.0 from 1992! This is the oldest commercial instance of “reverse” that I have found (so far), and definitely one of the oldest incarnations of the idea overall. Thanks to Google and the Internet, I managed to find a scanned copy of the manual of the product, which provided some additional information. Note that the debugger only does reverse execution, but not reverse debugging since you cannot run in reverse to stop at a breakpoint.
In a previous Intel blog post “Question: Does Software Actually Use New Instruction Sets?” I looked at the kinds of instructions used by few different Linux setups, and how each setup was affected by changing the type of the processor it was running on (comparing Nehalem to Skylake). As a follow-up to that post, I have now done the same for Microsoft* Windows* 10. In the blog post, I take a look at how Windows 10 behaves across processor generations, and how its behavior compares to Ubuntu* 16 (they are actually pretty similar in philosophy).
A blog post from Undo Software informed me that Microsoft has rather quietly released a reverse debugger tool for Windows programs – WinDbg with Time Travel Debug. It is available in the latest preview of WinDbg, as available through the Windows Store, for the most recent Windows 10 versions (Anniversary update or later). According to a CPPcon talk about the tool (Youtube recording of the talk) the technology has a decade-long history internally at Microsoft, but is only now being released to the public after a few years of development. So it is a new old thing 🙂
Skype for Business is an interesting beast. It is a nice little program for internal collaboration, but some of its behaviors are just super-annoying. One my pet peeves is the fact that when you get into a meeting with screen sharing you have a bunch of big heads covering up a sometimes significant chunk of the materials being presented. I finally figured out how to get rid of them. It comes down to the view mode. This little icon in the toolbar:
In my sporadic series of IT fixes that I happen to find, here is another one about how to fix the load behavior of plugins in Outlook.
This is a solution to a problem that I have had myself with plugins for Outlook. I assume it works the same for other office programs. Basically, some plugins, in particular the Skype Meeting/Lync Meeting plugin, would not load when Outlook started and I was forced to manually enable it in the add-ons manager each time. Highly annoying. I managed to fix it by doing a small registry fix.
Now that Windows 10 has been officially out for a while, I decided to give it a try on one of my home machines. I expect that all my Windows 8.1 machines will be updated eventually – it is a free update, after all, and supposedly things should work just as well as in Windows 8.1. Just with a different user interface. Windows 10 is indeed different from Windows 8.1 in fairly significant ways, and it really feels like what would have come after Windows 7 if Windows 8 hadn’t come between. I can see why many or even most people see this as the better upgrade path, even if I lament some of the changes made.
I am using DropBox quite a bit to move files around between various machines (nothing confidential, just stuff that I need to move around and that is a tad on the large side). Today, I hit a very issue where I saved screenshots from a Ubuntu machine and waited for them to show up on a Windows machine. And they never did. Confused, I went to the web interface, and the files were indeed in place there. I could download it from the web interface without an issue. Weird. Other files did sync in the meantime, so just what was going on?
I am using the “Webex productivity tools” at work to quickly schedule and start meetings from within Outlook. It really is a very useful piece of software for those of us that do quite a few Webex conferences each week. However, it came with one annoying side effect: little webex tabs started to appear on select application windows. In particular, on top of Skype windows.
When Microsoft released Windows 8 in 2012, the operating system received an incredible amount of bad press. There were lots of good ideas, but also a lot of bad execution, and some pretty drastic changes to the old familiar way that personal computer desktops had worked since approximately 1995. Most people that voice an opinion about Windows 8 dislike it, whether it be on social media or in person. For some reason, I seem to be one of the few people who really like it. When I just recently got a new laptop at work and it came with old Windows 7, I was actually disappointed. Here is why.
I recently made my first acquaintance with Windows 8, having bought a new Sony ultrabook for the family. Including a touch screen. The combination of the touch-based interface and the phone-like look of Windows 8 even on a PC has led me to think about the (unconscious) expectations that I have come to have on how systems behave and how services are accessed, from how smart phones and tablets have come to work in the past few years. In particular, where are web-based services going?
Apple just released their new iPhone 5s, where the biggest news is really the 64-bit processor core inside the new A7 SoC. Sixty four bits in a phone is a first, and it immediately raises the old question of just what 64 bits gives you. We saw this when AMD launched the Opteron and 64-bit x86 PC computing back in the early 2000’s, and in a less public market the same question was asked as 64-bit MIPS took huge chunks out of the networking processor market in the mid-2000s. It was never questioned in servers, however.
There is a new post at my Wind River blog, about how I ran a Windows file share server (CIFS) on a Simics-simulated VxWorks big-endian Power Architecture target. Something that just should work, given that the software in question is known to work in the real world. But still, pretty cool, and a bit eerie.
Where I work, we use Exchange as our email server and Outlook as the primary client (at least I do). We also have an email quota that I keep bumping into, since I have a tendency to attract many emails with large attachments like image-happy PowerPoint files or binary code modules to patch things. I am also an extreme user of email folders. My main Outlook account contains some 650 folders, and my offline archive of all my old emails reaches towards 1300, with many 100s of thousands of emails for a total of almost 20 GB. So, pretty extreme.
My problem is: what do I do when the email system tells me (and it is serious, I can attest) that I am close to hitting my quota and that soon email will neither be received nor sent? I want to find the folders that are very large and candidates for some archiving. The answer has eluded me for a long time, until I stumbled upon a 2010 Youtube video: http://www.youtube.com/watch?v=3skJOd4GIak, from “tech-informer.com” (which now looks pretty dead). With some modifications, this solved my problem.
It used to be that Microsoft was the big, boring, evil company that nobody felt was very inspiring. Today, with competition from Google and Apple as well as a strong internal research department, Microsoft feels very different. There are really interesting and innovative ideas and paper coming out of Microsoft today. It seems that their investments in research and software engineering are generating very sophisticated software tools (and good software products).
I have recently seen a number of examples of what Microsoft does with the user feedback data they collect from their massive installed base. I am not talking about Google-style personal information collection, but rather anonymous collection of user interface and error data in a way that is more designed to built better products than targeting ads.
I often have to create screenshots and screen recordings as part of my job, and to make that look good I don’t want any part of my Windows desktop or task bar to show in the results. Until now, I have done this the hard way by using very few desktop icons and putting them around the edges of the screen.
There is a better way.
I am using TortoiseGit on Windows for a while now, and it works OK. However, today, it just stopped working. The error I got persistently was:
0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487 AllocationBase 0x0, BaseAddress 0x68540000, RegionSize 0x480000, State 0x10000 c:\msysgit\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
There seems to be no shortage of bugs that “should have been obvious” and subject to the “how can you not check that your own products work together” phenomenon. Just the other day, I stumbled on another one. This time, it was the Microsoft set of applications and operating systems that do not quite work together the way you would expect them to.
The recent news that Microsoft has taken out an ARM architectural license has caused a lot of speculation about just what this might mean. There are several quite well reasoned ideas around the web, and I have one idea of my own: sixty-four bits.
There is a very interesting worm going around the world right now which is specifically targeting industrial control systems. According to Business Week, the worm is targeting a Siemens plant control system, probably with the intent to steal production secrets and maybe even information useful to create counterfeit products. This is the first instance I have seen of malware targeting the area of embedded systems. However, the actual systems targeted are not really embedded systems, but rather regular PCs running supervision and control software.
For a while now, I have had the issue that I could not open Excel sheets (files) by double-clicking them in the Windows Explorer, nor could I directly open Excel sheets sent to me in email from within Outlook. I got an error like this: “Cannot find the file path (or one of its components). Make sure the path and file name are correct and that all required libraries are available.”
Turned out this is a fairly common problem, with a documented solution.
I have an old Canon LIDE 30 scanner that I purchased sometime late in 2003. At that time, it was connected to a PC running Windows XP, and drivers worked just fine. However, after I got my new computer in early 2009, with Vista 64, there are no more drivers available. There is a funny way around this though, using a virtual machine.
I have an old Apple LaserWriter 12/640 PS network printer at home that I bought back in 1997. In those days, I had a PowerBook G3 at 266 MHz, Windows NT was new, and my work computer was one of Sweden’s first 300 MHz Pentium II machines… since then, my home machines have moved from MacOS 8 to Windows NT 4 to Windows 2000 to Windows XP and now Windows Vista 32- and 64-bit. But the trusty LaserWriter remains, keeps printing, and is still on its first toner cartridge!
However, moving to Vista has made the printing bit harder.
This is a short note about an “aha” moment: ArsTechnica just explained why Excel 2007 windows that look like being documents are not quite that, and how I sometimes manage to start multiple Excel processes by mistake. It seems that Excel is not truly a multi-window app like Word is… but still an MDI app that fakes windows in a way that makes the Windows task bar and Vista task switcher fairly confused. Thanks for the explanation.
I have heard some rumors that Windows Vista had a good screen capture tool built into the operating system itself. So when I needed to do some capturing on my home machine, I started looking for it. Turned out that it is an optional install on certain versions of Vista only, but Home Premium is one of those versions. The tool is called “Snipping Tool” in English versions, or “Skärmklippsverktyget” in Swedish versions.
I just got myself a new home PC, to replace my no longer very trusty five-year old Athlon-based PC. In the process, I realized I had to move my iTunes library from the old machine to the new. Reading on the web and the Apple support area made me somewhat skeptical as to the feasibility of this operation… would all my cover art, podcast subscriptions, playlists and ratings survive the move? There are many stories of failed moves and lost data out there… and moving from Windows XP to Vista 64-bit did not make the dread less.
In the end, it turned out it was really dead easy!
This is really quite funny: it is now twice that slightly panicked family members have called me to ask how to rotate the screen in Windows XP back to normal after toddlers of about six to eight months of age have managed to rotate it to 90 degrees or upside down by just banging on the keyboards of their computers, as small children tend to do.