OCDProgrammer.com

It's Microsoft's World, and I'm just living in it
View Clarence Klopfstein's profile on LinkedIn

Clarence Klopfstein's Facebook profile

This site is under construction...

Categories

New Comments

Referring Sites


Disclaimer

  • This is MY blog. The views represented here are not in relation to anybody else. Please read my full disclaimer for a more complete disclaimer.

Yet Another URL Shortener

August 15, 2010 14:34 by ckincincy

So I got board on Friday and decided to create my own URL shortening service.  Went looking for a domain and found ocdp.us.  A spin off of this domain so I went and did a quick search on Google to make sure I didn’t spell something bad. Google wondered if I meant to type octopus:

octopus

So I am aware of the sound of the domain :-). 

I went looking for an open source solution that existed and found one that best met my desires. One built by jobping.com.  It was ASP.NET MVC based, so figured it was a good way to work on MVC while giving me what I wanted.

The pre-baked solution was missing a few things that I wanted.

1. The ability to have a custom short URL.

2. The ability to see a report of short URL’s.  Basically how many clicks have happened on that URL.

So I took the jobping.com solution and made my own.

You can see my solution in action two ways.

1. Click ocdp.us/a to basically come back to this page.  This was an auto generated url.

2. Click ocdp.us/lwlfb to go to Loving With Luggage’s site on Facebook.  This is a custom URL.

At some point in the future I’ll share the code to my site, but need to make sure the unit test are written just for code completeness.


ZagForm Killer – GreaseMonkey Script

June 2, 2010 00:28 by ckincincy

One of the websites I read often is the Cincinnati Enquirer.

At some point they implemented a form to collect visitor information:

image

If you read this, it says you won’t be shown this again… yet, I see it over and over and over again.  So I did what any self-respecting geek would do. Hacked around it.  The solution?  My first ever GreaseMonkey script.  Very simple in nature, if it finds the URL that is used for this form, it redirects me to the article. 

Took me 10 minutes to develop, and will save me from being bugged by it in the future.  I doubt this will be useful to anybody else, but if so… let me know.

ZagForm Killer 1.0


Protecting your information on Facebook

April 8, 2010 19:33 by ckincincy

If you are on Facebook, read this.  It is worth your time and I think my suggestion at the end is a huge win for how to navigate Facebook.

Having your information on Facebook can be a problem.  You basically don’t want to put anything on Facebook that you don’t want known by EVERYBODY, because things happen.  Computer glitches happen which expose, even if only temporary, your most private information.

imageHowever, you can at least be smarter with your information.  Take a moment to review your privacy settings, it is that important.  Go to the top right side of your landing page and hit the Account tab, and select Privacy Settings.

In this next screen you are given several area’s to edit your privacy settings.  Be sure to click in each and every one of them to review all of your settings.  I do this once every few months to find out what new settings Facebook has made available to me.  The “Applications and Websites” area freaked me out the last time I looked at it.

Every area that Facebook gives you the ability to set permissions on will have a drop down similar to this:

image

For much of my profile and contact information I allow “Only Friends”.  I don’t allow “Friends of Friends” to see much of my information.  Just because they are your friend doesn’t mean they are my friend and I want them to see my information.  In fact, in several cases… I don’t like some of your friends :-).

For my Photos and Videos of me I have my setting to “Only Me”.  The reason for this is that I don’t want everybody seeing photos and videos I am tagged in, by default.  Some pictures may be embarrassing or show information that I don’t want public (I am a certified foster parent, and have to worry about that). 

However for a select few sections I actually go into the ‘customize’ section.  This gives the following pop up:

image

You see that little item in who I allow to see things?  It is a list that I created, “See Updates”.  [This is the huge win for this post, I’ll expand on it shortly]

The fact is, just because I am your friend doesn’t mean that I want you seeing my Facebook updates.  I am connected to you and I don’t mind being connected to you at all, but I do value some of my privacy and Facebook allows me to control that.  Frankly, just because your my friend doesn’t mean you want to see some of my updates.

List are a great tool on Facebook.  I actually have 18 list on Facebook.  For your benefit and mine.  I have a ‘Youngens’ group that easily allows me to hide status updates from them if they are not age appropriate.  I have a list for people who live near me when I am talking about locally relevant information.  My family in Florida doesn’t care about a local pizza parlor.

The main list that I have though is, “See Updates”.  These are people I don’t mind seeing all of my status updates.   They get to see everything I post…. unless, for some reason I need to hide somebody.

The way I utilize this is pretty strait forward, on your main landing page you when you go to update your status you get an option to edit who you are sharing that update with.

image

When you click the custom here, you get this window:

image

You can see that I have the “See Updates” in my approved list, however what you should notice is the little check box in the lower left hand corner.  “Make this my default setting.”  By checking this, the setting you use here will be the default setting for all future status updates. 

Now I recommend using an approved list instead of a blocked list.  The reason being that if you forget to update your approved list, the only thing you lose is not sharing your information with somebody you want to share with.  If you go the other way around you end up sharing your information with somebody you don’t want seeing your information.  I’d rather error on the side of caution.

However, remember what I said at the beginning of this article.  don’t share anything on Facebook that you don’t want the entire world knowing.  Because things do go bad in Facebook land.


Where to buy cheap and affordable ink

March 9, 2010 00:01 by ckincincy

image

Buying ink for your home printer is always a huge pain.  It is where the printer manufacturers make their money.

However after needing to buy ink for my Cannon Pixma MP620B I found InkForSale.net.  I bought two cartridges on my first order, a black and a magenta.  The black went in without a hitch, the magenta however would never take. 

So I contacted InkForSale.net and they, slowly, replied and said they would send me a replacement.  At this point, I also needed a Yellow cartridge.  So I told them I would go ahead and order that and they can ship them together to save some money.  Unfortunately when my package came it only had the Yellow cartridge in it.  So I emailed them again and never got a reply, however the magenta cartridge did arrive and work as expected.

So three out of four cartridges worked fine, and they did replace the broken one. 

So will I purchase from them again?   You better believe it.  The savings is well worth it.  The big difference is that I will order more than I need and store the new ones. 


Find out when you’ve been unfriended on Facebook

January 14, 2010 21:56 by ckincincy

For the longest time I’ve wanted a way to see if I’ve been unfriended on Facebook, and I read today that there was an app for that.  However, as you read that article you see that Facebook reacted quickly and disabled the application.

However, briefly mentioned in that article is a GreaseMonkey script to tell you if a friend has unfriended you.

I did a test an had my daughter unfriend me, and it worked like a champ.

image

So why do I care?  I’m a bit OCD and I just like to know such things :-)


P3P Header

December 9, 2009 03:00 by ckincincy

 

One thing I learned over the past few months had to do with sharing a website from one site to another via an iFrame.  The problem arises when the domains don’t match.  If your primary site is example.com and the site in the iFrame is exampleinaniframe.com, by default exampleinaniframe.com cannot set cookies or execute certain JavaScript.  Browsers see this as a potential hijacking and throw a security error.

The fix for this is pretty simple, but not simple all at the same time.  There is a header you can add to  your site telling browsers that it should allow it to be put in an iFrame.  Those are called P3P Header’s.  Now the hard part to this is that a search online returns a lot of conflicting answers to what your header should look like.  Then one night, as I was trying to figure out how to do Facebook development, it hit me.  That is how Facebook works.  All of those applications you use in Facebook are really hosted on another site, you just see it seamlessly via an iFrame.  Now since Facebook has 350,000,000 users I figured they probably have this figured out.

A brief search found this very simple and concise P3P header, all you have to do is include this somewhere early in your page load life cycle (global.asax, httpmodule, basepage, etc…):

HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");

That will tell the user’s browser to not throw a security exception and allow the site to function as needed.


Orchard, Oxite and ASP.NET MVC

December 7, 2009 03:00 by ckincincy

I have been an ASP.NET developer since I joined the team at Cintech in 2006.  I’ve been in the web form world and all the wonders of the PostBack page model since then. 

oxiteThen around the end of 2008 I remember hearing some noise about an ASP.NET MVC project released by Microsoft that got some bad reaction.  Talking about how it wasn’t a good start to MVC.  I never took the time to look deeper as I had other things going on in life, and was happy with my PostBack world.  Turns out this was a project called “Oxite” that is hosted over on CodePlex.

Then July of this year I took a job with a long time friend at Epsilon.  My friend is a Java developer, and through our conversations he kept telling me about this “MVC" way of doing web development.  About how it is so different than how he was being forced to develop on the .NET project we were working on together. 

The more he talked the more I got interested in learning about this new ASP.NET MVC that Microsoft had released.  Around this time CINNUG hosted a firestarter event going over ASP.NET MVC.  I took a Saturday to attend the event and learn some more.

In general I’m eager to learn more and put some of this in action.  This is when I went looking for that project that Microsoft put out.  Upon finding Oxite I see that it was basically a dead project.  The only thing I could find was a post on Erik Porters blog stating this in the comments:

October 08, 2009
Jeff, there is news coming about Oxite, but unfortunately I can't share anything until some other news happens. :( It's looking right now like that news is still a month and a half out. Really sorry! :(

OrchardLogoCodeplexNow this is on top of the fact that Oxite had not moved much since July.  Check ins, yes.  But nothing worth writing home about.  Then in the comments there was some guessing that Oxite was going to become “Orchard”, which was discussed as being a full featured CMS backed by Microsoft, though still being open source. 

Now I had high hopes for Orchard.  Since Oxite had been dead for months, I figured this new Orchard product would be ready to go when released.  I was stoked and waiting for it to be released.  I was all set to move this site to use the Orchard codebase.  When it got officially released I downloaded it, compiled it.. then ran it locally.  Wow, was I ever disappointed.  Orchard is months away from being usable, so here we are in the community with nothing to use.  From what my brief research shows me, at least a year after the release of ASP.NET MVC we have made very little progress in expanding this for people to actually use. 

As harsh as this may sound, I blame Microsoft and I blame the Oxite team. A person named Adam created a discussion on CodePlex stating the following:

October 12, 2009
Guys,

At the moment, I feel that Oxite is hindering developers from creating new ASP.NET MVC blog engines because Oxite is already there, on the other hand, the current official release of Oxite is missing load of features and cannot be compared to other popular engines.

If you are not planning to release soon or you are very busy, just declare this project as no longer supported to open the chance for other developers to start their own engines...

Regards,

Adam

I totally agree.  People don't want to waste their time recreating the wheel when there is a project already out there.  But here we are, over a year has passed and we have very little ‘real’ stuff to show.

Microsoft needs to get its act together.  Many great developers are abandoning the .NET platform for platforms like Ruby, and if you lose developers you lose the market.  Customers don’t care what platform people use, they just want their problems solved.  If those problems are solved and the developer chooses a non-Microsoft technology, then Microsoft loses.

Maybe Orchard is the answer.  Maybe six months from now this blog post looks like the most foolish blog post on the web.  For now, however, I’m still looking for the next big thing.  What comes after .NET for me professionally?  .NET won’t be around forever and being a fairly young man, I have to look toward the future to keep myself professionally relevant. 


A Few Thoughts on Twitter

October 9, 2009 21:17 by ckincincy

I am on Twitter.  I don’t use it much, but I’m on that service.  My interaction with Twitter has been a work in progress.  My first three or four attempts just didn’t pan out. I found no value in using the service, but I would give it a fresh look every four months or so.  During my last attempt, it stuck a little.  So I’m going to share a few of my thoughts on Twitter.

Being OCD causes issues.

I’ve got a bit of an OCD personality to me.  The domain name on this site is not by accident.  I have to have a near empty inbox and Twitter works the same way.  I need it to be up to date on all the things I read.  This causes me to keep my friend list very well defined and pruned.  I use TweetDeck to sort out my friends.  A list of people I want to read all of their stuff, a few custom searches, a group for people who Tweet too much (hello @DanielJohnsonJr), and people who Tweet WAY to much (hello @Shanselman).  I’ll continually refine this list and I can’t wait for Twitter to release their new list functionality officially.

Twitter Stars

I’m sure there is a term for this, but the idolizing that some people get on Twitter is pretty disturbing.  I see this with some high end technical people, but its worse when it comes to some well known ministers.  When it comes to the technical people, it odd to see but when it comes to ministers… I just get a creepy feeling inside.  I’ve been in church settings that were defined by a personality of a given minister or staff member, and I just get that vibe when it comes to this dynamic on Twitter.

Can they stop the porn bots?

I get on average a spam friend a day.  Generally a link to some dating or porn site.  Can they stop that?  I will occasionally go a few days without incident and then get three or four in a row.  I can just see this taking over Twitter.

Stalkers

One of my friends is Daniel Johnson Jr.  He helped start up a local group called New Media Cincinnati.  He spent a lot of time building this organization, but lately a stalker came into the fold and created New(er) Media Cincinnati.  Dan covers it well on his blog, but the fact that Twitter has let this continue after many complaints disturbs me.  The newer person has no intention to use the site other than to cause Dan problems.

Get with the program!

OK, I’ll admit this is my OCD firing up.  However, there is a way to do things on Twitter and it annoys me when people don’t follow the given protocol.  Learn the tricks as you go, and as you do… change! 

It won’t last

I can’t imagine Twitter will last.  140 characters just isn’t enough to keep the interest of the average person.  Plus the people that do use Twitter hard core have a history to move on.  These people were the first on MySpace, then Facebook, now Twitter.  And if you really want to go back, these were your bulletin board people, your people paying by the minute on AOL, people that used a website that I think was sixdegrees.com.  It is the nature of the internet to move on to the next cool thing.  Few things stick around for more than a few years, and I’m not at all convinced that Twitter is one such site. 


How I Help

September 24, 2009 16:52 by ckincincy

I forget where I found this:

HowIHelp


Canon Pixma MP620B Blue Edition

August 8, 2009 11:34 by ckincincy

image A few weeks ago my sturdy Dell desktop computer from 2001 decided to finally die.  The unfortunate part of this is that it was my only real PC with XP on it, to host my Lexmark X6170 printer on my network.  The Lexmark X6170 has been a faithful member of my house for around six years. With no issues until we started upgrading our computers with Vista.  The X6170 was only partially upgraded to work on Vista and even then was fairly unusable.  Even though I was a key member of developing the drivers that ran the X6170, and many of the first few generations of Lexmark’s All-In-One printers, while at Jetsoft Development… it was time to replace it.

While my family was out one night, we were fairly close to Best Buy and I figured I would stop in and price a few printers.  One of the first ones I saw was the Canon Pixma MP620B Blue Edition.  It supported ‘wireless printing.’  Which was intriguing to me, as my house is networked by wireless.  After reading over the box I saw that it also supported USB and wired printing.  It was on sale for just $99.99, a savings of $50.  Setting it up was not trivial but the directions that came with it made it pretty clear. 

Once I had the printer configured on my wireless network and on my personal computer it was time to install it on my wife’s.  Any installs after the first one are pretty trivial and went pretty smooth.  Now all the computers in my house are able to talk to this printer without issue. 

When I bought this I assumed that only printing was able to be done over the network because scanning is not a simple thing to program for on a local connection, much less a network connection.  I was pleasantly surprised to find out that this machine actually does support scanning and printing without having to be directly connected to a computer.  I was also surprised to find out that the machine also supports ‘pushing’ documents to computers.  So if my wife wants to scan a document to her file system she can do it from the printer and does not have to be around her computer.  The printer will scan and save the file on her hard drive.

The next added benefit is the numerous memory card slots on the box.  Not only can you access those from the printers 2.5 inch LCD screen but you can access them as a shared drive on any connected computer.  This saves battery life on the camera as it doesn’t have to put the power out to copy the files from the memory card to the computer.

My initial ratings on this computer is certainly a 4.75/5.00.  The software is a bit clunky, but most software bundled with these devices are.  Which leads me to my final point on this machine.  When I figured out that it was also a scan over the network printer, I made another assumption that my third party scanning applications would work with it.  That they didn’t have valid TWAIN drivers to allow for that.  I was wrong again.  I opened up my favorite application, again one that I had the pleasure of developing for several years at Jetsoft Development, Art-Copy.  Sure enough I get the simplistic interface and advanced features of Art-Copy and the convenience of a network scanner

I certainly recommend this product if you are in the market for an affordable, and flexible all in one device.