Tuesday, 22 July 2008
Debugging memory problems on Windows
There's a handy utility called gflags.exe which comes as part of Microsoft's Debugging tools package - it allows you to tweak various debugging features embedded in Windows ntdll.dll (the dll that handles memory allocation etc for all windows apps). One of the most useful features is enabling of pageheap which basically causes your app to crash (so you can catch it in a suitable debugger) when it encounters a memory allocation bug. You can use gflags on the command line or with its GUI - just enter the name of the executable (no path required) - and they start playing with those check boxes.
Friday, 18 July 2008
Problems when deleting file/folders on Vista
So you're [desperately] trying to delete a file/folder and it comes up with: "destination folder access denied" and says "You need permission to delete this file"??!
- Firstly check both file and sharing (folders only) permissions on the file/folder
- Right click on file/folder and select Properties
- You can also try this take ownership approach
- Check, using process monitor, to see if any other process has the file open
- If so close/kill this process.
- You could also try this delete on reboot - Which schedules a del on next reboot.
Wednesday, 16 July 2008
Facebook app spams: "just gave you luv"
This annoying little facebook app (http://apps.facebook.com/which_programming/) automatically spams notifications to all your friends when you click on it's link - its message appears from one of your friends: "'your friend' just gave you luv Click here to accept and see what they did." It purports to be a programming quiz app but just seems to send spam.
[update]: It seems that there are other apps in the [spam] family with a similar name.
[update]: It seems that there are other apps in the [spam] family with a similar name.
Stop Microsoft's Malicious Software Removal reporting home
Microsoft's slightly odd Malicious Software Removal (MRT) gets downloaded and run every month - they apparently produce a new one each month. Granted it does check for a handful of nasty viruses but there are hell of alot more of them out there... However "The Malicious Software Removal Tool will send basic information to Microsoft if the tool detects malicious software or finds an error". It can stopped from reporting home that "basic information", though it's a little hidden in a KB article. Basically run regedit and create a new key:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\MRT
Then create a new DWORD item under that key named: DontReportInfectionInformation
with a value of "1"
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\MRT
Then create a new DWORD item under that key named: DontReportInfectionInformation
with a value of "1"
Tuesday, 1 July 2008
Apache tuning
The number of options for tweaking apache is pretty overwhelming. Tuning apache depends on a number of factors - depending on how much resources you have to throw at it and how you decide to run your system, and what you want out of it. There's quite a few places out there that offer some advice (apache, Scrollbag general tuning, IBM network tuning, IBM svn).
I'm mostly interested in fast low memory setup of apache 2 on Linux. One of the first things to decide is what MPM mode you decide to use for your apache installation - there's bunch. In fact Apache2 supports three MPM's prefork, worker, and event. To check which one you're running use either:
apachectl -l which will list the compiled modules - where 'prefork.c', 'worker.c', or 'event.c' indicate the version in use. You can also check by running apache2 -V. To use a different one you usually have to load the appropriate package on your system - but it will depend on which modules you have installed - e.g. using PHP will result in MPM prefork as PHP is not entirely thread safe.
I am currently running in prefork (a bit old school but simpler). In this mode the number of httpd daemons started - which is mainly controlled by ServerLimit directive (and subsequently MaxClients) - whilst there are quite a few others control how many instances are started initially and kept spare etc. You need to make sure that your machine has enough memory to for the number of servers so the machine doesn't start to swap unnecessarily; Once you have sorted out the modules (see below) and config for the server you can see how much memory a single httpd instantiation uses (check using top command). Once you know how much one httpd uses then configure things so that ServerLimit * httpd_memory is less than the total amount of memory available on the system when apache is not running. You can check to see if you got it right by running the system up (with some requests and all servers started - you can set StartServers directive equal to Serverlimit for testing) and checking there is minimum swap activity - using the vmstat command - run it vmstat 5 and check that the so/si (swap out/in) columns are close to zero - if not then tweak down the number on ServerLimit.
Apache provides a vast array of modular functionality - through its loadable modules support. Firstly you want to go through you the modules that you need loaded for your setup, then comment out all the ones you don't need. Things like unneeded language modules (php, python etc) should be off, and stuff like mod_status (particularly ExtendedStatus) should be switched off once you have got your config sorted.
[8dec08] New page on apache optimisations.
[12sept12]: Added info on checking MPM in use.
I'm mostly interested in fast low memory setup of apache 2 on Linux. One of the first things to decide is what MPM mode you decide to use for your apache installation - there's bunch. In fact Apache2 supports three MPM's prefork, worker, and event. To check which one you're running use either:
apachectl -l which will list the compiled modules - where 'prefork.c', 'worker.c', or 'event.c' indicate the version in use. You can also check by running apache2 -V. To use a different one you usually have to load the appropriate package on your system - but it will depend on which modules you have installed - e.g. using PHP will result in MPM prefork as PHP is not entirely thread safe.
I am currently running in prefork (a bit old school but simpler). In this mode the number of httpd daemons started - which is mainly controlled by ServerLimit directive (and subsequently MaxClients) - whilst there are quite a few others control how many instances are started initially and kept spare etc. You need to make sure that your machine has enough memory to for the number of servers so the machine doesn't start to swap unnecessarily; Once you have sorted out the modules (see below) and config for the server you can see how much memory a single httpd instantiation uses (check using top command). Once you know how much one httpd uses then configure things so that ServerLimit * httpd_memory is less than the total amount of memory available on the system when apache is not running. You can check to see if you got it right by running the system up (with some requests and all servers started - you can set StartServers directive equal to Serverlimit for testing) and checking there is minimum swap activity - using the vmstat command - run it vmstat 5 and check that the so/si (swap out/in) columns are close to zero - if not then tweak down the number on ServerLimit.
Apache provides a vast array of modular functionality - through its loadable modules support. Firstly you want to go through you the modules that you need loaded for your setup, then comment out all the ones you don't need. Things like unneeded language modules (php, python etc) should be off, and stuff like mod_status (particularly ExtendedStatus) should be switched off once you have got your config sorted.
[8dec08] New page on apache optimisations.
[12sept12]: Added info on checking MPM in use.
Wednesday, 4 June 2008
Firefox 3 - locate in bookmark folders....Found!!
Yeah - where is it?? I'm trying to keep a list of places (!?&*) about the issue:
- Mozilla bugzilla #393510- place UI mockup
- David McRitchie's places page from his pages on firefox
- A news posting on locate in bookmarks
- Show Parent Folder - Which shows Parent Folder in list view of Bookmarks/Library.
- Go Parent Folder - Go to parent folder of link in Library/Bookmarks.
Thursday, 15 May 2008
*&%$**'ing Windows mobile device center has wiped my XDA - AGAIN!
I cannot believe it!?! My XDA (Windows Mobile 6 Device) has had all my contacts, diary etc info wiped by Windows Mobile Device center for the FOURTH time. I just plugged it in and it asked if I wanted to set up a new association (when I had one set up already) - all my contacts had been deleted at this point - BEFORE asking me!! I can resync with my desktop but its a big pain in the butt. I don't know why it is happening?!! How can Micro$oft get it sooo wrong?
I am seriously considering bombing my XDA for an iPhone (once it's got GPS I will).
[update]: There are some registry tweaks that affect related behaviour here.
I am seriously considering bombing my XDA for an iPhone (once it's got GPS I will).
[update]: There are some registry tweaks that affect related behaviour here.
Tuesday, 8 April 2008
Where have my Bookmarks.html gone in FireFox3 Beta?
In Firefox3 beta the old bookmarks.html file (in your firefox preferences directory - e.g on Linux ~/.mozilla/firefox/somethingrandom.default/) has been subsumed by a system called Places which seems to consist of an SQLlite database in a file called places.sqlite - your bookmarks are imported into this database file on initial invocation of firefox3.
Firefox3 seems a bit snappier and I like the search in the bookmarks as you type in the address field. Also the tagged bookmarks seems handy but I wish they would allow you to know the folder in which your found bookmarks reside - the locate in bookmark folders plug-in doesn't work any more..
Firefox3 seems a bit snappier and I like the search in the bookmarks as you type in the address field. Also the tagged bookmarks seems handy but I wish they would allow you to know the folder in which your found bookmarks reside - the locate in bookmark folders plug-in doesn't work any more..
Subscribe to:
Posts (Atom)