Plea

About eighteen months ago I started writing a piece of software. It was aimed at people wanting to record their diabetes measurements. It was also aimed at getting my tech skills back up to speed.

I wrote the app originally to run on Windows PCs, as a desktop app. So, you had to install it to use it. Once installed, it never touched the internet at all. Why? It was a technical decision, these were basically the technologies I knew best.

As time went by I got this product into a state where I could release it to the world. I decided to call the product Diem, set the branding accordingly, and went about finding an appropriate domain name.

I settled on http://www.diemware.com.

but I was never 100% sure. The obvious choice, diem.com, wasn’t available. I invented the pseudonym Diem Solutions – might be a good name is ever I set up another business – but diemsolutions.com isn’t available either. So, complete with misgivings, I rented the name for a year.

Fast forward about 10 months. The rental on this domain name is up in January. In the meantime, I have been working on a web-based version of the same app, which is nearing completion. Again, to bring myself up-to-speed with the technology. In fact, I was going to post a short demo video on here, but so far my video-creation skills have let me down. I’m umming and erring at the moment about whether/how I can get this web-based app live. So, the bottom line is that I want to maintain some kind of web site going forward. But I’m still not sure about that web site name – whether to just renew the existing name, or to go with something else.

Does anybody have any thoughts or suggestions?

My thought is that if I do change the name of the site, I want it to stay something.com. Just because the app itself is international, and .com is the international, commercial domain name suffix. I want to keep the name as a .com rather than a .org because whilst I’ve written this app as a freebie, I may write more commercial things in the future. Lastly, I like .com because it is the most recognisable suffix of them all – I don’t want to go with a suffix that no-one has ever heard of!

Work Progress

It’s funny, my web application (under development) stopped working yesterday. I was just about to look at a new library called SignalR. Normally, a browser requests a page, and the server serves a page. End of. This technology allows the server to keep sending updates to the browser. It’s possible to spoof this using older technologies, but… I want to use current.

I took the chance to upgrade a few bits and pieces, and this was what did for me. The application uses something called Bootstrap (makes the display fit automatically when it comes to computers, tablets, phones etc.) and I suspected this immediately. In the end, I built a “template” app, and compared the two side-by-side. The first place I looked was my code – I thought I might have edited out a crucial line, say, and I never was infallible, even before! – but I couldn’t find anything.

The browser I use has a bunch on debugging tools, one of which tells you exactly what files are loaded underneath a button. Not just the (html) page itself, but and images, style sheets, or any other bits of code. I made sure I loaded each file fresh every time (browsers will normally store things in a cache) and noticed that the Bootstrap files were different to each other. So, I took the files that worked, and copied them to the site that didn’t work….and hey, presto!

I’ve tried to be brief in my description, but rest assured that this hunting has probably cost me a day, just as I figured out what to do next.

Something in my housekeeping one of the things I updated was Bootstrap, although I just glanced past it. I didn’t think that this widely-used commercial product would cause me problems, but it did. Having said that, I’m sure it was tested very thoroughly, and I’m sure it’s just me that needs to tweak my code somehow – they must’ve made a subtle change. A task for later on in the project, perhaps?

Sure enough, I must’ve started off on version 3 point something, and hit the button to upgrade to version 4 point something. I support as you go through a major release, you should expect changes. Regressed it back, anyway, for now, and am now good to go.

Changing Plans

Ha, ha, it’s funny how an email can change your day…

A couple of weeks ago I started doing bits on my new project. I had determined that it should be a web-based project, just because I haven’t worked on a meaty web-based project for a couple of years. I wasn’t sure what I wanted the subject matter to be – ideally I’d like a fresh subject but, if it came to it, I could provide a web-based equivalent of Diem.

I started sniffing around Microsoft HealthVault. This is a Microsoft effort, so will have decent resource behind it. It provides end users with a nice web site through which to store various health-related data, including their blood glucose. It also provides an API, so allows people to write an application, connect to HealthVault, and use HealthVault to store the data. One of the big things about health applications is user security, and the big win of using HealthVault was that Microsoft handled all that – it is already a secure site.

So I’ve downloaded a couple of samples, got them working, and earmarked some time to write my own noddy code, just to see how it all hangs together. HealthVault doesn’t support all the statistics supported by Diem, so another thing on my list was to discover whether I could store that data somehow. Fortunately, as it happens, I hadn’t got anywhere near that yet.

So I signed up and got myself a HealthVault account, only last week. I’ve logged into it just to poke around, but haven’t got into any specifics yet. Then, fast forward to this morning. When I loaded my email program, lo and behold, a message from Microsoft saying that they’re pulling the plug on HealthVault in six months time.

In some ways, a shame, because I might have been able to use it. But I’m mightily glad that they made this announcement when I’m just embarking on a new project, rather than a year into it.

Bugs

I spotted a bug in Diem. Nobody spotted it in the field yet, fortunately.

As I’ve probably said, Diem supports the two main units worldwide. In fact, there’s a very straightforward conversion from one to the other – a simple multiplication or division. When the user enters a reading, they specify which units the reading has, and Diem basically just uses this as a marker so it kows how to display the reading back to the user. Internally, Diem uses the American, as opposed to the British, unit for everything, and just does the conversion (if necessary) on the way back to the user.

The bug was a tiny one, which might have occurred if the user mixed their units together. This is perfectly allowable, but I figured (in bed last night!) that there’d be a problem displaying mixed units in the graphs. So, I rewrote that section of the application this morning.

The funny thing is that I’m using a control to generate the graphs. The graphs each have two y-axes, one showing the first unit, the other the second. In theory those two bits of code are equal to each other. But I had a funny where this control needed those axes to be defined in a particular order, otherwise it screwed the whole chart up.

It was funny to find it. I couldn’t work out what the problem was, and then I happened to notice that two of the charts were screwed, but that the third was fine. And in the third chart, of course, I’d changed these lines around. But sheer coincidence – I changed the left-hand axis to be the American units (because I figure I’ll hae more American users), so just put that line on top.

The joys of developing software 😄 Still, if I thought that was a silly mistake to find, I’m gonna have to spend this afternoon running test scripts against that piece of code.

Diem

I was just looking, and surprisingly didn’t write anything about my software release last week, so here goes:

Last week I released Diem, which is the culmination of about 6 months work. I started writing it mainly to sharpen up my own development skills, so it relies very much on the technologies I was used to, and it was very much an application which, initially, was geared at helping me personally. Later, it grew to something I’ve released, when I realised it might help other people too.

I call it a Diabetes Tracker. I toyed with the idea of a “diabetes manager”, but actually, we manage our own diabetes and this app doesn’t remove the need for that. So I chose “tracker” because it does exactly that. It stores glucometer measurements, so you can refer to something, say, a year ago, and compare your values. It plots them in graphs too, to try and make things more obvious.

For a lot of people, they still produce enough insulin so their sugar level is pretty constant, so, again, of limited value. Other people will prick their fingers and take insulin many times per day, so an app which gives an average over 50 days is probably of limited use. But my sugar can vary by several units, so worthwhile for me. I’m aware that we in the UK use a unit called mmol/l, which, worldwide, is not very common, so I had to get a grip of the American unit, mg/dl, to cover my bases. In fact, my app just allows a user to present data to it in either of these units, then internally does a conversion to store everything in just a single unit, which allows statistics to be calculated using *all* recent data, regardless of unit.

So it was useful for me not just in terms of technical skills, but also in terms of expanding my diabetes knowledge. In fact I toyed with the idea of buying a glucometer in these other units, just because I understand them now. I might still do that, although I don’t need a glucometer at the moment.

So anyway, I’m at something of a loose end at the moment – I don’t want to start building more into the app just in case somebody reports a bug that I need to fix urgently – but there are a few other things I want to do, not least release it as an app for Android or iPad – it’s Windows initially (again, reflects my background) and right now I don’t have much idea either how to port it, or how big a job that will be. I’m looking at Xamarin, but I’m currently just looking at the possibilities, without any clear task. One area that would be quite straightforward is that I want to be able to capture medication and doses, another thing which will be a pita, but do-able, is to move the display away from a tabbed front end (which will be unsustainable as the app grows) toward a standard menu structure, maybe even a ribbon!

I built a web site for this product, and made it a free download, just in the hope that it’ll help other people. I’m hopeful that the act of developing the app will lead to some personal gain, just in terms of making me employable, but the app itself should be free – I don’t want to dangle a corrot then put a barrier in front of people. http://www.diemware.com.

www.diemware.com