You are currently browsing the archives for the Software category.



Adobe Acrobat 4 on Windows 7

By pcurd

Continuing on from previous posts about Windows 7 compatability with legacy software, a colleague has experimented with Adobe Acrobat 4.

The install was relatively painless, although complaining about the product not being compatible there was only one real problem – Windows 7 does not seem to like the print driver (Adobe PDF) in Adobe Acrobat 4. We tried some simple persuasion but I would guess this is just not compatible.

I have not tried Distiller which is also included in the install.

Once installed, Windows 7 warned that Adobe Acrobat 4 had known issues but it did open. Simple PDFs opened fine and edifying features appeared to work. We use the APIs in Adobe Acrobat 4 but testing them is outside the scope of the first test.



Microsoft Office 97 on Windows 7

By pcurd

As per my last post we are testing some legacy systems on Windows 7.

One of my colleagues has begun the testing process with Office 97.

Beginning the process, it started off badly with a message ‘Are you sure you want to install this software from an unknown publisher’. Mm well, yes, I guess Microsoft, I do want to install Microsoft software.

During a regular install with binder, HTML editor and something else small I can’t remember removed there were 3 errors about there not being a default email client installed. As we plan to install Office 2003, including Outlook, over the top I wasn’t worried about these.

Access 97

The main important app for us is Access 97 so this was the first to be tested. It opened fine, even clippy seemed pleased with his new home. A few simple self contained databases with tables, queries and forms, with some vba module code, opened fine.

To be tested: We plan to test with non-form module code and reports next week. Then SQL links.

Result: So far all is working and response time is good.

(This post is still under construction)



Legacy software on Windows 7

By pcurd

One of the duties my department has is to evaluate new software and check for compatibility with existing systems and other software. With the release of Windows 7 in the last two weeks it therefore made sense to up the testing from a few packages on the RTM to our entire suite on the final code.

One of my colleages has begun this process this week and I will blog some of the findings as they happen. I will put up a post for each major package to aid the googlefu of the posts!

Please feel free to leave comments with any other experiences or findings.



Trigger Scheduled Tasks Remotely

By pcurd

Just had to trigger a windows scheduled task remotely and was struggling to find VBScript etc to do it when I found a rather natty tool – SCHTASKS.exe.

Very helpful tool that works locally or remotely and by file path or schedule name.

However, there is an odd bug listed here which stumbled me for a little while. If you get the error “The parameter is incorrect” this is definitely the place to go.

(To summarise in case of link rot, the “.” character must not be in your task name)



Enterprise Library error: Binary format of the specified custom attribute was invalid fix for Visual Studio 2010

By pcurd

I’ve just started to work on a project and I am using the Enterprise Library 4.1 ( , download at ( in Visual Studio 2010 Beta 1.

I kept running into a really annoying problem, an error using DatabaseFactory.Create():

System.Reflection.CustomAttributeFormatException: Binary format of the specified custom attribute was invalid.


build key Build Key[Microsoft.Practices.EnterpriseLibrary.Data.Database, null]) failed: Binary format of the specified custom attribute was invalid.

Turns out that Enterprise Library 4.1 doesn’t support .Net Framework 4.0 ( so I changed the Project Preferences to use .Net 3.5 and it worked perfectly.



A forage into Ruby

By pcurd

I’ve been experimenting with Ruby (and with the Rails framework) the last few days after a need came up for a console based application with a large degree of string manipulation. I have been using Python and Perl for similar jobs before – in fact I run a number of Python scripts that have proved to be extremely useful. A lot of the legacy code I work with is written in VBA (Visual Basic for Applications) within Access and Excel so this was another possible choice.

I wanted to avoid hosting my code within Access due to a possible rollout of Access 2003 soon and the fact that I needed to access mailstores – the thought of using ADO scared me and I don’t have a machine I can dedicate a copy of Outlook to so this effectively ruled out VBA.

Perl has loads of libraries available on CPAN and Python seems to be going the same way but the quality of community code can be suspect – I’ve never run into a problem with it myself, I use CPAN libraries all over the place – especially on my web server – and I didn’t want to be supporting third party libraries as well as my own code.

We are effectively a C# shop for new development – just myself and my boss keeping the legacy code up to date really – so I had to consider this as an option. .Net provides a nice SMTP library but not POP3 or IMAP… so that brought me back to the same problem I had with Perl and Python. I spent about half a day with a CodeProject IMAP library but it was not feature complete and after scoping out the changes I’d need decided I might as well have written the library myself.

I’ve been looking into Ruby and Rails recently for a personal database project and knew that Rails provided a lot of functionality. Now, I know that technicaly Rails is a community third party library but it is so much more refined and integrated than a hodge podge of CPAN modules thrown together. And, Rails provides IMAP straight “out of the box”. I loaded up Ruby.Net only to find that neither them or IronRuby supports Rails yet! This project was proving more complicated than I had expected – and I hadn’t written a line of code yet.

So I made the decision to write this application in neat Ruby on Rails without linking to .Net binary in the hope that Ruby.Net will catch up eventually! (Rails support is expected in the next version apparently)

My first surprise was that Rails just works. I did not have to go through any rigmarole to get Net::IMAP to work – just

require 'net/imap'

and I was off. As I didn’t have access to the rails scaffold I used DBI to access a Microsoft SQL Server instance with the amazingly complicated

require 'dbi'

which is shorter even than PHP’s database linking code. Opening a handle with

dbh = DBI.connect('DBI:ODBC:MY_DSN')

gave me immediate access to the ability to run SQL with sensible data returns.

Suffice to say, I was impressed. A few helper functions later, and some hastily learnt Ruby conditional statements for error catching

var = var ? var : " "

to remove nils from strings – this technique even works when passing parameters – amazing. Features available in Perl like

run_my_long_complex_function(variable) unless defined?(use_simple_mode)

are so much cleaner and clearer to read in Ruby – plus the excellent “PickAxe” (Programming Ruby – possibly the best Ruby textbook) not only encourages this technique – it’s the one it teaches you.

More impressive and powerful functions that let you pass in chunks of code (‘blocks’) using “yields” are likely to be my next excitement but so far I haven’t needed them.

The only thing I can say is that I had some 22 lines of error checking code using if then else etc – Ruby first impressed with the ability to use ? : notation which reduced it to about 8 lines. Then I realised that I could use conditional formatting like the unless example above. Then Ruby amazed me with the ability to use them both together – did you realise that if blocks are expressions, not statements – Ruby did. That code is now 1 line – and it works just as well.

I muchly look forward to developing the rest of the feature set in Ruby as I’m sure it’ll keep impressing me with it’s ability to make programming interesting again!



Firefox gets down with the natives

By pcurd

Firefox 3, due out “soon”, is at a conundrum.  Do they want to maintain a familiar look and feel across borders or go native on each platform? covers the story nicely.

Personally I agree that fitting in to the host system is a good idea – it makes for easier integration and one could argue shorter learning times but as a user of three separate operating systems (Windows, Ubuntu and OSX)  I like that Firefox looks the same on all of them.  I use Google Browser Sync to keep my bookmarks up to date, (and it’s firefox addon) for the rest and don’t have to worry about it.  I use Firefox far more than any other application – can’t imagine my day to day life without it.

I’m probably bias – in fact I am – because I don’t like the look of Safari or of IE so I naturally want Firefox to look like Firefox.  I don’t use Opera because I don’t know how it works and because I’m afraid it won’t do what I want.  I know Firefox will but that isn’t the reason I use it.  Something about it feels right.

I’m writing this on a machine without Firefox (need to put Portable Apps Firefox on the network!) and I feel icky inside.  It’s a browser with tabbing so I’m able to survive having 20 web pages open without clogging up the OS but it just doesn’t feel right. I can’t bring myself to think of using Firefox and having it look.. like this.  It’s just wrong. 

So I would definately definately keep Firefox looking as it does – or at least ship the current default skin as an option.  I guess that’s the great thing about open software -if I don’t like it, I don’t have to lump it.



DNS in Linux

By pcurd

I have a world of problems with DNS in Linux. My Ubuntu box is sat on a Windows 2000 domain and usually holds it’s own. It’s not a member of Active Directory nor does it import great knowledge from Active Directory – it is an island of peace amongst the Kerberos hoards.

Most recent problem – after an unscheduled, shall we say ungraceful, shutdown of the box it appeared to have dropped off the network. After a lot of faffing I found that the DNS servers were not specified anywhere, the machine became static IP from DHCP assigned between the last reboots so evidently I didn’t set it up correctly the first time. After trying several solutions this helped:


In order to assign a static nameserver, you must edit the file /etc/resolvconf/resolv.conf.d/base, and add you “nameserver x.x.x.x” line there. This file is automatically included at the start of the /etc/resolv.conf file that resolvconf generates.

To add a search domain I similarly added “search” to the same file.

– Update

I have recently installed Ubuntu 6.10 (I know, I’m still about 2 releases behind) and I didn’t have this problem.  Good work team Ubuntu!



SQL Servers

By pcurd

Now I like SQL Server, it’s a stable, mature product and I think it has a lot to offer as a package. A combination of Access, Enterprise Manager and Query Analyser can perform virtually any task.

But why, as a commercial enterprise grade product, why does it have to crash? Really, why. I have just spent 2 hours staring at a DTS package only to discover that the service running on another server has crashed. Which takes me on to my second complaint, can we have some indication of death please!?

Now admittedly I am working with Server 2000 (v8) and there are several newer version that may have increased the stability but really this is fundamental stuff.

I have administrated MySQL and PostgreSQL before and they are not perfect either. MySQL has foibles that make you believe you may have gone insane and PostgreSQL on Windows is so painful it hurts. Can’t have Authenticated NETWORK users in your Power Users group because it upsets the LOCAL user that runs the service…Sure, why not.

So, here I am, two hours late because of some lazy attempt at not scaring the SQL administrator by actually having error messages.



Setting up WordPress

By pcurd

Even easier than I thought – 5 minute install is about right.  However, configuring it.. I love the options, don’t get me wrong. The options excite and delight me in ways they perhaps shouldn’t.. but does there really have to be THAT many?

Ok, so yes, yes there does. It’s the eternal trade off between “I want it really simple” and “why the hell doesn’t it do BLAH, that’s so lame”.  I get it all the time with desktop apps so I guess it’s going to happen with online apps.  I think tomorrow is the day for WordPress template shenanigans.  (Weird how shenanigans is in the dictionary but whatchamacallit is not…)