KEYNOTE SESSION - LINO TADROS

Alain "Lino" Tadros is President & CEO of Falafel Software, a Silicon Valley based company, with presence in Colorado, Texas, Michigan, Ohio, Massachusetts and North Carolina, and presence internationally in Canada and Dubai, UAE.  Falafel is dedicated to providing world-class consulting, training, and software development for small, medium, and enterprise level businesses. Prior to founding Falafel, Lino was a member of the development team at Borland for Delphi and C++Builder. Lino has been awarded Microsoft MVP status eleven years in a row for his numerous contributions to the C# community and is an expert in .NET, LINQ, ASP.NET, MVC, XAML, Xamarin, Windows Phone and Web Services.

Lino is an industry renowned speaker and has given numerous presentations on 5 different continents since 1994. He also currently sits on the Board of Directors of 4 Silicon Valley corporations.

Lino will share with the attendees his experiences as a Software Developer, entrepreneur and business executive with many funny moments during his 26 year career while also discussing his take on the current state of Mobile development in the industry.

If you’d like to know more about Lino, you can find him blogging at http://www.linotadros.com and on Twitter at http://twitter.com/linotadros .



SPONSOR REMARKS

Introduction to BizStream

by Brian McKeiver
 


How do craftsmen become change leaders?

by Jim VanderMey

Jim VanderMey will discuss a few ideas from his experiences on how to make yourself even more valuable and relevant as a developer and leader.
 
Jim will talk about the books and ideas that have shaped his thinking over the past year or so, give away the books and in doing so, highlight the way OST continues to grow and shape our culture.
 
The five books are...  Well you will have to wait and see but he has already ordered them from Amazon!



BREAK-OUT SESSIONS

30 Tools for Modern .NET Web Development in 60 Minutes

Jonathan "J." Tower
Level: Intermediate
Track: Web

Are you a .NET developer interested in crafting high-quality, modern web applications? I've got 30 tools I want to show you in just 60 short minutes. I'll introduce you these 30 tools that I think will help make both your software and life better. Buckle your seat belts and come prepared to jot down some notes on the items that will be the most helpful to you so you can look into them more later. We'll be moving fast!

Interested Not Interested




Asynchronous? Parallel? Reactive? Help!

Stephen Cleary
Level: Intermediate
Track: Coding for Fun

The modern world of concurrency can certainly be confusing! This talk is a gentle introduction to the many forms of concurrency. Most developers have heard of parallelism, so we'll start by covering the three forms of parallel computing, showcasing the Parallel class and Parallel LINQ (PLINQ).

The next stop will be asynchronous code. We'll cover how asynchronous code is a totally different kind of concurrency than parallel processing, and consider how the async and await keywords work to enable maintainable asynchronous code.

Before the last point, we'll spend some time looking at TPL Dataflow. A beautiful mix of parallel and asynchronous techniques, TPL Dataflow is a little-known but extremely powerful library.

Finally, I'll introduce Reactive Extensions as yet another form of concurrency. I'll describe the concepts behind Rx as well as the most useful operators. And I'll keep it practical; I promise not to say "mathematical dual of IEnumerable" even once.

Interested Not Interested




Build 2 apps for the price of one using MVVM and Portable Class Libraries

Tom Walker
Level: Intermediate
Track: Mobile

If you are not using MVVM or PCL in your app development you are doing it wrong. First we will do a brief introduction on MVVM and Portable Class Libraries. Next, we will cover how to architect our app to take advantage of using MVVM to avoid hard coupling between model and view. PCL will give us the ability to share our business logic and model across both Windows Phone and Windows Store clients. The other area I will be addressing in the session is how to abstract the navigation service so we can build a common navigation interface for both Windows Phone and Windows Store. This session will provide you with the knowledge to better architect your app concepts to build both Windows Phone and Windows Store clients at the same time.

Interested Not Interested




Communicating with a Fist-full of Wire

John Van Enk
Level: Introductory
Track: Coding for Fun

This is a talk about the fundamental concepts that let us move information. What's required? What are the problems to be solved? What goes into being able to transmit even a single bit of information?

Let's explore the core concepts that allow computers to move information and what barriers there are to that movement. The journey of a HTTP request across copper is long, but it starts with a single bit.

Interested Not Interested




Connecting C# to Arduino and the world outside your computer

Eric Potter
Level: Introductory
Track: Coding for Fun

C# is a great language, but our C# code is confined inside of our computers. What do we do if we want to control a motor or display information on an analog gauge? We can use the C#, ScriptCs and the ScriptCS-Arduino library to interface with the world outside of the computer. In this session, I'll show you how to get started.

Interested Not Interested




Create and Publish a Windows 8 Game

David Giard
Level: Introductory
Track: Coding for Fun

This session is ideal for those who want to build Windows 8 games but have not yet migrated their to Windows 8. In this session, you will learn to use the Construct 2 game engine to build a game and export it to a Windows 8 or 8.1 HTML5/WinJS project. I will then show you how to configure, build, and submit this application to the Microsoft stores.

Interested Not Interested




Developing Mobile Sites to Feel Like Native Apps

Tom Stoepker
Level: Intermediate
Track: Mobile

While native applications for Smart Phones offer tremendous benefit in terms of performance, as phones get faster and mobile browsers are supporting the latest in web standards, creating sites that feel like native apps is becoming possible. And the major component that websites have over native apps is the URL! Website content is just more sharable, does not require users to download anything, and is platform independent! 1 awesome mobile site can be viewed on Android, iOS, Windows Phone "“ whatever has a modern browser! With client side technologies allowing animations to be more performant as will the all important History API (moving the url with javascript) as well as server side technologies that can push live data to a site without a refresh "“ developing smart, performant web apps that really feel native is totally possible, totally cool, and totally the future.
If your site is content, commerce, or social driven "“ leveraging these technologies with some elegant design and clever usage of these technologies can create awesome experiences that look better, feel cooler, and actually load faster!
This talk will briefly discuss the benefits of creating mobile sites that feel native, and the major portion of the discussion will be techniques and ideas about how to go about creating these sites in code. Using a personal example I built, plus some other awesome stuff already out there, I think the talk can motivate smarter front end development, and prove the value of developing better mobile web apps before going native.

Interested Not Interested




Developing SharePoint Store Apps

Steve Mushkat
Level: Introductory
Track: Portals/CMS

Did you know there is a public marketplace for SharePoint apps? All of those web parts you've written can now be turned into profit! Come learn about SharePoint 2013, and how you can start building apps for your company or the SharePoint store.

Interested Not Interested




Establishing a Lingua Franca: PowerShell development for C# & .NET Developers

Brian Vander Lugt
Level: Intermediate
Track: Craftsmanship/Process

PowerShell has become the de facto standard for automation and configuration in Microsoft environments. In some cases, PowerShell is the only way to make a configuration change. As a result, more and more admins are forced to learn and interact with PowerShell. Developers on the other hand can avoid learning PowerShell and continue to use C#/.NET to build console apps. If developers and admins can speak the same language, more work can be accomplished in less time. This talk will look at why PowerShell is worth learning for a developer and how to jump in to developing solutions in PowerShell.

Interested Not Interested




Break Free with Managed Functional Programming: An Introduction to F#

Dave Fancher
Level: Introductory
Track: Coding for Fun

Originally developed by Microsoft Research, Cambridge, F# is an open-source, functional-first language in the ML family. It has been a first class citizen of Visual Studio since VS2010 but despite its lofty position and its cross-platform availability, F# hasn't seen widespread adoption in the business world. In this session we'll take an introductory look at F#, exploring how its constructs and terse syntax allow you to write more stable, maintainable code while keeping you focused on the problem rather than the plumbing.

Interested Not Interested




From Callback Hell to the JavaScript "Promise" Land

Brandon Martinez
Level: Intermediate
Track: Web

We've all been there: buried 15 layers deep in JavaScript functions wondering where in the Callback Hell we are. How did we get here? Handling asynchronous code forces us to build an unmanageable stack of function calls, often leaving us buried beneath them. Is there a better way to handle this? Luckily, there is; I promise.

JavaScript promises give us an elegant way to handle asynchronous code. Through the power of its "then" method, we're able to chain, instead of stack, our logic together. We'll dive into the core of promises, as well as how to break apart common Callback Hell scenarios into beautiful method chains that'd make the most experienced developer shed a tear.

Interested Not Interested




Getting started with NoSQL in .NET using RavenDB

Ondrej Balas
Level: Introductory
Track: Data

Are you ready to add NoSQL to your toolbelt, but not sure where and how to begin? In this session, you will get your feet wet with a gentle introduction to RavenDB. Starting with "File > New Project" you will see just how easy it is to launch a RavenDB server and connect to it using the RavenDB .NET Client API. I will then go over storing, retrieving, and querying objects, an overview of the indexing system, and common strategies for handling schema changes.

Interested Not Interested




git gone wild

Magnus Stahre
Level: Intermediate
Track: Craftsmanship/Process

Oh no! I just typed something into git and now my work is gone! Ahh!

Don't panic. Contrary to popular belief, git is one of the most non-destructive version control systems available. When used right, git
never loses any data, and even when misused, chances are very high you can still recover.

This talk will present turn-by-turn directions on how to recover from a wide array of common git mistakes, and also provide some workflows
to minimize them.

Examples include, but are not limited to:
* Changing spelling errors in commit messages.
* Split commits into multiple commits with logical separation.
* Combining multiple commits into one.
* Resetting the base commit when you accidentally branch off of the wrong branch.
* Recovering from merge conflicts.

As well as more advanced topics, such as:
* Extracting parts (e.g. sub-directory) of a repository as a new repository.
* Merging multiple repositories into one while retaining version history.
* Removing confidential data accidentally committed.

Interested Not Interested




Handling Tough Conversations : Managing Technology Projects Effectively

Matthew Seeley
Level: Introductory
Track: Craftsmanship/Process

Many of us work on technology projects everyday, and work hard to deliver high quality, solidly built solutions.

But what about the rest of your project? How do you handle deadlines and angry stakeholders? Ensuring your project is useful to clients?

In this talk, I'll dive into solid project management techniques that help promote success in the non-technical portions of your software project.

I'll touch on tips for handling these concerns successfully, even if you are new to professional development, or aren't formally in a "project management" role. I'll also make a case for promoting these responsibilities within your organization, to improve your overall process.

Interested Not Interested




Introduction to Async ASP.NET

Stephen Cleary
Level: Introductory
Track: Coding for Fun

Async/await is one of the most celebrated language improvements in modern times, but does it have a place in server-side code? The answer is most definitely "yes," and this talk will explore using async and await on the server.

We'll start out with an introduction to async and await, with a special emphasis on the benefits that asynchronous code brings to the server side. In particular, we'll examine how async can help you scale (and situations where it won't!).

Next, we'll cover the basic requirements for using async/await on ASP.NET. We'll discuss common problems and solutions, and solve some "pain points" for async servers.

You'll walk away with a solid understanding of asynchronous ASP.NET solutions, how they compare with Node.js, and how to avoid the common pitfalls.

Interested Not Interested




Java.Next: Java 8 Overview

Scott Seighman
Level: Intermediate
Track: Desktop

The next release of Java (8) promises a variety of new features, including Lambda expressions, annotations and a new date/time API. We'll review these and other notable additions to the Java platform, plus provide code samples and demonstrations of the new features of Java 8.

Interested Not Interested




Kendo UI Web Jumpstart

Josh Eastburn
Level: Intermediate
Track: Web

Kendo UI is a robust, open source web framework from Telerik that will accelerate your HTML5 web development. We will cover a variety of data and input widgets, data binding, themes, charting, and ASP.NET MVC wrappers. A basic knowledge of JavaScript and HTML is helpful, but not required.

Interested Not Interested




Knockout.js Will Change How You Write Web Apps

Jason Follas
Level: Intermediate
Track: Web

Today's web browsers are no longer merely simple terminals into a remote server: they are powerful virtual machines that use HTML5 to define interfaces for human interaction and execute programs written in JavaScript. Building complex applications that run completely in the browser can be a daunting task, chiefly due to the amount of plumbing code that must be written to link the UI to the JavaScript. However, there are a multitude of JavaScript frameworks available to ease that experience, including Knockout. Knockout is an open source JavaScript library that brings the MVVM pattern down to the web page, providing observable data, templates, and automatic data binding. A warning before attending this session: once you use Knockout in your web applications, you will never want to go back!

Interested Not Interested




Lessons Learned from Working Remotely: No Pants Required

Michael Eaton
Level: Introductory
Track: Craftsmanship/Process

Stuck in a cube and want to convince your boss to let you work remotely? Already working remotely and struggling to be productive? What are some things you can do to make life easier as a lone(ly)
developer? With a few simple practices, it can be extremely rewarding and I will share many of the lessons learned and practices I've developed working remotely since the early 90s.

Interested Not Interested




Math is everywhere and why you should care

Brian Korzynski
Level: Introductory
Track: Craftsmanship/Process

As developers, we are surrounded by math. While much of it is hidden or abstracted away by our language of choice, understanding it will allow you to make better decisions. Do you really know the difference between a linked list and a hash table? How about a tree or a trie? The data structures and algorithms we use daily are bursting with math, and being aware of the basics can mean the difference between success today and failure next year. Topics covered will include LINQ in C#, underscore.js, map/reduce, recursion, and combinatorics.

Interested Not Interested




More Power with LESS Bootstrap

Jay Harris
Level: Introductory
Track: Web

CSS Scaffolding systems have some a long way since Blueprint and 960.gs. Bootstrap extends beyond the basic grid system to provide a beautiful and powerful design framework, and its power increases tenfold when combined with LESS, the dynamic stylesheet language. Spend a session learning about simple, reusable, variable-based CSS with LESS, and the beautiful, responsive designs that you can build off of it when combined with the Bootstrap framework. When you walk away from this session, you too will know the power of LESS Bootstrap.

Interested Not Interested




Octothorpe: Taking and making phone calls with Python, Twisted, and Asterisk

Matt Behrens
Level: Intermediate
Track: Coding for Fun

Matt will cover his open-source Python library "octothorpe", which allows Python programs using the Twisted asynchronous networking engine to control Asterisk telephony software, allowing you to have Python answer the phone"”or even call you.

Interested Not Interested




Password Storage Sucks! How to Properly Secure Your Users Passwords

Nerdy Beardo
Level: Intermediate
Track: Data

With the recent breach at Adobe and other high profile tech firms of their users' passwords its important developers are aware of how to properly secure their users passwords and other PII data. This presentation is about password security mechanisms for web and mobile applications. A discussion on how to properly store passwords, the proper use of cryptography and hashing, and setting up proper password policies for your application. The goal is to ensure developers have the knowledge and knowhow to develop secure authentication and minimize loss in the case a data breach occurs. Code for this talk will be in C# and Pseudocode however the principles can be applied to any programming language.

Interested Not Interested




People a Computer Scientist Rarely Thinks About

John Kloosterman
Level: Introductory
Track: Design

Marc Andreesen has claimed that "software is eating the world" - that using software effectively is becoming the differentiator between success and failure in today's economy. The automobile is an example of a past technology that "ate the world", and we are now living with both the positive and negative effects it had on society. Since software is still a relatively new technology, it is the choices that developers make now that will determine what the positive and negative effects of software will be. This talk will examine how some groups of people, like the elderly, are being marginalized as software becomes more pervasive, and will explore how being an ethically responsible software developer will change as the world comes to be defined more and more by software.

Interested Not Interested




Programming Windows Azure Mobile Services

Jason Farrell
Level: Intermediate
Track: Data

Cloud computing has a great many advantages that enable developers to create better more scalable solutions for clients quicker than ever. Windows Azure Mobile Services is Microsoft's managed REST service platform enabling developers to quickly deploy a REST service built on node.js in the cloud.

This talk will focus on what Azure Mobile Services brings to the table and how it can be used in the real world to bring greater functionality and value to your application. To demonstrate this, I will create a real time YouTube voting application live.

Interested Not Interested




Regex Searches: Ain't Nobody Got Time for That!

David Shepherd
Level: Introductory
Track: Craftsmanship/Process

Developers are busy people, running from sprint to sprint, with little time for self-reflection. They don't notice how often they mutter "..how'd he implement that.." or "..where's that method that does X?" They don't notice that the search tool they use to answer these questions is from the 1960s. They don't even seem to notice that 90% of these type of searches fail! Fortunately, a developer turned researcher did notice, and has dedicated the better part of the last decade to eliminating this quiet productivity-killer.

In this talk, I'll use both video examples and a massive repository of real developer activity data to prove that the typically-used regex searches waste a significant part of your day. Yet this talk won't dwell on the past; it focuses squarely on a better search future. I'll provide a tour of Visual Studio's many built in searches, demonstrate two search tools available as extensions, and provide guidelines for better searching. By attending this talk you will become a more effective searcher, a skill that is surprisingly fundamental to software development, and I estimate you can eliminate 10-30% waste from an average sprint.

Interested Not Interested




Remote Pair Programming For Great Good

Brian Scaturro & Jason Sich
Level: Intermediate
Track: Craftsmanship/Process

Two heads are better then one, but what if those 2 heads have miles of distance between them? Throughout this presentation, we will discuss how a couple of programmers can overcome the obstacle of distance when it comes to pair programming. We will discuss our process, pain points, successes and everything we learned from remotely collaborating on a test driven, non-trivial angular application.

Interested Not Interested




Requirements Management Using Python and Version Control

Jace Browning
Level: Intermediate
Track: Craftsmanship/Process

Effectively managing the requirements and traceability in a complex software project can be a challenging task. Many tools exist to support the creation and management of changes to text-based requirements. The most popular commercial solutions use a centralized server to host a database with a front-end desktop or web interface. Some downsides to this approach include user interface bloat, server costs, and an inherent disconnect from the project's source files.

This talk will be a demonstration of a new approach to requirements development using version control and a new Python tool called Doorstop. This solution stores requirements as text files and provides Pythonic interfaces to manipulate and validate the requirements. Doorstop allows a project to utilize its existing development tools to manage versions of the requirements using a lightweight, developer-friendly interface.

Interested Not Interested




SDLC in Hostile Environments

J Wolfgang Goerlich
Level: Intermediate
Track: Craftsmanship/Process

What happens when end-users have the motive, opportunity, and skillset to attack our software? When two hacker conferences hosted a six week capture-the-flag contest, organizers learned first-hand how this impacts the software development life cycle (SDLC). We will discuss wins and losses, successes and failures, and hard lessons learned.

Interested Not Interested




Software Empires and Ruins: Version Control and the History of Gitlandia

Jeff McKenzie
Level: Introductory
Track: Craftsmanship/Process

So all the cool kids are preaching the Git Gospel, pushing everything to the GitHub promised land. But what is Git anyway? Should you use it? How is it different from other Version Control systems? What is Version Control anyway, and why do I need it? Turns out all of these questions can be answered by a quick trip through history. Newly discovered ancient writings reveal the sprawling province of Gitlandia, an early distributed civilization that bears an eerie resemblance to Git. Exploration of Gitlandia will be followed by a close look at Git itself, how to use it, and how it works with remote systems such as Visual Studio Online, and yes, even GitHub.

Interested Not Interested




SSIS Tips and Gotchas

Michael Henderson
Level: Intermediate
Track: Data

SQL Server Integration Services (SSIS) is a powerful tool for Extract Transform and Load (ETL) processes. But performance issues and learning curve battles can leave developers in a fit of frustration. This presentation will highlight some tricks and practices that will make one's life easier. The emphasis is on small things one can do so they can work with, and not against SSIS.

Interested Not Interested




Tools in the Cloud for Big Data

Patrick Bailey
Level: Introductory
Track: Data

First, what is Big Data, and why should you care? Second, how can you be the master of Big Data? This talk homes in on the definition and provides an overview of the processing and analytic tools available in the cloud. A demonstration of a workflow using AWS resources will also be provided. This talk will include a portion of a presentation recently given at WMAITP where it was well received.

Interested Not Interested




Understanding Prototypal Inheritance

Guy Royse
Level: Intermediate
Track: Web

One the most misunderstood concepts in JavaScript is prototypal inheritance. Prototypal inheritance is nothing like classical inheritance but is actually quiet easy to grasp once you let go of the bounds of classes and instances. In this session we will explore the nature of JavaScript objects, how they inherit from one another, and why everyone thought this prototype stuff was so hard in the first place. If you want to up your game and really understand how JavaScript inheritance works, come check out this session.

Interested Not Interested




Windows Azure Websites Deep Dive

Dennis Burton
Level: Intermediate
Track: Web

git push azure master Done.

Now it is time to own that process. Know where your files got deployed, inspect your website, and customize the deployment process. Once you understand the build process that occurs on Windows Azure, you can command this process to perform your bidding. Extend Git Deployment to perform actions that are essential to your project but are not native to the Windows Azure toolbox.

"git push azure master" is only the beginning.

Interested Not Interested




Writing Ubiquitous HTML5 Applications

Jody Gustafson
Level: Introductory
Track: Web

HTML5 and CSS3 provide everything you need to create rich interactive applications that can run on a multitude of devices, and look good doing it. In this session we will learn about the most useful HTML5 and CSS3 features that can be used to create single page applications that can run on any device with a modern web browser; from desktop, to tablet, to smart phone. We'll discuss which features work everywhere (and which not so much), strategies to get user input from mouse or touch screen and tips for creating reactive user interfaces that adapt to any screen.

Interested Not Interested




© West Michigan .NET User Group