Rants, rambles, news and notes from another geek

Print Head Cleaning for My Canon S600 Ink Jet Printer

Last week our home printer started blinking yellow seven times. A quick look in the user guide told me that it was a defective or clogged print head. Yuck. I knew that really meant either fixing it or buying a new printer since this one is out of warranty, so I started digging on the ol’ intarweb.

A found a number of articles, all with similar but different approaches. Almost all of them involved soaking in filtered or distilled water, some used isopropyl alcohol, some used special “ink jet cleaning solution”. A few recommended forcing it through with a syringe, and one guy even showed you how to completely take it apart.

What I ended up doing, and it seems to have worked, is this:

  1. Remove the cartridges, set them aside. If the rest of this takes very long, cover the outputs with tape.
  2. Remove the print head. Mine just lifted out. If it is harder than that, you have a different printer than I do.
  3. Set it in a shallow dish and soak it for 5-10 mins in isopropyl rubbing alcohol.
  4. After it loosens up, use a Q-Tip swab and some alcohol and VERY CAREFULLY remove any gunked up ink on the head. Avoid touching the little slots too much, since they are VERY small and that is where the printing all happens. Mess them up and you will be buying a new print head (or a new printer).
  5. Once you think you’ve got it clean (some people do this for days, I did it for about 15 minutes), dry it carefully. I used a bit of compressed air to help get it dry, but again, be careful.
  6. Replace the print head and reinsert the cartridges.

The problem I had at this point is that the printer still thought it was broken and I couldn’t get it to do a Deep Cleaning or anything. The yellow light continued to blink seven times.

Boo.

I dit a bit more digging and was just about to give up when I ran into a post that told how to do a full reset on most Canon printers

&nbsp_place_holder;

Here are the steps (in case that link dies):

  1. Disconnect powercord, Hold Down Power and Resume Buttons
  2. Connect the powercord and unit will turn on
  3. Release Power Button, then click it once
  4. Release both Power and Resume Buttons
  5. Green Power light will be on steady, amber Resume light went off
  6. Then at about 1 second intervals … click Resume, click Resume, then click Power…In a few seconds Startup Cycle Machinations will occur and finish
  7. Do a Button Power off … a Button Power on wont work …&nbsp_place_holder; unplug then replug power … Button Power on / off , Machinations OK,

So, that worked for me. Please assume that following any of the steps can break your printer, so if you aren’t prepared to deal with that outcome, take it to a repair shop instead.

ZIP Code Maps via Google Maps

Today Emily and were looking for something by zip code and were very frustrated that we couldn’t find any good online ZIP code maps that didn’t cost money. Seems insane… right?

How happy I was when I discovered this site: http://maps.huge.info/zip.htm

They have done yet another Google Maps hack, this time overlaying the ZIP database information. Woot!

Quick-n-Dirty PowerShell Password Generator

I can’t even remember when or why I wrote this, but I needed to quickly and easily generate a password for something. I typically use PasswordMinder for this, but when I wrote this I just needed to generate a whole bunch of them for someone else and didn’t need to keep them in my password database.

It is a relatively simple script that uses the RNGCryptoServiceProvider class in the System.Security.Cryptography namespace to generate the random sequence. It uses a default set of characters (see the script) and a default password length of 12.

generate-password.ps1:

param( 
[int] $len = 12,
[string] $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_!@#$%^&*()_"
)
$bytes = new-object "System.Byte[]" $len
$rnd = new-object System.Security.Cryptography.RNGCryptoServiceProvider
$rnd.GetBytes($bytes)
$result = ""
for( $i=0; $i -lt $len; $i++ )
{
$result += $chars[ $bytes[$i] % $chars.Length ]	
}
$result

DISCLAIMER: I am not a crypto expert, so this might not be a very good implementation! It is meant to illustrate how you can do this stuff in PowerShell and not anything else.

Do You Twitter? (Aka Twittering From TechEd '07)

I was recently exposed to twitter.com by my good friend Brad Wilson (aka The .NET Guy). This is like a blog, but simpler and more targeted at answering the question: What are you doing? You can use it from your phone, via the web or from your IM client. Here’s some info from the twitter FAQ:

What is Twitter?

Twitter is for staying in touch and keeping up with friends no matter where you are or what you├óΓé¼Γäóre doing. For some friends you might want instant mobile updates├óΓé¼”for others, you can just check the web. Invite your friends to Twitter and decide how connected you want you to be.

How does Twitter work?

When you send in a mobile text (SMS), Twitter sends it out to your group of friends and posts it to your Twitter page. Your friends might not have phone alerts turned on so they may check your web page instead. Likewise, you receive your friends mobile updates on your phone.

Since I’m here at TechEd and people might want to know the answer to that question, I figured it would be a good time to start “twittering”. My twitter name is pprovost.

Open-Sourcing the CodePlex Client

The CodePlex team made this announcement on their blog this morning:

This morning&nbsp_place_holder;we just published a CodePlex project for our source control client. We’ve released the source code under the Microsoft Permissive License. The source code is already available, and the internal and external issues have been moved to the public Issue Tracker.

In addition to cpc.exe, we’ve also included a utility called tfc.exe, which works against arbitrary TFS servers. In the Beta 2 release of the client we will be publishing binaries for both cpc.exe and tfc.exe. The Beta 2 release will also enable the ability for cpc.exe users to get anonymous access to the source code of any project on the system, thereby closing a long-standing CodePlex feature request.

Very cool! Get it!

Save Internet Radio!

Do you listen to Internet Radio stations like Pandora or other online stations? If so, then you might care about an issue pending in the US Congress. From SaveNetRadio.org:

On March 2, 2007 the Copyright Royalty Board (CRB), which oversees sound recording royalties paid by Internet radio services, increased Internet radio’s royalty burden between 300 and 1200 percent and thereby jeopardized the industry├óΓé¼Γäós future.&nbsp_place_holder;&nbsp_place_holder;&nbsp_place_holder;

At the request of the Recording Industry Association of America, the CRB ignored the fact that Internet radio royalties were already double what satellite radio pays, and multiplied the royalties even further.&nbsp_place_holder; The 2005 royalty rate was 7/100 of a penny per song streamed; the 2010 rate will be 19/100 of a penny per song streamed.&nbsp_place_holder; And for small webcasters that were able to calculate royalties as a percentage of revenue in 2005 ├óΓé¼” that option was quashed by the CRB, so small webcasters├óΓé¼Γäó royalties will grow exponentially!

Before this ruling was handed down, the vast majority of webcasters were barely making ends meet as Internet radio advertising revenue is just beginning to develop.&nbsp_place_holder; Without a doubt most Internet radio services will go bankrupt and cease webcasting if this royalty rate is not reversed by the Congress, and webcasters’ demise will mean a great loss of creative and diverse radio.&nbsp_place_holder; Surviving webcasters will need sweetheart licenses that major record labels will be only too happy to offer, so long as the webcaster permits the major label to control the programming and playlist.&nbsp_place_holder; Is that the Internet radio you care to hear?&nbsp_place_holder;

As you know, the wonderful diversity of Internet radio is enjoyed by tens of millions of Americans and provides promotional and royalty opportunities to independent labels and artists that are not available to them on broadcast radio.&nbsp_place_holder; What you may not know is that in just the last year Internet radio listening jumped dramatically, from 45 million listeners per month to 72 million listeners each month.&nbsp_place_holder; Internet radio is already popular and it is already benefiting thousands of artists who are finding new fans online every day.

Action must be taken to stop this faulty ruling from destroying the future of Internet radio that so many millions of listeners depend on each day.&nbsp_place_holder; Instead of relying on lawyers filing appeals in the CRB and the courts, the SaveNetRadio Coalition has been formed to represent every webcaster, every Net Radio listener, and every artist who enjoys and benefits from this medium.&nbsp_place_holder; Please join our fight for the preservation of Internet radio.

SaveNetRadio.org

Common Errors in English

My wife and I each have our most hated English language abuses. One of her favorites is “these ones” (you should omit the “ones” and just say “these”). One of mine is “I’m good” (it should be “I’m well” or “I feel good” because “well” is an adverb and “good” is an adjective.)

Anyway, for some reason last night I looked up “these ones” in Google and found this excellent list of common english language errors. Take some time digging through it… you never know what you will find.

Unit Testing Makes It Into VS-Pro (Finally)

One of the more popular and commented on posts on this blog was one I made back before joining Microsoft and before VSTS shipped where I tried to start a community push to get Unit Testing into all of the VS SKUs.

Naysawn Naderi (PM for Developer-Oriented Testing in VSTS) recently announced that we have made a major step in that direction by getting this capability into the Visual Studio Pro.

Great work guys!

Front Range CodeCamp

My good friend John Luif just pointed out that the Front Range CodeCamp v2.0 is on the books for May 19 2007.

Code Camps are free technical conferences run by the local community for the local community, so if you are in Denver or the front range region, think about submitting a talk or at least attending.