Setup the 6 configuration pointsName: The name for your custom search engineDescription: A longer descriptionKeywords: These are the keywords that pages that have them will be promoted in the search results. For example if you wanted to promote FAQ for your documentation search engine, the docs with FAQ will rank higher in the results.Sites to Search: the urls of sites you'd like in your search engineHow to Search: Whether or not you'd like to include the 'internet' in the results or exclude it.Contributors: Whether or not it is a collaboration

Hit the Next button and you have your custom search engine. The following page is simply to let you try it and to confirm it was created.

Going into the control panel for these sites you will find additional options like updating the look and feel, refinements, adding sites, code to be able to inject this custom search engine in a site, etc.

This ability to create these custom search engines and have them on our sites will be a big step. We now can filter the contents according to our suggestions. I think the opportunities will only be limited to our imaginations.

On that note, I wonder if there is an API. Imagine tweaking a 'search' dialog on the fly to the specifics a page or according to user selection?

Monday, October 23, 2006

Inspired by my wife's difficulty connecting to the internet due to new security policies at her organization, I decided to try a proxy to allow her to use Windows Live Messenger.

The Linux SOCKS proxy server implementation these days is made under the name DANTE. Their site is here.

In Gentoo it is in our Portage Tree so the step-by-step is here:

emerge dante

edit the config file (/etc/socks/sockd.conf). Open that file in your favorite editorIt is in this file logging is enabled via the syslog mechanism and internal and external addresses are bound. Whereas the internal bindings include a port specification, the external one does not.The comments are well formed I'd also spend a little time looking them over.

The details:

logoutput: syslog

internal: eth1 port = 1080internal: 127.0.0.1 port = 1080

external: 1.2.3.4# orexternal: eth0

To achieve full access (no username/password).

method: username none

# Not using authentication, so unnecessary#user.privileged: proxy

user.notprivileged: nobody

The access controls for sockd daemon are last. They are checked against in the order they appear in the configuration file. Notice, don't open your proxy server to the wild world - you've been warned.

The first three directives control which IP ranges that have accesss to the server.- The from: is were the details of the IPs are added. In my cause it is the IP space the clients live in.- The to: option is one of the IPs the proxy server is bound to that the given IP range can speak to. It is set to the addresses Dante/sockd is listening on.The last of the three drops any requests that don't match either of the first two directives.

client pass {from: 192.168.0.0/16 port 1-65535 to: 0.0.0.0/0}

client pass {from: 127.0.0.0/8 port 1-65535 to: 0.0.0.0/0}

client block {from: 0.0.0.0/0 to: 0.0.0.0/0log: connect error}

The next four configuration points control who 'routing'.- Requests from anywhere to the loopback addresses are dropped.- From the loopback addresses and 192.168.0.0/16 are allowed to communicated over tcp or udp protocols.- Finally, drop everything else.

block {from: 0.0.0.0/0 to: 127.0.0.0/8log: connect error}

pass {from: 192.168.0.0/16 to: 0.0.0.0/0protocol: tcp udp}

pass {from: 127.0.0.0/8 to: 0.0.0.0/0protocol: tcp udp}

block {from: 0.0.0.0/0 to: 0.0.0.0/0log: connect error}

Start Dante/sockd.

sockd -V // this verifies configuration and exitssockd -d // this enables debugging to the console.

if you'd like sockd to start on the default runlevel:rc-update add sockd default

Next would be configuring your browser and test this. Using IE configure it to use a proxy server and enter the server name port (1080), close the browser. Restart the browser and request a page. If it works, then great move on. Otherwise you'll start to debug (inspection of /var/log/* time).

DESCRIPTION Gentoo's init system uses named runlevels. Rather than editing some obscure file or managing a directory of symlinks, rc-update exists to quickly add or delete init scripts from different runlevels.

All scripts specified with this utility must reside in the /etc/init.d directory. They must also conform to the Gentoo runscript standard.

Saturday, October 21, 2006

My wife found that the Washington State Department of Transportation started creating traffic flow maps for mobile devices for the Greater Seattle (Puget Sound) area. One problem though, the page layout isn't ideal for most of our commuting; the maps are split across our routes. Downloading two pages on your blackberry? No thanks.

The solution? Build our own HTML page that references the all the small images so all of the images are loaded with one page. Then create links to the other reference pages such as the travel times.

Do you want to use our Seattle traffic flow maps for mobile or wireless devices? Just use the link you like better:

download SeqDownload - This utility allows you to schedule and automatic download of an image file

Install SeqDownload

Configure SeqDownload

Run SeqDownload

Click the Run at Startup, Click the Run In System Menu

Click New (for a new scheduled download)

Configure the URL (for Seattle: http://images.wsdot.wa.gov/nwflow/flowmaps/videomap_Seattle.gif) the link - Pick a New folder to download images into (c:\traffic\download)- Pick a time frame to download image (5 minutes?)- Select save to the same filename everytime- Pick the length of time for this downloading (1 year?)Press Create New Item

Setup the Window XP Screensaver to use this folder, of one image, for its Slide Show

What we are interested in here is verifying a Blogger site (ONE!). So here is how to do that.

** Google Webmaster Tools Verify your Blogger site. **

(1) Control your blog site through Google Webmaster tools - login/signup for Google's Webmaster tools and add your blogger site *****.blogspot.com(2) Click on the Verify link(3) Choose Add a Metatag - note the META tag information(4) In New Tab (Browser): Login to your Blogger account. Click on your blog of interest and click on the template tab. After the < >> tag paste in the META tag information as found in step (3)(5) Republish your entire blog.(6) Go back to the Google Webmaster tools - Click Verify. You are done and your blog has been verified. The next step you'll want to do is add a sitemap.

Wednesday, October 11, 2006

I just googled this "port forwarding remote desktop putty" and just realized this is easy. I am remote desktop'ing' from windows machines outside of my home network into my home LAN into my Windows XP machine. PuTTY and openSSH can make this easy, maybe even ultra easy!

Prerequistes:

A server running SSH (openSSH?) - of course this is a Gentoo Linux server at my house but it doesn't need to be. * Configuration for this is outside the scope of this blog.

Setup the Tunnel Port Forwarding in puTTY.- Click on the Tunnel. (configure the Tunnel configuration)- Enter a source port, this is the port on the local machine, 3390.- Enter a Destination IP or name and port number of 3389 using a colon separator character. An example is for a Remote Desktop session to the PC machinewithRDP.- Click the Add button- Repeat for other hosts- Click on SSH (configure the high level SSH)- Turn on compression- Use only SSH 2- Click on Session (configure session)- Save your settings

Connect to the SSH server with your username/password

Start up Remote Desktop- use the address of the port you setup in puTTY. localhost:3390- click Connect

I just bumped into something I've never done before but think is really cool. Tunnelling HTTP/Port 80 traffic through SSH.

A scenario that is valid for me. I would like to view a intranet website that is behind a firewall/router. The website isn't meant for public consumption, but for myself. For instance the D-Link Wireless router DI-724DU configuration page for my home network.

What you need:(1) Server servicing SSH -- in my case a Gentoo Linux machine running SSHD and configured correctly). Reference name: remotehost.remotedns.org(2) The DI-724DU (or some other router with port forwarding functionality). Reference name: di724-192-168-0-1 (192.168.0.1 is the default ip)(3) The SSH port being forwarded to the above named server .(4) A SSH client -- for me openSSH on an VMWare server with Gentoo on it (outside of my home LAN): Reference name: host.outsidenetwork.com

On the VMWare Gentoo Linux machine that is outside of my home LAN simply type:(1) ssh -L 2022:192.168.0.1:80 username@remotehost.remotedns.org where 192.168.0.1 is IP of the router di724-192-168-0-1(2) Enter the username's password on the remotehost.remotedns.org machine(3) Start a browser on host.outsidenetwork.com. Enter http://localhost:2022.

I admit the following only: their website interface isn't completely smooth. I know what I wanted and for some reason the sitemeter site didn't lead me to it immediately. Maybe they need a step-by-step for the I-am-too-busy-to-read soul?

'Which network drivers to compile into the kernel? ' This has been a common question of mine theme over many years of using Linux. From Slackware of 1996 days to last month when I rebuilt the kernel on my Gentoo Linux server. I don't compile the kernel often, and in the months between it happening or when I bring up a new machine and I didn't remember which adapter I installed the week before, etc.

In the past this brought me to the following(1) Non-optimal - Open up the computer case, physically inspect the network card(2) Non-technical - Label the back of the Ethernet Adapter card with the vender/model(3) Latest - run the command: lspci | grep Ethernet

lspci - List all PCI devices

Note this could also remind you of what video adapter is installed, or any other PCI adapter for that matter.

I also noticed while composing this post they have a SQL Server 2005 section. That is news to me. I recommend using this reference for either the Windows or bash shell in a 'what was that command syntax sort of moment'.

VMWare has been doing a great job in PC virtualization. I've been using VMWare as a test bed for attempting new configurations in Gentoo.

Many have worked on the Gentoo installation since I did my installation around May of 2006. It was a significant amount of work gleening thru the various different VMWare articles in the gentoo Wiki to understand it. Quite possibly I don't yet, but it works day in and day out, so it is a 'close enough'. I am writing this up months after the facts, so I might be a little fuzzy on the details, so don't let me distract you.

Key recollections:- Download Gentoo ISO- boot from CD in the VMWare machine- Recompile Kernel (to get the Network/Disk details all worked out)- Install X Windows- Install VMWare tools (this was the most work as I recall -- hopefully is has been cleaned up a little more)

As for a 'Should I run gentoo in VMWare'? I would say for sure! Once you are there it is highly useful. At work (a Windows development environment) if I want to use some UNIX tools, I can start up this tiny little VM (relative to my windows) that has a 6GB disk and 256 MB of RAM and it runs just fine, even starting up X Windows and then Eclipse.

Saturday, October 07, 2006

There is no good reason why I don't remember this, but going between OSs enough and I confuse myself on the simplest of things. For instance, changing the screen resolution in KDE is much like doing in Windows these days

Friday, October 06, 2006

My only issue I had with this on gentoo was with this command/opt/IBM/db2/V8.1/instance/db2icrt -u db2fenc1 db2inst1It was returningDBI1088E Invalid access permission detected for directory "" IBM article describing the problem/solution

It wasn't really the permissions to the directory given it was a failure the script detected in /usr/bin/pwd

It turns out that the real problem is more in my configuration of gentoo and the /usr/bin/pwd executable. The DB2 installation scripts are peppered with the use of /usr/bin/pwd and doesn't use the built-in pwd in the shell. The problem is that the executable needs to be able to view /./ doesn't have read permissions for users in my out of the box installation of gentoo.

Steps (as best I can remember them)(1) Get account at www.wunderground.com - register(2) Install wx200d(3) Setup a symlink for the serial port 1 (details below)a new udev configuration file location: /etc/udev/rules.d/55-udev.rules add the line: KERNEL=="ttyS0", SYMLINK="wx200"(4) emerge lib-wwwperl(5) Configure wx200d, for my case the launching of the daemon needed a '-r' because my station is a WMR-968 - TOUGH!. The README with wx200d is very clear. The details in my /etc/conf.d/local.start: if [ -x /usr/local/sbin/wx200d ]; then echo -n " starting wx200d : " /usr/local/sbin/wx200d -r echo fi(4) Schedule a cron job to call the wunderground upload utility that came with wx200d. The argument to this utility wunderground is a path to the username/password fileCrontab information:0-59/5 * * * * /usr/local/sbin/wunderground \/etc/wunderground/wunderground.conf

Potentially the hardest part of this was learning what udev was all about and how to create a symlink to Serial port 1.

The next step in this process is the generation of a personalized page that I can put up on my domains like http://weather.paulcooley.com. This I've seen done very nicely with Virtual Weather Station. I would like to do this myself and save the cost of the Virtual Weather Station, the demo didn't like my Gentoo linux, X server, etc installation much and was fairly prone to crashing. It worked well in Windows, but my server is definiately linux.

Using one of those emerge commmands the other week to rebuild everything after a GCC 4.1.something upgrade, I overwrote a couple of key config files under /etc/... . Ouch, not wise. I made the rash assumption that it was a smart merge of the .config files. Don't do that, it is only as smart as the user :^). The only real loss was in the starting of a daemon for pulling data off of my weather station, but it took awhile to recollect the configuration.

A wiser way to go would be to goto my backups. Not having any didn't help -- it was on the to-do list. I found this to be a simple backup scheme for getting those all important configuration files and other data I might need.

Initiates a portage tree update with one of the rsync.gentoo.org mirrors. Note that any changes you have made to the portage tree will be erased. Except for special circumstances, this uses rsync to do the update. See make.conf(5)'s description of PORTDIR_OVERLAY for a method to avoid deletions.

Build/install the latest updates in the portage tree.

I use this after 'emerge --sync'

emerge --update --deep world

--update (-u)

Updates packages to the best version available, which may not always be the highest version number due to masking for testing and development. This will also update direct dependencies which may not be what you want. In general, use this option only in combination with the world or system target.

Rebuild Everything Making deep changes to the compiler toolchain may have lowlevel affects, forcing you do rebuild everything (if you are particularly inclined to play it safe). It could also be that you just like using CPU time ...emerge -eav systememerge -eav world

-emptytree (-e)

Reinstalls all world packages and their dependencies to the current USE specifications while differing from the installed set of packages as little as possible. You should run with --pretend first to make sure the result is what you expect.

Search for portage packagesUsed to look into the portage tree and find something. It also will tell you if it is install, what version it is, and other useful tidbits.emerge -s package_nameExample#emerge -s nut[snipping the none relevant matches]* sys-power/nut Latest version available: 2.0.4-r1 Latest version installed: 2.0.4-r1 Size of files: 683 kB Homepage: http://www.networkupstools.org/ Description: Network-UPS Tools License: GPL-2

I've found it is very well documented and easy to use because of portage, the integrated software distrubution system. It is a one-step system to get the latest source, build it, install it for linux. For instance if you want the pine email system, simply type 'emerge pine' and wait for it to complete compiling, once it is complete you can run 'pine'. Simply as 1,2; no 3 even necessary.

My intention for this blog is to record the learning and lore of my experiences with Linux; mostly so that I keep my documentation in one location. However, I hope to be able to share my information to others that might find this useful.

To the root of the word lore, see the definition below. I am hoping to aim more for (1) and (2) rather than the definition (3).

Lore dictionary.com link –noun1. the body of knowledge, esp. of a traditional, anecdotal, or popular nature, on a particular subject: the lore of herbs.2. learning, knowledge, or erudition.3. Archaic. a. the process or act of teaching; instruction. b. something that is taught; lesson.

About this Blog

In truth this is my personal documentation area where I hope to save myself time by documenting my home projects, work projects. I also hope to be able to provide others with a simple HOWTO guides, FAQs and other tidbits.