Having fun with HomeKit and non-HomeKit devices

Wanting to build my knowledge around a few things – i’ve played around lately with Apple’s HomeKit – designed to make integration of smart home devices easy for anyone.

At the moment, the range of HomeKit supporting accessories is limited – especially within Australia. And I already had a few IoT devices from Belkin (Wemo), D-Link (IP Cameras), LIFX (Lights) and a Logitech Harmony Elite (Audio Visual) which did not offer HomeKit support. All these were in good working order, and there was no point replacing them.

I thought I’d spent a little time writing up my experience, sharing some things I learned along the way, in the hope it helps others going down the same journey – even if they’re only tinkering, or just trying to get their configuration right.

Enter Homebridge

After a bit of research, I stumbled upon a package called Homebridge – billed by its creator Nick Farina as “HomeKit support for the impatient”. I’ll let the Github homepage give you an overview of what it is:

Homebridge is a lightweight NodeJS server you can run on your home network that emulates the iOS HomeKit API. It supports Plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of “smart home” devices.

And yes, it does exactly what it says on the label. Installed on an existing machine, a home server, or even a Raspberry Pi if you have one kicking around, it’ll sit there and seamlessly integrate all these Non-HomeKit devices into HomeKit.

The collection of user-developed packages for Homebridge is huge, over 700 at the time of writing this article – covering everything from TV’s, power switches, lights, IP cameras, weather API’s, and so on.

Needless to say, this is exactly what I was after. And after a bit of exploring, I found that both Belkin Wemo and LIFX had packages already built; and it was possible to get my D-Link cameras also working with another package.

Here’s hoping this article helps you enjoy the Home and Siri features in iOS as easily as I have with your IoT devices that don’t currently support HomeKit.

With iOS 11 and HomeKit, do you still need Homebridge?

As covered during Apple’s WWDC 2017 event, software authentication will be introduced – and hardware developers will no longer require that every HomeKit device includes a specific security chip.

So, the usefulness of Homebridge long term will depend on how long it takes existing and active IoT platforms to release updated firmware that provides software authentication built in. For larger platforms and developers, this may be relatively quick.

For hardware which is end of life (EOL), not easily updated, or released by smaller companies, a Magic 8-Ball is going to be giving the best answers on when they’ll release (short version – not likely) – so Homebridge will be a great stop gap for you.

Environment

Initially, I installed Homebridge onto a 13″ 2016 Macbook Pro. However, I’ve recently elected to move the installation onto a Mac Mini running with macOS Server.

Current Non-HomeKit IoT hardware environment consists of:

  • Lighting
    • 4x LIFX Colour 1000 Lights
  • Power
    • 2x Belkin Wemo Insight Switches (great for power consumption monitoring)
    • 1x Belkin Wemo Switch
  • Security
    • 2x D-Link IR Day/Night cameras
    • 2x D-Link Day Cameras
  • Audio visual
    • Logitech Harmony Hub
    • Apple TV 4th Generation – needed as a home hub, for automation and remote control
      Note: You can use an iPad instead, but this will need to remain in the home at all times for these features to be available when away from home.
  • Low Voltage sensors/controllers

Future additions may include:

  • Additional Belkin switches
  • Additional LIFX lighting

 

How did I do it?

Pre-requsites

If you’re reading this article, let’s presume you’re the type of person who already has a good home internet connection and wifi network, so I’ll skip over that part.

To do this successfully, you will need the following:

  • A home computer or server that’s ‘always on’
    (i.e. Windows, macOS, Linux, or even some NAS boxes)
  • An Apple ID configured with both:
    • Two-factor Authentication, and
    • iCloud Keychain
  • Home hub
    The features you want will determine your minimum hardware requirements for the device you use as a home hub:

    • If you want to control accessories remotely: Apple TV (3rd generation)* or an Apple TV (4th generation) with tvOS 9.0 or later.
    • Automations and user permissions: You need an Apple TV (4th generation) with tvOS 10 or an iPad with iOS 10 or later.
  • Patience
    This will involve some trial, error, and some downloads. Don’t do this while tired, take your time, break it down into small pieces, and you’ll be amazed how well things work. This is especially true of when installing the Belkin Wemo Maker, as you’ll need to understand the device you’re connecting it to, what connections it offers, and have the manuals for it.

Installation

  1. Follow this guide for installing Homebridge on macOS:
    https://github.com/nfarina/homebridge/wiki/Install-Homebridge-on-macOS
  2. Install Homebrew (only needed if intending to view cameras with the homebridge-camera-ffmpeg package)
    https://brew.sh/

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  3. Install FFmpeg using Homebrew (Again, only needed if going to be using homebridge-camera-ffmpeg)
    $ brew install ffmpeg
  4. Install the relevant packages for my devices:
    $ npm install homebridge-camera-ffmpeg
    $ npm install homebridge-harmonyhub
    $ npm install homebridge-lifx-lan
    $ npm install homebridge-platform-wemo
  5. Complete your config.json configuration file (see more below).
  6. Run Homebridge
  7. Follow the Apple Support article Use the Home app on your iPhone, iPad, and iPod touch (HT204893) to get the Home app setup, create your rooms, connect to Homebridge, and assign accessories to rooms, setup favourites etc.
  8. Follow the Apple Support article Automate and remotely access your HomeKit accessories (HT207057) so you can create automations,  remotely control things away from home, and grant access to other people.

Configuration

When you go through the earlier installation steps, you’ll setup your config.json file.

If you’re new to JSON, I’d strongly suggest writing your config file in a text editor first, then testing it validates using JSONLint, before pasting it into your config file, saving, then starting up HomeKit.

I’ve obfuscated a few things in here obviously, the README file for Homebridge explains how to create your config.json file, and includes a sample file you can build on.

And remember – don’t use the default PIN in the sample config file. Leaving it as the default is going to make you look pretty silly when someone finds you’re running Homebridge, connects to your homes’ wifi network that you thought was properly locked down, and starts turning on and off all manner of switches (or turning on the TV audio at 3am in the morning with the last channel you had on – which will endear you to the neighbours).

{
 "bridge": {
 "name": "Homebridge",
 "username": "XX:XX:XX:XX:XX:XX",
 "port": XXXX,
 "pin": "XXX-XX-XXX"
 },

"accessories": [],

"platforms": [{
 "platform": "LifxLan",
 "name": "LiFx"
 }, {
 "platform": "HarmonyHub",
 "name": "Harmony Hub"
 }, {
 "platform": "BelkinWeMo",
 "name": "WeMo Platform",
 "noMotionTimer": 60,
 "ignoredDevices": []
 }, {
 "platform": "Camera-ffmpeg",
 "cameras": [{
 "name": "Cam 1",
 "videoConfig": {
 "source": "-re -f mjpeg -i http://username:password@10.0.0.1/mjpeg.cgi -i http://username:password@10.0.0.1/audio.cgi",
 "stillImageSource": "-f mjpeg -i http://username:password@10.0.0.1/mjpeg.cgi",
 "maxStreams": 2,
 "maxWidth": 640,
 "maxHeight": 480,
 "maxFPS": 30
 }
 }, {
 "name": "Cam 2",
 "videoConfig": {
 "source": "-re -f mjpeg -i http://username:password@10.0.0.2/mjpeg.cgi -i http://username:password@10.0.0.2/audio.cgi",
 "stillImageSource": "-f mjpeg -i http://username:password@10.0.0.2/mjpeg.cgi",
 "maxStreams": 2,
 "maxWidth": 640,
 "maxHeight": 480,
 "maxFPS": 30
 }
 }, {
 "name": "Cam 3",
 "videoConfig": {
 "source": "-re -f mjpeg -i http://username:password@10.0.0.3/mjpeg.cgi -i http://username:password@10.0.0.3/audio.cgi",
 "stillImageSource": "-f mjpeg -i http://username:password@10.0.0.3/mjpeg.cgi",
 "maxStreams": 2,
 "maxWidth": 640,
 "maxHeight": 480,
 "maxFPS": 30
 }
 }]
 }]

 

Diagnosing problems

The quickest way to find any issues is to keep an eye on Homebridge’s logfile, using this command before you start Homebridge:

tail -f ~/.homebridge/logfile.log

From there, you’ll see the output of the logfile, and spot whatever is going on.

 

And the results…

Well, here it is – three quick scenes, all the accessories, all configured and ready to be controlled.

The Home app on iOS 10, all nicely configured, working, and responding happily to Siri commands.

 

Things I learned along the way

  • Cameras
    As long as your camera has a stream in a supported format, you should be able to integrate that camera. for the camera-ffmpeg package, there’s a growing list of known good configurations you can work from for various cameras. The good thing is that D-Link’s cameras have used the same URI’s for their features for as long as I can remember – so the posted known good configuration for the DCS-932 will work for pretty much any D-Link consumer camera in circulation.
  • macOS and FFmpeg
    I initially found this difficult, as I’d lost a lot of *nix experience over the time. I didn’t understand that I needed to install the FFmpeg packages first, and didn’t know the best way to do it. This detailed answer on Stack Overview set me right, and made me realise that Homebrew was the fastest way to install it, and keep the package up to date.
  • Garage Door
    Luckily, the garage door at the place I live has various connection terminals on its controller board for wired control of both open/close, and sensors to indicate if the door was opened or closed. This meant no need to buy a magnetic reed switch and install it – saving extra time and work. A quick read of the manual, and looking at a good article from someone else who’d used the Wemo Maker for the same purpose, enabled me to figure out the wiring I needed to use, and got it done in one go (For the sensor, wiring COM on the door controller to – on the Wemo Maker, and NC to S).

 

Things I can’t yet do

  • Cameras – Live view
    At the moment, the Apple Home app on iOS only show a new image every 60 seconds. I’ll be digging into that a bit more to understand how to improve the refresh rate, if at all possible. It may be a limitation of the platform package being used to do that, or something else entirely.
    The refresh rate has come down to 10sec in the Home app now, with no intervention on my part. Would still like to try and get it working to a stream, but that requires more reading and understanding on my part.
  • Cameras – Alerts
    There is at least one sensor package I’m yet to try, which uses the SMTP notification features of most cameras to provide alerts, or trigger actions when there are unexpected motions. I’m yet to sit down, understand which is the best package for my needs, and get going with it. Something to explore another time.
  • Harmony Elite – Other controls
    At present, the package can only switch your configured activities on and off. It can’t change volume, pass other commands (stop, play, pause, input, show TV guides, etc). Not being a programming person, or having a deep understanding of the HomeKit platform, that’s something I’m not able to tackle. Maybe there’s a smarter cookie out there who just might be able to achieve it.
  • Onkyo receiver/amplifier integration
    Whilst there is some NPM’s out there for network-controllable Onkyo receivers, i’ve not had any luck getting these working as yet. As i’m not a programming kind of person, it’ll be more trial and error with the existing packages to see if and how they work.
  • Air Conditioner
    Due to the range of the Harmony Elite’s IR senders, I can’t yet find a position which will successfully switch on and off the split system AC I have in one part of the house.

A hashtag and photo alone does not a call to action make

I want to make clear from the outset, this is a viewpoint expressing on how people use social media for good intentions – but their intent doesn’t deliver effective results. This isn’t either for or against a specific, current missing person, but uses an online exchange in relation to them to highlight the problem.

Now, with that out of the way – let’s get to the point.

As my fingers touch keys, law enforcement authorities in the USA are working to find Isabel Celis, a six year old girl who has gone missing from Tuszon, Arizona since last week.

And is the fashion, people across all social media channels have commendably mobilised to assist in what ever way they can to help the effort to reunite this young girl with her family. From Facebook groups, twitter hashtags and the like – the users in these communities are at least helping to raise awareness about the case.

Image of a tweet that appeared in my twitter timeline today relating to the missing US girl Isabel Celis - Click to view full sized image.

Image of a tweet that appeared in my twitter timeline today relating to the missing US girl Isabel Celis.

This case came to my attention today when this screen-captured tweet was retweeted in my timeline, and is the basis for this post.

My issue with this tweet is this: It requires the user to do too many things for the information to be useful and actionable. Or put simply – a poorly crafted tweet, and a badly executed call to action.

When you hear or read about a missing person, and if your mind is anything like mine; you ask yourself a couple of important questions such as:

  • who is it?
  • where are they missing from?
  • how can I help find the person?

This of course goes back to the Five W’s of basic information gathering; which we were all taught in primary school. I’ll avoid talking about their origins in Latin for reasons of brevity.

Problem one: Reliance on prior knowledge

Only the first of these three questions comes close to being answered, provided and buried by way of a hashtag – a method on twitter for indexing a group of tweets or discussion – denoted by the string of words prefixed by the hash (#) symbol.

If you’re an inexperienced twitter user, you’re not likely to know what a hashtag is. This is most likely amongst the 17% of US internet users over the age of 30 who use twitter.

The use of a hashtag to convey important information is a poor choice. It is reliant on the assumption that the user knows what they are and how they are of value to the message being conveyed. The problem is best summed up by the following, and less offensive expression:

To assume is to make an ass out of u and me

Problem two: Key questions not answered

We move on to the second and third questions asked by the inquisitive mind when seeing a message about a missing person – where are they missing from, and how can I help.

The tweet doesn’t provide any answers to these important questions. It repeats the same mistake of assumption, and hopes that the user will click on a hashtag, to find a tweet, that contains relevant information, so they can get the answer to the questions they have.

The response from a user after being called out on a poorly crafted tweet that did nothing to inform interested parties on how they can help - click to enlarge.

The response from a user after being called out on a poorly crafted tweet that did nothing to inform interested parties on how they can help.

And the problem with this was highlighted by the somewhat flippant and idiotic justification received from the tweet’s original author (see right) when I questioned the original tweeter on his methodology and message, and its poor use of the medium that helps rather than harms the search for this girl.

How does looking at only the photo of a missing girl as an isolated act help with her recovery? Short answer – it doesn’t. Just ask people who write Missing Persons Investigative Best Practices Protocols, let alone the social media operatives for various agencies who already provide this information (and do it well), on how they think the tweet in question would be more hindrance than help.

However, this clicking creates an unnecessary barrier to providing the user with information. In order to answer their question, they will have to click on a hashtag, to scroll through a list of tweets until finally, amongst the signal to noise ratio that is social networks; find a message that gives them some of that information.

At least three to six clicks, and two minutes wasted trying to find it by my count. All of it unnecessary, and could have been easily fixed with a properly crafted message.

So what would the solution look like?

A screen capture of how the tweet should have been composed to ensure maximum effectiveness of the message - Click to view larger.

A screen capture of my tweet showing exactly how it should have been composed to ensure maximum effectiveness of the message.

So given Twitter’s 140 character limit, If I was the person sending that tweet – how would I have crafted it to actually be useful?

These are my two suggestions for crafting a better tweet in issues such as this:

  1. The message is the medium: Add as much relevant information as possible; so people who want to help can, without them getting frustrated, disinterested and ultimately taking no action.
  2. Use easily understood shorthand to maximise real estate: wk. for week, pic for picture, yr for year, fr. for from.

Here’s exactly what should have been tweeted (and I did by the way):

Isabel Celis, 6yr old fr. Tuscon AZ missing since last wk. Pic http://t.co/LF6bMmMl Info http://t.co/wljNonWM Please RT #findisabelcelis

And yes, I know I broke one of my own rules in this tweet – asking/begging for the reader to take action (by including the phrase Please RT). However, I make a small exception for this one because I can; and no parent (no matter how dark your heart is) should have to live with the uncertainty of a missing child.

Rinse and repeat on LinkedIn spam

Time for another missive on LinkedIn spam. I’ve touched on this topic before, discussing the notorious Pav Sanka and his inability to use a contact for its intended purpose.

Well fast forward to today, when the equally slimy John Keats – the Chief Sales Officer of 123 Greetings (visit at your own peril). Another person from the sub-continent who feels it appropriate to ignore clearly written information on what types of messages I’m happy to receive via LinkedIn.

For those who don’t remember, here’s a recap:

Contact Settings
Happy to share my knowledge and consider job offers, but please don’t contact me with spam.

Interested In: career opportunities, consulting offers, job inquiries, expertise requests, reference requests, getting back in touch

With that in mind, here’s the message I received today from John Keats:

Subject: CPO & CPM – Strategic Partnership
From: John Keats Chief Sales Officer at 123GREETINGS DOT COM
Date/Time: April 25, 2012

Hello Michael

I represent 123greetings.com (World’s #1 e-Greeting company) with 30 million opt- in users across the globe.

We help advertisers to reach their targeted audience on CPO and CPM basis via our email campaigns.

The Average performances are 6% open rate and 5% CTR and we can target users demographically and geographically.

You can message me for more information and I will be happy to discuss with you further. You can add me in Skype (greetings_sales)

Best
John Keats
Cell phone: +1 646- 257- 3763
Email:john.keats@123greetings-inc.com

Chief Sales Officer
123 Greetings.com, Inc
1674 Broadway, Suite 403, New York, NY 10019

Ok, let’s look at what messages I stated that I’m happy to receive via LinkedIn and which of these it matches up to:

  • career opportunities: No
  • consulting offers: No
  • job inquiries: No
  • expertise requests: No
  • reference requests: No
  • getting back in touch: Are you seeing a pattern emerging yet?

So – should John have sent his message? No way.

If I had even a remote interest in electronic greeting cards as part of a marketing campaign I might be running, I would have gone out looking for the relevant information.

And looking at this companies’ website, it doesn’t inspire me with confidence. It’s a design reminiscent of mid 2000, with all the design queues which give it the look and feel of something dodgy and untrustworthy you’d associate with India – right down to the use of generic and dodgy stock photos and more advertising than you can shake a stick at.

The consideration and application of ethics in marketing is something oft ignored by less scrupulous users of social media and communication networks. Those who fail to consider ethics in marketing also fail to realise the damage their activities do to their business and reputation.

I’ll bet this is why Pav Sanka tried to get in touch with me last week by phone, considering that Pav’s own name and business name (Vinsky Consulting) doesn’t appear on Google results without my entries appearing right next to or even before him and his company. It’s the same level of permanent record that’s given to Contractjobs.com and Lucy Plumridge thanks to their lack of business ethics and my well-honed SEO skills.

So, here’s the reply sent to the latest LinkedIn spammer. Will it achieve anything – likely not. However, if it does make the person in question reconsider their obnoxious tactics and think twice before misusing LinkedIn, then it has achieved its purpose.

John,

Let me be blunt and respond to your message with a question, did you bother to read the contact box on my profile which clearly states what kind of contacts I’m interested in receiving?

Let me answer that question for you – No, you did not.

You have sent me a message, a message with no purpose or relevance to why I’m here, and offers me nothing that’s aligned to the messages I’ve expressly stated up front that I’m willing to receive.

Spend a moment in my shoes – I get several messages here a day, on top of all the other informational networks I need to participate in to stay at the top of my profession. If you think that messages like yours are a valuable use of my limited and valuable time, you are sorely mistaken.

Connecting with you is of no value to me. You’re not a social network practitioner – you’re a bleeding sales person who’s so ineffective in their job that they don’t bother to read available information and form sound judgement. There’s simply no benefit to me in connecting with someone like you I don’t even know who is of zero relevance to me.

In short – you’re just another pain in the arse spammer who abuses networks like this for their own means and wastes other peoples time.

I’d thank you to refrain from such wasteful messages, and future pay better consideration to the messages you send so as not to waste other peoples time. Needless to say, I’ll be circulating your message and my response amongst my circle of influence both online and off to make sure that they never do business with you or your company.

Michael.

As I said last year – people like John need to learn the purpose of social networks, and understand the manners and expectations that goes with using them.

A follow-up on Contractjobs.com spam: Email Blaster concurs, enforces TOS

Well it seems my publicising the spamming activities of Contractjobs.com bore fruit.

After correspondence back and forth, I have since been advised of the following by Email Blaster UK:

EBUK [has] investigated all claims made individually and had upheld the allegations that a breach had occurred; appropriate action was then promptly taken in accordance with our T&C’s which are available in the public domain.

In the discussions with EBUK, they disclosed that they had received a significant number of complaints regarding the spam activities of Contractjobs.com. They also noted that a large number of these had come in as a direct result of my original post & and could be directly attributed to my speaking up regarding their activities.

One of their officers suggested during an email exchange that they [EBUK] might like me to handle their SEO in the future. A small plaudit to me, but one I’d decline due to the sad difficulty of dealing with out-of-country customers and how I prefer to work.

A further comment on the original post by redX has also suggested that they have moved onto another electronic Direct Mail house, streamsend.com, so that they continue to send their junk.

And now for the icing on this war on spam cake: the UK’s Information Commissioner has this week accepted my complaint against Contractjobs.com for investigation.

While Contractjobs.com has moved on to use another email provider, at least this step has had some success & put the company on notice. If they’ve not cleaned up their act by the time the UK’s Information Commissioner comes knocking, then I dare say that their bad acts and fruit of the poison spam tree will come back to bite them, hard!

If you are still being spammed by Contractjobs.com, here’s what you need to do:

  1. Use Spamcop.net to identify and report the spam to their mail hosts or electronic direct mail companies.
  2. File a formal complaint with the Information Commissioner’s Office for them to investigate any Contractjobs.com spam
  3. Use the information from the Spamcop analysis to identify the company they’re using, see what their Terms of Service are in respect of spam, and complain directly to them.

Yes – taking action against spam in this method may take 30min or more of your time, however – the more people who take action against spam from UK/EU companies and corporates, the better chance we have of stamping the practice out in at least one part of the world.

By the way Lucy Plumridge – how are you enjoying the negative publicity arising from your use of the illegal fruit of the poison tree? I’m still getting truckloads of traffic from people searching for you, your company and its spamming. Talk about your chickens coming home to roost.

What’s worse: Spamming people, or using email lists gained from hacking activities?

Update:The efforts to bring Contractjobs.com to account for their spam have had result;, including Email Blaster UK taking action, and the UK Information Commissioner commencing an investigation. More information on the progress of this is available over here.


Well, you know just how much I detest spam – but tonight I’m a little more incensed.

Cast your minds back – and you’ll no doubt you remember the Playstation Network security breach in early 2011, which saw the personal details of users on that service compromised by hackers and leaked out to the world.

Well my details including my primary email address were in the information leaked. Thankfully I practice a high level of security by never using the same password twice, and not storing credit card information as well as using throw-away credit cards or debit cards to reduce the financial risks.

I have previously looked into using disposable email addresses, but these are too much of a hassle in my view. Further, my hosted email provider does not make available the use of DNS-based block lists (such as Spamcop) for filtering out & blocking inbound email from open proxies and known spam hosts despite asking them to do so.

Anyway, let’s get back to the point.

In short, an email came in at 2209hrs AWST from a Lucy Plumridge, Contract Support Manager (Lucy.plumridge@contractjobs.com, LinkedIn Profile for Lucy Plumridge) of a UK site named contractjobs.com. Here’s the email in question:

Dear redacted,

I’m writing to you on behalf of Contractjobs.com.

We would like to introduce you to Contractjobs.com , the UK’s fastest growing contract specific job site. The contract market has grown 14% year on year and many professionals are now turning to the contractor market in order to take advantage of this trend.

Last year we helped thousands of contractors find their next contract role and are already considered to be the largest contract job board in the UK, with over 12,000 live contracts both with the UK’s leading agencies and direct clients.

Please take a moment to upload your CV and you will be entered into a prize draw to win two tickets to the London 2012 Olympics this summer*.

We look forward to working with you.

Kind regards,

Lucy Plumridge
Contract Support Manager

*The competition draw will be held on Friday 25th May 2012. The winners will be notified by email and details published on the Contractjobs.com website.

Contractjobs.com, Mortimer House, 40 Chatsworth Parade, London, BR51DE, United Kingdom

Our mailing address is:
Mortimer House
40 Chatsworth Parade
Petts Wood
Kent BR5 1DE Communication was sent to you byLucy Plumridge
This system is for permission based email;
report abuse . I do not wish to receive any
further communications.

Now I know I’ve never done business with them, never supplied them with my email address, nor ever given them or a 3rd party they might deal with to contact me. The fact they were a UK operation was more interesting, as I’ve never expressed or sought out employment opportunities in the UK.

So, the only way they could have come into possession of my address is either via a purchased list, and especially one that was compiled from illegally or improperly sourced details.

Analysing the email, they used a eDM (electronic direct mail) house called Email Blaster UK. Now not withstanding the comprehensive regulations and directives on contained within Article 13 of the European Commission Directive on Privacy and Electronic Communications – Email Blaster make it expressly clear in their terms of service that;

We do not allow clients to use purchased lists under any circumstances – this applies to both B2B & B2B marketing, email databases must have been generated directly by the client’s website using the recognized Opt-in process.

So, with the EC regulations/directives and the companies stated terms of service – Contractjobs has broken the rules.

Thankfully, the Email Blaster team was hot on the case within 21 minutes of me contacting them. I’d received a response from one of their Account Managers; advising that any references to my email address or domain within the databases they hold for Contractjobs.com have been immediately removed, and that they are immediately opening an investigation into the TOS violation.

And I’d hate to be Contractjobs.com at the moment – because Email Blaster charge clients GBP 150 for each confirmed spam incident. If they have purchased or used a harvested mailing list, they could be in for some serious charges and penalties from their email last night.

Now you might be wondering why I’ve written this post – and I’m happy to tell you. I’m of the view that communication is the best weapon in preventing spam & generating awareness of the problem. And being an SEO Practitioner, I know full well that the way I’ve structured this blog entry will ensure that, in perpetuity, this incident will be permanently tagged and forever appear in the search results for Contractjobs.com. It’ll serve as a clear warning for anyone considering to use their services that they are a confirmed spammer, breached their countries anti-spam rules, and have purchased email lists obtained by illegal means.

And if you don’t think this works, ask Pav Sanka and his company VinSky Consulting International what happened after he sent me LinkedIn spam. It had immediate impacts in search engine results.

And if you know me personally, ask me about StarTrack Express and what happened to them in January 2005 after their played depot soccer with a package being delivered to me. A former blog I used to ran documented the whole incident, to the point where three negative and fully documented blog entries appeared about their own site in search results for their company name. It was even to the point where their own IT people attempted to take down my blog (a bad move, as I posted the entire log file and details of what they attempted online, creating another SEO entry outranking their own site – ouch).

So yes, nice move Contractjobs.com. Your stupidity by buying email lists obtained from hacking activities has just landed you in a nice little SEO hole. I’ll sleep easy tonight knowing that your reputation will be permanently tarnished because of your own stupidity and non-existent business ethics.

My view on Yahoo! appointment of PayPay President Scott Thompson as their new CEO

{EAV:84adeba5c5b1539f} I read The Guardian’s article with great disdain this evening, announcing that PayPal President Scott Thompson is being appointed as Yahoo’s new CEO.

A business that’s failed to innovate, allowed competitors to get ahead & steal their market share (Flickr as a prime example of this failure, demonstrated by the rise of Instagram, 500px and ors), and failed to look after & listen to their customers – has appointed a CEO who was president of a company who has failed to innovate, allowed competitors to steal market share, and consistently fails to listen to customers (today’s example of the $2,500 antique violin destroyed to prove a claim is the latest example, as well as my ongoing horrors with this nightmare of a company come to mind).

So this caused me to cast my mind back, and made me think of this quote from Season Five of The West Wing (#504, “Han”). Toby and Will are trying to write a speech on the appointment of Bob Russell as the new veep.

Having hit the wall of writers block hard, they delve into the absurd and unprofessional to best sum up their feelings about Bingo Bob Russell. You could replace all references to Bingo Bob in the following quotes with Scott Thompson – and you’d pretty much hit the nail on the head:

“‘Distinguished’ is as high as we go. You’d have to be high to go loftier. Here’s what it should be: ‘In a triumph of the middling, a nod to mediocrity, and with gorge rising, it gives me great nausea to announce Robert Russell — Bingo Bob, himself — as your new Vice President.'”
Will is typing this and gets into the spirit, adding, “This lapdog of the mining interests is as dull as he is unremarkable—”
“— as lackluster as he is soporific…. this reversion to the mean—”
“—this rebuke to the exemplary—”
“—gives hope to the millions unfavored by the exceptional…. Bob Russell: not the worst, not the best, just what we’re stuck with.”

Scott Thompson: Not the worst, not the best, just what we’re stuck with.

Examples of great documentation – Installing Atlassian Confluence

Trying to get my own digital house in order, I set about installing Atlassian Confluence last night on my Ubuntu box. Needless to say, I found the documentation provided by Atlassian deficient and frankly painful to read.

Anyway, looking around the web for clearer and more intuitative instructions to get the installation right – I stumbled across this page from Linode Library.

The above page by far is the best piece of documentation I have seen this year. It clearly steps you through the entire process from start to scratch, every step, every package needed, and how to install it in a way that will just work.

And thank heavens I found this page today, because the Atlassian documentation had left me in despair and unable to get things working satisfactorily (as in it was b0rked out of the box). Said b0rking wasn’t helped by Atlassian uploading a version of the file to the CDN platform which failed CRC checks thus unable to correctly unzip.

So kudos to you Linode, may you live long producing such elegant and useful documentation. You’re bookmarked permanently.