.NET Reactive Extension – Pittsburgh Tech Fest

What a great Pittsburgh Tech Fest this year!  Lots of great sessions, attendance was awesome and I met lots of like minded folks!

Thanks to everyone that attended my talk on .NET Reactive Extensions! Hopefully everyone was able to walk away with some useful information and maybe some ideas to try!

You can get the slides and code (as presented at Tech Fest) from my GitHub repo here:



Pittsburgh Tech Fest: iOS Best Practices slides & code

Pittsburgh Tech Fest was great this year! It was a perfect opportunity to learn about some different technologies and techniques.  I’d like to give a special thanks to Dave and Eric for doing an awesome job organizing the event and the speakers.

For those that are interested, below are the links to the talk I did on iOS Best Practices: Avoid the Bloat and feel free to comment or ask any questions on this post!

Code before refactoring: https://github.com/JAgostoni/iOS-Best-Practices/tree/master/UglyApp
Code after refactoring: https://github.com/JAgostoni/iOS-Best-Practices/tree/master/NotSoUglyApp
Code as presented at Pittsburgh Tech Fest: https://github.com/JAgostoni/iOS-Best-Practices/tree/master/PghTechFest

PowerPoint Slides: iOS Best Practices – Pittsburgh Tech Fest
PDF Slides: iOS Best Practices (PDF) – Pittsburgh Tech Fest

Thanks again to those that attended my talk!

SNLog – Simple logging framework for iOS

[SNLog Project Page Link]


A simple task that every developer runs into when creating software is proper logging and tracing.  What I have found is the simplest solution for logging is always the best.

Requirements are almost always the same:

  1. Need to log to the console when debugging
  2. Need to write to a file/database for runtime tracing and diagnostics

There are lots of frameworks for just about every platform out there but logging on the iPhone seemed to be lacking so I decided to create my own as an exercise.  Something that would be applicable to my current projects as well as to help out anyone else that might need something like this.


NSLog is the de-facto standard for logging during debugging in Xcode but is primarily temporary scaffolding in your code that needs removed prior to deploying the application.  I wanted something as simple to use as NSLog that could be configured to log somewhere more persistent than the console.


The plan of attack on this was straightforward:

  1. Minimize the files that need included in the project (just two, the .h and .m)
  2. Make use of it as easy as NSLog
  3. Re-define NSLog to use the framework instead of the built-in function
  4. Use a strategy pattern to allow multiple logging mechanisms (console and file built-in)

In addition, I ran into the following additions while I was working on it:

  1. Don’t let the file logging grow unbounded (especially on a mobile device)
  2. Capturing the log level/importance can allow different mechanisms to capture the level that is required

So that’s it … in two simple files I was able to create a simple logging mechanism that is a drop-in replacement for NSLog.  I can keep all those frivolous NSLog statements in my code and choose where to redirect the log.

Check out the Project Page for more details and the download.

Code Camp: Creating .NET Solutions using OSS

On April 8’s Southwest Pennsylvania’s Code Camp I presented on creating .NET solutions using open source software (OSS). The demonstration went quite well and I received a very generous response from the audience. Thanks to all who attended and made this first Code Camp quite a success!

The premise of the presentation was to demonstrate that it is completely possible to create .NET solutions (specifically an ASP.NET web application) using free and open source tools. I used a GNU/Linux based laptop (Ubuntu) with the following tools:

  • Mono (gmcs compiler)
  • MonoDevelop
  • DBDesigner
  • Dia
  • OpenOffice.Org (Writer and Impress)
  • GNUnit2

The result of the demonstration was that while it is entirely feasible to live in a .NET world with all free and open source tools your efficiency will not make up (YET!) for the cost of a more integrated and mature toolset. However, the tools I used are progressing rapidly and there is no reason why they can’t benefit you now and in the near future. I would recommend evaluating the cost of ownership ranging through your server environment, development environment and office environment.

The slides, code and documents are all freely available for download here. Use them however you want (at your own risk, of course ).

If you have any questions or comments please feel free to drop a comment on this entry!

Southwest Pennsylvania Code Camp

On April 8, 2006, we will be having the first (as far as I know) Code
Camp in Pittsburgh. As both an organizer as well as a presenter,
I encourage everyone in the area to attend this free event.

There are no corporate sponsors and all of the presenters are from the
community doing presentations and demos for the community. There
will be free lunch (I think) and plenty of free information!

For more information, please check out the Code Camp website:

My presentation will be on creating .NET solutions using free/open
source tools! It was interesting to create the demo so I hope
that remains when I actually give the presentation.