-
DisposeAfterFunc()
more…I’m been working a lot with anonymous Functions and Actions in C# - putting functional programming thinking into my code where I can. This caused me to revisit my DisposeIfDisposable code. As a reminder, I had the code:
-
Property Order for Enclosed Records in HPE Records Manager
more…I work on a big web application, RM Workspace, that integrates with HPE Records Manager. In HPE RM, a record can have a container record. A record has an Assignee, or Current Location, that specifies a person or group that is responsible for that record. When a record is enclosed in a container, that overrides the assignee, and the effective assignee becomes the container of the record. This all harks back to paper folders, and paper files. As an example, when a paper file is assigned to someone, that means it’s on their desk, and when it’s enclosed, that signifies it’s back in its manila folder.
So, we have this bug. A record has a RecordType, and here we set record defaults. When the RecordType has its enclosed property defaulted to yes, trying to set it to no as part of the record creation was being ignored. So on the record entry form, we set the container, untick enclosed, and set an assignee, and the “not enclosed” and assignee values are ignored. Perplexing!
-
Concurrent Asyncy Queues FTW()
more…I love C#, async/await tasks, and concurrency. That’s just who I am.
I’m working on an ASP.Net MVC application, and I wanted to add a Rendering module that would generate HTML renditions of electronic attachments (i.e. Word documents, PDFs, Excel spreadsheets etc) so that they can be displayed in the browser. Using async/await and the System.Collections.Concurrent assembly in Microsoft.Net, specifically ConcurrentDictionary and ConcurrentQueue, I was able to create a thread-safe Rendering module that used a configurable number of threads to do the processing. Not sure if it’s the best way to go about it, but it was a fun experiment.
Here’s how I did it.
-
DisposeIfDisposable()
more…I work primarily with HPE RM, and most of the the objects within its SDK needed to be Disposed (otherwise horrible memory related errors), prior to version 8.2 of RM.
So, lots of code like:
Record record = null; try { record = new Record(trimDb, uri); //record code stuff } catch(Exception) { // error handling } finally { if(record != null) { record.Dispose(); } }Or, the nicer
usingshortcut:using (var record = new Record(trimDb, uri)) { // code that uses record }This all works because Record implements IDisposable. However, HPE RM 8.2 came along, and most objects no longer needed to be Disposed (which is a very good thing) and as such they no longer implemented IDisposable, which broke all the code shown above (not so good).
So, to make cross-version compatible code, I made the object extension, DisposeIfDisposable:
-
Installing HP Records Manager web components on Windows 10
more…I recently got a Microsoft Surface Pro 4 as my main development machine, and as such I wanted to install a HPE RM server, and also the Web Client and Service API. However, Windows 10 is not supported by RM 8.3, and so I received this message:

I wasn’t going to let that stop me! Here’s what I did to get it working.
-
Learning F# - Parsing XML to CSV
more…I have a problem. It’s called SpiraTest.
SpiraTest provides a complete Quality Assurance solution that manages requirements, tests, bugs and issues in one environment, with complete traceability from inception to completion.
Well, it’s certainly got a lot of features, but I don’t find it very usable, so I’d like to plan and track our project progress with PivotalTracker.com instead. Spira exports an XML file, PivotalTracker imports a CSV file.
I’ve really wanted to learn (and actually become good at) a functional programming language for a long time now. I dabbled with some Erlang years ago, but now I have settled on F# as my weapon of choice, primarily because as a C# programmer, keeping stuff in the Microsoft.Net family should make things easier for me, and make it easier to put F# bits in my C# programs and vice-versa.
-
HP TRIM Stream Record Attachment Web Application
more…CodePlex: HP TRIM Stream Record Attachment Web App
Been reading a lot of development blogs lately and realised I still had one.
I’ve had in my possession for the longest time some source code that was originally published by Tower Software (prior to it being purchased by HP in 2008) to stream a TRIM electronic record to a browser. I recently updated it to use MVC style routing (thanks to: 4 Guys from Rolla*).
-
SetAsWebService — Using the TRIM .Net SDK in a web application
more…If you’ve been dabbling in the TRIM 7 .Net SDK, particularly as part of a web application you have to set TRIM to run in WebService (or Service) mode. This prevents any user interface shenanigans such as trying to display error windows on the server, and the storage of all TRIM users’ caches in the one location, and other general server-mode goodness.
-
Property name changes from TRIM version 6 to 7
more… -
Auto Categorisation Magic Happens
more…
I’m all about trying to make managing information as easy as possible. And what could be easier than sneaky information management where the user doesn’t have to do any extra work? I’m having troubles though. Not only because advanced text analysis algorithms are a tad beyond my skills (certainly to get anything working in my lifetime), but what will records management policy of an organisation let you get away with. -
Information Management and me
more…Hi! I’m Matt Bayliss, I’m a solutions architect at iCognition, an Information Management company out of Canberra, Australia of around 20 people. I’ve been here for 3 years now, but I first came to information management around 10 years ago, and it was with some trepidation. My background was dabbling with scripting, and intranet web design and development for a government department, and with interests in gaming and illustration… Information management, well, just the terms didn’t light my fire.
-
Web Directions South: It's Grouse
more…I just spent last Thursday and Friday at Web Directions South 2009. This was my 2nd Web Directions South conference, and it was good.
It was a bit of a commute Thursday morning, but after some train, plane and automobile action (well, in reverse of that order), I was happily ensconced for the opening talk.
WDS09 is a one kilo raw chicken, left out for two days and the salmonella bacteria of ideas multiply and infect everyone. To whip that poorly formed metaphor horse a tad more (there’s another!), I was sick the whole time with idea poisoning.
subscribe via RSS