Nothing is True, Everything is Permissible

Sorcery: the systematic cultivation of enhanced consciousness or non-ordinary awareness & its deployment in the world of deeds & objects to bring about desired results.

Saturday, 5 July 2008

Cloud or Mesh. Relational or Heirachical. Highly Distributed Logical Data Centres

As you know I'm really interested in how web applications are going to be architected as the internet age moves on. One of the dichotomies I'm trying to resolve in my mind is how data is stored with highly distributed applications.

What do I mean by distributed? For the purposes of this post let's just assume this means an application that is accessible from different devices, and is not bound to a single machine. Classically, this is a web site, or a client application that uses some kind of API to store data on the web.



Seems that the approach up until recently was to store your data on servers in a co-lo or dedicated data centre. Meaning that as an application developer and/or operations dude I have to scale my application based on physical architecture I know about. Generally as my app scales that means I need, eventually, to horizontally scale my database across more than one logical database. This is not straightforward, and even with the introduction of Hibernate Shards I really need to think about that. And this probably means I'm going to denormalize my database and have to work out how to synchronize some of the data I'm storing across these different logical DBs.


It strikes me though that with "cloud storage", things like Amazon SimpleDB, or Google's App Engine, that I may want to start with a herichacal database that is denormalized by default. No more Joins. I guess we've had this option for a long time with things like Oracle Objects, but seriously, have you as a developer ever tried to use that beast? Not fun. Google and Amazon (and soon Microsoft, with Sql Server Data Services) will have solved that "synchronize data in a denormalized logically partitioned database in many data centres" problem for me. So should I start by using that approach? Should I offload my database to these guys and just pay transactionally for what I do? This means a significant mindset change for me, I'm so used to drawing out relational diagrams, and I'm so used to using ORM or other mapping tools to abstract me from that. I need to change my mindset to think differently. But I guess the benefit of this approach is that from the beginning, provided these big guys aren't lying to me, I have an app that will scale, that will respond consistently, is backed up and disaster-resistant and that I only need to pay for on demand. This is Goodness.


Can't help thinking that this approach still requires a bunch of datacentres, the associated power and this, as an app developer, will have an eventual cost for me.


This brings me to Mesh, or Grid computing. If you're reading this, your PC is on right now, and, as I am using Blogger to host my blog, you're pulling data back from Google. Now, I don't have the worlds most read blog, I don't get thousands of hits a second, but still, for everyone who has read this blog there's a good chance that all this text is cached on their machines. And it's originated from the machine that I type this on.


You're familiar with swarm based file sharing right? Where somebody seeds a file, and then others leech it, and when they have downloaded it, they become another seed on the network? Indeed they can start sharing partial data as soon as they've downloaded it? There's no central store of this data, just some metadata that tracks where the bits are. This is how BitTorrent works (and indeed, how the BBC iPlayer works in offline mode, which is why they ask you to dedicate 20GB of hard drive space)


Why don't we have this approach for other forms of application?

I envisage a future where logical heirachical databases are partitioned across end nodes, such as the PC you're reading this on, and where your PC can take part in large map/reduce calculations, and that (best of all) you can have your PC and broadband for free, because application developers are renting space on it.

Google and Amazon are busy building out compute and storage in the cloud with all their data centres, for which they have to pay for power. Good for them. But, TELCOS already have the makings of a grid which could, with some clever software compete with all this, and at a much lower cost base.

In my house I have a BT Home Hub. This is a wireless router, and connects back to the internet through BT as my ISP. What's more, it's just an embedded Linux Device. Further, unlike my PC, I tend to leave it on the whole time. There's also enough space in it to throw in a hard drive, or some solid state storage. It could act as a node in this grid I'm envisaging. It could even negotiate with the PCs connected to it and utilise their storage and CPU.

BT could give this to me - for free - and then charge back to application developers the cost of storage and compute. Without the need to ever build data centres, and offloading the cost of all the power required to run server farms.

I understand that there are issues around latency, concurrency, routing, and a whole bunch of other problems to solve. But I reckon, that rather than attempting to replicate the approach that Amazon and Google and a host of others are doing, telcos should concentrate on taking their existing deployed Customer Premise Equipment assets and building out storage, compute and content distribution based on this.

What do you think? Am I in cloud cuckoo land again?

Wednesday, 18 June 2008

No Mouse or Keyboard detected - press F1 to continue

I've been wondering how much longer the vast majority of people who use computer based equipment will continue to use a mouse and keyboard as their primary input devices.

iPhone users, you probably know what I mean already, huh?

While the keyboard has served us well, and the mouse is great for pointing and clicking, neither of them strike me as intuitive interfaces for deeply immersive user interfaces; and that's probably because of the misdirection involved in using them. When I type at my PC, I look at the screen. My fingers tap away at a keyboard, and it is only through years of practice (and of classical piano training) that I can manage to reconcile, fast, the fact that the input device requires separate neural processing to the output device.

Likewise with the mouse. For navigating around two dimensional, hypertextually linked applications, it's OK I guess, but as soon as I want to attempt to draw something, or zoom in on an image or a section of the screen I'm a bit stuck, and have to often co-ordinate keyboard and mouse to make things work. Mac users (least, those who haven't bothered to get a two key mouse) know this more than most - press CTRL for right click? Who thought that up? I understand that the Mac is partly about making simple tasks simple, but I reckon most people can grok at an intuitive level the concept of "left click for action, right click for context".

Saying that, I've never quite mastered the middle button on a mouse, except when it serves as a wheel as well. What was that third button for? It's like the third pedal on a piano you occasionally come across. What the hell is that for? Never saw a piece of music that refers to it in 14 years of classical training, or since.

I digress. I saw this little Minority-Touch-esque video yesterday and wondered if the time is right yet to reposition my career as a "Multi Dimension & Multi Touch Interface Human Design Specialist"

That's a career which doesn't yet exist. But it will.

Now naysayers will come along and tell me that they don't anticipate that they'll ever stop typing. Folk were loath to leave quill and ink behind too. I must admit, I don't quite know what will replace my 70+ words per minute typing speed with something that doesn't require me to dictate (still haven't got my head round that one, not for want of trying - the words seem to flow better when I type, and I don't have to go back and delete all the "ums" and "erms" and "ahs")

But what I do know is that the amount of time I spend interacting with data visually is increasing.

I love my Squeezebox, it's a great way of getting audio round the house without having to run computers or hard drives in the front room. The next version, the Squeezbox Duet has this great remote control which allows me to navigate by album cover. The remote itself is a Wi-Fi enabled device. (I'll post more on exposing your music collection over the internet using SqueezeCenter another time)

Squeezebox Duet Network Music System

But it's still not quite CoverFlow-As-Remote-Control. And CoverFlow still sucks at letting me browse through my extensive (3000+ albums) digital music collection

Now, what I want is an interface that looks like a CD collection, but in glorious Multi-D. Where I can navigate it based on all manner of factors, Where I can Zoom in Deep. Where I can move from one "room" to another. Where I can jump straight to an artists web site. Or all manner of interactions when I treat items in my music collection as Social Objects. And where I can manage this on a number of devices, from a wall mounted screen, to a PDA, to a headset based experience (you have to check this out)

Over the last decade and a half of my career in software I've been building flat, boring user interfaces, either for the web, or for the desktop. The next generation is not gonna be happy with that. They will expect their over-specced, highly connected, under-priced equipment to do more for them than that. They'll be comfortable with augmented reality (and may even be as lost without their overlay glasses as they are today without their mobile phones). They'll be over the concept of "media ownership" and will expect things to be shareable. Like playing pong over multiple iPhones

I know for a fact that there are not nearly enough User Experience (UX) specialists in the world. And this is probably because all the stuff beneath the UX, stuff to do with data persistence, graphics rendering engines, networks, systems integration etc, has been more than enough for the world of Software Engineers for the last 15 years or so. But I forsee a world coming, and soon, where many of the Hard Data Problems all start to disappear, and where aggregation and rendering of these ceases to happen server side, and instead, it will be smart, graphically rich clients, with multi-touch interfaces bringing it all together in the user experience. What is a software guy to do? Well, until the tools and frameworks are at a high enough level that anyone can build those experiences, I think there is still work for us.

So, blogosphere, if I were to reinvent myself as a "Multi Dimension & Multi Touch Interface Human Design Specialist" where should I start? What should I read? What should I be learning? Bear in my mind that I have very little graphic design experience, and it's not really prettifying stuff that interests me, it's in making things usable in ways we are not yet familiar.

Here's some more things that inspire me in this space

Silverlight Deep Zoom

3D in Flash v.Next

onorientationchange

multitouch in javascript

Microsoft LaserTouch

Project Looking Glass (seems dormant?)

What do you think? Ask yourself again at the end of a day of RSI inducing activity

Sunday, 15 June 2008

shattered_and_emotional.mp3

Download/listen here (100Mb or so)

It's been an interesting week. After bouncing back and forth across the pond several times this year, I took a week more or less out to rest; it was well needed and I feel very refreshed and ready to pick up the pace again tomorrow morning.

Amazing what happens when you take time for yourself. Things open up sometimes and opportunities occur that you just don't see when you're moving headlong at an air speed of 500 miles an hour. Let's just say that, partly due to a funeral I attended this week (mostly to support close friends), there has been some unexpected, emotional honesty that has, frankly, made me feel a whole lot better about life and myself. Not gonna say any more at this point, I'll leave it cryptic for now. Those involved will know what I mean. Things still need to work themselves out, and I'm in no real hurry, even though a good part of me is impatient to get to a denouement.

Anyway, I woke up this morning, and the sun was out. I packed the car with swimming things, we set off to pick up one of my daughters friends, to spend the day jumping in and out of the River Dart, and then, this being a British Summer, naturally the heavens opened and started to drench us. River trip cancelled. I can't complain too much, most of the last week was fabulous and sunny.

So home we come, and I decided to do a mix. I've had a couple in mind, one of sorta funky summery kind of tracks - the rain did for any funkful inspiration I may've had today. Another mix has been pending of kinda lurve songs - but that just didn't feel quite right to do today either, for one reason and another.

So I did a mix of purely electronic tunes. Broken beats, occasional stilted lyrics, shattered melodies. Once or twice you might feel like dancing. You might feel like getting weepy. You might barely recognise some of this as music. There are frenetic moments, still moments, and almost everything in between.

This is not music you're likely to hear in the clubs, or on the radio. Maybe if you're in a chill out room in Germany...

I wonder if my regular listeners will struggle with this one, perhaps more than the showtunes of a while back. Though it would be for completely different reasons.

If you like it, let me know! If you don't, it's fine for you to keep your opinions to yourself, thank you very much. I do these mixes mostly for my own self indulgent purposes.

shattered

StartArtistTrackAlbum
00:00Matmos
In the Master BedroomA Viable Alternative to Actual Sexual Contact
05:45FreeformDiceAlt. Frequencies
13:23AGF+DelayThe Return of UsElectric Ladyland Clickhop Version 1.0
17:23MRIData BoogieAll that Glitters
23:55Telefon Tel AvivFarenheit Far Enough (Prefuse 73 Bonus Beats remix)Immediate Action #08
27:02Si BeggEnglandDirectors Cut
31:26TussRushup I Bank 12Rushup Edge
36:02ClarkNight KnucklesBody Riddle
39:41TrioskIntensives LebenThe Headlight Serenade
45:55B FleischmannPhones and MachinesThe Humbucking Coil
50:48Christain KleineQuentinBeyond Repair
56:00Global GoonLong WhineyCradle of History
59:42BurialPiratesBurial
65:34Susumu YokotaTears of a PoetGrinning Cat

Tuesday, 3 June 2008

Death of Technology Without An Interesting Name?

 

Microsoft have, in their wisdom, decided that all scanners and similar image acquisition devices need to support Web Services, with an obviously named protocol - WS-Scan.

Go. Figure.

Does this mean we will see TWAIN no more?

From the MSFT press release:

This collaboration is a response to customer and industry interest in having the WS-Scan Service Schema mapped directly to the PWG Scan semantic model,” said Jack Mayo, group program manager with the Windows Experience team at Microsoft. “The benefit to customers will be making great scanning solutions for Windows-based interoperable with other platforms. The ability to make interoperable solutions will also greatly reduce the development burden on the PWG partner companies.”

So the only reason I posted this is because TWAIN is one of my all time favourite acronyms, commonly, if unofficially, understood to stand for Technology Without An Interesting Name. And I don't normally find reasons to refer to that. Seemingly pointless MSFT initiatives don't really worry me that much.

Thursday, 1 May 2008

inadequacy.mp3

Download or stream from here. about 91Mb

I started out thinking I'd do something happy, given that it's May, and at least in the northern hemisphere summer is approaching. Think we in the UK have our summer on the third Wednesday of the month normally.

Thought it'd be happy. But ended up somewhat different. Maybe it's just me.

No particular blurb, but if you've made mistakes, screwed up, or just felt wrong this mix may just resonate.

Or you may think, once again, that my taste in music is odd and just completely worth ignoring. You're probably grateful that at least it isn't more showtunes!

Comments on what you like or don't like are more than welcome

TimeTrackArtistSource
00:00CodaKramerThe Guilt Trip
01:33Don't Tell Me I'm Wrong (But You AreImitation Electric PianoTrinity Neon
05:35ApologiesJames FigurineMistake Mistake Mistake
11:17No-one's Wrong (Giricocola)Scout NibbletI Am
15:31Nine Plan FailedAdam and the AntsDirk Wears White Sox
20:41One Step Inside Doesn't Mean You UnderstandNotwistNeon Golden
23:54In At The Beep EndP P RoyYou Can't Help Liking
26:45This Is All WrongStyrofoamSplit 7" with Dntel
31:42ForgiveThe Living JarboeDisburden Disciple
37:46What Is WrongTrickyVulnerable
41:16The DownsMinotaur ShockRinse
45:54All Your Women ThingsSmogDoctor Came At Dawn
52:30A Voice At The End Of The LineM WardTransfiguration of Vincent
54:40Suicide Is PainlessKate Earl & Bardi JohannsonLady & Bird
57:30LordyLow & Dirty ThreeIn the Fishtank
61:02I Dare To HopeKing MissileFailure
TailCoda (repeated)KramerThe Guilt Trip

4:20 4/20

On a recent trip to San Francisco I found myself strolling round Golden Gate Park with a friend at exactly this time, as part of the Earthday celebrations.

Or at least so I was led to believe.

Turns out that at this time, on this day, in this location a number of like minded individuals gather to meet and celebrate. It was quite a thing to behold. After being part of the celebrations for a while, even the drumming circle managed to sound cogent.

I took a short video of the event, on my phone, so I'm afraid the quality isn't great. Nevertheless, I thought I'd share, I'm sure you'll get the idea.


Wednesday, 23 April 2008

RickRolling the Phone Network at Web 2.0 Expo

I built a little demo for Web 2.0 that rick rolls the phone network. If you haven't come across rickrolling, the basic concept came about when people started getting sent links to the below Rick Astley video


Most annoying. Some of the implementations refused to let you close the browser window as well.

Well, I thought that for the Web 2.0 Expo I'd do that to the phone network, and try and get folk to rickroll each other. So in a midnight-through 3am coding session, I came up with a cool app.

If I haven't taken it down yet (that'll happen on Friday 25th April) you can try it.

Just send an SMS with the word "rick" to +447800000320

If it's still working you'll get called back - press a key, and then you'll get the dulcet tones of Rick Astley crooning at you across the phone network.

So, how did I build this?

Using, of course, the fabulous Web21C services from BT, and CallFlow in particular.

I used a YouTube downloader to pull the Video down, and extract an mp3 file from the flv file. Then used Sony Acid Pro 6 to edit it and convert it to a suitable format (open source products such as Audacity may be used!).

I uploaded to the CallFlow platform the resulting wav file, rick.wav, and another one, press.wav. They need to be there so that they can be played back to the poor victim over the phone line.

Then I got hold of an Inbound SMS (Mobile Originated) number from my colleagues; if you want to use this service you have to register, and order a number through the web site. But once you've got it, implementing the rest of the code is dead easy, and will run off your laptop!

Wanna see some of the code? Here's some of the highlights. Written in C#, as a console app; BT has SDKs for Python, PHP, and Java too.

1. Retrieve messages and clear them down from the BT servers

Collection<Message> messages = smsIn.GetReceivedMessages();
Collection<string> mIds = new Collection<string>();

foreach (Message m in messages)
{
RickRoll(m.MessageText, m.SenderUri);
mIds.Add(m.MessageId);
}
if (mIds.Count > 0) smsIn.ClearReceivedMessages(mIds);

2. The highlights of the RickRoll function, creating some XML for placing the call.


//create the callflow XML
StringBuilder sb = new StringBuilder();
sb.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
sb.Append("<callflow xmlns=\"http://sdk.bt.com/callflow/2007/04\">");
sb.Append(String.Format("<call id=\"start\" target=\"{0}\" next=\"check\" />", roll.Target));
sb.Append("<prompt id=\"check\" audio=\"press.wav\" barge=\"true\" firstDigitTimeout=\"30\">");
sb.Append("<input pattern=\"0\" next=\"prank\"/>");
sb.Append("<input pattern=\"1\" next=\"prank\"/>");
sb.Append("<input pattern=\"2\" next=\"prank\"/>");
sb.Append("<input pattern=\"3\" next=\"prank\"/>");
sb.Append("<input pattern=\"4\" next=\"prank\"/>");
sb.Append("<input pattern=\"5\" next=\"prank\"/>");
sb.Append("<input pattern=\"6\" next=\"prank\"/>");
sb.Append("<input pattern=\"7\" next=\"prank\"/>");
sb.Append("<input pattern=\"8\" next=\"prank\"/>");
sb.Append("<input pattern=\"0\" next=\"prank\"/>");
sb.Append("<input pattern=\"#\" next=\"prank\"/>");
sb.Append("<default next=\"unprank\"/>");
sb.Append("</prompt>");
sb.Append(String.Format("<announcement id=\"prank\" audio=\"{0}.wav\" />",roll.Prank));
sb.Append("<hangup id=\"unprank\" />");
sb.Append("</callflow>");


//Call BT's Callflow Service and place the call
roll.CallFlowId= callFlow.StartCallFlow(sb.ToString());

There really isn't very much more to the code - a bit that monitors each callflow to check that the phone was answered - the script does a "Press 1 if you're not an answerphone" check


The entire code is downloadable here - you won't be able to run it straight of the bat, because of it's reliance on an inbound SMS number tied to my account, and certs referenced in a config file - get your own from BT - but it may be interesting to read.

Monday, 21 April 2008

A Day out at Oracle

I'm on a weeks tour in San Francisco and Silicon Valley as part of WebMission 08. As part of this I'm spending today at the Oracle Campus.

Many interesting speakers today, and this post will hopefully reflect what I hear. Quotes are NOT verbatim, but rather show the intent of the speakers words. Expect a sprawling post.

First up is Ken Jacobs from Oracle, VP Product Strategy, been part of Oracle for 27 years, when there were only 18 people in the company, and has seen the company grow to 80,000! In 1977 it was a consulting company, and then, to become their own bosses, they decided to build a relationship database. The Oracle DB was originally based on a product developed by/for the CIA - I didn't know that! At the time a SQL based relational database was a huge innovation. They moved the code from assembler to C - for Compatability, Portability, Connectability. Then in the late '80s started building client/server applications; HR, ledger etc.

"Timing is important - don't release what the market isn't ready for."

"Oracle's acquisition strategy is to keep up, and lead as the market consolidates."

Ken is now leading an Open Source database initiative inside Oracle. Gosh! He led the purchase of InnoDB, and it is based on that. The technology is included in MySQL among many others. They also own SleepyCat/BerkeleyDB for embedded databases, and are members of the Eclipse Foundation, and recently donated IP to the Apache Foundation.

Next up is Paul Pedrazzi, who came into Oracle from Peoplesoft, and now leads on Web 2.0 innovation in the company, in a four/five man group called the AppsLab. He talks about Enterprise 2.0. First thing he built was an "Ideas" site, where anyone can contribute and tag ideas. Tags can be created by the users and are not prescribed - rather guided with autocomplete to avoid duplication. Tags then can be monitored with RSS feeds. The Ideas site is now folded into Oracle Connect, their internal social network site. One of the interesting features here is Kudos - where folk can praise an individual, useful for Performance Mgmt. It is tied into their enterprise system, so the activity feed shows when folk change jobs, or move offices etc. He's building in file & bookmarking tagging and recommendation.

Joined by Vince Casarez, VP product strategy in Web Center. Vince takes experimental and research projects and productises. He's building Enteprise 2.0 Web 2.0 apps. Looks a bit like every other portlet type app on the planet, with enterprise hooks; not surprising as it's based on Java Server Faces. The CSS looks like it's lifted from Sharepoint!

Overall on the Oracle demos, interesting that they show things that are at least in part in direct competition to some of the start up companies here as part of WebMission, rather than showing how Oracle products are relevant to them and can help them grow. Maybe they just wanted to show that they are Web 2.0 Cool. But I don't grok how it really matters to this audience, today.

 

Next - Mike Butcher from TechCrunch UK introduced a panel discussion with Mike Murphy, Sales from Facebook, Liz O'Donnell from LinkedIn and Mike Culver from Amazon Web Services.

Mike Murphy. "Sticking banners all over the site is not the answer. Also avoid disguising advertising as content. Ask the users what they want". "We care passionately about how application developers are incentivised". "Advertising on canvas pages is a hodge podge at the moment - consistency is being worked on". "There will never be a toll booth in front of developers". "Keep the users, marketers and application developers first, and we'll (facebook) be alright". For developers - "Deliver utility, make it worth the profile real estate, throwing sheep doesn't cut it. Most important; make it easy to share your app". "Mark Zuckerburg is a visionary, and has no idea about Ad Sales. Let's me do my job"

Mike Culver. "The world is about ideas - this business is about ideas". Mentioned Animoto and growth from 50 instances to 3500 instances in three days. There are now 2 folk - not developers - from AWS working out of London, to cover Europe. "Jeff Bezos focus is purely on the customer; he'll do whatever he can to cut costs. My desk is a door turned on it's side with legs screwed on" Wow.

Liz O'Donnell."You spend the same time building a small business as a large business" Not sure I agree with that; in tech terms maybe, but marketing? "If you're the first in a social, viral app, you have to be an early adopter, or there's no reason to be there". "The criteria for local offices - avoid focusing on monetisation too soon, but when you do, sales must be done locally". "We're part of OpenSocial, but will be controlling the apps available in LinkedIn". "Early on as the company grew Reid Hoffman found a CEO - he didn't want to manage"

Mike Butcher - should the 20 startups establish a Valley presence? All three said "Yes".

 

Next up - Vishal Bhagwati from Oracle talking about how they do Mergers & Acquisitions. States that for a start up IPO is not really an option at the moment with the state of the economy.

  • Provide complete solutions
  • Move beyond ERP to complete business solutions
  • Remain extensible, increase security
  • Have a common technology platform based on open standards

Oracle has been the largest and biggest software acquirer for 5 years. There needs to be a strategic fit, a sales fit (customers in common), an integration fit (must integrate in around 6 months, mostly around back office rather than product) and a financial fit.

 

I'll post more about Webmission in due course.

Friday, 11 April 2008

Small Businesses and IT

One thing that I am 100% convinced of, is that over the course of the second half of 2008 a new class of application will begin to emerge in anger. Rather than being based on an underlying Single Machine Operating System, it will be composed of “cloud” services.

So where EC2 and S3 provide compute units and storage in the cloud, the next stage is to compose higher level functionality into cogent solutions, and no longer worry, from a development platform, what Single Machine Operating System lives underneath. The platforms to support these are currently divergent – Force.com , Google AppEngine, the platform that MSFT are clearly about to launch – these allow you to create generic functionality on fully hosted platforms, but from a 50,000 foot view they provide automatically scaled out, redundant platforms, generally with storage, data, and UI components.

Add a bit of Google Gears, or Microsoft FeedSync, two different techniques for occasionally connected apps (and, the piece often forgotten, occasionally unavailable Platforms-In-The-Cloud!)

Mix in a bit of Hosted Exchange, which you can buy from all over the place, or Google Calendar.

Throw in some oAuth and OpenID for decentralised delegation and authentication.

Add some hosted IVR or SMS from solutions like that from my employer, and you too can have CTI like the big players.

And it looks like the applications that SMBs will buy in 2008/2009 will look very different to the ones they bought in 2007.

This leads me to the conclusion that both sales and reward, and software development processes for small ISVs will start to look very different from today's models. Instead of on-premise based software, or even ISV hosted solutions, generic, composable mashups will be assembled from cloud based primitives through an oDesk type model (no more staffing issues!), and then “mashups of mashups” will probably get sold through a network of affiliates who do highly localised (both geographically and vertically) marketing and the small amount of custom integration work – which will be largely graphical – required for an end customer. Reward models could be based on subscription payments from end customers, and revenue share to the affiliate channels

The problem is working out which generic functionality, and which SMB verticals to address first!

Are you an SMB? Would you like me to come and build you some software? What's the itch you have that needs scratching? Which of your staff could be replaced by a clever machine? How can you empower your customers to interact with your business in ways that benefit both you and them?

Trust me, small business software is easier, quicker, and less risky then it used to be. If you want to know more, I can be reached, in the first instance through this blog.

Saturday, 5 April 2008

Nicest Airport Experience Ever

I'm in Israel for Microsoft TechEd where I'm speaking with a friend of mine, Shy Cohen.

Microsoft have really done their best to make me welcome here. As I stepped out of the door of the plane at Ben Guiron airport in Tel Aviv, there was a friendly chap waiting for me (first time I've ever been met by a stranger with my name on a piece of paper), who escorted me past all the queues for immigration, wheeled my luggage through customs and got me across to the domestic terminal.

Now OK, I've got a 4 hour wait for my next flight south to Eliat, which is dull, but, joy of joys, there is FREE Wi-fi in the airport terminal. And I think I'm the only person using it, as the terminal is largely empty; today is the Sabbath and it seems this is taken pretty seriously around here.

Next to find somewhere to plug the power in - this may be a little trickier... I hope I brought a suitable power adapter.