Archive for the 'Business' Category

Pepsmedia

Monday, February 5th, 2007

Pepsmedia have asked me for a quote for their website on the basis that I’m a prior customer. I’m an extremely satisfied one, so I thought I’d post it here too:

    “I chose Pepsmedia because I knew of their depth of experience in web technologies. What I hadn’t counted on was their design flair. I was very impressed with the seemingly effortless way that Pepsmedia took very few ideas, and a dubious logo, and turned it into a professional-looking website. The process was painless for me, and the site is everything I’d hoped for.”

I mean it!

Going well… I think

Thursday, February 1st, 2007

My ultimate aim by capturing all this information is to produce a swish view of everything that’s happened to lead you up to your current breakpoint, across all threads and processes on the device. That’s really what I mean by “flow of control monitoring”. Everything I’ve done so far – the high-speed trace capturing system, the hooking into Eclipse APIs, the symbol resolution pain and even the Memory Tracer widget I came up with to test those subsystems – has been a prelude to getting this overall flow-of-control tracing working.

Unfortunately, the task is so complex that I’ve never really been able to convince myself whether or not the end product will actually work – or if there’s some logical or technical flaw which mean the results of my techniques will be useless.

Well, today, I finally got close enough to find out. I’ve pieced everything together enough to get the view to appear.

And indeed there was a logical flaw that means the whole thing is useless :-)

But I’m pretty sure it is solvable. More in the next couple of days…

Pluginfest Day Two

Thursday, January 25th, 2007

So, I achieved my objectives. Tuesday night I made a list of all the people I needed to talk to – along with my existing lists of what I needed to talk to them about – and yesterday (the second day of the pluginfest) I tried to fill up every available moment with talking to people. On the whole, I think I did well – all but two companies are crossed off the list, and I certainly didn’t have any spare moments.

Top credit to Ken Ryall and Dan Podwall of Nokia for being really helpful. I’ve explained the technical problems I’m having, and Ken was kind enough to look into how they might be able to expose APIs (Application Programming Interfaces, i.e. means to communicate with Nokia software) to make my work easier. If they do, I’ll be able to stop messing around with many low-level areas of debugging, and work on producing higher-level and more sophisticated tools on top. Which is great.

I also spoke to many of the OS/tools vendors – WindRiver, QNX, ST, IBM, ST (sort of). They all produce embedded operating systems, like Symbian, but unlike Symbian they seem to care just as much about the tools they produce, as they do the OS itself. Some of the tools available from WindRiver, for example, are just light years ahead of what’s available for Symbian OS.

Having said that, nobody seems to be doing exactly what I’m doing, and talking to Christian Kurze from Motorola it sounds as though it might just be unfeasibly complicated on Linux – oddly, this makes me happy as I don’t have to worry about competition, even if I can’t make anything work myself. Either way, Linux for me is a distant prospect… I am Symbian OS focussed for now.

Symbian themselves deserve a lot of credit for hosting this event. They also liberally scattered their engineers around – Andrew Ferguson was kind enough to spend a long while answering a whole slew of stupid primitive Eclipse questions. I hope many of their engineers got a lot out of it themselves.

Also, it looks like we’ll be forming some sort of informal group for Eclipse-monkeys in Cambridge. I was about to suggest some sort of Wiki page and/or mailing list to Derek Morris of Code Red, but then he jumped in with the suggestion that we just meet up in the pub now and again instead. Which is clearly a much better idea. The Wrestlers on Newmarket Road seems to be the favourite, as apparently it’s an old Acorn haunt. If any other Eclipsifiers in Cambridge want to be involved, drop one of us a line.

Most impressive/surprising things of the pluginfest for me:

  • Carbide 1.2 abandons their Managed Build System and moves back to the old Symbian build chain (abld). And yet, it’s now much quicker!
  • Sony Ericsson have a CBR tools GUI written in Eclipse, of sorts. It’s very focussed around their own use-cases, but in effect it does EnvInfo, MakeEnv, GetEnv, GetRel etc.
  • The QNX and WindRiver tools are terrific. WindRiver’s memory profiling stuff in particular blew me away. There are so many different graphs showing how things on their device can allocate memory.
  • My own stuff. OK, it’s a memory leak diagnoser – big deal – but my demos didn’t go wrong once; it worked perfectly. Wow.

Also, whilst at the pluginfest, I may have removed two full configuration steps from my tools. That’s a really big deal for me when most Symbian OS tools seem to fail because they’re hard to configure. One is the installation of Microsoft’s dbghelp.dll, which I fervently hope won’t be necessary if and when Nokia introduce an API for what I need. The other is a way to avoid having to capture textual output form the Symbian OS device: I remembered that such information is now transmitted over an additional channel, BTrace, which I listen to already. If I just capture it there, I have no need for the additional console listeners. Hooray.

Finally – I sometimes take the mickey out of certain aspects of Symbian. (People who know me might say that as an understatement). But credit were it’s due – Symbian was generous to spend the money on organising this event, and it worked out well. (Thibaut Rouffineau was the main organiser – thanks!). I hope that next year somebody else will take up the mantle. Maybe by then, I will have five hundred employees and enough meeting rooms to hold such an event. Ahem.

PS you can see photos of the pluginfest here

Pluginfest Day One

Tuesday, January 23rd, 2007

Report from the Eclipse Pluginfest Day One – it seemed to be generally productive for most people.

Many of the participants (including myself) had Eclipse plug-ins or platforms for specific circumstances (for example, operating systems) so there wasn’t as much testing of plug-ins as there might have been. That said, I’m sure some people such as the CollabNet and Perforce guys were very busy testing their plug-ins on all sorts of platforms.

The rest of us, meanwhile, spent useful time talking about how we could work together. I had interesting discussions with Sony Ericsson, Symbian and various other companies. Most of the Symbian guys I spoke to seemed surprised that I had actually produced something – I’m not just vapourware!

For all it was a productive and interesting day, I didn’t actually solve any one of the twenty or so technical issues/questions/interoperability points that I brought along. So I’m going to have to work really hard tomorrow to nail them down.

Another good week

Sunday, January 21st, 2007

Next week I’m off to the Eclipse Pluginfest which conveniently is being hosted by Symbian down in London. The idea of the event is for plugin makers like me to test with other plugins, to make sure they don’t break each other.

I’ve therefore spent a couple of weeks desperately trying to pull together something that can be installed on someone else’s PC. I’ve got further than I expected – I have a memory leak debugging plug-in which can be installed on a standard S60 3.1 SDK, using a standard Carbide.C++ Express 1.1 IDE, and will give you a useful diagnosis whenever a memory leak occurs on the emulator.

There’s still a long way to go before it’s a saleable product (if indeed there seems to be any market opportunity for a memory leak plugin), but here are a couple of screenshots of the work-in-progress. It ought to be enough for useful testing this week, anyway. (And yes, it’s got the silly bug logo in the corner. For now.)

Panic Page One

Panic Page Two

Note that these images, as with everything else here, are © Macrobug Ltd.!

Technical skills I’ve learned so far

Sunday, January 21st, 2007

Obviously the job I’m trying to do is quite closely related to that which I was previously doing at Symbian. I wasn’t sure what new technical skills I would learn. So far, the list is:

  • Eclipse plug-ins
  • Win32 API programming
  • Subversion
  • C++ STL

Which I am quite pleased with.

Software licensing

Friday, January 19th, 2007

Not sure exactly what license I’ll eventually (hopefully) release tools under. So this was an interesting read.

Progress

Friday, January 12th, 2007

I am starting to see the light at the end of the tunnel.

So far, most of my work has been investigating how to solve technical problems. It’s frustrating, because you inevitably choose blind alleys and it takes weeks to get nowhere.

But last week I think I overcame the last big technical risk before having useful working tools – or at least prototypes thereof. There’s still a lot of work to go before I’m at that stage, but hopefully it’s just coding rather than sinking endless time into problem solving.

(That said, I have spent most of this week looking into some pesky technical problems. But they’re of the sort where you know there’s a solution, rather than the sort where there’s a big risk there might be no way to do something, and you might have to change your plans radically).

I’ve noticed too that I’m now working longer hours. When my wife is out doing her daft cycling stuff, I’m working. I’m even waking up before the alarm goes off, which is pretty unheard of for me, and getting working. This is not because I’m massively excited, it’s just because I can enjoy the coding phase whereas the risk-uncertainty-investigation phase was fairly unpleasant.

Anyway, that’s where I am. The next few weeks could be a rollercoaster: now I’ve got the underlying technology more-or-less in place, I have to see whether I can make tools out of it which I believe could be useful.

Tax returns – PAYE and VAT

Tuesday, January 9th, 2007

Wahey! I’ve completed my first two tax returns. This post will consist purely of the boring details, for the benefit anyone else who has to do the same thing, so the rest of you, please switch off now.

To be fair the first one was cheating: PAYE. (i.e. employer’s and employee’s NI, plus employee’s income tax). This is the second time I’ve paid myself a salary, but the first time, no tax was due (because of course I’m paying myself less than my previous employment was). It was cheating because my accountants calculated it, together with HMRC, and I just got a letter telling me how much Macrobug needed to pay the HMRC. Then it was a simple matter of going to https://www.billpayment.co.uk/hmrc/ and paying them.

The second – VAT – was a proper tax return, where I actually had to add things up. It looks deceptively simple… there are just nine boxes.

  1. VAT due on sales
  2. VAT due on acquisitions from EC states
  3. Box 1 + Box 2
  4. VAT reclaimed on purchases
  5. Box 3 – Box 4
  6. Value of sales and other outputs excluding VAT
  7. Value of purchases and other inputs excluding VAT
  8. Value of all supplies excluding VAT to other EC states
  9. Value of all acquisitions of goods from EC states

All three boxes relating to ‘EC’ were zero for me, so that was easy. Box 1 is simple… you worked that out when you invoiced your customers.

Box 4 is tricky. You need to go through each expenditure your company has made, and work out the VAT you paid on it. It will be shown on the invoice/receipt. Some things don’t charge VAT, e.g. train tickets. However you can only include things on which you can reclaim VAT – which is where it gets tricky. I’m not sure of all of the rules, but for example, you can’t reclaim VAT on entertaining.

So, if you buy some food or drink for business associates, when you record that in your spreadsheet, you must either put down 0 for VAT, or make a note that VAT mustn’t get charged on that entry. If the latter, your magic auto-VAT calculation formulae will have to take account of it.

The next box is easy – it’s the difference between box 3 and 4, and it’s the amount you pay to HMRC. You can do this electronically too, though there’s no nice Visa-compatible web page, you need to do a bank transfer.

All that was expected. It was boxes 6 and 7 that made me have to think. Here you have to add up the non-taxed bit of each thing. That’s quite easy for your sales, but for your purchases it is more tricky. Because you have to distinguish between things to include in your VAT calculations but which have zero-rate VAT, e.g. train fares, versus things that you’re not going to include in your VAT calculations at all, e.g. entertaining.

All of which required some extra columns and maths on my accounting spreadsheet. But hopefully it’s all done now and I won’t have to touch it again.

Anyway, here’s the form you get. You can choose to fill this in quarterly or annually. Quarterly seems best, or the annual reconciliation would be huge. You can also do it on-line, but not for the first one, as far as I can tell.

Blank VAT return

Stacks of problems

Friday, January 5th, 2007

In computing, a stack is a list of things, where you can only take off the most recent thing that you have put on. Just like a real stack of items.

This week has been a bit like that with the different bugs and issues I’ve had to work through.

I started off trying to write some code to decode a function name from an address, using the APIs available within Carbide.c++. Then I discovered that Carbide.c++ doesn’t tell Eclipse to load modules in the normal way, so I had to work around that. My workaround revealed that Carbide.c++ appears to be doing something odd with parsers, too, so I had to download Nokia’s modifications to CDT to discover what. Upon downloading that, I discovered that they’ve provided their changes in a format which required me to install a tiny programme to use them. Installing the programme simultaneously upgraded lots of other programmes, which filled up my hard disk, so I had to move some big files to another hard disk. Then the programme that used those files would no longer work.

I can only solve each of these problems one at a time, in reverse order, before I go back to the previous problem. Eventually I’ll make my way back down the stack to the original problem I was trying to solve.

So, that’s what a stack is.

(Also I have found that Nokia’s uploaded patches appear to correspond to a prior version of Eclipse, so even now I’ve got patching working, they won’t apply cleanly. Grumble grumble.)