Mozilla Firefox Cache and Advanced Configuration

We can directly access the contents of Mozilla Firefox Cache by typing about:cache in the browser's address bar.

There are 2 cache sections inside: Memory Cache Device and Disk Cache Device. The first one is the most useful cache section. Just click List Cache Entries, or access directly typing in the address bar the following line: about:cache?device=memory. That's the way to obtain a complete listing of cache objects read by Firefox.

This cache listing in Firefox is useful to locate the full paths to images, videos or Flash content, that was actually read by Firefox, but whose original source URL was unknown. For example, if we want to save some content which was enclosed inside a Pop-up window, with right click disabled, we could still get such content from the cache of Firefox, and so on.

Advanced Firefox Configuration Options

By typing about:config in Firefox address bar, we will enter a configuration menu or configuration options listing with a lot of the browser configuration stuff.

Once we have accessed this Firefox configuration menu, we have a very useful filtering option which can be used to locate things to configure. We can change almost anything in Firefox using these configuration options.

For example, using accessibility.typeaheadfind.enablesound we can activate or deactivate the Firefox sound error emitted when, in the Firefox search field (Control + F), we type something that Firefox cannot find in the current webpage. We should modify the option value, changing it from true to false.

Most of these advanced options can be configured by typing "true" or "1" to enable, and "false" or "0" to disable.

These Firefox configuration options may admit numeric values different from 0 or 1, such as a pixel value, a time in milliseconds, a size in Bytes... That's only a little bit of deductive logic, taking into account which kind of option is modified by such numeric value.

Here are a couple of examples with different values:

browser.cache.disk.capacity = the maximum amount of disk space that can be used by Firefox. = URL with the default location to store downloaded files.

browser.history_expire_days = the value represents the number of days that Firefox History would be kept.

You just have to read these advanced options to understand what are they used for: Firefox option names are fairly descriptives by themselves. Or it is just a matter of trial and error. Don't be afraid of testing or of breaking Firefox. Every Firefox configuration option can be fixed again by uninstalling, erasing the options folder and reinstalling the web browser.

Is your web server down? How to check it

Check server down

Did you ever wonder how to check whether a web server is really down? If you cannot connect your web server, you have to check that the problem is in the web server itself, and not in your Internet connection. Otherwise, you could be just wasting the time of your web hosting support.

Fortunately, down for everyone or just me is a very useful online tool that will quickly perform a server down check.

What to do if a server is just down for you

But, what if the server is only down for you? Don't worry, because that is just not possible. Here are some possible causes:

  • You may have a DNS server down, so your system wouldn't be able to resolve the web server Internet address.
  • You may be experiencing some local network problem. If your network Internet connection is interrupted, you won't be able to connect any other web server at all.
  • The server may be responding, but it could be sending a blank HTML document as the default web page. That may be caused by a bug on your code, but your webserver would pass any ping test, as the server is actually not down.

That's why I suggest you to perform a ping or trace route check of the server, as it will give you just information about whether the server is down or not (getting rid of web browser webpage rendering issues). Here's the example code for Windows:


If your web server has a static IP, try to take note of such IP address, as using an IP address instead of your domain name for pinging purposes will avoid any DNS server down issues.

Domain Name Servers (DNS's) resolve domain names: that is, they translate a domain name such as into an IP address like A DNS server failure is easy to identify, as your web browser will stall trying to resolve any new domain name, and you won't be able to connect any web server.

Take into account that, even with your primary and secondary DNS servers down, you may still be able to access access again recently resolved domain names, as there is a DNS cache on your operative system.

I hope these tips will help you telling a web server down from a DNS, routing or specific connection problem!

Minimizing windows, showing your Windows Desktop and restoring windows fast

Restore windows fast

In the following lines I will explain you the fastest way to open a new Windows application from a desktop shortcut: using some of the Windows key shortcuts you won't waste time minimizing and maximizing windows one by one.

The Windows keyboard shortcut "Windows + D" will minimize all of your open windows, allowing you to access the shortcut icons on your desktop. Pressing "Windows + D" acts like a window visibility toggle, and will restore the layout of your previously open windows. Nevertheless, this won't work if you click any of your desktop shortcuts (that is, if you open any new window). In such situation, your minimized windows won't be restored by a new key press of the "Windows + D" shortcut. So this is an useful shortcut, but it isn't the quickest way.

On the other hand, there are a couple of Windows keyboard shortcuts that will allow you to view all your desktop shortcuts, open a new Windows application, and then restore the size and position of all your previously open windows.

The minimize keyboard shortcut "Windows + M" doesn't work like a window visibility toggle: you won't be able to restore the position of your windows by clicking "Windows + M" again. But the advantage of using this shortcut is that you can restore the size and position of your windows by pressing the Windows maximize keyboard shortcut "Windows + Shift + M".

So the typical scenario to quickly open a new Windows application using shortcut keys is as follows:

  • Press first the "Windows Key + M" shortcut to minimize all your open Windows.
  • Any shortcut icon on your desktop will be visible now. Click any shortcut to open a new window.
  • Finally, restore the visibility of your previous windows maximizing them again, thanks to the "Windows Key + Shift + M" shortcut.

Windows Key Shortcut List

Windows key shortcuts

Did you know that the Windows Key on your keyboard has more functions than just showing your Windows Start menu? It can be pressed in combination with other keys, accessing this way some useful and time-saving default Windows keyboard shortcuts.

  • Windows Key + E = (Explorer) open Windows file explorer (such as clicking on "My Pc" button, with the directory tree open in the left pane).
  • Windows Key + M = (Minimize) minimizes all your open windows.
  • Windows Key + SHIFT + M = (Maximize) restores the size of all your application windows.
  • Windows Key + R = (Run) open Windows "Run" program window.
  • Windows Key + D = (Desktop) show Windows Desktop.
  • Windows Key + F = (Find) open Windows search menu.
  • Windows Key + L = (Lock) blocks your PC.
  • Windows Key + U = (Utility) open Windows Utility manager (such as accessibility utilities).

Remember that all these keyboard shortcuts are enabled on any Windows PC by default. In fact, they are an easy way to save time when accessing common Windows functions.

Interrupt Windows Shutdown

Interrupting Windows shutdown

Did you know that it is possible to interrupt Windows shutdown? Imagine that you accidentally clicked your shutdown button, and you need to stop this process and continue working with Windows. Well, this simple trick could save you some long Windows reboot sequence.

There is a Windows shutdown.exe command option that will stop any undergoing shutdown process. You just need to run the following command:

shutdown.exe -a

Of course, you should be very quick to type this command before the shutdown process is completed (it will work as long as your keyboard remains responsive during the shutdown process). In practice, that would be impossible. So your best option is to create a desktop or a keyboard shortcut to interrupt the Windows shutdown sequence, as we did with the fast Windows shutdown.

Notice that you won't be able to interrupt a Windows shutdown timer: you can just stop a standard, user-initiated Windows shutdown. If a computer virus kills any of your main Windows processes (such as Sasser virus did with lsass.exe), that would start a Windows shutdown countdown that cannot be interrupted. So the main utility of the interrupt Windows shutdown parameter is to prevent a situation of: "Oops! I didn't want to exit Windows yet!".

A trick for super-fast shutdown: Windows turned off at once

Super fast shutdown

Have you ever wanted to perform a super-fast shutdown on your Windows PC? Imagine that you could shutdown Windows just by clicking on a desktop icon, or using a keyboard shortcut. So you could just run the shutdown process, turn off your monitor, and continue with another important task - without having to wait till your PC is completely turned off. Well, that's possible thanks to the Windows shutdown command plus the appropriate shutdown parameters.

Windows Shutdown Command

Windows provides a shutdown command (named shutdown.exe) which could be used to turn off your PC from the Windows command line. Calling this shutdown function with the appropriate parameters will start a super-fast shutdown process that won't be interrupted. The only line of code needed to shutdown Windows is as follows:

shutdown.exe -s -f -t 00

This is the explanation of the shutdown parameters:

  • -s starts the Windows shutdown process in order to turn off your PC.
  • -f forces exiting any running Windows process, without any warning: no blocked application will interrupt the shutdown process.
  • -t 00 specifies that the shutdown process is delayed 0 seconds: Windows will be shutdown immediately.

That will quickly shutdown windows, exiting at once any program. So the shutdown process won't be stopped by any unresponsive application: with these parameters you will override any annoying "finish program not responding" Windows prompts. Just run the shutdown command and leave your PC.

On the other hand, if you still have some unsaved changes on any application, it seems that you will be given one last chance to save your progress, thanks to a "save changes?" Windows prompt. You can start this super fast shutdown process without fearing to lose any application data.

How to create a quick Windows shutdown button

Let's save even more time creating a quick Windows shutdown button. Don't type by hand the whole shutdown.exe command with those parameters: store the shutdown command line in a batch file following these 2 simple steps:

  • Open your favourite text editor and paste the Windows shutdown code inside: shutdown.exe -s -f -t 00
  • Save this file as a ".bat" file (for example, fast-shutdown.bat)

You have just created a super fast shutdown button: now you can quickly shutdown Windows just by double clicking your shutdown ".bat" file!

A keyboard shortcut to quickly shutdown Windows

Can you imagine an even faster whay to shutdown Windows? Well, there's still a quicker way to start this unstoppable, lightning-fast shutdown process: you could turn off your PC using a keyboard shortcut.

Once you have created a .bat file that contains the shutdown.exe command with the appropriate parameters, associating this file with a keyboard shortcut is very easy:

  • Right click your .bat file and create a shortcut
  • I always place this shortcut icon on my desktop, so I can quickly shutdown Windows with a double click
  • Right click the recently created shortcut icon and select Properties
  • Inside the shortcut tab, click on the keyboard shortcut field
  • Press the keyboard shortcut that you would like to use to shutdown Windows. (As you don't want to accidentally shutdown Windows, select some complex combination that would be unused by most applications, such as CONTROL + ALT + SHIFT + F12)

And that's it! You have learnt how to perform a super fast Windows shutdown process through a keyboard shortcut. Run this command to quickly turn off your PC, leave at once (don't worry about closing running applications, because Windows shutdown will force the exit), and save your valuable time!

Create stadiums for PES 5: tutorial about a custom 3D stadium design for PES

This tutorial explains how to design a custom stadium for PES 5, and how to import custom stadiums into Pro Evolution Soccer 5 for PC. It's possible that these football stadiums could work in PES 6 and further versions of PES, besides I haven't checked this yet. That's why this tutorial will focus on PES 5, where I modeled my custom stadium, which worked perfectly.

Programs needed to model a 3D PES Stadium:

  • DKZStudio.
  • Harps stadium builder.
  • Turf Template.
  • Rhinoceros 3D [to model the stadium].

Most of the software needed to create a custom PES stadium can be downloaded for free at (except Rhinoceros: you can download this program by your own means, as there is a free Rhino version on the official webpage, so Google is your friend).

The steps to create a custom PES stadium are very easy, once you get it. Just follow carefully, paying attention and without any rush, every one of the following processes. If you don't skim any step of this tutorial, which many people tend to do ("bah, this step doesn't matter, let's go to the next step", and then they don't get the right results) it will work perfectly.

Modeling a PES Stadium and importing the custom 3D stadium in PES:

- Extract the RAR file which contains the Turf Template. We will work with the files inside this stadium template package.

- In your PES installation folder, inside "/data", open with DKZ Studio the file 0_text. Once inside this file, look for the file unknow_09560.bin and export it outside to edit it. (This is the PES training stadium. I will work with this stadium in this tutorial. There are other PES stadiums inside this file, named under other filenames. The process would be similar using a different .bin file (that's a different stadium). If you want to use another PES stadium as a starting point, take a look at pesoccerworld or the PES stadium list inside the 0_text file).

- Using Zlib (inside the software tools of the DKZ Studio) open the recently extracted file unknow_09560.bin. Inside this file, you should select the unknow_002.str and then export this selected file.

- Place the recently exported file called unknow_002. str into the folder stadUnpacker of the RAR extracted before (overwriting the file inside). Then we run the executable export3d. This program will create a folder called export plus some numbers. Alright, leave this folder as it is (we will use it later) and let's move on to the next task: modeling our new PES stadium.

- Create your own PES estadio with Rhino. (You could also model a PES stadium using 3D Studio Max and then export it as an .obj, so it could be imported as an .obj using Rhino. In any case, the final exported stadium file has to be done using Rhino, even if the stadium comes from a 3ds file extension. Otherwise, the next program that we are going to use wouldn't read the model of your 3D stadium. You have been warned: if you omit this, don't think "bah, it doesn't matter, I will use 3ds Max to model it", because your PES stadium won't work). So create your own custom PES Stadium starting from the stadium template Turfpes.3dm (this 3D stadium used as a starting point is inside the RAR Template). We won't export this stadium template later: it's just a guideline to position the grass. I advise you to place inside a folder all the textures that you are willing to use, because these textures will be needed later in a certain process.

- Once you have modeled a 3D stadium design you will have to save separately every one of the 4 sides of the stadium, in 4 different files, with a .3DS extension (watch out, do not confuse with 3dm which isn't the PES file format, but the default program and template file format). If you also modify the PES stadium field itself (which I discourage), you should save the modified game terrain in a 5th part. Do it your way, as you like it the best: you can erase all the stadium parts except the one that you are goin to save, and then store it in your PC as a .3ds file, then click CONTROL+Z to restore all the model of the stadium, and then erase every stadium part except the next one, and so on, till you have 1 stadium part in each exported file.

The 3ds files that you should save have to be named this way:

  • Uside.3ds = The Top of the stadium (Up)
  • Dside.3ds = The Bottom of the stadium (Down)
  • Rside.3ds = The Right side of the stadium (Right)
  • Lside.3ds = The Left side of the stadium (Left)

The position of each section of the stadium with respect to the game field (which is already defined in the template stadium from Turfpes.3dm) determines which part of the model should be stored in each file.

Remember that the stands of the top (UP) are the ones that are seen during the PES football matches (as it is the default camera of the Pro Evolution Soccer). That's why you sould pay more attention in modeling the top of the 3D stadium, as the bottom stands will only be seen during the replay.

- Once you have Lside.3ds, Uside.3ds, Dside.3ds and Rside.3ds, perform the next process on these files, one by one. I'm going to explain it using the left side of the stadium, Lside.3ds, for example. You should follow these same steps with your 4 PES stadium files:

· Open the Harps stadium builder, and click Tools/Stadium Importer. Then select Lside.3ds. Once you have selectes this file, a menu will pop-up, and then you should specify where are the texture files for this 3d stadium model part (that's why I advised you to have all the textures together inside a single directory). Once you have specified the location of the textures, a new menu will pop-up, displaying all the textures used in the imported .3ds file. You will have to place all these textures inside the square on the right (sometimes you will have to stretch and move your textures so all the textures would fit inside the square; make sure that the most frequently seen textures, or those textures that you will need with high-quality remain big, with good resolution, as the smaller they become, the worse they are rendered). Select the textures one by one and click Map/Unmap (those of you with 3D experience will recognize a simple creation of an UV Map for the stadium), placing the textures, till you complete the whole PES stadium with all the textures shown. (You will find out here that it is advisable to design a 3D stadium with few textures, or repeating the texture maps. It's also advisable to create a 3D stadium based on flat planes, so the UV mapping will be easy to define). The texture map can have neither any image outside the square nor any overlapping texture fragments. Once you have mapped all the 3D textures on your PES stadium model just click Check Bounds to verify that all your textures are alright. Under the Settings section verify that the "Flip V" option is checked if you used Rhino to model the stadium, because Rhino by default uses the inverted texture map.

Then you should click Import Model and Texture (so the program will read the 3D model of the PES stadium with the UV Map that you created), and then you should export the UV Mapping in one file and the PES Stadium model in another file with OIF extension:

- Save texture BMP (make sure you save the texture of the stadium with the same name that the side of the stadium that you are currently creating; for example, if you are working with the UV map of Lside.3ds, save it as Lside.bmp).

- Then, File / Save OIF, and this file keeping the same with an OIF extension (for example, Lside.oif).

Repeat this process with the remaining sides of this 3D stadium (Stadium Importer, Save BMP, Save OIF) with their respective file names.

- Once you have done it, take all the sides of the PES stadium that you exported in OIF, Lside.oif, Uside.oif, Dside.oif, Rside.oif, and put all these files inside the folder OIF2BIN from the original pack. Once you have copied all the stadium files in the specified destination folder click the BAT of each "side": convLside.bat, convDside.bat, convRside.bat, convLside.bat. If you placed every file of the stadium in the same folder, and if every part of the soccer stadium was alright, this will create 4 new files with numbers. Put these new files inside the folder called export that you created in the very beginning inside the folder stadUnpacker, replacing the old files.

- Now it's time to follow the same steps that we followed in the beginning, but in reverse order. At first we were extracting files. Now we are going to pack the final files of the new PES stadium.

- Once we copied the files with numbers inside the folder stadUnpacker/export, go to the folder stadUnpacker and perform the same steps you did in the beginning but in reverse order (at first we clicked export3d.bat in order to extract the stadium files from unknow_002.str to export) now we perform the inverse operations: we shall click import3d.bat, and this will put into the unknow_002.str file all the stuff inside the import folder.

- From the Zlib of DKZ Studio we should open unknow_09560.bin and then select the unknow_002.str file which is contained inside. Then we should right click on it and select import in order to import our new unknow_002.str (with our custom PES stadium) and replace the old stadium files. Once it's ready, we should save the unknow_09560.bin file. (It's very important to remember the location of this file, because this is the edited PES stadium, and we won't want to confuse this file with other default stadium). So let's save our recently created PES stadium.

Now we should open with DKZ the 0_text file, and we should look for the contained unknow_09560.binfile. Let's select this file and then click import, so we can import our recently saved file called unknow_09560.bin (thus replacing the original stadium file).

Once this is completed, we have to save the 0_text. As this file is already open, we won't be able to overwrite the file. So we should save this file with a new file name next to the original file, with an easily recognizable filename (for example,0_text_edited). Once we have saved this file with the new custom PES stadium, we should close the DKZ, and then erase (or rename, or store in a different folder, or whatever you want) the original 0_text file. Then we should replace the original file with the PES stadium that we designed, 0_text_edited, which we should rename as just 0_text, so that Pro Evolution Soccer will read this file with our custom stadium.

The new PES stadium 3D model is ready! Now, the textures:

There are some other tutorials out there that will tell you to use the WE Picture Decoder, but I have skipped that step because I really cannot stand that program: with Game Graphic Studio you can perform the same operations, in a better way, without having to save again the 0_text file if I want to edit the textures of the custom stadium again, if I think that these textures look ugly, or just if I want to replace the textures of the stadium (however, the edited textures of the stadium should keep the same area as the current textures).

As everybody is free to do as one prefers, if you want to use WE picture decoder instead, look up the PES tutorials at pesssoccerworld, or in the forums: I'm going to teach you how to do it using Game Graphic Studio, which in my opinion, is a better and easier program:

You will have to check inside Pro Evolution Soccer which textures appear in each stand of the stadium. Using Game Graphic Studio, open 0_text and look for the unknow_09560.bin file. You will find a complete list of all the textures inside that PES stadium model. Open (by right-clicking and selecting "open", inside the big work area at the top) each one of your stadium textures, Lside.bmp, Rside.bmp... etc. Make sure that all your texture BMP files of the PES stadium were stored in an Indexed Color mode (open with Photoshop all the BMP files, and select Image/Mode/Indexed Color, maximum 256 modes) and save this way the 4 files.

Open all the BMPs from Game Graphic Studio. Once you have opened each one of these BMP files, select in "all" Set Opacity, in order to make them opaque (no transparent, as well as the textures of the soccer balls, just check some soccer ball texture tutorials out there), and then drag the textures over the other textures in the list, replacing them. This way you can even change the grass textures of the PES game fields, and so on. Using this procedure you can clearly check which texture replaces each other, without having to save the whole 0_text file, as the edited textures of the PES stadium are automatically stored inside this file.

The rest consists just of checking your custom 3D stadium for PES. If any of your edited stadium textures is not rendered appropriately, check why it's being displayed wrong, place the texture in the right place of the stadium, and so on.

Take into account that, for optimal performance of the Pro Evolution Soccer game, your custom stadium should be modeled with the fewer number of polygons possible. A PES stadium composed of simple shapes (even just flat planes) is preferred. As an example, you could check this custom PES stadium, which I modeled (it's the football playground of my old school). This custom PES stadium was modeled just using flat planes: that way, Pro Evolution Soccer runs smoothly in your PC even using edited PES stadiums.

This custom Pro Evoluton Soccer stadiums tutorial is based on the original how to create your own PES stadium post by Dremin.

GTA San Andreas PC: Audio Bug Fixed.

There is an audio bug in Grand Theft Auto San Andreas for PC. Some users experience a sound bug in GTA, which consists of a strong change of audio volume. The FX sound and the music in GTA change radically: while one is played at a very high or normal sound volume, the other is heard at a very low volume, or like a sound of "reverberation" or echo, like a "subwoofer" sound.

In other situations, one or both audio channels (music and sound FX) stop playing. Even under certain circumstances the audio in GTA may be delayed and out of sync with the action.

All these GTA San Andreas bugs can be fixed easily:

Let's click on the start menu / run

Let's type: dxdiag

This will open the DirectX diagnose tools, and in the tab named sound we should lower the Hardware acceleration settings to the minimum. Then just close the DirectX window and start playing again GTA SA in your PC: the audio now goes perfectly.

When we quit playing GTA, we can repeat the process to raise again the sound hardware acceleration to the maximum level.

Fix GTA SA sound bug

Based on the original GTA SA sound bug fix post by Dremin. This information was formerly provided at our friend blog: Aqueos

HTML and CSS in emails: compatibility list of email clients

Probably you are familiar with this common scenario: you create a really well designed e-mail newsletter using your most advanced HTML and CSS skills, and then you find out that your recipient's email client is just breaking the whole email design and layout.

While sticking to a very simple plain text email would do the trick, you should not get rid of every HTML design element of your emails just because some mail clients are not compatible with specific CSS or HTML code. The key is to know which HTML and CSS features work on the main email clients.

This email compatibility list is a very useful resource, as it provides graphic examples of how a sample email would be rendered on popular email clients, and it's constantly updated to take into account the latest compatibility improvements of such e-mail clients.

At the present time, this list shows some interesting conclusions, such as that the Gmail mail client would only read inline CSS: Gmail ignores CSS included inside the head element, and removes CSS classes and ID's from the original HTML of the email.

By the way, if you are looking for a reliable free email client application, I would choose Mozilla Thunderbird.

Is there any HTML or CSS that works on any mail client?

So, how could we create appealing e-mails that would work on any e-mail client? The truth is that currently every main e-mail client supports HTML tables with inline background colors defined.

These tables would admit some background images in many e-mail clients. Images are very powerful when they are used to spice up the email body. But don't rely just on images: use elements that would degrade gracefully, so your HTML email would still be readable in any email client.

With no doubt, CSS is the future of HTML in terms of code maintenance and element positioning. But for sending HTML emails, it could be better to stick to a very simple (yet effective) HTML table based email content.

Reliable emails based on HTML tables

My advice is to use HTML tables in emails: most email clients will render the results flawlessly. And let's keep an eye on the compatibility list of CSS in email clients: the day of fully CSS based emails could be near.

Turn YouTube video quality into HD Youtube in 1 simple step

Did you know that just adding &fmt=18 at the end of a YouTube video URL will turn such video in a High Quality YouTube video?

Let's see an example of how a High Quality YouTube video URL looks like:

And that's all! It is that simple.

YouTube video quality in detail: quality comparison

Let's take a closer look inside the two different YouTube video formats and see how much improvement you can obtain adding just &fmt=18:

Normal quality YouTube video:

  • Video format: Flash Video (.flv).
  • Video codec: FLV1.
  • Frames per second: 15 fps.
  • Video resolution: 320 x 240 pixels.
  • Video audio: MP3 at 22050 Hz.

High quality YouTube video:

  • Video format: MPEG-4 (.mp4).
  • Video codec: AVC1.
  • Frames per second: 29.97 fps (as NTSC).
  • Video resolution: 480 x 360 pixels (50% higher!).
  • Video audio: MP3 at 44100 Hz, 2 channels, 1411 kbps.

The High Quality YouTube video is approximately double the size in MegaBytes of the normal quality video. But the video quality improvement is worth the effort: the new video has bigger screen dimensions and much better video bitrate (and thus, much less video compression artifacts).

Flash video is the best format to optimize bandwidth, but the other YouTube MPEG-4 video codec is doing a great job keeping the quality high.

See it by yourself! Here is a normal quality YouTube video, and this is the same YouTube video in High Quality.

Unfortunately, this trick won't work to embed High Quality YouTube video in an external site. The good news are that our old tricks to embed HD Flash video still work.

Nevertheless, it seems that YouTube is taking advantage of the fast modern networks too, and this &fmt=18 is a big step towards an HD YouTube!.

Flash video bandwidth saving tricks: scale video size

It's great to have high quality Flash videos embedded in your site, but keep in mind that each time a good quality video is downloaded, it consumes a lot of bandwidth. You can eventually get an annoying message of bandwidth limit exceeded, which would either make your server unavailable during the rest of the month, or cost you an additional fee according to the bandwidth quota exceeded.

The idea is to achieve an appropriate balance between the video quality (the amount of video compression) and the total video file size in bytes (the total amount of bandwidth consumed by a full video download).

The trick is to create a Flash video file with an average bitrate and small screen size. Then, scale the Flash video size when embedding the video on your website.

Flash video: scale size to save bandwidth

These are the steps that you should follow to save video bandwidth while keeping the embedded Flash video quality high:

  • Convert your video to Flash Video (.FLV) using a video bandwidth around 400 kbps.
  • Reduce the video size of the .FLV file. The screen dimensions of the .FLV video can be as little as the desired video dimensions divided by 1.25.
  • Specify the desired Flash video dimensions (not the real, reduced .FLV video size) as the video dimensions when embedding your video in your webpage. Here are some tips on configuring the playback controls to embed high quality Flash videos.

And that's it. The 2 main ideas of this trick are just so simple and effective:

  • Use an average streaming bandwidth on a small video to achieve a good compression quality.
  • Don't use the original dimensions of your Flash video: scale size to match the desired video size.

Modern networks can play a Flash video of 400 kbps in real-time streaming or with little preload time. The video quality will be kept high as well, because the real screen dimensions of the video are small. With such a good compression quality you will have little artifacts on your Flash video. You will even keep the video subtitles and other video texts clearly readable.

On the other hand, the distortion of the scaled video is less annoying than the compression artifacts. Just don't scale your video size more than a 125% of the real video size, or you could start getting too much pixelation.

The result is a Flash video of the desired screen dimensions with little compression artifacts: a good quality video with optimized video bandwidth.

Video in Blogger: embed Flash video and a Flash Video Player

Videos can be an awesome kind of content to include in your blog. Embedding YouTube videos in Blogger is very easy. However, using YouTube videos has some drawbacks:

  • The actual resolution of YouTube videos is limited to 320 x 240 pixels.
  • The video suffers from strong compression (limited to 250 kbps).
  • The YouTube watermark may overlap your video.
  • The customization of the video playback controls is limited.

The FLV video format (Flash Video) offers a great amount of compression while keeping the video quality high. So I would really suggest you to create your own Flash Videos in this FLV format, host these videos on your own webserver, and then embed the FLV video in Blogger. Follow these steps to embed high-quality videos in your blog:

How to embed FLV videos in Blogger

Step 1 - Convert your video into FLV format

The first step is to convert your video into FLV format. Adobe Flash Editor has an Import Video function that quickly converts the original video into FLV. Nevertheless, the Flash IDE is an expensive application, so I would suggest you to use some free video encoder to turn your original video file (.avi, .mpg, .mov, ...) into FLV.

SUPER would be my FLV video encoder of choice.

Convert your video into Flash Video and upload the resulting .FLV file to your server. Just be careful with your bandwith quota, as video content may be rather heavy.

Step 2 - Create the playback controls

Once you have a FLV video, you will need to create the playback controls, so you can play, stop and pause the video, see how much video has been preloaded, control the video volume and so on.

Flash can also create some video playback controls, but they won't be much useful, as you cannot use an absolute path to link to Flash video controls. So you cannot embed the Flash video controls directly on your blog, because you won't be able to link to the original SWF file containing the playback controls.

The solution is to use an open source FLV video player. I would recommend you to use the OS FLV Player, which is a truly open source, customizable and reliable FLV video player. And you don't need even to have the Flash Editor to use this module. You will just need to upload the file with the playing controls to your server (player.swf).

I will teach you how to configure OS FLV in the following step, so it will be easy to embed this video player in Blogger.

Step 3 - Add it to Blogger: Embed Flash Video

OS FLV Player provides some php scripts that automatically create the HTML code to embed the FLV video on your webpage. But, since we are going to host the video playback controls, as well as the FLV video on a webserver that is not in the same domain as Blogger, we will need to embed the video in Blogger by hand. This is the code that you should embed on your Blogger post to include the video:

<object width="[Width of your video]" height="[Height of your video]" id="flvPlayer">
   <param name="movie" value="[Absolute path to player.swf]" />
   <param name="FlashVars" value="&movie=[Absolute path to your .FLV video]">
   <embed src="[Absolute path to player.swf]" flashvars="&movie=[Absolute path to your .FLV video]" width="[Width of your video]" height="[Height of your video]" type="application/x-shockwave-flash">    </embed>

Just change the following parameters:

  • Use the same width and height values that your .FLV video.
  • The absolute path to the SWF file with the OS FLV playback controls (example:
  • The absolute path to your FLV video file (example:

Step 4 - Customizing the video player in your blog

You may want to adjust the look and feel of your playback controls in order to make the embedded Flash video match the style of your blog. As the OS FLV Player is an open source player, you could edit the source .FLA file by yourself (player.fla), creating a new skin for the Flash controls. However, you will need the Flash IDE to edit this source file.

There is also a very simple way to customize the colors of the elements inside the video playback controller just by tweaking a couple of parameters. Here is the sample code:

<object width="640" height="480" id="flvPlayer">
   <param name="movie" value="" />
   <param name="FlashVars" value="&movie=">
   <embed src="" flashvars="&movie=" width="640" height="480" type="application/x-shockwave-flash">    </embed>

The parameters that you should adjust are the following:

  • The foreground color (fgcolor, set to 333333 in the example).
  • The background color (bgcolor, set to 999999 in the example).


It's easy to embed your FLV videos in Blogger. You just need to convert your videos into FLV files and embed an open source video player. This technique offers many benefits:

  • You can embed high-resolution video in your blog.
  • As you control the compression, you can embed high-quality Flash videos.
  • You can get rid of third-party watermarks in your FLV videos.
  • The appearance of the video playback controls is fully customizable, so it can match the look and feel of your blog.

Take advantage of these techniques and start embedding high-quality video content in your blog!

How to extend the life of a N64 gamepad

The texture of the Nintendo 64 joystick didn't degrade over time: it wasn't made of soft plastic, as the PS2 joystick. But, as all of the N64 controller users know, the joystick becomes somehow loose after repeated usage.

Nevertheless, N64 gamepad owners are lucky to extend the life of N64 controllers, because spare parts are sold to replace the complete Nintendo 64 joystick (not just the stick, but the whole inner mechanism too), at a lower cost than a new N64 gamepad.

Nintendo 64 thumbstick (click to enlarge)

You can purchase a Nintendo 64 joystick online. Each N64 joystick costs around 5 or 6 euros at ebay. You can even get some discount purchasing a pack of some N64 joysticks. The keywords to find these articles through ebay are "N64 thumbstick" (and be sure to perform a worldwide search).

How to open a Nintendo 64 controller and replace the joystick is pretty simple. Just remove the screws of the N64 gamepad, remove the old joystick, and put the new thumbstick in its place. And that's it: your gamepad now feels like a new one.

Curiosity: inside the N64 joystick

The installation of a new joystick in a N64 controller does not require to dismantle a gamepad as much as is shown in the following image. On the other hand, I always felt curious about how a Nintendo 64 joystick works and what's inside a gamepad. Will there be springs? Elastic rubber bands? ... Why do joysticks feel loose after some usage?

Inside a N64 joystick (click to enlarge)

So I opened the Nintendo 64 controller. The joystick itself just rotates 2 pieces that move 2 gears. The displacement of the stick from the central point is calculated according to the position of these 2 gears.

There is just 1 spring that makes the joystick come back to the central point (so the N64 gamepad does not have a spring for each direction, as some pads or buttons do). Such single spring is placed in the middle of the mechanism (so you cannot see it in the image), but it really pulls both gears towards the center.

Video in!

How to repair a PS2 controller

How to open a PS controller is really a quite simple task. But we tend not to open PS controllers because we don't know how, or because we fear breaking the gamepad if we open it. We fear that the pieces inside the controller could be dismantled and be hard to place again in their original positions (which really happens with many other things).

An open PlayStation controller (click to enlarge)

This isn't just a tutorial. It states that you can open a PS controller, without fearing the feelings of "What if I open the controller and leave it worse? Now it's so-so, but not bad after all". So I have attached the photographs that I have taken of my own open controller.

As they don't sell spare joysticks for PlayStation controllers, we can just swap the PS left joystick and the PS right joystick, because the right stick is less used, and it's often in a better condition (while the left stick usually loses the bump texture, which enhances the grip of your thumb).

Inside a PS controller (click to enlarge)

Replacing the PlayStation joysticks (click to enlarge)

To open the PlayStation controller just remove 5 simple screws with a Phillips screwdriver (a cross-point screwdriver). The PS joysticks are attached without any weird system or screw: the sticks just fit like Lego blocks.

This can also be useful to replace worn out buttons by the buttons of a broken irreparable controller that we could have laying out there.

Nevertheless, there is just only a situation in which we won't be able to mount again the open controller, as it happened to me: if your housemate (a member of this blog too) sits on the bed where you put the screws, spreading them through the floor and losing them...

Isolated, hidden webpages could be indexed by Google

Did you know that Google could index pages that have no inbound links? I mean, pages that have not been submitted to any search engine, that are not linked from any visible indexed link, that are not listed in any sitemap, and that are hosted in servers with directory listing disabled.

In the following lines I will explain you the complete scenario that led me to investigate whether such supposedly hidden pages could be indexed by Google.

And, what's more important, I will also explain how I think Google could be authorized to discover such webpages.

Lastly, I will explain how the distributed datacenters of Google may lead to confusing results, or even to valuable hints if you really take into account every information source.

Why I thought about how Google could find pages without inbound links

While I was creating a website for a customer, I developed an under construction version of the webpage. Then I uploaded this version to my own website for testing purposes.

Let's say that my customer main URL address was:


And that I uploaded the test webpage version to:


So I thought that the only way to access that under development version of the webpage was typing the whole exact directory URL, right? Wrong! I was really shocked when I performed a search in Google, using my customer domain name as the main search keyword, and the second entry in Google search results was this test webpage hosted on my own website.

Yes, a page that I considered a hidden webpage, supposedly without any inbound link, was indexed by Google!

Was that webpage really hidden from search engines?

Okay, the fact is that Google found that kind of "hidden" webpage. It was an under construction page after all, so nobody was meant to take a look at it (not yet!). So I was really interested in finding out how Google managed to index this hidden and isolated page.

The first question is: was this webpage really hidden from search engines? Here is a list of all the basics that should be checked (and that I checked) to verify that a webpage is a hidden webpage.

  • The indexed webpage had no inbound links (according to Google link search). It wasn't linked from any page from my website. And, at that moment, wasn't linked from any other webpage on the whole Internet.
  • The testing webpage was never submitted to any search engine. I'm not sure about whether search engines would really crawl a suggested directory, instead of trying to crawl from the main domain index. But I'm completely sure that I didn't submit the URL of my website under development to Google.
  • Nobody else could have submitted such URL. None of my co-workers did know about such test version. And I think hackers have much more interesting things to do.
  • The webpage was not included in a sitemap. Yes, I have Google sitemaps and Yahoo URL lists on my website. But I checked the included URL's, and the mysteriously indexed URL was not on any sitemap or list.
  • Directory listing was disabled. If you don't type the exact URL, and if there isn't an index page at the target directory, my web server won't return a list of the hosted webpages - just a lean mean "directory listing disabled" message.

Then I was pretty sure that such webpage was really hidden from search engines... And then I thought that I was giving some additional information to Google (and only to that search engine, the powerful Google) in a somehow indirect, unconscious way.

So here are the two Google services that could have been used by Google to index new webpages:

Pages with Google Analytics code may be discovered and Indexed by Google

I realized that I had Google Analytics code already installed at the testing webpage. I created a profile for a new website (in fact, my customer's final website), and I embedded the tracking code (Google's latest code, ga.js) at the webpage version under construction.

On the other hand, the installation of this tracking code wasn't complete: I never uploaded the webpage under construction to the customer's domain, and Google displayed the message "tracking not installed". And the stats graphic didn't display any visit at all.

So I think that it's possible that Google could use Google Analytics data to index new web pages (or even to tweak search results in order to improve relevance).

Anonymous navigation data sent by Google Chrome could be used to index new webpages in Google

The only other Google application that had knowledge of the existance of my hidden testing webpage was the brand new, lightning fast web browser Google Chrome. I used this web browser to try the under construction webpage version. And then I found out that I had active the option of Google Chrome which allowed this browser to send anonymous data about navigation bar search suggestions and autocompletion.

I thought that these anonymous data would be used by Google to provide more relevant and more accurate search results. What I wouldn't expected is that anonymous navigation data gathered by Google Chrome could be used to index new web pages in Google. Yes, after discarding any other option, I thought at first that Google find out my hidden webpage because I provided the URL directly on the navigation bar of Google Chrome several times.

But the hidden webpage had an inbound link!

Just when I was sure that Google had indexed a hidden webpage, I received a very interesting message from Google Webmaster Tools after renaming such "hidden webpage".

The message was an URL crawling error about a missing URL. Checking the details of this error, I found that the "hidden webpage" had been linked from my customer's website (but was not linked from there anymore).

That reminded me of some of the basic principles in web programming:

  • Customers will use your website in really unexpected ways (even when the website is not already finished).
  • Google has many datacenters with different information, so you cannot rely on just a search result. While a normal link query may report that there aren't any inbound links, you can obtain different results by checking the stats of your website through Google Webmaster Tools
  • Google Webmaster Tools now reports broken links even when the only link to your webpage comes from an external website. After all, if the linked to you, you should keep some content in that URL.


It seems that you cannot rely on keeping secret an isolated web page without any inbound link if you plan to use some Google applications with it. Either Google Chrome or Google Analytics could be using gathered navigation data to index new webpages and add them to the main Google search engine: you could be authorizing them to do so.

That's not a security or privacy issue. In fact, if you really don't want search engines to crawl part of your website, tell them about that in your robots.txt file. Just keep in mind that robots.txt files are public, and that human users may easily find out complete lists of your 'secret hidden urls' by reading these files. But that's a different story.

After all, Google Chrome and Google Analytics could just be aiding Google to do its work: discovering and indexing as many webpages as possible (even when those webpages seem to be really hidden!).

Finally, if you want to get accurate results about the links to your website, don't rely just on a search query. Google has many datacenters with subtle different content. So if you want serious results, perform link queries through the main Google search engine, but check the link stats of your website through Google Webmaster Tools as well.