INETA Mentor for Virginia

February 8th, 2010 by Kevin 1 comment »

My first experience with INETA was back in 2008, when I started the planning for the Hampton Roads .NET Users Group.  I think they are a wonder organization, who are a huge help to user groups across the country.OfficialLogo[1]

It was very surprising for me to have been asked last week to be an INETA mentor for the state of Virginia.  Mentors are the liaisons for users groups to INETA, and their purpose is to give the user groups the tools they need to succeed.  This is a position I take very seriously, as I think its a huge chance to give back to the community that has helped me so much over these past few years.

I’m hoping that over the next few months, I’ll be able to get around to all the user groups in Virginia and get to know better the people who run them.  Is your group registered with INETA?  If not, take a few seconds and register it today over at http://www.ineta.org.  If you’re running a group already registered with INETA, expect an email from me within the week!

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

I’m now an ASPInsider!

February 4th, 2010 by Kevin No comments »

I just received news yesterday that I have been invited to join ASPInsiders.  This is really exciting for me, as it opens up a new world for me professionally.  I’m really hoping that being a part of the Insiders group will help me be a better person in the community.

I would also like to extend a huge thanks to the members of ASPInsiders that thought enough of me to consider me for joining the group.  I really hope that I don’t let any of you down.

ASPInsider_Logo_Small[1]

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Community Megaphone Podcast with @JoelCochran

January 28th, 2010 by Kevin 2 comments »

Take a few minutes and head over to the Community Megaphone Podcast, and listen to their latest podcast with guest Joel Cochran.

Joel is a good friend of mine, and has certainly taught me a lot when it comes to WPF and how to navigate through Expression Blend.  He’s a terrific resource, and I definitely recommend that if you bump into him at an event, chat him up (although he might do most the talking). 

image

Listen here

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Leaving It Better Than You Found It

January 26th, 2010 by Kevin 1 comment »

When my wife and I bought our house back in April, one of my pet projects has been to renovate the room over our garage.  I knew buying the house that it would be a lot of work, partly because the previous owner didn’t know what he was doing when finishing a room.  I’ve spent the last week and half sanding, mudding, and fixing all the walls in this room.  While sanding some dried mud tonight, I had a thought about how this experience was a lot like building software.

When building software, you’re not sometimes lucky enough to build a system from the ground up.  Normally, you’ll inherit code from developers who have been hacking it for years.  I related this to me working in my room.  I inherited a poorly maintained room.  The joints weren’t level with each other and the mud of the wall wasn’t smooth.  The person doing the work took no pride in the work being done.  The ceiling was also a “hacked” popcorn ceiling.  I say hacked because, instead of using a hopper, the person slung dry wall mud onto the ceiling giving the illusion of popcorn.  The illusion failed though because it looked horrible.

Fast forward to my work in the room last week.  I had to go through and scrap all the excess mud off the wall.  Each wall and joint had to be sanded, and mudded again in order to level everything.  I’ve spend hours of time trying to reverse the effects caused by performing the job incorrectly.

What does this have to do with software development?  Think about when you’re working on a bug in a piece of code, and it’s your first time looking at this code.  How the previous developer left the code is how you’re going to inherit it.  You might have to spend hours undoing the work of the previous person in order to get the code to a state it can be worked with.  Hacks might have to be removed and properly implemented.  Hours will be wasted that didn’t have to be.

When working on new code, do yourself and future developers a favor and leave the code in a state where it can be easily picked up and worked on.  If you’re working on existing code, try to leave it in a better state than it was when you found it.  In the long run, time will be saved, code will be more secure, and a developer will say fewer curse words.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Review My 2010 Presentation Abstracts

January 21st, 2010 by Kevin No comments »

I’m hard at work right now preparing some presentations for the 2010 code camp/user group season.  In order to make these presentations the best they possibly could be, I’m putting them out for the public to see and review.

Asynchronize with jQuery

jQuery is a fantastic tool for web developers interested in giving their web applications a little glitz and glamor. In addition to its powerful DOM transversal engine, jQuery also comes equipped for handling AJAX requests. In this presentation, Kevin Griffin will guide you through getting started with jQuery’s AJAX functionality. A basic understand of jQuery is recommended, however not required for this presentation.

Awesomize Your Windows Apps

With the release of Windows 7, many developers might be looking to take advantage of the features Windows 7 offers. This presentation offers attendees a broad overview of the Windows API Code Pack, which is a managed library for .NET developers to use for accessing some of the underlying functionality of Windows that was typically reserved for Interop fans. Topics and demos include Windows 7 taskbar functionality, Task dialogs, Libraries support, and more.

ASP.NET MVC From The Ground Up

ASP.NET MVC has taken the web development world by storm. It’s a technology that many people are curious about, but might have had trouble adopting. In this presentation, we’ll take a look at ASP.NET MVC from the ground up. We’ll peel back the layers, and look at each component of MVC individually without the Test Driven Development or Dependency Injection mantra. The goal is for you to walk out of this talk with enough knowledge of MVC to dive in! This talk assumes no experience with MVC or Web Forms (although some web forms knowledge would be helpful).

jQuery From The Ground Up

Web 2.0 has taken over; there is no doubt about it.  However, many developers are being left in the dust.  Amazing technologies such as jQuery allow developers to easily add flair to their web applications.  In this presentation, Kevin Griffin will guide you through the world of jQuery.  Starting from the bottom, we will discuss what is possible with jQuery, how do you obtain and setup jQuery in your projects, and then actually putting jQuery to work.  This presentation is designed for developers with no experience with jQuery (or Javascript in general).  An understanding of HTML and CSS is recommended.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Don’t forget to subscribe to my RSS feed

January 21st, 2010 by Kevin No comments »

Don’t forget to subscribe to my RSS feed.  Point your RSS reader of choice to http://feeds.feedburner.com/KevinGriffin and always stay up to date!

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Are we too dependent on the Internet?

January 19th, 2010 by Kevin 2 comments »

In my office, there lives a monster.  This monster is called “The Internet Killer,” and he likes to poke his head out every now.  When he does, our internet goes down for hours upon hours.  During this time, I still have work too do, but I often find that my production level is limited by the lack of internet.

Are we too dependent on the Internet?

I’m in that weird generation where I have had access to the Internet for most of my life, but I can still remember not having it.  I have used a card catalog.  I have used an encyclopedia.  I have had to retain knowledge for more than a few minutes.

This was also around the time I started learning how to program.  My first few BASIC applications were self taught from a help file.  I didn’t have an Internet to go to whenever I ran into a problem.  I was forced to either figure it out on my own, or travel to the library to reference whatever material (if they had any material at all).  Having to work through these issues forced me to retain knowledge for an extended period of time.  You never knew when you were going to have use what you had learned before.

Fast forward to today.  I’m working on a few features for a project, and we lose our internet.  You might be saying, “Kevin, you should be able to code just fine without the internet.”  And you are right, I should be able to.  However, if you’re venturing into territory that you’re not familiar with, your work is either going to take two or three times as long as it would had you had access to reference materials.

Have you ever heard of books?” Yes, and I have plenty of them.  Books are hard to reference.  Books are awful for troubleshooting problems.  Can you type an error string or code into a book?  How long does it take to find a book that might have the information you’re looking for?  Does it actually contain information that is useful, or just code snippets that is causing the error you have?

Google (Bing, or whatever you use) is fast, accurate (for the most part), and easily accessible.  The “whole world at your fingertips” is no joke.  Within minutes, I have access to references, books, blogs, forums, etc.  Your problem is never new, and the Internet is quick to provide answers.

Does the internet make us stronger, or is it making us weaker?  I’ll let you decide.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Listen to Me on the Community Megaphone Podcast

January 14th, 2010 by Kevin 1 comment »

I’ve been waiting for this announcement for a little while, but I’m finally pleased to announce that I had the pleasure of being the first guest on the new Community Megaphone Podcast.

CMP

In this episode, I talked with Dane Morgridge (@danemorgridge) and Andrew Duthie (@devhammer) about general stuff I’m interested in.  Topics included Windows 7 for developers, jQuery, and the developer community.

Please take an hour and listen to the show.  Let me know your thoughts!  Also, please send a note to Dane and Andrew.  Let them know if you enjoyed the show.

Listen Here (http://www.communitymegaphonepodcast.com/Show/1/Kevin-Griffin)

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Adventures in MVC

January 7th, 2010 by Kevin 2 comments »

It seems that most of my development experiences evolve around the internet, and developing for it.  My first professional development was in WinForms in .NET 1.1, but I soon made the transition to WebForms.  My first full application (from design to deployment), was written using ASP.NET 2.0.  Now it seems that I’m making my way into another web application, and I’ve decided to take the MVC route.

I love learning new technologies, but I generally hate the getting up and running aspect to learning.  The internet is a big help, as well as my friends of Twitter and at community events.  However, MVC was one of those technologies where the people who really understood it weren’t really good at explaining what it is.  I’ve watched one introduction to MVC where the presenter started discussing dependency injection when talking about controllers.  Adding additional complexity to a topic with other topics is a recipe for disaster.

Adventures in MVC is going to be a series, but I’m not defining a part 1, 2, 3, etc.  Instead, I’m going to walk through my learning experience with ASP.NET MVC.  My big hope is that I’m going to be able to dumb down MVC enough that most people will be able to understand it out of the gate.  So let’s get started.

Disclaimer: Everything I’m going to discuss is my interpretation of what I’ve picked up and learned.  If I’m completely wrong, please feel free to leave a comment and set me straight.  It is not my intention to have incorrect information on this blog.  Thanks.

Let’s Talk About MVC

It seems that every MVC discussion I’ve read or listened to has started with a history.  While history is a good thing to understand, and the more you know, the more you’ll understand about design decisions made.  All you need to know is that it started with SmallTalk (which is an old programming language.  That’s the extent of my knowledge), and that it took hold and became popular among several languages.

You probably already know that MVC stands for Model View Controller.  Model is data, View is what the user sees, and controller is the middleman that binds a model to a view.  So what does that mean?

Breaking It Down

Let’s start with a page lifecycle.  A user requests a page.  The request goes to a controller.  The controller can look at the request and do several things.  The most common thing it does is return a view.

A view is a webpage.  At its most basic forum, it could be a static page.  The server doesn’t have to do anything to prepare a view for display.  However, static pages are boring, and if that’s all you have a need for, then maybe ASP.NET MVC is not for you.  When you need to make the data more dynamic, you can build your views around a model.

Models are easy to understand if you think about practical applications.  Take a shopping site, like Amazon (I’m not saying that Amazon uses MVC, but the result pages are good examples of what you would return with views).  Do a search for ASP.NET books.  The return list is a view.  If you’re a web forms developer, you’re probably thinking that a good solution is to use a Repeater or ListView.  MVC takes a different approach.  Instead of user controls, we would bind a model to our view.  In this example, the model would contain book results, along with information we would want to provide to the user.  When the view is built, it takes the information from the model and formats it in the way we want.  The controller is the glue that binds the two together. 

Where Do We Go From Here

I don’t expect anyone to have a full overview of MVC from the last section.  My goal is to simply make MVC less difficult to learn.  In the next entry, I’m going to discuss getting started with the ASP.NET project.

Oh, and before I get questions about this later, I will only be covering ASP.NET MVC 1.0 (not 2.0).  The reason being that my primary project right now is a MVC 1.0 application, so all my attention will be on that version. 

Please post any questions in the comments and I’ll do my best to answer them!

-Kevin

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Goals for 2010

January 5th, 2010 by Kevin 1 comment »

As I said in my Year In Review post, 2009 was a great year for me.  I’m hoping that 2010 will be even better.  In order to do that, here’s a list of goals I’m making for myself.

Learn Some New Technology

The big technology that I really want to be proficient in by the end of 2010 includes Silverlight 4, ASP.NET MVC 2.0, and Windows Azure.  These are the technologies that I believe are really going to take off in the next few years, and I want to make sure that I have the skills necessary to be valuable. 

Learn Something Completely New

I’m a bit of a Microsoft fan boy.  I admit!  My reasoning is that I believe that Microsoft makes the best developer tools available.  However, I am anxious to learn something new this year.  My goal is to pick up Ruby (and Rails).  I’ve seen some of the products built using it.  I’ve listened to developers talk about the ruby experience.  Only thing I haven’t done is actually try to do any Ruby development on my own.  That’s going to change in 2010.

Blogging

I’m going to try to blog more.  I’m aiming for twice a week, Tuesday and Thursday.  In order to achieve this, I’m going to try predating several entries.  If it’s published today, it doesn’t mean that I wrote it today.  We’ll see how that works out!

Weight

If you’ve met me at any community event, you’ll know that I’m a big guy.  I’m not ashamed of it, but it is a major part of myself that I’m trying to change.  In 2010, hopefully within the first half, I’d like to drop a significant amount of weight.

Work

I love my job.  I love the people I work with everyday.  My goal at work has always been to be a “go to” guy for technical problems and advice.  I enjoy mentoring and discussion problems/solutions with other people.

This year, I’d like to start doing a little bit of freelance work outside of my day job.  Even if it’s a simple website, or a larger application, I’d like to take on some side projects.  While money does play into this goal, mostly I’d like to do it for the experience.  Unique problems require unique solutions, and I love developing unique solutions.

Community

HRNUG is doing great, and I’ve already outlined my goals for HRNUG in 2010.  Last year, I spoke at several code camps.  This year, I’m planning on speaking at all regional code camps and user groups.  I already have 8 confirmed speaking engagements for 2010, and that’s just user groups.  I haven’t yet submitted to any code camps.  I’m aiming to submit to some larger conferences, such as Codestock and DevLink.  I’m even going to try submitting to Tech Ed 2010 (although I’m not holding my breath).

I know 2010 is going to be a great year, and I’m ready to kick things off the right way!  What are your goals for 2010?  We can help each other reach those goals!

-Kevin

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Get Adobe Flash playerPlugin by wpburn.com wordpress themes