Sunday, December 27, 2009

Web-Site Statistics - Free Stand-Alone Services

As web-design gurus suggest: keeping an eye on what is going on at your web-site is the must. What information is of the most interest, what part of the world your visitors come from, how long they stay on a particular page, etc. I've had some of such web analysis services in use for a few months and would like to make a note on that.

The main idea behind stand-alone analysis service is pretty simple - when a visitor opens a page the visitor's internet browser receives all text and images from the page and executes scripts. Some of the received information can be linked to an analytical site which provides the requested information and at the same time analyzes and stores the visit related info.

I've been testing the following three services which are offered for free of charge:

  1. Google Analytics - is extremely informative, it allows to look at your web-site statistics from different point of view: visitors benchmarking, new ones vs. returning, world wide location, browsers been used and more; traffic sources as direct, referred from other sites, search engines; content analysis, top visiting pages, top landing and exit pages, etc.. If you really want to know how to improve your site Google Analytics is very helpful. Google Analytics functionality is based on java-script which should be pasted into web-site pages. More detailed information can be found at Briefly what should be done to use it in Blogger is: to register with Google Analytics, create a new profile for your site, get the code and put the code in the blogger layout template above the </body> tag.

  2. StatCounter - collects a lot of useful information about visits and represents it in very convenient way: popular pages, entry and exit pages, keyword analysis, visit length, new and returning visits, map, browsers and so on and so forth. Similarly to Google Analytics StatCounter is based on java-script code. To make it working with Blogger just put the code right before the </body> tag.

  3. ClustrMaps - is another service which collects only the info about global visitors position and provides a nice world map picture with visitor locations marked.The same picture also serves as a link to ClustrMaps site and allows them to collect visitor's info. Since it is just a picture it can be placed anywhere you like in a web-page - I put it in the Header block.

    Along with the free version of the service ClustrMaps has two more advanced ones with a richer choice of map styles, higher visit rates and better archiving options.

Saturday, December 12, 2009

Palm m515 Sync to MS Outlook 2007 - Free Solution

The original installation for my m515 included Palm Desktop and Chapura's PocketMirror providing conduits for synchronization between Palm and MS Outlook. Migration to Microsoft Office 2003 brought the sync problem for the fist time and Chapura released the free of charge update PMStdUpdate3171.exe to address the issue. Now after upgrading to MS Office 2007 a similar problem appeared again - Palm to Outlook synchronization got broken.

This time Chapura offered only a "pay for upgrade" option, but luckily Palm itself provided a solution to the issue. To get the sync working again:
  1. Uninstall the old Palm Desktop and Chapura Pocket Mirror;
  2. Download and install Palm Desktop 6.2;
  3. Setup synchronization options and do the sync.

I have it working OK at the office and at home with Outlook 2003 and 2007 both in Windows XP. Also there is a separate conduit update from Palm to support Outlook 2007 if you don't want to re-install whole package, but I did not check whether it works with the old Palm Desktop or does not.

Saturday, November 21, 2009

Getch in Python - Read a Character without Enter

Sometimes it is more appropriate to read from keyboard without waiting for Enter to be codessed, for example, when choosing from a menu. The raw_input("Prompt String >") always waits for Enter, so a function similar to getch() in C is needed and there are some solutions for that in Python.
  1. There is getch() equivalent for Windows environment in library msvcrt:

    import msvcrt

    result = msvcrt.getch()

    Funny thing is that the code works fine from command window (cmd.exe), but does not in IDLE: in IDLE it does not wait for a key and gives out '\xff' as the result.

    In Linux the same can be done this way:

    import sys, tty, termios

    fd = sys.stdin.fileno()
    # save original terminal settings
    old_settings = termios.tcgetattr(fd)

    # change terminal settings to raw read

    ch =

    # restore original terminal settings
    termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
    print '\ncodessed char is \'' + ch +'\'\n'

    Since the solution is system dependent some people propose a universal approach when program tries one implementation and if it fails - the other one, here is an example from ActiveState Code, Danny Yoo:

    class _Getch:
    """Gets a single character from standard input.
    Does not echo to the screen."""
    def __init__(self):
    self.impl = _GetchWindows()
    except ImportError:
    self.impl = _GetchUnix()

    def __call__(self): return self.impl()

    class _GetchUnix:
    def __init__(self):
    import tty, sys

    def __call__(self):
    import sys, tty, termios
    fd = sys.stdin.fileno()
    old_settings = termios.tcgetattr(fd)
    ch =
    termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
    return ch

    class _GetchWindows:
    def __init__(self):
    import msvcrt

    def __call__(self):
    import msvcrt
    return msvcrt.getch()

    getch = _Getch()

  2. Using TK library the following code works OK:

    import Tkinter as tk

    def keycodess(event):
    if event.keysym == 'Escape':
    x = event.char
    if x == "a":
    print "A done"
    elif x == "b":
    print "B done"
    elif x == "c":
    print "C done"
    elif x == "d":
    print "D done"
    print x

    root = tk.Tk()
    print "a. Menu choice A"
    print "b. Menu choice B"
    print "c. Menu choice C"
    print "d. Menu choice D"
    root.bind_all('', keycodess)
    # hiding the tk window

    It works OK in Windows command window (cmd.exe), but in IDLE and Linux the line root.withdraw() should be commented out - the code works OK while the root window is in focus. This kind of examples you can find here.

  3. Curses library has its own getch implementation. I did not check it, just would like to mention for the record.
If you know any other solutions - I'd love to here from you about them!

Sunday, November 15, 2009

Getting Out of The Python's Loops

Python is a great language - I used it many times for measurement automation. The only thing I stumbled on from time to time was a simple control over long time or infinite loops. When the loop is running it should check for a key or a button been pressed without stopping and waiting for input. Such stopping and waiting happens, for example, when a function like getch() is used.

The case in general looks like this:
while 1:
print 1,
and the problem is how to get out of the loop gracefully without killing the program.

I'm aware of the following variants to deal with the situation:
  1. Ctrl-C/Crtl-D keyboard program termination. It works but kills whole program. It is possible to avoid that by exception processing of the error:
    while 1:
    print 1,
    # on ctrl-d or ctrl-c
    except (EOFError, KeyboardInterrupt):
    print '\n exception handled'
    print 'Clean Exit on Ctrl-C/D'

  2. Tkinter - it allows to stop looping on event as "button pressed":
    import time
    from Tkinter import *

    class App:

    Var = 1

    def __init__(self, master):
    frame = Frame(master)

    self.button = Button(frame, text="QUIT",

    self.stoploop = Button(frame, text="Stop",

    while self.Var == 1:
    print self.Var,

    print "\nClean exit from the loop"

    def stopLoop(self):
    self.Var = 0
    print "Var = %d" % self.Var

    root = Tk()
    app = App(root)

  3. Loop in a separate thread (similar to Tkinter variant) - I came up with this idea before finding other better solutions: if the loop is running in a separate thread then user still has access to the main program from keyboard and hence can control the loop too:
    import threading, time

    class LoopThread (threading.Thread):

    Value = 0
    Counts = 0

    def run(self):
    print 'Loop is started'
    while self.Value != 10:
    self.Counts = self.Counts + 1
    print 'Loop was ended, Counts %d' % self.Counts

    def getVal(self):
    return self.Value

    def setVal(self, Val):
    self.Value = Val

    # Create the object
    MyLoop = LoopThread()

    # Start the thread

    # Send the loop termination value from
    # the main program whenever you need
    A disadvantage of this approach is that the loop thread can not use the terminal window since the main program needs it for input from a user. If it is about logging information in the loop - then the info should be saved into a file, for example.
If you know any other solutions - please, share your experience.

Sunday, November 8, 2009

Doorway Chin-Up Bar Modification

A sound mind in a sound body... Keeping it that way is a big job especially for those who spend most of the time working with computers, but I'm still kicking. About a year ago I bought a doorway chin-up bar which had some imperfections I found possible to fix.

The exact item I bought at is not in stock any more, but there are many other similar pull-up/chin-up bars available from different manufacturers. For instance:


They may come in different quality and price and it is difficult to suggest any particular one without trying. I usually rely on reasonable comments from other buyers. As a reference - I got my chin-up bar for about $40...45 and it has been working well for all the time.

To my point of view there are two main drawbacks in the construction of the most of these chin-up bars:

  1. They have relatively short and narrow plank which goes against the wall above door. With a body hanging and convulsing on the bar, the plank applies too big pressure to the wall and leaves marks. To resolve the issue it is necessary just to make the plank a little bit longer than width of doorway. Also in this case the plank will rest on three vertical wall studs, not just one: the first one is in the middle above door and other two - at doorway sides.

  2. For my height I'd like the chin-up bar sitting in the doorway as high as possible and it is feasible - it's just necessary to screw properly the plank (or "wall bar") to the rest of the chin-up bar assembly.
Just to illustrate the idea I have drawn the original and the modified chin-up bars:

For those who wonder: all the parts and assemblies were done in Alibre, a mechanical 3D CAD tool, and printed out into 3D PDF, so one can click the image and get 3D control over the part. Whole collection of the Alibre files for the assemblies can be taken from here.

While it is easier to do accurate mechanical drawing with a 3D CAD software, SketchUp is more convenient for quick modeling. I've uploaded the models to 3D Warehouse: the original bar, the modified one and comparison between the both chin-ups on doors.

In practice the task is pretty simple:
  1. Buy a piece of wood: width is about 1 cm smaller than the gap between top door casing and the ceiling, slightly longer than door horizontal dimension, and the same thickness as the original plank (in my case the new plank was 94cm x 14cm x 2cm).

  2. Position the new plank in the proper place above the door, temporarily secure it there, for example, with masking tape - do not let the wood fall on your head!

  3. Then position the chin-up bar assembly without the original plank - ask someone for help to hold it in place for a while. Mark the location of the mounting holes on the plank, then drill the holes: make them of "counter drill" type to hide screw head below the plank surface.

  4. Assemble the chin-up bar, add some soft material to the side of the plank which faces the wall to protect it even more (I put some thin packing foam material).
That is what worked for me. Total cost for the improvement was some time + 49 cents for the wood - what is incomparable to usefulness of the modification and the fun I had doing that.

One more thing - for doorway mount I really like this type of chip-up bars and would not recommend any other "simplified" versions. Amazon has some available of the right kind - you can look though the search results:


Saturday, November 7, 2009

Zimbra - Perfect E-Mail Client for Perfect People

It is common to use a separate e-mail account for each separate activity: work, home, hobby, web subscriptions, etc.. So happened that some of accounts I have at Yahoo and others at Google.  Neither Yahoo nor Google allows simultaneous access to multiple accounts. So I've been thinking for a long time how convenient it would be to have alive connections to all my web e-mail accounts from one place at the same time. Another problem with Yahoo - no support for IMAP (they offer POP3 for $ Mail Plus, but I don't even want POP3). Now solution for both the issues is available - it is Zimbra Desktop.

An attempt to install zdesktop_1_0_3_build_1691_win32.exe failed with a strange error, so I installed previous zdesktop_1_0_build_1537_win32.exe then allowed it upgrading to version 1.0 build 1593 - flawless.

I registered all my Yahoo and Google accounts in Zimbra Desktop and tested them - result is remarkable:
  • All accounts are in simultaneous access as expected.
  • Working from Zimbra Desktop is the same as if it would be from the web-account - all changes applied in the Desktop are properly reflected on the web-account and vice-versa.
  • Somehow Zimbra has true IMAP access to Yahoo free accounts - it's probably become possible because Zimbra is actually Yahoo Zimbra.
  • Zimbra enables IMAP access to Google e-mail accounts and it works fine too.
  • Zimbra provides an access not only to inbox but to all existing folders in the account.
  •  It can work with many other types of accounts as Hotmail, AOL, POP3, IMAP, etc.:

  • Zimbra has many other features which I don't need yet but I'm considering them interesting for the future.
  • Available for Linux and Windows.
I tested it on Yahoo and Google accounts - Zimbra gives a transparent control over e-mails as if you would be really logged in the web-account. Amazing!

The only inconvenience I faced with Zimbra Desktop is that it relies on computer account security, but the issue is related not to the program itself but to a user perfection and I am apparently not such one. So if you have not established a separate password protected account for every member of your crew, your parrot and your wooden leg, then Zimbra Desktop can be started by someone with access to the computer and all your e-mail accounts will be exposed whether you like it or not. I personally didn't want to change the sin way what got settled on my desktop PC - that's why I simply installed Zimbra on a virtual machine with all passwords and I run it only for myself.

Potentially, in order to satisfy imperfect people as myself, the issue could be easily fixed by adding a "user logon to Zimbra" with loading a corresponding account profile... but probably that would be too much to expect from Zimbra developers: Zimbra Desktop is already a great useful program.

It should be said that Desktop is just one application among many what Zimbra offers. The main product is Zimbra Collaboration Suit. It comes with different flavors and prices from the free Open Source Edition to the Professional Edition - check out their web-site for details.

Thursday, October 29, 2009

List of PCI and USB Devices - Linux and Windows

Sometimes it's necessary to check devices installed on a PC. In Linux it is quite simple - command

$ lspci -h

gives out available options for listing PCI devices.
For example,

$ lspci -nn

shows up both textual and numeric ID's.

There is a similar command for USB devices:

$ lsusb -h

For the same purposes in Windows there is a nice program devcon.exe - it can be downloaded from
For instance, command

> devcon findall PCI*

lists all PCI devices. The following command shows up all PCI devices with assigned system resources:

> devcon resources PCI*


Sunday, October 25, 2009

Free Web Storage for Files

Sometimes it's necessary to add a download link to a file related to a post or embed a doc in. The simplest way would be to store files in a place like web-site directory which usually comes with Internet connection from ISPs (Internet Service Provider), but my ISP gives out only 10 MB for that purpose what is not too much. I checked out some of web file storage hosts and found that most of them have serious limitations.

My wish list of features would be the following:

  • Personal account on the host to have control over files;
  • "No delete" after certain period, my files should be stored forever unless I delete them myself;
  • Storage capacity should be more than 1 GB;
  • Public sharing should be available - many hosts limit their file storage to personal use only;
  • Files should be accessible via direct link - that would give a possibility to embed the files into a web page;
  • All those for free of charge would be nice too.
It is not easy to find a web-hosting which would meet all of the wishes, but there are some pretty close I've managed to find:

  1. ADrive - with the free basic subscription stored files are kept forever but public sharing (links to the files) expires in one month. This limitation was not very clear from their description of service, only when I made a file shared it showed such a notification. Also a share link from public domain leads to a page with "Download" button but not to the file itself, so embedding is not possible.

  2. MediaFire is pretty similar to ADrive besides there is no limitation in time for sharing link. A sharing link leads to a "Download" page - same as ADrive, their "Download" page shots out a pop-up every time you're there.

  3. FileFront is another one of the same kind, but its target group is gaming audience.
Those sites represent the same approach for free file storage. As declared these services really work for those who wants just to transfer files to others or to store personal files, but unfortunately it is not possible to get direct link to stored files.

  1. HotlinkFiles was recommended by some people and as the site name suggests it supports direct links. The site has been giving out "too many connections" error for pretty long time, now its response is more informative: they claim been "under attack from malicious hackers that have managed to destroy a large portion of user database". That sounds sad and reveals the danger of storing your info in one place - let's wish them good luck to recover quickly from the disaster.

  2. It seems that a real solution for file-hosting comes from web-hosting services, so I ended up with Google Sites. It's appeared to be a well working variant and I don't see any drawbacks so far. 10 GB of storage per account, direct sharing links, etc. - you can check the list of features.
    To get direct link to a file just copy the address from Properties of the Download link from the Google site page, then paste it into a web browser address field and press Enter - it will show the file and its address will change, this changed address I use as a direct link to the file. As an example below is an embedded PDF - a copy of the Google Sites Overview page:

As a quick update I'd like to add some more sites (I have not tested them yet, I hope I'll do it in the next round of search for file hosting services):
  1. Thanks to the visitor suggested - with free account you can get there 2.5GB of storage space with 7GB bandwidth.

  2. MyDataNest seems to be an interesting file hosting site. Basic free account gets 2GB of storage and 20 GB of monthly transfer.
I'll keep updating the post with fresh info - it would be interesting to hear suggestions regarding the topic - please, share your experience.

Saturday, October 10, 2009

Mixed Windows & Linux Network - Free Remote Desktop

Having some computers with Windows and others with Linux makes remote desktop access from one computer to another slightly more complicated. Here is what I found as a working solution.

  • From Windows to Windows connection - UltraVNC. It has viewer and server, 32 and 64-bit XP and Vista compatible. It works fine with hardware and virtual Windows machines and any edition (Microsoft remote desktop is not available for the cheapest versions as Home, Basic, Premium).

  • From Windows and Linux to Linux - NoMachine NX. They offer Windows and Linux viewers for free, Linux server is free as well. I used NX viewers and servers on hardware and virtual Linux boxes with KDE, on Debian and Ubuntu all work very good.

  • From Linux to Windows - I found Remote Desktop Connection (krdc) already installed on Mepis 8.0 and used UltraVNC server on Windows side. In krdc connection request: vnc:/IPAddress:0

VNC and SSH protocols should be enabled in firewalls on both server and client/viewer sides.

Friday, October 9, 2009

Free SketchUp 7.1 without 2D DWG and DXF Import - Ways Around

Recently the new SketchUp 7.1 was released. The most negative surprise from its free version is that import of 2D drawings in DWG and DXF standards has become impossible. Now this option is available in Pro version only.

It was a strange decision of Google to strip off the option:, but anyway there are some ways to deal with it:
  1. It seems Google feels that they have done something bad and to sweeten the pill a little bit they are offering optional temporary plug-ins: one for Windows and another for Mac... But it can not last forever and with the next version most likely the option will be gone completely.

  2. One of possibilities is to keep an old working Sketchup version around. It can be kept on a hardware computer or on a virtual one. The former costs more as Hardware + MS license, but it should be fine if there is one extra Windows box around , the latter - is just for MS license (I don't know the deal with Mac). It's a pity there is no Sketchup for Linux, so the only option is to run it under Linux with WINE - some people say that it works.

  3. Use another program to import DWG and DFX and then convert it into SketchUp file. I know one such program - Alibre. Alibre is a true dimension/parameter driven 3D mechanical development tool (SketchUp as we know is not) and there is a free Xpress version offered. The free version has some limitations as 5 unique parts in assembly, for example, but it still enough for a small project. I actually prefer to use Alibre for part and assembly development and then if needed I export design to SketchUp format. For the exporting there is a plug-in for Alibre called Alibre3DPublisherForGoogleSketchUp.exe. The bad news is that Alibre stopped providing the plug-in for download from its site officially and seems they do not want to support this option in the future, but it is still available from Alibre FTP libraries:; the good one is that the plug-in is still working fine with the new 12.0 version of Alibre.

Comodo's cmdagent.exe Seized CPU - Bad Virus Database

This week Comodo stepped on a rake. They released a new virus database and cmdagent.exe service went completely crazy: it took about 100% of CPU time and made computers totally useless.

The cure was to start computer is Safe mode (press F8 during boot) and copy the installation default virus database bases.cav from
C:\Program Files\COMODO\COMODO Internet Security\repair
to the working directory
C:\Program Files\COMODO\COMODO Internet Security\scanners
then update the database again to the corrected new version.

Comodo had the problem rectified pretty quickly but still those who got into the trouble had to apply the fix manually. Hopefully it was the last time when Comodo accidentally released not completely tested update and they will be more careful in the future.

Sunday, October 4, 2009

C and C++ Compiling in Linux - Get It Ready

Not all Linux distributions are ready for C and C++ compilation right after installation. Some of them are missing compilers, others - some basic libraries. I decided to write the note how to make it working.

Create a new directory for the tests and save a file HelloWorld.c in it. The file has the following content:

#include <stdio.h>

main ()
printf ( "Hello World!\n");

On Mepis 7.0 machine cc and gcc C compilers were installed:

$ whereis cc gcc
cc: /usr/bin/cc
gcc: /usr/bin/gcc /usr/lib/gcc

but attempt to compile the C code ended up with an error :

$ cc HelloWorld.c -o HelloWorld_cc
HelloWorld.c:1:19: error: stdio.h: No such file or directory
HelloWorld.c: In function 'main':
HelloWorld.c:5: warning: incompatible implicit declaration
of built-in function 'printf'

The missing "stdio.h" library comes with the "build-essential" package. Mepis has Synaptic package manager - start it and install the package. After that compilation passes through without an error:

$ cc HelloWorld.c -o HelloWorld_cc
$ ./HelloWorld_cc
Hello World!

$ gcc HelloWorld.c -o HelloWorld_gcc
$ ./HelloWorld_gcc
Hello World!

Mepis 8.0 did not have a problem with C program, but neither c++ nor g++ compiler was installed:

$ whereis c++ g++

gave out nothing. With a package manager (again Synaptic in my case) install the compiler(s). After that "whereis" can find them:

$ whereis c++ g++
c++: /usr/bin/c++ /usr/include/c++
g++: /usr/bin/g++

Create HelloWorld.cpp C++ file:

#include <iostream>
using namespace std;

int main ()
cout << "Hello World!\n";
return 0;

Compilation is successful with the both compilers:

$ g++ HelloWorld.cpp -o HelloWorld_g++
$ ./HelloWorld_g++
Hello World!

$ c++ HelloWorld.cpp -o HelloWorld_c++
$ ./HelloWorld_c++
Hello World!


Saturday, October 3, 2009

Finding in Linux (bash shell)

I'd like to put in the list some useful commands for finding things in Linux environment.

  1. apropos keywords - searches through manual descriptions for the keywords. Say, we are interested in commands to find anything:

    $ apropos find search look locate match

    what gives out a list of related commands with short helpful description. On my Mepis 8.0 virtual machine it shows the following lines among others:

    apropos (1) - search the manual page names and descr...
    look (1) - display lines beginning with a given string
    find (1) - search for files in a directory hierarchy
    grep (1) - print lines matching a pattern
    kfind (1) - KDE find tool
    locate (1) - list files in databases that match a pat...
    rgrep (1) - print lines matching a pattern
    whereis (1) - locate the binary, source, and manual pa...
    which (1) - locate a command

    apropos will work only if manuals are installed - usually they are, but sometimes for the sake of resource saving manuals can be omitted.

  2. find is a very powerful command for searching files in directories:

    $ find startdir -name filename

    Different options allow to search for files by name, size, type, permission, owner, etc. - check manual and help:

    $ man find
    $ find --help

  3. grep searches for a pattern inside text file:

    grep "pattern" filename

    Example of finding files and then find a pattern inside the files:

    $ find /home/svn -name "test*txt"|xargs grep "first" -i
    The first line of the test file.

    There are some variations of grep as fgrep, rgrep, egrep, bzgrep, etc. - check it with "apropos grep".

  4. kfind is a GUI version of find with grep - it can search for files and pattern inside files.

  5. look prints out strings beginning with a pattern from a file:
    $ look pattern filename

  6. strings prints out all strings from a text or binary file:
    $ strings filename

  7. whereis locates different type of files. For instance:
    $ whereis find
    find: /usr/bin/find /usr/share/man/man1/find.1.gz

  8. locate searches for files in databases (it gives out all files with names containing given keyword):
    $ locate find

  9. which search for executables and shows up the whole path to directories where the files are found:
    $ which find


Thursday, September 17, 2009

Firewalls for Windows - Free for Personal Use

I've decided to write in the post about some of my experience with different firewalls for Windows. I needed a firewall with such features as easy and detailed management, possibility to work via remote access with hardware and virtual computers, for both 32- and 64-bit Windows versions, XP and Vista. Here are what I used and my impressions from that.
  1. Windows firewall comes along with both 32- and 64-bit OS versions. XP firewall does not control outbound traffic what is not acceptable for me, Vista firewall does, but its setup is a nightmare - it does not show what process is really sending something out. Since it is not clear what is going on and corresponding rules should be defined manually it appears very difficult to set up the firewall. From what I read, Microsoft put a proper control over the firewall into Windows Live OneCare and there was a hope that soon it would become free of charge, but it is still not - the price is $49.95.

  2. ZoneAlarm is very easy firewall to deal with. I've been using it for a couple of years. It shows outgoing processes and asks whether you want it to be blocked or pass through, once or forever - this is the very right way for firewall to help in setting the rules. At present ZoneAlarm seems to have a free for personal use firewall with both 32- and 64-bit versions for Vista, XP still gets it as 32-bit only: ZoneAlarm disadvantages are:

    1. not very detailed rule settings;

    2. a firewall alert window is not clickable via VNC remote session, what made the remote session very conditional – if firewall shows an alert it is necessary to go to that specific computer and click the firewall pop-up window button.

    Because of those drawbacks I decided to move to another firewall about a year ago.

  3. Comodo - I started using Comodo about a year ago when it was a firewall only (now it comes along with antivirus and defense). I needed more control over the function than I could get from free Zone Alarm and Comodo offered that. Later, when I got a media-PC with Vista x64, Comodo again was one of not many free for personal use supporting 64-bit Windows and the most advanced and rich one among them in features and depth of control. To be honest, at that time Comodo had two main disadvantages from my point of view:

    1. It was too annoying - it required confirmation for every step of a process carrying out. It was educational to see what is going on under the hood, but so many alerts were pretty disturbing (although after setting a permanent rule, of course, it calmed down);

    2. Somehow it blocked remote NX session from one network computer to a virtual Linux computer running on another x64 Vista network machine (pretty specific case I think, but I needed that). Everything like Internet and local network access from the virtual computer was working fine, but not the NX session - and it was the Comodo firewall on the Vista host which blocked the connection.

    That was in the past, the current versions are free from the both of the drawbacks and work very stable on my different Windows computers: 32- or 64-bit OS, different hardware brands; there is no problem with NX or any other type of remote access to hardware or virtual machines I use.

  4. Sphinx - I used it at the time when Comodo had the problems I described above and there were very limited number of available 64-bit firewalls free for personal use. Sphinx was one of them. As its description suggests Sphinx is not a complete firewall, it is a control over the existing Windows firewall and Sphinx compensates the lack of management in it: Sphinx generates pop-up alerts for traffic and sets the firewall rules according to a user choice. It's a pity the rule settings in the free version are very poor: just "Allow" or "Block", all rules are in the same general zone - more detailed control is available only with the commercial version of Sphinx. Nevertheless it did the job.
Nowadays much more firewalls are available for free for personal use: Ashampoo, PCTools, Outpost, etc. - just search. The choice of x64 versions has become better too. Some of them, Comodo, for example, come in a bundle with other protection tools as antivirus and malware defense. At present I put Comodo in charge of security on all of my Windows computers and it seems it's doing the job very well: I have not noticed any system or application slowdown, antivirus is a little bit too alert in "Heuristic" mode (jumps up on some of safe programs), but it's a rare case and it can be easily pacified. Comodo also offers commercial versions of firewalls and many other network security products for different cases - if interested you can check it out following the sponsor link:

Comodo Internet Security Pro

Saturday, September 12, 2009

Add Atom and RSS Feeds to Blogger Template

Atom and RSS are two similar methods of web content syndication. The idea of feeds is not to check all web sites of interest one by one, but automatically collect updates from them with one tool called "feed reader" or "aggregator", so feeds can be considered as an advanced alternative to bookmarks. Subscribing to feeds really helps to save time and stay informed. Blogger supports both Atom and RSS feeds.

The truth is that nowadays web browsers can work directly with feeds, so a special program is not really needed. For example, Firefox shows available feeds as an icon in the end of the address field:and Internet Explorer - in the Command Bar: Click the icon to open available feeds from the web page, choose the one you prefer and that will take you to a subscription page. Firefox can save a feed as a "live" bookmark which references not just a website at whole but each article individually from it. IE puts it under tab "Feeds" in the "Favorites" window.

While it is possible to subscribe to the feeds directly from a web browser it is still can be good for the sake of convenience to add them to a web page. Blogger has some variants of the feeds - Blogger Help describes them in the "Blogger Feed URLs" article.

For instance, I decided to put Atom and RSS full site feeds in the right top column along with the "Bookmark and Share" button. In Blogger layout all the three buttons are sitting inside one HTML/Javascript gadget - you can check the source of the page to see how it looks like as code.

For more information a great description of Atom and RSS can be found in Wikipedia.

Monday, September 7, 2009

Big Green Egg BBQ Rib Eye Steak - For a Few Dollars More

Rib eye is the king of all steaks - great taste and great look, cooking is easy and not very different from, for example, the pork steaks, but result is a true poetry.
Rib eye is the king of all steaks - great taste and great look, cooking is easy and not very different from, for example, the pork steaks, but result is a true poetry.
  1. From what I heard: when you come to a store the best rib eye pieces have been already taken by restaurants and what you can choose from is just remains - but that can be a conspiracy rumor :) This time I've got reasonably good looking chunks.

  2. Wash the chunks gently in cold water, salt and season them.
  3. For cooking rib eye steaks the temperature should be high, so clean up the BGE from ash and small pieces of charcoal which can block air flow to pass through and load it with middle and big size charcoal pieces. Start fire in the center of Big Green Egg.

  4. Let temperature reach 600F

  5. Then drop some smoke chips on the charcoal if you like and put rib eye chunks in the center of the grid right over the hottest area.

  6. Let the meat get nice grid marks on the bottom side and then flip the pieces to another side.

  7. Repeat the step #6 two more times. For the last time place the chunks at periphery of the grid (away from the hottest area) - that will finalize the cooking. I prefer to have a reliable reference for internal meat temperature - cooking thermometer does the job for me.

  8. Close the BGE top cover and wait when the temperature inside the meat get reached a desired value. Cooking thermometers usually have settings for the corresponding tastes, mine has presets for beef as
    Rare      140F
    M. Rare 145F
    Medium 160F
    Well Done 170F
    I prefer medium.

  9. Just great!


Sunday, September 6, 2009

Switching to Netflix

About two months ago when my cable TV bills successfully broke through the $100 barrier and kept climbing up I started thinking about an alternative. I am rather a movie than a TV guy and I don't like to coordinate my time with the TV schedule. For the news I switched to the Internet a long time ago, so I did not really need the TV. Then Netflix caught my attention. I've heard about the company before, but it was mentioned mostly as a "DVDs by mail" service. Now they have a superior addition - internet streaming and that actually turns Netflix into a very attractive choice.

They still define the service as "DVDs by mail" for the first and streaming for the second, but from my interests streaming is the main feature and DVD is a great addition. For about $10 per month Netflix provides unlimited streaming and 1 DVD by mail. Streaming video quality with 5Mb/sec internet connection is on the level of regular standard definition (SD) TV or slightly higher which is satisfactory for me. With faster connection speed, as they say, quality is supposed to be better, but I did not check it. So my approach with Netflix is to order really spectacular movies on DVDs and watch everything else I like via streaming.

I've been with Netflix already for more than a month and my impressions are all positive. I can see many Netflix' advantages over TV:
  1. No schedule - watch when you want and as long or short as you want.
  2. Rich collection of movies and shows for streaming and it keeps growing. I would wish to see everything available via stream and I hope this is the future.
  3. DVD collection is huge.
  4. Both DVD and online collections have many movies from around the world - it's rare when you can catch an interesting non-American movie on American TV.
  5. Getting more for less money: with Netflix it is Internet from an ISP for $30 + Netflix itself for $10 per month; with cable TV and Internet bundle it is more than $100.
From all those above I was pleasantly surprised how rich Netflix's DVD and online collection is. I finally watched the beginning of "The Sopranos" (DVD), TV shows "Weeds" and "Lost" (both via stream), movies like Buñuel's "Un Chien Andalou", Antal's "Kontroll", Tykwer's "Lola rennt"... I'm going to make a list of my favorite movies and shows and indicate their availability at Netfilx.

Subscription to Netflix is very simple, no contract, they offer 2-week trial period for free - just be sure that you have proper equipment ready for streaming. In my case I have a media-PC running Microsoft Vista, I prefer to watch Netflix with MS Media Center, another possibility is MS Internet Explorer (but both work very well).

Saturday, September 5, 2009

Samsung Home Theater HT-X40 - Shut Down on Protection Problem

A couple of days ago my Samsung home theater HT-X40 started periodically shutting down with "Protection" message. Resetting by the "Stop" button pressed for 5 seconds made it forget all settings but did not fix the shut down problem. From the cool start it took about 20 minutes until it switched off for the first time and 2...3 minutes after re-powering while it was still warm. That behavior clearly indicated a problem depended on heating.Disclaimer: Repairing electrical and electronic devices requires corresponding knowledge and skills and should be done by qualified professionals only. Electrical devices are sources of different hazards - electrical shock, skin burn, fire, etc. A DVD laser is a source of different hazards including eye, skin, fire hazards. This post is just a description of the problem in my particular case and not a recommendation for anybody on what to do and how to fix the problem whatsoever. The description is provided for informational purposes only, I bare neither responsibility nor liability and do not accept any claims for any injury and damage on your side.

A couple of days ago my Samsung home theater HT-X40 started periodically shutting down with "Protection" message. Resetting with "Stop" button pressed for 5 seconds made it forget all settings but did not fix the shut down problem. From the cool start it took about 20 minutes until it switched off for the first time and 2...3 minutes after re-powering while it was still warm. That behavior clearly indicated a problem depended on heating.

A promising thing was that all speakers were working fine every time when the theater was on. The fan on the rear side was working OK, air flow was relatively hot, but it was difficult to judge by that. Testing the speakers did not show any problem - each of them had normal resistance about 6 Ohm. Inspecting situation inside the theater I found the following problems on the speaker driver board (marked correspondingly in the following picture - click to see it in whole size):
  1. the output driver heat-sink was very hot,
  2. inductors corresponding to the central speaker were untouchable (burning hot),
  3. 0.47 uF x 100V filtering capacitor in the central speaker channel had a visible crack on its body.
Test of the unsoldered capacitors clarified that 5 out of the 6 caps had good insulation (infinite resistance at 20 MOhm multimiter range) and only the one with visible crack showed 12 MOhm under the same measurement conditions. Each of these capacitors is connected between the two wires going to the corresponding speaker (in parallel to the load). It was probably happening so that under higher temperature insulation resistance significantly dropped down from the 12 MOhm to a value comparable to the main load, in its turn that increased the temperature more. The temperature kept increasing until the protection switched off the power.

For the first step I decided to exchange only that obviously broken capacitor and see if any other problem would surface after. The original capacitor was 0.47uF, 100V, film type:

I was lucky to find a cap of 0.47uF, 250V, same film type in an old modem. This is the board after replacement:

I intentionally distanced cases of the capacitors from the inductors on the board, because the inductors could be that heat source which helps to damage the caps. Since I had assembled everything back together the home theater has been working normally. In addition I increased the gap under the home theater by sticking 4 pads usually used on furniture legs to protect floor from scratches:

Temperature of air flow from the back panel fan has become significantly lower comparing to that time when the home theater was failing.

Technical Note
From many comments I can see that there is an interest in deeper technical details related to the problem. Here are some useful references:
  1. Class D Amplifier describes principals of operation;

  2. Class D Audio Amplifier Output Filter Optimization - the application note explains why output LC filter is required (in the beginning of "Output-Filter Design section). The reason is EMI (electro-magnetic interference).

  3. 2 x 210 Watt STEREO DIGITAL AMPLIFIER POWER STAGE - datasheets for TAS5162, power amplifier from Texas Instruments with examples of typical schematics. It is probably not the exact power amplifier by part number from the Home Theater, but it's of the same class-D.

Long story short: Nowadays most of audio power amplifiers utilize Pulse Width Modulation (PWM), so called class D amplifiers, because of very good about 90% efficiency. PWM uses higher frequency Fpwm (100kHz and higher) comparing to the sound frequencies and the pulses have fast edges. That's why the output signal besides the sound frequencies also has Fpwm and bunch of its harmonics. The output low-pass filter (here built as passive LC) is needed to block Fpwm related frequencies inside the box - without the filter the wires going to speakers will irradiate these frequencies and may interfere with other electronic devices. Say, without such a filter you would still hear correct sound (probably with unnoticeable distortions), but some electronic equipment around can be affected (anything with "wireless", "radio", "sensitive", "low noise" characteristics is in the list).

I hope this technical note can help to understand better what's going on there and how to deal with the problem.

I'll keep updating the post.

Sunday, August 30, 2009

SketchUp - Changing Dimensions

SketchUp is a nice free program from Google for 3D modeling. It is very intuitive, easy to use for the most of it, however there are still some not that obvious operations like, for example, changing dimensions of different shapes to exact value.

The fist what should be said is that SketchUp model is not driven by dimensions which are setup by "Dimension" tool - those dimensions are just text and arrow objects, so one can click the text and change it to any other text not even related to any dimension. Furthermore, in most cases you really do not want to modify them this way - such a change will kill the possibility of the dimension value to track the true size.

The unpleasant thing about changing dimensions is that it should be done different way for different shapes:
  1. For a line segment - right click on it and choose "Entity Info"

    Type a new value in the "Length" field, hit "Enter" and that will make the change.

  2. For 2D shapes - select a 2D face with "Scale" tool

    then select a green box which corresponds to the dimension you are intending to change

    The "Red Scale" field ("red" indicates that the scaling is along the red coordinate axis) in the right bottom corner of the SketchUp window by default is in scale mode. Just type a new exact dimension with a unit (1m in this example)

    and press "Enter" - the dimension will change and the value will follow.

  3. For 3D shapes (mostly the same as for 2D case) - with "Select" tool select a whole shape

    switch to "Scale" tool

    and select a green box corresponding to the dimension you're going to change.

    Type a new exact dimension with a unit (1m in this example)

    and press "Enter" - the dimension will get changed.
For more complicated shapes it is easier to create a reference at required position and then modify the shape with "Move", Push/Pull", "Scale" or other tools to align with the reference. A simple line segment, a guide line or a guide point (created with "Tape Measure" or "Protractor") can serve as such a reference.