Today I have been mostly working on the design of www.software-monitor.com, the new desktop software monitoring service for software developers and publishers. I haven’t got time to use a formal method, but I have put together an Entity Relationship Diagram (ERD) for the service. I’m not contracted to provide all the trade secrets of my project so I’m not publishing this design here, and I probably won’t answer any questions about the database either.
However, here’s something I’m willing to share. I knocked up a diagram in Visio this afternoon which outlines my plans for the Graphical User Interface (GUI). Now I’ve never done a user interface in ASP.NET before but the user interface is one of those things that really needs to be worked on at all stages of development. Early on it’s a great tool for understanding how usable the application will be and it will serves as a basis for discussion during project planning meetings and with the rest of the development team. Only this month as an experiment and a personal challenge, there is no team this month, just me.
I remember when I was still a University student and my very talented C++ tutor would admonish me for leaping into the development tools (Borland IDE) without a pencil & paper session to design the software first. She wasn’t expecting to see use cases, data flows, interfaces and the classes mapped out formerly, but she was absolutely spot on that even for one software developer developing for him or herself a design needs to be in place. Phyllis McCarthy, if you ever read this I hope you can see I’ve learnt my lesson well 🙂 (I also have a couple of cats now, but that’s another story).
The time spent with Microsoft Visio was well spent. I took the ideas from my head, and for the initial form layouts and functions I haven’t taken any ideas from any other website as inspiration. It’s all very straightforward. The way in which I deliver all my products is to provide the basics well written first, and look to the beta testers and customers to provide the feature requests which will then be implemented.
The basic idea is that a new user will register (free) on the website and then select “Add a New Project”, and give the project a name. The website will then provide instructions on how to integrate the software product with the web services and by passing a special project identifier and security hash the product is authenticated and statistics such as usage hits and error reports can then by logged online.
For an existing project, the user will see an overview of “hit” usage as well as errors, and the user can configure other optional extras such as alerts (email x if y condition is met) and project related properties of the project (such as latest version, download location, key blacklist etc) which can then be interrogated from the client desktop application. An existing user will also be able to see, immediately on logging in, an overview of each software product and to be able to “drill down” into the statistics to see when and where the software is being used, view the errors reported, the stack trace/dump and more.
Integration can either be tightly or lightly controlled. For a fellow .NET developer (and my own software), I recommend integrating directly with the web services. Easy instructions will be provided and you’ve got the benefit of using our remote objects as easily as your own local objects and classes from within your application.
Medium integration by hand-coding your own HTTP requests will be supported also. These are easy to implement in your host application and I aim to provide code samples to do this too.
Alternatively, a command line component will be provided to do exactly the same thing only this may have to work in a more asynchronous way and might not be bi-directional. I might provide a .dll class library for more in process control for those VB programmers or Delphi programmers who can’t easily consume web services but still want the same level of control.
A good friend of mine thought he could improve on my logo design. Needless to say, his re-design of the www.software-monitor.com logo is indeed impressive. Therefore, I am proud to present the new identity for this project!
If you’re looking for someone to do some graphical work for you, I can recommend Jason “Mr Photoshop” (firstname.lastname@example.org); go on, drop him an email and tell him I sent you 🙂
There’s been quite a bit of activity over on my copyright / intellectual property post. I haven’t got any time to spend on this, so I’m hoping that other blogger’s who care about content creation and intellectual property protection voice their own opinions either on my blog comment section or their own blogs. I’ve done my part and it’s cost me at least an hour of time. Moving on.
It’s also been a sunny day today, so I got a few minutes to play in the sun with my cats. I bought a bubble machine for my little boy but it’s the cats that appreciate it more 🙂 Over the weekend I’m going to see if I can get some catnip solution to make the bubbles even more fun!
Other Authors and Projects
The other 30dayer’s projects are beginning to look very interesting. As Scott Kane said in his recent blog post:
“The others in this feed have been pretty busy blogging and writing and there’s some really nice stuff taking shape. It’s incredible how nice in fact. I’m not seeing junkware so far at all. Instead I’m seeing developers who are solving problems, some very interesting ones, and they seem to be approaching the solving at a very mature and, from the interfaces published to date, elegant manner.” – Scott Kane (The Recursive ISV)
Scott, I agree! And furthermore going by the screenshots of Scott’s own product, it is an elegant beauty to behold. Not just because the iTune’s-esque interface is clear and neat; but rather the concept is excellent. It’s a media player, but with a twist – it has an intuitive playlisting system which makes it very simple to structure soundtracks for theatrical work. Have a look at the screenshots on his site and you’ll see what I mean.
Susan’s made her second ever blog post, so congratulations to her for that. It’s harder than it looks to write something interesting, and she’s doing a great job so far. She’s not just working from home; she’s working from her bed too! Oh to work from a bed or hammock (I’d just fall asleep!).
Richie Hindle has posted up detail on his latest product – ClickStop. A product intended to allow a parent to block certain keystrokes and demarcate boundaries of the desktop primarily so that children can use a software application (like Paint Shop Pro) without ruining Windows! There are competitors in this space, but all block user action so as to use their own kiddie-entertaining software. None allow you to block actions to use a software product only you want. His software could find use in trade shows and schools too.
There’s interesting developments in other blogs too, but I’m not going to summarise them all here, go out and read them! 🙂