Sergio and the sigil

So you've been hearing about this Git thing

Posted by Sergio on 2009-06-02

The ALT.NET universe in Chicago gets together again on June 10th, this time to learn and talk about Git, the SCM you're probably tired of hearing people jabbering about and still have not taken the time to look at.

The presenter will be myself and I hope to explain how Git works and how it can be a good alternative even for non open source projects.

Git Without Puns

This month we will take a look at Git, a distributed version control system that has been gaining a lot of popularity since its introduction.

As with everything that is new and is touted as a replacement for an existing product, it's easy to try and map Git's functionality to Subversion, CVS or TFS for example. To better use Git, we should avoid too much comparison and also try to understand how it was built and how it works under the hood.

Here are the things we will be seeing and discussing in this session.

  • Brief tour of Git on Windows (SSH, PuTTY, Git Bash, GUI)
  • Git is distributed. How does that benefits me?
  • Git's object database.
  • Git's main objects (blobs, trees, commits and tags)
  • Git workflows. Choose or create yours.
  • Working with Git
    • Configuration tips
    • Create a repo
    • Clone a repo
    • Add/Commit changes
    • Reference another repo
    • Update repo (to/from)
    • Branching, merging, rebasing
  • Hosting Git
  • Github, social project forking

The Chicago Code Camp has got you covered

Posted by Sergio on 2009-05-19

As a brief inspection of your RSS reader will quickly tell you, it's Code Camp season. Not to be left out of this party, the developers in the Chicago and Milwaukee areas have a great option this year.

The Chicago Code Camp, which happens on May 30th, is strategically located right between these two cities.

The agenda has been published and it's pretty exciting to see so many interesting and useful topics in a single event.

.NET still dominates the schedule but there's a lot of options for developers of virtually all walks of life. Here's a quick summary (we will have 33 sessions but some cover more than one topic)

  • .NET: 20 sessions
  • Ruby: 6 sessions
  • TDD: 6 sessions
  • JavaScript: 3 sessions
  • Functional Programming: 3 sessions
  • Cloud computing: 3 sessions
  • Python: 2 sessions
  • Java: 2 sessions

The bad part is that we can't be at all the sessions we'd like — there will be 5 or 6 concurrent talks. Here are some sessions that interest me in particular:

Those are only a few of the talks. I'm sure you'll be able to find sessions of your own interest. RSVP below. Hope to see you there.

RSVP

Talk: If you think F# has too limited applicability

Posted by Sergio on 2009-04-30

Next Chicago ALT.NET meeting will bring a practical look at F#, showing that it does not need to be seen as a niche language.

F# Outside the Lab

6:00 pm
Pizza and networking time

6:30 pm

It seems that almost every time we hear about F# being used it is always in a experimental setting or in a niche application. Maybe that's a common trait that F# shares with many other functional programming languages and its roots in the Microsoft Research labs.

Alex Pedenko has been exploring uses for F# for day-to-day programming tasks and he will be sharing his experience with the group in this talk.

Alex will start with a quick introduction to F# but it would work best if you could at least skimmed over some tutorial or video just to get the basic syntax and feel of the language.

Alex has been in software development for about 13 years, starting off on Borland Delphi, then spending about 4 years in Java and finally making the switch to .net around '03

Currently, he is the director of software architecture and chief architect at a healthcare services company. He has used that role as an opportunity to inject some modern ideas into an otherwise lagging industry, moving the company from a classic "giant web-app strapped to an even more giant db", to a distributed, service-oriented environment utilizing RESTful services, and rich-client applications.

He has spent roughly 6 months researching f#, its applicability to business systems, and viability in a commercial environment.

He adds:

I like long walks on the beach... er.. wait, that's for a different site :)

7:45 pm

Time for our monthly open discussion (if the 1st portion doesn't run late). Functional programming, either in a real functional language or in C#, JavaScript, Ruby, etc, which support some of the same constructs, is making inroads on software development. Is it the next big thing or just one more thing in our toolbox?

Partial list of sessions for Chicago Code Camp

Posted by Sergio on 2009-04-19

We're happy to announce the first partial list of talks selected for the Chicago Code Camp. We hope there's a good mix of various different technologies and that it could spark even more interest in the event.

There are still a good number of time slots undecided for this event. If you want to submit a talk, you can do that until Saturday the 25th of April. The event will be on May 30th.

AuthorTitleAbstract
Curtis Mitchel Rails-like development using ASP.NET This is a discussion about .NET tools geared towards making your development life easier in ASP.NET. We will discuss and compare these tools with the default Rails technology stack.
Dean Wampler Better Ruby through Functional Programming Functional Programming (FP) has become popular as the most robust way to write concurrent applications. Functional ideas improve code in other ways, like reducing coupling between "elements" and eliminating some "surprises" that occur when objects are mutable. We'll discuss the key ideas in functional programming and the functional features that Ruby already supports. We'll describe how best to use these features and how to work around the missing functional features.
Your will learn:
1) What is Functional Programming (FP)?
2) How FP addresses several programming challenges faced today, like concurrency.
3) How FP improves the overall robustness of Ruby code.
4) Ruby's support for FP: what's supported and what isn't.
5) Practical tips for applying FP ideas in your Ruby code
Derik Whittaker Guarding your code with Code Contracts It is a common practice to put checks into our code to help ensure quality. Historically these checks have come in the form of if/then statements where you were attempting to guard against data out of range data. Although the if/then method works reasonably well, it only solves half our problem. These checks guard against only data coming into a method, not the data coming out of a method. Fortunately for us, there is a project coming out of Microsoft, named Code Contracts, which will help to solve this problem. Code Contracts provides a language-agnostic way to express coding assumptions in .NET programs. In this session we will take a look at how you can utilize Code Contracts within your codebase to take your code quality to the next level.
Eric Smith TDD for the iPhone Currently, the iPhone is the hottest platform for mobile development, with everyone wanting to develop on it. Test Driven Development is a proven technique for developing high-quality software, but isn’t encouraged by the iPhone development platform. Open Source developers have stepped in, creating Unit Test Libraries for the iPhone. We’ll show you how to get started, run your first tests, put tests in your build, and touch on advanced techniques like mock objects and dependency injection. Perfect for the Agile Developer looking to get started on iPhone.
After a brief introduction Eric and I will perform a code “Kata” on the iPhone, writing Conway’s Game of Life. Afterwards we will tell the story of the how the application was built with some code snippets, explaining the steps along the way so they can be repeated by the attendees. Finally this presentation ends with a demo, and a victory lap.

Learning outcomes

  • Setting up Unit Tests on Mac
  • Writing Unit Tests
  • Getting tests in your build
  • Making mocks and using protocols
  • Injecting dependencies into your application at the last minute.
Jim Suchy iPhone on Rails You don't have to use Objective-C and Xcode in order to build a killer application for the iPhone. With the full-featured Safari browser, building web applications that act like a native iPhone application is not only possible, but it can be easy to do. We will take a sample Rails application and make it sparkle on the iPhone.
Jim Suchy TDD and JavaScript JavaScript has earned a special, dark place in most programmer’s hearts as it is a necessary evil for making the web experience dynamic. You are test-driving your JavaScript, aren’t you? If not, why not? If the reason is that you don’t know how, or haven’t taken the time to learn the various testing frameworks, then this session is for you. We will explore the various testing frameworks and test-drive a small bit of functionality using the presenter’s favorite.
Len Smith Get rolling with NHibernate All the cool kids are using NHibernate. Come find out what all the buzz is about. We'll see how NHibernate can make your domain model beautiful, your application perform better and facilitate Rapid Application Development.
Len Smith jQuery Magic jQuery makes working with the DOM, AJAX and events easy, fun and magical. We'll get started with an overview of jQuery and examples of integrating jQuery into existing applications in both ASP.NET and ASP.NET MVC.
Micah Martin Ruby Kata and Sparring All respectable software craftsmen make efforts to keep their coding claws sharp. And solely working 9-5 on business applications will dull one's whit. In this session we will broaden your coding horizons with some Ruby Kata and test your skills will some Ruby Sparring.
With Ruby Kata we will code known solutions to simple problems all the while being mindful of our steps and striving to write code of the best possible form.
Ruby Sparring will put your skills up against your peers. Exercises will be presented and your solutions will be compete against those of other participants. The challenge may be to solve a problem in the fewest lines of code, or to build a warrior program that will fight with others in Core Wars fashion.
Michael Hall Introduction to AOP with PostSharp Starting with an example of how things are done using normal techniques. Then install PostSharp and then step by step refactor to using Aspects to replace things like logging, validation, security and/or transactions. Finally give a brief history of the PostSharp product and references to more info and alternative toolsets.
Narayanan Kulasekar "Tools to build an effective Extract, Transform and Load (ETL) process" The biggest and most complex aspect of a data warehouse project is to gain understanding of data in all the source systems that you are dealing with. The next thing is coming up with an auditable and repeatable Extract, Transform and Load (ETL) process to bring all the data from your source systems into the data warehouse. Various studies have identified ETL to consume about 80% of a total data warehouse project effort. This presentation will talk about some of the best practices and scripting techniques that can be handy in making your data warehouse development less painful and more methodical.”
Perry Hertler TDD in the Real World This is an in depth TDD presentation that involves a lot of real-time coding.
The session will start with a high level overview of TDD then move to an example that involves TDDing a design and implementation of a simple story. The presentation will then cover some TDD tips, benefits, weaknesses, and finally compare TDD to TAD (test after development).
The coding part of this presentation can be done in either Java or C#. If it is decided that the presentation would be of use to Code Camp, please respond with a language preference.
Scott Seely Introduction to Google App Engine (GAE) It provides services to handle web requests, store data, and cache values across the server farm. The platform language of choice is Python. It supports several web libraries, including the very popular Django. In this talk, we will build a photo storage application that takes advantage of the caching, data storage, and the web platform features in GAE.
Sean Blanton Trends in Continuous Integration and Software Delivery You have all this great code, but how do you get it out to the real world with some degree of quality? Developers are relying on increasingly sophisticated infrastructure for build, test and delivery automation.Sean will present the latest on Subversion, CVS, Git and commercial file control tools, and how build and workflow automation speed application delivery and align with Agile development. Other topics to be presented are: distributed development, shared library management, scaling development and delivery processes to larger organizations, and the concept of software resiliency.
Tim Barcz Regular Expressions for the .NET Developer Many developers suck at Regular Expressions, don't be one of them. You will leave this session with a better understanding of regular expressions, from how to read them to how to write them effectively. Never again will RegEx stand in your way.

The Code Camp will be a great event. If you haven't registered yet, what are you waiting for?

RSVP

Nerd Dinner this week

Posted by Sergio on 2009-04-13

When I posted a call for a geek get-together over at NerdDinner.com I never thought so many people would RSVP. Now I don't know how many of those are just folks playing with the site and how many really intend to come (some of the user names really look like test accounts)

In its current state, NerdDinner does not allow me to contact the attendees so I cannot ping people and get a reasonable estimate for making table/space arrangements. I even added a feature request related to this problem.

Regardless of the final headcount, the dinner is confirmed. I've already heard from a few people that they are coming and that is enough to warrant the dinner.

When, where

We will meet at The Ram in Wheeling, IL (close to Lake-County Rd) this Wednesday (15th) at 6pm.

Who's coming?

Good question. Refer to previous paragraphs :)

If you are coming, please RSVP and email me (sergio at sergiopereira dotcom). That will help me having your contact info just in case and making arrangements with the restaurant.

If you already RSVP'd, if possible, email me as well to confirm or cancel (especially if your user account on NerdDinner looks like it came from some spam email alias)

Hope to see you there.