l3rady.com gets a new look and style
Well here it is, the new look and style for my blog. I hope you all like it. Any comments on the look and style are greatly appreciated.

Well here it is, the new look and style for my blog. I hope you all like it. Any comments on the look and style are greatly appreciated.
Recently at work we installed the latest version of Windows Server Update Services (WSUS) but we had a few issues with installing it. When installing we were getting the error: Unable to connect to the server yourserver.yourdomain. My work colleague spent hours searching forums and help topics but nowhere had the answer. In the end all it appeared to be was drive compression! WSUS will not install or function if the place where it stores the updates is compressed. To turn off, right click the folder where you’re installing to, properties, click advanced button. On the new window that opens un-tick the box “Compress content to save disk space”. You will notice folders and files that are compressed when the names are in blue. Hope this helps you.
Just to get the legal stuff done and dealt with; file sharing copyrighted material is illegal and by doing so you could be fined, imprisoned and given a criminal record. The following information you use at your own risk and I take no responsibility for your own stupidity.
As of recent companies have been cracking down on file sharing and are targeting those that share copyrighted material, rather than those that download it. By getting rid of the source then they stop the downloader’s because there is nowhere to download from.
ISP’s in the UK are now tracking what you share and if they see you sharing copyrighted material you can see a £500 fine come through your letter box. They are hoping that with a small fine you will pay it and it will deter your from doing it again. If you refuse to pay they may take you to court and you could end up with a much heavier fine!
So what can you do?
1) Use an ISP that is not well known, find an ISP that is relatively small and hasn’t had much media coverage. Larger ISP’s that are well known are always the first to be targeted by the law and are always under the watchful eye of big brother.
2) Try not to share new releases, try only sharing material that has been available for some time. ISP’s will set up filters to pick up on latest releases that everyone is trying to get their hands on.
3) Try and keep your bandwidth usage as low as possible. By sharing a huge amount of material your ISP will most definitely pick up on this and they will be wondering why you are using so much bandwidth and therefore they will start investigating what you are doing.
4) Use sharing programs that has some method of encryption. Many programs out there will set up a secure an encrypted connection between you and the person you are sharing with. By doing this you ISP only sees encrypted data and they won’t know what you are sharing.
5) Change the filename of what you are sharing. If you keep the original name then ISP’s are going to pick this up in their filters.
I think that just about covers it. If anyone else has some tips or advice they would like to add then leave a comment.
I’m not going to babble on here because if you have found this post you just want to know how it’s done.
Here is what you need:
A portable/removable hard drive/memory stick (USB) that is capable of being made into a bootable device. Some of these devices cant be made bootable; if you are unsure if yours can be made bootable then contact the manufacture. I have successfully made portable Maxtor, Western Digital and Freecom USB hard drives bootable ranging from 40GB to 320GB in size. I have also made a handful of generic USB sticks bootable ranging from 512MB to 8GB in size so it should be unlikely you will have a device that cannot be made bootable.
You will need a computer that can boot from a USB device.
You will also need an existing boot disk of some sort. I find what works best is a Windows 95 boot disk. If you are going to use a floppy or CD then you can get images from http://www.allbootdisks.com/
So now lets get prepped! Now we are going to use a fat32 partition for our boot partition. Now the max size for fat32 partition on Windows 95 is, have a guess, 32GB so if you have a portable drive that is 320GB then you will need 2 partitions. The second partition can be NTFS and can fill up the rest of the drive, but the first partition must be fat32 less than 32GB. Just as a side note http://support.microsoft.com/kb/140365 will tell you what cluster size to use depending on what size your partition is.
Now have you set up your Windows 95 boot disk? If you have downloaded the ISO then burn it to a CD and if you have downloaded the diskette image then run it and get the image on the floppy disk.
Shutdown your PC and insert floppy/CD and plug in your USB device. I would recommend you unplug any other hard drives in your system so that you don’t have any confusion later on and so that you don’t accidentally break your windows install on your PC.
Tell your PC to boot from floppy or CD and wait for Windows 95 to start. You will be presented with:
[code]A:>[/code]
Now type fdisk and hit enter:
[code]A:>fdisk[/code]
What you are going to do here is set your USB device to the active partition this should be under option 2 on fdisk (This is the FAT32 partition). Once you have set the partition to active you should now see a capital A on that partition. Press escape a couple of times and you will be prompted to reboot. So go ahead and do that, then boot back into your floppy or CD.
Now your USB drive should be set as C: so type dir C:
[code]A:>dir C:[/code]
You should see no files and it should tell you the space available of that drive, it should match the size of the partition. Now lets copy the contents of the floppy or CD to your USB device. Type copy *.* C:\*
[code]A:>copy *.* C:\*[/code]
Once that has coppied type in sys C:
[code]A:>sys C:[/code]
This copies the system info to the USB device. Now just need to set up a Master Boot Record so type fdisk /mbr
[code]A:>fdisk /mbr[/code]
Ok so we are all done now, so reboot and try booting up off your USB device. Now you should see your usual A:> just as if you booted off CD or Floppy.
So that’s about it, you can load up a load of useful DOS utilities. If your using a hard drive with an NTFS partition you might want to put on your new bootable USB device a program called NTFS4DOS. This will give you access to NTFS partitions from DOS. Also another handy utility is Ghost. This will allow you to take an image of any hard drive and put it in one handy file. With that one file you can then restore that image, ideal for taking an image of a fresh install of and operating system and then restoring when you come to reinstall. This will save you having to redo the windows install and reinstall all your software, patches and user preferences.
So there we have it, if you have any problems or want to know more just leave a comment and I will get back to you ASAP.
So here’s a new one, recently at work we have had a number of XP Pro machines login but failed to load up explorer. The first thing you would attempt would be to start task manager (Ctrl+Alt+Delete), start a new task and start explorer. Now when we did that we were getting an error saying that explorer was missing or corrupt. So we opened up CMD to browse the Windows directory only to find explorer was there and seemed fine…
We came across a fix to rename explorer to explorer2.exe and update the registry with regedit to point to the new explorer2.exe. This worked and proved there was nothing corrupt or missing but it wasn’t an ideal solution as it was quite long winded.
The problem started to appear with more and more PC’s on our network, this is no longer a coincidence. The problem is happening on different service packs of SP so we know its not an SP related issue. After doing a bit of searching around I found something called FixO. After running this and rebooting the PC explorer was now working great and it kept explorer as same name etc. You can get it here: FixO – Repair explorer.exe
Still this was a long way around script but at least it can be scripted into the login script. Anyway one of my work colleges found another solution, which seems to cure the problem but no idea why. It’s a simple one-line registry edit.
Open notepad and put the following in:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\explorer.exe] "Debugger"=-
Save the file as a reg file. Then run this file in regedit, this simply removes the offending registry key that is causing problems. If you want you can just get the file here: Reg Fix – Fix No Desktop
So we still don’t know what’s causing this but we do have a temporary solution.
A while back I posted a way of making same height div’s but came across an issue when padding was involved. Well I’ve modified my code to take into account padding. Now the obvious thing to do would be to be to check padding on a div and subtract it from the height, but it’s not that easy. You would have to check three things: padding, paddingTop and paddingBottom. For some reason when I was checking padding I couldn’t get a value from JavaScript, this had me really stumped but after a nights sleep I came up with a better and more simpler way of sorting the padding issue. This is to let the code run and let it re-height the div’s and let the padding mess things up then run the same thing again and check for height differences from last time we checked. Oooohhh look the height has gone up 10px from last time thanks to a padding of 5px on the div. Now we know there is 10px of padding lets remove it. Sorted!
JavaScript Code:
function sameHeight(divs) // Bring in an array of your divs
{
var highest = 0;
var heighttu = 0;
for(i = 0; i < divs.length; i++) // Loop through the divs
{
// Check to see if this div is the highest?
if(document.getElementById(divs[i]).offsetHeight > highest)
{
// Yes its the highest so set the highest value to this div's height
highest = document.getElementById(divs[i]).offsetHeight;
}
}
// Loop through divs and set their hieght all the same
for(i = 0; i < divs.length; i++)
{
document.getElementById(divs[i]).style.height = highest+"px";
}
// now get offset hieght again and we may found we have gone higher this is because of padding
if(document.getElementById(divs[0]).offsetHeight > highest)
{
// correct the height
highest = highest - (document.getElementById(divs[0]).offsetHeight - highest);
// Correct divs
for(i = 0; i < divs.length; i++)
{
document.getElementById(divs[i]).style.height = highest+"px";
}
}
}
Recently I had to make some divs the same height. Usually I would just pad the bottom of a div with page breaks but I couldn’t do that this time round as the page content is dynamic and the height of the divs could change.
First thing I did was look online for answers and sure enough there were solutions but looking at them they seemed over complicated so I decided to write my own solution.
Javascript Code:
Update at: http://l3rady.com/2008/08/14/javascript-same-height-divs-update/
Simply pass an array of your divs to the function. Easy peasy….
Just an extra word of warning… Be aware of using padding on the blocks you pass to this function. If the paddings are different in each block then they may not end up being the same height. Although you could modify the function to check for the use of padding and alter the heights accordingly.
At work a couple of months back I was faced with a problem that many of our servers would run out of hard drive space without us knowing and that would cause the server to hang and/or stop responding. So I did a bit of research and came across. This little utilility would run on the server in command line and tell you what drives were available and some info of the drives like space used and available. Well with this I would echo out the data to a text file and send that across to a common holding ground. Then from there get my web server to constantly scan this folder for new logs. This method worked but it had its issues.
Well yesterday at work I was playing around with SNMP and after finding a site with W2K MIBS I found lots of info you can pull from the server. Now I was already familiar with SNMP in PHP thanks to their documentation on their site. So using their snmpwalk function I was able to pull the relevant data to get HDD usage info.
$names = snmpwalk($row['ip'], "public", '.1.3.6.1.2.1.25.2.3.1.3'); $used = snmpwalk($row['ip'], "public", '.1.3.6.1.2.1.25.2.3.1.6'); $total = snmpwalk($row['ip'], "public", '.1.3.6.1.2.1.25.2.3.1.5'); $alloc = snmpwalk($row['ip'], "public", '.1.3.6.1.2.1.25.2.3.1.4');
Now that would give me an array of drive names, space used on those drives, total space available on those drives and the allocation units. Now the allocation units I didn’t realize I needed as I thought the numbers given in used and total were just measured in bytes but they aren’t. The numbers in used and total are how many blocks of allocation size (if that makes sense). So to get the true byte value from used and total you need to multiply them by the allocation size number.
25599569 * 4096 = 104855834624B = 97.65GB
So there you have it. Now you know how to get HDD usage from your server using PHP and SNMP.
After further investigation PHP 5.2.0 now allows you to use the APC (Alternative PHP Cache) addition with the ability to track the progress of uploads. Within windows it is as simply adding the dll extension to your php.ini and putting some configs there to. With Linux I’m not too sure how you add this extension as I don’t know Linux well. But anyway below is some nice and easy documentation on this.
As you may be aware in php it doesn’t have the functionality to report back the status of file uploads. For example upload percent complete, speed of upload and estimated time of completion. To be able to provide a progress bar the easiest way would be to use a perl script to do the uploading for you as perl has this functionality. Now I build a file uploader for the public and I looked at providing a perl uploader but because I know very little about the language of perl I couldn’t get any examples to work for me, but the ones that did work needed some server side changes. These server side changes would be no good for most of my downloader’s as many of them don’t have root access to their server.
There is another solution out there but once again it involves making server side changes which hacks php and adds the additional functions to track the upload progress of a file.
The above hack for PHP can be found at http://pecl.php.net/package/uploadprogress. There isn’t much documentation out there for it but if you do a Google search you will find one or two examples.
The above hack I’m thinking about putting it in my module so that those that have the modified php will be able to run my uploader with the progress bar but those without would not get the upload progress bar. The thing in to build my module to use this hack I need a server that is running the hacked version of php. Thing is I’m stuck with a shared hosting account and I don’t have access to modify php. So if there is anyone out there that can lend me some space for a short time and is running the above hack please contact me so I can’t continue building my file uploader script