Thursday, September 29, 2016

Microsoft Edge Memory Leak

I had one tab open in Microsoft Edge, and it was using over 5 GB of memory. Memory leak much? Yet Microsoft wanted to close Firefox.

Sunday, November 29, 2015

Installing residential network wiring

The goal of this project was to install network wiring throughout a house that only had the cable line in from the ISP. The house is a split level with four levels. The bottom basement is unfinished, but also has the cable line and modem installed on an unfinished wall. The primary need for this project was to wire up the bedroom used as an office, so wireless wouldn’t be the only option.

As an initial solution, I bridged an old Linksys router to our main wireless access point. This provided wired connections in the office without having to run wires the entire way. However, the Linksys router was slower than the bandwidth from the ISP, and was likely slowing down the wireless for all other connected devices. The router was also unreliable and required rebooting every few days. This was not the ideal situation to work on computers that might have other networking problems. Also, I felt that if I was not getting the full bandwidth from the ISP, I was cheating myself.

One solution would have been to replace hardware in the office to have a faster, more reliable bridge. I weighed the option, but decided that if I were going to spend any money, I’d prefer to fully wire the house. Then it would have a very reliable infrastructure that would not need replacing for many years.

An old Linksys WGR54GS device used as a wireless bridge


After planning, the project included several sections, including installing a rack and network equipment in the basement. The major part was finding wiring paths that made sense, drilling holes, and running fish tape and cable. Finally, terminating keystones, the patch panel, closing up holes, and cleaning up took quite a lot of effort. In the end I had seven finished wall plates with two RJ45 jacks each. This includes one plate in the front room, two in the family room, one in the office, and one in each of the three bedrooms.

Rack and wall equipment

For rack equipment I first mounted a sheet of plywood to wall studs in the basement. This provided space to mount a 12” 8U rack which holds a 24 port patch panel and 24 port switch, with room to grow. I also mounted a grounding bar, power strip, cable modem, wireless router, and cable splitter to the wall for a clean and organized wiring wall.

Cable installation

Routing the cables was probably the biggest challenge for me. Luckily, I managed to get a work friend over to help me who has a career of experience in cable installation. He gave guidance on wire paths, where to place jacks, and helped me drill holes and pull fish tape. I owe him big time.

The majority of the wiring runs vertically into the attic, and back down through the walls into the various locations. We managed to line up this initial run to a section of wall where the gap was literally the width of a single stud. A little bit of it was luck, but a lot of it was the skill and experience that my friend brought.

Finishing cables

The wires we pulled are CAT6 STP. I chose shielded because it wasn’t that much more expensive than unshielded. The cable isn’t riser or plenum rated, but this is a residence, not a place of business. Terminating wire at the patch panel and jacks was fairly straight forward and went without many problems. The catch with shielded cable is that it must be grounded or it can act as an antenna and receive even more interference, so I made sure to get a shielded CAT6 patch panel and ground it to the breaker box.


Cleaning up after the project was not something that I planned initially, but sealing the holes for wire runs, and restoring insulation where it was disturbed actually took a lot of time and effort.

Detailed Work

Acquire tools & materials

Tools included:
electricians scissors
110 punchdown
cable jacket stripper
cable cutter
jab saw
crimp tool
stud finder
specialty drill bits
wire pulling rods
tone & probe kit

Materials included:
500ft fish tape
1000ft CAT6 STP
CAT6 Keystones
wall plates
low voltage wall brackets
cable ties
cable tie mounts
8U wall rack
mounting hardware for rack
24 port CAT6 shielded patch panel
24 port Gigabit switch
spray foam insulation
blown-in insulation
fastening tape
2 ft CAT6 patch cables
grounding wire
wire ring terminals
electrical tape

The entire purchasing process took a lot of searching, several online transactions, and several trips to different hardware stores. In all I spent about $600 on this project, although some of the tools were borrowed. I managed to get a sweet deal on the gig switch from an out of luck bitcoin mining operation.

Some of the tools used for this project


Cut and mount plywood to wall studs

I already had the plywood, but had to cut it to the right shape with a jigsaw, measure and drill pilot holes for wood screws to securely mount it onto the wall. I used nine 2 ½” screws, thinking that the plywood will possibly hold a lot of weight.

Plywood mounted to wall studs near cable up-link

Route fish tape, measure, drill, and pull cable

The easiest route for the majority of the wiring was not the shortest, and it wasn’t that easy. We drilled vertically from the basement into the main level wall, then from the attic into the same section. This section needed to hold 12 cables, so several holes were drilled in sequence. After reaching the attic, the majority of the cable ran over to the upper attic above the bedrooms. Three holes were drilled from the upper attic into different wall sections; two for bedrooms. One line had to go all the way from the upper attic through the upstairs wall, and into the upper basement wall. This was the most difficult section to drill, and we had to make a couple of extra holes in the wall to drill the correct holes in studs. That location was also where I needed the network the most.

Fish tape was pulled using rods. At this point, holes were also cut for the plates in various rooms. After fish tape was in place, cable was measured, cut, and pulled through to the appropriate location. In all there are 16 lines run to 8 locations. 7 of these locations are in finished rooms.

This step was completed over 4 days.

A hole in the attic into a section of wall

This stud finder shows the small gap between studs that we managed to route most of the cables

Fish tape pulled to a wall jack

Low voltage wall bracket installed

Cable bundled, tied to fish tape, and then secured with electrical tape for pulling

Install wall rack and hardware

The 12” 8U rack had to be assembled and installed on the plywood. Tee nuts were used to provide a secure mount to the plywood. Additional screws were installed for mounting the cable modem, wireless router, and power strip. I also mounted the cable splitter as well as a grounding bar.

The patch panel and network switch mounted to the rack, leaving 6U for future expansion. Both the rack itself and the patch panel were grounded to the bus bar, and the bus bar grounded to the electrical panel.

8U 12" wall mount rack installed on plywood

Terminate cable at patch panel and wall jacks

Cables needed to be cut to length, stripped, and punched down on the patch panel, as well as on keystone jacks at each wall mount. Plate holes needed to be finished and brackets installed. Keystones mounted into the wall plates. Each cable had foil shielding as well as an additional stranded copper wire for grounding. This attached at the patch panel. Patch cords connected the panel to the switch, switch to the router, and router to the modem. Cables were tidied up with Velcro and cable ties.

The first two cables punched down into the CAT6 shielded patch panel. Ground not yet connected

Keystone jacks punched down, and installed into a wall plate

A finished wall plate with two jacks


There were several holes in studs from the attic or basement that needed repair. Foam insulation from a can was used to seal these holes and hold the cable in place at that point.

There were also several places where the blown-in insulation was disturbed in the attic. I also realized that it was a bit low in some areas, so I added 7 bags of insulation by hand. It would have been better to rent an insulation blower, but 7 bags was not enough to rent one. It was however tedious work. This step was performed over two days.

The finished wall rack with cables and equipment

Additional thoughts

Most of the people I talked to, including other IT professionals, said they would just use wireless. Many of them still understood that wired connections are always going to be more reliable and have a higher throughput than wireless. Towards the end of this project I started to question whether it was worth it to do all this work for something that could also work over wireless. I’m glad that I did it, but I’m happy that it’s over, considering it took over 30 hours to complete.

There’s a lot of options when doing a project like this, and usually it’s going to take a lot more time to get things the way you want them rather than just getting a cable run the easiest way. I learned a lot about the difference between shielded and unshielded cabling, as well as the different jacket types. 

If I were to do this type of project again, I’d be sure to do a bit more reconnaissance regarding what’s in the walls and between floors. Having done it once, I bet I could shave 10 hours or so off the next project, at least if it were a similar house plan. The worst part of this project was spending so much time in the attic being cramped, breathing dust, and accidentally drilling through a wall in the wrong spot. I at least know the house a lot better.

The benefit from this project is that this house now has gigabit network throughout most of the rooms, and a place to mount a small server in the basement. When gigabit internet is available and practical here, the house is ready to upgrade. It will even possibly handle 10 gigabit Ethernet because the cable runs are not very long.

Thursday, December 4, 2014

Remove browser hijacker malware

For conduit, white smoke, babylon, anything opencandy (, and other browser hijackers I usually do the following.

1. uninstall these and anything unrecognizable from add/remove
2. in EACH browser
  a. remove any add-ins/extensions
  b. change the default web page/home page
  c. remove any search engines that you don't recognize, set default to google
3. delete anything from c:\program files, c:\users\appdata that appears to be from the malware
4. run a full scan of Malwarebytes, and possibly other scans
5. probably also a good idea to clear your cache and cookies

I also heard that some trovi malware is also changing browser shortcuts on the desktop, and has a scheduled task to change these shortcuts. I haven't seen this personally, but it's worth checking. Apparently ADWcleaner is good at removing this.

My rule of thumb is that if it takes longer than 30 minutes to an hour to fix I'm going to re-install the OS. However this isn't always practical.

Sunday, October 5, 2014

Delay dropbox startup in Windows

Dropbox was slowing down my startup after logging in, so I wanted to delay startup by a minute or so to allow my computer to be usable earlier. The normal settings only allow it to either start up immediately, or entirely manually. Below are instructions on how I got it to start after 2 minutes. I did this in Windows 7, but it should work similarly in Windows 8, 8.1, and probably Windows 10. This also works with other programs, so you could stagger startup items instead of having them all hammer the system at once.

1. Disable the normal dropbox startup.

  a. Click on the dropbox icon, click the gear icon, and click Preferences...
  b. Uncheck "Start Dropbox on system startup". Click OK

1. a. Click Preferences...
1. b. Uncheck Start on system startup

2. Open the task scheduler.

  a. From the Start menu, click All Programs, Accessories, System Tools, and Task Scheduler.
  This can also be found in the control panel under System & Security, Administrative Tools, or by searching in Start.

3. Create a new scheduled task.

  a. Click Create Basic Task
  b. Enter Name - Dropbox, and a description if you wish. Click Next.
  c. Trigger. Select "When I Log on". Click Next.
  d. Action. "Start a program"
  e. Start a Program - Program/script - Enter C:\Users\[username]\AppData\Roaming\Dropbox\bin\Dropbox.exe. Be sure to change to your username.
  f. Add arguments - Enter /systemstartup
  g. On Finish check "Open the Properties dialog for this task when I click Finish". Click Finish.
  h. Click the Triggers tab and click Edit...
  i. Check "Delay task for:" and enter the number of minutes that want it to be delayed. Click OK on the open windows and close all other windows.
  j. If this is a laptop, click the conditions tab and uncheck "Start the task only if the computer is on AC power" (if you want).
3. a. Task Scheduler - Create Basic Task...

3. b. Create Basic Task - Name

3. c. Create Basic Task - Trigger

3. e. Create Basic Task - Start a Program

3. i. Edit Trigger - Check "Delay task for:"

3. j. Uncheck "Start the task only if the computer is on AC power"

 4. Test by restarting and logging back on. 

Friday, September 5, 2014

Lockdown Browser LAB SCCM deployment

I needed to update from Respondus LockDown Browser Lab version to version This is how I've done it as an SCCM application. This could probably be modified to be used in some other deployment solution, but I've tested it with SCCM 2012 R2 and Windows 7 clients running 32 and 64 bit versions.

After was activated this error shows on

Install Shield files and installer folder

First, you'll need to create setup.iss files. Instructions can be found here:

Here's their instructions for convenience:

First, be sure that Respondus LockDown Browser isn’t already installed on the computer. If it is, then un-install it before continuing.
  1. Download the full installer (LockDownSFX.exe) from the Respondus website. BE SURE to obtain the .exe via the admin login for your institution since the installer differs for each institution.
  2. Run the installer and select the "Click Here" link that appears next to the text, "Problems with the installation program?" This will allow you to extract the setup files to a folder on your local disk (such as "lockdown").
  3. Start the Windows Command Prompt (or run CMD.exe).
  4. Change directories to where the installer was extracted (i.e. the “lockdown” folder).
  5. From the command line run:

    setup /r

    This runs the regular installer but also creates c:\windows\setup.iss
  6. Copy the file c:\windows\setup.iss into the “lockdown” folder.
  7. Un-install Respondus LockDown Browser.
Now you now have a silent installer that can be run using this command:
setup /s /f1"%CD%\setup.iss"

Create three iss files using the same method, setup /r inside the expanded installer files. You will use each of these iss files later in SCCM; the normal silent install won't work to upgrade existing versions, and the third one will be used for uninstallation.

  1. Normal install with no other version installed - named setup.iss
  2. A re-install with version installed - named update.iss
  3. An uninstall of - named uninstall.iss

Put all of the iss files in the installer folder with setup.exe etc.

Install script

Create a bat file with the contents below named installLDB.bat. See in-line comments for what it's doing. Basically it is checking if version 1.05 is installed, running with the update iss file, and otherwise installing with the setup file. The last part is changing the registry entry for versioning because for some reason Respondus doesn't like to do this in their installer. We will also use that key in SCCM for detection.

@echo off

REM Check registry for version 1.0.5
REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{3DEC3ECB-D6FB-450E-8248-D05C36AD5FA4} /f "DisplayVersion" | find "1.0.5"
IF %ERRORLEVEL% == 1 goto newinstall
IF %ERRORLEVEL% == 0 goto update

REM If doesn't exist as 1.0.5 run new install
setup /s /f1"%CD%\setup.iss"
goto registry

REM if exists with version 1.0.5 run update
setup /s /f1"%CD%\update.iss"

REM Update registry to show version instead of 1.0.5
REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{3DEC3ECB-D6FB-450E-8248-D05C36AD5FA4} /f "DisplayVersion" | find "1.0.5"
IF %ERRORLEVEL% == 1 goto end
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{3DEC3ECB-D6FB-450E-8248-D05C36AD5FA4} /v DisplayVersion /t REG_SZ /d /f


You may want to verify that the registry key matches what actually shows when it is installed. Also create a bat file named uninstall.bat with the line below and copy to your installation folder.

setup /s /f1"%CD%\uninstall.iss"

Copy the folder to your network share or SCCM server.

SCCM Application

Create a new Application (not package). I'm not going to show how to create an application step by step here, but I've included the settings I used, everything else is default. This part is pretty straight forward if you've done it before, and these details are easily viewed for verification after the application is created by going to the application properties.

Name: Respondus LockDown Browser LAB
Administrator Comments: Will update from 1.0.5 or perform a clean install, tested on Windows 7 64 and 32 bit, might not update other versions
Publisher: Respondus
Software Version:
Localized Application Name: Respondus LockDown Browser LAB
Localized description: Respondus LockDown Browser for labs only
Deployment type: script

   Name: Lockdown Browser
   Content location: [enter UNC path to the folder you copied]
   Installation program: "InstallLDB.bat"
   Uninstall program: "uninstall.bat"
   Run as 32 bit on 64: CHECKED

Detection Method
   Setting Type: Registry
   Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{3DEC3ECB-D6FB-450E-8248-    D05C36AD5FA4}
   Value: DisplayVersion
   Associated with 32-bit: CHECKED
   Data Type: String
   Operator: Equals

Install for System
Whether or not a user is logged on
Installation visibility: Normal
Max allowed run time: 20
Estimated installation: 5

It's important to check run as 32 bit on 64 bit machines, and associated with 32 bit in the detection method, or you will have problems on 64 bit Windows.

Deploy (test first) your application and you're done.

Another solution

More about reg command

Respondus LockDown Browser silent install - updated instructions

InstallShield Parameters

Create System Center Configuration Manager Application

Wednesday, March 27, 2013


Click the link to download an unbeatable Tic-Tac-Toe game. It's possible to get a CAT game or lose, but the computer will never lose! You can also play two player if you want to have the possibility of winning.

One player will be against the computer, two player will be against a friend (same computer)

Player one to choose X or O

The Computer Wins!

I created the program in high school after completing all of the assignments for the class. It was created with Visual Basic 6 with about 1200 lines of code. The program is fully functional, but certainly not polished. It was created pretty simply, e.g. the computer is not performing strategy, just making the pre-programmed best move, as Tic-Tac-Toe is a pretty simple game if you think about it. I also created a minesweeper game similar to the windows one, but I had a few bugs that I could never iron out. Sadly, I think I left that one on the classroom computer and don't have a copy. Shortly after this class I took a C++ class that helped me decide I no longer wanted to be a programmer! Feel free to distribute the program, but please give me credit if you do!

Monday, January 21, 2013