Category Archives: howto’s

Rover 75: run cables from under bonnet to cockpit

I was laying cables for parking sensors to be used with the Rover 75 ride I got free of charge from my father. Running them from the holes in the bumper to the engine compartment was no big deal, but connecting the main unit under the bonnet to the display in the passenger compartment was a little harder, since I needed to find a way to run it through cleanly enough.

As improvisation goes (and as my father wanted to do himself) you would be tempted to use, somehow, the cable tubes that you see right in the middle of the rear wall of the engine compartment, but that’s gonna be a hard task. On the other side, if you don’t need to run really big cables, you can use a small hole which you can find on the right side (looking toward the engine, and on my car which has the steering wheel on the left of the cockpit) under a plastic grid you have to remove first.

rover 75 under bonnet right view
view of the side of the engine compartment where the hole is located

You have to pull out a waterproof rubber neck that’s fitted around another rigid cable passing through there, to free up enough space to actually run your wires through.

rover 75 engine under bonnet cable hole
Closer view of the hole and the rubber waterproof protection already pulled out

Then you have to access to the cockpit side of the hole.

rover 75 cockpit petals
this is the area where you will be accessing the cable ran through the under the bonnet hole

There is some unscrewing to do here

rover 75 cockpit pedals panel screw
unscrew both the screw you see in this picture and the one on the opposite side of the panel

Once you remove the screws, you need to pull the panel out, and if you want  a more comfortable working environment, also pull out with a discrete force the front panel where the lights switch is located to free up a larger area.

rover 75 pedals panel open
This is the panel pulled out of its place. You can also pull out the beige frontal panel under the steering wheel if you need to.

If you are in a well lit ambient, you should now be able to see the cable probe (or whatever that’s called in english) passing through the hole you just freed

rover 75 under the bonnet hole
this is how the hole appears from the inside of the cockpit if you look carefully enough

Let the cable(s) pass on the side of the panel you prefer (door side in my case) and then screw the panel back in place, after reinserting the frontal panel under the steering wheel if you pulled it out.

  This article has been Digiproved

Starcraft under Wine freezes, hangs and crashes at random interval

After having played Starcraft II on my Windows 7 desktop, yesterday I was trying to get the first Starcraft to work on my laptop under Ubuntu Lucid with Wine; the wine-hq website reported the game as perfectly working, and in fact I only needed to install a patch to let the game start without the mounted CD, but no matter if I tried to play with original Starcraft or the Brood War expansion, I always got random freezes: the game just hung up after a while, it freezed either on the menu or in the playing screen, the cursor wouldn’t respond anymore and all the screen stopped; the audio seemed to be fine though, because sound kept on playing.

I tried changing almost everything under wine configuration, enabling windowed mode with virtual desktop or disabling it, enabling or disabling hardware acceleration and all the other checkboxes under “Graphics” tab. I tried setting up the audio driver… no matter what I did I still got the random freezes.

Until I tried adding a couple of registry values that were reported in the Wine forum for that game but weren’t apparently addressing this particular issue.
Anyway, after adding these keys, I was able to end the first level and go through almost all the second one (time for lunch now) without a glitch, except for the occasional sluggishness.
Run wine regedit and add these couple values under:

HKEY_CURRENT_USER > Software > Wine > Direct3D

The values are two REG_SZ strings:

DirectDrawRenderer = opengl
RenderTargetLockMode = readtex

Should work for you too.

  This article has been Digiproved

Windows Mobile uptime since boot or battery swap, registry key

I am (at the date of writing) the proud owner of an HD2; given its limited 1200 something mAh battery, and my precaution of always having a spare battery for each of my devices (even if now, with the HD2, I got rid in one swoop of mobile phone, PDA, compact camera and bluetooth gps receiver, and this is pretty much my only device, excluding my DSLR which I rarely bring with me), I went a little overboard and bought three spare batteries, which I charge with a mains charger and then swap out periodically.

Just now I became curious to check the uptime before the battery reaches 10% (at which point I take it out for charging), because I never really remember how long it has been since the last battery swap.

I dug a little, and the registry key that stores the uptime since last boot is

HKLM > System > Uptime > Clock

while the uptime since last battery swap (appears to become 0 when you take out the battery, and is not reset after a simple reboot) is

HKLM > System > Uptime > ClockSession

These keys contain a time interval expressed in seconds. Divide it by 60 twice, and by 24 once, and you get the uptime in days (and fraction of day). They have been verified under WM 6.5.X, yet there is no reason they shouldn’t work in not-so-older builds of  Windows Mobile too.

  This article has been Digiproved

PunBB e-mail notification on each new post extension

On another site I manage, I just switched from the previous forum script to PunBB; one feature I missed after the switch is the ability to activate an email notification for each and every post the users add into the forum, so I had to write my own.
Following is the source code of the extension, save it as manifest.xml, upload it into /extensions/newpost_mail_notify/ PunBB folder (or another name of your liking), and install from PunBB admin panel with the usual method. There is nothing to set, as long as the extension is active it just does its job.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE extension SYSTEM "ext-1.0.dtd">

<extension engine="1.0">
<title>Send email to admin for each new post</title>
<description>This extension simply sends an email to the configured admin email address everytime a new post is added by someone who's not the configured admin</description>


<hook id="po_pre_redirect"><![CDATA[
if ($forum_user['group_id']!=1) { //default admin user id
$notification_subject='['.$forum_config['o_board_title'].'] New topic/post notification';
$notification_message='New post/thread at URL: '.$base_url.'/viewtopic.php?pid='.$new_pid.'#p'.$new_pid;



This extension is very spartan, it will send a mail to the preconfigured admin email address, only if the new post is by someone else than the admin (obviously), with a simple link pointing to the post in the board.

I just updated the code with the suggestion by Grez from PunBB forums, correcting the check on the user which now uses the group_id and not the user id, thus being more solid.

Disclaimer: not my fault if your server explodes, this extension has been made/tested for PunBB 1.3.4, and if you’re not using that version you should definitely upgrade; may be a bad idea to use it if you get a lot of posts each day; I needed it because my forum is not so active, so I prefer getting notified if there’s something new, rather than go checking everyday.

  This article has been Digiproved

reCAPTCHA Input error: Invalid referer and WordPress

Just today someone (thank you) pointed out there was an error with the recaptcha plugin in my WordPress comments. Checking it out, that “Input error: Invalid referer” is a generic error noone has ever pointed out to a single cause.

At first I made sure the keys used by the reCAPTCHA plugin were correct, and created a brand new website domain in the reCAPTCHA admin panel, and updated the values in the plugin settings. That way, I could see the captcha image correctly when loaded while being logged in, but as soon as I logged out the error was back there. I checkd the page source, and I noticed the “challenge” value of the HTML line that called the external javascript was different from the public key I updated in the plugin settings.

After some thinking, it turns out that the WP Super Cache plugin in some cases interferes with reCAPTCHA plugin, as it caches the old plublic key value which of course makes reCAPTCHA mad. Clearing the cache, thus reloading the whole page, solved the problem, and the captcha image was back there to be solved.

  This article has been Digiproved

How to fix Fatal error: Allowed memory size exhausted in WordPress 3

This error is nothing new, per se, as far as I know it was present also in previous versions of wordpress (I’m a fresh new user and I’ve been using v3+ for more than I’ve been with 2.9.7 (first one I installed).
When this error occurred in previous versions, all you needed to do was open the [WORDPRESS FOLDER] > wp-settings.php file, and change the maximum allowed allocable ram from there. And that’s what most guides still tell you to do now, leaving you stranded as that line you need to change is not there anymore.
What you see though, is that at the beginning of the wp-settings.php file there is a line that says:

require( ABSPATH . WPINC . '/default-constants.php' );

which pretty much says it all, unless you are not the least bit PHP savvy (hence, this guide is for you).
All you need to do is open the [WORDPRESS FOLDER] > wp-includes > default-constants.php file, and change the line:

define('WP_MEMORY_LIMIT', '32M');


define('WP_MEMORY_LIMIT', '40M');

or anything of your liking (may be 36M, 48M, or whatever depending on your setup); obviously, the lower the better for the performance of your server, especially if you’re on a shared hosting.

  This article has been Digiproved

Resize, enlarge or scale an html image map with a PHP script

I am creating a portal for an italian website which will sport a nice region selector with an imagemap, and region highlighting with a javascript. I found a free and detailed image map of italy along with a combined png, but it was too small to be really useable, so I needed to put a bigger image; with that, I also needed to alter the imagemap coordinates to they matched the enlarged image… noway I was going to do that by hand!

So, after searching for a pre-made solution (which I obviously didn’t find)  I devised a very simple PHP script to do eaxctly that. The script puts the entire code for the image map inside a string variable, and then processes that string with a regular expression search and replace to change the values accordingly to my needs. I only needed to make the image two times bigger, mantaining the aspect ratio, but since I was going to publish this inside a guide, I said to myself “why not making it so you can change the aspect ratio as well”. So, if you want, you can make the imagemap two times larger, and 1.5 times taller.

Here’s the sample script (the $html variable is defined with a sample imagemap for the region of Lazio alone, for space purposes, but you can put whatever you want inside, I used it with the whole map of Italy, together with <map> tags and lines breaks/indentation). Be careful and ESCAPE the double quotes inside the HTML before pasting the code inside the string. In other words, simply put a backslash (the \ character) before each occurence of a double quote (the $quot; character) inside the HTML, I used the search and replace function of Notepad++.

$html="<area href=\"#\" alt=\"state\" title=\"lazio\" shape=\"poly\" coords=\"74.513,86.938,75.667,87.365,75.667,88.007,74.744,89.077,75.436,90.467,76.359,90.039,77.857,90.039,78.319,90.039,79.127,90.788,79.588,91.857,79.588,92.606,80.049,93.034,80.51,93.034,81.317,94.103,81.779,94.852,82.24,94.959,83.74,94.852,84.201,94.959,85.123,94.959,86.392,94.103,87.43,93.141,88.122,93.141,89.39,93.141,89.967,92.713,91.351,90.895,91.813,90.895,92.274,91.216,93.196,90.895,94.349,90.788,94.926,90.467,96.31,89.825,96.886,90.467,96.656,90.895,95.849,91.323,95.387,92.072,94.234,92.072,92.965,92.713,92.505,93.676,92.505,94.317,92.734,94.959,91.928,95.28,91.813,95.922,91.467,96.778,92.505,98.382,92.505,99.023,92.505,99.986,91.928,101.804,91.928,103.194,92.734,103.837,94.234,103.623,96.31,104.264,97.579,105.013,99.309,106.51,102.191,108.543,103.229,108.543,104.728,109.077,106.113,110.361,106.574,111.965,106.804,113.035,106.574,113.783,106.574,114.425,105.882,114.853,105.305,115.067,104.844,115.067,104.728,116.029,104.728,117.099,104.152,118.061,103.46,118.703,102.999,119.345,102.999,120.093,101.961,120.308,100.23,120.735,99.539,120.308,98.271,119.345,96.656,118.489,95.156,118.275,92.965,118.489,91.005,118.703,89.39,116.885,89.506,116.029,88.122,114.639,85.931,113.997,83.97,112.607,81.548,110.574,78.55,107.687,77.627,105.869,76.128,104.692,74.975,102.874,73.706,101.056,71.745,99.023,70.131,97.098,67.594,94.959,69.093,93.676,70.131,92.606,70.592,91.216,70.592,90.039,71.745,89.611,72.553,88.649,73.014,88.221,72.553,86.938,73.245,86.189,74.513,86.938\" />";
echo preg_replace("/([0-9.]{2,}),([0-9.]{2,})/e","round(\\1*2,3).','.round(\\2*1.5,3)",htmlentities($html));

All you need to do is change the parameters inside the regular expression (numbers in red), first is for horizontal proportion, second for vertical; in this example the imagemap will be resized to 2 times its length, and 1.5 times its height, if you want to make the size three times bigger, change it to

echo  preg_replace("/([0-9.]{2,}),([0-9.]{2,})/e","round(\\1*3,3).','.round(\\2*3,3)",htmlentities($html));

Then, copy the php script to your server, open it in a web browser, and copy/paste the result. Note: according the the way the imagemap is originally formatted, you may need to edit the regular expression to accomodate for spaces, tabs, linebreaks or whatever; in this case, since the coordinates were listed with just commas inbetween it was not needed. If you are stuck, write in the comments an excerpt of your imagemap code and I’ll try and help you.

  This article has been Digiproved

Time of last visit to a website page in Firefox history

Last time I put hands on my car, a Rover 75, in order to change by myself the in-tank fuel pump (maybe a tutorial will be coming about that), I already knew it was going to be a hard task. That’s why I made sure I had enough time, it was a sunny sunday morning and had plenty of light as well.

Last thing I did before going out in the yard was checking some tutorial page to rapidly review the job details, and first thing I did after the job was finally done and I checked the pump was working, was to call my girlfriend to give her the good news, even if I knew she wasn’t going to car much. What I hadn’t done, was checking the time before going out, and after getting back inside, and I was surely curious to know how much it had taken total.

Checking the call history on my phone was easy, so I knew the time I finished, but looking in Firefox History to see at what time I had last visited that tutorial webpage, it wasn’t as easy as I thought, since there was no right-click option whatsoever to obtain that info. I knew it had to be recorded somewhere, since Firefox has the capability of ordering its history based onorder of last visit, so a not-so-immediate search found this solution, whis is the following:

Go to History menu -> Show all history, then in that window you have to add the date column (right-click on the columns headers and check “Visit Date”), that will show the visited time.

If you’re curious, in the end I realized I had been a total of four hours at it.

How to record MSTalkit voices with Microsoft Windows Sound Recorder

So, you didn’t understand how to make it. Well, what am I here for then?

First step: install and run MS Talkit (download it from Downloads/AudioVideo).

No comments
Hey you made it! MS Talkit is running!


Ok, now begin playing with it to acquire the method, then just reach the point, and do something like this:

Ph33r My V0c41izing 5ki11z!!
This is really nice, the same I use. For a get fail, try instead "DCC Failed!", Child personality, Breathly Vocal Effort. The child seems he is amost crying cause of the transfer error 😉


So, after you tried Talkit and had fun with it, start Sound Recorder (Start > Programs > Accessories > Entertainment), locate it over Talkit, so when you switch from one another their windows don’t cover each other, and press in rapid sequence the Rec button in Sound Recorder, followed by the "Talk It!" button in Talkit. When the phrase is finished hit the Stop button in Recorder. Now, even if you’ve been a lot fast, there will be silent delays at the beginning and at the end of the WAV, so move the slider till you find a wave with a big amplitude,

You were pressing the play button, admit it!
Here I pressed the Rec button about 0.9 secs late (hey it’s 11pm while I’m writing…), so had to remove a lot of silence. Always try to play from the current slider position to see if the wave belongs to the voice or to the noise before the voice starts.


then do [Edit > Delete before the current position] to remove the silence at the beginning. See when the Wave ends, and do [Edit > Delete after the current position], then do [File > Save] and go to mIRC’s folder (I suggest not going higher than 22KHz, 8bit, mono quality, it would be a waste of disk space; to achieve this, simply press the Change button in the Save dialog, and choose these settings).

Hewgh you did the same for allthe sounds you wanted to put in mIRC I hope (I mean Query, DCC Send, DCC Fail, DCC Complete, Notice, and so on), otherwise I just lost my time for a single 1.5 secs WAV file…

Now get back to the main mIRC Event Sounds page

Adjust and synchronize AVI & DivX movie subtitles, the guide

October 2008: I updated this guide to the use of Subtitle Workshop, a freeware utility which does the same job I explained back then, in a tenth of the time, or even less, since all the manual steps are now condensed into a few passages. To read the old guide, which insteadused the program SubAdjust, scroll down right past the horizontal line.

First of all, download the free program Subtitle Workshop, you can just as easily google for it. Keep in mind I used the latest 4 beta version in this guide. Then you can follow the image tutorial below.

subtitle workshop opening window
This is how the Subtitle Workshop free utility appears right after the first start; you may want to first open the subtitles file, from File>Open, or by pressing the open button, and then browsing to the actual subtitles.
subtitle workshop with opened subtitles
This is a subtitles file opened in Subtitle Workshop, no more, no less; right now, it’s the time to open the video file the subtitles are associated with, from Video>Open
subtitle workshop with opened subtitles and video file
This is after opening both subtitles file and video file inside Subtitle Workshop (the video file still is not visible, as the ScreenRip32 utility which I used cannot properly capture overlay… same thing happened if I tried the PrintScreen key). The video will start playing automatically along with the subtitles. There are two choices now to start adjusting the subtitles, which are, well, pretty much the same. Either you select the first line of the subtitles, and play the video where that first line is spoken, and when that happens you press the third button from the right below the video, which says “1”; then you select the last line of the subtitles and jump to the point where that line is spoken, pressing instead the second button from right which says “2”. At this point, a little window will appear with a summary of the details regarding the timings, asking you if you want to adjust the subtitles accordingly. Check that the timings reported in that window are correct, then press adjust. At this point the subtitles are synchronized (verify by playing the video inside Subtitle Workshop) and you can save the results. OR, you can use the other method instead, just see the picture below.
subtitle workshop timings adjust dialogue
Second method: manual timing. First of all, write down the exact times when the first and last spoken lines of the subtitles file are said in the video, then to manually set the timings to adjust the subtitles, follow the menu Edit>Timings>Adjust subtitles. A dialogue like the one in the picture will appear, and you just have to fill in those times you just wrote down and press adjust. Check the results by playing back the video in Subtitle Workshop to see if subs are really synched, then save the file.

IMPORTANT NOTE: what follows is the very first guide to subtitles synchronization that I wrote, and which is now substituted with the guide above. I just didn’t have the heart to remove it altogether, so I left it here for the sake of posterity.

This guide has been thought for you non-english users who, even if top-grade in this language, very often encounter those uber-fast pronounciations or that slang sub-dialect or again that nasty accent (and every link to “Snatch” or “Trainspotting” is NOT casual), that really beat you. So you download a subtitles file, and you either don’t know how the heck to use it (but if it’s the case, then search elsewhere because this guide won’t tell you how), or you find it begins almost synchronized, but gets really messed up, just to go wildly desynched at the end.

Important incroduction: this guide is related to SubViewer 2.0 subtitle format, and it’s referred to an ideal situation in which you see the movie using BSPlayer (get it from the Downloads/AudioVideo section). Which means, if you prefer to use other players which don’t support properly SubViewer format, or you hate SubViewer format yourself for some reason, you can still use this guide, yet the instructions, found right at the end, on how to resolve this “compatibility” issue, are not tested in any way by me, since I’ve always, and I’lll always, use the couple BSPlayer/SubViewer for my DivX subtitles needs.

Download SubAdjust from the Downloads/AudioVideo section of the website, then proceed to the basic preformatting of the file, which means removing the comments or the sign of the ripper, like:

  02:43:08,687 --> 02:43:09,722
  02:43:13,167 --> 02:43:15,681
  ...I'm glad you are with me.
  02:51:01,967 --> 02:51:02,956
  Subtitles by
  SDI Media Group

which for example is at the end of the file (a special prize to the ones who will guess what movie was that one; c’mon it’s easy), but you can find them also at the beginning:

{0}{900} ****Le Garçon Française   SUBS****|Vive la France!!
  {905}{1002}- Le 3 septembre 1973|à 18 h 28 min et 32 s,
  {1010}{1062}...une mouche bleue|de la famille des Calliphoridés,
  {1070}{1138}...pouvant produire 14,670 battements|d'ailes à la minute...
  {1145}{1220} posait rue Saint-Vincent,|à Montmartre.
  {1318}{1378}A la même seconde,|à la terrasse d'un restaurant,
  {1385}{1458}...le vent s'engouffrait|sous une nappe,
  {1462}{1555}...faisant danser les verres|sans que personne ne s'en aperçoive.

(another special prize to the ones who will guess this other movie which the subs where taken from, it’s easy as well; BTW this sign was made up, I couldn’t find any signed file on the fly).

You can easily achieve this by opening the subtitles file (whose extension may be .txt, .sub, .srt or other; I have all these extension associated with notepad anyway) in a text editor, and manually deleting those lines, then saving; when the subtitles have an ordinal number and a timestamp in more lines, like in the first example, you must delete the whole record.
We don’t do this because we are evil and so want to remove every trace of the kind guy who ripped the subtitles from the DVD, but because in most of the operations we need to make in order to resynch the subtitles these additional lines at the beginning or at the end, which have no counterpart in the movie itself, will easily mess up everything.

There are basically 3 kinds of desynchs in subtitles:
1) Simple time shift, the beginning is shifted before or after the correct time, while the rest of the text follows at the right “pace”;
2) Wrong framerate, where the time distance between two lines of text is different from the correct one, but the speed is uniformly increased or decreased throughout the file (with or without time shift, it makes no difference considering the method we use to correct it);
3) FUBAR’d subtitles (don’t worry, they are pretty rare) where either your video, even if correctly watchable, has some glitches in the framerate of internal scenes, so that some video sequences have a framerate different from the nearby scenes, or the subtitles themselves were ripped very bad, or again the original subtitles were timestamped uncorrectly, or again again the subtitles lack some scenes which are present in the movie or have additional scenes missing from the movie: in these cases usually you search for another subtitles file, or you watch the movie without subtitles (this is the worst kind of desynch, since you can realize you have one only AFTER having tried the previous fixes; trying to fix these subtitles is extremely time consuming, and even if I could be able to do that – and I once tried… giving up -, I won’t include the steps in this giude, because I esteem myself a very stubborn person, yet I would never lose all that time to fix such a situation).

In any case, since you need to work with SubViewer format in SubAdjust, you have to convert the subtitles file to that format if it’s using another one. You can recognise a SubViewer file by opening it in a text editor. The beginning of the file will look like:

  On September 3, 1973...

  a blue fly capable of flapping[br]70 beats a minute..


that is, a record storing the general info about the movie (with or without the various fields filled) and then for each line a timestamp indicating the start time and end time, and just below it the subtitle. If the subtitles are not in this format, start SubAdjust and convert them.

Open the subtitles file in “Source File”, write another suitable name for the output, and select “Conversion to SubViewer 2.0”, then press GO. The original filename may have another extension like .txt, .srt and so on.

So let’s start examining the first two cases. When you see subtitles in a movie are shown when they shouldn’t, it doesn’t hurt to try and see if the simple time shift is occurring. So take a note of the time of the first subtitle in the movie; example, given you removed the comments out, you see that the first line in the subtitles file is “Now, children,[br]are you sitting comfortably?“, go play the movie and write down the time at which the thing is actually being said (let’s say 00:00:04, 4 seconds from the start), then start SubAdjust.

For the first try, open the subtitles file in the “Source File” input line, and choose the name you will save the output subtitles with (I usually put the same name followed by one ‘ or more ”’). Select “Adjust”, and in the lower-left corner select the time you just annotated from the movie, press GO and wait.

Open the movie file, and see, jumping to and fro, if the subtitles are shown correctly in all the movie. Chances are they won’t. So we begin examining the second case (wrong framerate).

The drawback of the method is that you will possibly spoil the ending, since you need to see at what time the first line is said in the movie (just like we saw before), then what is the line written at the very end of the file (and thus is the last in the movie), and at what time that last line is said in the movie (so you need to play the end to search for it. I HATE it, too bad I couldn’t find anoter way of telling). You will thus have the time, related to the movie, of the first and the last lines. Keeping note of them, adjust the subtitles files so they start at 0:00:00, then calculate “last-movie-line-time MINUS first-movie-line-time”, you will have the time span that passes between the first and last line in the movie. Since we adjusted the subtitles to start at 0 seconds, that is also the time we will want the last line to appear in the subtitles file. So proceed:

After you adjusted the subtitles to start at 0:00:00, load the adjusted file and select “Change frame rate”, then select the checkbox “Use last ref.time” and in the “Coef. / desired last ref.time” write down the result of the subtraction I told you to make before (note: you need to have cents of second, so just add .00 after the seconds). Press GO to write the file with the name you chose in “Target File”.

After this is done, load in SubAdjust the newly created file, which starts at 0:00:00, and ends at the time you just calculated, then re-adjust it to start at the time of the first line said in the movie, exactly like you did in the first method, but now you will be sure the final time will be correct.

Occasionally you will still need to adjust again the time, matter of one second before or after, but you already know how to do it.


As I told you, this part has not been tested, but if you really want to use subtitles in another format, select “Conversion to [other format here]”, and press GO to save the subtitles in the new format using the filename you chose in “Target File”.