Jim's Blog Ramblings about novels, comics, programming, and other geek topics


How to remove passwords from protected Microsoft Word documents

Google AdSense

There's always been a need to remove passwords from protected Microsoft Word documents when you need to make a change. My most common occurrence is with Human Resource (HR) forms. HR staff will create the MS Word document, password protect it, and then upload it to our company intranet. However, when I need to fill the form out, the only way to do so is to print the form, sign my name, scan the signed & printed form, and them email it back to them. What I would like to do, is to just paste a scan of my signature onto the form, save as a PDF, and them email them the PDF saving printing and scanning time and paper (which would then need to be shredded).

Here’s a trick that I learned a long time ago.


How to update your FAST ESP Java version

Google AdSense

First, install the new Java version on your FAST ESP server.

Second, there are 3 configuration changes to inform FAST ESP which version of Java to use. Unfortunately, the FAST ESP application does not fully utilize the standard “JAVA_HOME” environment variable, so there are two additional configuration files that must be edited.


SubSonic 3.0

I've used SubSonic 2.x for a while and I've blogged about how useful it was as a tool to aid my development projects. A few weeks ago, SubSonic 3.0 was released and I hadn't spent much time reviewing the updates and changes to version 3.0 until this week.

At the present, I have several large projects using SubSonic 2.x and I have a new smaller project starting this week. So I decided to download and install SubSonic 3.0 and use the small project to get familiar with the updates prior to updating my other web sites from 2.x to 3.0.


How to merge pages from a PDF document

A few months ago, I wrote a small article about extracting pages from a PDF document to create a new PDF document. This article will use the same library, iTextSharp, to merge pages from one PDF document to create a second PDF document.

For this utility, imagine having a PDF document with pages that are 8 1/2" x 11" and you want to combine 2 pages into one larger page. The resulting output document would be 17" x 11" and show two pages from the input document on one page on the output document.


Creating a FAST ESP entity blacklist

FAST ESP is a robust enterprise search platform that I've worked with and administer for a couple of internal projects. One of our requests for the FAST contractors was asking how we could fix the entity extraction algorithm to create a more accurate extraction.

The platform uses a complex method to determine and extract companies, persons, and location names. However, sometimes their algorithm provides false positives.

Here's a few examples of what we saw as company names using the default FAST ESP company names extractor:

  • Program Support
  • Visio
  • Personnel Management
  • IT Support
  • JSP (meaning Java Server Pages)
  • Database Design

Here's a few examples of some person names extracted from our documents using the default FAST ESP person names extractor.

  • Lan, Wan (meaning local area network, wide area network)
  • Columbus Day
  • West Virginia
  • Norton Antivirus

FetchXML Builder for Microsoft CRM

Every now and then, I come across a developer utility that's worth mentioning. The utility might not be new or even great, but its a tool that I'm able to put to use somewhere to solve a problem or just assist in the problem solving.

The FetchXML Builder by James Downey is a great tool because it is one of those niche utilities that speeds up development time and helps the developer (me). The FetchXML Builder is a query-builder like tool used for creating FetchXML requests for Microsoft CRM.

So unless, you're a CRM developer, you probably won't find this as cool as I do.


The Year 2038 Bug (January 19, 2038)

In about 29 years from today, you'll be hearing a lot about the 2038 bug. This bug is similar to the Y2K bug, but this bug could actually affect computers more than the Y2K bug.

The Y2K (Year 2000) bug was due using two digits to manage the year value. For example, 99 represented 1999 and 00 represented 1900. Although, this was more of a data error since the servers and computers uses a different method to track time.


How to extract pages from a PDF document

One of the great things about being a programmer is that when you need software that you don't have, you can usually write a small utility application to do what you need without having to purchase the software.

If you own Adobe Acrobat ($299 USD) or FoxIt Editor ($99.00 USD), then you can just right click and extract pages from an existing PDF to create a new PDF document. However, if you don't want to shell out the money for it, then you can always write your own code to perform the same task.


The Failure of Electronic Voting Systems

Rob Conery (of SubSonic and Microsoft MVC projects) wrote a very interesting article a few weeks ago titled, "Hacking Your Vote". He summarizes the various electronic voting systems, their bugs, and their designs.

As a software engineer, I find it utterly amazing that a $50 million dollar Diebold system was designed using a Microsoft Access database -- an unsecured Microsoft database. Rob also shows some screenshots of Diebold's database on his blog entry.


How to use custom audit fields with SubSonic

SubSonic uses a few audit fields by default - you don't need to write any code. However, the field names that are used are coded into the source code. You can modify the source code and generate a new assembly, but if you're like me and would rather not edit the source code (so you don't need to update the code at every release), then you'll be looking for an alternative approach.