Friday, May 7, 2010

Custom iPhone Mount for Evo

Since I was rarely using my Griffin iPhone 3G windshield mount, due to always removing it when parked because I try not advertise I have stuff in my car and I think it's technically illegal in MN to have one, I decided I'd like my iPhone mounted on the dash. Well I think I found a pretty decent spot. See the slide show below for how it was made or if you don't have flash visit my Picasa web album. Read the captions on the photos for more details.


More discussion here on EvoMN.

Monday, April 19, 2010

Printers Suck

Tried to install a consumer, all-in-one printer for the first time in a loooonnnnggggg time tonight. All I can say is WOW! Are we moving backwards in regards to easy of use? How would someone who is not in IT ever use this thing? The printer is a HP C4580 and I'm running Windows 7 Enterprise. What a disaster install. First attempt a "fatal error" happened during the installation itself, but it "found a solution" or at least that's the lie it wanted to stick to. After I finally got the computer to connect to the printer over WiFi, I tried to launch "Solution Center" and it came up with another error and would not launch. Tried to re-run the installer like it suggested and the only option presented was to uninstall which sounded like a great idea to me! The funnest part of the process were the no-warning reboots HP decided to include with the installer. Nothing like hitting Ok and then watching all your windows close.

There is a reason I hate hard copy and avoid printing documents and it's name is HP (printers). I've hated printers ever since I stared using computers and my hatred is completely renewed for at least another 5.

Better go. I have one more program to uninstall (why it left one behind after saying it would uninstall "everything" is beyond me) which I'm guessing will cause a reboot so better publish now. Way to go HP! You suck!

Friday, April 16, 2010

Visa Fail with Authorize.NETs CIM

Just heard from a client that their "Save Credit Card" feature stopped working. They use Authorize.NET's Customer Information Manager (CIM) to securely save the credit cards.

Suddenly the application was just returning:
3,1,290,There is one or more missing or invalid required fields.
Why two, large, successful companies like VISA and Authorize.NET can't tell you which fields they want is beyond comprehension.

According to this message thread:
Visa has a mandate in place that allows us to do $0.00 authorizations to test the validity of a card, but in order to do it they require that an address be passed also. Since VISA is the only company that has this policy, the other card types will be unaffected and not experience the same error.
Up until recently they only required Card Number, Expiration, and Security Code. I tried using a dummy address like the message thread suggested. This would only work if the Authorize.NET Address Verification Service settings were configured to ignore the address, so in my case we'll likely be updating the code to pass the billing address in since we have it anyway.

Thanks for the notice on this VISA and Authorize.NET! You have to wonder how much time and money changes like this cost all the organizations affected?

Monday, April 12, 2010

SQL Service Broker Compatibility Level Issue

Spent about 3 hours troubleshooting why SQL Service Broker wouldn't work in production when it was working fine on two dev boxes with nearly identical configurations. The only indication there was an issue was that as soon as I'd create a Subscription the OnChange event would fire.

The SqlNotificationEventArgs contained the following:
Type:Subscribe
Source:Statement
Info:Options

Finally got a clue as to what this meant from these two sources:

1) The quote below from this page at MSDN clued me in that my TSQL was not valid (which meant there must be more to the story since the same statement works in dev)
Statement : The Transact-SQL statement is not valid for notifications; for example, a SELECT statement that could not be notified or a non-SELECT statement was executed.
2) I focused in on why SQL Server didn't like my "SET OPTIONS" and found the quote below from this page
I ran a compare between the two databases.

The local one, in 80-compatibility, needed the various SET options.

The remote one, in 90-compatibility, needed nothing extra to work.

When I changed the local one to 90-compatibility, the program magically worked, with or without the SET options.

Then I realized the Production environment had been upgraded from SQL 2000 in the past and it was likely I was running in "80-compatibility". Sure enough I was, and changing to "90-compatibility" fixed my issues as well!

3 hours down the drain but learned a little more about Service Broker debugging and troubleshooting.

Service Broker Troubleshooting by Jeremy Kadlec was excellent and so was Using and Monitoring SQL 2005 Query Notification by Sanchan Sahai Saxena

Note to self: Use SQL Server Profiler more.

Friday, April 2, 2010

Message to Apple: Enough with the Terms of Service!!!

Every other time I open iTunes I have to accept a new Terms of Service. WTF? Not only does it do it every time it installs one of its frequent software updates, but when I go to update the Apps on my iPhone I get another one for the iTunes Store in the middle of trying to update my apps. And then when you accept you have to go back and re-request the app updates. Why do I buy stuff from this company? And while I'm on the topic why do I have to reboot my computer to update iTunes? It should not be installing low level drivers but apparently it does because my DVD/CD Drive under Windows 7 disappeared one day. Go here for more info:
http://support.apple.com/kb/HT2615

Either Apple is losing it or all the hype they get for such a great user experience is completely undeserved.

Thursday, March 25, 2010

Get the System Uptime for a Windows Machine

From a command prompt type:
net stats srv
Look for the line that says "Statistics since"

More info:
http://support.microsoft.com/kb/555737

Friday, March 5, 2010

FFMPEG Settings for H264 on IPhone

Took me a coupe hours today to get this to work. First I tried to compile FFMPEG from source. This appeared to work but after a couple hours of it not liking the settings I was using I finally downloaded a Win32 binaries from here:
http://tripp.arrozcru.org/

Here's the command line I used to convert a 704x544 AVI. You'll probaby need to adjust some of the size settings for you're own application.

ffmpeg -i "Rick Astley - Never gonna give you up RICKROLL.avi" -vcodec libx264 -b 1500k -s 480x368 -acodec libfaac -ab 128k -ar 48000 -f mp4 -deinterlace -y rick-out.mp4


UPDATED 7/24/2011: updated 128kb to 128k per Daniel's feedback in the comments.

Here's the FFMPEG command line reference:
http://ffmpeg.org/ffmpeg-doc.html

Note for the IPhone the following limits:
H.264 video, up to 1.5 Mbps, 640 by 480 pixels, 30 frames per second, Low-Complexity version of the H.264 Baseline Profile with AAC-LC audio up to 160 Kbps, 48kHz, stereo audio in .m4v, .mp4, and .mov file formats;

If you're getting this error "error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height", you probably didn't compile FFMPEG correctly. Try downloading it from the website above.

H264 is currently my video format of choice since it works on the following:
  • IPhone
  • Silverlight
  • Flash
  • HTML5 in Safari (4+) and Chrome
  • Quicktime
Note to FFMPEG. Figure out a way to make it easier to get Win32 binaries with all the bells and whistles. Using your product is frustrating enough without having to compile it with a million third party libraries.