Posts filed under 'Software'
Our own software is guilty of this kind of stuff too, but this one is particularly annoying, since the message promises to specify the module that’s causing the problems. But does it appear? Nooooooo. Of course not.
A curse on the Microsoft developer who wrote this error message. May your capslock key become stuck at random intervals!
August 22nd, 2006
I’m improving the installer for a web application. It’s a windows installer. It needs to register a MIME type with the server. This is important to do, since Windows 2003 server will not serve unknown Mime types. (Neither will Windows 2000 after the Lockdown tool has been used).
WMI is the preferred mechanism for diddling IIS settings, but it turns out you can’t rely on WMI being installed. So we need to user ADSI, the underlying technology.
ADSI is a maze of little automation objects, all poorly documented. There’s plenty of documentation. It’s just that most of it is pointless drivel. Undocumentation as some have called it.
The ADSI incantations necessary have been recorded by wizened elders.
Unfortunately these incantations need to be converted to C++ in order to work inside an installer. There is a heavy bias against using script in installers. Partly because script may not be installed, or if it is installed, it’s a lower version than we require. So a hardened C++ version is needed.
In case anyone needs to know, here is how to tweak ADSI to add a mime-type to IIS from C++. It’s not pretty - being a frankenstein monster of cut-and-paste snippets from various places.
Continue Reading March 13th, 2006
We got a mail from a happy customer today. A very happy and satisfied customer.
When a customer rates the product you’ve designed and helped build on par with sex, you can’t be doing too badly.
February 3rd, 2006
Dan Bricklin the co-inventor of the spreadsheet has started to build a web-based spreadsheet - WikiCalc
As office software moves onto the web, it can become more open and collaborative. Consider a web-based spreadsheet, where every cell is addressable through a URL.
If the spreadsheet is at
http://www.example.com/calc/myStuff
then the first cell of the spreadsheet should be adressable as
http://www.example.com/calc/myStuff/R1C1
Ok - now consider a spreadsheet somewhere else - the second spreadsheet could reference the results of a calculation in my sheet by reference to the URL of the cell in the spreadsheet. The second spreadsheet could contain a formula like this:
= 2 * http://www.example.com/calc/myStuff/R1C1
This is just a straightforward application of the REST architecture.
This could be a great way for government to expose standard values. Income tax rates, VAT rates and so on - easily referenced and automatically updated.
http//www.example.gov/taxrates/2006/vat/goods returns the VAT on goods in 2006 (25% in Norway).
http//www.example.gov/taxrates/current/vat/goods returns the VAT on goods at the moment.
When the rate is changed next year, the current value is updated - and all applications that reference it get the new, fresh value without a software-update.
Now imagine what happens if we extend this to all XML documents through XPath - i.e pretend that the web server is smart enough to dig into an XML document and pull out a fragment, rather than just sending back the entire document. i.e. URLs that reference bits of a document using XPath, not just entire documents:
http://www.xfront.com/REST-Web-Services.html - this gives us the entire document.
http://www.xfront.com/REST-Web-Services.html/html/body/H2[0] - would in an ideal world give us the contents of the first second level heading: “What is REST?”
Imagine how easily you could glue together web-applications with this kind addressing…
The text fragment extraction wouldn’t have to be done by the web-server, it could just as well be done by the application. The point is that the URL would make integration with existing, well-formed content much much easier. And while much content out there isn’t well-formed (and so can’t be addressed in this way), the next generation of Office tools will output suitable content by default.
When everything is addressable, then everything becomes intertwingled. A point of potential intergration. Lots of places for leverage.
Of course, all the hard problems of versioning and formatting don’t go away, but they apply to all kinds of solutions, not just this one.
January 7th, 2006
I have too much work at once. Transitions between projects are tricky things, and I have (yet again) managed to get caught in a squeeze between four projects (two major, two minor). Whine whine whine.
Anyway, VS.net 2003 will occasionally not help by locking up. Deleting the .NCB file helps. Argh! Nothing more annoying than my primary tool going bonkers and freezing while I’m trying to get some work done. Two hours wasted uninstalling/installing various helpers and tools.
Visual Assist X is lovely, but I suspect it contributes to the Visual Studio lockup-on-start. We have a metric ton of files in our solution, and Visual Assist likes to scan the header files. It usually doesn’t freak out, but I wonder about it. Does it suffer from corruption in its database of symbols?
Xoreax Incredibuild rocks hard when it works, but the last couple of builds (2.40 and 2.42) have not rocked at all. Corrupt files, broken builds and increased flakiness do not endear themselves. The compiler is the most important tool for the programmer, and it’s considered bad to mess it up. Internal Compiler Error is not a good thing.
I’ve been told good things about Code Historian but I don’t have time to try it out. Too busy finishing and starting projects.
September 22nd, 2005
I’ve been safely wrapped up in my little C++ world for a while now, but I’ve had to tweak a few ASP.net web sites in the past year. The problems we’ve had building and testing web sites internally appear to be fixed in the new ASP.net 2.0 release that Microsoft are shipping this fall. But then I read articles like this and I get worried.
The problems and issues Scott outlines contrasts with the simple life in the PHP/MySQL/SMARTY world. Files stay where they are. Compiling happens automatically, but does not litter the hard-disk with mysterious DLLs. Problems are comprehensible and solutions are discoverable.
Could it be that ASP.net is trying too hard to remake the web in Visual Basic’s image?
July 5th, 2005
I’m going to split the blog into two sections - one with the boring general stuff (pictures of random lions, weather reports from Oslo, etc) and one more focused on usability, programming and software design. Partly this is to force myself to write seriously instead of just filling the blog with useless fluff, and partly it’s because I’m impressed by sites like Coding Horror.
This entails me actually figuring out how WordPress theming works. Luckily the wiki has turned up just what I need — I think. Expect random breakages as I muck around below-decks.
June 26th, 2005
Wouldn’t it be nice if the phone system was as easy to use as internet services? Why is it so hard to send an SMS from a computer? Why is it nigh-on impossible to get the phone system to alert your e-mail if you get an SMS?
Well, it turns out the telecoms people thought so too, so they invented PARLAY - a set of standard APIs for talking to telephony back-ends. Nice. And then, because the APIs were kinda bizarre and complex (because this is the phone system, after all), they went and invented PARLAY X, a simplified web service layer on top of the plain old Parlay API. Schweet!
Now it turns out the local telephone company Telenor is involved in this. But there isn’t a peep about how to get access to the stuff, or how to get involved. It’s like they don’t actually want anyone to use this stuff.
Netcom has a dead simple HTTP-to-SMS message gateway. Better than nothing, but no way for outsiders to hook into their infrastructure. Disappointing, but at least they’ve priced it reasonably and made it reasonably easy to sign up for.
If we are ever going to get beyond downloadable ring-tones and java games then the services will need to hook back into the IT infrastructure. Parlay gives us the means, but as long as it remains locked in the R&D labs, phone services will continue to be either e-mail or WAP based.
Look at how standard APIs make the net flourish: I posted pictures to my blog from my phone via standard e-mail, through Flickr’s server in the states to my blog’s server. None of the actors here know any details about the others. All happens thanks to standardized APIs.
Telenor and Netcom should be pushing this kinda integrated services to drive more MMS traffic, but it seems to be too hard for them to understand. For example, why not have a personal log where all my incoming and outgoing SMS messages are tracked? Why not the same with MMS? Why not create a blog that is phone addressable (i.e. a person sends an SMS to themselves –> the SMS gets routed to the blog instead of back to themselves).
May 25th, 2005
Bugfix and Source for ScriptUnit.
Now version 0.8
Teardown wasn’t getting called - it is now.
Also added Assert.Error and Assert.IsNotNull and more examples, including a test COM object.
May 8th, 2005
Previous Posts