<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity=60)';}
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox where print preview displays the noscript content */
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

Also see [[AdvancedOptions]]
Some great tips - http://www.pcworld.com/businesscenter/blogs/linuxline/163019/10_expert_ubuntu_tricks.html

1. Open a Superuser Run Programs Dialog
You probably already know that hitting Alt+F2 will cause a "Run Programs" dialog box to appear. Here you can type any program name to run it -- I often use it to run gconf-editor, which hasn't got a menu entry, or example. However, if you type gksu into a terminal window (with nothing following), a similar dialog box appears, but this time it will let you run the program as root (or any other user on the system). You can bind the gksu command to a keyboard shortcut (perhaps Shift+Alt+F2) using System, Preferences, Keyboard Shortcuts, to effectively produce a "superuser" Run Programs dialog.

2. Install Packages Quickly With GDebi
I spent a long time ignoring the GDebi program. To remind you, this is a GUI application that allows the installation of packages you've manually downloaded. It attempts to resolve dependencies using the repositories, which is a very useful feature. However, I've always preferred the good old-fashioned dpkg command. Then one day I tried GDebi at the command line and was shocked to find it also runs in a fuss-free non-GUI mode (i.e. sudo gdebi package.deb), yet still has the ability to resolve dependencies. Give it a try. Once you do, you may never want to use dpkg -i again.

3. CD Tricks
I'm sure that even bash experts occasionally slap themselves on the forehead and say, "Wow! I never knew you could do that!". Recently I learned two tricks for the cd (change directory) command that had passed me by until now. Typing cd on its own will switch you back to your /home directory (i.e. the equivalent of cd ~). Typing cd - will switch you to the last directory you were browsing before you switched to the current one.

4. Add Directories To the Directory Stack With PUSHD
While we're on the subject of directories, let's talk about the directory stack. Quite simply, this is a list of directories stored by bash. The currently-browsed directory always tops the list, but the list is otherwise empty until you add a new directory, which you can do using the pushd command. For example, pushd /usr/bin will add /usr/bin. It will also switch you to that directory, so you could use it instead of cd to navigate (the -n command option will let you add a directory but stay where you are). The dirs command will show the directory list (remember that the currently-browsed directory will always be at the top). popd deletes the topmost entry in the list, and switches you to the next in the list. Give the directory list a try. It can be very useful if you're administering a system and have to leap from directory to directory, and are inclined to forget where important things are.

5. Kill Processes Quickly With PKILL
To kill a process I've always either used top, or the kill or killall commands along with ps|aux to discover process numbers/names. However, the pkill command removes a lot of work -- pkill firefox, for example, will search the list of processes for anything matching firefox, and then kill it (i.e. send a SIGTERM). pstree is also a pretty cool command, and will show all the processes in a family-tree arrangement, organized by who owns them.

6. Customize Gnome With Gnome Control Center
For those who have trouble giving up their Windows cravings, and who want a nice organized Control Panel-like experience, consider using gnome-control-center for your system configuration needs. Adding a desktop shortcut to this program can help newbies get to grips with Ubuntu, giving them a familiar Windows-like experience, and avoid forcing them to explore the scary System menu.

7. Launch OpenOffice.org Faster
If you use OpenOffice.org a lot, you might be frustrated at how long it takes to start each time. To get around this, open the Sessions program (called Startup Manager in Jaunty; whatever the case, click System, Preferences, Startup Applications to find it) and add a new entry. In the Command field, type openoffice -nodefault -nologo. Then reboot. This will cause OpenOffice.org to be cached when the Gnome desktop starts up, so starting any OO.org application in the future will happen in a split second. Effectively, you're moving the OpenOffice.org startup delay to initial boot-up, but you'll hardly notice it.

8. Clear Up Disk Clutter In a Jiffy
Running short of disk space? Try typing sudo apt-get autoremove and then sudo apt-get clean into a terminal window. The first command removes any unused (redundant) dependencies from the system. The second removes all cached package files. Both are harmless. On a well-used system that's been updated a couple of times, you could free-up as much as a gigabyte using these methods. (Compare before and after using the df -h command.)

9. Figure Out Missing File Extensions
Been sent a file without an extension by e-mail? No idea what type of file it is? (Mac users are particularly guilty of the sin of considering file extensions optional.) Try the file command. Just specify the filename straight afterwards. Also, give the strings command a try. This will show any "printable strings" within a binary file (i.e. anything that isn't unprintable, which usually indicates data). The type of file is usually listed right at the top, so it's a good idea to pipe the output of strings into head (i.e. strings filename|head).

10. Don't Forget Your Man Pages
Check out these interesting but not-widely-read man pages: intro -- a beginner's guide to the command-line; hier -- a rundown of the filesystem hierarchy; builtins -- mini man pages for miscellaneous commands that don't have man pages of their own (including pushd, popd and dirs, as discussed above).

From DocBrown:

I can only speak to the A+ cert as I teach computer systems repair at a technical school using the A+ objectives as a guideline. While a student does not have to become A+ certified to pass the course, it is strongly suggested they do so. We have a Pearson testing center at our school where our students can sit for the exams and we have an agreement with CompTIA to offer the exams to our students at a steep discount rate. I strongly believe in the A+ certification as an entry-level certification that will hopefully convince a potential employer that the cert holder is qualified in basic computer repair, both hardware and software.

The best advice about this I can give is what I tell my students at the beginning of the school year: if you are serious about pursuing a career in the computer science field, the entry-level A+ cert should be the first cert you should earn. Continue to build your skill set and gain as many certifications as you can.

Having said all that, please note that I said entry-level twice in the first two paragraphs. I have had kids become A+ certified who, in reality, can't remember how to loosen a screw. Anyone can become certified, and some of those who did had a talent for passing the exams but not the native talent and intuition to be a decent repair tech.

If you are working for yourself, an A+ may not be necessary. You are already more-or-less established in the community. Perhaps advertising yourself as A+ certified will bring in more customers, maybe not. But I can't deny that having an A+ behind your name isn't cool.

Good luck, and if there is anything I can do to help you please let me know.


|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|Description|Tag tiddlers with date, author, etc. and/or scan the tiddler for any tags that are embedded in the content|
~AutoTagger ''automatically generates tag values for all newly created or edited tiddlers''
> see [[AutoTaggerPluginInfo]]
|<<option chkAutoTagAuthor>> add 'created by' author tag //(when a tiddler is first created)//||
|<<option chkAutoTagEditor>> add 'edited by' author tag //(when a tiddler is updated)//||
|<<option chkAutoTagDate>> add 'creation date' tag, using date format:|<<option txtAutoTagFormat>>|
|<<option chkAutoTagModDate>> add 'modification date' tag, using date format:|<<option txtAutoTagModFormat>>|
|<<option chkAutoTagNewTags>> add default tag(s) when creating new tiddlers:|<<option txtAutoTagNewTags>>|
|<<option chkAutoTagDefault>> add default tag(s) when saving tiddlers that are not otherwise tagged:|<<option txtAutoTagDefault>>|
|<<option chkAutoTagTrigger>> scan tiddler content for matching tags when tagged with:|<<option txtAutoTagTrigger>>|
|<<option chkAutoTagAliases>> replace 'aliased' tags using definitions contained in:|<<option txtAutoTagAliases>>|
2008.03.29 [1.7.1] in displayTiddler(), get title from tiddler object (if needed).<br>Fixes errors caused when calling function passes a tiddler *object* instead of a tiddler *title*
2008.03.27 [1.7.0] added aliasing (using [[AutoTaggerAliases]] definition)
2008.03.11 [*.*.*] plugin size reduction - moved documentation to [[AutoTaggerPluginInfo]]
2007.10.18 [1.6.0] hijack displayTiddler() to add option to use default tags when creating new tiddlers (preloads tag edit field).  Based on requests from RA and DavidWinfield.
| Please see [[AutoTaggerPluginInfo]] for previous revision details |
2005.08.15 [1.0.0] Initial Release
version.extensions.AutoTaggerPlugin= {major: 1, minor: 7, revision: 1, date: new Date(2008,3,29)};

var co=config.options; // shorthand temp variable
if (co.chkAutoTagDate==undefined) co.chkAutoTagDate=false;
if (co.chkAutoTagModDate==undefined) co.chkAutoTagModDate=false;
if (co.chkAutoTagEditor==undefined) co.chkAutoTagEditor=false;
if (co.chkAutoTagAuthor==undefined) co.chkAutoTagAuthor=false;
if (co.chkAutoTagTrigger==undefined) co.chkAutoTagTrigger=false;
if (co.txtAutoTagTrigger==undefined) co.txtAutoTagTrigger="auto";
if (co.chkAutoTagDefault==undefined) co.chkAutoTagDefault=false;
if (co.txtAutoTagDefault==undefined) co.txtAutoTagDefault="untagged";
if (co.txtAutoTagFormat==undefined) co.txtAutoTagFormat="YYYY.0MM.0DD";
if (co.txtAutoTagModFormat==undefined) co.txtAutoTagModFormat="YYYY.0MM.0DD";
if (co.chkAutoTagNewTags==undefined) co.chkAutoTagNewTags=false;
if (co.txtAutoTagNewTags==undefined) co.txtAutoTagNewTags="";
if (co.chkAutoTagAliases==undefined) co.chkAutoTagAliases=true;
if (co.txtAutoTagAliases==undefined) co.txtAutoTagAliases="AutoTaggerAliases";

// hijack displayTiddler()
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
	if (!config.options.chkAutoTagNewTags) return; // IF add new tags is enabled
	if (!story.isDirty(title)) return; // AND tiddler is being edited
	if (store.tiddlerExists(title)) return; // AND tiddler doesn't exist
	var newtags=config.options.txtAutoTagNewTags.readBracketedList(); // get new tags
	for (var t=0; t<newtags.length; t++)
		story.setTiddlerTag(title,newtags[t],+1); // preload tag edit field

// hijack saveTiddler()
	var co=config.options; // shorthand temp variable
	var newTags = [];
	if (tags) newTags = (typeof tags == "string") ? tags.readBracketedList() : tags;
	var txt=store.getTiddlerText(config.options.txtAutoTagAliases,'')
	if (config.options.chkAutoTagAliases && txt.length) {
		// replace tag aliases with one or more other tags
		var list=txt.split('\n');
		var map={};
		for (var i=0; i<list.length; i++)
		for (var a in map) if (newTags.contains(a)) {
			newTags.splice(newTags.indexOf(a),1); // remove alias
			for (var i=0; i<map[a].length; i++) // add replacements
	var now=new Date().formatString(co.txtAutoTagFormat);
	if (co.chkAutoTagDate && (store.getTiddler(title)==undefined))
		if (newTitle!=now) newTags.pushUnique(now); // created date - don't add to journals
	if (co.chkAutoTagAuthor && (store.getTiddler(title)==undefined))
		newTags.pushUnique(co.txtUserName); // creator
	if (co.chkAutoTagEditor && store.getTiddler(title))
		newTags.pushUnique(co.txtUserName); // modifier
	if (co.chkAutoTagModDate && store.getTiddler(title))
		newTags.pushUnique(new Date().formatString(co.txtAutoTagModFormat)); // modified
	var allTags = store.getTags(); // scan content for tags
	if (co.chkAutoTagTrigger && co.txtAutoTagTrigger.length	&& newTags.contains(co.txtAutoTagTrigger))
		for (var t=0; t<allTags.length; t++) {
			if (allTags[t][0]=='systemConfig') continue; // don't add 'systemConfig'
			if ((newBody.indexOf(allTags[t][0])!=-1) || (newTitle.indexOf(allTags[t][0])!=-1))
				newTags.pushUnique(allTags[t][0]); // autotag
	for (var t=0; t<newTags.length; t++)
		newTags[t]=String.encodeTiddlyLink(newTags[t]); // add brackets around tags
	if (!newTags.length && co.chkAutoTagDefault && co.txtAutoTagDefault.length)
		newTags.push(co.txtAutoTagDefault); // untagged - add default tag
	arguments[5]=newTags.join(" ");
	return this.autotagger_SaveTiddler.apply(this,arguments);
Blue Screen Of Death
This error is always caused by bad memory. 
Postby SimonZerafa on Wed Mar 25, 2009 9:39 am
Hi Guys,

This might sound obvious however this tip has just saved me (or rather a customer) today.

Before you start working on a customers PC, especially where you are going to make major changes to their installed OS or hardware, take an Image Backup of their existing OS before you start working on it.

Why? Well here are a few reasons:

1. Customer lie when they say they have backups; trust me they don't. If you have a backup when they call you when their PC is 50% through a clean Windows reinstall you will be their hero for life.

2. Some programs install themselves or save their data in non-standard locations. Outlook Express and Quickbooks are good examples of this. Just backing up "Document and Settings" is not enough. One day you will come across some "vertical market" package installed on a customers PC which does this and it won't be backed up by Fab's Autobackup (which is very good) and the customer will loose their data.

3. Image backups need to do lots of reads on the drive, this will pick up read or CRC errors and alert you to other more serious hard drive faults. Always take a backup before running any disk checking or data recovery packages such as Spinrite etc.

4. If something goes badly wrong when you are fixing the PC then you are covered because you have a backup of the customers OS and data (working or not). If your fixes go wrong then restore the image backup and start again.

If you need space to temporally store customers data then invest in a Gigabit NAS (Network Attached Storage) device on your Gigabit LAN (you do have Gigabit don't you?). RAID 1 or 0+1 is good but a separate drive is better than nothing.

If you don't have off-PC storage then partition the customers drive and use the new partition to create an image backup. This won't help if the drive fails completely but if the active partition fails or is corrupted any backup is better than no backup.

Always delete off-PC copies copies of customers data once you have finished; You don't need them.

DriveImageXML (http://www.runtime.org/driveimage-xml.htm) is a good free whole drive imaging package which will backup a running OS to a compressed image file or folder and the plugin is already included in the Ultimate Boot CD for Windows.

Kind Regards




Try this configuration:
* Change the file name to something like "Windows XP Update 04-14-09"
* For Windows XP...
** check the "English" box,
** uncheck "Exclude Service Packs",
** check "Include .NET Framework 3.5 SP1"
** check "Clean uo download directories"
** check "Verify downloads"
** check Create ISO image(s)... "per selected product and language (CD/DVD) and uncheck the other "per selected" box
Checks a disk and displays a status report.

CHKDSK [volume[[path]filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:size]]

  volume          Specifies the drive letter (followed by a colon),
                  mount point, or volume name.
  filename        FAT/FAT32 only: Specifies the files to check for fragmentation.
  /F              Fixes errors on the disk.
  /V              On FAT/FAT32: Displays the full path and name of every file
                  on the disk.
                  On NTFS: Displays cleanup messages if any.
  /R              Locates bad sectors and recovers readable information
                  (implies /F).
  /L:size         NTFS only:  Changes the log file size to the specified number
                  of kilobytes.  If size is not specified, displays current
  /X              Forces the volume to dismount first if necessary.
                  All opened handles to the volume would then be invalid
                  (implies /F).
  /I              NTFS only: Performs a less vigorous check of index entries.
  /C              NTFS only: Skips checking of cycles within the folder

The /I or /C switch reduces the amount of time required to run Chkdsk by
skipping certain checks of the volume.

[[145 quick cheat sheets|http://dreamcss.blogspot.com/2009/04/145-new-quick-cheat-sheets-for-some-of.html]]
Postby DocBrown on Fri Apr 17, 2009 2:28 pm
Lately I've seen malware-infected PCs with an interesting symptom: the clock has changed to 24-hour Military format. Has anyone else seen this?

Just in case you need to switch back to 12-hour time, go to Control Panel > Regional and Language Options, and click the Customize button next to the drop-down box. Go to the Time tab, and change the time format to hh:mm:ss tt. The ‘tt’ represents AM or PM. The value you just replaced should have looked something like H:mm:ss. Click OK, and OK again. This works for XP, I don't know if it works in Vista.
|Description:|Closes the tiddler if you click new tiddler then cancel. Default behaviour is to leave it open|
|Version:|3.0.1 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|

	handler_mptw_orig_closeUnsaved: config.commands.cancelTiddler.handler,

	handler: function(event,src,title) {
		if (!store.tiddlerExists(title) && !store.isShadowTiddler(title))
	 	return false;


Name: MptwGreen
Background: #fff
Foreground: #000
PrimaryPale: #9b9
PrimaryLight: #385
PrimaryMid: #031
PrimaryDark: #020
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

Here is a list of web and blog sites that rocker68 posted on the forum. Let me know if you'd like to add something.

14 April 2009

Is your computer tech consumer focused? Too many techs are technology focused. What's the difference?

A technology focused tech is one that focuses first and foremost on the technology. What hardware are you running? What operating system? This kind of tech is good at finding both problems and potential problems.  They find the optimum technology to fix the problem and they find it quickly. The downside is that the solution often has nothing to do with what the consumer can afford or what they need.   I know because I used to be this type of tech. I used to keep my systems on the bleeding edge of technology. Then I had an epiphany.

When you try to stay on the bleeding edge, you constantly have to upgrade. This is costly in both time and money. Additionally, cutting edge technology is not always stable and is often not supported in a ubiquitous fashion. By sticking with technology that is tried and true, you gain both stability and cost effectiveness. For instance, even though DDR3 memory is starting to come out and is faster than DDR2, DDR2 meets my needs and is stable. I’ll stick with DDR2 probably until DDR3 is the cheaper memory.

This down play in technology led me to change my habits. I no longer look at what’s the “best” technology for the problem. These days I look first at the needs of my customers and try to find the most stable technology to meet those needs. Color laser printers are becoming much cheaper than they used to be, but how many people actually need them? A doctor’s office? Probably not. A PR department? Definitely! I also take my customer’s desires into account. If the doctor really wants a color laser, I’ll make some recommendations for him, but I’d advise him to get either a black and white laser or a color inkjet as the ownership cost per page on a color laser is still prohibitively high for small businesses. Could I make more money on the color laser? Definitely. But the customer is better off without it, unless they need it.

I now focus on the customer, first and foremost.  What does the customer need now? What will the customer need next year? In five years? What can the customer afford? Is there an ideal solution that meets both need and price? If not, what are the trade offs? Can I make arrangements for an affordable upgrade in the future when the customer’s budget can finally meet their needs?  The most important question I have for my customers these days is: What are you trying to accomplish?

[[Tag Cloud]]

1 Short beep - System is operating normally.
1 Long beep - Memory refresh circuitry has failed which indicates a problem with the motherboard. Try reseating the memory DIMM or SIMM modules. Make sure if you have added memory that it is rated at the correct speed for the system.
1 Long 2 Short beeps - The video adapter has failed, or the video memory is having a read/write failure. Try reseating the video card. If the video card is a PCI video card, try moving it to another slot.
1 Long 3 Short beeps - The system does not detect a monitor. Verify that the monitor cable is properly attached to the video card or the onboard video and to the monitor (if the monitor has a detachable cable). If possible, try another monitor on the system to verify that the video adapter is operating properly.
2 or 3 beeps - There is a problem with the system’s memory. Reseat the memory DIMM or SIMM modules.
4 beeps - This indicates a non-functional timer. This indicates a problem with the motherboard.
5 beeps - This indicates a CPU (Central Processing Unit or processor) failure. Try reseating the processor.
6 beeps - This indicates a keyboard controller failure. Try reseating the keyboard connector.
7 beeps - Another indication of a processor problem. Reseat the processor.
8 beeps - This indicates a video memory read/write failure. Reseat the video card (if any) and memory DIMM or SIMM modules.
9 or 10 beeps - This indicates a ROM (Read-Only Memory) checksum error or shutdown register failure. This indicates a defective BIOS chip(s). Reseat the BIOS chips.
11 beeps - Indicates an error in the cache memory. If the system has a Pentium class processor, reseat the processor. If the system has a cache memory module, try reseating it. These beep codes will vary depending on the system

1.first and foremost, the knowledge that I do not know everything, the Podnutz community and google are my friends, friends help friends.
2.Secondly, your customers are paying for your knowledge and ability to handle the unknown (to them), not for a specific task.
3.EEE 701g, to test users Internet connection, router, monitor, printer, keyboard and/or mouse if needed.
4.Micro/portable mouse, rollup keyboard, testing users ports if needed.
5.CD's; Really only if users PC can not boot to USB
WinXP Pro, Home and media center
Win Vista (I have a Vista CD with every version of vista on it including all 32 bit and all 64 bit os's)
6.USB Thumbdrives
Acronis True Image Home 2008 (bootable)
Ubuntu 9.04 (bootable)
Knoppix 6.0.1 (dang pretty and bootable)
SpinRIte (bootable)
PartedMagic (bootable)
Slitaz (bootable) Slitaz has very low requirements and loads in seconds
Empty 16gig for data transfer
PortableApps formatted Stick
1.AnyVideoConverter http://www.any-video-converter.com
2.AutoHotkey http://www.autohotkey.com
3.Autoruns http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx
4.baregrep http://www.baremetalsoft.com/baregrep
5.Batch Renamer http://www.1-4a.com/rename
6.Burner http://www.mispbo.com/index.htm
7.ClamWinPortable http://portableapps.com/apps/utilities/clamwin_portable
8.Dial-a-fix http://wiki.lunarsoft.net/wiki/Dial-a-fix#Mirrors.2Fdownload_locations.2C_and_articles
9.D2D-mails (custom AutoHotKey exe that quickly checks all personal email accounts)
10.Dos Drop http://www.terabyteunlimited.com/downloads-free-software.htm
11.DriverMax http://www.innovative-sol.com/drivermax/
12.Exam Diff http://www.prestosoft.com/edp_examdiff.asp
13.ExpressBurn http://www.nch.com.au/burn/index.html
14.File List Generator http://www.portablefreeware.com/?id=1171
15.FileZillaPortable http://portableapps.com/apps/internet/filezilla_portable
16.FirefoxPortable http://portableapps.com/apps/internet/firefox_portable
17.FoxIT http://www.pendriveapps.com/foxit-portable-pdf-reader/
18.Glary Utilities http://www.glaryutilities.com/builds.html
19.HFS Webserver http://www.rejetto.com/hfs/?f=dl
20.ImageView http://www.portablefreeware.com/?id=49
21.irClean http://www.freewarezoom.com/archives/irclean
22.ISOCreator http://lc-iso-creator.en.softonic.com/
23.LiveCD http://mobalivecd.mobatek.net/en/
24.Locknote http://www.snapfiles.com/get/locknote.html
25.NetScan http://www.softperfect.com/products/networkscanner/
26.OpenOfficePortable http://portableapps.com/apps/office/openoffice_portable
27.PC-Decrapifier http://www.portablefreeware.com/?id=995
28.PingPlotter http://www.pingplotter.com/
29.PowerDefragmenterGUI http://majorgeeks.com/Power_Defragmenter_GUI_d4647.html
30.PasswordSafe http://passwordsafe.sourceforge.net/
31.SmitfraudFix http://siri.geekstogo.com/SmitfraudFix.php
32.SpaceMonger 1.4.0 http://www.sixty-five.cc/download/index.php?action=get&file=spcmn140.zip
33.Stinger http://vil.nai.com/vil/stinger/
34.SunbirdPortable http://portableapps.com/apps/office/sunbird_portable
35.SystemInfoWindows http://www.gtopala.com/siw-download.html
36.ThunderbirdPortable http://portableapps.com/apps/internet/thunderbird_portable
37.Undelete http://www.pendriveapps.com/undelete-plus-portable-file-recovery-software/
38.Uninstall http://www.revouninstaller.com/revo_uninstaller_free_download.html
39.Universal Extractor http://www.portablefreeware.com/?id=641
40.WinTidy http://www.pcmag.com/article2/0,4149,17748,00.asp
41.WirelessKey http://rapidshare.com/files/1871098/WirelessKeyView_v1.00.rar.html
42.XnView http://www.portablefreeware.com/?id=30
43.XP VirtualCD http://download.microsoft.com/download/7/b/6/7b6abd84-7841-4978-96f5-bd58df02efa2/winxpvirtualcdcontrolpanel_21.exe
44.xyplorer http://www.xyplorer.com/download.htm

Dang! That is a lot!

That is not all the software (not even close) but I have so many niche software it is crazy

The first thing any tech should do is to take a “litmus test”, some of these answers can only come with experience;
	How old is the PC

	What is it the OS

	What are the specs (hold down {winkey}+{print screen} to get to Control Panel / System Properties) processor specs, video card specs, hard drive and memory
		While your there look at “Device Manager” to see if you see any warning or info flags

	Does this computer have enough ram (personally 528mb Win2K, 528mb+ for XP and 1.5gb+ for Vista)

	How filled is this system (C:) drive, I always hear 10% free, personally I shoot for 25%

	How many Processes are running on this computer {Control}+{Shift}+{Escape} to get to “Task Manager”, click on the processes tab and on the bottom left you will see process count, for XP and Vista you should have about the same goals;
		Desktop (for laptops add 5-10 to each number)
			<30 Processes = Unbelievably good (rarely ever happen)
			30-40 process = Normal number of a fresh install or mildly used
			40-50 process = Computer will slowdown, things should not freeze
			50+ processes = Asking for trouble and 10+ minute boot time

	How long is the boot time

	Does the computer make and sounds

	Do you see any obvious “crap-ware”
		Limewire, Frostwire, FilesWire, Gnutella, MP3 Rocket, Kazaa, eMule. Edonkey2000/Overnet, Gnutella, FastTrack and Ares Galaxy
		or “real” crap-ware (in my opinion)
		Norton 360, McAfee Securoty Center, Trend Micro Internet Security
		or fake software
		MS Antivirus, also known as XP Antivirus, Windows Antivirus, Win Antivirus,  Antivirus Pro, Antivirus Pro 2009, Antivirus 2007, 2008, 2009, 2010, and 360, System Antivirus, Vista Antivirus, AntiSpywareMaster, XP AntiSpyware 2009, Antivirus XP Pro, Anti-Virus-1, WinFixer and dang near countless others

	Does this computer look/act infected or just slow

	I look in the “Program Files” folder as well, sometimes you can see spyware/malware installed right there, you have to know what to look for and what is normal, one obvious one is the folder “Save”, I have seen that one countless times

	Make sure to ask the customer “When did this start”, hopefully they will not say “months ago”

Never underestimate the customers possible acceptance of a backup and reinstall, if not

Now for the bad thing, so many variables could of happened during this initial “litmus test” that it is hard to say where to start or what to do next.  I look at the Task Manager, System Properties and Device Manager for a reason, sometimes you can not even access them because of policies put in place by the bad guys to keep you out, when this happens your choices are more limited, you can try and run Dial-a-fix to see if it can fix your permissions, you will be amazed how often it will work, if not you can try and either load the Ultimate Boot CD for Windows (UBCD4Win) or connect the drive as a secondary (or slave) drive and preform some cleaning from there

The first things I do normally after verifying I have normal level (administrator) access to everything so far, is;
	If the customer says anything like “it starting acting like this last Monday”, I do a system restore to a date before last Monday, typically at least a few days
	Run portanle ccleaner, it is a great tool that can speed up all of your future task
	Run Glary Utilities, goto Modules then “Uninstall Manager” then I click “batch uninstall” on the toolbar
	Run MalewareBytes in “Quick Scan” listen to Podnutz episode 32 http://www.podnutz.com/podnutz/podnutz032 why I do not do a full scan
	While that is running I download Kasperski AVP Tool http://ftp.kaspersky.com/devbuilds/AVPTool/ I never keep this on a drive because every few hours the definition files are updated so why keep old stuff around
	Keep in mind if all these scans come back “clean” you might have a rootkit on your hands, I like the speed of SanityCheck http://www.resplendence.com/sanity but because rootkits are not coman I am not sure how accurate it's scans are

Now I sit back and go through another round of “judging” is this computer fixed, fixable or should I just reformat and reinstall?

I think this should get you off the ground and on the right track, once again please email me doortodoorgeek@gmail.com with any questions or comments

All Editorials are the opinions of their respective authors and do not necessarily reflect the opinions of Steve, Podnutz, or any of other members of the forums.

|Description:|Adds a New tiddler button in the tag drop down|
|Version:|3.2 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|

window.onClickTag_mptw_orig = window.onClickTag;
window.onClickTag = function(e) {
	var tag = this.getAttribute("tag");
	var title = this.getAttribute("tiddler");
	// Thanks Saq, you're a genius :)
	var popup = Popup.stack[Popup.stack.length-1].popup;
	wikify("<<newTiddler label:'New tiddler' tag:'"+tag+"'>>",createTiddlyElement(popup,"li"));
	return false;

Two quick things you can do;
First one, from the command line type "sudo fdisk -l"
Second you can get a gui by hitting {alt+F2} then type "gksudo gparted" on the right side of the toolbar you can select the physical disk and it gives you the mount point

Computer Repair with Diagnostic Flowcharts

A current version of DOS is still around, its called FreeDOS. http://www.freedos.org/ It's an open source version of DOS. Has support for modern hardware, like USB drives etc.

It should also be possible to hook up 5.25 inch floppy drives to this DOS machine using the floppy disk plug on the mainboard(provided that modern mainboard still has a FDC), using the 5.25 inch floppy disk cable from the original PC. One can even still get 5.25 floppy disks. http://www.oldsoftware.com/floppy_disks.html However the customer should move over to a more modern storage media, like USB sticks or CDs which the above mentioned FreeDOS supports completely.
Hello All

I called this in a few episodes ago and by demand I am posting these steps, some people might blow up on me, go ahead but I have gotten nothing but great results

On all fresh installs I do this (I will let you know what I do different on cleanups)

I do this before updates and before any installs for XP, most (or all) of these are in Vista

Start/Settings/Control Panel/Syytem {or {win key} + {Pause Break})
Advanced Tab
Settings button by performance
Visual Effects Tab, click "Adjust for best performance", then scroll down and check the bottom two "Use drop labels for" yada yada and "Use visual styles on windows and buttons"
Next, Advanced Tab
Leave "Processes" and "Programs" (90+% of the time this is what you want)
Then click "Change" by "Virtual Memory"
Then select "System Managed Sized", then click "Set", then click "Ok"
You will get a "reboot" warning just saying for the changes to take effect you must reboot, then click "Ok"
The window style should not change, everything should look the same
Then in "Startup and recovery" click "Settings" and uncheck "Send a administrative alert" (this is for large businesses not home users) and I uncheck "Automatically restart" (without this this a bluescreen will only blink for a split second and you can not read it)
Next click the "Error Reporting" button on the bottom, then I click "Disable error reporting" and click "But notify me" yada yada, I do this because at it's base windows and windows apps are so buggie and crashie, I choose to get less calls from my customers and I believe my customers are thankful

The big one I expect to take the hit on is the page file and setting it to auto, I do this because too many times I have had calls from users who say they have the error message saying "you system is running low on virtual memory", I believe that with todays HD sizes and the standard memory I leave a computer with makes the "Fixed" sized extremely unneeded, for any XP box with at least 768mb of ram or a VIsta box with at least 1.5gb of ram I use these settings

Take these with a grain of salt

|Description:|Allows conditional inclusion/exclusion in templates|
|Version:|3.1 ($Rev: 3919 $)|
|Date:|$Date: 2008-03-13 02:03:12 +1000 (Thu, 13 Mar 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|
For use in ViewTemplate and EditTemplate. Example usage:
{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}
{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}

window.hideWhenLastTest = false;

window.removeElementWhen = function(test,place) {
	window.hideWhenLastTest = test;
	if (test) {


	hideWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( eval(paramString), place);

	showWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !eval(paramString), place);

	hideWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAll(params), place);

	showWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAll(params), place);

	hideWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAny(params), place);

	showWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAny(params), place);

	hideWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAll(params), place);

	showWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAll(params), place);

	hideWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0]), place);

	showWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !(store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0])), place);

	hideWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.title == params[0], place);

	showWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.title != params[0], place);

	'else': { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !window.hideWhenLastTest, place);


|Description:|A handy way to insert timestamps in your tiddler content|
|Version:|1.0.10 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|
If you enter {ts} in your tiddler content (without the spaces) it will be replaced with a timestamp when you save the tiddler. Full list of formats:
* {ts} or {t} -> timestamp
* {ds} or {d} -> datestamp
* !ts or !t at start of line -> !!timestamp
* !ds or !d at start of line -> !!datestamp
(I added the extra ! since that's how I like it. Remove it from translations below if required)
* Change the timeFormat and dateFormat below to suit your preference.
* See also http://mptw2.tiddlyspot.com/#AutoCorrectPlugin
* You could invent other translations and add them to the translations array below.

config.InstantTimestamp = {

	// adjust to suit
	timeFormat: 'DD/0MM/YY 0hh:0mm',
	dateFormat: 'DD/0MM/YY',

	translations: [
		[/^!ts?$/img,  "'!!{{ts{'+now.formatString(config.InstantTimestamp.timeFormat)+'}}}'"],
		[/^!ds?$/img,  "'!!{{ds{'+now.formatString(config.InstantTimestamp.dateFormat)+'}}}'"],

		// thanks Adapted Cat

	excludeTags: [

	excludeTiddlers: [
		// more?


TiddlyWiki.prototype.saveTiddler_mptw_instanttimestamp = TiddlyWiki.prototype.saveTiddler;
TiddlyWiki.prototype.saveTiddler = function(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created) {

	tags = tags ? tags : []; // just in case tags is null
	tags = (typeof(tags) == "string") ? tags.readBracketedList() : tags;
	var conf = config.InstantTimestamp;

	if ( !tags.containsAny(conf.excludeTags) && !conf.excludeTiddlers.contains(newTitle) ) {

		var now = new Date();
		var trans = conf.translations;
		for (var i=0;i<trans.length;i++) {
			newBody = newBody.replace(trans[i][0], eval(trans[i][1]));

	// TODO: use apply() instead of naming all args?
	return this.saveTiddler_mptw_instanttimestamp(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created);

// you can override these in StyleSheet 
setStylesheet(".ts,.ds { font-style:italic; }","instantTimestampStyles");

|''Version:''|1.0.2 (2007-07-25)|
|''Author:''|Udo Borkowski (ub [at] abego-software [dot] de)|
|''Documentation:''|[[IntelliTaggerPlugin Documentation]]|
|''~SourceCode:''|[[IntelliTaggerPlugin SourceCode]]|
|''Licence:''|[[BSD open source license (abego Software)]]|
|''Browser:''|Firefox or better|
!Version History
* 1.0.2 (2007-07-25): 
** Feature: "Return" key may be used to accept first tag suggestion (beside "Alt-1")
** Bugfix: Keyboard shortcuts (Alt+3 etc.) shifted
* 1.0.1 (2007-05-18): Improvement: Speedup when using TiddlyWikis with many tags
* 1.0.0 (2006-04-26): Initial release

// /%
if(!version.extensions.IntelliTaggerPlugin){if(!window.abego){window.abego={};}if(!abego.internal){abego.internal={};}abego.alertAndThrow=function(s){alert(s);throw s;};if(version.major<2){abego.alertAndThrow("Use TiddlyWiki 2.0.8 or better to run the IntelliTagger Plugin.");}version.extensions.IntelliTaggerPlugin={major:1,minor:0,revision:2,date:new Date(2007,6,25),type:"plugin",source:"http://tiddlywiki.abego-software.de/#IntelliTaggerPlugin",documentation:"[[IntelliTaggerPlugin Documentation]]",sourcecode:"[[IntelliTaggerPlugin SourceCode]]",author:"Udo Borkowski (ub [at] abego-software [dot] de)",licence:"[[BSD open source license (abego Software)]]",tiddlywiki:"Version 2.0.8 or better",browser:"Firefox or better"};abego.createEllipsis=function(_2){var e=createTiddlyElement(_2,"span");e.innerHTML="&hellip;";};abego.isPopupOpen=function(_4){return _4&&_4.parentNode==document.body;};abego.openAsPopup=function(_5){if(_5.parentNode!=document.body){document.body.appendChild(_5);}};abego.closePopup=function(_6){if(abego.isPopupOpen(_6)){document.body.removeChild(_6);}};abego.getWindowRect=function(){return {left:findScrollX(),top:findScrollY(),height:findWindowHeight(),width:findWindowWidth()};};abego.moveElement=function(_7,_8,_9){_7.style.left=_8+"px";_7.style.top=_9+"px";};abego.centerOnWindow=function(_a){if(_a.style.position!="absolute"){throw "abego.centerOnWindow: element must have absolute position";}var _b=abego.getWindowRect();abego.moveElement(_a,_b.left+(_b.width-_a.offsetWidth)/2,_b.top+(_b.height-_a.offsetHeight)/2);};abego.isDescendantOrSelf=function(_c,e){while(e){if(_c==e){return true;}e=e.parentNode;}return false;};abego.toSet=function(_e){var _f={};for(var i=0;i<_e.length;i++){_f[_e[i]]=true;}return _f;};abego.filterStrings=function(_11,_12,_13){var _14=[];for(var i=0;i<_11.length&&(_13===undefined||_14.length<_13);i++){var s=_11[i];if(s.match(_12)){_14.push(s);}}return _14;};abego.arraysAreEqual=function(a,b){if(!a){return !b;}if(!b){return false;}var n=a.length;if(n!=b.length){return false;}for(var i=0;i<n;i++){if(a[i]!=b[i]){return false;}}return true;};abego.moveBelowAndClip=function(_1b,_1c){if(!_1c){return;}var _1d=findPosX(_1c);var _1e=findPosY(_1c);var _1f=_1c.offsetHeight;var _20=_1d;var _21=_1e+_1f;var _22=findWindowWidth();if(_22<_1b.offsetWidth){_1b.style.width=(_22-100)+"px";}var _23=_1b.offsetWidth;if(_20+_23>_22){_20=_22-_23-30;}if(_20<0){_20=0;}_1b.style.left=_20+"px";_1b.style.top=_21+"px";_1b.style.display="block";};abego.compareStrings=function(a,b){return (a==b)?0:(a<b)?-1:1;};abego.sortIgnoreCase=function(arr){var _27=[];var n=arr.length;for(var i=0;i<n;i++){var s=arr[i];_27.push([s.toString().toLowerCase(),s]);}_27.sort(function(a,b){return (a[0]==b[0])?0:(a[0]<b[0])?-1:1;});for(i=0;i<n;i++){arr[i]=_27[i][1];}};abego.getTiddlerField=function(_2d,_2e,_2f){var _30=document.getElementById(_2d.idPrefix+_2e);var e=null;if(_30!=null){var _32=_30.getElementsByTagName("*");for(var t=0;t<_32.length;t++){var c=_32[t];if(c.tagName.toLowerCase()=="input"||c.tagName.toLowerCase()=="textarea"){if(!e){e=c;}if(c.getAttribute("edit")==_2f){e=c;}}}}return e;};abego.setRange=function(_35,_36,end){if(_35.setSelectionRange){_35.setSelectionRange(_36,end);var max=0+_35.scrollHeight;var len=_35.textLength;var top=max*_36/len,bot=max*end/len;_35.scrollTop=Math.min(top,(bot+top-_35.clientHeight)/2);}else{if(_35.createTextRange!=undefined){var _3b=_35.createTextRange();_3b.collapse();_3b.moveEnd("character",end);_3b.moveStart("character",_36);_3b.select();}else{_35.select();}}};abego.internal.TagManager=function(){var _3c=null;var _3d=function(){if(_3c){return;}_3c={};store.forEachTiddler(function(_3e,_3f){for(var i=0;i<_3f.tags.length;i++){var tag=_3f.tags[i];var _42=_3c[tag];if(!_42){_42=_3c[tag]={count:0,tiddlers:{}};}_42.tiddlers[_3f.title]=true;_42.count+=1;}});};var _43=TiddlyWiki.prototype.saveTiddler;TiddlyWiki.prototype.saveTiddler=function(_44,_45,_46,_47,_48,_49){var _4a=this.fetchTiddler(_44);var _4b=_4a?_4a.tags:[];var _4c=(typeof _49=="string")?_49.readBracketedList():_49;_43.apply(this,arguments);if(!abego.arraysAreEqual(_4b,_4c)){abego.internal.getTagManager().reset();}};var _4d=TiddlyWiki.prototype.removeTiddler;TiddlyWiki.prototype.removeTiddler=function(_4e){var _4f=this.fetchTiddler(_4e);var _50=_4f&&_4f.tags.length>0;_4d.apply(this,arguments);if(_50){abego.internal.getTagManager().reset();}};this.reset=function(){_3c=null;};this.getTiddlersWithTag=function(tag){_3d();var _52=_3c[tag];return _52?_52.tiddlers:null;};this.getAllTags=function(_53){_3d();var _54=[];for(var i in _3c){_54.push(i);}for(i=0;_53&&i<_53.length;i++){_54.pushUnique(_53[i],true);}abego.sortIgnoreCase(_54);return _54;};this.getTagInfos=function(){_3d();var _56=[];for(var _57 in _3c){_56.push([_57,_3c[_57]]);}return _56;};var _58=function(a,b){var a1=a[1];var b1=b[1];var d=b[1].count-a[1].count;return d!=0?d:abego.compareStrings(a[0].toLowerCase(),b[0].toLowerCase());};this.getSortedTagInfos=function(){_3d();var _5e=this.getTagInfos();_5e.sort(_58);return _5e;};this.getPartnerRankedTags=function(_5f){var _60={};for(var i=0;i<_5f.length;i++){var _62=this.getTiddlersWithTag(_5f[i]);for(var _63 in _62){var _64=store.getTiddler(_63);if(!(_64 instanceof Tiddler)){continue;}for(var j=0;j<_64.tags.length;j++){var tag=_64.tags[j];var c=_60[tag];_60[tag]=c?c+1:1;}}}var _68=abego.toSet(_5f);var _69=[];for(var n in _60){if(!_68[n]){_69.push(n);}}_69.sort(function(a,b){var d=_60[b]-_60[a];return d!=0?d:abego.compareStrings(a.toLowerCase(),b.toLowerCase());});return _69;};};abego.internal.getTagManager=function(){if(!abego.internal.gTagManager){abego.internal.gTagManager=new abego.internal.TagManager();}return abego.internal.gTagManager;};(function(){var _6e=2;var _6f=1;var _70=30;var _71;var _72;var _73;var _74;var _75;var _76;if(!abego.IntelliTagger){abego.IntelliTagger={};}var _77=function(){return _72;};var _78=function(tag){return _75[tag];};var _7a=function(s){var i=s.lastIndexOf(" ");return (i>=0)?s.substr(0,i):"";};var _7d=function(_7e){var s=_7e.value;var len=s.length;return (len>0&&s[len-1]!=" ");};var _81=function(_82){var s=_82.value;var len=s.length;if(len>0&&s[len-1]!=" "){_82.value+=" ";}};var _85=function(tag,_87,_88){if(_7d(_87)){_87.value=_7a(_87.value);}story.setTiddlerTag(_88.title,tag,0);_81(_87);abego.IntelliTagger.assistTagging(_87,_88);};var _89=function(n){if(_76&&_76.length>n){return _76[n];}return (_74&&_74.length>n)?_74[n]:null;};var _8b=function(n,_8d,_8e){var _8f=_89(n);if(_8f){_85(_8f,_8d,_8e);}};var _90=function(_91){var pos=_91.value.lastIndexOf(" ");var _93=(pos>=0)?_91.value.substr(++pos,_91.value.length):_91.value;return new RegExp(_93.escapeRegExp(),"i");};var _94=function(_95,_96){var _97=0;for(var i=0;i<_95.length;i++){if(_96[_95[i]]){_97++;}}return _97;};var _99=function(_9a,_9b,_9c){var _9d=1;var c=_9a[_9b];for(var i=_9b+1;i<_9a.length;i++){if(_9a[i][1].count==c){if(_9a[i][0].match(_9c)){_9d++;}}else{break;}}return _9d;};var _a0=function(_a1,_a2){var _a3=abego.internal.getTagManager().getSortedTagInfos();var _a4=[];var _a5=0;for(var i=0;i<_a3.length;i++){var c=_a3[i][1].count;if(c!=_a5){if(_a2&&(_a4.length+_99(_a3,i,_a1)>_a2)){break;}_a5=c;}if(c==1){break;}var s=_a3[i][0];if(s.match(_a1)){_a4.push(s);}}return _a4;};var _a9=function(_aa,_ab){return abego.filterStrings(abego.internal.getTagManager().getAllTags(_ab),_aa);};var _ac=function(){if(!_71){return;}var _ad=store.getTiddlerText("IntelliTaggerMainTemplate");if(!_ad){_ad="<b>Tiddler IntelliTaggerMainTemplate not found</b>";}_71.innerHTML=_ad;applyHtmlMacros(_71,null);refreshElements(_71,null);};var _ae=function(e){if(!e){var e=window.event;}var tag=this.getAttribute("tag");if(_73){_73.call(this,tag,e);}return false;};var _b2=function(_b3){createTiddlyElement(_b3,"span",null,"tagSeparator"," | ");};var _b4=function(_b5,_b6,_b7,_b8,_b9){if(!_b6){return;}var _ba=_b8?abego.toSet(_b8):{};var n=_b6.length;var c=0;for(var i=0;i<n;i++){var tag=_b6[i];if(_ba[tag]){continue;}if(c>0){_b2(_b5);}if(_b9&&c>=_b9){abego.createEllipsis(_b5);break;}c++;var _bf="";var _c0=_b5;if(_b7<10){_c0=createTiddlyElement(_b5,"span",null,"numberedSuggestion");_b7++;var key=_b7<10?""+(_b7):"0";createTiddlyElement(_c0,"span",null,"suggestionNumber",key+") ");var _c2=_b7==1?"Return or ":"";_bf=" (Shortcut: %1Alt-%0)".format([key,_c2]);}var _c3=config.views.wikified.tag.tooltip.format([tag]);var _c4=(_78(tag)?"Remove tag '%0'%1":"Add tag '%0'%1").format([tag,_bf]);var _c5="%0; Shift-Click: %1".format([_c4,_c3]);var btn=createTiddlyButton(_c0,tag,_c5,_ae,_78(tag)?"currentTag":null);btn.setAttribute("tag",tag);}};var _c7=function(){if(_71){window.scrollTo(0,ensureVisible(_71));}if(_77()){window.scrollTo(0,ensureVisible(_77()));}};var _c8=function(e){if(!e){var e=window.event;}if(!_71){return;}var _cb=resolveTarget(e);if(_cb==_77()){return;}if(abego.isDescendantOrSelf(_71,_cb)){return;}abego.IntelliTagger.close();};addEvent(document,"click",_c8);var _cc=Story.prototype.gatherSaveFields;Story.prototype.gatherSaveFields=function(e,_ce){_cc.apply(this,arguments);var _cf=_ce.tags;if(_cf){_ce.tags=_cf.trim();}};var _d0=function(_d1){story.focusTiddler(_d1,"tags");var _d2=abego.getTiddlerField(story,_d1,"tags");if(_d2){var len=_d2.value.length;abego.setRange(_d2,len,len);window.scrollTo(0,ensureVisible(_d2));}};var _d4=config.macros.edit.handler;config.macros.edit.handler=function(_d5,_d6,_d7,_d8,_d9,_da){_d4.apply(this,arguments);var _db=_d7[0];if((_da instanceof Tiddler)&&_db=="tags"){var _dc=_d5.lastChild;_dc.onfocus=function(e){abego.IntelliTagger.assistTagging(_dc,_da);setTimeout(function(){_d0(_da.title);},100);};_dc.onkeyup=function(e){if(!e){var e=window.event;}if(e.altKey&&!e.ctrlKey&&!e.metaKey&&(e.keyCode>=48&&e.keyCode<=57)){_8b(e.keyCode==48?9:e.keyCode-49,_dc,_da);}else{if(e.ctrlKey&&e.keyCode==32){_8b(0,_dc,_da);}}if(!e.ctrlKey&&(e.keyCode==13||e.keyCode==10)){_8b(0,_dc,_da);}setTimeout(function(){abego.IntelliTagger.assistTagging(_dc,_da);},100);return false;};_81(_dc);}};var _e0=function(e){if(!e){var e=window.event;}var _e3=resolveTarget(e);var _e4=_e3.getAttribute("tiddler");if(_e4){story.displayTiddler(_e3,_e4,"IntelliTaggerEditTagsTemplate",false);_d0(_e4);}return false;};var _e5=config.macros.tags.handler;config.macros.tags.handler=function(_e6,_e7,_e8,_e9,_ea,_eb){_e5.apply(this,arguments);abego.IntelliTagger.createEditTagsButton(_eb,createTiddlyElement(_e6.lastChild,"li"));};var _ec=function(){if(_71&&_72&&!abego.isDescendantOrSelf(document,_72)){abego.IntelliTagger.close();}};setInterval(_ec,100);abego.IntelliTagger.displayTagSuggestions=function(_ed,_ee,_ef,_f0,_f1){_74=_ed;_75=abego.toSet(_ee);_76=_ef;_72=_f0;_73=_f1;if(!_71){_71=createTiddlyElement(document.body,"div",null,"intelliTaggerSuggestions");_71.style.position="absolute";}_ac();abego.openAsPopup(_71);if(_77()){var w=_77().offsetWidth;if(_71.offsetWidth<w){_71.style.width=(w-2*(_6e+_6f))+"px";}abego.moveBelowAndClip(_71,_77());}else{abego.centerOnWindow(_71);}_c7();};abego.IntelliTagger.assistTagging=function(_f3,_f4){var _f5=_90(_f3);var s=_f3.value;if(_7d(_f3)){s=_7a(s);}var _f7=s.readBracketedList();var _f8=_f7.length>0?abego.filterStrings(abego.internal.getTagManager().getPartnerRankedTags(_f7),_f5,_70):_a0(_f5,_70);abego.IntelliTagger.displayTagSuggestions(_a9(_f5,_f7),_f7,_f8,_f3,function(tag,e){if(e.shiftKey){onClickTag.call(this,e);}else{_85(tag,_f3,_f4);}});};abego.IntelliTagger.close=function(){abego.closePopup(_71);_71=null;return false;};abego.IntelliTagger.createEditTagsButton=function(_fb,_fc,_fd,_fe,_ff,id,_101){if(!_fd){_fd="[edit]";}if(!_fe){_fe="Edit the tags";}if(!_ff){_ff="editTags";}var _102=createTiddlyButton(_fc,_fd,_fe,_e0,_ff,id,_101);_102.setAttribute("tiddler",(_fb instanceof Tiddler)?_fb.title:String(_fb));return _102;};abego.IntelliTagger.getSuggestionTagsMaxCount=function(){return 100;};config.macros.intelliTagger={label:"intelliTagger",handler:function(_103,_104,_105,_106,_107,_108){var _109=_107.parseParams("list",null,true);var _10a=_109[0]["action"];for(var i=0;_10a&&i<_10a.length;i++){var _10c=_10a[i];var _10d=config.macros.intelliTagger.subhandlers[_10c];if(!_10d){abego.alertAndThrow("Unsupported action '%0'".format([_10c]));}_10d(_103,_104,_105,_106,_107,_108);}},subhandlers:{showTags:function(_10e,_10f,_110,_111,_112,_113){_b4(_10e,_74,_76?_76.length:0,_76,abego.IntelliTagger.getSuggestionTagsMaxCount());},showFavorites:function(_114,_115,_116,_117,_118,_119){_b4(_114,_76,0);},closeButton:function(_11a,_11b,_11c,_11d,_11e,_11f){var _120=createTiddlyButton(_11a,"close","Close the suggestions",abego.IntelliTagger.close);},version:function(_121){var t="IntelliTagger %0.%1.%2".format([version.extensions.IntelliTaggerPlugin.major,version.extensions.IntelliTaggerPlugin.minor,version.extensions.IntelliTaggerPlugin.revision]);var e=createTiddlyElement(_121,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de/#IntelliTaggerPlugin");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">"+t+"<font>";},copyright:function(_124){var e=createTiddlyElement(_124,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">&copy; 2006-2007 <b><font color=\"red\">abego</font></b> Software<font>";}}};})();config.shadowTiddlers["IntelliTaggerStyleSheet"]="/***\n"+"!~IntelliTagger Stylesheet\n"+"***/\n"+"/*{{{*/\n"+".intelliTaggerSuggestions {\n"+"\tposition: absolute;\n"+"\twidth: 600px;\n"+"\n"+"\tpadding: 2px;\n"+"\tlist-style: none;\n"+"\tmargin: 0;\n"+"\n"+"\tbackground: #eeeeee;\n"+"\tborder: 1px solid DarkGray;\n"+"}\n"+"\n"+".intelliTaggerSuggestions .currentTag   {\n"+"\tfont-weight: bold;\n"+"}\n"+"\n"+".intelliTaggerSuggestions .suggestionNumber {\n"+"\tcolor: #808080;\n"+"}\n"+"\n"+".intelliTaggerSuggestions .numberedSuggestion{\n"+"\twhite-space: nowrap;\n"+"}\n"+"\n"+".intelliTaggerSuggestions .intelliTaggerFooter {\n"+"\tmargin-top: 4px;\n"+"\tborder-top-width: thin;\n"+"\tborder-top-style: solid;\n"+"\tborder-top-color: #999999;\n"+"}\n"+".intelliTaggerSuggestions .favorites {\n"+"\tborder-bottom-width: thin;\n"+"\tborder-bottom-style: solid;\n"+"\tborder-bottom-color: #999999;\n"+"\tpadding-bottom: 2px;\n"+"}\n"+"\n"+".intelliTaggerSuggestions .normalTags {\n"+"\tpadding-top: 2px;\n"+"}\n"+"\n"+".intelliTaggerSuggestions .intelliTaggerFooter .button {\n"+"\tfont-size: 10px;\n"+"\n"+"\tpadding-left: 0.3em;\n"+"\tpadding-right: 0.3em;\n"+"}\n"+"\n"+"/*}}}*/\n";config.shadowTiddlers["IntelliTaggerMainTemplate"]="<!--\n"+"{{{\n"+"-->\n"+"<div class=\"favorites\" macro=\"intelliTagger action: showFavorites\"></div>\n"+"<div class=\"normalTags\" macro=\"intelliTagger action: showTags\"></div>\n"+"<!-- The Footer (with the Navigation) ============================================ -->\n"+"<table class=\"intelliTaggerFooter\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tbody>\n"+"  <tr>\n"+"\t<td align=\"left\">\n"+"\t\t<span macro=\"intelliTagger action: closeButton\"></span>\n"+"\t</td>\n"+"\t<td align=\"right\">\n"+"\t\t<span macro=\"intelliTagger action: version\"></span>, <span macro=\"intelliTagger action: copyright \"></span>\n"+"\t</td>\n"+"  </tr>\n"+"</tbody></table>\n"+"<!--\n"+"}}}\n"+"-->\n";config.shadowTiddlers["IntelliTaggerEditTagsTemplate"]="<!--\n"+"{{{\n"+"-->\n"+"<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler'></div>\n"+"<div class='title' macro='view title'></div>\n"+"<div class='tagged' macro='tags'></div>\n"+"<div class='viewer' macro='view text wikified'></div>\n"+"<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler'></div>\n"+"<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>\n"+"<!--\n"+"}}}\n"+"-->\n";config.shadowTiddlers["BSD open source license (abego Software)"]="See [[Licence|http://tiddlywiki.abego-software.de/#%5B%5BBSD%20open%20source%20license%5D%5D]].";config.shadowTiddlers["IntelliTaggerPlugin Documentation"]="[[Documentation on abego Software website|http://tiddlywiki.abego-software.de/doc/IntelliTagger.pdf]].";config.shadowTiddlers["IntelliTaggerPlugin SourceCode"]="[[Plugin source code on abego Software website|http://tiddlywiki.abego-software.de/archive/IntelliTaggerPlugin/Plugin-IntelliTagger-src.1.0.2.js]]\n";(function(){var _126=restart;restart=function(){setStylesheet(store.getTiddlerText("IntelliTaggerStyleSheet"),"IntelliTaggerStyleSheet");_126.apply(this,arguments);};})();}
// %/
From http://ketarin.canneverbe.com/. Once set up it will automagically fetch the latest setup packages of your favorite tools and apps without you having to go to each app's site and get them one by one. Run Ketarin before you head out for a repair job and you'll be guaranteed you have the latest packages. If these apps are available from filehippo.com, setup will be incredibly trivial.

Note that Ketarin will not grab the latest definitions for a given app, just the latest setup package.		
Generally referred to as "ZIF" (Zero Insertion Force) or "LIF" (Low Insertion Force) cable connectors. The ZIF variety is the kind where the cable end simply slides into the connector; the "LIF" is the kind that has the small pressure retention bar that must be released before the cable can be disconnected, and then pushed back into it's locked position when the cable is attached.

FWIW, you'll probably have a rough time finding this item by itself. You will probably have to buy a complete motherboard to replace it...you can search for non-working motherboards and hope the one you buy has that connector intact. It is a real pain to de-solder them, and soldering then new one onto the mobo is even more difficult.

by fubarjohnnyr on Mon Apr 06, 2009 7:59 am

Driver listing for many make and models of laptops. Primarily useful for rounding up drivers when retrograding current Vista machines back into XP.
Podnutz Official Laptop Repair Videos

* Do you want to learn how to fix laptops?
* Are you afraid to work on laptops for fear of breaking them?
* Do you want to expand your skill set so you can make big money fixing laptops instead of sending the business away?
* Receive the same high level of Podnutz quality, as Steve releases the long awaited Laptop Repair Video Collection!
From the forums:

___Larger cluster size to guard against corruption?___
by Blain on Mon Aug 03, 2009 7:57 am 

Current drives use perpendicular recording and are more subject to data corruption than the older longitudinal format...
Would using a very large cluster size, when formatting with Windows NTFS, help mitigate data corruption by giving data a larger "pad/area" to sit on?
With current drives being so large, "storage efficiency" doesn't seem to be an issue as in the past with small capacity drives.Blain 
Posts: 38
Joined: Sat Apr 11, 2009 8:04 am 
Private message Top
Edit postDelete postReport this postInformationReply with quote Re: ___Larger cluster size to guard against corruption?___
by chrisweible on Mon Aug 03, 2009 2:34 pm 

A larger cluster size won't change your bit density. It only means that when a cluster goes bad, more of the drive gets marked bad. Larger cluster sizes was originally how the OS read larger drives. DOS only supported x number of sectors on a drive. For larger drive they clustered the sectors so that DOS treated each cluster as it had treated each sector before. This changed the limit from x sectors to x clusters. Since clusters were bigger, the drives could be bigger. I remember being excited by this technology and seeing the first 300mb drives come out.

I'm not saying a larger cluster size is a bad thing, or even that it won't help. It might help prevent the spread of bad sectors, but it won't change your bit density and therefore won't protect any single cluster from going bad.
Chris Weible
Podnutz Forum Moderator
Posts: 211
Joined: Wed Nov 19, 2008 12:41 pm
Location: Des Moines, IA 
Private messageWebsite Top
Edit postDelete postReport this postWarn userInformationReply with quote Re: ___Larger cluster size to guard against corruption?___
by ElBurro on Thu Aug 06, 2009 8:46 am 

where exactly did you get the idea that perpendicular recording causes more data corruption. I've never seen any evidence to support this.
"I am Bender please insert girdirt" - BenderElBurro 
Posts: 481
Joined: Fri May 09, 2008 7:07 pm 
Private message Top
Edit postDelete postReport this postInformationReply with quote Re: ___Larger cluster size to guard against corruption?___
by chrisweible on Thu Aug 06, 2009 1:46 pm 

I don't think it's that perpendicular recording causes more data corruption, but anytime you pack more data into the same space it inherently increases the risk. I small dust particle with damage the same amount of disk surface no matter the density, therefore it will cause more data damage to drives with a higher data density. 

A lot of people think that since perpendicular recording is harder to read accurately it’s necessarily less reliable. But with modern redundancy and consistency algorithms they are at least as reliable as older drives.
Chris Weible
Podnutz Forum Moderator
Posts: 211
Joined: Wed Nov 19, 2008 12:41 pm
Location: Des Moines, IA 
Private messageWebsite Top
Edit postDelete postReport this postWarn userInformationReply with quote Re: ___Larger cluster size to guard against corruption?___
by ElBurro on Thu Aug 06, 2009 2:16 pm 

chrisweible wrote:
I don't think it's that perpendicular recording causes more data corruption, but anytime you pack more data into the same space it inherently increases the risk. I small dust particle with damage the same amount of disk surface no matter the density, therefore it will cause more data damage to drives with a higher data density. 

A lot of people think that since perpendicular recording is harder to read accurately it’s necessarily less reliable. But with modern redundancy and consistency algorithms they are at least as reliable as older drives.

I'll agree with this. One word does come to mind though backup no matter what the size or type of technology the drive uses.
"I am Bender please insert girdirt" - Bender
|Description:|Intelligently limit the number of backup files you create|
|Version:|3.0.1 ($Rev: 2320 $)|
|Date:|$Date: 2007-06-18 22:37:46 +1000 (Mon, 18 Jun 2007) $|
|Author:|Simon Baird|
You end up with just backup one per year, per month, per weekday, per hour, minute, and second.  So total number won't exceed about 200 or so. Can be reduced by commenting out the seconds/minutes/hours line from modes array
Works in IE and Firefox only.  Algorithm by Daniel Baird. IE specific code by by Saq Imtiaz.

var MINS  = 60 * 1000;
var HOURS = 60 * MINS;
var DAYS  = 24 * HOURS;

if (!config.lessBackups) {
	config.lessBackups = {
		// comment out the ones you don't want or set config.lessBackups.modes in your 'tweaks' plugin
		modes: [
			["YYYY",  365*DAYS], // one per year for ever
			["MMM",   31*DAYS],  // one per month
			["ddd",   7*DAYS],   // one per weekday
			//["d0DD",  1*DAYS],   // one per day of month
			["h0hh",  24*HOURS], // one per hour
			//["m0mm",  1*HOURS],  // one per minute
			//["s0ss",  1*MINS],   // one per second
			["latest",0]         // always keep last version. (leave this).

window.getSpecialBackupPath = function(backupPath) {

	var now = new Date();

	var modes = config.lessBackups.modes;

	for (var i=0;i<modes.length;i++) {

		// the filename we will try
		var specialBackupPath = backupPath.replace(/(\.)([0-9]+\.[0-9]+)(\.html)$/,

		// open the file
		try {
			if (config.browser.isIE) {
				var fsobject = new ActiveXObject("Scripting.FileSystemObject")
				var fileExists  = fsobject.FileExists(specialBackupPath);
				if (fileExists) {
					var fileObject = fsobject.GetFile(specialBackupPath);
					var modDate = new Date(fileObject.DateLastModified).valueOf();
			else {
				var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
				var fileExists = file.exists();
				if (fileExists) {
					var modDate = file.lastModifiedTime;
		catch(e) {
			// give up
			return backupPath;

		// expiry is used to tell if it's an 'old' one. Eg, if the month is June and there is a
		// June file on disk that's more than an month old then it must be stale so overwrite
		// note that "latest" should be always written because the expiration period is zero (see above)
		var expiry = new Date(modDate + modes[i][1]);
		if (!fileExists || now > expiry)
			return specialBackupPath;

// hijack the core function
window.getBackupPath_mptw_orig = window.getBackupPath;
window.getBackupPath = function(localPath) {
	return getSpecialBackupPath(getBackupPath_mptw_orig(localPath));


|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Date:''|mar 17, 2007|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
version.extensions.LoadRemoteFileThroughProxy = {
 major: 1, minor: 1, revision: 0, 
 date: new Date("mar 17, 2007"), 
 source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};

if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};

bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
 if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){ 
 url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
 return bidix.core.loadRemoteFile(url,callback,params);
MS-DOS 5.00 - 8.00 Undocumented + Hidden Secrets

MPTW is a distribution or edition of TiddlyWiki that includes a standard TiddlyWiki core packaged with some plugins designed to improve usability and provide a better way to organise your information. For more information see http://mptw.tiddlyspot.com/.

[[Tag Cloud]]
[[Contact the Editor|mailto:chris@midwestguru.com]]

This .CMD script can be used as a template for checking to see if an application you are about to install is updated before you install it. This is very useful for malware scanners to check you have the latest build of the application and any manual updates.

The script below is for checking for the mbam-setup.exe and mbam-rules.exe files are up to date before installing them in an unattended way (no user input required).

The download.exe utility is a older freeware version tool by Noel Danjou (http://www.noeld.com) which handles the heavy lifting of checking the local and remote files to see which is most recent and downloading it for you from the command script.

Both files are attached to the [[original forum posting|http://www.podnutz.com/forums/viewtopic.php?f=11&t=616]].

To modify this script for a different application you need to do a little research to locate the direct download links for the files you might need and the command line options which allow it to be installed it in an unattended way.

Kind Regards


: Malwarebytes Installation Script.

@echo off
setlocal enableextensions enabledelayedexpansion 

:: rem Change current drive and path to where the CMD script is located
pushd %~dp0

  :: rem Set Tool Name, URL/file to download and filename to save it as

  SET TOOL=Malwarebytes Updates
  SET GETFILE=http://www.gt500.org/malwarebytes/mbam-rules.exe
  SET SAVEFILE=mbam-rules.exe

  echo Downloading %Tool%, please wait ...

  download.exe %GETFILE% /timeout:60 /passive /update /newest /output:%SAVEFILE% /overwrite /silent

  SET TOOL=Malwarebytes Main Program
  SET GETFILE=http://www.malwarebytes.org/mbam/program/mbam-setup.exe
  SET SAVEFILE=mbam-setup.exe

  echo Downloading %Tool%, please wait ...

  download.exe %GETFILE% /timeout:60 /passive /update /newest /output:%SAVEFILE% /overwrite /silent

  echo Installing Malwarebytes v1.35 ...
  start /wait "Installing Malwarebytes v1.35 ..." "mbam-setup.exe" /SP- /SILENT /NOCANCEL
  echo Installing Malwarebytes Updates ...
  start /wait "Installing Malwarebytes Updates ..." "mbam-rules.exe" /SP- /SILENT /NOCANCEL 


echo Installation Completed.


New postby joemessman on Mon Apr 20, 2009 10:36 am
Microsoft got this one right. Several automated fixes for common problems. I used one today for not getting the option to install Service Pack 3 on Windows XP. I was a little cautious installing on one computer I had in the shop because sometimes there is an issue with the PC if you don't get the option to install it. I ran the fix for it and got the prompt! Good job Microsoft.
Name: MptwBlack
Background: #000
Foreground: #fff
PrimaryPale: #333
PrimaryLight: #555
PrimaryMid: #888
PrimaryDark: #aaa
SecondaryPale: #111
SecondaryLight: #222
SecondaryMid: #555
SecondaryDark: #888
TertiaryPale: #222
TertiaryLight: #666
TertiaryMid: #888
TertiaryDark: #aaa
Error: #300

This is in progress. Help appreciated.
Name: MptwBlue
Background: #fff
Foreground: #000
PrimaryPale: #cdf
PrimaryLight: #57c
PrimaryMid: #114
PrimaryDark: #012
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
|Description:|Miscellaneous tweaks used by MPTW|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|
!!Note: instead of editing this you should put overrides in MptwUserConfigPlugin
var originalReadOnly = readOnly;
var originalShowBackstage = showBackstage;

config.options.chkHttpReadOnly = false; 		// means web visitors can experiment with your site by clicking edit
readOnly = false;								// needed because the above doesn't work any more post 2.1 (??)
showBackstage = true;							// show backstage for same reason

config.options.chkInsertTabs = true;    		// tab inserts a tab when editing a tiddler
config.views.wikified.defaultText = "";			// don't need message when a tiddler doesn't exist
config.views.editor.defaultText = "";			// don't need message when creating a new tiddler 

config.options.chkSaveBackups = true;			// do save backups
config.options.txtBackupFolder = 'twbackup';	// put backups in a backups folder

config.options.chkAutoSave = (window.location.protocol == "file:"); // do autosave if we're in local file

config.mptwVersion = "2.5.2";


if (config.options.txtTheme == '')
	config.options.txtTheme = 'MptwTheme';

// add to default GettingStarted
config.shadowTiddlers.GettingStarted += "\n\nSee also [[MPTW]].";

// add select theme and palette controls in default OptionsPanel
config.shadowTiddlers.OptionsPanel = config.shadowTiddlers.OptionsPanel.replace(/(\n\-\-\-\-\nAlso see AdvancedOptions)/, "{{select{<<selectTheme>>\n<<selectPalette>>}}}$1");

// these are used by ViewTemplate
config.mptwDateFormat = 'DD/MM/YY';
config.mptwJournalFormat = 'Journal DD/MM/YY';

Name: MptwGreen
Background: #fff
Foreground: #000
PrimaryPale: #9b9
PrimaryLight: #385
PrimaryMid: #031
PrimaryDark: #020
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
Name: MptwRed
Background: #fff
Foreground: #000
PrimaryPale: #eaa
PrimaryLight: #c55
PrimaryMid: #711
PrimaryDark: #500
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
|Description|Mptw Theme with some rounded corners (Firefox only)|



{ -moz-border-radius: 1em; }

.tab {
	-moz-border-radius-topleft: 0.5em;
	-moz-border-radius-topright: 0.5em;
#topMenu {
	-moz-border-radius-bottomleft: 2em;
	-moz-border-radius-bottomright: 2em;

Name: MptwSmoke
Background: #fff
Foreground: #000
PrimaryPale: #aaa
PrimaryLight: #777
PrimaryMid: #111
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
|Description|Mptw Theme with the default TiddlyWiki PageLayout and Styles|
Name: MptwTeal
Background: #fff
Foreground: #000
PrimaryPale: #B5D1DF
PrimaryLight: #618FA9
PrimaryMid: #1a3844
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #f8f8f8
TertiaryLight: #bbb
TertiaryMid: #999
TertiaryDark: #888
Error: #f88
|Description|Mptw Theme including custom PageLayout|

http://mptw.tiddlyspot.com/#MptwTheme ($Rev: 1829 $)

<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
	<div class='headerShadow'>
		<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
		<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
	<div class='headerForeground'>
		<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
		<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<!-- horizontal MainMenu -->
<div id='topMenu' refresh='content' tiddler='MainMenu'></div>
<!-- original MainMenu menu -->
<!-- <div id='mainMenu' refresh='content' tiddler='MainMenu'></div> -->
<div id='sidebar'>
	<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
	<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>


<div class="tagglyTagged" macro="tags"></div>

<div class='titleContainer'>
	<span class='title' macro='view title'></span>
	<span macro="miniTag"></span>

<div class='subtitle'>
	(updated <span macro='view modified date {{config.mptwDateFormat?config.mptwDateFormat:"MM/0DD/YY"}}'></span>
	by <span macro='view modifier link'></span>)
	(<span macro='message views.wikified.createdPrompt'></span>
	<span macro='view created date {{config.mptwDateFormat?config.mptwDateFormat:"MM/0DD/YY"}}'></span>)

<div macro="showWhen tiddler.tags.containsAny(['css','html','pre','systemConfig']) && !tiddler.text.match('{{'+'{')">
	<div class='viewer'><pre macro='view text'></pre></div>
<div macro="else">
	<div class='viewer' macro='view text wikified'></div>

<div class="tagglyTagging" macro="tagglyTagging"></div>


<div class='toolbar'>
	<span macro="showWhenTagged systemConfig">
		<span macro="toggleTag systemConfigDisable . '[[disable|systemConfigDisable]]'"></span>
	<span macro="showWhenTagged systemTheme"><span macro="applyTheme"></span></span>
	<span macro="showWhenTagged systemPalette"><span macro="applyPalette"></span></span>
	<span macro="showWhen tiddler.tags.contains('css') || tiddler.title == 'StyleSheet'"><span macro="refreshAll"></span></span>
	<span style="padding:1em;"></span>
	<span macro='toolbar closeTiddler closeOthers +editTiddler deleteTiddler > fields syncing permalink references jump'></span> <span macro='newHere label:"new here"'></span>
	<span macro='newJournalHere {{config.mptwJournalFormat?config.mptwJournalFormat:"MM/0DD/YY"}}'></span>

<div class="toolbar" macro="toolbar +saveTiddler saveCloseTiddler closeOthers -cancelTiddler cancelCloseTiddler deleteTiddler"></div>
<div class="title" macro="view title"></div>
<div class="editLabel">Title</div><div class="editor" macro="edit title"></div>
<div macro='annotations'></div>
<div class="editLabel">Content</div><div class="editor" macro="edit text"></div>
<div class="editLabel">Tags</div><div class="editor" macro="edit tags"></div>
<div class="editorFooter"><span macro="message views.editor.tagPrompt"></span><span macro="tagChooser"></span></div>


/* a contrasting background so I can see where one tiddler ends and the other begins */
body {
	background: [[ColorPalette::TertiaryLight]];

/* sexy colours and font for the header */
.headerForeground {
	color: [[ColorPalette::PrimaryPale]];
.headerShadow, .headerShadow a {
	color: [[ColorPalette::PrimaryMid]];

/* separate the top menu parts */
.headerForeground, .headerShadow {
	padding: 1em 1em 0;

.headerForeground, .headerShadow {
	font-family: 'Trebuchet MS' sans-serif;
.headerForeground .siteSubtitle {
	color: [[ColorPalette::PrimaryLight]];
.headerShadow .siteSubtitle {
	color: [[ColorPalette::PrimaryMid]];

/* make shadow go and down right instead of up and left */
.headerShadow {
	left: 1px;
	top: 1px;

/* prefer monospace for editing */
.editor textarea, .editor input {
	font-family: 'Consolas' monospace;

/* sexy tiddler titles */
.title {
	font-size: 250%;
	color: [[ColorPalette::PrimaryLight]];
	font-family: 'Trebuchet MS' sans-serif;

/* more subtle tiddler subtitle */
.subtitle {
	font-size: 90%;
	color: [[ColorPalette::TertiaryMid]];
.subtitle .tiddlyLink {
	color: [[ColorPalette::TertiaryMid]];

/* a little bit of extra whitespace */
.viewer {

/* don't want any background color for headings */
h1,h2,h3,h4,h5,h6 {
	background-color: transparent;
	color: [[ColorPalette::Foreground]];

/* give tiddlers 3d style border and explicit background */
.tiddler {
	background: [[ColorPalette::Background]];
	border-right: 2px [[ColorPalette::TertiaryMid]] solid;
	border-bottom: 2px [[ColorPalette::TertiaryMid]] solid;
	margin-bottom: 1em;
	padding:1em 2em 2em 1.5em;

/* make options slider look nicer */
#sidebarOptions .sliderPanel {
	border:solid 1px [[ColorPalette::PrimaryLight]];

/* the borders look wrong with the body background */
#sidebar .button {
	border-style: none;

/* this means you can put line breaks in SidebarOptions for readability */
#sidebarOptions br {
/* undo the above in OptionsPanel */
#sidebarOptions .sliderPanel br {

/* horizontal main menu stuff */
#displayArea {
	margin: 1em 15.7em 0em 1em; /* use the freed up space */
#topMenu br {
	display: none;
#topMenu {
	background: [[ColorPalette::PrimaryMid]];
#topMenu {
#topMenu .button, #topMenu .tiddlyLink, #topMenu a {
	margin-left: 0.5em;
	margin-right: 0.5em;
	padding-left: 3px;
	padding-right: 3px;
	color: [[ColorPalette::PrimaryPale]];
	font-size: 115%;
#topMenu .button:hover, #topMenu .tiddlyLink:hover {
	background: [[ColorPalette::PrimaryDark]];

/* make 2.2 act like 2.1 with the invisible buttons */
.toolbar {
.selected .toolbar {

/* experimental. this is a little borked in IE7 with the button 
 * borders but worth it I think for the extra screen realestate */
.toolbar { float:right; }

/* fix for TaggerPlugin. from sb56637. improved by FND */
.popup li .tagger a {

/* makes theme selector look a little better */
#sidebarOptions .sliderPanel .select .button {
#sidebarOptions .sliderPanel .select br {

/* make it print a little cleaner */
@media print {
	#topMenu {
		display: none ! important;
	/* not sure if we need all the importants */
	.tiddler {
		border-style: none ! important;
		margin:0px ! important;
		padding:0px ! important;
		padding-bottom:2em ! important;
	.tagglyTagging .button, .tagglyTagging .hidebutton {
		display: none ! important;
	.headerShadow {
		visibility: hidden ! important;
	.tagglyTagged .quickopentag, .tagged .quickopentag {
		border-style: none ! important;
	.quickopentag a.button, .miniTag {
		display: none ! important;

/* get user styles specified in StyleSheet */

|Description|Mptw Theme with a reduced header to increase useful space|


<!-- horizontal MainMenu -->
<div id='topMenu' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<span refresh='content' tiddler='SiteTitle' style="padding-left:1em;font-weight:bold;"></span>:
<span refresh='content' tiddler='MainMenu'></span>
<div id='sidebar'>
	<div id='sidebarOptions'>
		<div refresh='content' tiddler='SideBarOptions'></div>
		<div style="margin-left:0.1em;"
			macro='slider chkTabSliderPanel SideBarTabs {{"tabs \u00bb"}} "Show Timeline, All, Tags, etc"'></div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>
|Description:|A place to put your config tweaks so they aren't overwritten when you upgrade MPTW|
See http://www.tiddlywiki.org/wiki/Configuration_Options for other options you can set. In some cases where there are clashes with other plugins it might help to rename this to zzMptwUserConfigPlugin so it gets executed last.

// example: set your preferred date format
//config.mptwDateFormat = 'MM/0DD/YY';
//config.mptwJournalFormat = 'Journal MM/0DD/YY';

// example: set the theme you want to start with
//config.options.txtTheme = 'MptwRoundTheme';

// example: switch off autosave, switch on backups and set a backup folder
//config.options.chkSaveBackups = true;
//config.options.chkAutoSave = false;
//config.options.txtBackupFolder = 'backups';

// uncomment to disable 'new means new' functionality for the new journal macro
//config.newMeansNewForJournalsToo = false;


Hosted by: 

Scott Moulton of MyHardDriveDied.com
Steve Cherubino of Podnutz

- RAID: What is it?
- The advantages of RAID
- Why RAID0 is dangerous
- Which RAID is best for data recovery?
- The truth about putting a hard drive in the freezer

Running time: 53:48
Added: 10 May 2009
Running time: 55:14
Added: 8 Jun 2009
Running time: 1:00:20
Added: 17 Aug 2009
This episode covers many topics such as:

Why you shouldn't open western digital drives before sending them in to Scott 
Ractrack memory, what is it? 
Deepspar Disk Imager 
SSD and large drives in laptops 
Setting up your own NAS box 
Running time: 54:25
Added: 4 Sept 2009

|Description:|Creates the new here and new journal macros|
|Version:|3.0 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|
merge(config.macros, {
	newHere: {
		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			wikify("<<newTiddler "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
	newJournalHere: {
		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			wikify("<<newJournal "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);

|Description:|If 'New Tiddler' already exists then create 'New Tiddler (1)' and so on|
|Version:|1.1.1 ($Rev: 2263 $)|
|Date:|$Date: 2007-06-13 04:22:32 +1000 (Wed, 13 Jun 2007) $|
|Author:|Simon Baird <simon.baird@gmail.com>|
!!Note: I think this should be in the core

// change this or set config.newMeansNewForJournalsToo it in MptwUuserConfigPlugin
if (config.newMeansNewForJournalsToo == undefined) config.newMeansNewForJournalsToo = true;

String.prototype.getNextFreeName = function() {
       var numberRegExp = / \(([0-9]+)\)$/;
       var match = numberRegExp.exec(this);
       if (match) {
               var num = parseInt(match[1]) + 1;
               return this.replace(numberRegExp," ("+num+")");
       else {
               return this + " (1)";

config.macros.newTiddler.checkForUnsaved = function(newName) {
	var r = false;
	story.forEachTiddler(function(title,element) {
		if (title == newName)
			r = true;
	return r;

config.macros.newTiddler.getName = function(newName) {
       while (store.getTiddler(newName) || config.macros.newTiddler.checkForUnsaved(newName))
               newName = newName.getNextFreeName();
       return newName;

config.macros.newTiddler.onClickNewTiddler = function()
	var title = this.getAttribute("newTitle");
	if(this.getAttribute("isJournal") == "true") {
		title = new Date().formatString(title.trim());

	// ---- these three lines should be the only difference between this and the core onClickNewTiddler
	if (config.newMeansNewForJournalsToo || this.getAttribute("isJournal") != "true")
		title = config.macros.newTiddler.getName(title);

	var params = this.getAttribute("params");
	var tags = params ? params.split("|") : [];
	var focus = this.getAttribute("newFocus");
	var template = this.getAttribute("newTemplate");
	var customFields = this.getAttribute("customFields");
	if(!customFields && !store.isShadowTiddler(title))
		customFields = String.encodeHashMap(config.defaultCustomFields);
	var tiddlerElem = story.getTiddler(title);
	var text = this.getAttribute("newText");
	if(typeof text == "string")
		story.getTiddlerField(title,"text").value = text.format([title]);
	for(var t=0;t<tags.length;t++)
	return false;



These are resources and steps to implement a way to remote into customers, friends and family members computers via OneClickVNC, with this tool the customers, friends and family members have very little to do, which means in my experience less for them to mess-up thus a quicker connect

Most of these steps require no real explination but if you need any help just contact me from http://www.DoorToDoorGeek.com

First I did see this on a episode of Hak5 on or about December 2007
hak5 http://tinyurl.com/podnutz181-1 http://wiki.hak5.org/wiki/Episode_3x05# ... NC_Utility

The core for the end user side is in two parts, the first part is the OneClickVNC.exe package, this package is all of two files, OneClickVNC.exe and settings.ini
OneClickVNC http://tinyurl.com/podnutz181-2

The second part of the core for the end user is a packaging app, I used Paquet Builder
Paquet Builder http://tinyurl.com/podnutz181-3 http://www.gdgsoft.com/pb/

The next two steps are to create and maintain a static domain name via DYNDns
First goto DYNDns and create a free account and create a free “Host Services
” or a “Hostname”
DYNDns http://tinyurl.com/podnutz181-4 http://www.dyndns.com/

Second download the DYNDns windows client, this will automatically update DYNDns with your modems IP address

DYNDns windows client http://tinyurl.com/podnutz181-5 http://www.dyndns.com/support/clients/windows.html

The last two steps are the things you need to do on your computer
First download the UltraVNC client, the only file you really need out of this setup is “vncviwer.exe”
UltraVNC http://tinyurl.com/podnutz181-6 http://www.uvnc.com/download/

Lastly you will need to open ports on your router (port 5500), I only open the ports on a “as needed basis”
, I close them as soon as I am done, PortForward.com has some great tutorials on how to do this
PortForward.com http://tinyurl.com/podnutz181-7 http://portforward.com/

Very lastly, when a customer, friend and family member downloads your custom created OneClickVNC file, you must run (either from the command line or from a batch file) “vncviewer.exe /listen
” (with the quotes)

Both server and listener defaults to port 5500

by monomatic on Wed Jul 30, 2008 12:31 am 
Ok, here's the deal, You can ONLY use COMPAQ/HP branded OS disks on Compaq/HP machines. The motherboards are "tattoo'ed" with the info it will look for the install it. 

Now, as far as the debate of BootCamp VS. Virtualizing, I say do BOTH! 

Install Windows using BootCamp, then use your preferred Virtualization software to load that BootCamp partition as a virtual machine.

VMware and Parallels both have this feature.

The pain of it is having to Activate Windows on each install (it sees a "hardware change" on the VM side.), but its no biggie.

What this does is let you use Windows within OSX on the fly when you need to, but also give you the option of booting to Windows when you need full use of your system resources. Its really great, actually. 
I use some music creation software that only runs in Windows and loves to consume my resources, so when im feeling creative, I boot to XP and get down. But for average stuff, like using IE when I absolutely have to or what ever, I just load my BootCamp partition as a virtual machine and do what I have to do while still in my OSX environment. you can even run in whats called "UNITY MODE" (on VMware) and just have the Windows apps you are using up and running while still in OSX. No need to look at the Windows desktop UI at all! Its really cool. (I kinda like confusing people by having a Windows Only app running in OSX too. hehehe.)

As far as a preferred VM software, I use VMware Fusion on my Macs and love it, but I have installed Parallels on many machines and saw no problems...as long as you get the Leopard update for it! Otherwise it is the crashiest thing on earth. But that is a free download from their site and it runs like a champ after that.

New postby joemessman on Wed May 13, 2009 10:38 am
Here is how I do it. It's built into Windows XP. It works great especially with young kids that you want to have access to only a few websites. I know it looks a little wordy, but it is a step by step instruction set.
Restrict Internet to specific web sites
Lock out to specific sites only. User will not be able to surf but to these Web sites.
If you do use this option, you should remove any other browsers on the computer. And in addition, set the computer up for use with a Windows Guest Account. This way, no one will be able to download and install new programs. It also may be necessary to disable the registry editor for more sophisticated users. In order to accomplish that you must boot to safe mode for Windows XP home to establish the security tab for files and folders. For Windows XP Pro you must disable simple file sharing to expose the security tab.
Sign on to the computer as the Administrator. If you do not have a password for the Administrator account or the user with administrative credentials you must create one. Before you start Internet Explorer’s Content Advisor, you'll need to create a special text file. The file will configure Content Advisor to block all Web sites. Then you'll make one exception for your site. It’s not hard to do.
Start with Notepad. To open it, click Start>>All Programs>>Accessories>>Notepad. Then copy and paste the following:
((PICS-version 1.0)
(rating-system "http://www.microsoft.com")
(rating-service "http://www.microsoft.com")
(name "Noaccess")
(description "This will block all sites.")
(transmit-as "m")
(name "Yes")
(name "Level 0: No Setting")
(description "No Setting")
(value 0) )
(name "Level 1: No Setting")
(description "No Setting")
(value 1) ) ))
After pasting in the text, click File>>Save As. Under "Save in:," select the C: drive. Select the Windows folder. Then select the System32 folder. That's where you'll be saving the new file.
Under "Save as type," select All Files. Under "File name," type in the name "noaccess.rat" (without the quotes). Finally, click Save.
Now you can start Content Advisor. From Internet Explorer, click Tools>>Internet Options. Select the Content tab. Under Content Advisor, click Enable. Select the Approved Sites tab.
Type in the Web address of your site. Windows understands wildcards (*). So you don't have to specify each page of your site. For example, instead of http://news.yahoo.com, enter *yahoo.com. After typing in the address, click Always. Now your site is listed as the only approved site.
Next, create a password for Content Advisor. Otherwise, someone might disable it and start surfing away on the Internet. Select the General tab. In Content Advisor, select the General tab. Under "Supervisor password," click Create Password.
You can type in a password and a password hint. The hint can help if you forget your password later. And it's a good idea. Without the password, you won't be able to access Content Advisor without some creative measures. When you finish, click OK. I don’t recommend the hint be a clue for anyone who may try to crack the password.
Under "Ratings systems," click the Rating Systems button. Select any items listed and click Remove with the exception of ICR3A listing. Then click Add and pick the noaccess.rat file that you made earlier. Then click OK. You'll be at the General tab again.
Finally, make sure that the checkboxes under "User options" are not marked. Then click OK.
Now you can test the new settings. Try your Web site to make sure it works. Then try going to other sites. Internet Explorer will display a warning that other sites are not allowed.
It makes perfect sense to block Internet access at night when you can't watch over them. Windows already includes a powerful tool that can do this. To use it, you must log on to each computer as an administrator.
After you log on, you'll need to use Windows' Command Prompt. Click Start>>All Programs>>Accessories>> Command Prompt. At the prompt, type the following:
net user AccountName /times:
Replace "AccountName" with your child's Windows account name or Guest. Finish by appending specific times to the end of the command. These will be the times during which your child can log onto Windows as normal. Any time not included is restricted.
You can specify a day along with a time range. For example, use the following to allow computer use only on Saturdays between 9 a.m. and 5 p.m.:
net user AccountName /times:Sa,9AM-5PM
You can also specify a range of days. For example, use the following to allow computer use Monday through Friday from 10 a.m. to 10 p.m.:
net user AccountName /times:M-F,10AM-10PM
You can even put different schedules together. For example, use the following to allow computer use Monday through Friday from 10 a.m. to 10 p.m. and on Saturdays between 9 a.m. and 5 p.m.:
net user AccountName /times:M-F,10AM-10PM;Sa,9AM-5PM
To indicate days of the week, use the abbreviations M, T, W, Th, F, Sa and Su. To indicate times, use only whole hours. If you mix schedules, separate each with a semicolon as in the last example.
To remove restrictions, you can use the following command:
net user AccountName /times:ALL
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Date:''|Apr 19, 2007|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'

config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
	'pas': {
		elementType: "input",
		valueField: "value",
		eventName: "onkeyup",
		className: "pasOptionInput",
		typeValue: config.macros.option.passwordInputType,
		create: function(place,type,opt,className,desc) {
			// password field
			// checkbox linked with this password "save this password on this computer"
			// text savePasswordCheckboxLabel
		onChange: config.macros.option.genericOnChange

merge(config.optionHandlers['chk'], {
	get: function(name) {
		// is there an option linked with this chk ?
		var opt = name.substr(3);
		if (config.options[opt]) 
		return config.options[name] ? "true" : "false";

merge(config.optionHandlers, {
	'pas': {
 		get: function(name) {
			if (config.options["chk"+name]) {
				return encodeCookie(config.options[name].toString());
			} else {
				return "";
		set: function(name,value) {config.options[name] = decodeCookie(value);}

// need to reload options to load passwordOptions

if (!config.options['pasPassword'])
	config.options['pasPassword'] = '';

		pasPassword: "Test password"
The first Philly Tech Guy podcast took place August 2nd, 2008.

The show is hosted by:

Mike Smith of The Mike Tech Show 
Keith Albright of Mind of Root 
and Steve Cherubino of Podnutz and Podnutz Daily 
This show was broadcasted from the home of Mike Smith right outside of Philadelphia, PA.

This is the first show of many to come!

Running time: 1:06:33
Added: 2 Aug 2008
Ustream video PTG #002 
Chat Log for PTG #002 
Show Notes -

Comcast Sets Monthly Bandwidth Cap 
Ultimate Boot CD fro Windows 
VMware Fusion 
VMware Server (FREE) 
CAT 5 Cable Length FAQ 
Technibble - Computer Business Kit 
Running time: 1:07:10
Added: 13 Sep 2008
How to make the transition from full time IT job to contract work? 
Gigabyte Home Network Setup 
Remote Access Options 
Chat Log for PTG #003

Running time: 1:03:26
Added: 6 Dec 2008
Show Notes - * New Mac clone maker to open retail store * Google Wave * Microsoft Bing * Wi-Fi technical information * Samsung BD1600

Running time: 57:36
Added: 1 June 2009
Larry Aldrich (DocBrown) joins to tell us some of his adventures as a computer teacher and some other great tips.

Running time: 1:05:12
Added: 11 Sept 2009

Listen to all past Podnutz Daily shows here! 
Show Notes

* Well done cover letters and resume's are important 
* Larry discusses migrating to office 2007 and general updating of the computers at his school 
* With network problems, break off segments one at a time to isolate the problem 
* Document problems and their solutions for later use 
* Larry had a problem with network devices showing twice in the device manager with trouble indication, tracked to malware, ndis.sys file infected, copied fresh copy of file in recovery console 
* [[Combofix|http://www.combofix.org/]] will check to see if recovery console is installed and offer to install it 
* [[Trojan remover|http://www.simplysup.com/]] discussed 
* Use [[dropbox|http://www.getdropbox.com/]] as a way to transfer files from home to work 
* Use [[ketarin|http://ketarin.canneverbe.com/]] to download latest install packages of various software 
* [[Filehippo.com|http://filehippo.com/]] as a fast download repository 
* Customer relations just as important as repair skills 
* Larry discusses his results with [[Laplink PC Mover Pro|http://www.laplink.com/pcmover]] as a program migration tool 
* Use [[PC Decrapifier|http://www.pcdecrapifier.com/]] to remove bloatware on new computers 


* Partial list of Steve's malware regimen: [[smitfraud fix|http://www.bleepingcomputer.com/files/smitfraudfix.php]], [[combofix|http://www.combofix.org/]],[[ccleaner|http://www.ccleaner.com/]], [[malwarebytes|http://www.malwarebytes.org/]], [[superantispyware|http://www.superantispyware.com/]], [[AVG anitvirus|http://free.avg.com/]] 
* May have to run anti-malware from safe mode or use the ultimate boot CD for Windows ([[ubcd4win|http://www.ubcd4win.com/]]) [[Video tutorial for UBCD4WIN|http://www.youtube.com/watch?v=iJn8ntOEp-8]] 
* Kasperksy ISO up to date images 
* Steve's [[laptop repair videos|http://www.laptoprepairvideos.com/]] are available! 
* Use fixhddc on ubcd4win to change hard drive inetrface to generic when restoring an image to different hardware, or change the hardive controller to generic while in original OS before transfeering 
* Steve and Larry discuss possible sources and the legality/ morality of using windows source iso's other than what came with computer 
* Alex uses antistatic film negative cleaning brushes from [[kinetronics.com|http://www.kinetronics.com/]] to clean boards with alchohol or distalled water 
People helping out with show notes 
Mike [ datamike.net ] 
Raul [ www.ecticon.com ] 
Luis [ www.geekforcegt.com ] 
PC Slow Down/Repair HDD 
PC AVG Detected Virus with BSD on reboot 
winlogon.exe quarantined due to old virus definition 
PC Cannot Load system32/config.sys 
Registry Restore Wizard [found on BartPC Plugin or UBCD for Windows] 
PC with DVD's burner that would not burn 
Trojan Remover 
Advertising Discussion 
Flat Rate vs. Hourly Rate 
Lexmark Printer Spool Service Dependency 

From Josh - Trend noticed with customers bringing more than one computer at a time for service 
From DoortoDoorGeek - Video from Microsoft on how to remove malware 
From Jim - Windows IE7 install instructions for when you are having problems with the install 
From AGMT - T42 Laptop problem - Screen went blank - Steve's tips to troubleshoot screen problem 
From Paul - Paul finding Xbox360 fix is not working for long.  Customers are coming back. 
Looking for advise on whether he should starting own business or go corporate 
Tips from Mark

Disconnected printers with jobs queued will slow down PC 
Outlook express PPS fix to fix problems with opening powerpoint files 
When adding RAM to a system you should make sure to adjust virtual memory 
Andrew Blaine the Computer Guy 
Machines he's working on:

Dell dimension 2400, customer reinstalling windows, getting a dll error, backed up data first using a usb to ide adapter 
Dell dimension e521 having different apps and utilities shutting down in progress, including network connections, and downloading acrobat shut down.  Andrew suspects either a memory problem or or having to reinstall windows.  Currently running memtest86+ (also included on UBCD4W).  Steve suspects something else like malware and reccomends trying a system restore. 
Compaq v2000 laptop with beeping when keys are pressed, replaced keyboard. 
Dell Insperon 6000 getting hal.dll error, possible motherboard problem.  Steve suggests bootcfg  /rebuild. 
Other products/ topics discussed

Andrew talks  about his iogear gcs1758 usb and ps2 8 port kvm switch. 
Andrew does not use anti-vrus, feels comfortable because he knows the sites that he go to and was having problems with false positives.  Steve has his doubts. 
Microsoft action pack subscription: for $299 a years , gives you access to all sorts of Microsoft software with multiple licenses. 
Andrew had a customer skip out with his loaner computer, be careful out there. 
If a computer is not worth the price of fixing offer to trade the repair time already involved for the equipment, and repair for later use. 
Used fixhdc on ubcd4w (ultimate boot CD for windows) to reset hard drive controller when moving a harddrive to a different machine. 
Steve's laptop repair videos 
Technibble's computer business kit 
Steve reccomends networking for jobs outside your expertise with a possible finder's fee involved 
Both recommend Norton anti-virus 2009/2010, it is possible to use the serial number from 2008 or 2009 to update to 2010. 
Andrew has issues with the paid version of drivermax, Steve recommend driverpacks 

Door2doorGeek has a link posted in the forum  for a Microsoft video presentation on malware removal including info of autoruns and sysinternals 
Using ccleaner may or may not clear flash cookies depending on the version and the browser being used 
Use podbean to catch podcasts on web enabled phones 
One listener uses ketarin, syncback and a kangaroo blue2 flash drive with write protect switch 
Some discussion on laptop screen and inverter repair work 
Welcome to Steve McLaughlin from Door-to-Door Geek

This week in the Computer Repair Field 

System File Checker 
Steve reports a printing problem from a client, solving it over the phone. A word document wouldn't print so he instructed the client to copy and paste in a new document and the new document did print. 
After a power outage the printer changed IP address, over the phone Steve was able to talk the client through to create a new port. 
Remember to use plain English terms, so the customer feels comfortable. 
Even if the customer thinks they know what their problem is, is not necessarly right. 
Stay away from Yahoo! Answers 
Steve M. talks about referrals, he makes a special discount when they say they will refer someone else 
A friend of Steve's makes a deal with a local Pizza place where he places a business card along with the pizza receipt, which turned out very good. 
Steve M. leaves a business card inside a ziploc bag to new neighbors. 
Steve M. recommends using SandBoxie which is halfway between your real OS and a Virtual Machine, it basically creates a service between that goes in between the user interface and the kernel, intercepting all of the calls of a given application, putting it in a "sandbox" 
They talk about Zero-day exploits, which is one that takes advantage of a security vulnerability on the same day that the vulnerability becomes generally known. 
Steve M. knows of two software that say they can stop Zero-day Exploits: Kaspersky, eEye 
Steve M. talks about a Windows Vista laptop with no patch applied who couldn't connect to the internet. Steve fixed the problem by liberating router space and rebooting it. 
Steve M. talks about Mark Russinovich's Advance Malware Removal Video 
In the video Mark Russinovich talks about several Rootkit removal tools. 
From Mark's Presentation:
Three classes of rootkit detection: 

Signature based` 
Microsoft Malicious Software Removal Tool 
Anomaly detection 
System Virginity Verifier 
Cross-view comparison 
F-Secure Blacklight 
Sysinternals RootkitRevealer 
--End Quote-- 

Steve M talks about a Command Line Reference: Data Base and Operating Systems Website 
Steve M recommends Learning SQL from that same website. 

Andrew the Computer Guy talks about a computer from last show, which had problems with the power supply and needed the service packs 
Alexander from Michianacomputers.net recommends a mat to fix laptops, links on the forum on this thread. 
Steve-o talking about PQI USB memory stick 4GB 
Mike from SUPERAntiSpyware, has a free online scanner 
Jerry talks about how to distributing logme in for free 
Kins35 talks about Flash Cookies, also called LSO which can be managed with the settings manager 
Steve M talks about Flush Flash 
Steve M uses Steven Gould's CleanUP! 
James has a problem with a Dell Vostro 1400 with no video, Steve recommends discharge motherboard and remove the WiFi card, possible Motherboard issue. Steve recommendsburping the laptop, with-no hard drive and screen open. 
Steve M talks about Universal Extractor using SandBoxie 
Steve M gave his email address doortodoorgeek at gmail dot com 
Remember the Laptop Repair Videos 
Show Notes by: Luis Pedro Perez from GeekForce Guatemala
AcidBurn joins us to go over computer repair jobs he's been working on, and a review of Norton 2010 Internet Security.
Mike Smith from Mike Tech Show joins us! 
Apple TV and video podcasts 
Possible SP3 bugs 
Mike talks about business network maintenance 
Virtualization, what it is and why it is good. 
How to get a job in IT 
Running time: 1:35:58
Added: 5 May 2008
Ken Colburn of www.DataDoctors.com joins us! 
Learn some facts about the data recovery business 
5 Signs your computer is about to have a meltdown 
How buying a franchise may be a good idea if you are interested in the computer repair field. 
Running time: 1:05:19
Added: 9 May 2008

Show Notes:

Introduction of Ken Colburn- Founder of www.DataDoctors.com 
How Ken got into the data recovery business 
Data recovery stories could be quite interesting! 
5 Symptoms of a Computer Meltdown:

1. Strange Noises emanating from the computer box (grinding, buzzing, clicking or whirring)

A computer slowing down is usually software related, rather than hardware related so don't throw your computer out! 
Fan are a common culprit in making noise 
Noise can also come from your hard drive. 
Back up your data frequently! 
Blow the dust out of your computer at least every 6 months. 
Listen for hard drive clicking 
Don't turn hard drive on and off if is making noise! You only have limited number of tries to get the data off. 

2. Extremely slow or incomplete startup or forced "Safe Mode" startup.

could be too many programs, spyware, or it could be your hard drive. 
Do Crtl-Alt-Del and see how many processes are running. Low to mid 30's is a good range. 
Use task manager to see if you need RAM 

3. Constant Hard Drive Access (the red lignt on the front is constantly on).

Could be malware/spyware or it could mean FAILING HARD DRIVE 

4. The Blue Screen of Death (BSOD).

Type the exact error into Google to find possible solution. 
Learn how to speak in laymens terms to communicate better to customers, workers, etc... 
Communication is KEY in running a computer repair biz. 
Clear up and get defined words you don't understand before you continue in a subject. 
Check out Geek Speak section on datadoctors.com 

5. Your Hard Drive is getting full.

When you HD gets full, Windows get cranky. 
Just check HD space and make sure there is enough for Windows to operate. 10-15% free space is pushing your luck. 
See if you computer cam pre-partitioned from factory. We recommend making only one partition. 
Before messing with partitions, make sure you BACK UP! 

Ken recommends "The E-Myth" if you are considering starting your own computer repair business.

Also make sure your communication skills are spot on. 
Consider buying a franchise if you want a roadmap already in place for a business. 
Ken's podcast is called Computer Corner at 92.3 KTAR in Pheonix Arizona , or check out www.cnn.com for his video clips
Colleen from TWIT.tv joins us to talk tech! 
A general overview on Linux and Colleens recommendations 
13 Ways to Make Life With Windows XP Better 
Thoughts on Vista, Mac hacks, and Windows Reinstalls 
Running time: 1:01:45
Added: 17 May 2008

Show Notes:
- Intro of Colleen from TWIT.tv and TWITLive.tv

(Follow Colleen on Twitter here or visit her blog at www.thedigitalkitty.com)

- Colleen's OS of choice is BOS, sold to Palm.

- Pendrive Linux- Boots from a Flash Drive, has OpenGL interface.

- Use virtual machines (like Parallels) to run an operating system from within another operating system

- GNOME and KDE: Graphical User Interfaces for LINUX

- Advanced users more likely to use the Linux command line interface. You can also pull up a command line interface from the GUI.

- LINUX was created by Linus Torvalds.

- Command line in LINUX allows you to more directly control the OS.

- UBUNTU - very popular distribution with great forum support. Recommended by Colleen for basic or advanced users. In between users may find Windows or OSX better suited.

- Ways for first time users to start using LINUX safely:

1. Use and boot from external hard drive. Colleen recommends OpenSUSE or Ubuntu.

2. Live CD - allows you to run LINUX from a CD without installing it on your system.

3. Use a pen drive and make it persistent.

- WUBI - Windows Ubuntu Installer - Installs LINUX on HD without repartitioning or altering Windows boot record.

- Colleen recommends Ubuntu for general/basic use. Demanding or specialized/power user tasks may be better with XP or Mac. Linux may be more trouble than it's worth in these cases

- Colleen's 13 Ways to Make Life With Windows XP Better

- Knoppix is a great distro for running from CD-ROM to repair or read files on corrupted Windows installations

- Colleen's views on Vista

- Will Linux go mainstream?

- When to do a reinstall of Windows
Mike Petro joins us again for a great discussion about common computer symptoms and their respective solutions! 
How to handle boot problems 
More ways to handle spyware 
Troubleshooting hardware malfunctions. 
Running time: 1:02:46
Added: 24 May 2008

Show Notes:

Symptom: Computer does not power on - no lights or indication of power.
Solution: Power Supply or power button.

Symptom: Computer powers on, fans spin, no video or bios.
Solution: Motherboard is bad. Common that a power surge can take out both power supply and motherboard at the same time. Test motherboard with video conneted only to see if it posts.

Symptom: Computer powers on and see boot screen, but immediately get error: "Boot disk error, etc.."
Solution: Hard drive problem. Check if BIOS recognizes that the drive is there. Also check hard drive ports on motherboard, or HDD cable. Check jumpers on HDD - make sure settings are correct. Could also be software problem, corrupted Windows OS, or bad boot sector.

Try Western Digital tools or Seagate HDD tools to diagnose drive. Or try FIXBOOT or CHKDSK /R from Windows recovery console to fix bad sectors.

Darik's Boot N' Nuke to do a thorough format

KNOPPIX - great tool for reading files on a crashed OS installation.

Symptom: Blue screen of death
Solution: First make sure "automatic restart" is disabled so you can read the blue screen by selecting it in F8 boot menu. Then Google the error to find solution, but if no Stop Number use Mike's process of elimination.

Symptom: Computer won't connect to internet.
Solution: Possibly bad ethernet jack; Winsock layer problem. Hijack this will tell you this(winsockfix will fix); Modem problem; Router problem; Bad ethernet cable: Bad drivers (Uninstall and reinsstall); Make sure LAN is enabled in BIOS; Internet Explorer faulty (return to factory settings)

Symptom: Computer boots VERY slowly
Solution: Use Msconfig to see what's booting. Turn off what you don't need or what is causing the problems. If slow boot at Windows screen - could be hard drive problem. Also doing a Windows Repair on a SP2 install with a SP1 install disk may cause long boot times until SP2 is reinstalled.

Symptom: Computer tells you you're infected with spyware.
Solution: See Episode 2 for basic groundwork. Smitfraudfix is a great tool for killing tough spyware. Then run Avast or AVG for Anti-Virus. Also run CCleaner or Cleanup to delete possible infected files. More good tools: HijackThis, ComboFix, Dial-a-fix.

Get rid of Virtual Mundy with Vundofix

Symptom: Computer gets halfway through boot process and then reboots itself
Solution: Use F8 to turn off automatic reboot. Try FIXBOOT or CHKDSK /R from your Windows CD, or handle the specific error the blue screen is displaying.

Symptom: CD not reading disk, or not opening.
Soultion: Make sure cables are connected. If yes and still problem, buy new drive

Symptom: Windows updates keep installing.
Solution: Hijack this could be reporting a false file, couldbe corrupt or missing Windows files, look at KB number computer is having a problem with and and Google it to find solution. Also give Dial-a-fix a try.

Symptom: System32 errors on startup
Solution: Registry is corrupted. Follow Microsoft Article KB307545

Symptom: Computer shuts down while using.
Solution: Overheating. Check fans and heat sink. Blow the dust out. Also stay alert for thermal paste that has overheated, hardened, and needs to be reapplied. Arctic Silver 5 is good paste.

Same with laptops: find vent where the fan in on bottom of machine and blow air into the fan and also into side where the heatsink is. Be careful chunks of dust don't clog and stop the fan.
WARNING - Billy and Aaron are Mac users. Some material in this podcast may offend Mac haters.

Freeware/Shareware discussion 
Podcasting tips 
Running time: 1:00:10
Added: 30 May 2008

Show Notes:

Aaron and Billy joining us from the Daily Freeware Podcast

Lavasoft - Ad-aware for removing adware and spyware

Be cautious downloading Windows freeeware - many apps will have spyware attached.
I recommend downloading only from trusted sites like: Download.com, Softpedia.com, and Snapfiles.com. 

InsomniaX - For closing the lid on your Macbook and keeping it running.

Drive Snapshot or Clonezilla - Freeware cloning utilities.

Scandisk - included in Windows - great for minor disk corruption

Defragmenting - good to do every few months or more often if you are really working out your hard drive, with constant writing and erasing.

Jungledisk or Mozy - Great cheap off-site backup services

Carbon Copy Cloner for Mac - backup program

Appfresh - for Mac - downlaods updates automatically

Disk Inventory X for Mac, Spacemonger for PC - Allow you to graphically see your hard drive space usage

Call Recorder - plug in for Skype aloows you to record Skype calls.

Audacity - Great FREE sound recorder for PC

DIY Podcasting talk and advice

Daily Freeware podcast be soon become the Daily Shareware Podcast.
Bryce Whitty joins us - creator of Technibble.com 
Bryce's software picks 
Computer repair business tips 
How and why Bryce started Technibble.com 
Running time: 1:00:10
Added: 6 Jun 2008

Show Notes:

- Introduction of Bryce and Technibble.com 

- How Bryce started his own computer repair business

- Advertising in trade section in major weekly newspapers is profitable for Bryce's business

- When Bryce started his business he used letterbox dropping for advertising which worked well, and if you do it on the right day it can be more effective.

- When doing advertising, do testing, and keep doing what works for you!

- Steve's best form of advertising is Google Adwords

- Be careful if you advertise price to make sure you don't trap yourself, so make sure you say the price "and up", to cover you for parts or extra labor

- As you become established and gain a large customer base of happy customers, you can raise your price and your loyal customers will still pay, happy that they found someone they trust.

- Technibble is geared towards those who want to start their own computer repair business.

- Process Explorer utility for seeing what is running and gives the ability to disable it.

- Hijack This - great tool for identifying malware

- AVG 8.0 is a good freeware Anti-Virus that is still not bloated like most modern security applications. But remember to turn off the browser tool - it is slow.

-Formore good software tools for a technician, check out "Computer Repiar Tool of the Week" or the "Computer Repair Utility Kit" on Technibble

- Good tools to have as a technician: standard screwdriver, penlight(pentorch), pliers, tweezers

- My favorite screwdriver set is available at Microcenter.com. Here's the link.

- See the post in technibble about the nastiest computer jobs. How many nasty jobs can you take?!

- Check out the Technibble Forums - great community and great advice.

- Need a rare part fast? Try doing a local search on Ebay and finding someone in your area and do a deal for a local pickup.

- With regards to Vista, Bryce is atill an XP fan.

- Check out WindowBlinds to get your XP installation to look like Vista

- Bryce recommends Gigabyte motherboards for business machines and ASUS for gaming.

- For failing hard drives, one tool he uses is Ultimate Boot CD

- SATA/IDE to USB connectors are great for testing hard drives

- Bryce's impetus to start Technibble.com was that there was no site like it and wanted to help computer technicians.

- Recommended book for business "How to Win Friends and Influence People"

- Besure to check out "The Computer Business Kit" on Technibble.com for those interested in starting a computer repair business and need direction.
Simon Zerafa from PC-Technical.co.uk gives us a great rundown on tips and techniques he uses in his own computer repair biz 
Driver installation tricks 
Spyware/Virus/Malware removal 
Simon's software recommendations 
Running time: 1:15:15
Added: 15 Jun 2008

Show Notes:

- Introduction of Simon Zerafa. His site is www.pc-technical.co.uk and he is a guest on the radio show Mousepad on BBC radio

- Advertising tips - Yellow pages (large version of the business card)

- UK vs USA mobile phone plans.

- Advertising in trade section in major weekly newspapers is profitable for Bryce's business

- Driverpacks.net - slipstreamable driver packs. Integrate them right into your Windows installation. Stores thousands of drivers right on your Windows disk.

- ZDNet Definition for Slipstream: To fix a bug or add enhancements to software without identifying such inclusions by creating a new version number.

- RyanVMPack - Official program for integrating Update Packs into the Windows XP install source.

- Ultimate Boot CD for Windows - a bootable recovery CD that contains software used for repairing, restoring, or diagnosing almost any computer problem. Allows virus and malware removal plug-ins that are runnable from the live CD so you are not restricted from scanning system files from the OS you re trying to repair.

- Neat tool - CF Card to ID adapter cable. Allows you to boot from CF card.

- Check for root kit with Sysinternals Root Kit Revealer

- Super Anti-Spyware - great malware removal tool. Not free but worth it.

- Kaspersky Anti-Virus - Simon recommends.

- Norton Removal Tool - removes every Norton product on a PC

- MS Key Viewer Plus - A program created to view program installation keys, service pack levels, and product IDs along with detecting many other non-licensed program versions.

- NOD32 - another good Anti-Virus alternative, but not too user-friendly

- MWAV - Antivirus that uses Kaspersky Virus engine. Just download and run. No installation of this software required. But is a bit pricey.

- Microcenter - great computer superstore if you are lucky enough to have one near you.

- With price of gas these days, it really cuts into profit for on-site repairs.

- Simon is not a fan of CHKDSK /R because it is dangerous. He prefers Spinrite.

- Program to resets permissions of OS back to defaults - URL will be posted soon.

- Ccleaner - good tool for general cleanup and registry cleaning

- PCDecrapifier - takes crapware off of new machines

- PSI Personal Software Inspector - Lists all software that is out of date with download links for latest versions.

- AVP Tool - Version of KAspersky that is free but not updatable.

- Autoruns - Basically MSCONFIG on steroids. Lists much more than msconfig.

- Autopatcher - How many times did you have to leave your computer, after a format, to download the updates you had before it?
Mike Petro from Petro Computer Solutions is this week's guest 
Methods of Storage 
Backup Software 
Cloning/Snapshot options 
Running time: 50:04
Added: 6 Jun 2008

Show Notes:

- Mike Petro joins up from Petro Computer Solutions

- Decide what you need to backup

- Optical Backup - CD/DVD - CD's store o ly 700MB, DVD's can store up to 8GB. Optical storage media doesn't last forever however.

- Redundancy is the key to backup prepararion

- External hard drives are great way to backup your info

- Flash/Thumb drive probably not the best way to back up your hard drive.

- On-site vs. Off-site backups: Your first off-site backup may take a while becasue of slow upload speed. On-site backups are faster are more lilable at to suffer same damage as original copy if located in same spot.

- JungleDisk or Carbonite good services for off-site backup.

- Mike's backup plan for customers: Insatll external drive. Back it up every night, with weekly differential recovery using SyncbackSE from 2BrightSparks.com. Fridays -task scheduler burns CDs of data that is being backed up on external drive using CommandBurn.

- Cobian Backup great program for backups and is free.

- Difference between Full, Incremental, and Differential backups. See this page on the Acronis Resource Center for full explanation.

- Great method of backing up is cloning/imaging, because it creates an exact duplicate of your existing hard drive.

- Norton Ghost - Mike uses for cloning/imaging drives

- Acronis True Image - Steve uses for imaging, and is another great tool for backups, cloning, and any hard drive maintainance and manipulatipon.

- Mike's cool car computer - pictures on the way...

- MP3car.com - greate site for car-puter enthusiasts.

- And Steve made a coffee table computer with this coffee table.

- Hard Drive Art

- Check the box to verify files after copying/burning/cloning.

- Great idea to upsell the customer with a backup service.

- Data recovery - when you delete a file it is still on the computer usually and can be recovered, until it is written over.

- ALWAYS use a different drive to perform the data recovery. If you use the existing drive, you may be writing over the files.

- PC Inspector is a free data recovery program that works ok. Steve uses Recover My Files with more success.

- Disaster recovery - services exist to recover data you cannot get back by normal means, like Datadoctors.com.
Dave Purcell from PCTechBytes.com is this week's guest 
Advice on Backups 
Views on Vista 
System Admin tips 
See Dave's latest project at PCTechBytesToday 
Running time: 56:32
Added: 29 Jun 2008

Show Notes:

- Dave Purcell joins up from PCTechbytes.com. It is a grat resource for computer repair tips, tutorials and community.

- Also check the new problem solving, entertaining site called PCTechBytesToday for Dave's articles on tech today.

- Back up your PC! Carbonite is great off-site backup service

- Vista or XP? - Vista is the future. WE are probably going to have to get used to it.

- Take a step back when you are banging you head up against a wall on trying to fix your computer.

- As a systems admin, you need to stand your ground and not allow allusers to be admins themselves. Keep the best interest of your company in mind.

- Dave recommends the A+ cert to get your foot in the door if looking for system admin job. Mike Myers A+ Certification book

- When do you do a Windows reinstall? You need to make an informed decision.

- Good at deductive reasoning? Computer repair would be a great job for you.

- Check out the great message boards at PCTechBytes.net. Have a strange probablem you can't solve? You may be able to find the answer there.

- Don't try to manipulate your page with black hat SEO tips. Write good content and you'll do fine. PCTechBytes.com ranks high in Google with no SEO , just good data.

- Dave and I both recommend Dell computers as of the time of this recording.

- Help people who are reaching for technology, don't dissuade, or make fun of them. Encourage them and get them up to speed.

- Let's bring back Atari!
Guest this week is Carey Holzman from Computer America 
Tips on how to stay updated 
Latest tools for the PC Tech toolkit 
How Carey loves the Asus EEE PC. 
Running time: 1:24:38
Added: 8 July 2008

Show Notes:

- Use the latest versions of software, drivers, BIOS, etc...

- Driver Agent - scans your system for drivers and the latest updates

- Intel makes it easy to update the BIOS on motherboards.

- Determine what model and manufacturer your motherboard is with CPU-Z from CPUID

- Go to bootdisk.com for bootable CD images specifically for updating BIOS's.

- You can sell motherboards from old systems on Ebay. Include the memory and processor for a package deal.

- Watch feedback ratings on Ebay when buying and selling.

- Craigslist is a jungle - be careful buying and selling. It can be profitable but it is high risk.

- Tough for the little guy to sell systems these days. Tough to compete with Best Buy, etc...

- Don't try to run Vista with 512MB.

- Check out Sourceforge.net for open source freeware

- See OphCrack for finding passwords in XP/Vista

- Spyware Doctor is Carey's pick for Anti-spyware

- WinsockXPfix - rebuilds the winsock file.

- Driverpacks.net - you can slipstream your drivers into your windows xp installation.

- Asus EEE Pc - Carey's review

- Final words
Introduction of host - Steve Cherubino 
What is the "Blue Screen of Death" (BSOD)? 
First fix - use FIXBOOT from the Windows Recovery console 
Second Fix - Use CHKDSK /R from the Windows Recovery Console 
Third Fix - Spinrite - from GRC.com 
If you get the error that says "IRQ NOT LESS OR EQUAL", try reseating the momory or replacing the RAM. 
If you can get into Windows, try a System Restore 
My father, Cook Cherubino joins us this week to talk about electricity. 
Laptop Power Adapters 
Defining Voltage, Current, Resistance, and Wattage. 
How NOT to blow yourself up! 
Soldering tips 
Running time: 53:20
Added: 13 Jul 2008

Show Notes:

- Cook Cherubino (my dad), joins us this week to talk electrical.

- Cook used to be an electrical supervisor for SEPTA (Southeastern Pennsylvania Transportation Authority), and would manage the power that controls the subway and trolley system in Philadelphia.

- Laptop power adapters: Can you use different ones for different laptops? Voltage is the main factor to look for. DON'T use a higher volatge adapter than what the laptop came with. Also, using an adapter with lower voltage can can present problems.

- In laptop adapters, current or Amperage is also a factor. You can use an adapter with a higher current that the original adapter, but don't use one with a lower current.

- Electricity can be described witha "water" analogy: Voltage = water pressure in a pipe, Current = flow of the water in the pipe, Resistance = pipe size or distance of the pipe.

- Capacitor is a device that can hold a charge. Then send the charge back into the circuit.

- High voltage spikes could cause a capacitor to explode or leak out the top or bottom.

- A short circuit is when the positive side of the circuit touches the negative side with no load.

- Resistors are measured in Ohms - a measure of resistance.

- Transistor - is an "amplifier". It turns voltage on and off using a smaller voltage.

- A short in a laptop power adapter may cause the motherboard to break if the adapter is constantly sending voltage, then not, then voltage again, repeatedly at a fast rate.

- Should you turn your computer off each night? Probably the best way to guage this is by how much you use your computer.

- In soldering, try to heat sink the circuit whenever possible, with alligator clips.

- When soldering delicate electronics, use a low wattge soldering iron. I used a 15W iron for laptops.

- In soldering, it is not good practice to directly melt the solder with the soldering iron. Heat the wire withthe iron, and let the wire melt the solder, to ensure the solder covers the connection point effectively.

- Transformer - device that can raise, lower, or isolate one voltage from another. Made up of two coils. Only used in AC voltage.

- How voltage goes from AC to DC voltage in a power supply.

- Not a good idea to to try to repair a desktop power supply. Better off buying a new one.

- Surge protectors are rated by Joules. The higher the rating the more of a surge it can dissipate.

- Some surge protectors offer insurance to your compnents getting fried.

- Multimeters and what they can do. Don't need a real expensive one as long as it gives proper voltage readings.

- How industrial electrical concepts relate directly to computer repair

- Protect against static electricity by wearing a grounding strip when working on computers.

No guest for this one...I'm going solo! 
Things that help keep me on my game: podcasts, Google, experience, learning on the fly 
My Spyware/Virus removal tips 
More computer repair business tips 
Remote Service ideas 
Running time: 53:04
Added: 27 Jul 2008

Show Notes:

Host, Steve Cherubino, recapping some history. 
Podcasts that I l isten to: This Week In Tech, Security Now, MacBreak Weely, Windows Weekly, Net@Nite, PC Mag Radio, Loaded, Buzz Out Loud, The Real Deal, Tech 5, Tekzilla, Systm. 
Why I like live shows - unscripted and real 
How I solve problems, listening to tech podcasts, expereicne, Google, lerning on the fly 
Had a TI-994A, IBM PCjr, PC Compatibles, all the way up to present time. 
I find a lot of answers to problems I encounter on forums. Not a big fan of Experts-Exchange.com 
Scott Mueller write the definitive guide to computer repair - "Upgrading and Repairing PCs" 
PodnutzDaily.com is THE show for Podnutz user participation, and the newest and latest tips on computer repair 
More computer repair business tips: Start out slow if you're short in money, Do on-site jobs, Make a simple BUT professional website, Use Google Adwords. 
Just do it! It's a bit corny, but true. 
My spyware removal technique - System Restore, SmitFraudFix, Ccleaner, Dial-A-Fix, Super AntiSpyware, Add/Remove Programs, Msconfig, AVG 
If you don't know what the processes in the MSCONFIG list do, Google It! 
Why I prefer AVG over Avast recently. 
Power Supplies - don't cheap out with low wattage power, it can have damaging effects. Also, in my opionion it's a good idea to use a 24 pin power supply when the motherboard asks for it, to keep it running stably. I'venever had a pproblem with the XION 450 Watt PS that I've been using for most customers machines. 
Found that Best Buy is charging outgrageous prices for RAM. I suggest buying online. 
Best Buy sells computers cheap, but tries to make a profit with add-ons and unnecessary items. 
Don't lie to your customers, it will probably come back to you. 
Want a cheap way to start a computer business. Do strictly remote serivice to start. Crossloop, UltraVNC, and LogmeIn.com offer services for this to name a few. 
A bonus about starting a remote service company: The customer never has to see you or your workplace. 
I'm going to use Google Adwords to promote my remote service site, once it is online. 
If you have a Premier or Business Paypal account, you can accept credit cards.It's what I use and is an excellent way to accept credit card payments online. 
Don't forget to chek out PodnutzDaily.com for daily dose of computer repair info, plus I'm also giving away my Ipod Nano this week on the show. 
Mark Cobb from Computer Techs joins us 
How to use Craig's List to help build your business. 
How to hire people for your computer repair business 
Mark's Spyware/Virus removal tips 
Mark's toolbag 
Running time: 1:04:41
Added: 3 Aug 2008

Show Notes:
This weeks guest is Mark Cobb
He owns his own on-site computer repair business in Reno, NV
Computer Techs
Serviced 1100 clients last year alone!

You can hear the first episode of
Philly Tech Guys at
Philly Tech Guys
Mike Tech Show
Or watch the recorded show
on uStream

Don't forget to check out PodNutz Daily for a daily dose of computer repair info.

Use Craig's List to hire potential techs for your growing computer repair business

Make sure your ads are not deleted from Craig's List
Follow up with your customers after your hired tech worked on-site
On resumes look for work experience
Set up specific directions to apply (tests ability to follow instructions)
During the interview test their trouble-shooting skills via scenarios
Advertise via local newspaper and coupon books
Yellow Pages "leader ad" puts you at the top of the computer service/repair heading regardless of name.
Consistancy with advertising pays off because potential customers get used to seeing your company advertisement.
Buy parts from local shops to build business relationships in the field.
Reasons not to advertise on your car.
Look into local repair service/shops for better service and better prices
Do not rely on Best Buy for repair/service

SyncToy v1.4 for external backup drives

MiniPE to recover from BSOD
Thumbs up to Canon Printers (best install & sleek software)
Thumbs down to HP Printers (software requires too much memory)
Tip for installing HP Printers: Just install the drivers only

Marks Virus/Spyware removal tips:

Process Explorer v11.20
(Shows description/company name and verifiable through digital signature)
Tip: GoogleDesktop does not have a description/company name
Tip: Run on a good computer first to get an idea of normal processes/threads

Auto Runs v9.32
(ms config enhancement tool)

Hijack This

(Use AVG to test your autoruns flagged files for removal)

Tip: Not sure if you should remove that file?
Rename the .exe to a different extension to see if it breaks.
If it is needed rename it back to .exe

Thumbs Down: Windows Defender (useless)

Rootkit Revealer v1.71



Startup Control Panel

Page Defrag v2.32

Marks toolbag:
512 stick of pc3200 for Dells
CompUSA toolkit with magnetic screws and small flashlight
USB and Ethernet cables
USB to Ethernet Network Adapter
Seagate Free Agent 80G external drive
USB to SATA/PATA/IDE connector
hand sanitizer

Thumbs down: Dell Computers (hardware issues/tech support)
Thumbs up: HP and Toshiba for laptops

Onsite computers repairs vs shop computer repairs
Interview with Steve D'Amico from SMDComputer 
Tools to take on-site 
Craigslist/Ebay stories 
Great softare to use in your repairs 
Running time: 1:29:10
Added: 23 Aug 2008

Show Notes:
What is SMD Computer today?
Mobile technician for computer repair
International seller of computer parts via Ebay
How to be successful reselling computer parts.
How to smartly charge your clients for repairs.
Why you should use PayPal when purchasing through Ebay.

Steve's favorite tools he carries with him for repairs:
USB to PS2 connectors
10lb bag of desktop screws bought on Ebay
Lots of little things like CD ROM cables, bumpers, ethernet connectors.
Metal backings from the back of the motherboard aka "slot guys"
Aircard that uses cellphone technology to connect your laptop to the internet.
Extension cables to make the job easier.
LED flashlight
Memory (for upsell)

How to start/organize your own screw collection.
Learn what a "hell box" is.
You will never guess correctly how long a job will take.

Bryce Whitty's Technibble Repair Tools are great!
Steve's favorite utility is EndItAll aka "Kill It All" and he tells us why!

Steve thought BigFix was fake antivirus.
I explain what BigFix is and that I usually remove it if I see it.

How to gauge if you should reinstall the operating system.
Make an image of the system as a backup before you work on it!
Customer wants their money back?
Image their system back to the way it was before you refund.
Learn how Steve does data recovery.

knoppix for CD-based data recovery
PC Login Now to bust passwords
Trinity Rescue Kit CPR for your computer
Ultimate Boot CD saves time.

Steve's bench tools:
Trulink KVM switch via Cables To Go is reliable.
4-1 power adapter
Test monitor.

I am setting up a live cam in the shop.
I will let you know when it goes live

Shared: Hilarious/Horrible CraigsList stories
Read my e-book "The Ultimate Guide to Buying and Selling on Craigslist"

Waste the scammers time:

Tip: Outsource your specialized experience and expand your business.
Scott is the author of the incredible computer repair technician's bible: Upgrading and Repairing PCs 
Learn how Scott got started in computers 
Does high speed RAM speed up your system? 
Windows Activation questions answered 
and much more... 
Running time: 1:12:30
Added: 4 Sep 2008

Show Notes:

My guest: Scott Meuller

Scott Meuller's book is in it's 18th Edition
Upgrading and Repairing PCs

If you are a computer tech
this book should be in your possession.
Stop Googling for answers.
This book is a valuable tool.
Scott's site
Scott's Forum

Scott started in computers with the Apple][ 
but the first computer he ever saw was the Radio Shack TRS1

-Apple][ was $3,000-$4,000 dollars in the late 1970's
-hobbiest oriented 
-CP/M operating system
-Z80 card
-Scott taught VisiCalc all over the US
- A relative "got him in" to do the seminars.
-this lead him into the IBM PC in August of 1981
-Lotus 123 replaced VisiCalc
- everything moved from Apple to PC
- and he began to teach Lotus 123
- he bought an IBM XT computer
- started teaching classes dedicated to the hardware and OS
-had to write a workbook for the class
-published through Q-Publishing
-this lead me into publishing books
- He continued his focus on the hardware/repair aspect

I comment Scott on his book after I purchased and sat down with it.
His book almost removes a reason to Google.
Scott counters with the task of weeding out good web information from the bad.
He continues on this subject talking about his physical & digital reference library.

Scott still has an Apple][ system and all of the floppies.
Accessories included.
He has saved all of his systems over the years.

No formal computer training. All self-taught.
Well .. okay... he took a few classes in programming.

Franklin Computersended up getting sued. 
The judge for the case was in Scott's class to learn more about Apple in order to make a decision.

Scott talks about learning from his students: 
what topics to cover in his book based on their questions and 
if they asked questions he covered in his books 
he knew that he was not clear enough in his text instruction.
9/11 restricted his travel and classes to get this type of information.

Scott has considered podcasting but likes his forum
for keeping in touch with his audience.
He answers every email. 
His email has been published in every one of his books.

Listen to find out if RAM speed effects the speed of your computer!
Scott verbalizes analogies to explain how memory works.
Dynamic RAM vs Static RAM
Celeron VS Pentium

Steves asks Scott:
Intel or AMD?
Scott sides with Intel for the Core2 capabilities.
They have more money to throw at the design.
Pentium M sold it for him.

What is a chipset?
Scott uses more analogies to explain chipsets
.. for better understanding

Understanding chipsets to buy mother boards.

Windows activation confusion:
Microsoft keys were made
to prevent using the same MS products 
on more than one machine.

Understanding Dell SLP's vs OEM 
(System Locked Preinstallation) 

FYI and to keep-it-simple loophole:
You replaced that MB due to failure.
A new key will be issued no-questions-asked.

Steve asks Scott:
Improving startup times for XP --

Scott mentioned Adobe Reader 9
oh-no-he-didn't (yes he did)
Listen to learn Scott's tricks.

Bloatware like Adobe kills not only startup
but preformance as well.

Scott has a pet-peeve of 
over-protecting a system.
But he understands the user 
creates this neccessity of protection.

Windows support tools for backing up the MBR:
Lots of computers come into my shop with boot issues.
Scott covers this topic thoroughly while mentioning 
the ability to fix the MBR is the first key to data recovery.

Fixboot recovers the VBR 
VBR is the first sector of the active partition.

Scott breaks it down for us.
The VBR is OS version specific.
The MBR is not specific.
The MBR just gets you to the VBR.

Scott's laptop recommendations:
More than the hinges for excuse.

Topic covered: Lenovo acquisition.
And let us not forget the PC vs Mac question.

(Show notes written by CitizenX from Tanjents.com)

Mike Petro joins us for more repair tech talk 
Verizon modems and routers 
Spyware evolution 
Great site for XP tweaks and fixes 
and much more... 
Running time: 1:00:08
Added: 23 Sep 2008

Show Notes:

ComboFix found the rootkit, but did not remove it: 
Rootkits sometimes show no signs other than preventing you from getting to a specific webpage instead you will be redirected somewhere else. 

ComboFix is one of those programs that offers no harm in running it, much like Dial-a-fix. It finds deeply hidden issues in the registry that you would not find otherwise. ComboFix also gives you a list of files created in the last month. Experienced techs can spot a bad file and Pocket KillBox is a program that can be used to get rid of files that stubbornly refuse to allow you to delete them. 

Getting rid of XP/Win/Vista AntiVirus 2008/2009 by running: 
SmitFraudFix, CCleaner and SuperAntiSpyware 

Hard drive diagnostic/recovery: 
-SeaTools works with any hard drive regardless of the manufacturer. Short test. 
-If the hard drive "whines" it is an indication the bearings are going out. Back it up and get it replaced ASAP. 
-The problem with CloneZilla: it will always make a partition the same size as the old drive when moving data to a larger hard drive. Extra space is on a separate partition. 
- A free Partition Magic alternative is EaseUs 

Open Source utilities/resources: 
-SourceForge beats download.com and softpedia.com 
-Open Office is a great Microsoft Office replacement 
-New techs can fill their toolbag for free with great open source programs 
-Better support than larger companies 
-UltraVNC has great support for Vista issues 
-Learn the difference between UltraVNC and PCHelpware 

-Verizon Westell 6100 DSL modem/router negotiates the PPPoE connection 
- When modems and routers default to it causes connectivity issues. 
-Learn how to troubleshoot this issue. 
-Router setup tips and wireless encryption 
-DSL requires filters on your phone lines but not on the modem 
-You can use one filter if you install it at the box outside of your house 
-Try getting one from Verizon upon installation 
-To check the DSL connection stream music from the web. 

Mac vs PC 
Steve's new podcast coming soon! 
The Great Tech Debate and "It Ain't Gonna Be Pretty" 
No Holds Barred/4 Voice Panel topic on ____ vs ____ 

Corrupted BIOS / troubleshooting 
-Upon bootup, just a flashing cursor when the hard drive was recently replaced. 
-Updating the BIOS can be risky 
-Learn the things Mike tried and how he fixed it. 

Other Topics Covered: 
-Don't buy laptops from Ebay 
-Sellers don't know how to package them 
-FedEx offers a laptop packing kit (could not find a link) 
-How to safely ship your laptop 
-Installing the latest Windows SP3 solves all kinds of issues! 
-Do it manually via the site if automatic updates will not work. 
-Kelly's Korner lots of obscure fixes! 
-fixes reg files 
-Dial-a-fix clears/removes restrictive policies. 

Saving on canned air / Tip From Carey Holzman 
-Use a leaf blower to clean out dusty PCs to save on canned air 
-Make sure you get one that maxes no stronger than 150 MPH 
-Watch Carey Holzman of Computer America use this method. 
-Air compressors also work but require a water/oil separator in the line/hose because the compressor creates moisture. 

Applying thermal grease - The Debate
Nick Skrepetos joins us to discuss his program SuperAntiSpyware. 
How does SuperAntiSpyware get made? 
How to prevent spyware from attacking your machine 
How did Nick come up with the idea? 
and much more... 
Running time: 48:10
Added: 1 Oct 2008

Show Notes:

How did SuperAntiSpyware come to be?
- 4 yrs ago Nick developed SuperAdBlocker
- which lead to SuperAntiSpyware out of necessity 

Are you the original programmer?
- Yes, I wrote most of the original code
- design and kernel work 

What made you design the SuperAdBlocker program? 
- My previous company was panicware.com
- after getting a large following I saw the industry changing - rather than reacting to current issues like the well-known malware removal tools
( Mentioned: Ad-Aware and SpyBot )
- I noticed these programs were also not tackling the tough issues
- I wanted to fight the tough problems and predict the next generation of issues 

What is your programming background? 
- I have been developing software for 25 years
- started on the Apple II and Commodore 64
- developed copy software programs before I was 18 
- worked on game development programs published by Activision
- Started a company called Human Machine Interfaces that did the audio software for games like Wing Commander
- It was ground-breaking back then to play more than one sound at a time
- Wrote drivers for the AdLib sound cards

What makes SuperAntiSpyware different? 
- We are focused on the hard-to-remove-programs
- Yet we still want to work well with other removal tools 
- We can be more agile as a smaller company than McAfee can
- We are not an antivirus company we are anti-malware & anti-spyware

What is the difference between a virus and spyware? 
- viruses typically attach to another piece of software
- spyware is installed independently as files in different areas 

What are your impressions of the major AV software developers? 
- They do require a lot of resources to run
- Not practical
- They are "suites" jack-of-all-trades-but masters-of-none
- We specialize in malware and spyware 

What AntiVirus do you recommend? 
- small footprint
- runs well with our as well as other programs
- AVG has gotten bloated lately
- Norton 2009 has slimmed down this year
- still not considered "light" but better 

SuperAntiSpyware free vs the paid version 
Why do you give it away for free? 
Who is writing the malicious code? 
(..and a great discussion ensues) 

XP Antivirus 2008/2009: Who are they? 
- They are a rouge product stating your system is infected
- They are always creating new variants that we keep up with 
- Because we have the solution to this - created great press for us
- Paying them does not remove the virus
- there never was a virus.. the warnings they feed just stop.. for a while 

10,000 new threats per week vs false positives 
- visit FileResearchCenter.com to see what is running on your computer

Contribute to the project that is SuperAntiSpyware by sending those reports 
- They use the reports to make the machine better. 
- It *is* a true anonymous report tool. No personal information is detected 
- It is designed to be quick and painless 
- Start reporting back to this dedicated eradication company. 
- Learn about the response SuperAntiSpyware gets from its users 
- SuperAntiSpyware customer service is based in the United States 

Educating safe web surfing 
superantispyware.com/blog is a learning center

And LimeWire? How do you feel about that program? 
- It can be used safely if done correctly. - But stop stealing software! - Support the developers! 

Macs really get less infected? - It depends upon how big the target is - FireFox and iPhones included - spyware developers go where the money is


Keith Albright from MindofRoot.com joins us. 
What does it take to be a network administrator? 
How is network administration different than single user maintenance 
Firewalls, DOSAttacks, BotNets, and root kits. 
and much more... 
Running time: 48:10
Added: 25 Oct 2008
Thor Schrock from Schrock Innovations joins us to discuss his latest endeavor - a data recovery center. 
How to recover data 
What it takes to start a data recovery center 
What to charge per job 
The different levels of data recovery 
Running time: 53:09
Added: 23 Dec 2008
Here we attempt to cover all there is to know about hard drives,  from the physical parts to the data they contain. We of course couldn't fit this all into one show so we'll have to get Scott back for another! 
Check out Scott's site at MyHardDriveDied.com 
Running time: 1:08:20
Added: 24 Feb 2009
# Introduction to Mike Petro
# Norton or McAfee not so great
# Windows Updates - download and install them!
# New out-of-the-box computers are still not completely updated. Make sure to download the latest updates
# Avast or AVG Free anti-virus available - these are light and don't hog up your system like Norton. Available here:
## AVG Antivirus - free.grisoft.com
## Avast Antivirus - www.avast.com
# Run a resident anti-virus rather than passive
# Safe browsing is the best way of avoiding malware
# Limewire = bad, Avoid peer-to-peer networks.
# Many people get tricked by pop-ups online. Scammers make it look like a valid windows message.
# If it's too good to be true, it usually is. Free ringtones and such usually have a catch.
# Watch for toolbars that suddenly appear in your Internet browser without your consent. Usually means browser hijack.
# Free porn sites will usually give you a virus.
# Adaware good tool to at least let you identify what kind of malware your have. Get at: www.lavasoftusa.com
# Look in at the processes in task manager or msconfig utility to see what is running. Usually a randomly named, number and letter process is malware. Ex: kjflcitfb.exe
# Look up suspect processes at:
## Liutilities - www.liutilities.com/products/wintaskspro/processlibrary
## Process Library - www.processlibrary.com
## Note: Listener Mark Vanderberg suggested a fantastic program that runs in conjunction with the ProcessLibrary web site to quickly identify processes running in your task manager. Check it out here. Definitely worth the download! (http://www.processlibrary.com/quicklink/)
# Effects of Malware:
## -pop-ups
## -cause you to waste money on useless products
## -slow you system down
## -can steal your personal information with keyloggers
# Don't do a google search for virus removal - you'll get results that could be just as harmful as your infection.
# Read the user reviews on sites to get the real deal on software. Don't just take the editors word for it.
# There is no all-in-one solution to getting rid of viruses/malware
# System restore will restore registry to before the time you got the virus. but be sure to do a virus scan after you run it to pick up dormant viruses.
# Norton and Mcafee put a strain on your system becasue they are too bloated (bloatware).
# Free spyware protection programs that are good:
## Spywareblaster - www.javacoolsoftware.com
## Spyware Guard - www.javacoolsoftware.com/spywareguard.html
# www.Bleepingcomputer.com - great site about handling malware
# Good ol' Spybot - Search and Destroy (www.safer-networking.org/en/index.html) is still somewhat effective.
# If you are infected: try "hijack this" (www.majorgeeks.com/download3155.html) - will create a log of what is occuring with your computer. you may not be able to understand the log, but there are places to get it analyzed. Like bleepingcomputer.com, lockergnome.com, castlecops.com
# BHO - Browser Helper Objects - Can be good, but also used by malware creators used to hijack your browser.
# If you get an unknown error message, you can type that error verbatim into a google search and it my find useful result for you.
# Way to clean out temp folders:CCleaner (www.ccleaner.com), Cleanup (www.stevengould.org)
# If system Restore does not work, turn it off. So it doesn't save past bad points in time.
# Smitfraudfix (http://siri.geekstogo.com/SmitfraudFix.php) -
## Good spyware handling program, deletes infected trusted zones then cleans system.
# Combofix (http://download.bleepingcomputer.com/sUBs/ComboFix.exe) - Great for handling spyware - don't be scared by initial warning message.
# Killbox (www.killbox.net) - Deletes harmfull that are hard to delete because of windows permissions.
# Ultimate Boot CD (www.ubcd4win.com) - Great tool for booting into win xp environment, allows you to share drives and files, good for unbootable C: drive
# Cookies, not all bad. Just text files. Leave footprint of bowsing habits - relatively harmless
# How mike got started in the field:
## - in IT since 1996
## - started programming young
## - fell into first networking job
## - started doing computer repair and through word of mouth expanded his business to full time business.
## - niche is on-site prompt, effective service
I interview Steve McLaughlin from DoortoDoorGeek.com 
We cover some of his favorites tips and techniques for servicing computers. 
Running time: 1:09:18
Added: 22 Mar 2009
This episode we interview Ben Burrows,  The Creator Of "The Ultimate Boot CD For Windows".

The Ultimate Boot CD for Windows is an indispensible tool, that every computer tech should have in their toolkit.  In this episode I ask Ben how the project came about,  some of his favorite apps, and what is in store for the future.

If you dont have The Ultimate Boot CD For Windows yet, get it!  You can download it at UBCD4WIN.com.

Running time: 1:12:31
Added: 28 Mar 2009
Bruce Harrison, lead researcher, of MalwareBytes.org joins us this week. 
What MalwareBytes can do for you 
The differece between viruses/spyware 
How to use MalwareBytes to get the best results 
How MalwareBytes came to be 
Why PCs are more prone to malware than Macs 
What's in the future for MalwareBytes 
Running time: 1:00:41
Added: 4 Apr 2009
Andrew from AndrewTheComputerGuy.com joins us this week. 
Learn tips on advertising your business computer repair business 
Learn what tools you need to have in your computer repair kit 
Remote access programs 
How to get started in the computer repair business 
Running time: 1:14:47
Added: 24 Apr 09
More with Mike Petro from Petro Computer Solutions

What's new on the street 
Mike's geeked out car 
Backing stuff up 
Join Mike's Fan Club! 
Running time: 1:08:54
Added: 3 May 2009
In this episode I am joined with Bryce Whitty, creator of Technibble.com. We cover all aspects of computer repair,  from the business end to the tech side, and give tips and advice to anyone interested in going into the computer repair business.


Be sure to check out Technibble.com if you haven't yet.   It is an incredible site that any computer repair technician MUST visit!

Running time: 1:01:24
Added: 10 Jul 2009
Simon Zerafa from pc-technical.co.uk joins us today and we go down his list of tech tidbits that any computer repair technician will find useful.

Some topics included:

Gigabit Networking 
NAS drives 
Spybot S&D 
Tools to install on a fresh PC 
and more... 
Running time: 57:56
Added: 9 Aug 2009
I thought it would be a great idea to interview someone from my favorite store - Microcenter. I'm joined with Kevin Hollingshead who is the VP of Business Development at Microcenter. We cover some great things about Microcenter and where it is heading in the future. I also ask Kevin for his personal views on the latest tech out there. 

Running time: 54:43
Added: 18 Aug 2009
Steve D'Amico joins us from SMDComputer.net for a somewhat casual talk about all things computer tech related.

Running time: 1:38:19
Added: 13 Sep 2009

Show Notes

Power adapter on Dell Inspiron 5150 
Discussion on iGo Power Adapter 
Laptop repair video overview 
Free Video available 
Feedback requested on Website Enhancement Kit 
System File Checker 
sfc /scannow 
Virut Variant Cleanup Discussion 
Locking Flash Drives & SD cards and avoid infection from spreading 
M2CFG.com(writeblock utility (free)) 
AVG Discussion 
Antivirus discussion 
Have Money, Will Work 
Poet has document issues 
Discussion on Customer Service = Referrals 
Battery Packs and Exploding Batteries 
YouTube "Notebook PC Explodes" OvelHo 
Steve's Blue Ray DVD player & firmware update 
Laptop/PC liquid spills, dogs and children 
improvements to resistance to spills is noticed 
Steve D'Amico's ebay store smdcomputer  
* Gigabyte Vs. Gibabyte 
* Switching hard drives 
* LCD screen black lines 
* Is the hard drive bad? 
* Broken laptop power jack 
* Slow computer - Anti-virus or Windows reinstall? 
-Introduction - Mike is back!

-Why build your own system?

-Determine what kind of system to build based on what you'll be using it for.

-Motherboards - could buy a general one for about $60 but for gaming can go up to hundreds of dollars.

-Processors - AMD vs Intel?
Core techniology put Intel ahead of the game and probably best bet.

-Which processor family, Celeron, Dual Core, Quad Core?

-Pay attention to onboard cache for processor.

-Make sure processor socket matches up with motherboard.

-Cases - the more you pay the better protection you'll get. Also more inputs such as USB and front panel audio

-Power Supply, some cases come with power supplies. For gaming or high video usage, get 500W and up. You're playing it safe with 400W for general use, any less might be a problem in the future.

-Antec, Coolermaster, Thermaltake are all good power supply companies. Can buy at www.newegg.com

-The more components in your machine is a factor in the lilfe of your power supply.

-RAM - difference between RAM and hard drive space.

-Mike clears up what all the numbers/labels mean in RAM
(DDR, pc4200,etc..)

-Buy as much as you can afford for RAM to help your system performance.

-Make sure socket on motherboard for RAM is same as RAM you are buying.

-Hard Drives: Two sizes 2.5 in for laptops 3.5" for desktops.

-Two types, IDE and SATA. IDE is 80pin fat ribbon, SATA is thin newer adapter.

-Most motherboards these days come with SATA connections.

-Only a few major players in the HD market.

-CD DVD Drives - Lightscribe - Most are SATA now.

-Add on components: Video cards, TV tuner cards, and card readers.

-Onboard Video vs add-on Video card. ATI and Nvidia are the two major players in the video cards market.

-For games need to get an upgraded video card.

-TV tuner cards not HD inputs yet.

-Camera card readers, fit in place where 3.5" floppy drives go.

-Operating systems: XP or Vista?

-Buy parts cheap at www.newegg.com

-Have fun!
Guest Steve D'Amico from SMDComputer.net 
Repairing laptop systms 
Buying parts in bulk 
Sell in parts or whole system? 
LCD screens and inverters 
Craigslist vs Ebay 
How to get into the laptop salvage business 
Computer America Radio Show Monday -Friday 10p-12a EST

(re-registers Windows dll files/registry fix)

PC Decrapifier
(Removes Dell & other manufacturer trial ware)

(Bootable CD that automates the cracking of passwords for all of the Windows XP accounts on that PC.)

(Great reliable resource for free tech software tools)

Acronis True Image with plug in Universal Restore
(Rebuilds the HAL, recovers data and creates bootable Cds. Not free.)

Spinrite - Carey gives Thumbs Down
(Recovers data from failing HD onto the failing HD)

Covered: Show Some Respect!
Do not put clients harddrives in a freezer!
Condensation = water.

Norton Security Suite- Carey gives Thumbs Down
(Too robust. Bogs system down)

SeaGate SeaTools
(Test a possible failing HD - not manufacturer specific)

SeaGate SeaTools Tutorial
(read before running - screencaps too!)

(bootable CD that diagnoses memory modules for problems)

Glary Utilities
(Safe registry cleaner and removes empty folders)

(Another Mild registry cleaner for Windows. Per Carey: run reg cleaner several times cleaning as you go until it says you are clean. BONUS! Allows you to remove programs from add/remove programs that are still listed but were removed manually.)

JV16 Windows Registry Cleaner
(Not Free from $12.95-$29.95)

Registry First Aid
(Can break some HP software)

Instead of cleaning your registry:
Compact or Defragment it for faster speeds
Compact Outlook and Outlook Express folders

Microsoft User Profile Hive Cleanup Service
(Runs as a MS Service and enables faster shutdown times)
**actual link**

Learn how to:
Clean your internet temp files via quick run command
Set the space allowed for these files to free up future HD space
Optimize your System Restore options for HD space.

Common Misconceptions:
Difference between Apply/OK when making system changes.

Learn how to:
Optimize virtual memory settings
Configure Windows to not reboot at error but to show the diagnostic error message

LogMeIn Rescue
(Provides instant remote support to customers - Not free)

UltaVNC Single-Click
(Reverse VNC for remote access)

(Remote access for tech support)

(Remote access for tech support - no one needed on the other end to allow. Requires static ip address)

Rent @ Geek
(Uses LogMeIn to test your worthiness before hiring)

(Disables Java/ActiveX Applets that are known malware on known harmful websites)

AdAware & Spybot - Carey gives Thumbs Down
(These are reactive programs. You need preventive programs)

ThreatFire -- gets along with AV programs
(Do not BLOCK pop-ups-- prevent them!)

Free AntiVirus AVG and Avast

Norton Removal Tool
(Removes instances of Norton on your PC)

Open Office

Learn how to install an honest *repair* version of Windows
that saves your data!

Open DNS
(Learn how to use open DNS for safe internet browsing)

Show notes by CitizenX of www.Tanjents.com
Survey your system to determine if you need to reinstall. 
Back up your data. Your files are most likely in Documents and Setting folder (Windows XP) or the Users folder (Vista). 
Check in root directory or Program Files folder for special program data like Quicken. 
Spacemonger shows graphical representation of your hard drive - helps in determining what to back up. 
Check also in shared folders for additional files. 
You can use either System Recovery or do a fresh install with your own Windows. 
If system prompts you to make recovery CD's, DO IT. 
You can slipstream Service Pack 2 into Windows CD along with drivers. Get Service Pack 2 here . Creat image with MagicISO. Also check out Ryan's VM Integrator to slipstream updates. 
Listener Simod Z. also emailed us and gave us a cool site for slipstreaming drivers into XP disk at DriverPacks.net 
For fresh install, to start Windows Setup, insert the OS disc and boot from the CD. 
Set up your partitions. You can split your hard drive into two partitions or more if you want. 
Then enter activation key if asked for. Dells will not ask for code but you must activate Windows after the installation. 
Use device manager to install drivers. Type devmgmt.msc into run box to get there quick. 
Get drivers from manfacturer if you can. 
Install chipset drivers first. Unless you need ethernet driver (get ethernet driver from another computer) 
Use Belarc or Everest to find drivers for mysterious components. 
Install anti-virus or any protection. 
Mike Petro from Petro Computer Solutions joins us. (The John C. Dvorak of the computer repair world!) 
Loyal listener Mitch Haman calls in and asks us questions. 
How to get and keep customers. 
How to start a computer business legally 
Running time: 1:10:17
Added: 4 Apr 2008

Show Notes:
Starting your business legally, how to handle taxes - Recommed to start off as sole proprietor 
Keeping track of customers - use receipt books from staples or use Quickbooks or such program. 
How to advertise your business - physical world vs Online. 
Brick and mortar business or on-site work? 
Making a website for your business- Use Godaddy for domain and hosting. 
Use Google Adwords for quick traffic solution 
Make your site more search engine friendly by adding relvant content 
Mike uses UltraVNC for remote access. Mitch uses Crossloop 
Pricing - I charge $79 per jpb 
Be courteous to your customers 
Your good deeds will come back to you (usually) 
Handle the customers data gingerly, and back it up! 
Don't install pirated software on customers computers. Demand that they buy the software if they don't have it. 
You can use manfacturer copy of Windows if the COA is available and valid. 
Hardware tatooing 
Set a price and keep your structure intact. 
Thor Schrock from Schrock Innovations and Top Affiliate Challenge joins us. 
Vital tips for expanding your computer repair business into the future 
Should you mix politics and business? 
How Thor started and grew his business into what it is today. 
How to advertise your business 
How to set your rates 
Running time: 1:53:59
Added: 4 Apr 2008
Located at http://www.podnutz.com/forums/ the Podnutz Forums are the inspiration and primary source of information for this wiki.

Forum Rules  

Postby Podnutz - Steve on Tue Apr 14, 2009 12:07 am
Podnutz Forum Rules...Read Before Posting!

# Read before asking. It's a forum, and you are probably not the first person to have whatever problem you are having. Use the search feature to confirm that your not posting a topic already posted in the forums. By the same token, in responding to a post try to be helpful. That’s the point of a forum, to help, and later be helped.
# Try at best to keep it PG-13 in here; Our members are mature people with jobs and families; We ask that you respect that. Repeated violations will not be tolerated, and may lead to a suspension of your account, or having your account terminated.
# Try to place your subject in the proper thread; If you make a mistake we might move the post, just try not to get into the habit of that. If you realize that you've posted something in the wrong place, ask one of the moderators to move the topic.
# Don't knowingly post false things, or state opinions as facts. If you are not sure, simply saying, “I think this works like this," will suffice. A forum full of false information and lies is a “blog”...this isn’t a “blog”.
# Treat EVERYONE as you would like to be treated: with respect. Sometimes this can be as simple as saying, “I think that is a mistake.” As opposed to saying, “You’re stupid.” Get it? The moderators will be watching this very carefully. They have the power to give you the boot, and they will.
# Don't “troll” about with out a purpose other than to upset others. This is a fast tract to a ban. There is no reward for post count. Someone’s 1st post may be of just as much value as another’s 1000th.
# Respect the moderators; listen to them if they tell you something. If there is a problem with a thread, please notify a moderator and let the mod handle the issue. There is no need to take the matter into your own hands, and the moderators will promptly react to the situation.
# No Spamming. Period. Creating a profile for no other purpose than spamming Podnutz forum is not only strictly prohibited, but is grounds to be immediately banned. If your profile website or sig contains a spam link, you may be banned regardless of whether you've posted on Podnutz forum. However, this is to be distinguished from legitimate websites, such as a personal business. Specifically, any postings linking to MMORPG goods and hardcore pornography websites will result in an immediate ban.
# Unwarranted Private Message spamming, or any type of internet “stalking” will not be tolerated. There are new laws against this behavior, and depending on severity we will report you. Please notify a moderator immediately if someone is engaging in this type of activity towards you.
# No racist, sexist, ethnic, religious, xenophobic, or other discriminatory comments made of that nature are allowed. Clear violations of this policy when it appears the intent of the author was in making such a discriminatory comment may result in a reprimand from a moderator, and continued violations may result in a suspension or being banned. If you have to think about whether your post is going to violate the rules, then save yourself the trouble and don't post it.
# No member may have more than one member account at any one time, unless explicitly directed by a moderator to create a second one. Creating one to evade a temporary ban will likely result in a permanent ban.

Pictures posted to the forum through links are viewed best at 800x600. You may upload Avatars and Signatures to our server. You may also upload pictures, as this is the preferred method of sharing. Linking off site is also permitted.

Rules written by Timster (Lead Moderator)
and approved by Steve - Podnutz (Admin)
Most of the content of this TiddlyWiki is taken from the PodnutzForums. In some cases it is taken from a single post, in other cases it's an amalgam of multiple posts. If the list of [[Contributors]] is not complete, let me know and I'll update it. For up to the date information, or for anything you can't find here, visit us at http://www.podnutz.com/forums

Subscribe to changes in this wiki by [[RSS feed|http://podnutz.tiddlyspot.com/index.xml]]. Right now the rss feed is generating a lot of fluff. This is because the indexing method I'm using generates a separate rss item for each new tag. As I reuse tags more and put new ones in less, the feed will be less fluff and more content.

@@font-weight:bold;font-size:1.3em;color:#444; //Take it offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  http://podnutz.tiddlyspot.com/download

Brought to you by http://www.podnutz.com and http://midwestguru.com. Make sure you support Podnutz by purchasing Steve's [[Laptop Repair Videos]]

Below are links to the major topic groups. Start your search here or with the search box on the sidebar.
|Description:|Provides a new date format ('pppp') that displays times such as '2 days ago'|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|
* If you want to you can rename this plugin. :) Some suggestions: LastUpdatedPlugin, RelativeDatesPlugin, SmartDatesPlugin, SexyDatesPlugin.
* Inspired by http://ejohn.org/files/pretty.js
Date.prototype.prettyDate = function() {
	var diff = (((new Date()).getTime() - this.getTime()) / 1000);
	var day_diff = Math.floor(diff / 86400);

	if (isNaN(day_diff))      return "";
	else if (diff < 0)        return "in the future";
	else if (diff < 60)       return "just now";
	else if (diff < 120)      return "1 minute ago";
	else if (diff < 3600)     return Math.floor(diff/60) + " minutes ago";
	else if (diff < 7200)     return "1 hour ago";
	else if (diff < 86400)    return Math.floor(diff/3600) + " hours ago";
	else if (day_diff == 1)   return "Yesterday";
	else if (day_diff < 7)    return day_diff + " days ago";
	else if (day_diff < 14)   return  "a week ago";
	else if (day_diff < 31)   return Math.ceil(day_diff/7) + " weeks ago";
	else if (day_diff < 62)   return "a month ago";
	else if (day_diff < 365)  return "about " + Math.ceil(day_diff/31) + " months ago";
	else if (day_diff < 730)  return "a year ago";
	else                      return Math.ceil(day_diff/365) + " years ago";

Date.prototype.formatString_orig_mptw = Date.prototype.formatString;

Date.prototype.formatString = function(template) {
	return this.formatString_orig_mptw(template).replace(/pppp/,this.prettyDate());

// for MPTW. otherwise edit your ViewTemplate as required.
// config.mptwDateFormat = 'pppp (DD/MM/YY)'; 
config.mptwDateFormat = 'pppp'; 

chkMakeSettingPrivateWhenChanged=true; txtMainTab=Timeline; chkBackstage=false
|Description:|Changes tag links to make it easier to open tags as tiddlers|
|Version:|3.0.1 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|
config.quickOpenTag = {

	dropdownChar: (document.all ? "\u25bc" : "\u25be"), // the little one doesn't work in IE?

	createTagButton: function(place,tag,excludeTiddler) {
		// little hack so we can do this: <<tag PrettyTagName|RealTagName>>
		var splitTag = tag.split("|");
		var pretty = tag;
		if (splitTag.length == 2) {
			tag = splitTag[1];
			pretty = splitTag[0];
		var sp = createTiddlyElement(place,"span",null,"quickopentag");
		var theTag = createTiddlyButton(sp,config.quickOpenTag.dropdownChar,
		if (excludeTiddler)

	miniTagHandler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var tagged = store.getTaggedTiddlers(tiddler.title);
		if (tagged.length > 0) {
			var theTag = createTiddlyButton(place,config.quickOpenTag.dropdownChar,
			theTag.className = "miniTag";

	allTagsHandler: function(place,macroName,params) {
		var tags = store.getTags(params[0]);
		var filter = params[1]; // new feature
		var ul = createTiddlyElement(place,"ul");
		if(tags.length == 0)
		for(var t=0; t<tags.length; t++) {
			var title = tags[t][0];
			if (!filter || (title.match(new RegExp('^'+filter)))) {
				var info = getTiddlyLinkInfo(title);
				var theListItem =createTiddlyElement(ul,"li");
				var theLink = createTiddlyLink(theListItem,tags[t][0],true);
				var theCount = " (" + tags[t][1] + ")";
				var theDropDownBtn = createTiddlyButton(theListItem," " +

	// todo fix these up a bit
	styles: [
"/* created by QuickOpenTagPlugin */",
".tagglyTagged .quickopentag, .tagged .quickopentag ",
"	{ margin-right:1.2em; border:1px solid #eee; padding:2px; padding-right:0px; padding-left:1px; }",
".quickopentag .tiddlyLink { padding:2px; padding-left:3px; }",
".quickopentag a.button { padding:1px; padding-left:2px; padding-right:2px;}",
"/* extra specificity to make it work right */",
"#displayArea .viewer .quickopentag a.button, ",
"#displayArea .viewer .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink ",
"	{ border:0px solid black; }",
"#displayArea .viewer .quickopentag a.button, ",
"#mainMenu .quickopentag a.button ",
"	{ margin-left:0px; padding-left:2px; }",
"#displayArea .viewer .quickopentag a.tiddlyLink, ",
"#mainMenu .quickopentag a.tiddlyLink ",
"	{ margin-right:0px; padding-right:0px; padding-left:0px; margin-left:0px; }",
"a.miniTag {font-size:150%;} ",
"#mainMenu .quickopentag a.button ",
"	/* looks better in right justified main menus */",
"	{ margin-left:0px; padding-left:2px; margin-right:0px; padding-right:0px; }", 
"#topMenu .quickopentag { padding:0px; margin:0px; border:0px; }",
"#topMenu .quickopentag .tiddlyLink { padding-right:1px; margin-right:0px; }",
"#topMenu .quickopentag .button { padding-left:1px; margin-left:0px; border:0px; }",

	init: function() {
		// we fully replace these builtins. can't hijack them easily
		window.createTagButton = this.createTagButton;
		config.macros.allTags.handler = this.allTagsHandler;
		config.macros.miniTag = { handler: this.miniTagHandler };
		config.shadowTiddlers["QuickOpenTagStyles"] = this.styles;



|Description:|Allows you to easily rename or delete tags across multiple tiddlers|
|Version:|3.0 ($Rev: 5501 $)|
|Date:|$Date: 2008-06-10 23:11:55 +1000 (Tue, 10 Jun 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|
Rename a tag and you will be prompted to rename it in all its tagged tiddlers.
config.renameTags = {

	prompts: {
		rename: "Rename the tag '%0' to '%1' in %2 tidder%3?",
		remove: "Remove the tag '%0' from %1 tidder%2?"

	removeTag: function(tag,tiddlers) {
		for (var i=0;i<tiddlers.length;i++) {

	renameTag: function(oldTag,newTag,tiddlers) {
		for (var i=0;i<tiddlers.length;i++) {
			store.setTiddlerTag(tiddlers[i].title,false,oldTag); // remove old
			store.setTiddlerTag(tiddlers[i].title,true,newTag);  // add new

	storeMethods: {

		saveTiddler_orig_renameTags: TiddlyWiki.prototype.saveTiddler,

		saveTiddler: function(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created) {
			if (title != newTitle) {
				var tagged = this.getTaggedTiddlers(title);
				if (tagged.length > 0) {
					// then we are renaming a tag
					if (confirm(config.renameTags.prompts.rename.format([title,newTitle,tagged.length,tagged.length>1?"s":""])))

					if (!this.tiddlerExists(title) && newBody == "")
						// dont create unwanted tiddler
						return null;
			return this.saveTiddler_orig_renameTags(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created);

		removeTiddler_orig_renameTags: TiddlyWiki.prototype.removeTiddler,

		removeTiddler: function(title) {
			var tagged = this.getTaggedTiddlers(title);
			if (tagged.length > 0)
				if (confirm(config.renameTags.prompts.remove.format([title,tagged.length,tagged.length>1?"s":""])))
			return this.removeTiddler_orig_renameTags(title);


	init: function() {


This is the most common scenario. Something goes haywire, and boom, no boot. No problem: boot up Knoppix and find all your local partitions nicely iconicized on the KDE desktop. (Or cruise the file tree to /mnt.) Click on the correct icon, and there are all your files. But they are wisely mounted read-only. Again, no problem: right-click the desktop icon to bring up a nice menu with a "Change read/write mode" option. This mounts the filesystem on the partition as read/write. Now you can edit any file.

The default user is knoppix. For operations that require root privileges, you need to su to root and assign a root password:

knoppix@ttyp0[knoppix]# su
root@ttyp0[knoppix]# passwd

To mount a filesystem read/write from the command line:

root@ttyp0[knoppix]# mount -t reiserfs -o rw /dev/hda5 /mnt/hda5

To unmount:

root@ttyp0[knoppix]# umount /mnt/hda5

If you get an error message "Could not unmount device, device is busy," something is reading the filesystem. Close files and cd out of the filesystem.

How do you know what mountpoint and filesystem to specify? Just read /etc/fstab:

root@ttyp0[knoppix]# cat /etc/fstab
# Added by Knoppix
/dev/hda5 /mnt/hda5 reiserfs noauto,users,exec 0 0
From SimonZerafa

Hi Guys,

If you have experiencing software problems with a Windows installation or you have just removed malware from a system, then resetting the OS to default Filing System and Registry Permissions is a very good idea. 

Items that can be reset include NTFS file system files and folders, the registry, policies, services, permissions and group membership.

This will prevent software installation problems in the future and undo any side-effects from the malware you have removed.

Finally Microsoft have indirectly documented this due to issues with installing Internet Explorer 8 here:

There is a another version of this fix documented here:


There is a handy looking tool you can download via the FixIt option which is called (wait for it);

  ResetSecuritySettingsBackToTheDefaults.msi :http://go.microsoft.com/?linkid=9646979

Wow that is a file name and a half! If it works it might even be worth keeping in your toolkit.

I have been using the .CMD script below for some time (originally created by DJLizard / Mike Cooke) but it's been modified a bit. This script is designed for Windows XP Home and XP Professional (but not server OS's). You need to locate a copy of SECEDIT.EXE which is supplied with Windows XP Professional.

The MSKB article above has slightly different syntax and states that their solution does not work on Windows XP Home Edition, or Windows Vista Home Basic and Home Premium Editions.  This maybe because SECEDIT.EXE is not supplied with those OS's. 

Try the .MSI file from the article and see if this works for you if you would rather try the official fix.


After you run this Microsoft Fix it (or run the .CMD script), standard user accounts may no longer appear on the log on screen when you start your computer or try to switch users. This occurs because standard user accounts are removed from the Users group when you reset Windows security settings. To add the affected users accounts back to the Users group, follow these steps:

   1. Click Start, and then All Programs. Or click Programs.

   2. Click Accessories, and then click Command Prompt (Windows XP). Or right-click Command Prompt, and then click Run As Administrator (Windows Vista).

   3. In the Command Prompt window, type net users and then press ENTER. A list of user accounts is displayed.

   4. For each <accountname> listed in the Command Prompt that is missing from the log on or switch user screen, type the following command and then press ENTER:

      net localgroup users <accountname> /add

Hope this helps!

Kind Regards


@echo off
setlocal enableextensions enabledelayedexpansion 
pushd %~dp0

  echo This can take a while to complete, so please be patient ...
  echo -------------------------------
  echo Step 1: Analysing the Differences ...
  echo (logging to %systemroot%\security\logs\secanalyze.log)
  secedit.exe /analyze /db %systemroot%\sectest.db /cfg %systemroot%\inf\defltwk.inf /log %systemroot%\security\logs\secanalyze.log
  echo -------------------------------
  echo Step 2: Applying Changes ... 
  echo (logging to %systemroot%\security\logs\secrepair.log)
  secedit.exe /configure /db %systemroot%\sectest.db /cfg %systemroot%\inf\defltwk.inf /log %systemroot%\security\logs\secrepair.log


echo Done.
echo Press a key...
pause > nul

Microsoft(R) Windows XP Windows File Checker Version 5.1
(C) 1999-2000 Microsoft Corp. All rights reserved

Scans all protected system files and replaces incorrect versions with correct Mi
crosoft versions.

/SCANNOW        Scans all protected system files immediately.
/SCANONCE       Scans all protected system files once at the next boot.
/SCANBOOT       Scans all protected system files at every boot.
/REVERT         Return scan to default setting.
/PURGECACHE     Purges the file cache.
/CACHESIZE=x    Sets the file cache size.
As a matter of routine, all legit Windows installations should XP Service Pack 3 installed (and post SP3 updates) before they are returned to customers.

Why? Microsoft will not be supporting Service Pack 2 for much longer and at that point you will need to have SP3 installed to receive critical updates. This SP2 retirement date is currently set for 13th July 2010.

In addition if Service Pack 3 will not or fails to install then there is a major issue with the OS which needs to be resolved before it's returned to the customer anyway.

The major installation issues seem to revolve around permissions issues on the registry or files on the hard drive generally caused by malware installations. I have posted elsewhere in this forum on how to resolve those types of issues.
|Description:|Provides two extra toolbar commands, saveCloseTiddler and cancelCloseTiddler|
|Version:|3.0 ($Rev: 5502 $)|
|Date:|$Date: 2008-06-10 23:31:39 +1000 (Tue, 10 Jun 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|
To use these you must add them to the tool bar in your EditTemplate

	saveCloseTiddler: {
		text: 'done/close',
		tooltip: 'Save changes to this tiddler and close it',
		handler: function(ev,src,title) {
			var closeTitle = title;
			var newTitle = story.saveTiddler(title,ev.shiftKey);
			if (newTitle)
				closeTitle = newTitle;
			return config.commands.closeTiddler.handler(ev,src,closeTitle);

	cancelCloseTiddler: {
		text: 'cancel/close',
		tooltip: 'Undo changes to this tiddler and close it',
		handler: function(ev,src,title) {
			// the same as closeTiddler now actually
			return config.commands.closeTiddler.handler(ev,src,title);



A podcast on computer security.
|Description:|Lets you easily switch theme and palette|
|Version:|1.0.1 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|
* Borrows largely from ThemeSwitcherPlugin by Martin Budden http://www.martinswiki.com/#ThemeSwitcherPlugin
* Theme is cookie based. But set a default by setting config.options.txtTheme in MptwConfigPlugin (for example)
* Palette is not cookie based. It actually overwrites your ColorPalette tiddler when you select a palette, so beware. 
* {{{<<selectTheme>>}}} makes a dropdown selector
* {{{<<selectPalette>>}}} makes a dropdown selector
* {{{<<applyTheme>>}}} applies the current tiddler as a theme
* {{{<<applyPalette>>}}} applies the current tiddler as a palette
* {{{<<applyTheme TiddlerName>>}}} applies TiddlerName as a theme
* {{{<<applyPalette TiddlerName>>}}} applies TiddlerName as a palette

config.macros.selectTheme = {
	label: {
      		selectTheme:"select theme",
      		selectPalette:"select palette"
	prompt: {
		selectTheme:"Select the current theme",
		selectPalette:"Select the current palette"
	tags: {

config.macros.selectTheme.handler = function(place,macroName)
	var btn = createTiddlyButton(place,this.label[macroName],this.prompt[macroName],this.onClick);
	// want to handle palettes and themes with same code. use mode attribute to distinguish

config.macros.selectTheme.onClick = function(ev)
	var e = ev ? ev : window.event;
	var popup = Popup.create(this);
	var mode = this.getAttribute('mode');
	var tiddlers = store.getTaggedTiddlers(config.macros.selectTheme.tags[mode]);
	// for default
	if (mode == "selectPalette") {
		var btn = createTiddlyButton(createTiddlyElement(popup,'li'),"(default)","default color palette",config.macros.selectTheme.onClickTheme);
	for(var i=0; i<tiddlers.length; i++) {
		var t = tiddlers[i].title;
		var name = store.getTiddlerSlice(t,'Name');
		var desc = store.getTiddlerSlice(t,'Description');
		var btn = createTiddlyButton(createTiddlyElement(popup,'li'), name?name:t, desc?desc:config.macros.selectTheme.label['mode'], config.macros.selectTheme.onClickTheme);
	return stopEvent(e);

config.macros.selectTheme.onClickTheme = function(ev)
	var mode = this.getAttribute('mode');
	var theme = this.getAttribute('theme');
	if (mode == 'selectTheme')
	else // selectPalette
	return false;

config.macros.selectTheme.updatePalette = function(title)
	if (title != "") {
		if (title != "(default)")

config.macros.applyTheme = {
	label: "apply",
	prompt: "apply this theme or palette" // i'm lazy

config.macros.applyTheme.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	var useTiddler = params[0] ? params[0] : tiddler.title;
	var btn = createTiddlyButton(place,this.label,this.prompt,config.macros.selectTheme.onClickTheme);
	btn.setAttribute('mode',macroName=="applyTheme"?"selectTheme":"selectPalette"); // a bit untidy here

config.macros.selectPalette = config.macros.selectTheme;
config.macros.applyPalette = config.macros.applyTheme;

config.macros.refreshAll = { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
	createTiddlyButton(place,"refresh","refresh layout and styles",function() { refreshAll(); });

|''Version:''|1.1.0 (2006-07-30)|
|''Author:''|Udo Borkowski (ub [at] abego-software [dot] de)|
|''Documentation:''|[[SettingsPlugin Documentation]]|
|''~SourceCode:''|[[SettingsPlugin SourceCode]]|
|''Licence:''|[[BSD open source license (abego Software)]]|
|''Browser:''|Firefox or better; Internet Explorer 6.0|
^^This tiddler contains compressed source code. [[Full Source Code|SettingsPlugin SourceCode]].^^
// /%
if(!version.extensions.SettingsPlugin){if(version.major<2){(function(){var s="Use TiddlyWiki 2.0 or better to run the Settings Plugin.";alert(s);throw s;})();}version.extensions.SettingsPlugin={major:1,minor:1,revision:0,date:new Date(2006,6,30),type:"plugin",source:"http://tiddlywiki.abego-software.de/#SettingsPlugin",documentation:"[[SettingsPlugin Documentation]]",sourcecode:"[[SettingsPlugin SourceCode]]",author:"Udo Borkowski (ub [at] abego-software [dot] de)",licence:"[[BSD open source license (abego Software)]]",coreVersion:"2.0.7",browser:"Firefox or better; Internet Explorer 6.0"};if(!window.abego){window.abego={};}if(!abego.setTiddlerText){abego.setTiddlerText=function(_2,_3,_4,_5,_6,_7){var _8=_2.getTiddler(_3);if(_8&&(_8.text==_4)){return;}var _9=config.options.chkForceMinorUpdate;var _a=!_8?_5:_8.tags;_2.suspendNotifications();try{_2.saveTiddler(_3,_3,_4,_9?undefined:config.options.txtUserName,_9?undefined:new Date(),_a);}finally{_2.resumeNotifications();}if(_7){_2.notify(_3,true);}if(!_6&&config.options.chkAutoSave){saveChanges();}};}(function(){var _b="PrivateSettings";var _c="chkUsePrivateSettings";var _d="chkMakeSettingPrivateWhenChanged";var _e=null;var _f=false;var _10=function(_11,s){var _13=s.split(";");var _14={};for(var c=0;c<_13.length;c++){var p=_13[c].indexOf("=");if(p!=-1){var _17=_13[c].substr(0,p).trim();var _18=_13[c].substr(p+1).trim();_11[_17]=unescape(_18);_14[_17]=true;}}return _14;};var _19=function(_1a){var s=store.getTiddlerText(_b);_e=s?_10(_1a,s):{};};var _1c=function(_1d){_10(_1d,document.cookie);};var _1e=function(){var _1f={};_1c(_1f);return _1f;};var _20=function(){var _21={};_19(_21);return _21;};var _22=function(_23,_24){document.cookie=_23+"="+escape(_24)+"; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/";};var _25=function(_26,s,_28){var _29=_20();if(s===null){if(!_e[_26]){return;}delete _29[_26];delete _e[_26];}else{var _2a=_29[_26];if(_2a!==undefined&&_2a==s){return;}_29[_26]=s;_e[_26]=true;}var t="";for(var i in _29){if(t){t+="; ";}t+=i+"="+escape(_29[i]);}abego.setTiddlerText(store,_b,t,["excludeLists","excludeSearch"],_28);if(!_28&&config.options.chkAutoSave){saveChanges();}};config.shadowTiddlers["BSD open source license (abego Software)"]="See [[Licence|http://tiddlywiki.abego-software.de/#%5B%5BBSD%20open%20source%20license%5D%5D]].";config.shadowTiddlers["SettingsPlugin Documentation"]="[[Documentation on abego Software website|http://tiddlywiki.abego-software.de/#%5B%5BSettingsPlugin%20Documentation%5D%5D]].\n\n^^You may copy the documentation tiddler from the website to your TiddlyWiki.\nThen you don't need to access the internet to read the documentation.^^";config.shadowTiddlers["SettingsPlugin SourceCode"]="Rightclick this [[link|http://tiddlywiki.abego-software.de/src/Plugin-Settings-src.js]] and choose 'Save target/link as...' to get the plugin source code from the abego Software website.";config.shadowTiddlers["Show Settings"]="<<showSettings>>";if(config.options[_c]===undefined){config.options[_c]=false;}if(config.options[_d]===undefined){config.options[_d]=false;}config.shadowTiddlers.AdvancedOptions+="\n''Private Settings: ''<<option "+_c+">> Use private settings.  <<option "+_d+">> Make setting private when changed.&#160;&#160;&#160;[[Show Settings]].\n^^(Private settings are stored in this ~TiddlyWiki, shared settings are stored as cookies. For more information see the [[Settings documentation|SettingsPlugin Documentation]].)^^";abego.usePrivateSettings=function(){return _f;};abego.setUsePrivateSettings=function(f){if(f!=abego.usePrivateSettings()){_f=f;loadOptionsCookie();}};abego.isUsePrivateSettingsOption=function(_2e){return _2e==_c;};abego.makeSettingPrivateWhenChanged=function(){return config.options[_d];};abego.setMakeSettingPrivateWhenChanged=function(f){config.options[_d]=f;};abego.getSettings=function(){var _30={};_1c(_30);_f=_30[_c]=="true";if(abego.usePrivateSettings()){_19(_30);}return _30;};abego.getSetting=function(_31){var s=abego.getSettings()[_31];return !s?"":s;};abego.saveSetting=function(_33,_34){if(abego.isUsePrivateSettingsOption(_33)){_22(_33,_34);abego.setUsePrivateSettings(_34=="true");loadOptionsCookie();window.alert("You changed the 'Use private settings' option.\nPlease reload your TiddlyWiki to update the settings.\n");return;}if(abego.usePrivateSettings()&&(abego.isSettingPrivate(_33)||abego.makeSettingPrivateWhenChanged())){_25(_33,_34);}else{_22(_33,_34);}};abego.isSettingPrivate=function(_35){if(abego.isUsePrivateSettingsOption(_35)){return false;}if(!_e){_20();}return !!_e[_35];};abego.isPasswordSetting=function(_36){return (_36.substr(0,3)=="pas")||(_36.substr(0,6)=="chkpas");};abego.makeSettingPrivate=function(_37,_38,_39){if(abego.isPasswordSetting(_37)){_25(_37,null,_39);return;}var _3a=_20();var _3b=_3a[_37]!==undefined;if(_38==_3b){return;}var _3c=_1e();if(_38){_25(_37,_3c[_37],_39);}else{if(_3c[_37]===undefined){_22(_37,_3a[_37]);}_25(_37,null,_39);}};abego.setAllSettingsPrivate=function(_3d,_3e){var _3f=abego.getSettings();for(var s in _3f){abego.makeSettingPrivate(s,_3d,true);}if(config.options.chkAutoSave){saveChanges();}if(_3e){story.refreshTiddler(_3e,1,true);}return false;};})();config.macros.showSettings={label:"showSettings",prompt:"Display the current TiddlyWiki settings"};config.macros.showSettings.handler=function(_41,_42,_43,_44,_45,_46){var _47=function(a){var s=a.substr(0,3);return s=="txt"||s=="chk";};var _4a=function(a,b){var s1=a.toLowerCase();var s2=b.toLowerCase();return (s1<s2)?-1:(s1==s2)?0:1;};var _4f=function(a,b){var _52=_47(a);var _53=_47(b);if(_52){if(!_53){return -1;}else{return _4a(a.substr(3),b.substr(3));}}else{if(_53){return 1;}else{return _4a(a,b);}}};var s="<html><table><tr align=\"left\"><th>Private</th><th>Name</th><th>Value</th></tr>";var c=abego.getSettings();var _56=[];for(var i in c){if(!abego.isPasswordSetting(i)){_56.push(i);}}_56.sort(_4f);for(i=0;i<_56.length;i++){var _58=_56[i];var _59=_47(_58)?_58.substr(3)+" ("+_58.substr(0,3)+"...)":_58;var _5a=abego.isUsePrivateSettingsOption(_58)?"":"<input name=\""+_58+"\" type=\"checkbox\" onclick=\"abego.onPrivateSettingClick(this)\""+(abego.isSettingPrivate(_58)?" checked":"")+"/>";s+="<tr><td align=\"right\">"+_5a+"</td><td>"+_59+"</td><td>"+c[_58]+"</td></tr>\n";}s+="</table>";s+="<a class=\"button\" title=\"Make all current settings private\" href=\"javascript:;\" onclick=\"abego.setAllSettingsPrivate(true,'"+_46.title+"',1);\">Make all private</a>";s+="<a class=\"button\" title=\"Make all current settings shared\" href=\"javascript:;\" onclick=\"abego.setAllSettingsPrivate(false,'"+_46.title+"',1);\">Make all shared</a>";s+="</html>";wikify(s,_41);};abego.onPrivateSettingClick=function(_5b){abego.makeSettingPrivate(_5b.name,_5b.checked);return false;};this.loadOptionsCookie=function(){if(safeMode){return;}var _5c=abego.getSettings();for(var _5d in _5c){var _5e=_5c[_5d];switch(_5d.substr(0,3)){case "txt":config.options[_5d]=unescape(_5e);break;case "chk":config.options[_5d]=_5e=="true";break;}}};this.saveOptionCookie=function(_5f){if(safeMode){return;}var v="";switch(_5f.substr(0,3)){case "txt":v=config.options[_5f].toString();break;case "chk":v=config.options[_5f]?"true":"false";break;}abego.saveSetting(_5f,v);};loadOptionsCookie();}
// %/
By default the settings that you can change in the [[options|OptionsPanel]] panel and the [[AdvancedOptions]] are shared by all ~TiddlyWikis of the same site.
This also means that all your local ~TiddlyWikis share the same settings. This is not always what you want, especially when you are working with multiple local ~TiddlyWikis at once.

The SettingsPlugin allows you to decide "per setting" if a setting should be shared by all ~TiddlyWikis or if a setting should be "private" to a given ~TiddlyWiki. Alternatively you may also decide that all settings should be private to a given ~TiddlyWiki.

''Using Private Settings''

By default all settings are "shared", i.e. the settings behave in their standard way. To enable the "private settings" feature check the "Use private settings" checkbox in the AdvancedOptions.

Once private settings are enabled you have two options:
* All changes to settings should be "private", i.e. don't affect other ~TiddlyWikis. Therefore check the "Make setting private when changed" checkbox in the AdvancedOptions. 
* Individual settings should be private. You can specify the settings in the [[Show Settings]] tiddler. Here you can also make all settings shared or private, with one click. The [[Show Settings]] tiddler can be accessed through the AdvancedOptions.

You can decide what settings should be private or shared individually for every ~TiddlyWiki.

You may temporarily switch off "Use private settings". Then your private settings will not be used. When you switch on again "Use Private Settings", your decision what settings should be private or shared and also the private values will be remembered.

''How Settings are Stored''

As in the original ~TiddlyWiki code shared settings/options are stored as "cookies" with your browser.
Private settings are stored in a tiddler of the ~TiddlyWiki. You need to ensure that the ~TiddlyWiki can be saved when you want to keep your private settings.

!Revision history
* v1.1.0
** Support Internet Explorer
** Don't save password options ("pas..."/"chkpas...") as private settings, and don't display them in the showSettings. Thanks to BidiX for the implementation.
** Bugfix: Invalid syntax HTML stmt for the "private" settings checkboxes. Thanks to BidiX for the fix.
* v1.0.2
** Bugfix: corrected "suspendNotification" bug. Thanks to Jack, BobEverson and MorrisGray for reporting.
* v1.0.1 
** Bugfix: Corrected wrong comment in compressed version of plugin.
** Internal: Simplified "saveTiddler" code. Thanks to Jeremy Ruston for the suggestion.
* v1.0.0 (2006-04-03)
** initial version

The SettingsPlugin SourceCode contains compressed source code. You will find the full source code [[here|SettingsPlugin SourceCode]].
For SettingsPlugin source code see the [[archive|http://tiddlywiki.abego-software.de/archive]].

a non-linear tech web notebook
[[Podnutz|http://www.podnutz.com]] TiddlyWiki

A sample list from Radioshac with prices as of 4/15/09	

Helping Hands with Magnifier $16.49
60/40 Rosin-Core Solder .032 Diameter Light-Duty 2oz $5.49
Dual Heat Solder Iron 15watt/30watt $10.99
Iron Holder Cleaner $ 7.99
Desolder Braid 5 foot $ 3.99
Solder Tip Tinner/Cleaner $6.99
Total $51.94
Creator of Podnutz
<<allTags excludeLists>>
<<tabs txtMoreTab "Tags" "All Tags" TabAllTags "Miss" "Missing tiddlers" TabMoreMissing "Orph" "Orphaned tiddlers" TabMoreOrphans "Shad" "Shadowed tiddlers" TabMoreShadowed>>
<<allTags excludeLists [a-z]>>
<<cloud systemConfig excludeMissing script ChrisWeible auto GettingStarted [[Computer Repair Web / Blog Sites]] PodnutzWiki Contributors Limit:20>>
version.extensions.TagCloudPlugin= {major: 1, minor: 6 , revision: 0, date: new Date(2009,2,26)};
//Originally created by Clint Checketts, contributions by Jonny Leroy and Eric Shulman
//Currently maintained and enhanced by Eric Shulman

config.macros.cloud = {
	tagstip: "%1 tiddlers tagged with '%0'",
	refslabel: " (%0 references)",
	refstip: "%1 tiddlers have links to '%0'",
	linkslabel: " (%0 links)",
	linkstip: "'%0' has links to %1 other tiddlers",
	groups: 9,
	init: function() {
		config.macros.tagCloud=config.macros.cloud; // for backward-compatibility
			+'.tagCloud span {line-height: 3.5em; margin:3px;}\n'
			+'.tagCloud1{font-size: 80%;}\n'
			+'.tagCloud2{font-size: 100%;}\n'
			+'.tagCloud3{font-size: 120%;}\n'
			+'.tagCloud4{font-size: 140%;}\n'
			+'.tagCloud5{font-size: 160%;}\n'
			+'.tagCloud6{font-size: 180%;}\n'
			+'.tagCloud7{font-size: 200%;}\n'
			+'.tagCloud8{font-size: 220%;}\n'
			+'.tagCloud9{font-size: 240%;}\n'
	getLinks: function(tiddler) { // get list of links to existing tiddlers and shadows
		if (!tiddler.linksUpdated) tiddler.changed();
		var list=[]; for (var i=0; i<tiddler.links.length; i++) {
			var title=tiddler.links[i];
			if (store.isShadowTiddler(title)||store.tiddlerExists(title))
		return list;
	handler: function(place,macroName,params) {
		// unpack params
		var inc=[]; var ex=[]; var limit=0; var action='popup';
		var links=(params[0]&&params[0].toLowerCase()=='links'); if (links) params.shift();
		var refs=(params[0]&&params[0].toLowerCase()=='references'); if (refs) params.shift();
		if (params[0]&&params[0].substr(0,7).toLowerCase()=='action:')
		if (params[0]&&params[0].substr(0,6).toLowerCase()=='limit:')
		if (params.length) {
			if (params[0].substr(0,1)=='+') { // get tag list from tiddler
				var inc=store.getTiddlerText(params[0].substr(1),'').readBracketedList();
			} else if (params[0].substr(0,1)=='=') { // get tag list using tagged tags
				var tagged=store.getTaggedTiddlers(params[0].substr(1));
				for (var t=0; t<tagged.length; t++) inc.push(tagged[t].title);
			} else ex=params; // exclude params
		// get all items, include/exclude specific items
		var items=[];
		var list=(links||refs)?store.getTiddlers('title','excludeLists'):store.getTags();
		for (var t=0; t<list.length; t++) {
			var title=(links||refs)?list[t].title:list[t][0];
			if (links)	var count=this.getLinks(list[t]).length;
			else if (refs)	var count=store.getReferringTiddlers(title).length;
			else 		var count=list[t][1];
			if ((!inc.length||inc.contains(title))&&(!ex.length||!ex.contains(title)))
				items.push({ title:title, count:count });
		if(!items.length) return;
		// sort by decending count, limit results (optional)
		while (limit && items.length>limit) items.pop();
		// find min/max and group size
		var most=items[0].count;
		var least=items[items.length-1].count;
		var groupSize=(most-least+1)/this.groups;
		// sort by title and draw the cloud of items
		var cloudWrapper = createTiddlyElement(place,'div',null,'tagCloud',null);
		for (var t=0; t<items.length; t++) {
			cloudWrapper.appendChild(document.createTextNode(' '));
			var group=Math.ceil((items[t].count-least)/groupSize)||1;
			var className='tagCloudtag tagCloud'+group;
			var tip=refs?this.refstip:links?this.linkstip:this.tagstip;
			if (action=='goto') { // TAG/LINK/REFERENCES GOTO
				var btn=createTiddlyLink(cloudWrapper,items[t].title,true,className);
			} else if (!links&&!refs) { // TAG POPUP
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,onClickTag,className);
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,
					function(ev) { var e=ev||window.event; var cmt=config.macros.cloud;
						var popup = Popup.create(this);
						var title = this.getAttribute('tiddler');
						var count = this.getAttribute('count');
						var refs  = this.getAttribute('refs')=='T';
						var links = this.getAttribute('links')=='T';
						var label = (refs?cmt.refslabel:cmt.linkslabel).format([count]);
						if (refs) {
						if (links) {
							var tiddler = store.fetchTiddler(title);
							var links=config.macros.cloud.getLinks(tiddler);
							for(var i=0;i<links.length;i++)
						e.cancelBubble=true; if(e.stopPropagation) e.stopPropagation();
						return false;
					}, className);
|Description:|tagglyTagging macro is a replacement for the builtin tagging macro in your ViewTemplate|
|Version:|3.3.1 ($Rev: 6100 $)|
|Date:|$Date: 2008-07-27 01:42:07 +1000 (Sun, 27 Jul 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|
See http://mptw.tiddlyspot.com/#TagglyTagging


	parseTagExpr: function(debug) {

		if (this.trim() == "")
			return "(true)";

		var anyLogicOp = /(!|&&|\|\||\(|\))/g;
		var singleLogicOp = /^(!|&&|\|\||\(|\))$/;

		var spaced = this.
			// because square brackets in templates are no good
			// this means you can use [(With Spaces)] instead of [[With Spaces]]
			replace(/\[\(/g," [[").
			replace(/\)\]/g,"]] "). 
			// space things out so we can use readBracketedList. tricky eh?
			replace(anyLogicOp," $1 ");

		var expr = "";

		var tokens = spaced.readBracketedList(false); // false means don't uniq the list. nice one JR!

		for (var i=0;i<tokens.length;i++)
			if (tokens[i].match(singleLogicOp))
				expr += tokens[i];
				expr += "tiddler.tags.contains('%0')".format([tokens[i].replace(/'/,"\\'")]); // fix single quote bug. still have round bracket bug i think

		if (debug)

		return '('+expr+')';


	getTiddlersByTagExpr: function(tagExpr,sortField) {

		var result = [];

		var expr = tagExpr.parseTagExpr();

		store.forEachTiddler(function(title,tiddler) {
			if (eval(expr))

			sortField = "title";

		result.sort(function(a,b) {return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);});
		return result;

config.taggly = {

	// for translations
	lingo: {
		labels: {
			asc:        "\u2191", // down arrow
			desc:       "\u2193", // up arrow
			title:      "title",
			modified:   "modified",
			created:    "created",
			show:       "+",
			hide:       "-",
			normal:     "normal",
			group:      "group",
			commas:     "commas",
			sitemap:    "sitemap",
			numCols:    "cols\u00b1", // plus minus sign
			label:      "Tagged as '%0':",
			exprLabel:  "Matching tag expression '%0':",
			excerpts:   "excerpts",
			descr:      "descr",
			slices:     "slices",
			contents:   "contents",
			sliders:    "sliders",
			noexcerpts: "title only",
			noneFound:  "(none)"

		tooltips: {
			title:      "Click to sort by title",
			modified:   "Click to sort by modified date",
			created:    "Click to sort by created date",
			show:       "Click to show tagging list",
			hide:       "Click to hide tagging list",
			normal:     "Click to show a normal ungrouped list",
			group:      "Click to show list grouped by tag",
			sitemap:    "Click to show a sitemap style list",
			commas:     "Click to show a comma separated list",
			numCols:    "Click to change number of columns",
			excerpts:   "Click to show excerpts",
			descr:      "Click to show the description slice",
			slices:     "Click to show all slices",
			contents:   "Click to show entire tiddler contents",
			sliders:    "Click to show tiddler contents in sliders",
			noexcerpts: "Click to show entire title only"

		tooDeepMessage: "* //sitemap too deep...//"

	config: {
		showTaggingCounts: true,
		listOpts: {
			// the first one will be the default
			sortBy:     ["title","modified","created"],
			sortOrder:  ["asc","desc"],
			hideState:  ["show","hide"],
			listMode:   ["normal","group","sitemap","commas"],
			numCols:    ["1","2","3","4","5","6"],
			excerpts:   ["noexcerpts","excerpts","descr","slices","contents","sliders"]
		valuePrefix: "taggly.",
		excludeTags: ["excludeLists","excludeTagging"],
		excerptSize: 50,
		excerptMarker: "/%"+"%/",
		siteMapDepthLimit: 25

	getTagglyOpt: function(title,opt) {
		var val = store.getValue(title,this.config.valuePrefix+opt);
		return val ? val : this.config.listOpts[opt][0];

	setTagglyOpt: function(title,opt,value) {
		if (!store.tiddlerExists(title))
			// create it silently
			store.saveTiddler(title,title,config.views.editor.defaultText.format([title]),config.options.txtUserName,new Date(),"");
		// if value is default then remove it to save space
		return store.setValue(title,
			value == this.config.listOpts[opt][0] ? null : value);

	getNextValue: function(title,opt) {
		var current = this.getTagglyOpt(title,opt);
		var pos = this.config.listOpts[opt].indexOf(current);
		// a little usability enhancement. actually it doesn't work right for grouped or sitemap
		var limit = (opt == "numCols" ? store.getTiddlersByTagExpr(title).length : this.config.listOpts[opt].length);
		var newPos = (pos + 1) % limit;
		return this.config.listOpts[opt][newPos];

	toggleTagglyOpt: function(title,opt) {
		var newVal = this.getNextValue(title,opt);

	createListControl: function(place,title,type) {
		var lingo = config.taggly.lingo;
		var label;
		var tooltip;
		var onclick;

		if ((type == "title" || type == "modified" || type == "created")) {
			// "special" controls. a little tricky. derived from sortOrder and sortBy
			label = lingo.labels[type];
			tooltip = lingo.tooltips[type];

			if (this.getTagglyOpt(title,"sortBy") == type) {
				label += lingo.labels[this.getTagglyOpt(title,"sortOrder")];
				onclick = function() {
					return false;
			else {
				onclick = function() {
					return false;
		else {
			// "regular" controls, nice and simple
			label = lingo.labels[type == "numCols" ? type : this.getNextValue(title,type)];
			tooltip = lingo.tooltips[type == "numCols" ? type : this.getNextValue(title,type)];
			onclick = function() {
				return false;

		// hide button because commas don't have columns
		if (!(this.getTagglyOpt(title,"listMode") == "commas" && type == "numCols"))
			createTiddlyButton(place,label,tooltip,onclick,type == "hideState" ? "hidebutton" : "button");

	makeColumns: function(orig,numCols) {
		var listSize = orig.length;
		var colSize = listSize/numCols;
		var remainder = listSize % numCols;

		var upperColsize = colSize;
		var lowerColsize = colSize;

		if (colSize != Math.floor(colSize)) {
			// it's not an exact fit so..
			upperColsize = Math.floor(colSize) + 1;
			lowerColsize = Math.floor(colSize);

		var output = [];
		var c = 0;
		for (var j=0;j<numCols;j++) {
			var singleCol = [];
			var thisSize = j < remainder ? upperColsize : lowerColsize;
			for (var i=0;i<thisSize;i++) 

		return output;

	drawTable: function(place,columns,theClass) {
		var newTable = createTiddlyElement(place,"table",null,theClass);
		var newTbody = createTiddlyElement(newTable,"tbody");
		var newTr = createTiddlyElement(newTbody,"tr");
		for (var j=0;j<columns.length;j++) {
			var colOutput = "";
			for (var i=0;i<columns[j].length;i++) 
				colOutput += columns[j][i];
			var newTd = createTiddlyElement(newTr,"td",null,"tagglyTagging"); // todo should not need this class
		return newTable;

	createTagglyList: function(place,title,isTagExpr) {
		switch(this.getTagglyOpt(title,"listMode")) {
			case "group":  return this.createTagglyListGrouped(place,title,isTagExpr); break;
			case "normal": return this.createTagglyListNormal(place,title,false,isTagExpr); break;
			case "commas": return this.createTagglyListNormal(place,title,true,isTagExpr); break;
			case "sitemap":return this.createTagglyListSiteMap(place,title,isTagExpr); break;

	getTaggingCount: function(title,isTagExpr) {
		// thanks to Doug Edmunds
		if (this.config.showTaggingCounts) {
			var tagCount = config.taggly.getTiddlers(title,'title',isTagExpr).length;
			if (tagCount > 0)
				return " ("+tagCount+")";
		return "";

	getTiddlers: function(titleOrExpr,sortBy,isTagExpr) {
		return isTagExpr ? store.getTiddlersByTagExpr(titleOrExpr,sortBy) : store.getTaggedTiddlers(titleOrExpr,sortBy);

	getExcerpt: function(inTiddlerTitle,title,indent) {
		if (!indent)
			indent = 1;

		var displayMode = this.getTagglyOpt(inTiddlerTitle,"excerpts");
		var t = store.getTiddler(title);

		if (t && displayMode == "excerpts") {
			var text = t.text.replace(/\n/," ");
			var marker = text.indexOf(this.config.excerptMarker);
			if (marker != -1) {
				return " {{excerpt{<nowiki>" + text.substr(0,marker) + "</nowiki>}}}";
			else if (text.length < this.config.excerptSize) {
				return " {{excerpt{<nowiki>" + t.text + "</nowiki>}}}";
			else {
				return " {{excerpt{<nowiki>" + t.text.substr(0,this.config.excerptSize) + "..." + "</nowiki>}}}";
		else if (t && displayMode == "contents") {
			return "\n{{contents indent"+indent+"{\n" + t.text + "\n}}}";
		else if (t && displayMode == "sliders") {
			return "<slider slide>\n{{contents{\n" + t.text + "\n}}}\n</slider>";
		else if (t && displayMode == "descr") {
			var descr = store.getTiddlerSlice(title,'Description');
			return descr ? " {{excerpt{" + descr  + "}}}" : "";
		else if (t && displayMode == "slices") {
			var result = "";
			var slices = store.calcAllSlices(title);
			for (var s in slices)
				result += "|%0|<nowiki>%1</nowiki>|\n".format([s,slices[s]]);
			return result ? "\n{{excerpt excerptIndent{\n" + result  + "}}}" : "";
		return "";

	notHidden: function(t,inTiddler) {
		if (typeof t == "string") 
			t = store.getTiddler(t);
		return (!t || !t.tags.containsAny(this.config.excludeTags) ||
				(inTiddler && this.config.excludeTags.contains(inTiddler)));

	// this is for normal and commas mode
	createTagglyListNormal: function(place,title,useCommas,isTagExpr) {

		var list = config.taggly.getTiddlers(title,this.getTagglyOpt(title,"sortBy"),isTagExpr);

		if (this.getTagglyOpt(title,"sortOrder") == "desc")
			list = list.reverse();

		var output = [];
		var first = true;
		for (var i=0;i<list.length;i++) {
			if (this.notHidden(list[i],title)) {
				var countString = this.getTaggingCount(list[i].title);
				var excerpt = this.getExcerpt(title,list[i].title);
				if (useCommas)
					output.push((first ? "" : ", ") + "[[" + list[i].title + "]]" + countString + excerpt);
					output.push("*[[" + list[i].title + "]]" + countString + excerpt + "\n");

				first = false;

		return this.drawTable(place,
			this.makeColumns(output,useCommas ? 1 : parseInt(this.getTagglyOpt(title,"numCols"))),
			useCommas ? "commas" : "normal");

	// this is for the "grouped" mode
	createTagglyListGrouped: function(place,title,isTagExpr) {
		var sortBy = this.getTagglyOpt(title,"sortBy");
		var sortOrder = this.getTagglyOpt(title,"sortOrder");

		var list = config.taggly.getTiddlers(title,sortBy,isTagExpr);

		if (sortOrder == "desc")
			list = list.reverse();

		var leftOvers = []
		for (var i=0;i<list.length;i++)

		var allTagsHolder = {};
		for (var i=0;i<list.length;i++) {
			for (var j=0;j<list[i].tags.length;j++) {

				if (list[i].tags[j] != title) { // not this tiddler

					if (this.notHidden(list[i].tags[j],title)) {

						if (!allTagsHolder[list[i].tags[j]])
							allTagsHolder[list[i].tags[j]] = "";

						if (this.notHidden(list[i],title)) {
							allTagsHolder[list[i].tags[j]] += "**[["+list[i].title+"]]"
										+ this.getTaggingCount(list[i].title) + this.getExcerpt(title,list[i].title) + "\n";

							leftOvers.setItem(list[i].title,-1); // remove from leftovers. at the end it will contain the leftovers


		var allTags = [];
		for (var t in allTagsHolder)

		var sortHelper = function(a,b) {
			if (a == b) return 0;
			if (a < b) return -1;
			return 1;

		allTags.sort(function(a,b) {
			var tidA = store.getTiddler(a);
			var tidB = store.getTiddler(b);
			if (sortBy == "title") return sortHelper(a,b);
			else if (!tidA && !tidB) return 0;
			else if (!tidA) return -1;
			else if (!tidB) return +1;
			else return sortHelper(tidA[sortBy],tidB[sortBy]);

		var leftOverOutput = "";
		for (var i=0;i<leftOvers.length;i++)
			if (this.notHidden(leftOvers[i],title))
				leftOverOutput += "*[["+leftOvers[i]+"]]" + this.getTaggingCount(leftOvers[i]) + this.getExcerpt(title,leftOvers[i]) + "\n";

		var output = [];

		if (sortOrder == "desc")
		else if (leftOverOutput != "")
			// leftovers first...

		for (var i=0;i<allTags.length;i++)
			if (allTagsHolder[allTags[i]] != "")
				output.push("*[["+allTags[i]+"]]" + this.getTaggingCount(allTags[i]) + this.getExcerpt(title,allTags[i]) + "\n" + allTagsHolder[allTags[i]]);

		if (sortOrder == "desc" && leftOverOutput != "")
			// leftovers last...

		return this.drawTable(place,


	// used to build site map
	treeTraverse: function(title,depth,sortBy,sortOrder,isTagExpr) {

		var list = config.taggly.getTiddlers(title,sortBy,isTagExpr);

		if (sortOrder == "desc")

		var indent = "";
		for (var j=0;j<depth;j++)
			indent += "*"

		var childOutput = "";

		if (depth > this.config.siteMapDepthLimit)
			childOutput += indent + this.lingo.tooDeepMessage;
			for (var i=0;i<list.length;i++)
				if (list[i].title != title)
					if (this.notHidden(list[i].title,this.config.inTiddler))
						childOutput += this.treeTraverse(list[i].title,depth+1,sortBy,sortOrder,false);

		if (depth == 0)
			return childOutput;
			return indent + "[["+title+"]]" + this.getTaggingCount(title) + this.getExcerpt(this.config.inTiddler,title,depth) + "\n" + childOutput;

	// this if for the site map mode
	createTagglyListSiteMap: function(place,title,isTagExpr) {
		this.config.inTiddler = title; // nasty. should pass it in to traverse probably
		var output = this.treeTraverse(title,0,this.getTagglyOpt(title,"sortBy"),this.getTagglyOpt(title,"sortOrder"),isTagExpr);
		return this.drawTable(place,
				this.makeColumns(output.split(/(?=^\*\[)/m),parseInt(this.getTagglyOpt(title,"numCols"))), // regexp magic

	macros: {
		tagglyTagging: {
			handler: function (place,macroName,params,wikifier,paramString,tiddler) {
				var parsedParams = paramString.parseParams("tag",null,true);
				var refreshContainer = createTiddlyElement(place,"div");

				// do some refresh magic to make it keep the list fresh - thanks Saq

				var tag = getParam(parsedParams,"tag");
				var expr = getParam(parsedParams,"expr");

				if (expr) {
				else {
					if (tag) {
					else {

			refresh: function(place) {
				var title = place.getAttribute("title");
				var isTagExpr = place.getAttribute("isTagExpr") == "true";
				var showEmpty = place.getAttribute("showEmpty") == "true";
				var countFound = config.taggly.getTiddlers(title,'title',isTagExpr).length
				if (countFound > 0 || showEmpty) {
					var lingo = config.taggly.lingo;
					if (config.taggly.getTagglyOpt(title,"hideState") == "show") {
								isTagExpr ? lingo.labels.exprLabel.format([title]) : lingo.labels.label.format([title]));
						if (countFound == 0 && showEmpty)

	// todo fix these up a bit
	styles: [
"/* created by TagglyTaggingPlugin */",
".tagglyTagging { padding-top:0.5em; }",
".tagglyTagging li.listTitle { display:none; }",
".tagglyTagging ul {",
"	margin-top:0px; padding-top:0.5em; padding-left:2em;",
"	margin-bottom:0px; padding-bottom:0px;",
".tagglyTagging { vertical-align: top; margin:0px; padding:0px; }",
".tagglyTagging table { margin:0px; padding:0px; }",
".tagglyTagging .button { visibility:hidden; margin-left:3px; margin-right:3px; }",
".tagglyTagging .button, .tagglyTagging .hidebutton {",
"	color:[[ColorPalette::TertiaryLight]]; font-size:90%;",
"	border:0px; padding-left:0.3em;padding-right:0.3em;",
".tagglyTagging .button:hover, .hidebutton:hover, ",
".tagglyTagging .button:active, .hidebutton:active  {",
"	border:0px; background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]];",
".selected .tagglyTagging .button { visibility:visible; }",
".tagglyTagging .hidebutton { color:[[ColorPalette::Background]]; }",
".selected .tagglyTagging .hidebutton { color:[[ColorPalette::TertiaryLight]] }",
".tagglyLabel { color:[[ColorPalette::TertiaryMid]]; font-size:90%; }",
".tagglyTagging ul {padding-top:0px; padding-bottom:0.5em; margin-left:1em; }",
".tagglyTagging ul ul {list-style-type:disc; margin-left:-1em;}",
".tagglyTagging ul ul li {margin-left:0.5em; }",
".editLabel { font-size:90%; padding-top:0.5em; }",
".tagglyTagging .commas { padding-left:1.8em; }",
"/* not technically tagglytagging but will put them here anyway */",
".tagglyTagged li.listTitle { display:none; }",
".tagglyTagged li { display: inline; font-size:90%; }",
".tagglyTagged ul { margin:0px; padding:0px; }",
".excerpt { color:[[ColorPalette::TertiaryDark]]; }",
".excerptIndent { margin-left:4em; }",
"div.tagglyTagging table,",
"div.tagglyTagging table tr,",
" {border-style:none!important; }",
".tagglyTagging .contents { border-bottom:2px solid [[ColorPalette::TertiaryPale]]; padding:0 1em 1em 0.5em;",
"  margin-bottom:0.5em; }",
".tagglyTagging .indent1  { margin-left:3em;  }",
".tagglyTagging .indent2  { margin-left:4em;  }",
".tagglyTagging .indent3  { margin-left:5em;  }",
".tagglyTagging .indent4  { margin-left:6em;  }",
".tagglyTagging .indent5  { margin-left:7em;  }",
".tagglyTagging .indent6  { margin-left:8em;  }",
".tagglyTagging .indent7  { margin-left:9em;  }",
".tagglyTagging .indent8  { margin-left:10em; }",
".tagglyTagging .indent9  { margin-left:11em; }",
".tagglyTagging .indent10 { margin-left:12em; }",
".tagglyNoneFound { margin-left:2em; color:[[ColorPalette::TertiaryMid]]; font-size:90%; font-style:italic; }",

	init: function() {
		config.shadowTiddlers["TagglyTaggingStyles"] = this.styles;



By Saq Imtiaz

// syntax adjusted to not clash with NestedSlidersPlugin
// added + syntax to start open instead of closed

config.formatters.unshift( {
	name: "inlinesliders",
	// match: "\\+\\+\\+\\+|\\<slider",
	match: "\\<slider",
	// lookaheadRegExp: /(?:\+\+\+\+|<slider) (.*?)(?:>?)\n((?:.|\n)*?)\n(?:====|<\/slider>)/mg,
	lookaheadRegExp: /(?:<slider)(\+?) (.*?)(?:>)\n((?:.|\n)*?)\n(?:<\/slider>)/mg,
	handler: function(w) {
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart ) {
			var btn = createTiddlyButton(w.output,lookaheadMatch[2] + " "+"\u00BB",lookaheadMatch[2],this.onClickSlider,"button sliderButton");
			var panel = createTiddlyElement(w.output,"div",null,"sliderPanel");
			panel.style.display = (lookaheadMatch[1] == '+' ? "block" : "none");
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
   onClickSlider : function(e) {
		if(!e) var e = window.event;
		var n = this.nextSibling;
		n.style.display = (n.style.display=="none") ? "block" : "none";
		return false;

If it's tech, it's here. 

http://www.technibble.com  has some really good stuff.

* [[Spotting Stolen Hardware|http://www.technibble.com/how-to-spot-stolen-hardware-and-why-you-should-refuse-to-work-on-it/]]
* [[Earning Clients Respect|http://www.technibble.com/earning-clients-respect/]]
** [[Accessing Windows User Accounts|http://www.technibble.com/how-to-gain-access-to-windows-user-account/]]
** [[Bypass Bios Password|http://www.technibble.com/how-to-bypass-or-remove-a-bios-password/]]
** [[Offline NT Password Editor|http://www.technibble.com/repair-tool-of-the-week-offline-nt-password-registry-editor/]]
* [[Onsite Technician CD Wallet|http://www.technibble.com/my-onsite-technician-cd-wallet/]]
Guests: Eric Fiore, Mike Petro, Steve D'Amico

Debate topics:

Mac vs. PC (Eric) 
Iphone vs. Other Smart Phones (Mike) 
PC Reinstall vs. Clean-up (Steve D.) 
Netbooks vs. Low Cost Laptops (Steve C.) 
Guests: Ben Straw, Mike Turner, Keith Albright

Debate topics:

Brand Loyalty (Ben) 
Intel vs. AMD (Keith) 
XP vs. Vista (Mike) 
Blu-Ray vs. Downloadable Media (Steve C.) 

Mike Petro 
Mike Turner 
Mike Smith 
This weeks Guests:

Ben Straw - BensTechShow.com 
Steve McLaughlin - DoorToDoorGeek.com 
Topics: Spinrite, Netbooks, Music Subscription Services

Dave - Tech9ComputerAnalysis.com 
Mirza - Geeknician.com 
Raul - Ecticon.com 
Steve - DoorToDoorGeek.com 
Running time: 1:17:15
Added: 28 April 09

Eric - from NJ 
Rob - from St. Louis 
Jay Sholes - from TheDeltaSector.com 
Running time: 1:14:11
Added: 2 May 2009
Eric Fiore - PBurgPCRepair.com
Russ Wenner - TheTechieGeek.com
Steve D'Amico - SMDComputer.net

Running time: 1:19:39
Added: 31 May 2009
Host: Steve Cherubino


Mike Smith - Mike Tech Show 
Michael Moto - mflstccomputer.com 
Winston Wolf - InLoveWithTech.com 
Running time: 1:08:38
Added: 21 Jul 2009

GA - Bartow, North Paulding, North Cobb, Floyd, Eastern Cherokee, Southern Gordon. michaelm (MichaelMurray) http://www.mpmcomputerrepair.com

GA, SC Savannah, Garden City, Richmond Hill, Wilmington Isle, Tybee Isle, Hardeeville SC. timster (TimKelly) http://www.TimsComputerFix.com

MD - Greater Baltimore Area. doortodoorgeek (StephenMcLaughlin) http://www.DoorToDoorGeek.com

VA - Page, Augusta, Rockingham counties. DocBrown (LarryAldrich) http://www.aldrichpcrepair.com


Ontario Brooklin, Whitby, Oshawa, Ajax. rdubecki (RodDubecki) http://www.brooklincomputerrepair.com


North Wales. Now offering website hosting, PC repair coming soon. DaveMason (DaveMason) http://www.hostingclick.co.uk
|Description:|Makes a checkbox which toggles a tag in a tiddler|
|Version:|3.1.0 ($Rev: 4907 $)|
|Date:|$Date: 2008-05-13 03:15:46 +1000 (Tue, 13 May 2008) $|
|Author:|Simon Baird <simon.baird@gmail.com>|
{{{<<toggleTag }}}//{{{TagName TiddlerName LabelText}}}//{{{>>}}}
* TagName - the tag to be toggled, default value "checked"
* TiddlerName - the tiddler to toggle the tag in, default value the current tiddler
* LabelText - the text (gets wikified) to put next to the check box, default value is '{{{[[TagName]]}}}' or '{{{[[TagName]] [[TiddlerName]]}}}'
(If a parameter is '.' then the default will be used)
* TouchMod flag - if non empty then touch the tiddlers mod date. Note, can set config.toggleTagAlwaysTouchModDate to always touch mod date
|{{{<<toggleTag>>}}}|Toggles the default tag (checked) in this tiddler|<<toggleTag>>|
|{{{<<toggleTag TagName>>}}}|Toggles the TagName tag in this tiddler|<<toggleTag TagName>>|
|{{{<<toggleTag TagName TiddlerName>>}}}|Toggles the TagName tag in the TiddlerName tiddler|<<toggleTag TagName TiddlerName>>|
|{{{<<toggleTag TagName TiddlerName 'click me'>>}}}|Same but with custom label|<<toggleTag TagName TiddlerName 'click me'>>|
|{{{<<toggleTag . . 'click me'>>}}}|dot means use default value|<<toggleTag . . 'click me'>>|
* If TiddlerName doesn't exist it will be silently created
* Set label to '-' to specify no label
* See also http://mgtd-alpha.tiddlyspot.com/#ToggleTag2
!!Known issues
* Doesn't smoothly handle the case where you toggle a tag in a tiddler that is current open for editing
* Should convert to use named params

if (config.toggleTagAlwaysTouchModDate == undefined) config.toggleTagAlwaysTouchModDate = false;


	toggleTag: {

		createIfRequired: true,
		shortLabel: "[[%0]]",
		longLabel: "[[%0]] [[%1]]",

		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			var tiddlerTitle = tiddler ? tiddler.title : '';
			var tag   = (params[0] && params[0] != '.') ? params[0] : "checked";
			var title = (params[1] && params[1] != '.') ? params[1] : tiddlerTitle;
			var defaultLabel = (title == tiddlerTitle ? this.shortLabel : this.longLabel);
			var label = (params[2] && params[2] != '.') ? params[2] : defaultLabel;
			var touchMod = (params[3] && params[3] != '.') ? params[3] : "";
			label = (label == '-' ? '' : label); // dash means no label
			var theTiddler = (title == tiddlerTitle ? tiddler : store.getTiddler(title));
			var cb = createTiddlyCheckbox(place, label.format([tag,title]), theTiddler && theTiddler.isTagged(tag), function(e) {
				if (!store.tiddlerExists(title)) {
					if (config.macros.toggleTag.createIfRequired) {
						var content = store.getTiddlerText(title); // just in case it's a shadow
						store.saveTiddler(title,title,content?content:"",config.options.txtUserName,new Date(),null);
						return false;
				if ((touchMod != "" || config.toggleTagAlwaysTouchModDate) && theTiddler)
						theTiddler.modified = new Date();
				return true;


Brought to our attention by [[doortodoorgeek]] is this useful link


New postby joemessman on Wed May 13, 2009 10:52 am
This is a checklist I use for every computer that enters my shop. I use these on a computer by computer user basis. Not every item is used on every computer, but it is a reminder for me on new installs and computers I clean.
Event Viewer (Check for errors and fix)
Msconfig ( Check for startup processes that are unnecessary)
Startup folder (Check for programs that need not start with PC powered on)
Task Manager (Check applications and processes currently running)
Device Manager (Check for broken hardware and newest drivers)
Performance options (Ensure top performance)
Antivirus (Install, update, scan)
Joe’s Remote Control (Install this remote access program if necessary)
Windows Defender (Install and configure for malware prevention)
Superantispyware, Malwarebytes, Dialafix, Smitfraudfix, Hijackthis
Spybot (Install, run and configure for spyware prevention)
Firewall (Install, or configure installed one if not needed)
Ccleaner (Install and used to clean unnecessary files from hard disk)
Belarc Advisor (Provide hardware and software info of PC)
Adjust IE cache to 50 MB (Prevents unnecessary files from being stored)
File and Print sharing disable (Secure this service, or disable if not needed)
Schedule necessary tasks (Automate security programs to run)
Set user passwords (If necessary. Needed for certain scheduled tasks)
Uninstall unnecessary programs and Addons For IE
Install backup program (If needed)
Firefox install (For users with Internet Eplorer 6)
Test Internet connection speed
Test firewall penetration grc.com
Autoupdates (Set time and install schedule)
Configure Quick launch,start menu,desktop
Enable clear type on digital monitors (Icons will have better appearance)
Check page file (Proper size for memory usage on hard disk)
Check power options (Configure for sleep, standby and monitor shutdown)
Updates, Service Packs Windows and Microsoft Office (Security)
Install user software (Provided by user)
Provide instructions for malware programs
Security Center settings
Chkdsk (Fix and repair disk errors)
Defragmentation (Puts files in contiguous strings for faster seek times)
Adjust connection settings for IE (Check for unnecessary proxy routes)
Disable Cleanup Wizard
Adobe Flash update, and check Windows Media player for defaults
Microsoft Baseline Security Report (Test for security holes and leaks)
Process Quicklink & Porcess Scanner(Examines for improper precesses)
Boclean (Security gatekeeper)
Turn System Restore on or off (If deleting infected files)
Foxit Reader (Alternative to Adobe Reader that is more reliable)
Java (Update and install if necessary. Provides full web viewing experience)
Disable Auto Restart in the event of a BSOD (For technician diagnostics)
IE logo name (Browser helper object with my logo on Internet Explorer)
%temp% to delete temp files not deleted by Ccleaner
Description: Contains the stuff you need to use Tiddlyspot
Note, you also need UploadPlugin, PasswordOptionPlugin and LoadRemoteFileThroughProxy
from http://tiddlywiki.bidix.info for a complete working Tiddlyspot site.

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'podnutz';

// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)
window.showBackstage = true; // show backstage too

// disable autosave in d3
if (window.location.protocol != "file:")
	config.options.chkGTDLazyAutoSave = false;

// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
	SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
	SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
	OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
	DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
	MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");

// create some shadow tiddler content

 "This document is a ~TiddlyWiki from tiddlyspot.com.  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
 "<<tiddler TspotControls>>",
 "See also GettingStarted.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]].  Also visit [[TiddlyWiki.org|http://tiddlywiki.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site.  Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."

 "| tiddlyspot password:|<<option pasUploadPassword>>|",
 "| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<br>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
 "| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[blog|http://tiddlyspot.blogspot.com/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"

 "<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"

 "tiddlyspot password:",
 "<<option pasUploadPassword>>",



by doortodoorgeek on Fri Apr 17, 2009 1:26 pm

Lexar tool makes creating bootable USB flash drives easy
Turning your USB flash drive into a bootable device in Windows isn't always an easy task. A lot of the tools that used to be readily available have become annoying difficult to find. Fortunately, the nice folks at Pendrive Apps have saved a particularly handy one: Lexar's BootIt.

BootIt doesn't handle partitioning duties, so you'll need to do that first. After that, making your drive bootable is just a couple of clicks away. Enter a volume label, flip the removable bit if you're using multiple partitions, mark your active partition, and you should be good to go.

Keep in mind that this utility is designed for Lexar drives, so it may not work with any old flash drive. I had success with both my Kingston and Transcend drives, though.

Unlock files and delete folders that won't delete.

| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 14/09/2009 14:12:34 | ChrisWeible | [[podnutz.html|file:///H:/wkdir/temp02/podnutz.html]] | [[store.cgi|http://podnutz.tiddlyspot.com/store.cgi]] | . | [[index.html | http://podnutz.tiddlyspot.com/index.html]] | . | ok |
| 14/09/2009 14:13:55 | ChrisWeible | [[podnutz.html|file:///H:/wkdir/temp02/podnutz.html]] | [[store.cgi|http://podnutz.tiddlyspot.com/store.cgi]] | . | [[index.html | http://podnutz.tiddlyspot.com/index.html]] | . | ok |
| 14/09/2009 14:27:13 | ChrisWeible | [[podnutz.html|file:///H:/wkdir/temp02/podnutz.html]] | [[store.cgi|http://podnutz.tiddlyspot.com/store.cgi]] | . | [[index.html | http://podnutz.tiddlyspot.com/index.html]] | . |
| 15/09/2009 10:54:59 | ChrisWeible | [[podnutz.html|file:///H:/wkdir/temp01/podnutz.html]] | [[store.cgi|http://podnutz.tiddlyspot.com/store.cgi]] | . | [[index.html | http://podnutz.tiddlyspot.com/index.html]] | . |
| 24/09/2009 15:44:30 | ChrisWeible | [[podnutz.html|file:///H:/wkdir/temp01/podnutz.html]] | [[store.cgi|http://podnutz.tiddlyspot.com/store.cgi]] | . | [[index.html | http://podnutz.tiddlyspot.com/index.html]] | . | ok |
| 25/09/2009 17:25:13 | ChrisWeible | [[podnutz.html|file:///H:/wkdir/temp01/podnutz.html]] | [[store.cgi|http://podnutz.tiddlyspot.com/store.cgi]] | . | [[index.html | http://podnutz.tiddlyspot.com/index.html]] | . |
| 16/03/2010 12:09:26 | ChrisWeible | [[podnutz.html|file:///C:/Documents%20and%20Settings/Weiblec/My%20Documents/podnutz.html]] | [[store.cgi|http://podnutz.tiddlyspot.com/store.cgi]] | . | [[index.html | http://podnutz.tiddlyspot.com/index.html]] | . | failed |
| 16/03/2010 12:09:43 | ChrisWeible | [[podnutz.html|file:///C:/Documents%20and%20Settings/Weiblec/My%20Documents/podnutz.html]] | [[store.cgi|http://podnutz.tiddlyspot.com/store.cgi]] | . | [[index.html | http://podnutz.tiddlyspot.com/index.html]] | . | ok |
| 16/03/2010 12:10:36 | ChrisWeible | [[podnutz.html|file:///C:/Documents%20and%20Settings/Weiblec/My%20Documents/podnutz.html]] | [[store.cgi|http://podnutz.tiddlyspot.com/store.cgi]] | . | [[index.html | http://podnutz.tiddlyspot.com/index.html]] | . |
| 05/04/2010 10:32:15 | ChrisWeible | [[podnutz.html|file:///C:/Documents%20and%20Settings/Weiblec/My%20Documents/podnutz.html]] | [[store.cgi|http://podnutz.tiddlyspot.com/store.cgi]] | . | [[index.html | http://podnutz.tiddlyspot.com/index.html]] | . |
|''Description:''|Save to web a TiddlyWiki|
|''Date:''|Feb 24, 2008|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 3,
	date: new Date("Feb 24, 2008"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'

// Environment

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;	// true to activate both in Plugin and UploadService
// Upload Macro

config.macros.upload = {
// default values
	defaultBackupDir: '',	//no backup
	defaultStoreScript: "store.php",
	defaultToFilename: "index.html",
	defaultUploadDir: ".",
	authenticateUser: true	// UploadService Authenticate User
config.macros.upload.label = {
	promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
	promptParamMacro: "Save and Upload this TiddlyWiki in %0",
	saveLabel: "save to web", 
	saveToDisk: "save to disk",
	uploadLabel: "upload"	

config.macros.upload.messages = {
	noStoreUrl: "No store URL in parmeters or options",
	usernameOrPasswordMissing: "Username or password missing"

config.macros.upload.handler = function(place,macroName,params) {
	if (readOnly)
	var label;
	if (document.location.toString().substr(0,4) == "http") 
		label = this.label.saveLabel;
		label = this.label.uploadLabel;
	var prompt;
	if (params[0]) {
		prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
			(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
	} else {
		prompt = this.label.promptOption;
	createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);

config.macros.upload.action = function(params)
		// for missing macro parameter set value from options
		if (!params) params = {};
		var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
		var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
		var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
		var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
		var username = params[4] ? params[4] : config.options.txtUploadUserName;
		var password = config.options.pasUploadPassword; // for security reason no password as macro parameter	
		// for still missing parameter set default value
		if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
			storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
		if (storeUrl.substr(0,4) != "http")
			storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
		if (!toFilename)
			toFilename = bidix.basename(window.location.toString());
		if (!toFilename)
			toFilename = config.macros.upload.defaultToFilename;
		if (!uploadDir)
			uploadDir = config.macros.upload.defaultUploadDir;
		if (!backupDir)
			backupDir = config.macros.upload.defaultBackupDir;
		// report error if still missing
		if (!storeUrl) {
			return false;
		if (config.macros.upload.authenticateUser && (!username || !password)) {
			return false;
		bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
		return false; 

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
	if (!storeUrl)
		return null;
		var dest = bidix.dirname(storeUrl);
		if (uploadDir && uploadDir != '.')
			dest = dest + '/' + uploadDir;
		dest = dest + '/' + toFilename;
	return dest;

// uploadOptions Macro

config.macros.uploadOptions = {
	handler: function(place,macroName,params) {
		var wizard = new Wizard();
		var markList = wizard.getElement("markList");
		var listWrapper = document.createElement("div");
		var uploadCaption;
		if (document.location.toString().substr(0,4) == "http") 
			uploadCaption = config.macros.upload.label.saveLabel;
			uploadCaption = config.macros.upload.label.uploadLabel;
				{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
					onClick: config.macros.upload.action},
				{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
	options: [
	refreshOptions: function(listWrapper) {
		var opts = [];
		for(i=0; i<this.options.length; i++) {
			var opt = {};
			opt.option = "";
			n = this.options[i];
			opt.name = n;
			opt.lowlight = !config.optionsDesc[n];
			opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
		var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
		for(n=0; n<opts.length; n++) {
			var type = opts[n].name.substr(0,3);
			var h = config.macros.option.types[type];
			if (h && h.create) {
	onCancel: function(e)
		return false;
	wizardTitle: "Upload with options",
	step1Title: "These options are saved in cookies in your browser",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Cancel",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 

// upload functions

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup saved",
	backupFailed: "Failed to upload backup file",
	rssSaved: "RSS feed uploaded",
	rssFailed: "Failed to upload RSS feed file",
	emptySaved: "Empty template uploaded",
	emptyFailed: "Failed to upload empty template file",
	mainSaved: "Main TiddlyWiki file uploaded",
	mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
	//specific upload
	loadOriginalHttpPostError: "Can't get original file",
	aboutToSaveOnHttpPost: 'About to upload on %0 ...',
	storePhpNotFound: "The store script '%0' was not found."

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
	var callback = function(status,uploadParams,original,url,xhr) {
		if (!status) {
		if (bidix.debugMode) 
		// Locate the storeArea div's 
		var posDiv = locateStoreArea(original);
		if((posDiv[0] == -1) || (posDiv[1] == -1)) {
	if(onlyIfDirty && !store.isDirty())
	// save on localdisk ?
	if (document.location.toString().substr(0,4) == "file") {
		var path = document.location.toString();
		var localPath = getLocalPath(path);
	// get original
	var uploadParams = new Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
	var originalPath = document.location.toString();
	// If url is a directory : add index.html
	if (originalPath.charAt(originalPath.length-1) == "/")
		originalPath = originalPath + "index.html";
	var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
	var log = new bidix.UploadLog();
	log.startUpload(storeUrl, dest, uploadDir,  backupDir);
	if (bidix.debugMode) 
		alert("about to execute Http - GET on "+originalPath);
	var r = doHttp("GET",originalPath,null,null,username,password,callback,uploadParams,null);
	if (typeof r == "string")
	return r;

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
	var callback = function(status,params,responseText,url,xhr) {
		if(status) {
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
		} else {
	// do uploadRss
	if(config.options.chkGenerateAnRssFeed) {
		var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
		var rssUploadParams = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		var rssString = generateRss();
		// no UnicodeToUTF8 conversion needed when location is "file" !!!
		if (document.location.toString().substr(0,4) != "file")
			rssString = convertUnicodeToUTF8(rssString);	
	} else {

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
	var callback = function(status,params,responseText,url,xhr) {
		var log = new bidix.UploadLog();
		if(status) {
			// if backupDir specified
			if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
				var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
		} else {
	// do uploadMain
	var revised = bidix.upload.updateOriginal(original,posDiv);

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
	var localCallback = function(status,params,responseText,url,xhr) {
		url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
		if (xhr.status == 404)
		if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
			if (responseText.indexOf("Debug mode") >= 0 )
				responseText = responseText.substring(responseText.indexOf("\n\n")+2);
		} else if (responseText.charAt(0) != '0') 
		if (responseText.charAt(0) != '0')
			status = null;
	// do httpUpload
	var boundary = "---------------------------"+"AaB03x";	
	var uploadFormName = "UploadPlugin";
	// compose headers data
	var sheader = "";
	sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
	sheader += uploadFormName +"\"\r\n\r\n";
	sheader += "backupDir="+uploadParams[3] +
				";user=" + uploadParams[4] +
				";password=" + uploadParams[5] +
				";uploaddir=" + uploadParams[2];
	if (bidix.debugMode)
		sheader += ";debug=1";
	sheader += ";;\r\n"; 
	sheader += "\r\n" + "--" + boundary + "\r\n";
	sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
	sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
	sheader += "Content-Length: " + data.length + "\r\n\r\n";
	// compose trailer data
	var strailer = new String();
	strailer = "\r\n--" + boundary + "--\r\n";
	data = sheader + data + strailer;
	if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
	var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; ;charset=UTF-8; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
	if (typeof r == "string")
	return r;

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
	if (!posDiv)
		posDiv = locateStoreArea(original);
	if((posDiv[0] == -1) || (posDiv[1] == -1)) {
	var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
				store.allTiddlersAsHtml() + "\n" +
	var newSiteTitle = getPageTitle().htmlEncode();
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
	revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
	revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
	revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
	return revised;

// UploadLog
// config.options.chkUploadLog :
//		false : no logging
//		true : logging
// config.options.txtUploadLogMaxLine :
//		-1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//		n :  the last n lines are only kept
//		NaN : no limit (-1)

bidix.UploadLog = function() {
	if (!config.options.chkUploadLog) 
		return; // this.tiddler = null
	this.tiddler = store.getTiddler("UploadLog");
	if (!this.tiddler) {
		this.tiddler = new Tiddler();
		this.tiddler.title = "UploadLog";
		this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
		this.tiddler.created = new Date();
		this.tiddler.modifier = config.options.txtUserName;
		this.tiddler.modified = new Date();
	return this;

bidix.UploadLog.prototype.addText = function(text) {
	if (!this.tiddler)
	// retrieve maxLine when we need it
	var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
	if (isNaN(maxLine))
		maxLine = -1;
	// add text
	if (maxLine != 0) 
		this.tiddler.text = this.tiddler.text + text;
	// Trunck to maxLine
	if (maxLine >= 0) {
		var textArray = this.tiddler.text.split('\n');
		if (textArray.length > maxLine + 1)
			this.tiddler.text = textArray.join('\n');		
	// update tiddler fields
	this.tiddler.modifier = config.options.txtUserName;
	this.tiddler.modified = new Date();
	// refresh and notifiy for immediate update
	store.notify(this.tiddler.title, true);

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
	if (!this.tiddler)
	var now = new Date();
	var text = "\n| ";
	var filename = bidix.basename(document.location.toString());
	if (!filename) filename = '/';
	text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
	text += config.options.txtUserName + " | ";
	text += "[["+filename+"|"+location + "]] |";
	text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
	text += uploadDir + " | ";
	text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
	text += backupDir + " |";

bidix.UploadLog.prototype.endUpload = function(status) {
	if (!this.tiddler)
	this.addText(" "+status+" |");

// Utilities

bidix.checkPlugin = function(plugin, major, minor, revision) {
	var ext = version.extensions[plugin];
	if (!
		(ext  && 
			((ext.major > major) || 
			((ext.major == major) && (ext.minor > minor))  ||
			((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
			// write error in PluginManager
			if (pluginInfo)
				pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
			eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"

bidix.dirname = function(filePath) {
	if (!filePath) 
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(0, lastpos);
	} else {
		return filePath.substring(0, filePath.lastIndexOf("\\"));

bidix.basename = function(filePath) {
	if (!filePath) 
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("#")) != -1) 
		filePath = filePath.substring(0, lastpos);
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(lastpos + 1);
	} else
		return filePath.substring(filePath.lastIndexOf("\\")+1);

bidix.initOption = function(name,value) {
	if (!config.options[name])
		config.options[name] = value;

// Initializations

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

	txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
	txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
	txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
	txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
	txtUploadUserName: "Upload Username",
	pasUploadPassword: "Upload Password",
	chkUploadLog: "do Logging in UploadLog (default: true)",
	txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"

// Options Initializations

// Backstage
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}

Friday, June 12, 2009 at 2:35PM 

Sometimes you have to wonder why people take their expensive computers to relatives and not a professional.  I had a lady bring me her Toshiba laptop which was having power problems.  It would shut down at unexpected times. If she turned it back on it would turn off again, but faster.  This is an obvious heat issue. I figured I would probably open it up, clean out the fans and the problem would be fixed.

Before she brought it to me, she had her mother’s boyfriend look at it.  She figured since he’s an electrical engineer he would know about computers. He replaced the power jack with a replacement from Radio Shack, which is what I would have done if it had been a power jack problem. However, since the hole the original power jack was in was too small for the new power jack he created an external box with the jack in it and connected it to the computer with some heavy gauge wire. It worked, but it wasn’t very elegant.

I took this computer apart and sure enough, the fans were completely clogged.  I cleaned them out. Before I put the computer back together, I enlarged the power jack hole and mounted the new jack on the computer case for a sleek look.

The moral is, of course, to always use the proper type of professional for any job.


This document is a ~TiddlyWiki from tiddlyspot.com.  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.

@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://podnutz.tiddlyspot.com/controlpanel]] (your control panel username is //podnutz//).
<<tiddler TspotControls>>
You'll also need to enter your username for signing your edits: <<option txtUserName>>

@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the "save to web" button in the column on the right.

@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click "upload" and your ~TiddlyWiki will be saved back to tiddlyspot.com.

@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]].  Also visit [[TiddlyWiki.org|http://tiddlywiki.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].

@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site.  Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions.

WhatInStartup v1.00 from NirSoft


Why is this any different I hear you cry? Well hopefully this quote from the site will explain:

>    This utility displays the list of all applications that are loaded automatically when Windows starts up. For each application, the following information is displayed: Startup Type (Registry/Startup Folder), Command-Line String, Product Name, File Version, Company Name, Location in the Registry or file system, and more.
>    It allows you to easily disable or delete unwanted programs that runs in your Windows startup. You can use it on your currently running instance of Windows, as well as you can use it on external instance of Windows in another drive.
>    WhatInStartup also supports a special "Permanent Disabling" feature - If a program that you previously disabled added itself again to the startup list of Windows, WhatInStartup will automatically detect the change and disable it again. 

PC goes back to the login screen 2-3 seconds after user logs on. 

Here's an easy fix if you have the XP install disk.

Enter the Recovery Console
Boot the system using the Windows XP CD-ROM. In the first screen when the Setup begins, read the instructions press "R" (in the first screen) enter the Recovery Console. Type-in the built-in Administrator password to enter the Console. You'll see the prompt reading C:\Windows (Or any other drive-letter where you've installed XP)
Type the following command and press Enter.
(If that does not work, try CHDIR SYSTEM32)
Quit Recovery Console by typing EXIT and restart Windows.
You'll be able to login successfully as you've created the wsaupdater.exe file (now, a copy of userinit.exe)

Now, change the USERINIT value in the registry and change it accordingly.

Click Start, Run and type REGEDIT. Navigate to:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ WindowsNT \ CurrentVersion \ Winlogon
In the right-pane, change the value of Userinit to "C:\WINDOWS\system32\userinit.exe,"
Type the above value exactly as given, including the comma - exclude the quotes. Also, change the path to userinit.exe appropriately if Windows is installed in a different drive.
Close Registry Editor and restart Windows. The Quick Launch settings should be retained now.

by SimonZerafa on Sat Apr 18, 2009 10:29 am

I have seen situations where UserInit was removed by overzelious antimalware applications when removing infections.

When the antimalware applications removes the infected Userinit.exe replacement they do not restore the default settings in the registry so that Windows can find and use the correct UserInit.exe file.

To fix this you can ensure that the correct registry settings are present as follows:

* Run Regedit,
* Navigate to the following registry key:
HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> Windows NT -> CurrentVersion -> Winlogon
* On the right hand window pane, look for Userinit
* Right click on Userinit
* Select modify
* Delete the existing value and enter “C:\Windows\System32\userinit.exe,” (without double quotes and with a trailing comma)
* Make sure that Userinit.exe file is actually present in the System32 folder
* Reboot your computer

It might be worth gathering details on the various versions of Userinit.exe and getting their MD5 or SHA1 checksums so you can always verify that the version you are using is the correct one and has not been altered or tampered with.

Kind Regards

Microsoft dropped all support and updates for ME and earlier versions of Windows on July 11, 2006, http://support.microsoft.com/winme

The best thing to do with an ME machine is to upgrade to XP

If you intend to go the Windows XP route please ensure that the PC has enough RAM to run XP.

512 MBytes is a minimum; more is better if the PC has integrated graphics.

However a PC which was supplied with Windows ME would have been built sometime in or before 2001 and might now be considered beyond economic repair.

Check the motherboard for failed or failing capacitors as many PC's of that era had this issue. 


network/text tools

Like Scite, Fldiff, a few grep tools, nessus, autonessus, nmap, wireshark, snort and a few more networking tools

Here is where I get my networking tools http://sectools.org/

(I'll be linking these to external sites for these tools in the near future


Mitch Haman
From Hanover Pa
A+ Cert since 2001




this is the xxclone feature list
1. makes a self-bootable clone of the system volume.
2. makes a full backup of a non-system volume.
3. restores (repairs) the self-bootability.
4. makes a Quick Boot Diskette (QBD).
5. makes a batch file for repeated operations.
6. may show an alternate wallpaper for distinct look.
7. may shut down the system after its job is done.
8. may throttle down its CPU usage.
9. can save log and debug files.
10. can add an entry in the boot menu for testing.
11. can duplicate the Volume ID.
12. can be run with command line options (batch file).
13. can be invoked in minimized/hidden modes.
14. provides a convenient button for the DiskMgmt tool.