Category Archives: Windows

Install updates and shutdown actually means start updating, then shutdown part way through

Last night my laptop said it wanted to install updates. So when I’d finished using it, I chose “Install Updates and Shutdown”, thinking it would be all finished and ready to go in the morning, right?

Wrong. When I started it back up this morning, it proclaimed that it was 1% through the updates, and “This will take some time.”

It took almost an hour to get through everything, but finally it got to the log on screen.

At that point I had to do something else, so I shut it down again. Later I booted it back up, logged on, and … more delay, as it went through a protracted “Getting things ready” phase.

Maybe this is a rarity given this is apparently the Windows 10 “Anniversary Update“, which brings a whole bunch of new functionality — none of which, so far, I think I actually need.

But the lesson for next time is to use “Update and Restart” (which truly is something Windows 8 and 10 have over Windows 7) rather than “Update and Shut down”, which clearly doesn’t do what I thought it would do.

New laptop – bloatware to remove

My old laptop was old when I got it, and I just realised that was four years ago. I tried to breathe a little more life into it by putting Linux on it… with some success, but I’ve got some stuff I need Windows for, and that crawls along these days.

So I bought a new cheap laptop, for web and email use (definitely not an attempt at a desktop replacement)… a Lenovo B41-30.

Vital stats: A$299 (which seems to be an okay price; apparently it’s $100 off) from Centrecom. 14 inch screen. Celeron N3050, 1.6 GHz, 2 cores. 500 Gb hard drive. Intel graphics. Windows 10 (x64).

Only 2 Gb RAM, but I’ve paid A$35 for a 4 Gb stick – why wouldn’t you? Unfortunately it only likes alike sticks in the two slots, so the original 2Gb had to come out. Perhaps I might put another 4 in there to make it 8. You can always do with more RAM, right?

Anyway, after setting it up, here’s the bloatware I’ve removed:

  • BT Locker – locks your computer if your phone is too far way, using Bluetooth I assume
  • Cyberlink Power2Go – for ripping CDs and DVDs… not actually very useful on a laptop with no optical disc player.
  • PowerDVD – DVD/media player – ditto.
  • McAfee LiveSafe
  • AppExplorer – recommends apps to install – all I want on this thing is the basics. I certainly don’t want it being clogged up with extra apps.
  • Lenovo Solution Center
  • Lenovo ReachIt
  • Lenovo ShareIt

That’s all for now. It’s running at an acceptable speed.

Enable Stereo Mix on Windows 7 under BootCamp

After rebuilding my Mac Pro with Windows 7 on an SSD (more about this later), Stereo Mix went missing.

To re-enable it, I ended up changing the audio driver to the Microsoft High-Definition Audio drivers, then back to the Realtek drivers:

  • Control Panel / Device Manager
  • Browse to Sound Video and Game Controllers
  • Choose Realtek High Definition Audio / Change (you’ll need an admin password at this point)
  • Update driver / Browse / Let me pick, and choose High Definition Audio Device.
  • Let it finish, then go back in again but at the last step choose Realtek High Definition Audio. This time I found it needed a reboot.

I assume this updates you to the drivers that came with Windows, rather than those that came with Boot Camp.

After the reboot, Stereo Mix is available. You just need to enable it under Control Panel / Sound / Recording devices, right-click, Show disabled devices, then enable it. You can set it as the default so you can record things in Audacity etc.

The old PC made new again: trying out Linux

My old hand-me-down laptop is getting too slow under Windows.

I tried reinstalling, and it’s still slow. Perhaps it’s the patch upon patch upon patch that needs to be applied to make it safe that explains why Windows installations always slow down over time — and why reinstalling didn’t solve the problem.

So I went looking around for lightweight Windows-like Linux distros… and ended up with LXLE.

The steps were pretty simple.

  1. Windows Disk Management to shrink the main partition enough so there was space for Linux.
  2. Download LXLE (silly me, I could have chosen 64 bit, but went with 32 because Windows was 32… the specs say it’s actually 64-bit… though with only 2Gb of memory, 32 might be better, as it is with Windows?)
  3. Used UNetbootin to create a bootable USB drive
  4. Boot onto the USB and follow the steps. Easy.
  5. Two things I’ve done apart from installing the default OS: install Chrome so I could sync my bookmarks, passwords etc
  6. And install gpointing-device-settings via Synaptic, to turn off the annoying touchpad click (which I keep firing accidentally)

The laptop seems rejuvenated. The speed is nice. I mostly use it for web and a little word processing (which Libre Office, installed with the distro, should cover).

The interface is similar enough to Windows that I’ll get by fine with it. (And unlike trying to move to OSX, no annoying differences in keyboard shortcuts.)

And if I desperately want something in Windows, I can still boot it up if I need to.

Still to investigate:

  • Compatibility with VPN for work
  • RDP for work and other uses
  • See if GIMP will cover the same stuff I use Paint.Net for, or if I need to find something else

But…problems…

It has had some problems with waking up after sleep, and forgetting the touchpad No Click setting when rebooting.

And now, after a week…

Linux boot problem

Now it won’t boot.

The whizzes on Twitter suggest it might be a hard disk corruption… which it might be, though Windows is still booting fine.

Or it might be that grub needs reinstalling. I’m not even sure how or why I’d do that.

The other suggestion people have is to try a different (more stable?) distro, such as Lubuntu. Might be worth a look, though I’m wondering how much better it would be.

As I get time I’ll keep testing.

Update: It may have been to the partition running out of disk space. Yeah, seems like an odd way of dealing with it.

More help is available

From the “Do you understand why people hate you, Microsoft?” department:

D:\>net stop xyz
The service name is invalid.

More help is available by typing NET HELPMSG 2185.

D:\>net helpmsg 2185

The service name is invalid.

D:\>

Yes. Very bloody helpful.

I don’t expect miracles in the command line, but I do expect that if I’m told more help is available, that more help is actually available.

Why can’t you resize Remote Desktop windows?

RDP optionsIf you can spontaneously change the resolution of Windows in a Virtual Machine, how come you can’t do it in a Remote Desktop session?

I’m forever opening up RDP sessions in the wrong resolution, because the RDP client seems to have a funny way of selectively remembering (or forgetting) the preference.

Sometimes if focussing entirely on the remote session, I’d like it to be full-sized. At other times I’d like it smaller so I can more easily jump between things.

Is there something complicated that stops RDP windows being resized after connection has been made? If it is possible in a VM, presumably it can’t be too hard in RDP?

It looks like in Windows 8 and later you can easily turn on “smart resizing”, and in earlier versions this can be configured in the .rdp file. But this scales the window at the original resolution, rather than changing resolution.

It’d be nice if proper resizing of the window was possible.

Upgrade of web site from .Net 2 to 4.5 breaks asmx web services

Despite my best Googling, nobody seems to have had quite this problem (and written about it).

I’m migrating a .Net 2 web site to .Net 4.5 (well, 4.5.1 to be precise). Everything seemed to work except browsing to the .asmx (web service) pages, which threw a System.BadImageFormatException: Invalid token error:

Error Stack:System.InvalidOperationException: Failed to handle request. —> System.InvalidOperationException: Unable to handle request. —> System.Configuration.ConfigurationErrorsException: Invalid token. —> System.BadImageFormatException: Invalid token.
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection)
at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.Load(String assemblyString)
at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective)
— End of inner exception stack trace —
at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective)
at System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()
at System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)
at System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)
at System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir)
at System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir, Boolean ignoreErrors)
at System.Web.Compilation.BuildManager.BatchCompileWebDirectory(VirtualDirectory vdir, VirtualPath virtualDir, Boolean ignoreErrors)
at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
at System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean ensureIsUpToDate)
at System.Web.UI.PageParser.GetCompiledPageInstance(VirtualPath virtualPath, String inputFile, HttpContext context)
at System.Web.UI.PageParser.GetCompiledPageInstance(String virtualPath, String inputFile, HttpContext context)
at System.Web.Services.Protocols.DocumentationServerProtocol.GetCompiledPageInstance(String virtualPath, String inputFile, HttpContext context)
at System.Web.Services.Protocols.DocumentationServerProtocol.Initialize()
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
— End of inner exception stack trace —
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
at System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)
— End of inner exception stack trace —
at System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)
at System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath)
at System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)
at System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)| Global.asax:Application_Error()

I tried adjusting the .Net version — turns out it would work fine in 3.5 or lower, but broke in 4 or higher.

My machine itself was okay — creating a new 4.5 web site with just a web service in it worked fine.

In the end the solution was to create a new web site and add the individual pages back into it, leaving out the Bin directory. I rebuilt that by adding references to the various DLLs back one by one. Something in the old Bin directory apparently was throwing it out.

Diablo I (yes, Diablo 1) LAN play on Vista or Windows 7

– and presumably 8.

There’s various convoluted steps to get LAN play working on more recent versions of Windows.

Mount the ISO on your hard drive, and use the somewhat unstable Microsoft supplied ISO mounting program to fool the program into thinking you CD is in a CD drive.  Install Diablo from here.  This step is not strictly necessary, but it’s so much quicker and cleaner than the alternatives.

Fetch and apply the patch to bring Diablo 1.00 up to version 1.09.  It may also be helpful to pull up the properties of the .exe and enable compatibility mode with WinXP Service Pack x. When fetching patch, get it for the version you’re installing – much confusion is caused if you get the spawned Diablo patch and apply it to the full version.

Go and get IPXWrapper, and per the instructions drop the DLL files into your Diablo directory. If you have a heterogeneous environment, all machines need to use this wrapper – IPXWrapper is a translation layer than transforms IPX into UDP, and without it IPX aware OSes like WinXP won’t see the network traffic of the IPX unaware OSes like Vista.  Punch a hole in your Windows Firewall to allow UDP port 54792.

To fix the palette issue, you might want to wrap the exe in a batch script to kill Windows Explorer whilst you’re playing Diablo.  However a better idea is to download the registry patch, which seems to work under Vista as well:

32-bit Windows 7 – http://ftp.blizzard.com/pub/diablo/d109_x86.reg
64-bit Windows 7 – http://ftp.blizzard.com/pub/diablo/d109_x64.reg

See?  Easy.  Doesn’t take more than a few hours if you don’t know what you’re doing.

Can’t copy address bar from Google Chrome

I’ve had periodic problems with Google Chrome on Windows (Version 32.0.1700.102 m, but this has also happened occasionally in the past); sometimes it will refuse to copy the address bar.

Instead of copying, it will clear the clipboard.

Copying from other places, such as a web page (content or using Right-click / Copy Link Address) works fine.

Not sure if it’s an environmental issue — only seems to happen on my work machine; I haven’t seen the same at home.

Very odd.

Blogging it here because I can’t see any mentions of it online (which might be because it’s just me). Will post back if I find the solution.

Update 2014-01-31: I uninstalled and reinstalled Chrome… it seems to work again, for now.

Update 2014-02-05: The problem seems to have come back. Very odd.

Update 2014-02-20: Some old posts on a related problem seemed to suggest it might be a Chrome Extension causing issues, so I removed all of mine. The problem seems to still be intermittently occurring.

Postscript: As per the comments, if you have Remote Desktop running, try shutting it down.

Installing Pygal into Cygwin

Pygal is a python library for emitting SVG charts. It might do PNGs too; the documentation is… sparse. Okay, there’s no documentation, but they show you several ways to make bar charts, and figure you can follow on from there.  Anyways, the installation instructions don’t work, not under cygwin.

Here’s what you should do:

  1. ensure cygwin has the libs libxml2-devel and libxslt-devel installed
  2. issue the command
    cygwin$ pip install pygal

and you’re done. Getting pip into cygwin is a whole world of hurt, but you will need to go looking for a http (not https) source to download setuptools, then download and run ez_setup.py, followed by using pip to upgrade setuptools. Have fun with that; I know I did.

Nvidia 8800GT nvlddmkm.sys blue screen of death

I’ve got two old Mac Pros, and on one of them, the Nvidia 8800GT video card suddenly started causing weird errors in Windows.

Nvidia crash

Then it started doing the blue screen of death repeatedly, a crash in nvlddmkm.sys.

Nvidia blue screen

I have no idea why it started happening now — the Nvidia drivers don’t appear to have been updated for months, and Windows Update hasn’t installed anything for almost a week.

Oh well.

Boot into Safe Mode With Networking

Download the latest drivers

Install with Clean Option on

Reboot

Seems now to work, touch wood.

Update 2013-11-19 18:45 — No such luck. It seemed fine this morning, but later on started crashing like before. Investigations continue.

Update 2013-11-19 21:00 — After playing around disabling various things, and puzzling over what might have updated itself (since there was nothing recently installed or patched listed by Windows), I think I may have found the culprit: the Steam client beta (which I’m using to get the family sharing trial). Have disabled this, and Windows seems to be stable again. Will try it for a bit longer, then report findings to Steam.

Update 2013-11-20 — It couldn’t be that easy, of course. And I have dissed Steam without justification. The video card is still playing up — now so much so that:

  • a lovely speckly pattern appears when booting
  • Windows proclaims the video card isn’t working, and automatically puts us into Base Video (640×480) mode
  • OS X won’t boot at all — the GUI presumably tries to come up, then it reboots

Oh dear. Trouble in video card land.

The card is an NVidia GeForce 8800 GT, quite a nicely specced card. I suspect it’ll need replacing, dammit.

Update 28/11/2013: As per the comments I found another spare PCIe card (an ATI Radeon 3870) which works… in Windows. Not in OS X. Even the broken card partially works in Windows, but not at all in OS X.

A workmate pointed me to the Tony Mac x86 web site, where I found a good list of graphics cards compatible with OS X.

Thankfully however this specific machine is mostly used for Windows-only, so there’s no tearing rush. In fact Windows performance index thingy rates the ATI card slightly higher than the nVidia one.

One option is to buy the official Apple-supported Mac Pro video upgrade kit, an ATI Radeon HD5770, which is A$299. Despite the Apple site claiming it requires a post-2010 Mac Pro, plenty of sources indicate it’s fine with a 2008.

Update 2014-04-08: New video card bought and successfully installed