Converting Scanned Document Images to Searchable PDFs with OCR#

Bill Bither has an article at Code Project showing how to use Atalasoft's DotImage to OCR a PDF to make it searchable.

http://www.codeproject.com/showcase/SearchablePDFs.asp

I have been working with DotImage to see if we could make use of their webviewer and thumbnail controls.

Categories: Programming
Tuesday, December 05, 2006 3:57:23 PM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Using window.onload without overwriting existing onload event handlers#

When you are creating reusable javascript files, there are times when you want to tap into the window.onload event, which is fired when the window has finished loading the content.

The problem here, is that you can't have multiple event handlers for the same event.

So if you have a page that uses 2 scripts which both use the window.onload event, then which ever is loaded last will win, and the other script will never catch the event.

Well one way you can deal with this problem is to write your window.onload (or other events for that matter) using this type of a pattern:

    //-- see if there is already something on the onload
    var tempFunc = window.onload; 
    //-- create our event handler
    window.onload = function(){ 
        //-- if tempFunc is a function, try to call it
        if (typeof (tempFunc) == "function"){ 
            try{ 
                tempFunc(); 
            } catch(e){} //--- if it errors, don't let it crash our script
        } 
     //-- Call your onload function here
    }

This way, you can have several function that all utilize the onload event, and none of them have to know about each other.

 

Categories: HTML | Javascript
Tuesday, December 05, 2006 3:33:52 PM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Crytek : Crysis#

Well I guess I will need ANOTHER new video card...

http://media.pc.ign.com/media/694/694190/vid_1755062.html

 

Categories: Gaming
Sunday, December 03, 2006 4:23:32 PM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Getting Real#

Here is the online version (free) of 37Signals.com book on development: Getting Real.

I think they have basically an agile approach to not only software development but business as well.

Like almost all development methodologies, I think some of their ideas are pretty valid, unless they aren't.

For example, some of the things I hear a lot from the sort of XP / Agile development styles are things like:

 "Get your app out as soon as possible, even if it isn't fully debugged or fully complete.  Let your users tell you what features need to be added, rather than spending the time guessing what they want"

and

"2 rules of performance optimization. 1) Don't.  2) Not yet!"

 

1) If you get your app out, and you start spending you time getting people to use it, and it sucks, then you have actively made people who had no opinion of your product now have a negative opinion.  If you fix the bugs and add features later, they will just remember that they tried it, and it sucked.

2) You can always add performance optimization later, except what about when need to rewrite 2 months of work because you were too lazy to spend an extra 4 hours during the design phase to build in some ability to scale? 

Categories: Programming
Sunday, December 03, 2006 2:30:01 AM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Stop Motion Video#

This is awesome!

(Click 2 times in the space below to get the video to show)

Categories: Cool
Sunday, December 03, 2006 1:46:58 AM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Petals Around The Roses#

I came across this game: http://www.borrett.id.au/computing/petals-bg.htm

It's more of a puzzle or mind teaser.  Apparently it took Bill Gates 90 minutes to figure it out.  I did it in about 10, not that I think I'm smart or anything :).

See if you can "crack the code."

Categories: Interesting
Sunday, December 03, 2006 1:38:03 AM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Free Ad Exchange Network#

This is a pretty interesting idea.

You agree to serve up some ads on your site, and in exchange, your ad will be served up on others site, w/o any cost to either party.

Pretty interesting idea.

Categories: Cool
Sunday, December 03, 2006 12:57:20 AM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Convert Video Formats#
LifeHacker is linking to a software tool they say will convert any video format to any other video format.

http://www.lifehacker.com/software/downloads/download-of-the-day-any-video-converter-windows-218253.php

http://www.any-dvd-converter.com/


Categories: Software | Utilities
Friday, December 01, 2006 9:51:19 AM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Adding return values to SubModal#

A while back I blogged about SubModal, a little tool for creating nice modal dialogs on websites.

One of the things I wanted to do was have the modal dialog return a value, like the showModalDialog does in IE.

To achieve this, follow these instructions.

In your "main" html page, declare a callback function and a button that will launch the modal dialog:

    function myFunction(val){
        alert("Return value is...");
        alert(val);
    }

Then create an input button to launch the modal dialog.

<input type="button" onclick="showPopWin('modalcontent.html', 400, 200, myFunction);" />

Then, in the submodalsource file, or where ever you have your JS stored, change this function to include a return value, and have it use it.

/**
 * @argument callReturnFunc - bool - determines if we call the return function specified
 * @argument returnVal - anything - return value 
 */
function hidePopWin(callReturnFunc, returnVal) {
    //alert(callReturnFunc);
    gPopupIsShown = false;
    restoreTabIndexes();
    if (gPopupMask == null) {
        return;
    }
    gPopupMask.style.display = "none";
    gPopupContainer.style.display = "none";
    if (callReturnFunc == true && gReturnFunc != null) {
        // edited by CDM -- gReturnFunc(window.frames["popupFrame"].returnVal);
        gReturnFunc( returnVal );
    }
    gPopFrame.src = gLoading;
    // display all select boxes
    if (gHideSelects == true) {
        displaySelectBoxes();
    }
}

Then finally on your modal page, just some code to close the window, and pass back the return value.

<button onclick="window.parent.hidePopWin(true, 'I am the return value')">close</button>
Categories: Programming | HTML | Javascript
Wednesday, November 29, 2006 4:06:50 PM (Central Standard Time, UTC-06:00) #    Comments [2]  | 

 

Wrapping .Net Unit Tests in Enterprise Services Transactions#

I am already using Enterprise Service Transactions in an app that I wrote to automate the generation of invoices at Walsh.

This same technique is an option (I have probably blogged about it before, but this is a nice article) for rolling back DB changes.

http://weblogs.asp.net/rosherove/articles/dbunittesting.aspx

 

Categories: Programming | Testing
Wednesday, November 29, 2006 4:03:09 PM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Using TFS Checkin Policy To Force Comments#

I went to a DevCares event today and heard some people talk about TFS.

The topic of Checkin Policies was of spcial interest.  I quickly found this policy that will require that methods be documented.

http://www.codeplex.com/Wiki/View.aspx?ProjectName=TFSCCPolicy

I think this would be a GREAT thing to have in our environment, where comments are very scarce.

Categories: TFS
Monday, November 27, 2006 6:29:03 PM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Can I please delete a file?#

So now what?

Categories: Funny Stuff
Monday, November 27, 2006 4:10:25 PM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Changes to "Insert Code" in dasBlog#

I am proposing some updates to dasBlog.  I made some changes that fix some problems with the Insert Code feature, as well as adding a few features ("Left Justify of the code") and the addition of JScript support (I had nothing to do with the XML file changes... those are from the original author.

Here are my changes.

 

Categories: Blogging | dasBlog
Sunday, November 26, 2006 4:29:30 PM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

DasBlog Patch Submitted#

Yesterday I wrote about the changes I made to dasBlog to solve an outstanding bug in the Insert Code option in the textbox editor.

I added some extra features, like the ability to insert JavaScript (this change was simply the merger of some XML data that the original author has released) and some code that will remove extra white space from the left side of the code block.

I used this article from Scott Hanselman to submit the patch.

Categories: dasBlog
Sunday, November 26, 2006 4:28:33 PM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Social Networking Links#

Yesterday I added the links you see at the bottom of this article that allow users to quickly submit these articles to your favorite social networking site.

This wasn't as easy as you would think.  I didn't fully understand dasBlog's template system, thinking I could use server side script inside the <% %> brackets.  This is of course not the case.

I ended up finding a partial solution here by Mads Kristensen.

However, I found that this solution failed in a few ways.  First, the URLs being submitted in the querystring were not fully encoded.  The result was that some sites (I verified Digg.com) did not accept these.  It would give you an error that your URL was not correct.  The other problem, was that most of these links include a title, which is good, but they cause JS errors if you have a single quote in your article title.

After some screwing around, I realized that the only way around this problem would be a custom dasblog macro on the server that could encode the titles.

So, I just removed the titles for now.

As an added bonus, this will be an opportunity for me to test out the new JavaScript syntax highlighting I now have on my blog.

<script type="text/javascript">

  var tn = document.createTextNode('<%ItemTitle%>');
  var div = document.createElement('div');
  div.appendChild(tn);
  var html = div.innerHTML;
  var index = html.indexOf('&gt;') +4;
  var title = html.substring(index, html.length - 10);
  var social = '<div style="float:left">';
  social += '<a href="mailto:?body=Thought you might like this: <%permalinkUrl%>&amp;subject=' + title + '" target="_blank" title = "Email This Article">Email it</a>&nbsp;|&nbsp;';
  social += '<a href="http://digg.com/submit?phase=2&url=' + encodeURIComponent('<%permalinkUrl%>') + '" target="_blank"  title = "Post To Digg">Digg it</a>&nbsp;|&nbsp;';
  social += '<a href = "http://del.icio.us/post?url=' + encodeURIComponent('<%permalinkUrl%>') + '&amp;title=' + title + '" target="_blank" title = "Post this article to del.icio.us">Del.icio.us it</a>&nbsp;|&nbsp;';
  social += '<a href = "http://reddit.com/submit?url=' + encodeURIComponent('<%permalinkUrl%>') + '" target="_blank" title = "Post to Reddit">Reddit</a>&nbsp;|&nbsp;';
  social += '<a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=' + encodeURIComponent('<%permalinkUrl%>') + '&amp;top=1" target="_blank" title = "Post to Live">Live it</a>&nbsp;|&nbsp;';
  social += '<a href="http://www.dzone.com/links/add.html?url=' + encodeURIComponent('<%permalinkUrl%>') + '" target="_blank" title="Post to DZone">DZone it</a>&nbsp;|&nbsp;';
  social += '<a href="http://www.dotnetkicks.com/submit?url=' + encodeURIComponent('<%permalinkUrl%>') + '" target="_blank" title="Post to DotNetKicks">Kick it</a>';
  social += '</div>';
  document.writeln(social);

</script>
Not bad (looks like it got a little confused by the nested strings, but that IS confusing).

Just put this code in your template of choice and you should see good results.
Categories: dasBlog
Sunday, November 26, 2006 4:26:51 PM (Central Standard Time, UTC-06:00) #    Comments [2]  | 

 

DasBlog Recent Comments Macro#
Categories: dasBlog
Sunday, November 26, 2006 4:24:49 PM (Central Standard Time, UTC-06:00) #    Comments [1]  | 

 

DasBlog Custom Macros#

If you want to do anything on the server side with Dasblog, you need to make a custom macro.

This article shows how to do exactly that:

http://blog.krisvandermast.com/CreatingCustomMacrosForDasBlog.aspx

 

Categories: dasBlog
Sunday, November 26, 2006 4:23:30 PM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

Technology Focused VCs#

Here are 2 sites I have been reading:

http://earlystagevc.typepad.com/earlystagevc/

and this article of AskSlashdot:

http://interviews.slashdot.org/article.pl?sid=06/10/13/1451242&from=rss

It's interesting to learn about how people are building these applications and businesses.

Categories:
Sunday, November 26, 2006 4:20:48 PM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

10 Rules For Web Startups#

Interesting list for 10 rules web startups should follow:

http://www.evhead.com/2005/11/ten-rules-for-web-startups.asp

 

Categories: Interesting
Thursday, November 23, 2006 9:42:59 PM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

.Net Search Engine#

Lucene.Net is another document index search engine.

You can point it at some files, office, pdf, rtf, html, and it will index them and provide a nice google-like results page.

http://dotlucene.net/

Categories: Programming | .Net | ASP.Net
Thursday, November 23, 2006 9:21:13 PM (Central Standard Time, UTC-06:00) #    Comments [0]  | 

 

All content © 2010, Christopher May, Inc
Open Job Positions
On this page
Google Ads
This site
Calendar
<December 2006>
SunMonTueWedThuFriSat
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456
Archives
Sitemap
Blogroll OPML
Disclaimer

Powered by: newtelligence dasBlog 2.3.9074.18820

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Send mail to the author(s) E-mail

Theme design by Jelle Druyts


Pick a theme: