Events

We'll be meeting at the Magenic office every 2nd Thursday of the month (except in June and December) unless otherwise noted in the session details. We'll start at 5:30 PM with food and drinks, and the presentation will go from 5:45 to around 7 (go to the Location page for directions).

At each event, we'll have dinner (either pizza or sandwiches) and some free giveaways. If you want to attend the next meeting, please register by sending an e-mail to jasonb@magenic.com. This will ensure we get an accurate head count (the room can hold up to 30 people comfortably).

There's also a Facebook group that you can join - go here for the details. You can follow the official Twitter account for the user group by clicking here.

Current Event

Esoteric Programming Languages (July 9th, 2009)

Most of the time we program in modern languages like Ruby or C#. However, there are a plethora of languages out there that are strange, odd, and/or just plain funny. In this talk, I'll go over a number of esoteric programming languages such as Whenever, Befunge, and LOLCODE. Come with a sense of humor!

Speaker

Jason Bock is a Principal Consultant for Magenic, and is also a Microsoft MVP. He has worked on a number of business applications using a diverse set of substrates and languages such as C#, .NET, and Java. He is the author of "Applied .NET Attributes", "CIL Programming: Under the Hood of .NET", ".NET Security", and "Visual Basic 6 Win32 API Tutorial". He has written numerous articles on software development issues and has presented at a number of conferences and user groups. He also run the Twin Cities Code Camp and the Twin Cities Languages User Group. Jason holds a Master's degree in Electrical Engineering from Marquette University. Visit his web site at http://www.jasonbock.net.

Future Events

Concurrent Programming with Microsoft F# (August 13th, 2009)

F# is Microsoft's multi-paradigm language which sets out to solve more functional programming types of problems in the .Net ecosystem. Perhaps you've seen some of the basic syntax which although is interesting, it's now time to check out what people will actually be doing with the language. I'll show how F# helps out with concurrent programming in an actual enterprise application, with legacy code interaction and all.

Speaker

Amanda Laucher is a midwest based Principal Consultant for The Sophic Group. She has acted as an architect and developer, delivering Microsoft solutions at organizations of all sizes. Amanda focuses on up and coming technologies and their implementation into current business solutions. As an INETA Speaker, she enjoys speaking at conferences in Europe, Australia, and across North America. She is currently working on her first book which will be released in 2009.

Comparing Objective-C to Java/.NET (Sept. 10th, 2009)

Objective-C, a fossil of a language from the '80s is resurgent: the language of choice for Mac development and, currently, the only language for iPhone development. In this talk, I'll cover some of the history of Objective-C & Cocoa (the Apple standard library for Mac/iPhone), how it differs to languages like Java or C# that you may be familiar with and show you some interesting techniques that can't be easily accomplished in other languages.

Speaker

Dan Bennett is Senior Director, New Product Technology for Thomson Reuters based in Eagan, Minnesota, responsible for a team building the next generation of web applications for West. Dan hates to manage things he doesn't understand, so keeps his hand in with a variety of development projects, including leading the development of the first iPhone application for Thomson Reuters.

Static Analysis of a Dynamic Language (Oct. 8th, 2009)

Even with all the hype and buzz around dynamic languages in the last few years you might still have overlooked Lua. Used primarily as a scripting and extension language for games like World of Warcraft, Lua is also the language in which the majority of Adobe Lightroom is written. In this talk, I'll provide a brief overview of Lua and then dive headlong into how its virtual machine works and how static analysis of the bytecode can spot mistakes and dead code.

Speaker

Dan Tull has been a professional software developer for around a decade and taught himself his first 3 programming languages about 6 years earlier (in high school). For the last 3 years he's worked at Adobe Systems on the Lightroom team. Prior to that, he worked on projects ranging from embedded systems to enterprise web applications in industries including financial services, and storage networking, and medical devices.

Past Events

Small Basic – Your Kid's First BASIC (May 14th, 2009)

Try to remember back to what programming language you first learned. It is likely it was some form of BASIC. Whether it was on an Apple IIe, TSR, DOS or TI-89. BASIC has been a staple for teaching programming to kids. MS Dev Labs has come out with a new basic for teaching kids modern programming techniques in both text and GUI interfaces. Utilizing .NET 3.5 and WPF it provides a rich and easy to use experience to cover everything from variable assignment, to loops and subroutines.

In this talk we'll go over the "basics" of this 15 keyword BASIC implementation. We will cover how easy it is for you to teach your kids how programming works in a way that then end result will make them say "wow". We will also cover the extension mechanism to add your own classes/api's into the system.

Maybe you can once again discover the joy you felt when you first learned "Hey, I can do that" with that first programming language.

Speaker

Jeff Klawiter is a Senior .NET Developer at Sierra Bravo Corporation. His ambitions in life are to learn all there is to know about programming before he dies and to one day make his own dragon with Biological Programming.

Inside Lexical Analysis (April 9th, 2009)

Presentation Materials

The first step in any source compilation is to analyze the source code's syntax so that it can be understood and translated into a target instruction set. But just how does this step work? In this talk, I'll discuss lexical analysis: the process by which a file full of code is systematically dissected into the identifiers, keywords and symbols that make up the source. Included will be a discussion on regular expressions, state machines, the tools used for lexical analysis today, and how all of this might be implemented in today's .NET world.

Speaker

Jeff Ferguson is a Consulting Manager with Magenic. He has been with Magenic since 1996 and has worked in the software development community since 1989. Jeff has developed code for the Microsoft space during all of that time and has been involved in a variety of both desktop and Web-based projects using C, C++, C# and Visual Basic .NET. Visit his blog at http://www.geekswithblogs.net/JeffFerguson/.

Groovy Metaprogramming (March 12th, 2009)

Ruby's monkeypatching brought the idea of metaprogramming to the masses, or at least to those that weren't exposed to it in Lisp or C. At its best, metaprogramming can greatly improve productivity, as is the case with Grails, but at its worst it can destroy expectations and induce versioning confusion. This talk introduces the myriad metaprogramming techniques Groovy and dynamic typing allows, shows how some of them are used in real life, and compares them to what's available in other languages. Oh yeah, all code will be written live.

Speakers

Hamlet D'Arcy has been writing software for about a decade, and has spent considerable time coding in C++, Java, and Groovy. He's passionate about learning new languages and different ways to think about problems, and recently he's been discovering the joys of both F# and Scheme. He's an active member of the Groovy Users of Minnesota and the Object Technology User Group, is a contributor to a few open source projects (including Groovy and the IDEA Groovy Plugin), blogs regularly at http://hamletdarcy.blogspot.com and can be contacted at hamletdrc@gmail.com.

Scott Vlaminck has been developing web applications for about a decade, and has spent most of that time using Java and J2EE. For the past two years, however, he's been enjoying the freedom of programming in Groovy using Grails. He's an active member of the Groovy Users of Minnesota and has contributed to both the Grails and Groovy projects. His weblog can be found at http://refactr.com/blog and he can be contacted at scott@refactr.com.

Beyond Java - Building on Platforms (February 12th, 2009)

Just a few short years ago, when you talked about Java, you were referencing a language and a platform; today, that's no longer the case. Long a friendly home to hundreds of languages, the JVM proudly hosts a slew of first class citizens, from JRuby to Groovy to Scala.

In this talk we'll discuss the transition from Java the language to Java the platform, the drivers of that metamorphosis, and what it means to today's busy developers. We'll touch on the ployglot programmer meme and why it's such an exciting time to be a hacker.

Speaker

Nathanial Schutta

Building Textual DSLs with Oslo (NOTE the date change! - January 14th, 2009)

The "Oslo" modeling language can define schemas and transformations over arbitrary text formats. This session shows you how to build your own Domain Specific Language using the "Oslo" SDK and how to apply your DSL to create an interactive text editing experience.

Speaker

Jason Olson is a Technical Evangelist in Microsoft's Developer and Platform Evangelism (DPE) division, working on core improvements in Visual Studio 2010 and the .NET Framework 4.0. In his minimal spare time, he loves to spend time with his wife and son, play/perform/arrange/compose jazz music, and study programming languages.

BOO! A Wrist-Friendly Language for the CLI (November 13th, 2008)

Boo is a new object oriented statically typed programming language for the Common Language Infrastructure with a Python-inspired syntax and a special focus on language and compiler extensibility. In this discussion I will be showing some practical examples of BOO and talk about some of the benefits it may offer.

Speaker

Justin Chase is a .NET developer and is the lead on the open source project NBusiness. He has a special interest in DSLs and programming languages. In the rest of his spare time he likes to travel, play paintball, brew beer and play games.

The Arc Programming Language (October 9th, 2008)

Arc is a new dialect of Lisp focused on minimizing the size of source code while maximizing productivity, particularly for relatively simple web-based applications. This session will introduce participants to the Arc programming model, as well as the Arc development ecosystem as it exists today.

Speaker

Kurt Christensen is a complete idiot, and always has been, although Kurt's idiocy wasn't unleashed onto the software community until 1995. Kurt has been weaseling his way into interesting coding gigs ever since, always underqualified for the task at hand. For the past four years, Kurt has also subtracted value from organizations as an "agile" snake oil salesman. Kurt still tries to code as often as possible, but the agile stuff pays more per hour, so of course you can see the difficulty.

A Crash Course in HLSL (September 11th, 2008)

Microsoft's High-Level Shader Language (HLSL) is a shading language developed to give graphics programmers complete control over the graphics in their applications. This talk starts at the very basics explaining what a shader is, how it works, how to write one, and why they're so important in the future of next-gen graphics.

Speaker

Matt Christian is a student at the University of Wisconsin – Stout studying Applied Mathematics and Computer Science with a concentration in Software Development. In 2006 he was the outstanding graduate in the IT – Programmer/ Analyst degree at Northcentral Technical College. He has been programming game demos since high school and has been actively learning DirectX, OpenGL, XNA, and other game related topics. You can find out more about his current projects at http://www.insidegamer.org/projects.aspx or http://www.geekswithblogs.net/CodeBlog.

Coding in PowerShell (August 14th, 2008)

PowerShell is Microsoft's latest command line shell, formerly codenamed Monad. But PowerShell isn't just for administrators. Though they might not admit it, PowerShell is .NET's first scripting language. Learn how PowerShell's constructs combine a shell and programming language and leverage its powerful capabilities into your own environment.

Speaker

Neil Iversen thrives on digging into business issues and (ab)using technology to solve a problem. As Lead Developer for Inetium, Neil gets to create solutions that span multiple technologies including SharePoint, CRM, Office and a variety of platforms. He is also a frequent speaker at the Minnesota SharePoint User Group (MNSPUG) and creator of the Minneapolis Office Developer Interest Group (MODIG).

JRuby Today and Tomorrow (July 10th, 2008)

JRuby is the only other production-ready Ruby implementation, and it's starting to see wide deployment. Whether you're building web applications, GUI applications, Java testing frameworks, or just playing around with Java APIs, JRuby has a lot to offer. And there's more to come.

This talk will focus on practical details of Ruby and JRuby, showing why Ruby is such a flexible language and how Ruby combined with the JVM is better than either alone. We'll show off GUI frameworks, graphics demonstrations, web app development and deployment, and maybe more. We'll talk about the status of JRuby in relation to Ruby versions and what's left to implement. Then we'll take a look into JRuby's future, discussing the challenges of keeping up with a development version of Ruby along with other JVM languages that keep moving forward.

Speaker

Charles Nutter has been working full-time on JRuby at Sun Microsystems for almost two years. He has now expanded his job to include outreach to the JVM language community and hopes to pull more JRuby subsystems out as reusable libraries to help other language implementers. Charles blogs at headius.blogspot.com.