Sergio and the sigil

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.

Uncle Bob shows FitNesse and Slim

Posted by Sergio on 2009-03-28
UPDATE: Steve has published the video of the presentation.

There are still a few seats left for the next Chicago ALT.NET meeting. The meeting is on April 8th and we will have a demonstration of FitNesse by Robert Martin.

FitNesse is used by many people for acceptance testing and many in our group wanted to understand it better. So come and see what this is all about.

Collaborative Acceptance Testing with FitNesse

6:00 pm
Pizza and networking time

6:30 pm

Robert Martin is back, this time to talk about FitNesse, an Acceptance Testing turned into Wiki framework built on top of Fit.

Who else would you want to see talking about FitNesse? Uncle Bob, was one of its creators and is its maintainer. In this session he will explain what Acceptance Testing, Fit and FitNesse are, why they are useful and how to best use FitNesse in your process.

He'll also show off Slim, the new test-system that supersedes Fit and enables a whole hose of new features and capabilities.

Robert C. Martin has been a software professional since 1970. In the last 35 years, he has worked in various capacities on literally hundreds of software projects. He has authored "landmark" books on Agile Programming, Extreme Programming, UML, Object-Oriented Programming, and C++ Programming. He has published dozens of articles in various trade journals. Today, He is one of the software industry's leading authorities on Agile software development and is a regular speaker at international conferences and trade shows. He is a former editor of the C++ Report and currently writes a monthly Craftsman column for Software Development magazine.

Mr. Martin is the founder, CEO, and president of Object Mentor Incorporated. Object Mentor is a sister company to Object Mentor International. Like OMI, Object Mentor is comprised of highly experienced software professionals who provide process improvement consulting, object-oriented software design consulting , training, and development services to major corporations around the world.

7:45 pm

Time for our monthly open discussion. Aside from any specific topic that anyone wants to bring to the group, we can continue the discussion on Acceptance Testing and report the progress on the effort to produce the Chicago Code Camp.

Talk - JavaScript at Rockford .NET

Posted by Sergio on 2009-03-18

Next Tuesday, March 24th I'll give a JavaScript talk at the Rockford .NET user group.

This talk will be basically the same one I gave for the LCNUG back in December.

The few opportunities I had to give this talk were highly rewarding. It's priceless to see developers realizing how mistakenly they had been using JavaScript, and finally being able to understand why "that bug" was happening in their pages.

So, if you live in the area and think there must be something about JavaScript that you're just not getting, please try to stop by and ask your questions.

JavaScript - Beyond the Curly Braces

One of the greatest problems with JavaScript is its superficial syntax resemblance of C-style languages. We call it the curse of the curly braces.

That is also a very large source of frustration for developers trying to learn JavaScript beyond the basics. Thinking that JavaScript is somehow related to Java or even "It's almost like C# but a little simpler" is an unfortunate and common occurrence that can only lead to trouble.

In this session we will analyze some of the fundamental differences between JavaScript and C#/Java. We will highlight the pitfalls that can trap us and the appropriate workarounds for them.

Time permitting and if there's interest we will take a look at Idiomatic JavaScript, which will help us understand how JavaScript is being written these days. Learning about this will also help you when trying to read the source code or even the documentation and samples for popular JavaScript libraries like jQuery, Prototype, YUI, etc.