Archive for the ‘linux’ Category

A new Openstreetmap API framework for PHP.

Friday, October 21st, 2011

So over the last while, I’ve been working on a PHP package imaginatively named Services_Openstreetmap, for interacting with the openstreetmap API. I initially needed it so I could search for certain POIs and tabulate the results; it’s now also capable of adding data to the openstreetmap database – nodes and other elements can be created, updated and so on. It will even access the details of the user that is being used to modify that data, which is one difference between it and the other single purpose OSM frameworks.

So why the big fanfare now? Well I’m happy enough with it now to let other people look at and use it and also I’ve submitted it to the PEAR Pepr process, and the grilling that entails, so it can be included in the PEAR repository.

And if this pushes more people to using Openstreetmap (or PEAR for that matter) all the better!

(Update: This article has been translated to Ukrainian, with many thanks to Vlad Brown)

Adding colour to your mysql prompt

Wednesday, April 20th, 2011

I almost made a critical mistake on the production mysql database for one of my projects yesterday, which definitely would not have been a Good Thing if it had happened; even though I do have a custom prompt set up for mysql – when they’re all so similar you don’t always take heed.

So now, along with having the mysql prompt defined as prompt=’\h@\u (\d) > ‘ in the [mysql] section of my ~/.my.cnf file (so host, username and database name are included in the prompt), I have also installed rlwrap and set up an alias in my .bashrc:


if [ -x /usr/bin/rlwrap ]; then
alias mysql='/usr/bin/rlwrap -a -pGREEN /usr/bin/mysql'
fi

This displays the mysql prompt in green, after checking that rlwrap is available, which I have configured for my development environment only – now I just need to train myself to be extra careful for when the prompt isn’t coloured.

Packt launches fifth annual Open Source Awards

Thursday, September 2nd, 2010

Packt launches fifth annual Open Source Awards

The 2010 Open Source Awards was launched last month by Packt, inviting people to visit www.PacktPub.com and submit nominations for their favorite Open Source project. Now in its fifth year, the Award has been adapted from the established Open Source CMS Award with the wider aim of encouraging, supporting, recognizing and rewarding all Open Source projects.
WordPress won the 2009 Open Source Content Management System (CMS) Award in what was a very close contest with MODx and SilverStripe. While MODx was the first runner up, SilverStripe, a Most Promising CMS Award winner in 2008, made its way to the second runner up position in its first year in the Open Source CMS Award final.
The 2010 Award will feature a prize fund of $24,000 with several new categories introduced. While the Open Source CMS Award category will continue to recognize the best content management system, Packt is introducing categories for the Most Promising Open Source Project, Open Source E-Commerce Applications, Open Source JavaScript Libraries and Open Source Graphics Software. CMSes that won the Overall CMS Award in previous years will continue to compete against one another in the Hall of Fame CMS category.
These new categories will ensure that the Open Source Awards is the ultimate platform to recognise excellence within the community while supporting projects both new and old. “We believe that the adaption of the Award and the new categories will provide a new level of accessibility, with the Award recognizing a wider range of Open Source projects; both previous winners while at the same time, encouraging new projects” said Julian Copes, organizer of this year’s Awards.
Packt has opened up nominations for people to submit their favorite Open Source projects for each category at http://www.PacktPub.com/open-source-awards-home . The top five in each category will go through to the final, which begins in the last week of September. For more information on the categories, please visit Packt’s website http://www.PacktPub.com/blog/packt’s-2010-open-source-awards-announcement

Book Review: jQuery 1.3 with PHP

Sunday, December 13th, 2009

jQuery 1.3 with PHP

jQuery 1.3 with PHP

Before I start this review proper, I need to disclose one nugget of information first: The author, Kae Verens, and I are both currently serving as members of the Irish PHP Users Group Committee and have known each other for quite a few years. If you believe I can remain impartial and objective (as I hope you do – because I am), read on:

This is the first book sent to me from Packt where I wasn’t left dizzy from trying to understand just what it is the author was trying to get across. It looks like their proof-reader was awake for this one – totally awesome.

jQuery, as the vast majority of us already know, is a JavaScript library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. In other words it does all the heavy lifting and takes care of cross-browser compatibility issues so you don’t have to and thus allows you to focus on the work that you need to do without all those distractions.

“jQuery 1.3 with PHP” is aimed “for PHP application developers who want to improve their user interfaces through jQuery’s capabilities and responsiveness”. Over the course of ten chapters Verens starts the off with an introduction, then a series of ‘Quick Tricks’ that almost immediately help you add some measure of “Web 2.0″ functionality to what I’d term a “web 0.2 application” rather sharply.
The book ends with a chapter on Optimization – some of which you are bound to already know and some which are complete gems.

In the middle are chapters with mini-projects on tabs and accordians, forms and form validation, file management, calendars (and how to make your own google-calendar-like application), image manipulation, drag and drop and data tables.
In each case, projects are analysed and the required steps for each are outlined in the simplest terms – no extraneous buzzwords are used or are the projects over-analysed for the sake of pedantry.

I was a little surprised in some places where, for example, the json encoded output was not created via json_encode; but then thought not everyone is going to have PHP 5.2 or greater installed. Thumb forward a few pages and this is mentioned. So all’s o k.

It was good to see Kae suggesting use of the PEAR Validate package (or similar) in the Forms and Forms Validation chapter (chapter 4). I had to wonder if there was a PEAR package for creating and shunting down jQuery validation rules to the client – and found that there isn’t. That’s something to consider for later on, I guess.

The rest of the book is similarly both easy to read and easy to understand – my first port of call for learning how to do something that I’d almost term exotic with jQuery and with PHP in the background is usually Google but that is going to change (actually it already has).

Honestly, I wouldn’t be surprised if this books working title was “JQuery and PHP: The HowTo” – it is that good.
Now, this book is not for learning jQuery – that is not within its remit, but I would heartily recomend “jQuery 1.3 with PHP” by Kae Verens to anyone wanting to utilise jQuery from a PHP background.

OpenStreetMapping Nenagh

Tuesday, June 16th, 2009

So yesterday I had a quick interview with a journalist from the Nenagh Guardian – my local paper – about this OpenStreetMap (OSM) mapping malarky.

As most of you will probably know OSM is to printed atlases from AA, Ordnance Survery etc, as wikipedia is to encyclopedias. People can contribute data to the project through a variety of activities: going out and actually mapping an area with a sat nav or gps unit [even a mobile phone with GPS in it such as an iphone, nokia n95 or whatever], tracing data off Yahoo [and other] aerial imagery, filing bugs on the openstreetbugs website or literally drawing in information via the walking papers map making website. And better again, this is about providing free geographic data such as street maps to anyone who wants them.

Anyway…I mentioned how the OpenStreetMap map of Nenagh is more complete than even the latest commercially available maps for Garmin and Google Maps and listed off a few ways how OSM could be used commercially: by real estate agents, courier companies, how being able to pin-point where all the amenities are would be useful for tourists, and so on.

Compare the Open Street Map of Nenagh with the Google Map of the area – as you can see, there’s still quite a bit of work to be done – Millers Brook needs to be marked as such along with the various groves, avenues etc that comprise that estate. Plus all the amenities, shops [perhaps even their opening hours] and the Shannon Development Industrial Centre still need to be added – as I’m sure are some other small portions of the town that I’ve unknowingly neglected.

It’s fair to say that this will never be finished – existing housing estates will be extended, there will always be urban development plans that when implemented would also need to be included on the map.

It would also be cool to have the new “Nenagh Cycling Hub” rendered on the opencyclemap.org website.

I discovered the OpenStreetBrowser site to be a great test of the data that myself and others have entered – it’s also a great way of demonstrating just what can be done with OSM data.

If you happen to spot something that I’ve missed please either drop me a comment or use the openstreetbugs website.

On a related note: it would be good to see a PEAR/PHP based client/component for interfacing with the OpenStreetMap server so that interesting apps utilising that data could be implemented on the LAMP stack – something to go alongside the Services_GeoNames package from pear ;-)

Save Nenagh Hospital

Saturday, January 31st, 2009

I’m back home from a “Save Nenagh Hospital” rally earlier on today – I estimated the number of people there to be at least two thousand.

As you might infer, this is quite serious – the Health Service Executive in Ireland have already made the first steps in downgrading and then closing the General Hospital in Nenagh. Already there are plans for numerous cuts, including a proposal to remove 24-hour accident and emergency services at the hospital in favour of the introduction of advance paramedics to partly replace the present service.

The only numbers important to the HSE, it seems, are those balanced on their accounts sheets – not the number of lives that will be lost, the number of minutes late that ambulances will arrive to road accidents, the ill and those in need.

Representatives of the HSE were invited to attend but did not – most likely because they know no matter how they try they can not make sense of their own arguments. In short, they can not justify what they are proposing.

Google for phrases such as “save nenagh hospital” and “friends of nenagh hospital” to see just how serious and important this is – you’ll find links such as this article in the Irish Times (Doctors to fight cuts at Nenagh hospital).

Please add your voice by joining the Save Nenagh Hospital group on facebook, by writing to your political representatives and by writing to the papers.

Don’t let Nenagh become the next Monaghan.

7 things…

Wednesday, January 14th, 2009

I got tagged by Chuck for this “7 Things” meme. So here are 7 things you may not know about me:

  1. I first met my wife at her house warming party seven years ago – it took four years for anything to happen though! I’m so happy it finally did though!
  2. My first computer was a ZX Spectrum 48K that was bought when I was seven years old – I’ve since progressed through BBC computers, Apple Macs and then onto PCs. I also had a accounts on the WRTC vax – VMS and OSF/1.
  3. I’ve similarly gone through a number of differing computer languages: Basic in various incarnations (ZX Basic, BBC Basic, VB), Z80 Assembler, HyperCard (yes, really), C, C++, JavaScript, Perl, PHP, Python, ColdFusion, Java.
  4. I might be Irish but my surname isn’t.
  5. I read a lot of fantasy: Gemmell, Eddings, Tolkien, Pratchett; though I also enjoy Tom Clancy and Dale Brown novels.
  6. I’m long-sighted in one eye and short-sighted in the other: one good reason why I’ve never been that good at sports.
  7. I am an active PEAR developer.

Tagging Others

I’m supposed to tag 7 other people who then repeat the whole process:

  • Proinnsias Breathnach for being such a good friend all this time. And because he doesn’t blog enough.
  • Kae Verens for having a name that sounds the same as his first inital – and for helping out loads at the IPUG stand at last year’s Irish Opensource Technology Conference.
  • Donncha O Caoimh for his trojan work back in the day with the ILUG CMS and for WordPress mu.
  • Jaime Hemmett for her exuberance and energy she’s brought to the Irish PHP scene.
  • AJ McKee for starting the Irish PHP Users Group in the first place!
  • Justin Mason for Spam Assassin, SiteScooper and being an all round nice guy.
  • Fuzzix for his levity and humour. That plus he’s a ZX head like myself.

Rules

  • Link your original tagger(s), and list these rules on your blog.

  • Share seven facts about yourself in the post – some random, some weird.

  • Tag seven people at the end of your post by leaving their names and the links to their blogs.

  • Let them know they’ve been tagged by leaving a comment on their blogs and/or Twitter

PHP for Enterprise/Business Whitepaper

Thursday, January 8th, 2009

I’m very proud to have been involved as an editor and help with the translation and update of the AFUP’s PHP en Enterprise livre blanc into the PHP for Enterprise/Business Whitepaper: as far as I know this is the first full English language translation and update of the work done by the Association Française des Utilisateurs de PHP (French PHP Users Group). Also there is a lot of new content in the Whitepaper that with regards to how PHP is now utilised in Enterprise. Figures have been updated and techniques available in later versions of PHP have been referenced.

We’ve had an interesting time translating and updating the content – especially as I don’t know French let alone their idioms. Many thanks to Stéphane Lambert for his boundless energy and devotion to getting us this far!

Thanks also to PEAR President and fellow IPUG member David Coallier who also helped with the translation work and not forgetting Derick Rethans and Peter Keung who also assisted in fine-tuning our work into something a bit more fluent and graceful ;-)

I would be remiss to not mention Blacknight who have sponsored the IPUG from the start – without them there truly would not be a php.ie!

If I’ve left anybody out – please remind me!

All in all, as Chairman of the Irish PHP Users Group, I can say this is an exciting moment for us to have achieved – we’ve given something tangible back to the PHP Community as a whole and to top things off we’ve published the Whitepaper under the Open Licence Content – you may
freely use it if you clearly acknowledge the Irish PHP Users Group and if you retain the Open Content Licence. This means you can localise the Whitepaper to your own language and national figures if you so desire.

Is PHP vulnerable software?

Tuesday, August 26th, 2008

Thanks to Ivo Jansch, I spotted Matt Assay mentioning in his article on cnet that PHP headlines in IBM’s list of most vulnerable software and I have to say this is complete balderdash on the part of IBM.

He quotes from the report:

Another commonality between these three vendors is that they are all written in PHP. If we look back over last year’s disclosures and apply the new CPE methodology to them, we would uncover another newcomer to the top five list, PHP itself, which would rank number four in the 2007 top five vendor list.

What are featuring in IBM’s top ten of vulnerable that makes the report insinuate that the PHP language is a security risk are Jooma, WordPress and Drupal. How PHP would feature in a list of “vendors” is beside the point – if a construction company were to build a house where the windows don’t close fully, the security alarm doesn’t work and where bare wires are exposed you don’t “blame” the windows, alarm system and cabling. The responsibility rests with the construction company and/or the individual contractors hired by that company. Similarly, we can’t “blame” PHP for bad software architecture and security risks present in Joomla, WordPress or Drupal – the onus is on the software developers and architects to design secure [web] applications.

They should, at the least, ensure input data is of the expected type, of certain values; handle uploaded files in a secure and cautious manner that they don’t overwrite files crucial to the health/security of the system running the application or the application itself; use an audit trail for checking against attacks, ensure security in depth against SQL injections, Cross Site Vulnerabilities, Command Injection and … I could go on but won’t – search for php security best practices, get the Zend PHP 5 Certification Study Guide, check out the library resource at the PHP Security Consortium.

Now where’s ruby, cobol, C, and z80A assembly language on that list? And why is Linux mentioned there as a vendor?

Andrii Nikitin’s son Needs Help – ASAP

Monday, July 14th, 2008

(Reposted from Zack Urlocker’s blog, via Vidyut Luther and planet MySQL. I don’t usually repost such things but a 2.5 year old’s health is at stake so I’m making an exception. If you use mysql at all – and even if you don’t – please dig deep.)

Andrii and his son Ivan

Andrii and his son Ivan



Andrii Nikitin, one of the MySQL support engineers located in Ukraine, has asked for help from MySQLers and so I’m sharing this information to the community at large. Andrii’s son Ivan, who is 2 1/2, is in need of a bone marrow transplant operation. This will require going to a clinic in Europe that will not be covered by regular insurance. So Andrii has asked to see if we could help raise funds. The cost is expected to be €150,000 – €250,000. A huge amount for an engineer from Ukraine to cover. But a small amount by many people could make a big difference.

Many MySQLers have kicked in to help out, but more is needed. Ivan’s health has taken a turn for the worse recently and the issue is now quite pressing. Even a small donation could mean the difference between life and death for Ivan.

I hope some of you who use MySQL or have young kids will join me in making a donation today. You can do so by using Paypal, by sending a cheque to MySQL, or via wire transfer.

Paypal:
Paypal
Or
by check payable to:

MySQL, Inc.
Mail to: MySQL, Inc.
Attn: Linda Dong
20450 Stevens Creek Blvd #350
Cupertino, CA 95014

or
US wire transfer:

MySQL Inc: 7396643001
SWIFT: NDEAUS3N

or
International wire transfer in any currency:
Bank: Nordea Bank
Bank address: Stockholm, Sweden
Bank account: 3259 17 03868
IBAN: SE27 3000 0000 0325 9170 3868
SWIFT: NDEASESS

Thanks to those who have donated already. A child’s life is precious and I hope we can give Ivan a chance.

“unable to find swap space signature”

Tuesday, April 15th, 2008

My darling wife told me when I got home from work today that the laptop, running Ubuntu, was a bit slow.

On a hunch, I ran free -m and saw that the swap file wasn’t being used. I rebooted it, and sure enough saw the phrase “unable to find swap space signature”. This generally means that the swap file needs to be regenerated (this can happen with some laptops if they unexpectedly drop into hibernate mode), so I rebooted into Recovery Mode and:

  • I checked the output of fdisk -l to ascertain which partition the swap space was on (/dev/hda3)
  • Recreated the swap space with ‘mkswap /dev/hda3‘ and activated it with ‘swapon /dev/hda3
  • I then opened the file /etc/fstab and edited the line referring to the swap space so it would be referred by /dev/hda3 rather than the UUID value.
  • rebooted and kept my fingers crossed.

Everything worked just fine.

What I’ve done recently

Friday, April 11th, 2008

Travis asked What did you do today? recently – and what he did all sums up to an amazing level of work.

I felt a need to answer this question myself. This is what I’ve been keeping myself busy with recently:

  • Released version 0.18.0 of Date_Holidays – this includes drivers for Iceland, Romania and the Ukraine along with some bug fixes.
  • Released version 1.0.1 of Validate_IE, focused solely on adding validation for the 089/Tesco mobile phone network.
  • Released version version 0.1.2 of PEAR_Size. This includes integration with the PEAR command.
  • Wrote a review of CodeIgniter for Rapid PHP Application Development.
  • Kick-started a discussion on aggregating blogs of people in the Irish PHP Users Group.
  • I’m trying to decide what to do with the codebase for the website of the Irish Linux Users Group – at the moment it’s all rather cobbled together and isn’t providing as much functionality to the community as it could. I’ll most likely migrate it over to using a more general purpose framework plus ILUG/User Group specific components.
  • Book Review: SOA Approach to Integration

    Wednesday, February 6th, 2008

    Book Review: SOA Approach to Integration by Poornachandra Sarang, Frank Jennings, Matjaz Juric, Ramesh Loganathan – (Packt Publishing)

    I was recently asked by a representative of Packt Publishing to review this book on Service Oriented Architecture and I looked forward to reading the review copy they sent me.

    While I waited for the book to arrive I searched the packt website for the errata for it – and found none. I thought “Either the book is perfect or they haven’t gotten around to publishing a list of corrections yet”. Quite an omen.

    The blurb on the back of the book says that it is intended for “architects and senior developers who are responsible for setting up SOA for integration for applications within the enterprise and applications across the enterprise”.

    The 360 or so pages are split into six chapters:

    1. Integration Architecture, Principles and Patterns
    2. Service- and Process-Oriented Architectures for Integration
    3. Best Practices for Using XML for Integration
    4. SOA and Web Services Approach for Integration
    5. BPEL and the Process-Oriented Approach to Integration
    6. Service- and Process-Oriented Approach to Integration Using Web Services

    Chapter one focuses on integration technologies, approaches and patterns – pretty much laying the groundwork as you would expect an introductory chapter to do.
    The second chapter attempts to drill down deep into what SOA is about.
    Chapter three details the Best Practices that should be followed when using XML for Integration and seems completely out of place considering the intended audience that this book is written for – it is far to low-level for a book aimed at software architects.
    Chapter four focuses on web services and does a very good job of it, advising for example to stick with approved Standards rather than using proprietary extensions of say SOAP and WSDL. Amusingly though, while advising that web services should remain independent of programming languages and application platforms the book soley gives examples in Java and .net.
    Chapter five details BPEL (Business Process Execution Language) and the Process-Oriented Approach to Integration in a rather comprehensive manner.
    Chapter six, discusses the Enterprise Service Bus (ESB) in depth. Just as with chapter 4 I was amused with this one. There is a subsection to it about how ESB helps avoid vendor lock-ins yet there is no discussion of open source offerings that are available for EBS, BPEL etc etc.

    “SOA Approach to Integration” focuses in detail on the WS-* standards and references SOAP very often. There is an anomaly in that there is no mention of REST and while the authors, with their collective experience in Java and .NET, focus on detailing use and interoperability between those platforms I would have expected at least some Open Source technologies and programming languages to be referred to – the ESBs Apache Service Mix, Mule for example; along with perl, PHP and python as some of the programming languages that can be used.
    If PHP was to be mentioned I would expect the “WSO2 Web Services Framework for PHP” to be listed as well as, perhaps, the SOAP and UDDI packages from PEAR.

    I found myself reading some sections of the book repeatedly – not because the technical content was too complex to understand; but due to it being too verbose, due to bad grammar, spelling mistakes and poor punctuation. I also felt that the diagrams and figures in the book should have been identified better, both in the text and individually. A glossary and a more complete index would have been nice too.

    On the whole, although I did enjoy reading portions of the book, it seems to be a lacklustre introduction for software architects and senior developers that are new to Service Oriented Architecture but that’s pretty much all that it is.

    Reviving my Kodak Z710 digital camera

    Sunday, December 30th, 2007

    My digital camera, a Kodak Z710, stopped working under ubuntu a while back; the error message “Could not claim the USB device” was cited.

    A quick google brought up the solution, on Ubuntu Forums – apparently the line relating to the camera was no longer present in /etc/udev/rules.d/45-libgphoto2.rules.
    I inserted the relevant line,
    SYSFS{idVendor}=="040a", SYSFS{idProduct}=="05b3", MODE="0660", GROUP="plugdev",
    at the bottom of that file and, after reloading those rules with /etc/init.d/udev restart. This final step is important – otherwise you’ll have to restart your PC ;-)

    I got the idVendor and idProduct values from the output of lsusb. They were also present in the post to Ubuntu Forums.

    The Linux Counter Project

    Friday, December 14th, 2007

    The Linux Counter project has been going for some time now and is an attempt to determine how many people are using Linux worldwide.

    It is also used to estimate how many machines Linux is installed on.

    I received an email this morning asking me to update my details, this is not uncommon as I had not logged in for quite some time, and felt compelled to blog about it to remind others who might want to ‘stand up and be counted’.

    The Irish Linux Counter Homepage details how best to register yourself if you are based in Ireland.

    So go on, what are you waiting for?

    Selectively mounting systems with sshfs

    Wednesday, November 14th, 2007

    I recently discovered sshfs; which is a useful way to mount remote systems via ssh.

    I wanted to have some systems mounted automatically on my laptop whenever I am online but not have any timeouts or attempts to connect when I am not. This ruled out simply adding a line or two to my .bashrc file or the /etc/fstab file.

    The solution?
    I already use the whereami package to selectively mount nfs shares and do other things depending on my location so it was just a matter of editing the /etc/whereami/whereami.conf file to include the following:

    #mount /media/server1
    =home sudo -u kguest sshfs server1.example.com: /media/server1 -o workaround=rename
    #mount /media/server2
    =home sudo -u kguest sshfs server2: /media/server2 -o workaround=rename
    

    The ‘home’ location is defined in my /etc/whereami/detect.conf file if the access point at home is detected:

    if wlan
      testap example-ap-name  home,wdhcp
      notat  wlan,wdhcp
    fi

    Combined, these mean that if the whereami script detects an access point named example-ap-name (original isn’t it?) then those remote systems are mounted into the /media/server1 and /media/server2 directories.

    o2sms gotcha

    Friday, June 9th, 2006

    From #linux:
    If you install the new version (v 3.12) of o2sms on top of an existing install, be sure to delete the old .cookie file or it won’t log into O2′s new site properly.

    Email over SMS

    Tuesday, December 13th, 2005

    A few weeks ago I was asked to help set up a system where an email would be texted to someone so long as a certain keyword was used in the subject line.

    My solution should work under any Unix/Linux system, assuming you have 02sms installed and have an alias set up in in your .o2smsrc for texting SMSs to yourself; my alias is named ‘me’. This also assumes that you have procmail set up and requires the following snippet to be pasted into your .procmailrc and edited as required.

    The snippet is set so an email is only forwarded by SMS if it is sent by one of two approved email addresses and the subject line contains the phrase ‘txtken’ with no leading or trailing spaces.

    :0
    * 1^0 ^From:.*xxx@xxxxx.xx
    * 1^0 ^From:.*yyyyy@yyyy.yy
    * ^Subject: txtken$
    | formail -k -X From: | o2sms me > /dev/null
    

    Custom Spam Assassin Rules

    Saturday, November 1st, 2003

    After reading a post from Justin on the ILUG mailing list about how to create custom Spam Assassin rules (and getting a hoard of spam in my inbox), here’s a few I wrote this morning.
    Use them as you will.

    body ONLINE_CASINO /online casino/i
    describe ONLINE_CASINO ‘online casino’ mentioned.
    score ONLINE_CASINO 5.1

    body CASINO_GAME /casino game/i
    describe CASINO_GAME ‘casino game’ mentioned.
    score CASINO_GAME 2.7

    body BONUS_MONEY /bonus money/i
    describe BONUS_MONEY ‘bonus money’ mentioned.
    score BONUS_MONEY 2.7

    body PHARMACY /pharmacy/i
    describe PHARMACY pharmacy mentioned.
    score PHARMACY 1.1

    body PHARMACIES /pharmacies/i
    describe PHARMACIES pharmacies mentioned.
    score PHARMACIES 1.1

    body DISCREETLY_ORDER /discreetly order/i
    describe DISCREETLY_ORDER Says discreetly order
    score DISCREETLY_ORDER 1.2

    body YEARS_YOUNGER /years younger/i
    describe YEARS_YOUNGER Says years younger
    score YEARS_YOUNGER 1.2

    body MAKES_YOU_LOOKFEEL /makes you look and feel/i
    describe MAKES_YOU_LOOKFEEL Says ‘makes you look and feel’
    score MAKES_YOU_LOOKFEEL 1.2

    body ENDORSED_BY_DOCTORS /endorsed by doctors/i
    describe ENDORSED_BY_DOCTORS Claims product is endorsed by doctors
    score ENDORSED_BY_DOCTORS 2.2

    lineak

    Monday, August 18th, 2003

    Mailed the section describing my [work] keyboard, a Dell RT7D00, to the
    project maintainer of lineak
    (Linux support for Easy Access and Internet Keyboards).
    It’s great – I now have the four additional keys (Mail, Home, Search & Sleep)
    in use.
    This is the content of my ~/.lineak/lineakd.conf file:

    KeyboardType = DELL-RT7D00
    Home = /usr/bin/mozilla http://intranet
    Mail = /usr/bin/evolution mailto:
    Search = /usr/bin/mozilla http://linux.ie
    Sleep = xscreensaver-command -lock
    

    The section in /etc/lineakkb.def, which I mailed to the project lead, looks
    like this:

    [DELL-RT7D00]
        brandname       = "DELL"
        modelname       = "Dell RT7D00"
        [KEYS]
            Mail        = 146
            Home        = 166
            Search      = 158
            Sleep       = 223
        [END KEYS]
    [END DELL-RT7D00]