Since posterous (my old blog host) announced it was shutting down I’ve known I needed to move my blog, but nothing like waiting til the last minute to finally get it done.  On April 29th I got an final warning email from posterous saying I had until April 30th to do something with my blog.  So rushing through my options I decided to move my blog to tumblr. 

image

I had originally looked at tumblr for hosting my blog a few years ago, but the day I was testing out tumblr they had a huge server crash that caused a major downtime of their system.  After experiencing that frustration I decided I’d leave my blog hosting on posterous. 

Well now that posterous is no more, here I am back at tumblr.

I ended up picking tumblr for a few reasons: One I had played with tumblr a few times since their server issues and did like the simplicity and ease of their service.  Two, because I needed something quick and I was familiar with tumblr.  Three, because their was an awesome service from import2 that would export my old blogs from posterous and import them into tumblr, thus maintaining all my old posts. Finally, cause tumblr isn’t wordpress!

So far, I’m extremely happy with how easy it was to set everything up in tumblr, and get it configured how I wanted.  I was able to find a theme that would allow me to use disqus comments, easily able to hook up google analytics, and to get my custom domain pointed to tumblr without any issues.   The only thing I was slightly bummed about was that I lost the comments on my posterous blog because I switched to discus for comments.  Not a huge issue since I didn’t have a ton of comments, but their were a few posts with some good discussions in the comments.  

image

I have to say I am extremely happy with how easy it was to move my blog and how quick I was able to get it setup and configured. Now I just hope I don’t get an email from tumblr saying their shutting down tomorrow ;).

I wanted to take some time and thank the organizers of BarCamp Des Moines, they did another amazing job this year.  This was the 2nd Des Moines BarCamp and also my 2nd time attending and I have to say this is quickly becoming one of my favorite events of the year.  You could call it a conference if you want but it really isn’t in the same sense, if you’re curious as to what BarCamp is check out wikipedia. One of the big reasons why I enjoy this event is because it’s not all technical, there are technical people in attendance but there are also designers, businessmen, entrepreneur, and regular Joe’s as well.  Because of this mix you get some really interesting presentations and conversations happening throughout the day, and thats what I enjoy about this event.

This year’s event was even better than last years, and I think that had to do with everyone knowing what to expect and how to prepare.  The first session I went to was actually one I attended last year and got so much out of that I for sure wanted to attend again this year.  The session was simple, name one of your favorite books and give a description on why people should read it.  I got so much out of last years and was definitely not disappointed this year, and now have a few more books on my must read list.

The rest of the day I tried to participate/attend in sessions that were outside of what I deal with on a day to day basis (programming).  Here are some of the high points from those sessions:

  • Take the time and find a way to design with emotion, it helps create a relationship between your product and your customers.  If you design with emotion and make a mistake your customers will be ticked but will also forgive you, where if you don’t create the relationship with your customers and you make a mistake that customer may leave and never come back.
  • To help yourself create/come up with new ideas you need to get out of your comfort zone, take the time to meet new people and hear new ideas.  If your always talking and hanging out with the same people you’ll never give yourself the chance to meet that one new person who will inspire and help you take that next big step in your life. 
  • Take the time to organize your life, and remove distractions so you can focus on one thing at a time.  Multi-tasking only gives the illusion of productivity, you get more done when you only focus on getting one task done at a time.  I’m already trying to do this with Evernote and following the GTD techniques described in David Allen’s “Getting Things Done” book.  I have definitely  noticed a difference in how I get things done when I’m following these ideas. 
  • I also got into an impromptu Regular Expression session that was really interesting, because this is something I do use every day in my work life.  It was really beneficial to get an experts point of view in how they view RegEx and how they use it in their everyday work. The RegEx tips and tricks are definately going to help out, multiline who knew?

Last year I ended up leaving before the event ended but this year I stuck around and went to the after BarCamp meal.  This was a lot of fun, because you can’t beat free pizza and pop ;).  I was able to enjoy a good conversation with a friend of mine from the Cedar Valley .net user group and also got to meet and talk with some really interesting people I would’ve probably never met otherwise.  I hope the guy who did the session on, meeting new people to create ideas, would be proud, I extended my Venn diagram and had a lot of fun doing it.   

I can’t wait to see what next years BarCamp has to offer, thank you again to the organizers.

Was helping someone with an ajax issue the other day and to help diagnose what the error was I wrote a little jQuery code to display error information at the bottom of the page.  I’m sure there are about a thousand other plugins and posts out there for displaying error information about ajax requests, but thought I’d share mine anyways in hopes that it would help someone out.

<script type="text/javascript">
               $('body').ajaxError(function (e, jqxhr, settings, exception) {
            $('div#ajaxLog').empty();
            $('div#ajaxLog').remove();
            $(this).append('<div ID="ajaxLog" style="background-color:Red;"></div>')
            var log = $('div#ajaxLog');
            $(log).append('Response Text: ' + jqxhr.responseText + '<br />');
            $(log).append('Status: ' + jqxhr.status + '<br />');
            $(log).append('Status Text: ' + jqxhr.statusText + '<br /><hr>');
            $(log).append('Data: ' + settings.data + '<br />');
            $(log).append('Data Types: ' + settings.dataTypes + '<br />');
            $(log).append('Type: ' + settings.type + '<br />');
            $(log).append('Url: ' + settings.url + '<br /><hr>');
            $(log).append('Exception: ' + exception + '<br />');
        });    </script>

You’ll end up with something looking like this:

image

Hopefully this helps you out if our run into some issues with your ajax requests.

I recently had the opportunity to give a presentation on performing ajax requests with jQuery at the CVINETA user group in Cedar Falls, IA. I thought the presentation went fairly well, lots of small improvements I can make to it, but over all it went well.  My biggest area I need to improve on is taking less time on the slides and spend more time on the demo part of the presentation.

If you are interested in viewing my slides and demo application you can get the files here.

My demo spent time covering the get, getJSON, post, and ajax methods in jQuery and how you can use those methods with an ASP.Net MVC application.  I also took some time and covered how you can use jQuery templates to display data on a web page from an ajax request.

If you made it to my presentation, thank you for coming out and if anyone has any suggestions for areas I missed or needed to cover more please let me know.

Aaron

I’m a religious person and came across this passage in my daily readings and felt I should share it.  It pertains to all things in life, but I can see its value and power when looking at it from a technical and entrepreneurial point of view.

“Do not let your failures define you.  They are not how God measures you.  In fack, they are how the enemy wants to measure you; that’s why he asks to sift you.  Don’t trust his measurement.  Trust Jesus.  He has prayed for you.”

In closing, listen to those who support you, those who lift you up from failures and dust you off.  They are the ones who will support you and count your successes.  Don’t spend time listening to those who count your failures, they are only trying to hold you down and prevent you from believing in yourself.

So if you’ve fallen, dust yourself off, get up, and do something to make the world a better place.

Aaron

This is a personal blog post, and just wanted to share with everyone that I got married a few weeks ago to my best friend, Lauren.  It was an awesome day, a little hot, wedding was amazing and filled with so many close friends and relatives.  My wife Lauren and I couldn’t have asked for a better day, well less heat.  Thanks to everyone who attended the wedding and a very big special thanks to all those that helped make our day so special.  We both thought it was really cool how our entire wedding was filled with friends and family, even down to the musicians, photographer, and deacon.  It just made the whole experience even more special knowing that we were totally surrounded by love and friendship.

I want to give some props to our guitar player / singer Andy Juhl, I went to high school with this guy and was so blessed to have him be able to play for our wedding.  If you’ve never heard his music before its amazing, you should go check it out at www.andyjuhl.com.

Another person / group that did an amazing job was our photographer, Danny Vasquez.  Danny, his wife Jessie, and assistant Jennifer did an amazing job and were there almost the whole day taking some amazing shots and dealing with the intense heat.  Thanks can not be said enough for how they handled the heat and made our shots look so awesome!  The temps were reaching over 100 degrees on the wedding day. 

Below is a video montage Danny put together with some of the photo’s he took on Lauren and I’s wedding day.

Thanks to everyone else who helped make our wedding so special, we can’t say thanks enough for all you did.  Love you all!

Aaron & Lauren

Since this has bit me in the butt a couple times, I wanted to post a little reminder on a configuration you shouldn’t forget about when setting up your IIS to be managed remotely. 

If your working with IIS7 and you’ve configured IIS on your webserver to use Management Service don’t forget to go into the Services section of your admin tools and set the Web Management Service to start Automatically.  The Web Management Service is defaulted to start Manual, which is fine unless you ever restart your web server.  Since the service is set to Manual the Web Manangment Service won’t auto start after a restart and you’ll have to log into your web server and start yout Management Service manuallly, which is a pain.  To save yourself a step and frustration of not being able to work with IIS remotely after a restart, I’d recommend making the setting change so you never have to worry about not being able to connect again.

If you’ve never heard of Management Service, it basically allows you to remotely manage an IIS instance on one machine from another.  Which can be very handy and save you some time during the day. 

Late last year, the designer I worked with (Bill Pendry) on the new Martin Bros website submitted our work to the Cedar Valley’s chapter of the American Advertising Federation for consideration of an Addy award.  In January we were notified that our hard work was being recognized with a Gold Addy Award.  So in mid February we went to the award ceremony in Waterloo and received our Gold Addy Award (pictured below), it was pretty cool seeing all the cool web apps and advertising stuff created in the last year on display.  I came away from the award ceremony truely impressed with the talent and skills of many of people who work with advertising and web promotions in the cedar valley area and feel really lucky and humbled to have been part of a team that won a Gold Addy Award.  It was also pretty cool to see some good friends and former coworkers get some recognition for their skills and hard work, so thank you to the CF-AAF for putting on a good show and helping recognize the hard work of so many people in the Cedar Falls/Waterloo area.

image

Also thank you to Martin Bros for allowing us to upgrade and try some new stuff with the corporate website that allowed us to receive this award.  Personally I’d like to thank my coworkers for helping get the site up and running especially Bill who did a ton of awesome design work and Kristin Clark who helped out with a few other important areas. 

Now it’s time to go out and start working towards winning another Addy next year!

In this post I want to cover how we can mask the value of an input thats using the jQuery UI datepicker, so if a user enters a date into the input field it is formatted correctly.  Also by supplying a mask to the input field it will give a user an idea of the date format required if they enter the date manually, below is an example if what we will create (using MM/dd/yyyy).

image

The two things we’ll need to add to our code to get this working, is a reference to the jQuery UI plugin and the jQuery masked input plugin.  Also since we’re using jQuery, if your not already referencing the jQuery library you’ll need to reference that as well. 

image

Now that we have the correct jQuery libraries and plugins registered in the page we are ready to setup our html input and javascript code.   First add an input text element to the html code:

image

Next we’ll want to add the javascript code to hook up the datepicker and input masking functionality from the jQuery plugins to the input element we’ve just added to our page.  We’ll do this in the jQuery ready function.  In the code that follows you’ll first see that the dateValue input is wired up to use the jQuery mask plugin and that we want to use the date format of MM/dd/yyyy.  To declare that we want to use the format of MM/dd/yyyy, we say that we want only digits in the textbox and it should be in the format of “99/99/9999”.  This works great, the only problem is that it allows users to put any digit in the text box, but it must still follow the date format we are expecting (MM/dd/yyyy).  To fix this issue we’ll add some validation later.  The other part of the javascript you’ll see being wired up to the dateValue input in the jQuery ready function is the jQuery UI datepicker.  For the settings of the datepicker we need to also set the format to follow the masking format we set earlier.  If you want to learn more about the dateformat options on the jquery UI datepicker check out this link http://jqueryui.com/demos/datepicker/#option-dateFormat.

image

(Disclaimer: Just to make this easy to read, I broke up the jQuery selectors, but you could chain them together.)

We now have the jQuery datepicker and masking wired up to our dateValue input element.  The only other thing we might want to add to complete this feature is to add some validation to the input. The validtion will be important for users who manually enter a date value rather then using the datepicker.  For this we’ll just use jQuery validation plugin and a little regular expression.  The code that follows will also reside in the jQuery ready function and wires up the jQuery validation plugin to the dateValue input box.  The validtion will be verified before the form is posted back to the server, thus saving you hit on your server, and will notify the user if there is something wrong with their date value.

image

Hopefully this post helps you out if you are looking to add some masking to your jQuery UI datepickers.  If you have questions or comments please leave me a note in the comment section below.

I’ve been wanting to make a list of open source projects I’ve been working with for some time, and decided today was the day.  Some of these libraries I’ve spent a lot of time with and know very well and some I’ve just been using for one purpose or another.  But without furher adieu here is the list:

.Net open source libraries

Javascript open source libraries

I’ll probably keep adding to this list as I start using more open source libraries and possibly make an additional list of items I’ve quit using as I grow in my development career.