nik codes

Archive for the category “OSS”

New Contributor? Jump In!

Coming together is a beginning; keeping together is progress; working together is success. – Henry Ford

As Ford said many years ago, “working together is success”. In the two years I’ve been heavily involved with open source software, I’ve been lucky enough to see lots of success. Unfortunately, I’ve seen even more stalled beginnings and stunted progress, and I’ve been wanting to try to do something about it. So earlier this week I tweeted an idea I’ve had for a couple of months now:

The idea for a standardized issue label for open source projects came from the two pieces of feedback I consistently hear from would-be contributors:

  1. I’m not sure where to start with contributing to project X.
  2. I’ll try to pick off a bug on the backlog as soon as I’ve acquainted myself enough with the codebase to provide value.

Of course, what really ends up happening is that the would-be contributor gets bogged down in ramp up and orientation activities and seldom hits their stride in actually providing value back to the project. More often than not, we don’t get to work together. We don’t succeed.

The Pitch

Even though there are general guidelines for getting started with open source projects (such as submitting a detailed bug report, enhancing the documentation or answering a question on Stackoverflow), and GitHub specifically supports contributor guidelines on all projects, I still find developers having problems diving into new OSS projects. The challenge is, fixing bugs usually requires intimate knowledge of the project’s code base and expected behavior, and implementing an entirely new feature may require more time and effort than the contributor has to give.

Thus, enter the “jump in” issue tag/label. The “jump In” label is meant to help developers new to a given open source project provide value back to the project quickly and to help them get acquainted with the community and code base.

Jump in items would typically:

  • Take no longer than a few nights worth of work to implement.
  • Be relatively standalone, not requiring tight integration with other in development backlog items.
  • Be well described with pointers to help the implementer.

They are not:

  • Items that the “core team” does not want to implement themselves.
  • Items that are specifically set aside for junior/novice developers.
  • Used as a hazing activity for “rookies”.
  • Designed to be fizzbuzz tests.

There was quite a conversation around what the actual label to use would be. Kelly Sommers had a great suggestion with “New? Try This!” which ultimately was decided against due to its use of punctuation and the compatibility problems those characters could cause with some tooling. Many others suggested various labels, from the funny to the insensitive, and even pointed out two instances of “prior art”.

Scriptcs leverages a “you take it” label to identify items that make sense for new contributors. I found “you take it” to be a bit unwelcoming and passive/aggressive. I personally read it as “We the core team don’t want to do this, so you take it”. I know the guys behind that project don’t mean it that way – but lacking any context that it how I perceived it.

The other instance was KDE, which has been using a “Junior Jobs” label for almost 10 years. I found that to be completely inspiring. Several similar labels were suggested for this effort during the online brainstorming session, but were dismissed due to their connotation of work suitable for junior/inexperienced developers. While I’d love to adopt a preexisting “standard”, my fear of the junior designation conflicts with my desire to make all developers feel welcome to our community; so I’ve decided to go a different way.

So is “jump In” perfect? Most assuredly not, but it is a great starting place. It is action oriented, self descriptive, and had plenty of fans on Twitter. Of course the more its usage spreads across OSS projects the easier it will be for new contributors to show up and understand where they can and should jump in.

We’ve already got a jump in list going for Glimpse and we’ll be updating our CONTRIBUTING.MD to point to it, as well as our documentation, as great ways for newcomers to get involved.

The Call To Action

Label a few issues for your OSS project and link to the list here in the comments.

See a project you’d like to help out with but aren’t sure how? Ask the maintainers if they could provide a jump in list.

I’d love to see this spread into wide adoption, and for OSS projects of all sizes to find success in working with contributors and never again experience stalled beginnings or stunted progress.

Seriously Open, Definitely Required

More and more it feels like the tide for .NET based open source projects is beginning to change and mature.

It’s been awhile since the Outercurve Foundation was created, providing a home for great open source projects like NuGet, MVC Contrib and xUnit. The foundation isn’t perfect, but it is a big step in the right direction.

More recently, MonkeySquare was created to evangelize cross  platform and open-source development in .NET. Dale Ragan and the team at MonkeySquare also put on a great open source conference called MonkeySpace which is coming up at the end of July in Chicago.

So we’ve got foundations, evangelism groups, conferences – and now, a podcast!

logo

Seriously Open is a podcast about open source in the .NET ecosystem hosted by Nick Berardi, and Justin Rusbatch who do a great job extending the conversation beyond the typical OSS fare, delving into interesting topics such as project structure, project guidelines and the social interactions that make a project succeed (or fail).

They’ve published two episodes so far and I’ve thoroughly enjoyed them both. (To be fair, I was on the second episode along with my good buddy Anthony van der Hoorn talking about our experience with Glimpse, but we were completely honored to be their first guests!)

If you are a .NET developer looking to shake things up, an OSS contributor, user or project maintainer than Seriously open is definitely required listening.

New Job

“Choose a job you love, and you will never have to work a day in your life”.

It’s no secret that my love of web development has materialized into Glimpse, the project I started a little over a year ago with Anthony Van der Hoorn. I’ve had an amazing ride with Glimpse; becoming an ASP Insider, getting to meet many of my dev heroes and working with fantastic contributors from all around the world.

About a month ago that ride took a new and unexpected turn. An opportunity to work full time with the open source community on our little project arose from a seemingly unexpected source: Red Gate.

Red Gate

I was taken surprised by Red Gate’s proposal and spent several weeks with Anthony and Red Gate’s top brass discussing our philosophies of open development, open source, ASP.NET, the web development community, software development practices and yes, even Reflector. As the discussions progressed I became more and more convinced that Red Gate genuinely believed in our vision of Glimpse, our model of development, and most importantly, the community that we were serving. Given that, I decided to take a new job with Red Gate – getting to focus a much larger portion of my time on the things I love: Glimpse and the web development community.

There are a lot more details about what this means for Glimpse on the Glimpse blog, so I won’t rehash that here, but in summary it’s all positive. From a personal perspective, I will remain in New York City, and, in addition to spending a majority of my time working on Glimpse, I have also been given the opportunity to interact with the community. This basically means that part of my new position requires writing blog posts, speaking at user groups/meetups, working with open source and attending conferences like Monospace in October.

This is all new and very exciting to me. Keep an eye on this blog and my twitter feed for updates as things progress.

SharePoint ClientSide Extensions

I had a bright idea for a fairly simple SharePoint feature a few months ago when one of my students showed me the extensive work they had done using JavaScript via the Content Editor Web Part.

My idea was to allow for a simple way to "get JavaScript frameworks on the page".  This would allow non-technical users to simply copy and paste various little JavaScript widgits from around the web and place them on their SharePoint page.

I began working on the feature slowly, mostly during commercial breaks and other short bursts of free time. I finished the simple idea rather quickly – but then I let the scope creep monster attack.  I kept adding more and more features UNTIL…

Recently when other blogger’s implemented very similar ideas. Most notably:

So I decided to stop making small tweaks and additions and get this code out into the wild, it obviously has a need.

With that said, I’d like to introduce you to the

SharePoint ClientSide Extensions

SharePoint ClientSide Extensions is a simple SP solution. Once you add the solution, a site feature is provisioned which, when activated, gives you this screen in the Look and Feel column of the site administrator:

settings

You can add any of the above JavaScript libraries to your site, and then, via JavaScript in a Content Editor Web Part, access them.  This gives users instant access to the various widgits and UI components that these libraries provide.

For times sake I haven’t whipped up an example of how you might use this, but I will post that soon. Until then feel free to grab the WSP and play around with it.

I also want to point out that Jan and Gunnar have done a great job and I wanted to acknowledge their work.

Silk Icons – Contrib

 

Many great open source projects have corresponding “contrib” projects where people contribute additional functionality, plugins, addons, etc.

For example, I like to use nAnt for my build scripts. I often import additional tasks from the nAnt Contrib project such as their svn and sql tags.  Microsoft’s Enterprise Library also has a great contrib project which adds additional support for MySql, SqLite and Post#.

One library I find myself using most often is a library of free icons by Mark James called Silk.  The set includes 1,000 16×16 icons.  I’m sure you’ve seen them in the wild before.

Mark has an additional, matching icon set of flags from nations around the world.

Even though Mark has provided well over 1,000 icons, I still find myself needing additional icons from time to time.  Mind you, I am not a designer, so many of my attempts to create matching icons end up with me yelling at Photoshop.  That’s when I had a thought: the world needs a Silk Contrib!

A little goggling revealed that I’m not the only one who thinks so.  DamienG has “contributed” an additional 460+ icons to the set. While I don’t have the same artistic abilities as Damien, I have out some decent icons:

  • Certificate: certificate
  • Add Certificate: certificate_add
  • Traffic Light: traffic_light

I figure that everyone must have two or three “silk” icons that they have had to create for some project.  If this is you, then CONTRIB!  Post them up on the web and leave a comment here to we can start pooling these icons together.  Hopefully we can double the size of this icon set collectively.  If you are in need of a particular icon (IE – I could use a hard hat icon.) leave a comment as well – perhaps some designers out there would be willing to help.

FireFox, meet MSDN

I find myself using FireFox all the time.  I never thought I’d leave IE, but since I develop web applications almost all day long, FireFox’s extensions are invaluable to me.

IE does have a few extensions, but they come nowhere close to FireBug

Anyway’s, since I’m in FireFox, doing web development, I would like to look up web development documentation right in FireFox.

This led me to create my first browser extension – the MSDN Search plugin for FireFox! 

msdnFirefox

It works exactly how you’d think it would.  It is almost always faster than opening up the .Net or WSS SDK documentation as well.  Please give it a try and let me know what you think.

To use it simply extract msdn.zip and place the two files in your searchplugins folder, usually located at: C:\Program Files\Mozilla Firefox\searchplugins

Once you restart FireFox, MSDN should be available from your search box. 

For those of you who don’t find yourself using the search box that often, here are a few tips to get you up to speed:

  • Ctrl + E selects the search box
  • Ctrl +Up or Ctrl + Down cycles through all your installed search engines
  • Alt + Enter will open up the search results within a new tab

Leave feedback in the comments!

Download MSDN.zip

Giving Back

This year one of my new years resolutions was to give something back to the development community.  I plan on releasing more code samples and open sourcing any useful utilities that I write.  I also plan to try to contribute to some of the great open source libraries out there that I find myself using everyday.

Well an opportunity quickly arose the first week of the year when I found a small bug in the Quartz.net code base. 

For those of you who have not taken a look at Quartz.net – I highly recommend you do so!  Marko Lahma has done a great job of porting this Java scheduling engine.  It’s highly flexible and reliable, and even though the “1.0″ release hasn’t come out yet, it really is production quality.TortoiseSVN's righ click context menu

I’m actually quite surprised that this functionality isn’t baked-in to the framework.  It seems to be highly necessary for a large number of applications.  So necessary in fact that SQL Server has a scheduler built into it, as does SharePoint and Windows too!  I’d like to see a standard implementation of this functionality – just like we have a standard implementation of workflow.

Anyway’s, once I found the bug I fixed it locally and used TortoiseSVN’s “Create patch”  command to generate a patch.  I attached that patch to a bug report I filed on the Quartz.net website on January 7th.  Marko applied the patch to the trunk by day’s end.  It was quite a simple process.

Then on January 20th Quartz.net 0.9.1 was released.  In the release notes there was mention that BUG # 84 – my bug – had been fixed. 

That did it!  I’ve officially contributed code to an open source project, it was accepted and released and is out there to download.  Once you get involved in an open source project you really understand the amazing fortune we have to have access to such great software!

I recommend everyone commit something – even something small.  This must be the feeling Earl has when he crosses something off his list

Post Navigation

Follow

Get every new post delivered to your Inbox.