jvance.com

.net, c#, asp.net, linq, htpc, woodworking

Jarrett's Tech Blog

  1. My Son Henry is Maximus Cuteness

    I'm giving my old blog a rebirth and what better way than to show off my new son.

    Henry Vance Born May 2011

    This little fella was the best birthday present ever. He just couldn't wait to meet us as he was born a month early. Mom did a terrific job with the pregnancy and birth.

    We are now 6 months in and I had no idea how cute someone could be. Henry just seems to shine cuteness.

    Henry-School-pic-3

    He already sitting up and it looks like he is preparing to crawl around. I've already caught him sneaking a drink from the Christmas party keg (j/k).

    KegCute

    Mommy already has him liking beans and I (Daddy) had him banging on the keyboard this morning.  He is on his way to being the greatest Vance ever.

    Posted by JarrettV on December 23 at 12:54 PM

  2. 404 Not Found but not 410 Gone

    Update: I've restored a couple posts

    Update2: All blog pages are back (sorry for any lost comments)

    During a recent server transition, I lost some pages to my blog site (404).  However, I am recovering so they shouldn't be gone forever (410).

    These http status codes are an important part of how the web works.

    Please check back soon.

    PS: it may be later since I now have an awesomely cute son

    Posted by JarrettV on December 20 at 12:15 AM

  3. Woodworking Maple Veneered Fireplace Mantel Project

    Fireplace-Mantel

    Our latest woodworking project is a maple veneered fireplace mantel.  We custom made it to replace the previous mantel which was too high and dark. 

    Before

    Fireplace-Too-High

    After

    New Fireplace Mantel

    Project By

    • Jarrett Vance
    • Kristin Vance *Henry
    • Mike Vance
    • Anakin Vance

    Build tasks

    1. Remove old mantle, replace with 2-bolt anchors (1/2" threaded rods)
      DSCN16195
    2. Add data jack above bolt with for cable (RJ45), ethernet (cat5e), hdmi
      Add 4 electrical plugs above other bolt

      DSCN16181
    3. Measure and build box, drill holes for bolts, cut slots for wrench 
      wrenchslot
    4. Fill with wood patch, sand, and clean surface for glue (contact cement) 
      2011-02-26-14.07.591
    5. Glue veneer to box using contact cement
      2011-02-26-14.08.231
    6. Trim and finish veneer (veneer found at local WoodCraft)
      DSCN16225
    7. Level and bolt on mantle above fireplace 
      bolted-on

     

    We built this beautiful mantel at Vance & Sons Cabinets in Fairhope, AL.

    I hope you like our new fireplace mantel. We love it!

    Posted by JarrettV on April 03 at 2:29 PM

  4. MVC3 Talk

    Image7.media Tonight, I will be talking about MVC3 to bugdotnet which is Birmingham's .NET User Group.

    Topic: ASP.NET MVC 3

    ASP.NET MVC 3 is a framework for building scalable, standards-based web applications using well-established design patterns and the power of ASP.NET and the .NET Framework. The latest version includes great new features: razor view engine, expanded validation, and built in support for dependency injection.

    As part of my preparation for the talk, I built a feedback site using many of the new features in MVC3.  The feedback site is live and is is currently hosted on my backup server at discountasp.  I've posted the source code on github.

    The reason for this feedback site was two-fold.  I not only wanted to use newer MVC3 features, but I wanted to solicit feedback for my talk.  You see, I have already given the MVC3 talk to GGMUG, which is the Gwinnett, Georgia, Microsoft User Group.  The presentation was great.  The audience was great. The feedback was great.

    From this feedback, tonight I will approach the audience with a choice.

    • Learn about what is new in MVC3 or
    • Learn about MVC in general

    Please attend if you'd like to have a say. The meeting is tonight at 6:30 pm at New Horizons located at:

    601 Beacon Pkwy W
    Birmingham, AL 35209-3121
    Posted by JarrettV on March 08 at 2:56 PM

  5. Email Signature in Android Fixed

    EmailSig Update: all newer versions of Android now have this fixed. Move along, nothing to see here.

    Exchange Email Client Missing Signature

    I know many people (including myself) that use the email client in Android for personal and business use.  Yes, it is lame that there is no signature support. It is a popular issue on the Android issue tracker. I hear all sorts of work arounds, such as copy and paste the signature from a text file.  Well, instead of using the workaround, I decided to fix the issue.

    The Fix & Source

    I've mentioned before that the best thing about Android is that it is open and anyone can view the source.  For example, here is the source to the Android email app. Because it is a built-in application, you must download the entire Android source code in order to make changes to the Email app.  Once I downloaded the source, I made the following changes:

    • Update storage mechanism to store a signature with each account
    • Update account settings to add signature preference
    • Update new email compose to automatically insert the signature
    • New Support for reply, and forward

    You can view the source code of these changes on my GitHub.

    application_put Download Email.apk for Android 2.1 (Nexus One, Droid, Root Only)

    Unfortunately, because this is a built-in application, you can't update this application from the market (this will likely be fixed in next Android release).  You can only update this application if you have root access to your phone.  If you do have root access, download the Email.apk and push it your phone. Because the Email app is always running in the backround, you should do this from recovery, otherwise you'll need to re-enter all your accounts.

    adb shell
    mount /system -o remount,rw
    adb push download/Email.apk /system/app/Email.apk
    

    Or, you can download directly to your phone using the barcode below. You'll need to copy it into the /system/app folder with a program like Root Explorer.

    qrcode

    Posted by JarrettV on April 15 at 3:41 PM

  6. Android Market Needs Gift Cards

    giftcard_thumb1

    Update: Amazon has an app store for Android that you can use gift cards with.  Google is still missing out on this opportunity!

    As of today, the only valid  purchasing method on the Android Market is the use of a credit card. Android needs gift cards to expand access to the Android Market.  If there were gift cards, people could gift apps and more people (especially the young) could buy apps.  I am more likely to buy an app with a gift card than my own credit card.  iTunes gift cards are everywhere (literally in almost every store) which increases exposure to Apple's brand.  Google needs this too!

    Expand Access with Gift Cards

    If there were Android gift cards, it would expand access to the market for young people or people that do not have a credit card. Lets face it, kids buy games and there are not many parents that let their kid link their credit card to their phone.  If there were gift cards, parents could buy their kids a gift card or kids could buy a gift card with their own money.

    Also, some people, for whatever reason, may not have a credit card or want to use a credit card on the internet.  These people need an alternative method to buy apps on the market since cash is out of the question.

    Gift Card Culture

    The gift card business has boomed due to what I believe is a gift card culture. I don't know about you, but what do you give to the dad that has everything?  That is easy, get them a gift card to Bass Pro Shops, right? I'll admit, I give gift cards to people because it is easier than trying to pick something out for them. 

    Receiving a gift card is never as personal as getting a physical gift, but sometimes it is preferable.  For example, I love technology.  Technology is easy for me to buy because I understand it.  However, it is too complex for my grandmother to gift an SSD to me. So I love it when I get a Newegg, Best Buy, or Amazon gift cards.  Also, I am more likely to make a larger purchase when using a gift card.

    Free Android Brand Advertising

    iTunes gift cards are everywhere. I've seem them at every major retailer, wholesale clubs, grocery stores, drug stores, and gas stations.  Because they are so easy to find and buy they make a perfect last minute gift.  Good advertising is in-your-face-advertising and Apple has succeeded here.

    Google should introduce gift cards to the Android Market as soon as possible.  Let's expand the market!

    More Links

    Payment Methods

    Carrier Billing

    Think of gift cards?

    Think of gift cards (again)?

    Marketplace Suggestions

    Posted by JarrettV on February 14 at 1:21 PM

  7. Intel SSD Deal and Price Watch

    I'm in the market for an SSD but the prices are still sky high. I'd like to do a fresh install on my desktop machine and install Windows 7.  My current Vista install is running out space due to the WinSxs folder.  A new SSD would be a perfect reason for a reinstall and a nice speed boost.

    I've been running an SSD in my laptop for about 5 months and I love it.  The speed and battery life is incredible.

    Back in August 2009, I was lucky to snag an Intel X25-M G2 from Newegg for $229.

    Image102.media

    The price immediately sky rocketed right after my purchase it and it hasn't settled back down since.

    I just installed this cool new extension for Chrome called The Camelizer.  It watches the price of products at various web sites and shows a graph.  I'll definitely use this tool to find the right time to buy.

    Image_thumb51.media

    Update: I was watching the OCZ Agility drive with Camelizer and it notified me of a recent price drop.  I was extremely tempted as it also came with a mail-in rebate the lowered the price to $129.  This is a great deal for a 60GB SSD.  However, I just didn't feel the time was right as I haven't found a cheap copy of Win7 yet.  Anyway, within a few hours it sold out!

     

    Image103.media

    Posted by JarrettV on January 30 at 10:41 PM

  8. Output Large Result Sets to Excel 2007 from SSIS 2005

    I was recently in a situation where I needed to output a large amount of data to an excel file.  This file is generated periodically and used by business analysts.  We are using SSIS 2005 and the BAs are using Office 2007.  Since the report would be bigger than 65,536 row limit of 2003 format, we needed to use 2007 format.

    You'll need to start your data flow with an OLE DB Source as according to this thread it is required for compatibility.

    SsisExcel2007Dataflow

    Next, in the Connection Managers, create a New OLE DB Connection. Choose Microsoft Office 12.0 Access Database Engine OLE DB Provider. For now, leave the details blank and click OK to continue.

    SsisExcel2007ConnectionManager

    Note: you'll need Office 2007 installed or the 2007 Office System Driver: Data Connectivity Components

    You'll notice that it looks like you are using a database connection instead of the typical Excel Connection you used for Excel 2003.

    SsisExcel2007ConnectionManagersNewOld

    Select your new connection and view the properties.  Change the connection string to the value below.

    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";

    SsisExcel2007ConnectionProperties

    Don't forget to change the file path in the connection string.

    Next, I recommend you truncate any large columns to 255 using a Derived Column transformation.  Also, use a Data Conversion transformation to convert all strings to unicode strings.

    Now, that your data is in the correct format, let's clean up the column names.  I use a Union All transformation and delete the old columns and rename the derived and converted columns.  These last couple steps make the data more compatible with Excel.

    SsisExcel2007UnionAll

    Finally, your ready to dump the data to an Excel 2007 file using an OLE DB Destination.  Choose your new connection you made earlier.  For the name of the table or view, choose New to create a new worksheet in the Excel 2007 workbook output.  In the CREATE TABLE script, you can rename the worksheet if desired.

    SsisExcel2007Destination

    Because of the cleanup, you'll have a simple one to one mapping.  Now you can output more than 65k rows into an Excel file from SSIS 2005.

    SsisExcel2007DataflowResults

    Posted by JarrettV on January 26 at 1:26 PM

  9. Getting Started with Android

    I've been following Android since it was released in late 2008.  I was excited because I knew the potential was limitless. One year later, both me and my wife got our first Android phones, the Verizon Motorola Droid.  It only took a year for Android to mature into greatness, but it still has a way to go.  I'll discuss some of the basics of using Android and share some of my favorite tips and applications.

    Why I Like Android

    Android is built on top of a solid foundation of openness and optimism.  Computer geeks like me love the piece of mind that comes with knowing you can change/fix anything you don't like about your phone.  Android allows you customize anything about the phone.  Also, Google is pushing for an ecosystem where all devices are treated equal.  The future of the cell phone is not 2 year contracts or nickle and dime calling plans.  We will no longer need voice plans, just a monthly data plan.  Android will enable this.  If not 2010, 2011.

    contacts

    Before You Start

    With Android, your data lives in the cloud.  For the best experience, before you get your new Android phone, you should update your contacts on your Gmail account.  Still using Hotmail? Now is a good time to switch.

    The contacts manager in Gmail works really well.  It isn't pretty and there does seem to be some missing features, but it gets the job done.

    • Organize your contacts into Groups
    • Clean up your contacts, put the proper first and last name in for everyone
    • Add phone numbers, addresses to your contacts so you can easily call or navigate to the contact
    • You can batch import from a CSV file
    • Add pictures to your contacts so they show on the phone (Note: your phone will pull a picture from Facebook but the picture is usually too small to see clearly)
    • Crop pictures of contacts to just their face so it is easier to recognize when they are small

    Things to Know About your Droid

    verizon-droid-phone-76ca6b81ec4c0d36_large[1] The Droid is a great phone, but there are few things you should know about it.

    • There is a button on the top to turn the screen on and off (I didn't know at first because my wife turned it on for the first time).
    • The screen and OS support multi-touch but it is not enabled.  When I first held the phone, my finger would inadvertently touch the side of the screen and my other finger would not register swipes and taps.  So make sure when you hold the phone, your fingers aren't touching the side of the screen.
    • The gold button on the side is the camera button.  Just hold it down to start the camera.  Hold it down again to focus and take a picture.
    • Before taking pictures, wipe the lens with a clean cloth as my lens is usually smudged from handling it.
    • There is protective plastic behind the sliding screen.  It will come off eventually.  No big deal.

    Things to Know About the Android OS

    • The notifications take place at the top the screen.  You can drag this down to see more info about the notification or clear the notifications.
    • Hold down the home button to switch between recent applications.
    • Hold down the search button to do voice searches.
    • Touch and hold down anywhere there is a blank spot on the desktop to add shortcuts and widgets to the desktop.  You can swipe between three desktops.  Take advantage of all three.
    • Make sure you use the toggle widget to manage your battery usage.
      • The icons from left to right are: Wifi, Bluetooth, GPS, Sync, Brightness
      • Airplane mode will use the least amount of battery.

    My Desktops

     androiddesktops

    • The middle screen is where I keep the main apps that I use on a daily basis.  This is also where I have the Power Control widget that is very important for controlling battery usage.
    • The right screen is where I keep shortcuts for directly calling people, mostly my family.
    • The left screen is where I access my music and news and check my calendar.

    droid_dock[1] Accessories

    I received a multi-media dock as a present and I keep it at my desk at work.  I love it.  The phone easily slides in and out and it keeps my phone charged.  My wife has the car dock and she loves it as well.

    If you have the docks then you can't really use protective cases.  All the protective cases for the the Droid seem crappy anyway probably because it is physically difficult to make a decent case for a slider phone.  Anyway, the screen is Gorilla glass which makes it very difficult to scratch.

     

    Applications

    • Bump - this application is great for exchanging photos and contact information.  You can even bump iPhones.
      bump
    • Barcode scanner, Google Goggles - take pictures of barcode and QR codes or with goggles you can take pictures of  stuff and it will figure out what it is.  You can even download new applications to your phone by taking a picture of the 2D barcode.
    • Google Voice - replaces my old cell-phone number and gives me Gmail like functionality for my voice mail.  When anybody calls my Google Voice number, it rings my cell, both my work numbers, and it rings on my computer at home. 
    • Corporate Email - Android has decent support for corporate email with exchange access.  It isn't the complete exchange experience, but it works.
    • FlingTap Done - A nice TODO list app that has some neat features.
    • Google Maps w/ Google Latitude - the maps application is great.  It supports street view, and with latitude, you can see where your friends are at.  Now, when my wife meets me at the restaurant, I know when she'll arrive.
    • Tracks - record the GPS locations of your jogs, walks, car rides, etc.
    • Music - with all the internet based music apps, you don't really need to put music on your phone.  I like Last.fm and Slacker radio.  Pandora is starting to have too many comercials.  Also, you can easily buy songs from Amazon MP3 or just listen to 30 seconds of all the "Hot" songs.
      slacker
    • Podcasts - I use Google Listen for my podcast needs.  Ironically, the search function isn't that great.
    • Newsrob - Although I prefer to use Google Reader on my laptop to keep up with my favorite blogs, this app does the job when I'm on the go and it stays in sync with Google Reader.
    • USA Today and NPR News - good news apps.
    • Google Talk, Facebook, Swift - these apps let me IM, keep in touch with friends and tweet.
    • OpenSudoku, Shortyz (cross word), Robot Defense (tower defense), Devilry Huntress (bejeweled), Labyrinth Lite, Totemo are all fun puzzle/strategy games.
      opensudoku
    • Nesoid and SNesoid are great emulators for some retro Nintendo and Super Nintendo gaming.
    • SchottGunn and The Schwartz Unleashed turn your phone into a light saber and a shotgun.
    • Flixster Movies - goto app for when we feel like going to the movies.
    Posted by JarrettV on January 22 at 12:12 AM

  10. Comparison of YUI Compressor for .Net to Microsoft Ajax Minifier

    Minify

    Microsoft just released the Microsoft Ajax Minifier for minifying javascript files.  Since I've been using the Yahoo! UI Library: YUI Compressor for .Net to do this in AtomSite, I thought it would be great to compare the two to see which is best.  I'm mainly interested in the file size reduction but it would be nice to know any speed differences as well.

    The Test

    image

    This method allows me to test compress some javascript using any method I pass into the Func delegate and capture the results.

    To get a reasonable sample of the performance I minified 3 different files with each method 1000 times.  I attempted to configure both algorithms to produce the smallest output possible.

     image

    The Results

    image

    From these results you can see that Microsoft AJAX Minifier creates smaller files in about the same amount of time.  Note, both algorithms have been set in aggressive, or hypercrush, mode to rename variables and perform other tweaks for reducing file size. The Microsoft AJAX Minifier seemed to have more granular options for tweaking output. However, the YUI Compressor is open source so you could add additional options if you need them.

    The Comparison

    Scorecard Speed Size Reduction Options CSS & JS Support Build Task Open Source
    YUI Compressor lose lose lose win win win
    Microsoft AJAX Minifier win win win lose win lose

    And the Winner is..

    It depends.  I suggest using the Microsoft AJAX Minifier as it produces smaller files.  However, the YUI Compressor.Net better satisfies my needs as it can minify both JS and CSS files.  So, when I need to minify dynamic combinations of both types of files, I'll use Yahoo! UI Library: Compressor for .Net.  When I need to do one-time minification during a build or prior to deployment, I'll use the Microsoft AJAX Minifier.

    Download

    I've uploaded the test solution and console app so you can run the tests yourself.

    JsMinTest.zip (291KB) fixed

    More Reads

    Check out how I am using minification and combination in AtomSite to speed up page load time.

    Posted by JarrettV on October 19 at 11:57 PM

© Copyright 2012 Powered by AtomSite 1.3.0.0