Entrepreneur

You are currently browsing the archive for the Entrepreneur category.

A long time ago, I got the chance to go to the Grand Canyon. It’s pretty amazing, I don’t really have the words to describe it adequately. It’s just amazing…at points it’s 10 miles from edge to edge, with a near vertical drop-off to the bottom. It’s huge. But at some places you can look across to the horizon and see flat land stretching outwards, then when you take a few more steps and see that there is an enormous chasm between you and the edge of the world.

Software seems like that to me at the moment.

We’ve discovered the power of the Internet, and being connected. We’ve discovered that we can devise new applications for groups of people, that we can aggregate information for something larger than the individual bits. We’ve found out that being able to access information from anywhere is hugely useful.

But our desktops and the Internet are two completely separate software worlds.

If we build a web-based system then it’s accessed through a browser and can’t interact with our desktop.

If we build a traditional bit of software then it has to be installed to be used, and it will be subject to platform quirks and problems with particular configurations.

There’s a chasm between the two worlds.

AJAX and Web 2.0 is better, but at the root it’s an attempt to make the browser behave like the desktop. And it’s subject to it’s own problems. Nevertheless, I think that this is a step towards the solution.

Here’s what I want:

  • I want to be able to make applications that are client-server in nature;
  • They should expose a web interface for when I’m not at my PC;
  • They should have a federated data-store behind them; that is, there is some data I don’t want to expose to the Internet but the data that is exposed to the net should be part of a bigger whole, rather than a copy. Alternatively if the data exposed to the net is a copy, then syncronisation should be 99.9% automatic;
  • I want to be able to run any application without being connected to the Internet, maybe with reduced functionality;
  • I want my applications to enjoy all the benefits of normal desktop interaction; the granularity of actions should be small; I don’t want to think of the world in pages, and I do want to be able to drag and drop;
  • I want to be able to try applications without an install. I’m willing to install if I decide that something is useful.
  • I want security; I don’t want my PC open to crackers.

Mostly, this vision is already achievable. (Microsoft is calling this sort of app a smart client.) But it takes hard work because you have to build the infrastructure by hand. In fact, most of the infrastructure is re-usable and should be abstracted into a tool and framework.

Now there are two or more environments that are partly suitable:

  • Java. Can run on the desktop. Can run on the server. Can run on multiple platforms. Can deliver responsive apps – witness Eclipse. But there’s no easy way to build dual-headed apps that I know of. Do you know of a way? There’s the ability to run from the web with Webstart.
  • .Net. Can run on many versions of Windows. Runs on client. Runs on server. Has good integration. Can build dual-headed apps. But it’s not great for delivering software if you don’t want the source to be readable. Granted you can get an obfuscator, but a industrial-strength obfuscator should be part of the basic package. A big downside: you need the giant 20MB runtimes to be on the client machine. There is no linker available as part of the MS package which would reduce the size of most apps and allow you to ship a single file, but you can buy one from Remotesoft. And lastly, .Net isn’t big on platforms other than Windows.

I’m sure that there are other ways of doing this too; for instance, if you install the PHP and GtK runtime on the client then you could use PHP locally and remotely. But other solutions are less integrated.

Overall, I don’t think that either of these solutions are great. It seems like it’s going to be write-n-times for a while.

I keep a ginormous todo document cum notebook cum scratchpad. Over time it’s been in different formats. It’s been a paper document, a text file, a Word document (that was a failure), currently it’s in an app called KeyNote.

I like KeyNote for a bunch of reasons:

  • It’s open source. Not very active, but if I ever want to get involved I could.
  • It sits in my system tray and is always available
  • It instantly saves changes. I don’t need to remember to press Save.
  • It saves all the notes in an open format, with all the notes in one file.

But I’ve got some annoyances and they are growing.

  • I want my notebook available all the time, wherever I am. If there’s a computer I should be able to use it. More about this below.
  • I want a much more dynamic categorisation system. KeyNote uses a tree and that’s good, it can make links. I like the wiki thing that links happen automagically. And I like to be able to tag to make links.
  • I’d like to be able to make portions available to other people.

Available all the time, everywhere. I want a system that works as a local application, but has a web repository and is useable via a web interface. The web interface must be slick. If there’s no internet connection then the software should continue to work. And it should sync up later.

(Actually there’s a general problem here: I want lots of software that has a web interface to the data and a local version which work on common data. It’s a problem that I keep thinking I should address, but there’s not much money in infrastructure. On the other hand maybe the solution could be embedded in a general tool like Dreamweaver embedded web design.)

I found EverNote last week, and I’m trying it out to see if it’s a viable replacement. It pretends it’s a never-ending roll of paper. You write new notes at the bottom, and group them by classifying them with tags.

It’s certainly got some of the features I want and there are lots of good things to recommend it. The basic version is free! (Not the code though.) It’s easy to add stuff. It’s pretty easy to tag. It sits in my system tray. It may be suitable. Sometime in the future it’s going to be able to sync, which suggests that it will be using a repository.

On the other hand, I’m finding the interface a finicky. And not pleasing on my eye. Maybe it’s because I don’t yet know how to use it. But it should be discoverable. Maybe they need a graphic designer on the team.

I had hopes that blogware would do the trick, but it’s not because the focus is on publishing. At least it’s not yet. Maybe things will change. 

So, some market research: If I build the software, is there a market? How many of you are looking for this sort of thing? If you read this, and you think it would be interesting, send me a mail at notebook at tanasity.com. Don’t worry if you are reading this a couple of years after it was written. I don’t expect to be writing the program tomorrow. Tell me what features you yearn for.  

In the last few months there have been a number of buy-outs of, and investments in companies that you wouldn’t normally think were suitable. For instance I saw a few days ago that Konfabulator had been bought by Yahoo.

Why is this happening?

I think that they are strategic investments and that there are several reasons:

  1. To deny talent to the competition
  2. To position for The Next Big Thing
  3. To prepare for Windows Vista

Of the 3, I think that the third is the most important, so we’ll come back to that.

Buying up talent is a great way to blunt the development of companies who are working in the same space as you. There are numerous stories of technology companies going after the people who underpin their competition, offering them large salaries and interesting jobs. Often just before an important product announcement. The right talent is important in businesses based on intellectual property.

When I was at school, I used to avidly read Byte Magazine. I remember techno-lust for new and interesting software and insanely great hardware. And it was always just out of reach. Nothing drives lust more than what you can’t have.

Large companies know very well that they aren’t the likely place for innovative stuff to happen. In a large company, you are driven by ROI, not by tech. Large companies like predictability because so many people have jobs that depend on continued income. Large companies have problems tackling niches; why spend time and effort of highly-paid people on interesting ideas when you can’t immediately show payback. So large companies look for ideas at the right stage of ripeness and either buy out or take the idea and re-implement it. Bet you Microsoft has a desktop blogging tool under development. It’ll probably be delivered as part of Vista and tied to MSN Spaces. (Or maybe they’ve got it, and I just don’t know.)

The last and, in my opinion, most important reason has to do with Microsoft Vista (nee Longhorn). Sometime in the next few years (take those published release dates with a great big dose of salt), Microsoft will release Vista. They might even hit the latest schedule. Software development isn’t easy, so this is not a dig at them – it’s a fact of life. Vista is real enough for companies that depend upon Windows to start thinking about their future. That’s because when people install a new operating system, they expect big changes. You expect stuff to break. You don’t expect programs to stop working when you install fixes and updates. There’s a big transition event that Microsoft can take advantage of to change behaviours.Like maybe Yahoo or Google won’t be your home page in your browsers after installing Vista.

So there’s potentially a direct threat to Yahoo and Google and other companies that depend on Windows. And it’s dependency upon a competitor. That’s bad when they’ve got an opportunity to slip a knife in your back.

So what Google and Yahoo, and other Microsoft competition want is desktop applications that have a large installed base. They should have automatic update built in. They should be a part of users experience, so much so that Microsoft would have huge backlash from breaking them. They should be lightweight, ideally with regular updates. Because if you get shoved off the desktop, you need a mechanism to put yourself back in the right place, and automatic update which doesn’t depend on Microsoft will be the way.

I reckon it’s a key reason why Bram Cohen and Bittorrent managed to raise so much money; they have 45 million users and a hefty percentage of the internet traffic. Microsoft aren’t going to be keen to interrupt that.

Some obvious knock-ons:

Microsoft will probably improve their firewall. They’ll may put scary warnings in place about software contacting a server or downloading. Like imagine if you were working and you got a message that said ‘An unauthorised program is attempting a large download. This could be a virus. Press Stop to halt the download or Just this time to allow this program to continue.’ Most people are not going to be keen to carry on with the download.

There will be more buyouts of this sort of tool.

Google and Yahoo will be giving a lot of money to Mozilla.

Google will try to deliver more apps that integrate with the desktop

It’s a good space to be in for the next year or so.

 

 

One of the (many) things that bug me about software is the disconnect between design, documentation and the software itself. Some developers say that the source code is the documentation – and they’re right – the source code for a program tells you what it does in excrutiating detail. But source code usually doesn’t tell you what the program should be doing, or what the design decisions were when the software was being developed, or the ways that the software has been extended or the background to the problem. Most of these things are held in other documents or peoples’ heads.

That’s very annoying.

The documents get out of date as the program overtakes them. They get lost in the pile. They lose their relevance.

It’s not a new problem. Twenty years ago Donald Knuth came up with Literate Programming. His idea was that you should build the program as part of a narrative and the tools should understand which parts of the document are the program itself and which parts are the documentation. Actually, that’s the ideal, but you can use existing tools with only a little work, by writing a literate program, and then extracting the code and pushing through your normal tools. In Literate Programming this is called tangling.

He and his students built an excellent system, but it has never caught on widely. There are a number of likely reasons:

  • Literate programming introduces a new layer of development and requires discipline
  • IDE’s don’t support the style and the benefits in using an IDE outweigh the disadvantage of not having Literate Programming.
  • It’s not already a standard
  • There aren’t tools that support lots of programming languages, while many projects require the integration of several toolsets
  • The tools that do exist are often rudimentary
  • There’s a lack of comercial support

In the meantime XML has grown up. Now a while back, some smart people realised that a document based SGML or XML was a pretty good way to hold the elements of a Literate Program, the prose and the code. In fact some people went further and realised that it would be quite good if you could include a range of communication elements. Text, graphs, pictures and more

And now we come to OpenDocument. It’s got the markup for just about everything you need in order to create a workable Literate Programming environment, and it has the bonus that if you handled the document through a database-style manager, then you could have best-of-breed software to work on each part; you could write the code in your favourite IDE, the text in your favourite word processor, the diagrams with the most suitable diagram editor.

And everything would still be held in one place, accessible by many tools. With the added benefit that members of a team would all be able to work on the document at the same time.

Anyone interested in the details of what I think needs to go into to this to turn out a product?

 

Patching Word

Because Microsoft have said that they have no plans to add OpenDocument format abilities to Word, there’s a huge opportunity to build a fix for Word that allows it to open, edit and save in OpenDocument format.

I’ve written bits of code in Word from time to time, it’s possible that this could be done from inside Word, but it’s not likely. However, most places it’s legal to reverse engineer for interoperability, so it’s probably feasible to write the code so that it patches Word. In due course Microsoft will have to interoperate with OpenDocument, so there’s a chance that they would buy the company.

I listen to Internet radio most of the day. I vary between BBC Radio 4, and music radio. I have eclectic tastes: I listen most often to Radio Paradise, which plays a huge range from Bach to the Pixies and everything in between. I also listen to a bloke who I think plays music from his home PC so that he can listen to it at work. I won’t list the URL here because he only has a couple of streams and I’d really like to continue listening.

For ages I’ve known about AudioScrobbler, which tracks the things you listen to, and can make recommendations. But I’ve never found the time to have a close look. Today on a whim I went to their site. I discovered that the team behind AudioScrobbler have started last.fm which plays exactly the music you like.

All of the time. For everyone.

What a terrific idea!

They are hiring. I have the skills they want, and more. They are in London. For a few moments I seriously considered sending them a CV because it’s exactly the sort of application of social software that interests me and this is going to grow exponentially. I’ll leave it for a few days and the feeling will wear off.

I’m interested in the finances. When you listen to Radio Paradise, they constantly appeal for money. How will last.fm make break even? Maybe they’ll insert personalised ads into the stream?

It would be really useful for patent offices to be able to accurately date things on the internet.

So here’s an idea for a service.

If you want to timestamp something, send the text to a timestamp service. The service returns the text, together with a hash number. The hash number is derived from the original text plus the time of stamping plus a secret known only only to the stamping service.

Then instead of publishing the original text on the internet, you publish the text that was returned and the hash. (’Why the text that was returned? Why not the original?’, I hear you say. The answer will become apparent in a moment.)

If I, a patent office, want to check the date of something, I use a service provided by the stamper, which lets me check the claimed date of stamping against the hash.

Why not the original text? Because you need to fund this service, and you can do it by altering the original text to include an advert.

I haven’t looked, but I expect someone has already has this service.

A couple of years ago I listed many hundreds of ideas that I’ve had over the years, and ranked them. Too many ideas. I originally put these on a page that’s now gone. Here are some of them listed because I thought it would be interesting to see what’s come true…

Use these if you want since we won’t be doing anything with them – but if you’d like to follow one up and want a detailed discussion I’d enjoy participating. If you are interested I expect that many of these are or will be reality soon.

  • A spreadsheet that can deal with risk estimates on cells, and carry them through the calculations, or even better – can deal with risk spreads and can carry them through. @Risk helps you with managing risk, but generally risks in spreadsheets are badly quantified and handled, and yet major decisions are taken based on figures generated by spreadsheets.
  • Webwasher, from Siemens, has an excellent feature, on uninstalling the user is solicited for information as to why they are uninstalling. This could be componentized.
  • Online art – with pop up surveys – buy me button – likes and dislikes – artist webring. I think this has now been done.
  • Bluetooth badges – your badges looks for other nearby badges and exchanges info ‘I like red wine and fast cars.’ It alerts you when someone who matches your profile is nearby. Update: There’s a startup in Sweden that’s doing this, hoping to sell into the mobile phone market. After looking at the difficulties involved in getting features into on-board phone software, I wouldn’t put my money into them.
  • Genetic algorithm solver components for hooking up to other programs – e.g. spreadsheet or Working Model.
  • Linux distro for manufacturing/engineering; providing Linux keeps to its trajectory it’s quite likely that this will be a major end-user operating system in the future. Specialised version may sell well.
  • Internet Universities. It’s going to be really great when some of the big-name universities start offering degrees based on participation across the net. Or will relatively unknown universities make all

    the running? In the UK at least it looks like the established brand-name universities are least likely to innovate in the this way. Update: Universities are doing it!

  • Cheap computers for kids. Handhelds, based on the Palm, tailored to teenagers – commoditised, like mobile phones are. Update: Mobiles are moving into this gap.
  • A software infrastructure to let you register your interest in events – for instance ‘Alert me when NASDAQ drops more than 50 points in an hour’. Update: Microsoft have now provided this as a part of the COM+ architecture. I expect that this will turn out to play a major part of the computing fabric of the future.
  • Communities for developers – there’s really not many good communities that we’ve found. Perhaps computer people can’t talk to each other?
  • Toolkits for prettifying your computer. New window borders, icons, and sounds. Windows could do with this. Update: There are at least 2 programs that let you do this now.
  • Bartersite. Bartering across the net.
  • And so many more.

Jeff Veit

I was thinking about whether/how I could make my software open source and make a good living. I don’t think this is as thought-through as it should be.

[Originally written August 2000 I think]

Speaking with my developer hat on – I find the idea of open source software deeply attractive. It seems to me a great way to amplify your effort, providing other people are interested in the work. And I love the idea of being able to expose my artworks to people who will appreciate it at that level.

Speaking with my business hat on – it seems like a great way to go bust. I think it’s very shortsighted to work for an open source company without understanding where the money comes from and whether it will keep coming. What I mean is that I’ve spent time thinking about models of making money as a software person and none of them seem too promising.

Of course – with my business hat on – the aim is too make as much money as quickly as possible – it’s a great idea to have a lot of money (if it succeeds) in return for trying something that is very very likely to fail.

The basic problem, I think from the point of view of a company that wants to create a few software products, and not aggregate other work, and not spend time consulting on other stuff is that there is likely to be no income.

On the other hand, if you do commercial software, you can make a product and sell your work – there is some income, but none of the open source magic.

The obvious models:

  • Be a hardware vendor (people will pay lots for physical stuff, even if they don’t think that software should have a price), and give away software that’s funded by the hardware. [This model really bothers me - I'm a software person - I don't want to sell hardware - I want people to value my software.] I do not want to return to pre-software-market days.
  • speechandbeerFree software, sell services. [Well how well is Linuxcare doing? And others based around this model. It seems to me that there are only a few industries that are willing to pay for services - there are many more that are willing to pay for products. Do you have a feeling for how well this model is doing?]

  • speechandbeerFree software, live off grants/academia/bursaries/gifts/handouts/sponsorships. [Let's see I have a mortgage, two kids, a standard of living I'd like to improve, a pension to think about. Uhh this idea does not seem so great. And I can hardly see tens of thousands of people being able to follow this model. I know that the Street Performers Protocol exists and could be applied to software, but this is a very very untested strategy.]
  • Two versions of the software – beerFree version and commercial one. [I think that this is dodging the issue. I get to make money out of it, but others that put work into it don't. This seems to me to be unfair. I think that if I value my work at a certain price then how can I not value the work of other's similarly, and pay them accordingly. But making a beerFree version is a sure way to suck money away from the commercial version. Question: how the companies based on this model doing? Well Scriptics/Ajuba experience seems to be saying that the model doesn't work well enough to pay back the VC's - so why should I invest my time and money into this model?]

Esther Dyson listed a bunch of possible web models in Release 2.0/2.1. I think that some of these could be applied to free software….

  • Subscriptions. [Hmmm - suppose that something like this could work around open source. If you subscribe, you get the next version before others. Problem - the GPL model makes it impossible to stop others giving it away immediately. You'd need to have a modified GPL that limited people's rights - at least for a while - I can see this causing a bit of a fuss with the purists.]
  • Performances/ [Software as a performance. I quite like the idea, but I doubt I could find many people that want to pay to watch me code. Am I wrong? Anyone out there want to pay say $50 for 2 hours watching - email me? Occasionally I'll do amusing things while I do it. Hmm - perhaps I could call it Jefficam. Except I'm not nearly as photogenic. Could work naked - should get some paying punters. Perhaps mix subscription and performance in a kind of open-source-hardware-software sort of way - people would definitely pay for that but I doubt I could persuade my wife that it was a valid way to support for my art. :-) ]
  • Spin off goods. Sell the Tanasity/Tangled Time t-shirt. [Again - I think this sucks as a business model. It says that people value goods but not labour. Gee, I guess I could try selling one t-shirt with every piece of software I give away. I wonder how purists would feel about a clause that said 'you can only run this software while you are wearing the $149 t-shirt' in the licence? Or I guess you could sell the documentation at an outrageous price. ]
  • Advertising. [I really don't like hiring a video, and having ads on it. How would you like them as part of your software? 'We interrupt your spreadsheet to bring you an informative piece from our sponsor Mortuaries Corp.' All the stuff that (informal evidence) I've heard about this says that while ads subsidise TV, they are not paying the ways of many web sites. Anyone know differently? Anyone have a feel for the amount of money GoZilla is bringing to its creators? (The Radiate blurb says $225,000 a month. I think Gozilla has about 10M downloads. I wonder if it's still $225K or if this was a high point. Anyone know?]
  • Fostering transactions. This is a mixture between advertising and sales. Do the Amazon experience in the software. A community that is also a market. [Can you think of a way to do this in a random bit of software - for instance a word processor? The thing is that most apps are not community experience, nor are they good locations for sales. Well, maybe I'm wrong - I guess there are add-ons you could sell - like the electronic dictionary. But I think that this is not too healthy - it means that software will be coming in smaller more limited packages, so that people can sell other stuff as extras. It also suffers in that he speechFree aspects mean that if you are making income from these sales, that there is no defence mechanism against others giving the stuff away for free. ]
  • Electronic intellectual services – devise the software in such a way so that to be useful to an organisation they require your services in some manner, or have limited access to the software for a while. Perhaps as an example – software which can tell you about food contents, but you hire access to the database that lists foods and ingredients. [This seems borderline to me. A way to work around the speechFree aspects in order to be able to stop beerFree. I think that this breaks the spirit of freedom. What do you think? Imagine if everyone were to do this. Would you feel okay about it?]
  • Intellectual services. [At the moment this seems to be the dominant way that people are saying you should support yourself. I think that this is kind of dumb. It implies that you cannot make a living from making open source software, except perhaps as some sort of short-term scheme that involves parting investors from their money. Or it could mean that you should make Free software, but you should not make it too easy to use or install. You should not polish it because you want people to pay you to do these things for them. Or it could mean that the only sort of software that is viable as a software business is a mega-app, one that requires a team to implement. No space for making a living out of say a graphics application. Anyone interested in doing an Open Source SAP competitor, or similar large-scale project perhaps? ]
  • And finally – selling the software. [But there's a massive massive issue as far as I am concerned. The speechFree aspects of Open Source mean that anyone can undercut you, even if they do no extra work; I know of a company that sells copies of Red Hat CD's for about $5.]

It would be really nice if there was acceptance in the open source community that just like any other labour – labour on software deserves to be paid for (if people want payment). But it seems to me that there is quite a deep streak of beerFree in the community. The speechFree aspects of Open Source mean that beerFree is inevitable – like the $5 Red Hats.

The thing is that one of mankind’s most powerful inventions has been the economy. It is the transfer of money that makes all sorts of things possible that would in a perfect free-will way be deeply unlikely; would you rather lie in bed all day with your girlfriend/boyfriend/wife/partner/yourself/whatever or go to work?

So how do you feel about a different view of open source; what if the speechFree aspects were kept, but the beerFree aspects restricted? This would give a possible income to software developers without unduly restricting access to the source. I can imagine various ways of doing this – for instance if a licence made the source available to anyone who wanted it – in the normal GPL way, but said:

If the program was distributed further, then whenever the licensor distributed it they should take a fee not less than the amount they paid, and that they owed a royalty of x% to the program originator (or perhaps an organisation like the Performing Arts Org that collects money from radio stations etc for airing songs.)

Program originator pays contributors in proportion to their contribution – would have to include documenters.

Portions of code could be reused without fee provided that they formed less than y% of the total code, and were less than z% of the program in which they were used – otherwise a royalty would be payable in proportion to the % of code. And the new program would be required to charge no less than that % of the fee of the original.

Program can be aggregated with other stuff (suppose it forms b% of the aggregate) – royalty payable – not less than b% of x% of the sale price of the aggregate. Probably there are other situations that I haven’t thought of. I can see some practical problems – but nothing that couldn’t be overcome with code signing, a descriptive file with any code and a database. The other alternative – there is no place for software developers who want to be paid and develop Open Source.

That’s enough ideas to be going on with.

The rise of Open Source has happened at the same time an economic boom. Are the two related? What will happen when the boom ends?

[Originally written August 2000]

I think they are. At the lowest level, I think that it is much much easier to develop a gift culture when there’s no worry about where the next meal is coming from.

As a company, it’s also much easier to not require income or profit when money is relatively easy to come by. Companies can subsidise Open Source as an experiment. In leaner times experiments that don’t show a profit are harder to justify.

It’s also easier to set technology free when times are good. You can justify it on the grounds of future profits. When times are hard you need all the leverage you can have; it’s unlikely that you will see companies giving away any technology when they are threatened.

As an individual it’s much easier to be free and easy with the fruits of your labour when you don’t have to worry about income.

Does that mean that when the next economic downturn happens that Open Source will falter?

Well, I think that the rate of development is likely to slow, but that provided Open Source platforms like Linux reach a critical mass of usability, the increased demand from users for beerFree will keep the platforms alive.

But it’s likely that OS will stagnate as individuals and companies find that they can’t afford to invest in it.

Jeff Veit – Tanasity

http://www.tanasity.com/ – Tanasity develops software and net applications

http://www.chase.org.uk/ – Cambridge Hi-Tech Association of Small Enterprises – brilliant networking for hi-tech companies around Cambridge, UK

Tanasity

Tel: +44 (0)1223 721499

« Older entries