
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.
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.
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.
electricians scissors
110 punchdown
cable jacket stripper
cable cutter
jab saw
crimp tool
drill
screwdrivers
pliers
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.
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.
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 |
Overview
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.Cleanup
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
drill
screwdrivers
pliers
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.
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.
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 |
Cleanup
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.
Labels:
network
Thursday, December 4, 2014
Remove browser hijacker malware
For conduit, white smoke, babylon, anything opencandy (http://en.wikipedia.org/wiki/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.
b. Uncheck "Start Dropbox on system startup". Click OK
This can also be found in the control panel under System & Security, Administrative Tools, or by searching in Start.
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).
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 Taskb. 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.
Labels:
windows
Friday, September 5, 2014
Lockdown Browser 1.0.7.02 LAB SCCM deployment
I needed to update from Respondus LockDown Browser Lab version 1.0.5.14 to version 1.0.7.02. 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.
Here's their instructions for convenience:
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.
Put all of the iss files in the installer folder with setup.exe etc.
@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
:newinstall
setup /s /f1"%CD%\setup.iss"
goto registry
REM if exists with version 1.0.5 run update
:update
setup /s /f1"%CD%\update.iss"
:registry
REM Update registry to show version 1.0.7.02 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 1.0.7.02 /f
:end
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.
Name: Respondus LockDown Browser 1.0.7.02 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: 1.0.7.02
Localized Application Name: Respondus LockDown Browser 1.0.7.02 LAB
Localized description: Respondus LockDown Browser 1.0.7.02 for labs only
Deployment type: script
Script
Name: Lockdown Browser 1.0.7.02
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
Hive: HKEY_LOCAL_MACHINE
Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{3DEC3ECB-D6FB-450E-8248- D05C36AD5FA4}
Value: DisplayVersion
Associated with 32-bit: CHECKED
Data Type: String
Operator: Equals
Value: 1.0.7.02
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
http://windowsmasher.wordpress.com/2012/03/17/sccm-package-respondus-lockdown-browser/
More about reg command
http://technet.microsoft.com/en-us/library/cc732643.aspx
Respondus LockDown Browser silent install - updated instructions
http://support.respondus.com/support/index.php?/Knowledgebase/Article/View/136/0/does-the-lockdown-browser-lab-edition-support-silent-or-unattended-installs-under-windows
InstallShield Parameters
http://helpnet.installshield.com/installshield18helplib/IHelpSetup_EXECmdLine.htm
Create System Center Configuration Manager Application
http://technet.microsoft.com/en-us/library/gg682159.aspx
![]() |
After 1.0.7.02 was activated this error shows on 1.0.5.14 |
Install Shield files and installer folder
First, you'll need to create setup.iss files. Instructions can be found here: http://www.respondus.com/update/2009-11-d.shtmlHere'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.
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.
- Normal install with no other version installed - named setup.iss
- A re-install with version 1.0.5.14 installed - named update.iss
- An uninstall of 1.0.7.02 - 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
:newinstall
setup /s /f1"%CD%\setup.iss"
goto registry
REM if exists with version 1.0.5 run update
:update
setup /s /f1"%CD%\update.iss"
:registry
REM Update registry to show version 1.0.7.02 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 1.0.7.02 /f
:end
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 1.0.7.02 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: 1.0.7.02
Localized Application Name: Respondus LockDown Browser 1.0.7.02 LAB
Localized description: Respondus LockDown Browser 1.0.7.02 for labs only
Deployment type: script
Script
Name: Lockdown Browser 1.0.7.02
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
Hive: HKEY_LOCAL_MACHINE
Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{3DEC3ECB-D6FB-450E-8248- D05C36AD5FA4}
Value: DisplayVersion
Associated with 32-bit: CHECKED
Data Type: String
Operator: Equals
Value: 1.0.7.02
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
http://windowsmasher.wordpress.com/2012/03/17/sccm-package-respondus-lockdown-browser/
More about reg command
http://technet.microsoft.com/en-us/library/cc732643.aspx
Respondus LockDown Browser silent install - updated instructions
http://support.respondus.com/support/index.php?/Knowledgebase/Article/View/136/0/does-the-lockdown-browser-lab-edition-support-silent-or-unattended-installs-under-windows
InstallShield Parameters
http://helpnet.installshield.com/installshield18helplib/IHelpSetup_EXECmdLine.htm
Create System Center Configuration Manager Application
http://technet.microsoft.com/en-us/library/gg682159.aspx
Wednesday, March 27, 2013
UNBEATABLE Tic Tac Toe Game
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.
https://dl.dropbox.com/u/2509724/TTT.exe
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!
https://dl.dropbox.com/u/2509724/TTT.exe
![]() |
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!
Labels:
Programming
Monday, January 21, 2013
Subscribe to:
Posts (Atom)