# Thursday, 11 October 2012

Have you heard about the Succinctly Series? Syncfusion has produced a number of free e-Books on various subjects ranging from source control to jQuery to HTTP.  I highly recommend you pick up these free books. You’ll have to register but it’s worth it. This is an unsolicited review. Smile

So far I’ve read the Knockout.js Succintly, ASP.NET MVC 4 Mobile Websites Succinctly, PDF Succinctly and JavaScript Succinctly. They are great beginner books and very quick reads especially if you are beyond the basic level. They average around 60 pages per book with 150 pages being the biggest I’ve seen.

They seem to be rolling out a new book every few months. So far they have:

Knockout.js Succinctly

C++ Succinctly

ASP.NET MVC 4 Mobile Websites Succinctly

LightSwitch Succinctly

Javascript Succinctly

HTTP Succinctly

PDF Succinctly

Git Succinctly

jQuery Succinctly

Happy Coding! Smile

Books | Git | JavaScript | jQuery | Knockout | review
Posted 10.11.2012  #    Comments [0]  | 
# Friday, 05 March 2010

Want to learn ASP.Net MVC?  Perhaps you already started learning it.  I decided to take a side project of mine that I started in Web Forms and completely start over with .Net MVC.  I wanted to document what I did and the resources I found in the hopes that it may help you.  I still have much to learn and master with .Net MVC but so far I am impressed and am happy I decided to branch out and learn something new.  It has made me a better developer and a more well informed developer.  Both good things!

Not sure what ASP.Net MVC is?  Check out this intro video and this overview and then hurry on back.

How I started:

ASP.Net MVC Tutorials and many, many blog posts from Scott Guthrie, Phil Haack, Rob Conery, Jimmy Bogard, Jeffrey Palermo, Eric Hexter, Steven Sanderson, Stephen Walther and these are just the ones I remember.

Books:

I started with ASP.Net MVC In Action and quickly realized that many of it’s topic were over my head.  So I put it down and read ASP.Net MVC Framework Unleashed and Pro ASP.Net MVC Framework and then went back to MVC In Action. 

TIP #1 - When I am learning a new technology I tend to do the examples in the book from scratch.  It takes longer than just downloading their sample code but it helps me absorb it more. 

TIP #2 – Almost all the material I read on ASP.Net MVC touch on or go into detail on Unit Testing, Test Driven Development, Dependency Injection, Inversion Of Control and many other design principles.  If you are not sure what these are you might want to research them a little bit.  The books I recommend do give overviews of these.  One of MVC’s main design goals is for giving control of the application back to the developer and ease of testing.  If you find this even the least bit interesting then keep going!

Samples/Tutorials:

ASP.Net MVC Tutorials – I watched these to get a feel for MVC.  They have a lot of video’s and sample code you can run through.  They did a great job of covering the basics.  Stay here a while, fire up your IDE and peck away on the keyboard with these tutorials.

Nerd Dinner – Perhaps a cult classic or a right of passage?  I for the most part skipped it…. Oooppsss.  No wonder I struggled so hard with MVC in the beginning.  Just kidding.    It was one of the first books and sample apps out.  I skipped it only because I didn’t have it in my Safari Books Online.  I did however take advantage of their free chapter and source code.

Rob Conery – Rob Conery published a set of video’s documenting the development of an eCommerce storefront called MVC StoreFront.  I watched these video’s carefully and read his code carefully.  He then renamed the project to Kona and added a few more screencasts.  Check these out.  I poured through his code to see some of the possibilities that MVC has.  I still don’t understand some of it but Rob’s a much smarter guy than I am. :-)

Starter kits – Check out their Northwind MVC project, period.

Tip #3 – Check out the ASP.Net MVC Tutorials and the MVC storefront screencasts at least! 

Cheat sheets – Elijah Manor published several cheat sheets on MVC that are great to put on your wall or at least keep close at hand while you are learning MVC.

50 ASP.Net MVC Tips – Stephen Walther, author of ASP.Net MVC Framework Unleashed published these nice tips on his blog.

MVC Contrib Project – A bit more advanced but the wizards over at Headspring created this little open source gem.  The ASP.Net MVC In Action’s sample project uses MVC Contrib.  The project is great and I am still digesting a lot of what is in the project.  I especially dig the TestHelper library.  It just makes my job of testing routes a breeze.

I mentioned I used a side project to learn ASP.Net MVC.  I know now that had I not done that I would still be sitting here thinking about learning it.  Why?  I found many things I took for granted with Web Forms were gone in ASP.Net MVC.  Viewstate for example.  I had certainly grown accustom to it.  Another gotcha for me was filling a dropdown list the right way (not directly in the controller).  I truly did have some frustrating points with ASP.Net MVC but only because I had to retrain myself to how the internet really works (Web Forms took care of this for me).  I really am better for it now.  

Tip #4 – Take a tangible project and do it in ASP.Net MVC.  Stick with it.  It is very different from Web Forms if this is where you are coming from.  Please read my post on Confessions of a Web Form Guy Learning ASP.Net MVC if you want a little insight into some of the "aha" moments I had. 

MVC is moving fast, as of this writing they are already on of MVC2 RC2.  A lot of new features are coming our way that make MVC that much sweeter. 

I hope this helps you in your journey!  If you know of some other good resources for ASP.Net MVC please comment on it.

Happy Coding!

Posted 03.05.2010  #    Comments [0]  | 
# Friday, 26 February 2010

I was not asked nor am I being paid for this post.  I just want to let other’s know about a service that I have found to be incredibly valuable to improving my code craft.

I knew about Safari Books Online for a couple of years before I decided to give it a shot.  I had trepidation at first due to the price point and wasn’t sure if I would really use it.  I averaged a few books a year so it didn’t seem worth it.  Nine months have passed since I took it for a spin and I am smitten with Safari and here’s why.

  1. Thousands of Books at your fingertips

Nearly 11,000 as of this writing.  The publisher list is large and I have only a couple of a cases where a book I wanted was not in the library.  They are adding titles every week it seems like.  For the most part, I feel like a kid in a candy store seeing all the books that are available.  I have 47 books in my bookshelf at this time and have accessed many more.

  1. Features, features, features

I have a habit of marking up, highlighting and dog earring the books I read.  While this is great it’s still not the easiest to find that note or dog ear I made that had that particular topic I wanted to re-read or apply.  Enter the world of Safari Books Online.  I can add bookmarks and notes to my books and easily access them.  I can email and even download books/chapters if I want/need to.  The books have hyperlinked references & related content.  The searching ability offers a great way to find topics of particular interest in different books if you are wanting to learn/read on a particular topic rather than read an entire book.

  1. Accessibility

At first I had a hard time reading a book electronically.  It felt awkward and I wanted the physical book.  That didn’t take long to get over.  The ability to pick up where I left off on a book anywhere I have access to the internet is unbeatable.  I have used Safari at home, at the office and recently Safari added mobile devices to the list.  I experimented with the mobile device for my BlackBerry and found it to be pleasing.  Naturally, a larger media device would be preferable but if you don’t have one the small BlackBerry screen and Safari’s layout make it very readable.

  1. No Worries = More Reading = More Learning

Should I buy this?  I fought this question over and over again before Safari.  Now my battle is which book will I read next.  In the nine months or so of owning Safari I have read through six books and will finish my seventh soon.  I figure I will get another three in before the year is over.  That’s 10 books from cover to cover in a year. That doesn’t include the others I have browsed through, read a chapter here, looked at a code sample there.  I would easily say this is the most I have read in a year.  All thanks to the simple fact that I don’t have to shell out money every time I think I want to read a book.  There’s even been a couple of books on Safari that I started to read and then dropped after realizing I didn’t care for them.  Had I purchased the book outright I would have been disappointed.  Instead I feel liberated and empowered.

  1. Cost

Safari Offers two versions of it’s service for individuals.  The 10-slot bookshelf costs just over $250 a year and the unlimited access version weighs in at just under $475 as of this writing.  If you are like me the unlimited access version starts to feel a little costly but that’s the version I bought and have found it to be well worth to cost.

I have 47 books in my bookshelf currently.  If I bought each one at an average of $25 I would have shelled out nearly $1,200.  Let’s be honest though, I would not have bought all those books.  Instead let’s just say that I would have bought 10 of them since that’s what I believe I will have read completely through using Safari in a year.  I still would spend $250.  At the least, I have equaled the value of the 10-slot bookshelf.  It may be hard to find technology books for $25 average unless you buy used as much as possible.  If the average book cost $40 we are fast approaching the value of the unlimited bookshelf and don’t forget the shipping costs.

Now throw in the added features you get with Safari and I thinks it’s clear that Safari is a great tool well worth the price for any developer.

I have one nagging thought about Safari but it has nothing to do with it’s service.  I have no idea how author’s are compensated for book usage.  I hope it’s a good deal for them but I imagine it’s still not as good as buying a book outright.  Still, there’s a good chance I wouldn’t have bought the book in the first place so perhaps Safari is helping to increase their revenue. :-)

Happy coding, err… reading!

Posted 02.26.2010  #    Comments [0]  | 
# Saturday, 20 February 2010

This week I dived into two books that are both 100 pages give or take.  Both are fairly easy to get through and are worthy of bookshelf space.  My purpose of reading these was to get a better understanding of two practices of applying Agile principles.  I am an agile rookie who wants to understand/learn about ideas and practices that I could add to my toolkit. 

Agile Software Development With Scrum

This was an easy read especially with it’s case study focus to illustrate the idea or practice.  I felt the “spirit” of agile in the principles and found the practices shown in scrum enlightening. 

I gained a deeper understanding of the how the scrum master facilitates and leads only.  I found it intriguing that the scrum master does not make decisions.   The master is there to coach the team and even though I understood this I didn’t connect the empowerment of the team with the master not making the decisions (A duh moment).  It makes sense that if you want to empower the team to make decisions then you have to give them the power to decide.  I could see the old school mentality in my original thought process. 

The sprint is sacred.  Nothing can/should eek it's way in. This is a big key in ensuring the team stays focused and on task (or should I say feature).  If necessary a sprint can be killed if important enough and restarted with new focus.

The team’s daily stand up are for each other and no one else; not the scrum master, product owner, etc.  A particular story caught my attention on this.  The developers when giving their report were looking at and talking to the scrum master directly.  The meeting degenerated into a project / task status update where the team viewed the scrum master as a classic project manager.  A real test of a good stand up is the team should be looking and talking to each other because they are responsible to each other.  The scrum master is there to observe and if they see something that could use some coaching they should remain silent and look to mentor sometime after but not during the stand up.

Project management is featured based not task based.   Real success is not based on the adherence to a project plan.  It’s based on the delivery of the right features with the right functionality that the customer needs.  That doesn’t mean project management or a plan is thrown out the window.

For anyone trained old school this could be a hard transition and the case studies do a good job of illustrating people who hang on to their old ways and how to remedy the situation.

Lean Software Development

  • Eliminate waste does not mean throw away all documentation.

  • Amplify learning does not mean keep on changing your mind.

  • Decide as late as possible does not mean procrastinate.

  • Deliver as fast as possible does not mean rush and do sloppy work.

  • Empower the team does not mean abandon leadership.

  • Build integrity in does not mean big, upfront design.

  • See the whole does not mean ignore the details.

    These are statements directly from the book.  I can’t think of a better way to summarize this book.  Lean strikes me as less prescriptive in it’s practices than Scrum although I could be wrong on that.  Like the agile manifesto, it gives me guiding principles but at a lower level that one can use to help create practices.

    Both books are an excellent read even if you aren’t interested in applying them.  I can’t see how you won’t come away with a least something to consider for yourself or your team.

    If you are interested in applying these practices both books stressed technical practices as a must. Lean Software Development had very good advice to get started:

    • Start with hygiene. First of all, make sure that you have basic professional software development practices in place: a version-controlled code repository, coding standards, build automation, comprehensive testing, etc.

    A major key to Scrum and/or Lean or any other agile practice is the need for good technical practices.  If you only use Scrum/Lean as yet another project management methodology you are in trouble.

    Above all, each team/environment must adapt for their situation.  These are guiding principles and practices that need real world applied to them.

    As a newbie to agile I am sure I have not understood everything right or deeply enough.  Please let me know what you think.  I like to learn from others!

  • Happy Learning!

    Agile | Books | Lean | Process | Scrum
    Posted 02.20.2010  #    Comments [0]  |