Thursday, April 13, 2017

Today I learned: Allowing 32-bit applications to use a little bit more RAM on 64-bit systems with EditBin

Today I learned a tidbit of Windows minutae

When you run a 32-Bit Windows application Windows assigns it 4 GB of memory.  This isn't real memory, it's virtual memory.  Normally the application can only use half of this, the other half is reserved for the kernel.  The net result is that the application has 2GB of memory to play with.

This is a limitation of 32-bit applications.  It doesn't matter if you are running them on a 32-bit or a 64-bit operating system.

There is an old trick for running Exchange or SQL server on a 32-bit operating system.  The trick is that you can set the /3GB and /PAE kernel flags to give the application 3GB instead of 2.  In this scenario the application is still assigned 4GB of virtual memory, but the operating system packs itself into 1GB instead of 2.

Neat trick.

I had always thought that the application had to understand large address spaces to be able to take advantage of this.  Today I learned that is not necessarily the case.

There is a tool called "The Microsoft COFF Binary File Editor", cleverly named EDITBIN.EXE, that has the capability to modify executables.  This tool is packaged with Visual Studio and documented here:

One of the things it can change is turning on the extensions that let the applications use this extra memory.  Here's how

EditBin.exe /LARGEADDRESSAWARE NameOfTheExecutable.exe 

Viola, that's it. Add this to your toolbox for fighting out-of-memory errors in old 32-bit applications.  Magic.

Fair warning, this change modifies the EXE file.  Make a backup of the .exe file first.  Also know that if the .exe is digitally signed this modification will invalidate the .exe's digital signature and you'll get warnings about the signature being invalid.  It's a bad practice to blindly ignore bad signatures, but in this case it is expected.

It's worth noting that you don't have to use the /3GB or /PAE switches on a 64-bit OS, the OS understands big addresses.  All you should have to do is flip the large address aware bit in the executable and you are off to the races.

Best of luck.  This won't work for every app, but it worked for me.

Friday, April 7, 2017

Fixed: Disable "Open in Edge" button in IE11 on Windows 10 Creators

In the new Windows 10 Creators update there is a change to the “New Tab” button in IE.  It now offers you the ability to open a new tab in IE, or a new tab in Edge.

If you want to hide the New tab in Edge button, that capability exists.  The setting is in group policy under User Configuration >> Administrative Templates >> Windows Components >> Internet Explorer >> Hide the button that opens Microsoft Edge.

Set this to enabled and the Edge button disappears.

Fixed: Windows 10 locks/screensavers even when I don't want it

Today I worked with a customer that had an interesting problem  They have kiosks that auto-login and they don't want those machines to lock or pop a screen saver.

We thought we turned it off with a GPO, but it was still auto-locking after period of time.

The cause was a gem hidden in the settings menu under Accounts and Sign-in options.

"If you’ve been away, when should Windows require you to sign in again?” 

Toggling that switch fixed it.

Monitoring that change in ProcMon points to this registry value:

Path: HKEY_CURRENT_USER\Control Panel\Desktop
Name: DelayLockInterval

Tuesday, March 28, 2017

Fixed: How to enable, configure, and use Wifi on the Monoprice Select Mini 3d printer

I recently purchased a Monoprice Select Mini 3d printer.  I had a rocky start at first, but now it's working great.

The most important thing to know about this printer is that the best resource for diy support is this Wiki:  I'd be posting this content there, but registration is closed.

On with the show. This printer supports Wi-Fi.  It's odd because Monoprice doesn't mention it anywhere in their documentation and their support can't help you with it. In the absence of usable  in-one-place instructions anywhere else I'll describe how I accomplished this.

First I had to upgrade my LCD firmware.
  1. Download the newest version of the LCD firmware from this google drive.
  2. Unzip the file and place the lcd.bin file on the microSd card that came with the printer.
  3. Stick the MicroSD card in the printer and verify you can see files on the card from the "Print" menu.
  4. Turn the printer off.
  5.  Push the Print Bed back until you hear it click the Y limit switch.
  6. Push the print head left until you hear it click the X limit switch.
  7. Press and hold down the knob/button on the printer.
  8. With both limit switches and the knob/button on the printer clicked, turn on the printer.
  9. The LCD will be black while the printer is updating, and turn on when complete.
  10. After the LCD turns on and displays the main menu turn off the printer.
  11. Remove the MicroSD card and delete lcd.bin.
Next, I had to upgrade the "motion" firmware in the printer.
  1. Download the newest Motion firmware from this google drive.
  2. Unzip it and copy Update.bin to the MicroSD card that came with the printer.
  3. Download fcupdate.flg from the same location and place it on the MicroSD card.
  4. Power on the printer.
  5. Insert the MicroSD Card.
  6. From the "Print" menu, select the update.bin file from the MicroSD card.
  7. The LCD will display "Updating", and then display the new firmware version number.
Next, I had to configure the printer back to factory defaults.
  1. Power on the printer and connect it to your pc with a USB/MicroUSB cable.
  2. Open Repetier Host.
  3. Click "Connect".
  4. On the Manual Control tab, note the "G-Code" box above the controls.
  5. Send the following commands one-at-a-time.
    • M502 ; Reset to factory defaults
    • M500 ; Save to EEprom
  6. Restart the printer.
Almost done, now we can configure the Wifi!
  1. Power on the printer and connect it to your pc with a USB/MicroUSB cable.
  2. Open Repetier Host.
  3. Click "Connect".
  4. On the Manual Control tab, send the following commands one-at-a-time.  
    • Replace "mynetwork" with your wireless network name (your SSID)
    • Replace "mypassword" with your wireless password.
    • M550 mynetwork
    • M551 mypassword
  5. Disconnect your USB/MicroUSB cable.
  6. The top line of the printer display should change from "USB Connected" and now display the IP address of the printer.

Wireless Printing from the Web Interface:
  1. Type the IP address from the printer display into the address bar of your web browser.
  2. Click the "Upload Gcode Here" box to upload an output gcode file from Repetier host.
  3. Click "Start Print".


Note:  The MpselectMini wiki suggests performing a PID Autotune after the factory reset.  I completed several prints without doing this and suffered no ill effects.  The process is documented here. Tuning the printer's PIDs enables the printer to control the extruder temperature much more precisely, and I did end up running the auto-tune later.  I have not noticed any appreciable change in the quality of my prints, but the extruder temperature graph in Repetier Host is now much flatter than before tuning.

I can't thank the wiki enough.  They are the resource for this printer on the internet.  I hope this helps someone else.

Tuesday, February 21, 2017

Fixed: H&R Block Tax Software is not compatible with your current resolution

Today a customer had a problem.  When they tried to install this year's H&R Block tax software they received this error.
"H&R Block Tax Software is not compatible with your current resolution.  Please review the minimum specifications, make the necessary changes, and retry the application"

This laptop has a 1920x1080 display, so it's unlikely that the display isn't big enough.

I found the problem.

It looks like the H&R Block software doesn't like the display scaling in Windows 10.  Here's how to fix it.

The fix is to turn off the display scaling before running the installer.  Here's how.

Right-click the desktop and select "Display Settings"

On the "Customize your Display Settings" screen, make a note of the current setting of the "Change the size of text, apps, and other items:" slider.  Then slide it left to 100%.

Then run the H&R Block installer.  It should work now.

Optionally you can re-enable the display scaling back to its old setting after installing.  The H&R Block Tax software will display a warning about the resolution, but it still works.

I hope this helps someone.  The H&R Block support forums weren't very useful for this issue.

Monday, January 2, 2017

Summoners War:Farmable Giants GB10 Team

I've been sucked into an Android phone game called Summoners' War.  It's awesome!

I found a working Farmable auto team for Giants GB10.  These guys don't have great runes; there might be 3 6 star runes on all of them combined.

Sigmarus (leader) - Fusable
Belladeon - Light secret dungeon
Bernard - Farmable in Tamor desert
Shannon - Shop or Unknown scroll (common)
Veromos - Fusable

    Thursday, December 8, 2016

    Fixed: Windows 10 Desktop Background Black Screen

    My customer has 50,000 or so retail kiosks that they are rebuilding from Windows 7 to Windows 10.  An interesting problem popped up with these.  When we build a Windows 10 machine in the Windows 7 OU, the desktop background doesn't appear.  Instead, we get a black screen.


    A bunch of troubleshooting later, we discovered that this occurs because Windows 10 can't write to the Hkey_Current_User\Control panel\Desktop section of the registry.  There is a deny permissions entry that forbids it.

    How on earth would this setting get there? 

    Skip a bunch of troubleshooting, and ... we set it, unintentionally, via GPO.

    This comes from a User side Group Policy setting:

    Administrative Templates >> Control Panel >> Personalization >>  "Prevent changing desktop background"

    This insidious setting creates a deny permissions entry in the registry.  Even worse, this is a tattooed setting.  Removing the GPO does NOT remove it.


    Removing the GPO setting caused all of our new machine builds to work properly, but unfortunately does not fix the tattooed broken systems.

    To fix the in-state systems we either rebuild them (For us, they are kiosks and this is easy.)  or ...

    1. Remove the deny permission entry with a scheduled task script.
    2. Change the desktop background to a new background to force it to refresh.