sed saves the day

The following command:

        sed -e 1,250000d report.tsv > output.txt

Removes the first 1/4 million rows from the given file before passing the output to a file.

This is very useful when a tsv file is 15 Mb – way too big for excel to view.
sed may be old, but it does do the job quickly that very few other tools handle so well.

Web Services and Mono

I have been experimenting with MonoDevelop on a Breezy Badger Ubuntu system. Until now I had limited myself to creating Hello World style console applications.

I have just got a Hello World web service client to run under MonoDevelop. The only sticking point that I had found was forgetting to add System.Web,Services as a reference.

Given that the mono wsdl works that well we have a great opertunity for interoperability. The promise of web services can be realised.

Web Services and Web References (part 2)

I have just finished a web services training course.
Apparently setting a web reference uses wsdl.exe in the background so the two are equivalent for creating a proxy. However wsdl.exe does provide far more control.

The problem comes with the update web reference option. If you have decorated the proxy with attributes (such as a soap extension) these are lost upon regeneration. There does not seem to be a clean way of managing this. We really need more control of the template than WSDL.exe provides. I am sure that xslt could be used…

.NET 2.0 does promise more control over this generation.

My Product Must Be A Canoe

In Dynamics of Software Development Jim McCarthy makes the argument in #23 Portability is for Canoes. Well the product I am working on needs ro become a canoe. Currently it has a SQL Server backend and it has been sold into an Oracle only shop.

I expect to have a large number of posts on the pain of porting.
The product has been written using a large number (900 ish at the last count) of stored procedures. We have a handfull of views.

The fun part comes comparing Oracle to SQL Server:

In SQL Server parameters need to start with @.
In Oracle parameters may not start with @.

Oracle is case sensative by default.
SQL Server is case insensitive.

Not much of a problem as all of our tables are NAMED_IN_UPPER_CASE.

Oracle has a 30 character limit on database object names.
You know, stored procedures, tables, indexes, constraints.

We have 130 of these to rename.

The one that will bite us are the stored procedures that return reordsets. Oracle does not allow that. This is the fun one.