"Raindrops on roses and whiskers on kittens; Bright copper kettles and warm woollen mittens ..."
Sorry - the raindrops get me all wet, and I always get caught up on the thorns of roses. Mittens restrict the hands and make me even more butter-fingered than I am normally ...
isn't it great that we're all different - we all have different favourite things!
I was in
Cambridge last week, running a Perl course - and someone asked me which my favourite programming language was. Now there's a
tough question, but it did lead on to a demonstration - in Perl because that's what the course was - that showed the favourite things that bring people to our web site from Google. Here are the results - showing the top words for 23rd October!

$ perl search_fodder
2385 - Perl
2055 - Java
1850 - In
1844 - Php
1754 - Python
1331 - Mysql
1003 - To
880 - Example
870 - Join
739 - Tcl
Total 14416 searches and 118619 others
0.71 0.13 0 0
$
Here's the code ... showing some really very bad things (like a complete lack of comments) and some really "wicked" things where Perl is such a passed master!
open (FH,"ac_20081023") or die;
while (<FH>) {
if (/[&?]q=(.*?)[&"]/) {
$ss = $1;
$seaches++;
@words = split(/\++/,$ss);
foreach $w (@words) {
$w =~ s/%(..)/pack("C",hex($1))/eg;
$sw{ucfirst(lc($w))}++;
}
} else {
$others++;
}
}
@words = sort {$sw{$b} <=> $sw{$a}} keys %sw;
foreach $word(@words[0..10]) {
print "$sw{$word} - $word\n";
}
print "Total $seaches searches and $others others\n";
@taken = times();
print "@taken\n";
You'll note ...
• Use of $_
• Regular expressions to decode URLs
• Sparse matching in a regular expression
• A hash of counters
• List Slice syntax to report just "top 10" results
• Anonymous sort subroutine
• A timer to tell me how much resource was being used.
If you can identify each of those, great ... if you need help in identifying them, perhaps I should run a
Perl Programming Course for you!
(written 2008-10-26 00:45:35)
Associated topics are indexed under
G902 - Well House Consultants - Web site techniques, utility and visibility [2668] Is it worth it? - (2010-03-09)
[2569] How to run a successful online poll / petition / survey / consultation - (2010-01-10)
[2552] Web site traffic - real users, or just noise? - (2009-12-26)
[2532] Analysing Google arrivals by country of origin - (2009-12-10)
[2519] Status Page / breaks of service in early December - (2009-11-30)
[2410] Removal of technical resources from this site - (2009-09-19)
[2389] Writing with our customers words - (2009-09-01)
[2341] Koulutus, Open Source tietokone kielillä - (2009-08-09)
[2340] ldning, Open Source dator språk - (2009-08-09)
[2339] Opplæring, Open Source datamaskinen språk - (2009-08-09)
[2338] Uddannelse, Open Source computer sprog - (2009-08-09)
[2337] Opleiding, Open Source computertalen - (2009-08-09)
[2336] Formação, Open Source computador línguas - (2009-08-09)
[2335] Ausbildung, die Open-Source-Sprachen - (2009-08-09)
[2334] Formazione, Open Source computer lingue - (2009-08-09)
[2333] Formación, de los lenguajes de código abierto - (2009-08-09)
[2332] Formation, des langages Open Source - (2009-08-09)
[2225] How important is a front page ranking on a search engine? - (2009-06-09)
[2065] Static mirroring through HTTrack, wget and others - (2009-03-03)
[2056] Web Site Loading - experiences and some solutions shared - (2009-02-26)
[1982] Cooking bodies and URLs - (2009-01-08)
[1970] Plagarism - who is copying my pages? - (2009-01-02)
[1961] Making our things easier to find - (2008-12-26)
[1955] How to avoid duplicating web page maintainance - (2008-12-20)
[1888] Find the link - (2008-11-16)
[1833] Web Bloopers - good form design - avoiding pitfalls - (2008-10-11)
[1797] I have been working hard but I do not expect you noticed - (2008-09-14)
[1793] Which country does a search engine think you are located in? - (2008-09-11)
[1756] Ever had One of THOSE mornings? - (2008-08-16)
[1747] Who is watching you? - (2008-08-10)
[1711] Rapid growth leads to server move - (2008-07-17)
[1653] How do Google Ads work? - (2008-05-25)
[1634] Kiss and Book - (2008-05-07)
[1630] To provide external links, or not? - (2008-05-04)
[1610] PHP course dot co, dot uk - (2008-04-13)
[1554] Online hotel reservations - Melksham, Wiltshire (near Bath) - (2008-02-24)
[1541] Colour, Composition or Content - (2008-02-16)
[1534] Where in the world / country is my visitor from? - (2008-02-07)
[1513] Perl, PHP or Python? No - Perl AND PHP AND Python! - (2008-01-20)
[1506] Ongoing Image Copyright Issues, PHP and MySQL solutions - (2008-01-14)
[1505] Script to present commonly used images - PHP - (2008-01-13)
[1494] A time to update pictures - (2008-01-03)
[1437] Above the fold with First Great Western - (2007-11-19)
[1297] Stuffing content into a web page - easy maintainance - (2007-08-09)
[1237] What proportion of our web traffic is robots? - (2007-06-19)
[1212] What brought YOU to our web site? - (2007-06-01)
[1207] Simple but effective use of mod_rewrite (Apache httpd) - (2007-05-27)
[1198] From Web to Web 2 - (2007-05-21)
[1186] Two new pages / sites - (2007-05-14)
[1184] Finding resources - some pointers - (2007-05-13)
[1177] Sorting out for a site map - (2007-05-05)
[1104] Drawing dynamic graphs in PHP - (2007-03-09)
[1055] Above the fold - (2007-01-28)
[1029] Our search engine placement is dropping. - (2007-01-11)
[1015] Search engine placement - long term strategy and success - (2006-12-30)
[994] Training on Cascading Style Sheets - (2006-12-17)
[976] Santa at the station - (2006-12-09)
[916] Driving customers away - (2006-11-07)
[893] Visibility - (2006-10-14)
[800] Effective web campaign? - (2006-07-12)
[767] Finding the language preference of a web site visitor - (2006-06-18)
[757] Horse and Python training - (2006-06-12)
[732] Where is a web site visitor browsing from - (2006-05-24)
[718] Protecting images from theft - (2006-05-12)
[681] Mirroring a dynamic site - (2006-04-12)
[658] Keeping the visitors happy and browsing - (2006-03-26)
[649] Denial of Service ''attack'' - (2006-03-17)
[533] Bigger Box Campaign - (2005-12-18)
[528] Getting favicon to work - avoiding common pitfalls - (2005-12-14)
[510] Dynamic Web presence - next generation web site - (2005-11-29)
[492] New Navigation Aid - Launch of My Wellho - (2005-11-11)
[414] Form Madness - (2005-08-14)
[376] What brings people to my web site? - (2005-07-13)
[369] CMS - the minefield of Choices - (2005-07-05)
[348] Graveyard pages - (2005-06-15)
[347] Frightening and from-friend viruses and spams - (2005-06-14)
[322] More maps - (2005-05-23)
[320] Ordnance Survey - using a 'Get a map' - (2005-05-22)
[314] What language is this written in? - (2005-05-17)
[311] Growth pains - (2005-05-14)
[288] Colour blindness for web developers - (2005-04-22)
[284] The Iconish language - (2005-04-19)
[278] Cover all the options - (2005-04-13)
[276] An apology to Mr Boneparte - (2005-04-11)
[274] Our most popular resources - (2005-04-10)
[268] Information request forms, cleaning up spam - (2005-04-05)
[261] Putting a form online - (2005-03-29)
[259] Responding to spam - (2005-03-27)
[222] Who are all these visitors? - (2005-02-20)
[202] Searching for numbers - (2005-02-04)
[197] Allow for peak traffic on your web site - (2005-02-01)
[182] Your personal Google ranking - (2005-01-19)
[179] The hunt for unique words - (2005-01-16)
[173] Data Mining - (2005-01-09)
[165] Implementing an effective site search engine - (2005-01-01)
[142] Colour for access - (2004-12-06)
[117] A case of case - (2004-11-14)
[109] URLs - a service and not a hurdle - (2004-11-04)
[98] No more 'Error 404' pages. Something better. - (2004-10-24)
[32] Web design platoon - (2004-08-29)
[23] Skills and responsibilities - (2004-08-22)
P211 - Perl - Hashes [1917] Out of memory during array extend - Perl - (2008-12-02)
[1826] Perl - Subs, Chop v Chomp, => v , - (2008-10-08)
[1705] Environment variables in Perl / use Env - (2008-07-11)
[1334] Stable sorting - Tcl, Perl and others - (2007-09-06)
[968] Perl - a list or a hash? - (2006-12-06)
[930] -> , >= and => in Perl - (2006-11-18)
[738] (Perl) Callbacks - what are they? - (2006-05-30)
[386] What is a callback? - (2005-07-22)
[240] Conventional restraints removed - (2005-03-09)
Some other Articles
Seven new intermediate Perl examplesWiltshire at dawn - the tourist trailCamera with night vision, youth with no visionNovember and December Public Course ScheduleA few of my favourite thingsVolunteer v Employee - a skewed balance? (FSB)Three Seasonal PicturesWell structured coding in PerlPerl and BlackberriesPictures from a delegate