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”
In the current world-wide lockdown due to Covid-19, many things that were done in-person in the past have to become virtual. The Simics® New User Training that we run at Intel and with our customers and partners is no different. In normal times, we run in-person classes around the world, but that is not an option right now. Thus, we shifted to running remote live classes as a substitute for the time being. This blog shares some of my experience from running remote live classes.Continue reading “Adjusting to Work-from-Home: Remote Live Simics Training”
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”
I have a new blog post out on the Intel Developer Zone, about the Simics 6 device register coverage feature. I use device register coverage to look at how different operating systems use the same hardware. The differences are significant, demonstrating the (rather expected) observation that different software stacks use the same hardware in different ways.Continue reading “Intel Blog: Simics 6 Device Register Coverage”
I just started using Office 365 at work, and almost immediately I hit a hilariously bad problem in the core simple “import CSV” functionality. Basically, the Excel 2016 that I got (it is 2016, not the latest 365 that my home machine all use) does not understand Windows line endings or decimal numbers.Continue reading “Excel 2016 & CSV Import – Hilariously Broken”
I heard about the DOOM Game Engine Black Book by Fabien Sanglard on the Hanselminutes podcast episode 666, and immediately ordered the book. It was a riveting read – at least for someone who likes technology and computer history like I do. The book walks through how the ID Software classic DOOM game from 1993 works and the tricks and techniques used to get sufficient performance out of the hardware of 1993. As background to how the software was written, the book contains a great description of the hardware design of IBM-compatible PCs, gaming consoles, and NeXT machines circa 1992-1994. It covers software design, game design, marketing, and how ID Software worked.Continue reading “DOOM Black Book – This is Brilliant!”
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”
Late last year I was trying to do some machine learning work on my brand new Alienware 15 R4 gaming laptop. I had bought the laptop in order to have something portable with sufficient performance to actually do convolutional neural network (CNN) training and inference “on the road”. The GTX 1060 in the laptop is just as powerful as my home desktop machine, and should run Tensorflow and Keras well. I had the setup working on the desktop already, and copied the code over to the laptop. When trying to run the code the first time, I got some rather strange errors that I finally figured out meant that I was missing the CUDA toolkit. I downloaded CUDA version 10, installed, and the machine rebooted into the Windows 10 automatic repair mode.Continue reading “Windows 10 Reboot Loop – CUDA & Alienware”
I am an avid podcast listener, using podcasts as the main source of entertainment on my commute, when I go to gym, go shopping, cook at home, et cetera. In the past, I have used a long line of iPod nano devices to serve my listening needs (see my review of the 7th and final generation iPod Nano), downloading podcasts to a Windows PC and then syncing them over to the device. This worked well enough, and I kind of liked separating out the battery used for listening from the battery my phone used for calls and data traffic. But nothing lasts, and now that Apple killed off the iPods I had to find a replacement solution before my last iPod broke.
The new Windows 10 Controlled Folder Access (CFA) feature is a great idea – prevent unknown programs from modifying your files, to stop ransomware in its tracks. It is so good that I forced an early update to Windows 10 Build 1709 (“Fall Creators Update”) on a couple of my home machines and enabled it. Now, I have quickly disabled it, as it is not possible to actually use it in a real environment. It just stops things a bit too hard.
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:
A recent update to the Amazon Kindle app on my Android devices introduced a severely annoying page curl animation when flipping through pages in a book. This unnecessary animation slows things down and disrupts the reading flow, or at least that is my opinion. It was really hard to find any kind of help on the Amazon pages or elsewhere on the Internet for how to turn it off. I finally figured it out, and here is how I did it so that other people with the same problem can search and find a solution…
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 just got hit by a strange behavior in Microsoft word: the comment and format change “balloons” that pop up next to the text when using change tracking and viewing changes started to overflow their allocated balloons. The font used look very funny too. The issue was that a document contained a format specification for these balloons that used a font not present on my system, which in turn caused Word to use something like Courier to display it. Which did not look nice. However, it was easy to solve.
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?
I am not in the computer security business really, but I find the topic very interesting. The recent wide coverage and analysis of the Flame malware has been fascinating to follow. It is incredibly scary to see a “well-resourced (probably Western) nation-state” develop this kind of spyware, following on the confirmation that Stuxnet was made in the US (and Israel).
In any case, regardless of the resources behind the creation of such malware, one wonders if it could not be a bit more contained with a different way to structure our operating systems. In particular, Flame’s use of microphones, webcams, bluetooth, and screenshots to spy on users should be containable. Basically, wouldn’t cell-phone style sandboxing and capabilities settings make sense for a desktop OS too?
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.
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
I recently read the “Cubase64 White Paper” by Pex Tufvesson. It is a fantastic piece of retro computing, where he makes a Commodore 64 do real-time audio effects on a sampled piece of music. There is a Youtube movie showing the demo in action. Considering how hard we worked in the early 1980s to make a computer make any kind of useful noise at all, this is an amazing feat. It is also a feat that I think would have been impossible at the time.
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.
I just won a battle against Eclipse, managing to finally rid myself of a string of strange out-of-heap warnings. It is a long story, involving lots of web searching and fiddling with the eclipse.ini file options for the JVM. It just never seemed to work as I wanted it to, despite changing the -Xmx VM argument to 256, then 512, and finally 1024m.
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.
Last year, FLOSS Weekly interviewed Jan Lehnard of the CouchDB project. I put up a blog post on this, noting that it was interesting with a scalable parallel program written in Erlang, a true concurrent language. The interview was interesting, but not very deeply technical. Now, almost a year later, the StackOverflow podcast, number 59, interviewed the founder of the project, Damien Katz. This interview goes a bit more into the technical details and what CouchDB is good for and what not, as well as some details on the use and performance of Erlang.