Bonderblog @ BruceOnder.com

Bonderblog @ BruceOnder.com

Bruce Onder  //  

Mar 9 / 7:16pm

Tekpub: Mastering Git - Preview

Mastering Git takes you deep into Git to give you the working knowledge you need to confidently use this system. Git is an amazing source control system and will change the way you work - we've devoted over 3 hours and hopefully you'll agree that Git's rockin.

I'm (trying to be) a part of the Subsonic ORM team, who are putting the finishing touches on version 3.0.04 (lots of bug fixes).

Subsonic is on GitHub and can be found here: http://github.com/subsonic/SubSonic-3.0

So far, I haven't been much help. I managed to create my own fork, fix a couple unit tests, and submit a pull request.

But it was slow going, so I figured I'd better go get some JIT learning. Fortunately, Subsonic creator Rob Conery has launched TekPub, an on-demand screencast library where you can go get what you need, when you need it.

The Mastering Git series has been really helpful getting me up the learning curve. Rob has a teaching style that is both effective and enjoyable.

The preview is free, and the entire series is reasonably priced at $20 for over three hours of training.

If you're going to be spinning up on a project where Git will be used and you're a Subversion/VSS/PVCS/no VCS person, do yourself a favor and check this series out.

Loading mentions Retweet
Filed under  //  git   subsonic  

Comments (0)

Jan 20 / 9:09pm

Unfuddle: Subversion Hosting, Git Hosting, Bug and Issue Tracking

Software Project Management
Git and Subversion Hosting

Helping you and your team do things right.

Unfuddle is a secure, hosted project management solution for software development teams.

We know that you don't have time to get a server up and running and then configure and secure code repositories, ticketing systems and valuable project management tools.

Tickets

Subversion Hosting

Dashboard

Create, assign and track bugs, feature requests, and more. Create unlimited Git and Subversion repositories. Get a quick overview of your
entire project.
Tickets Screenshot

 

Source Screenshot

 

Dashboard Screenshot

 

A friend and I are working on a little Silverlight magic and we wanted some source control and project management hosting. He remembered something he'd used in the past, and after IMing with a friend, he was reminded that it was Unfuddle.com.

Unfuddle offers both source control and project management in one brilliant package. There are various pricing plans, from free to spendy. It's kind of like Basecamp and SVNDude rolled into one.

Once you sign up and create your project, you can subscribe to the RSS feed, iCal feed, and email notifications.

There is also a basic but serviceable milestone and ticketing system you can use as a sort of Kanban board.

If you need something that's quick to set up and super-affordable, check out Unfuddle.com!

Loading mentions Retweet

Comments (0)

Jan 16 / 9:02am

Instapaper

A simple tool to save web pages for reading later.

A friend and I have been trading a lot of web page links on social gaming. He had to jump on a plane and would have loved to have them available during the flight so he could catch up.

Unfortunately, we didn't have a good solution for that then, but now we have Instapaper. Set up an account and you can save web pages for reading later.

You can save pages in your browser using a "Read Later" bookmarklet. Even better, you can send blog articles to Instapaper using the "Send To" integration feature.

Best of all, there is an iPhone app that lets you sync your saved web pages to your phone and you can read them whenever you like.

I think the only feature I'd like to see is the ability to share items with other users.

Check it out!

Loading mentions Retweet

Comments (0)

Jan 14 / 4:59pm

Business Continuity for Startups

Last year, I helped a friend build the web site, back office, and other bits of his startup.  This year, I'm helping him run it so we can learn about the customers and business so we can get fix anything that needs it.

Part of operations is customer support, and that means email processing, Skype chat and calls, and account management in the intranet we built.  However, my ISP, CenturyLink, wigged out today across all of Washington state.

So, what to do when your bootstrapped startup needs interweb juice to make with the zoom-zoom, but the juice tap just went dead?  How does the business continue to run?

Our business continuity plan called for the company to be operable from a laptop and a headset, so I packed both of those into my Badtz Maru messenger bag and hit the road.

I have a bunch of hotspots available to me, but since I needed to make some phone calls I needed someplace that's got some room to squirrel away and make those calls without bothering (or being bothered by) other customers.

So, for the price of a couple coffees and a bran muffin, I was able to get hooked up and "git 'er done."

Here are some things I consider indispensible for a 21st century startup:
  • A distributed workforce a la Jet Blue - Skype is such a high quality product now that it can serve your instant messaging, voice chat, and telephone needs.
  • Back office tooling available via VPN connection -- everything you need to get done should be get done-able from a coffee shop, a diner, or the beach (if you have something like an AirCard).
  • Beer.
Can your startup operate from anywhere?  If not, is there a compelling reason it can't?
Loading mentions Retweet
Filed under  //  agile   business   startups  

Comments (0)

Jan 13 / 10:58am

IndooGrid 2.5 for DotNetNuke Rapid Application Development (without the development)

 

IndooGrid 2.5

 

Next generation of data-driven module to present and manage contents. Build cutting edge website (including reports, forms, listings, catalogs etc.) in minutes or explore over 100 options to play with database. Allow users to view or edit any data table (make new one if you wish) in five simple steps without programming knowledge - or use in-depth options to make complex custom application if you’re expert.

I'm helping a friend with his early-stage startup, and they're using Indoo Grid 2.5 from IndooLab.com. This is an extension to DotNetNuke that let's you build relatively complex CRUD-style applications without any server-side coding.

I've used Indoo Grid on a couple projects and recommend it if you need to build prototypes, proofs-of-concepts or even production-ready applications inside of DotNetNuke.

Here are a few links to explore if you're curious:

Here's the site of the company that makes Indoo Grid:
http://www.indoolab.com/

Quick Starts are here:
http://www.indoolab.com/HelpTutorials/QuickStart/tabid/247/Default.aspx

Download Page (including User Guide, which I recommend):
http://www.indoolab.com/Downloads/tabid/166/Default.aspx

Download the documentation here:
http://www.indoolab.com/IndooGrid/Productdocumentation/tabid/224/Default.aspx

Forums:
http://www.indoolab.com/OnlineHelp/Forum/tabid/165/forumid/5/scope/threads/Default.aspx

Loading mentions Retweet
Filed under  //  DNN  

Comments (0)

Jan 11 / 12:52pm

Exploratory Test-Driven Development

  • Interestingly, I’m less interested in following some of the practices I would if writing a production application. This means I’m not worrying too much about refactoring or testing until I get the basics down. I don’t want to confuse the concerns of exploration and learning with verifying the system works (which I can barely get going right now). When I am more confident in my knowledge, I’ll definitely spend more time thinking about these things.

The subject was "Starting iPhone development" but I thought the observation above was worth commenting on.

Personally, if I can, I prefer to explore new technologies (or new features of existing ones) with test-driven development.

I find that this documents my learning so that I don't forget or mis-remember anything I have discovered.

I can even refactor that learning as I move to higher levels of grokking the subject matter.

I can even mark tests as Ignored while I am figuring out how the technology or feature supports (or doesn't support) something.

I can send my tests to someone more advanced than I am, and ask them to comment on how I am progressing.

Finally, I can share my tests with others who follow.

I think exploratory TDD is something more people should do more often.

What do you think?

Loading mentions Retweet
Filed under  //  agile   test-driven development  

Comments (0)

Jan 10 / 12:19pm

Gojko Adzic » All stories are created equal

At the Agile Specification, BDD and Testing Exchange last month in London, Dan North spoke about selling behaviour driven development to the business. He put forward a relatively controversial idea on estimation: treat all stories as equal. Estimate each story as size 1 and just be done with it. Although this idea might seem overly simplistic, I find it really appealing.

On my current software project, we find this concept more than appealing - we find it works!

Every story starts out life as a 1-point story and should be able to be turned around in 8 hours from start of specification to customer acceptance.

If it turns out the story took more time, we run a quick post-mortem to find out why and then add a new rule to one of our "yardstick" documents (we have one for specification, one for development, one for testing). Now we have a better yardstick (get it?) for analyzing and possibly rejecting a story.

Yardstick documents can also have quality concerns in them as well in order to deal with "weak" stories that are certainly 1-point or less, but produce poor results. An example of this is a story with no behaviorial tests other than a "happy path" specified. This can certainly be turned around in time, but the results are likely to be bad.

Loading mentions Retweet

Comments (0)

Jan 10 / 9:11am

Learning about MongoDB

Combining the best features of document databases, key-value stores, and RDBMSes.

MongoDB (from "humongous") is a scalable, high-performance, open source, schema-free, document-oriented database. Written in C++, MongoDB features:

MongoDB bridges the gap between key-value stores (which are fast and highly scalable) and traditional RDBMS systems (which provide structured schemas and powerful queries).

On my drive home from a meeting yesterday, I listened to episode #507 of .Net Rocks! where Carl and Richard interviewed Michael Dirolf from 10gen, the creators of open-source database MongoDB.

I think there is a lot of potential in this technology, especially for agile teams. MongoDB is schema-free, so it would seem that you no longer have to spend time worrying about database schema migrations.

Here are the resources I've gathered on MongoDB:

MongoDB site:
http://www.mongodb.org/

The .Net Rocks Show
http://www.dotnetrocks.com/default.aspx?showNum=507

A webinar presented by Dwight Merriman from 10gen:
http://vivu.tv/portal/archive.jsp?flow=527-472-7945&id=1256920226675

C# Driver for Mongo (including partial Linq implementation)
http://www.mongodb.org/display/DOCS/Drivers

Experimenting with MongoDB from C# (K. Scott Allen)
http://odetocode.com/Blogs/scott/archive/2009/10/13/experimenting-with-mongodb-from-c.aspx

Using MongoDB from C#(The Dynamic Programmer)
http://blog.dynamicprogrammer.com/2009/11/10/UsingMongoDBFromC.aspx

Source code:
http://github.com/samus/mongodb-csharp/tree/master

The article from The Dynamic Programmer includes an example of deserializing collection data into entities - something I was thinking about as I'm a big fan of IntelliSense and learning about problems at compile rather than run time.

Check out MongoDB!

Loading mentions Retweet

Comments (0)

Jan 9 / 9:02am

Ideal Sprint Length and Start Dates

There is an interesting discussion going on at AgileBuddy about sprint length and start day: Sprint start and stop days - what's best

My current team (one developer and me!) works best with a one-week sprint that starts on Wednesday and ends on Tuesday.

I no longer like Monday starts - Monday is more often a holiday, and it's certainly the most hated day of the week.  And Friday is a bad day to end a sprint, since you're also ending the week and it has its share of holidays too.  Holidays are best planned for and managed inside of the sprint (IMO).

I like one-week sprints because it forces you into the right mindset - a sprint is SHORT. Two or three week sprints seem more like marathons that you have to pace yourself for.

This African proverb sums up my thoughts on Sprints nicely:

Every morning in Africa a gazelle wakes up.
It knows that it must run faster than the fastest lion
or it will be killed.
Every morning a lion wakes up.
It knows that it must outrun the slowest gazelle
or it will starve to death.
It doesn't matter whether you are a lion or a gazelle.
When the sun comes up, you better start running. 

-- African Proverb -- 

Loading mentions Retweet
Filed under  //  agile   Scrum  

Comments (0)

Dec 29 / 4:32pm

12 Hours, 2 Guys, 6 Cups of Coffee, 1 iPhone App - iPhone App - Gizmodo

12 Hours, 2 Guys, 6 Cups of Coffee, 1 iPhone App

David Quinlan is a normal guy with day job and just a bit of coding experience. But he and a friend lived the dream and cranked out a simple iPhone app in a weekend. Here's how they did it:

This is a really inspirational story showing how it's possible to not only write a complete iPhone app in part of a weekend, but get it approved for the App Store in two days!

Some of the more interesting bits:

1. The guys chose a very simple concept - something they could get done in a weekend given that they had to learn how to do some parts of the coding that needed to get done. They had a short list of "must have" features and everything else was pushed off to future versions (if any).

2. Great division of labor. One guy broke off to put together the App Store submission data while the other guy cranked out code.

3. Testing was a breeze - the app is a study in Zen product ownership and really only does one thing, but does it well.

4. Perfect illustration of YAGNI (You Aren't Gonna Need It) in action - instead of hooking in a database to store the card texts, they used application settings memory that was easy to use and essentially free from an effort perspective.

All in all, quite the agile weekend project!

Loading mentions Retweet

Comments (0)