Scott Hanselman

FinePrint changes the way I print.

August 21, 2006 Comment on this post [9] Posted in Reviews | Tools
Sponsored By

Fineprint1I blogged about FinePrint last year. I literally can't overstate how much this application has changed the way I use my computer and my printer.

Here's what I said last year:

It's a "fake" (virtual) printer driver that basically sits between you and your real printer. You print everything to FinePrint and it gives you an opportunity to mess with the pending print job.

Most interestingly, you can change 1:1 print jobs to 2, 4 or 8 up. This ROCKS. I can take 4 page long meeting agendas and print them on one page to any printer. (Some expensive copier/printer drivers support this in the driver, FinePrint works with all printers.)

How many times have you seen hundreds of sheets of paper (color ink, even) sitting printed in your company's copy room/office that one sided. Seriously, makes my heart ache. With this thing you can print double sided easily and do booklets as well. [Me in the past]

FinePrint isn't a print queue or fake printer. It's Tivo for your printer. It lets you remove sheets, remove graphics, print 1,2,4 up or booklets. You can print to it, then save the output as a JPEG or TIFF. You can print to the clipboard.

One of my favorite features is "Collect Jobs." You can print from multiple applications and consolidate all the jobs into one Fineprint session, remove pages, make changes, then print the whole thing as one print job.

The margin adjustment is nice also...you can change the margins after the source app has printed the job. You can also create virtual printer "instances," like one that does double sided, one that does letterhead or watermarks.

It also creates an AutoSave folder, if you like, in your My Documents folder with the last, say, 10 documents printed, so you can open the jobs up again and reprint them. You can also use this as an offline printer. I printed a number of things on the plane today and saved them as Fineprint files. (Yes, I know that Windows supports some offline printing, but FinePrint lets you select different printers, while with Windows you can't move jobs between printers.) Then I printed them in the Hilton Business Center when I arrived.

All this for $49.95. That's the magic price for me...$50, no way. But <$50, heh, sold. Don't trust just me, though. You can download a trial here.

NOTE: I wrote this on my own because I use this tool all the time. Today I needed a TIFF of a Print Job and FinePrint was there to make it happen. I needed to reprint something I'd printed last week and it was saved in my AutoSave folder. When I dig something, I like to share it with other folks. I don't know the guys at FinePrint.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Hanselminutes available on iTunes

August 20, 2006 Comment on this post [6] Posted in Podcast
Sponsored By

Ituneshanselminutes2

A friendly reminder, and some news...you can subscribe to Hanselminutes, my weekly Podcast with Carl Franklin within iTunes. If you have iTunes installed, just click here.

Here's the main feeds:

And, for the news. By popular demand, and expanded bandwidth, you can now see the last 20, yes TWENTY, Hanselminutes shows within iTunes. So, go stock up for the holidays.

One other thing, we're looking for sponsors for Hanselminutes to help pay for the bandwidth (which is crushing). If you're a technology company or ISV who usually does magazine advertising, consider advertising on my podcast. It's a very cost effective way of reaching literally tens of thousands of hardcore geeks. Email myself or Carl for details.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

WATIR for .NET - WatiN approaches 0.8 release and automating IE from PowerShell

August 18, 2006 Comment on this post [7] Posted in ASP.NET | PowerShell | Ruby | Watir
Sponsored By

I'm a big fan of WATIR (pronounced "Water"). However many folks have said they wish they could have a similar tool in .NET. WatiN may be that tool. Looks like they'll be releasing 0.8.0 around September 1st with these changes:

  • An even more Watir like syntax to access an element. There's no need anymore to use MainDocument to access, for example, a TextField. You will now write code like:
    ie.TextField("textfieldid).Text 
  •  Support for finding matching element attribute values by using regular expressions.
  • Out of the box support for finding images by their Src attribute (no need to create your own AttributeValue class for this anymore).
  • Updated documentation.

Looks like a pretty nice, pretty clean implementation of an IE abstraction layer for .NET that will be getting even cleaner very soon. 

Aside: Another great .NET-based IE Automator is Alex Furman's SWExplorerAutomation. Here's an example of integrating SWEA with NUnit.

Back on the Watir side, one of the coolest things about Watir is "putting IE on a string" from the Interactive RuBy shell, or IRB. Leon has a great 3 mins to Watir tutorial that uses the IRB with Watir to interactively poke around at a site. Many folks find this more useful and interesting than using a recorder tool.

For example, assuming you've installed Ruby with the Windows Ruby Installer, open up a cmd.exe prompt and run

gem install Watir

to get Watir. Then run IRB.exe (Interactive Ruby) and do this:

irb(main):001:0> require 'watir'
irb(main):002:0> include Watir
irb(main):003:0> ie = Watir::IE.new
irb(main):004:0> ie.goto("
http://google.com")
irb(main):005:0> ie.text_field(:name, "q").set("Scott Hanselman")
irb(main):006:0> ie.button(:name, "btnG").click

And that's interactive Watir, right? Yay.

So, if I take a look at this WatiN (pronounced WHAT'n as in What'n'tha'heck maybe?) using the only interactive .NET Shell I have available to me...could I do Watir/IRB style interactive work using PowerShell?

PS[1] C:\WatiN-0.7.0.4000\bin
> [System.Reflection.Assembly]::LoadFile((get-item WatiN.Core.dll).FullName)

GAC    Version        Location
---    -------        --------
False  v1.1.4322      C:\WatiN-0.7.0...

PS[2] C:\WatiN-0.7.0.4000\bin
> $ie = new-object WatiN.Core.IE("
http://www.google.com")
New-Object : Exception calling ".ctor" with "1" argument(s): "Could not load fi
le or assembly 'Interop.SHDocVw, Version=1.1.0.0, Culture=neutral, PublicKeyTok
en=null' or one of its dependencies. The system cannot find the file specified.
"
At line:1 char:17
+ $ie = new-object  <<<< WatiN.Core.IE("
http://www.google.com")

Looks like since he's using an unsigned IE interop assembly it can't load it from the current application directory. That's c:/Program Files/Windows PowerShell/v1.0/, not the current directory. At this point I have two choices. I can copy the unsigned intern assembly Interop.SHDocVw.dll to the PowerShell folder, or I can rebuild the project against a Signed Primary Interop Assembly for IE. I'll copy it over for now.

PS[1] C:\WatiN-0.7.0.4000\bin
> [System.Reflection.Assembly]::LoadFile((get-item WatiN.Core.dll).FullName)

GAC    Version        Location
---    -------        --------
False  v1.1.4322      C:\WatiN-0.7.0...

PS[2] C:\WatiN-0.7.0.4000\bin
> $ie = new-object WatiN.Core.IE("
http://www.google.com")
New-Object : Exception calling ".ctor" with "1" argument(s): "Specified cast is
 not valid."
At line:1 char:17
+ $ie = new-object  <<<< WatiN.Core.IE("
http://www.google.com")

Yikes. Looks like folks are pissed off; so pissed off this forcibly closed PowerShell also.

Ok, so WatiN is doing something tricky that PowerShell doesn't like. Well, since PowerShell has its own concept of how .NET and COM should interact. Let's cut out the middle man (WatiN in this case) and go direct to IE from PowerShell .

PS[1]>$psie = new-object -com InternetExplorer.Application
PS[2]>$psie.Navigate("
http://www.google.com")
PS[3]>$q = ($psie.Document.GetElementsByTagname("input") | where { $_.Name -eq "q" } #get the input box called "q"
PS[4]>$q.value = "Scott Hanselman"
PS[5]>$search = $psie.Document.GetElementsByTagname("input") | where { $_.Name -eq "btnG" }
PS[6]>$search.click()

Gross, not easy, but shows potential. You know, a weekend, some UpdateType-Data action and a few functions and one could get a WatiPSH (!?) prototype running that would be very PowerShelly...I wonder if the PowerShell type extension stuff works as nicely with COM objects...

If the WatiN team considers PowerShell in their use cases, their abstraction layer might make a suitable interface for PowerShell scripting. Or, perhaps a few well written PowerShell scripts could give Watir-like syntax on PowerShell. Either way, WatiN has the potential to be pretty useful, particularly within NUnit if you find the Watir NUnit Integration distasteful (some do, I don't, I started it).

For now, I'll stick with the simplicity and IJW of Watir, but I'm keeping my eye on WatiN.

Now playing: Stephen Lynch - Superhero

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

AnkhSVN: Using Subversion within Visual Studio

August 17, 2006 Comment on this post [9] Posted in Musings | Tools
Sponsored By

Ankh1rc2Congrats to Arild for releasing AhknSVN RC2. If you're looking to use Subversion within Visual Studio, perhaps at work or perhaps you're working on an Open Source project at SourceForge, this is the tool for you.

NOTE: If you do use TortoiseSVN at the same time as Ankh, do note that they are linked to Subversion 1.4, so they will upgrade your local SVN working copies. Make sure you upgrade both at the same time.

To be clear:

IMPORTANT NOTE: TortoiseSVN 1.4.0-RC1 is linked with the Subversion 1.4.0-RC4 libraries. Due to various improvements made to the working copy library, the working copy format has changed. Using TortoiseSVN 1.4.0-rc1 on any working copy created by previous versions of Subversion/TSVN will TRANSPARENTLY upgrade your working copy, which means that production-ready versions of Subversion/TSVN (1.3.x and earlier) will no longer be able to read it! Please be careful, if you use other Subversion clients (eg. the 1.3.x command line client), not to use the TortoiseSVN 1.4.x release candidate on a production working copy.

As with all things, YMMV and back up your life.

ADDITIONAL NOTE: If you get "Unable to retrieve folder information from the server" when using VS2003 in a Web Project, you may need to go into your TortoiseSVN settings and set "use ASP.NET Hack" which tells Tortoise to use folders name "_svn" to store details rather than folders named ".svn".

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Hanselminutes Podcast 29 - Dynamic vs Compiled Languages

August 16, 2006 Comment on this post [9] Posted in Podcast | Programming
Sponsored By

My twenty-ninth Podcast is up. This episode is about disruptive technologies like Ruby on Rails, the rise of dynamic languages and what it means to the average .NET developer.

We're listed in the iTunes Podcast Directory, so I encourage you to subscribe with a single click (two in Firefox) with the button below. For those of you on slower connections there are lo-fi and torrent-based versions as well.

This show was FULL of links, so here they are again. They are also always on the show site. Do also remember the archives are always up and they have PDF Transcripts, a little known feature.

Links from the Show

BLINQ (heg)
ARSTechnica on BLINQ (hej)
Castle (hen)
LINQ (heh)
Ruby on Rails (hel)
ActiveRecord (hem)
C# 3.0 (hei)
FTP Online Tutorial on BLINQ (hek)

Subscribe to my Podcast in iTunes

NEW COUPON CODE EXCLUSIVELY FOR HANSELMINUTES LISTENERS: The folks at XCeed are giving Hanselminutes listeners that is Coupon Code "hm-20-20." It'll work on their online shop or over the phone. This is an amazing deal, and I encourage you to check our their stuff. The coupon is good for 20% off any component or suite, with or without subscription, for 1 developer all the way up to a site license.

Our sponsors are XCeed, CodeSmith Tools, PeterBlum and the .NET Dev Journal. There's a $100 off CodeSmith coupon for Hanselminutes listeners - it's coupon code HM100. Spread the word, now's the time to buy.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

  • The basic MP3 feed is here, and the iPod friendly one is here. There's a number of other ways you can get it (streaming, straight download, etc) that are all up on the site just below the fold. I use iTunes, myself, to listen to most podcasts, but I also use FeedDemon and it's built in support.
  • Note that for now, because of bandwidth constraints, the feeds always have just the current show. If you want to get an old show (and because many Podcasting Clients aren't smart enough to not download the file more than once) you can always find them at http://www.hanselminutes.com.
  • I have, and will, also include the enclosures to this feed you're reading, so if you're already subscribed to ComputerZen and you're not interested in cluttering your life with another feed, you have the choice to get the 'cast as well.
  • If there's a topic you'd like to hear, perhaps one that is better spoken than presented on a blog, or a great tool you can't live without, contact me and I'll get it in the queue!

Enjoy. Who knows what'll happen in the next show?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

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