Starting, Stopping, Re-starting

This article documents the startup and stopping and restart of a web-app-based startup. There’s some good lessons in there for anyone who would consider releasing a web app in the near future. Related posts: The Games Market is about to have a significant and violent rebalancing. Look out. The Broadband Blueprint (re DETI Telecoms Consultation) … Continue reading “Starting, Stopping, Re-starting”

This article documents the startup and stopping and restart of a web-app-based startup.

There’s some good lessons in there for anyone who would consider releasing a web app in the near future.

FSF integrity questioned, no-one surprised.

Let me start by saying that I’ve never really been a fan of the GPL based entirely on the zealotry of its proponents. I attended a conference and in a short period was both impressed and filled with admiration for Bruce Perens and, almost at the same time, bored and somewhat disappointed with the rhetoric … Continue reading “FSF integrity questioned, no-one surprised.”

Let me start by saying that I’ve never really been a fan of the GPL based entirely on the zealotry of its proponents. I attended a conference and in a short period was both impressed and filled with admiration for Bruce Perens and, almost at the same time, bored and somewhat disappointed with the rhetoric of Richard Stallman.

Free software has it’s place but I’m watching this debate with interest especially as there doesn’t seem to be ANY effort from the “Linux community” to fix the problem.

Simple Explanation:

There’s some code licensed under the BSD license. It’s possible to use this code as-is because the BSD license is truly Free.

Steps taken by some Linux developers:

1. pester developer for a year to get it under another license.
– get told no, repeatedly

2. climb over ethical fence

3. remove his license
– get caught, look a bit stupid

4. wrap his license with your own
– get caught, look really stupid

5. assert copyright under author’s license, without original work
– get caught, look even more stupid

The FSF would be very quick to scream and shout about a violation of the GPL and indeed were very pre-emptive to grab headlines from the iPhone with spurious claims it may violate the GPL yet when some people violate the BSD license and substitute it with the GPL, they are mysteriously silent.

To wit, Richard Stallman:

“The FSF is not involved in this dispute.”

Stallman’s veracity in trying to make software Free evidently only covers his own interest in the GPL and not in other licenses. In effect the BSD license allows you to do what you want with your code. The GPL allows you to do what the FSF wants with your code.

The facts are: some Linux developers broke the BSD license and are now flubbing, with advice from an ex-FSF lawyer, to cover it up.

Linux groupies are calling this a smear campaign against Linux. In effect they’re saying that code theft is okay as long as it’s someone elses copyright and not GPL copyleft.

I’m not blaming the Linux community for the reprehensible actions of a few zealous developers but unless there’s more of a response in the form of telling these developers their actions are, in fact, wrong, then the integrity of the FSF is in question.

Build, Buy or Open Source?

I read this article recently which left me with this mantra: For common problems use Opensource. For rare problems use Buy. For unique problems use Build. For our email and web hosting systems (for ourselves and for the companies we host applications and sites for), we use purely open source technologies all hosted on FreeBSD, … Continue reading “Build, Buy or Open Source?”

I read this article recently which left me with this mantra:

For common problems use Opensource.
For rare problems use Buy.
For unique problems use Build.

For our email and web hosting systems (for ourselves and for the companies we host applications and sites for), we use purely open source technologies all hosted on FreeBSD, the poster boy for really free software.

For our accounts system, we relied on some tried and tested proprietary software which we bought because we wanted an interface that didn’t suck too badly. We tried some open source solutions and, to be honest, we weren’t familiar enough with the processes of finance to actually start to build our own solutions from scratch. Buying something in made a lot of sense.

For the remainder of our solutions, we’ve had to build. One was modelling a workflow for a local IT company, in effect transforming their paper into electrons. the company had tried all sorts of software and attempted to model their workflow into that of these helpdesk-type solutions which were designed for call centres, for the most part. Their requirements for recording and reporting were such, however, that they needed something custom-tailored to their needs.

I think what it means is to examine what your core business is.

As a technology company it makes sense for us to know about hosting and to have our own servers and the like. For some companies out there, for example, a media company or a small manufacturing company, it doesn’t make a lot of sense for them to host their own email and websites on the end of their DSL lines. A company would have to be a considerable size before I’d recommend they host their own email when they have the choice to do otherwise.

Cocoa…

Wade Williams wrote on the dotnetaddict blog: One of the toughest hurdles I had to overcome when learning Cocoa coming from the procedural C world was learning to look for the easy way. It’s been a long time so I don’t remember the details, but I have a hazy memory of one example of wanting … Continue reading “Cocoa…”

Wade Williams wrote on the dotnetaddict blog:

One of the toughest hurdles I had to overcome when learning Cocoa coming from the procedural C world was learning to look for the easy way. It’s been a long time so I don’t remember the details, but I have a hazy memory of one example of wanting to print an NSView. I started off thinking I’d need to subclass the NSView, implement a print method, figure out what methods I’d need to call in there to create a connection to the printer and then I guessed I’d need to draw the view again to some special printer view to make it actually print.

The real answer? Send the NSView a print message. Done.

In short, it took quite a while to quit looking for the hard way to do something and shift to the mindset of assuming there was an easy way until proven wrong.

Thanks, Wade. I don’t have your contact details, but it’s a great quote.

Moves and changes…

Next week, we’re losing one of our developers to a big fancy firm in Belfast. Steve has been an extremely valuable part of the team for the last few months and has helped us with many of the skunkworks projects which have been paying the bills for the last year. Good luck Steve, I know … Continue reading “Moves and changes…”

Next week, we’re losing one of our developers to a big fancy firm in Belfast. Steve has been an extremely valuable part of the team for the last few months and has helped us with many of the skunkworks projects which have been paying the bills for the last year. Good luck Steve, I know they’re going to work you hard!
This, of course, creates an opening for anyone enterprising enough to want to spend part of their time in Mallusk working on web and Mac-based software in a relaxed atmosphere with plenty of coffee. We also subscribe to the notion of 20% of daytime work being spent on FLOSS (Free, Libre, Open Source Software). We’ll provide you with an Intel iMac or MacBook with external screen for the daily work and salary is negotiable but dependent on experience and also with an OTE based on the sales.
Skills would have to include PHP, Cocoa desirable but not essential if you’re willing to learn. Ruby would also be a really nice addition as we have some older code we want translated to ObjC/Cocoa. This role would suit a graduate but we’d also accept a student looking for a years placement. You’d have to be able to work without a lot of supervision but we’d be looking for someone with a lot of vision and drive who really wanted to make something of themselves.

Update

We currently have four projects on the bench out of a list of around 20 possible ideas. We have a new hire which technically brings the number of people in Infurious up to 4. This is good, right? It means we can do more stuff which is good. Project #1: Some commissioned work for a … Continue reading “Update”

We currently have four projects on the bench out of a list of around 20 possible ideas.

  • We have a new hire which technically brings the number of people in Infurious up to 4. This is good, right? It means we can do more stuff which is good.
  • Project #1: Some commissioned work for a local IT company. It’s not desktop development but in the end beggars can’t be choosers and we have to start bringing in the pennies somehow. This is, of course, the recommended route for startups who intend to bootstrap their way. We have a good rapport with this company and the project will be finished in another month which means we can get back to doing what we really want to do.
  • Project #2: Some more commissioned work. Again not desktop apps but then see Project #1 for why.
  • Project #3: designed to help you keep things better organised. More on this later. At the moment it’s been a long hard slog in working out how feasible this is with probably about a hundred hours spent working on Apple’s code trying to see why they did some things and why they left some other things out.
  • Project #4: I’ve got two words for you. InfuriousTV. And I’ll leave it at that. (It’s just a code name as a company name plus the word “TV” isn’t a very good name. Take a hint, Apple!)

UI Prototying

As we move into the testing of Product B in preparation for a later release, I’m buoyed up by this article on using paper to prototype user interfaces. To be honest I already do this, using drawing skills gained by disembowelling and drawing the corpses of small animals and plants during my Genetics degree at … Continue reading “UI Prototying”

As we move into the testing of Product B in preparation for a later release, I’m buoyed up by this article on using paper to prototype user interfaces.

To be honest I already do this, using drawing skills gained by disembowelling and drawing the corpses of small animals and plants during my Genetics degree at Queens.

Then I move it to something like OmniGraffle or Interface Builder (and more recently DashCode) before giving it to a UI and Icon designer for review.

It’s not quite tactile but until multi-touch interfaces become ubiquitous, it pays to interact with your paper interface using just a single finger and, to be honest, attempt to keep your arm straight. At this point you’re making a desperate attempt to emulate a mousing interface. It’s clunky but it works.

Blog migration, Bedouin and Beta3

We’ve moved the blog from our old server onto something a lot more stable, hosted by our friends at Yoyo. We decided to stop using Typo because it was unstable, just around the time they fixed the stability problems. Still, I don’t want to spend my time hacking on someone else’s Rails app at the … Continue reading “Blog migration, Bedouin and Beta3”

We’ve moved the blog from our old server onto something a lot more stable, hosted by our friends at Yoyo. We decided to stop using Typo because it was unstable, just around the time they fixed the stability problems. Still, I don’t want to spend my time hacking on someone else’s Rails app at the moment. All the feed URLs should automatically redirect so let me know if you have a problem. (“If you do not get this message, please call and tell us…”)

I had an interesting day today – I got to spend a bit of time out and about in the city while still working. One of the things that ended up getting done was a release of SyncBridge 1.0b3, which helps improve the user experience. Interestingly, the code for that was written in three different places over the course of a couple of days. Four different places if you count my home.

SyncBridge is looking pretty stable. We’ve had very few bugs reported and we’ve been able to address them quickly. I’d like to add a few performance enhancements on the server side so that our resources weren’t being quite so greedily consumed, but other than that I’ve been very pleased with everything so far.

The two things looming on the horizon are SyncBridge for Enterprise (host your own server) and SyncBridge for Google Calendar. I’ve still not heard anything back from 30Boxes about being able to write a commercial app against their API, as their license agreement forbids it.

What’s happening? Part II

Thought I’d add a bit more to this. I finished all the code for SyncBridge on the 6th of July. I don’t just mean code complete, I mean tested and bug-fixed etc. First thing in the morning on the 7th of July I went on vacation for six days, leaving MJ to organise our new … Continue reading “What’s happening? Part II”

Thought I’d add a bit more to this. I finished all the code for SyncBridge on the 6th of July. I don’t just mean code complete, I mean tested and bug-fixed etc. First thing in the morning on the 7th of July I went on vacation for six days, leaving MJ to organise our new server. When I came back, we had a shiny new server from 123reg waiting to have all the code installed and smoke-tested, except we had no shell access.

One day later, we get shell access, and find a bastardised version of the FreeBSD 4.11 (!) operating system underneath (we were expecting at the very least a vanilla install). I mean, this installation had all kinds of crazy things set up in it, and most of what comes as standard was missing.

So, a week-end later, after struggling to install a new version remotely, we get to Monday and tech support who tell us that we can’t install vanilla FreeBSD on there. By the end of Monday I have a P4 FreeBSD box installed and ready with the SyncBridge code on it, courtesy of excellent service from Exist (who chatted with me online from initial contact through to delivery of server details). Getting SyncBridge up and running on there was literally just a few hours work, installing all the necessary infrastructure.

I’ve now smoke-tested everything, and hopefully we’ll be able to get the beta out there this evening. The inaugural Cocoaheads (Belfast chapter) meeting is tonight, so we might unveil it there and get some beta testing done at the same time.

Letting my kid outside

It never occurred to me until yesterday just how much SyncBridge has been my little child. When I first created the sync engine, it wasn’t allowed out of the house, although I occasionally sent photos to close relatives (I was using it to synchronize between multiple user accounts on my machine, and I made a … Continue reading “Letting my kid outside”

It never occurred to me until yesterday just how much SyncBridge has been my little child.

When I first created the sync engine, it wasn’t allowed out of the house, although I occasionally sent photos to close relatives (I was using it to synchronize between multiple user accounts on my machine, and I made a simple movie and sent it to MJ (who was on the other side of the world at the time)).

Then it grew up a bit, and I let it out to play with some well trusted supervision. (I added a simple GUI and sent the code to MJ and we started sharing calendars).

Then it went through puberty, and I taught it to be trustworthy and it earned my trust, and generally got more exposure to the real world (I fixed a lot of bugs and tested it! We also showed it to more people and talked/blogged about it).

In human terms, SyncBridge has reached the age of 16 or so. Legally able to leave home and earn money, but still with protective parents who want to make sure it’s well behaved and well adjusted in society.

Yesterday I installed the SyncBridge server for the employees at Mac|Sys and they all installed the client on their local machines. This morning, they started sharing in earnest. It’s like seeing my kid go out to work for the first time – I’d be ruffling SyncBridge’s hair if it had any 🙂

So far, we’ve had only one real issue which has been with people renaming each other’s calendars. I’ve added a simple fix and everything continues along nicely. The biggest eye-opener so far has been in ensuring that people know how to use the software. What we think is blindingly obvious just isn’t to people who’ve never used it before. Good thing MJ has written docs – tonight we’re planning to add them to the app!

Currently looking very likely to have our semi-public beta start this weekend. By semi-public I mean we’ll let those people who volunteered use the software – this will be the first time the app goes to someone we don’t know personally.

Biggest possible hold-ups for the beta are infrastructure things: getting the server upgraded to handle SyncBridge software properly, getting a support issue/bug tracker available to the world at large, etc.

Biggest possible hold-ups for going live (aside from heretofore undiscovered bugs) is setting up mundane things like a bank account, some kind of shopping basket, etc.

All the things mentioned above are underway, and we’ve got a month or so before our target go-live date (August 1).