Strange Loop and NCDevCon

Last week I had a pleasure to speak at Strange Loop and NCDevCon.

Strange Loop

At the Strange Loop I presented Aurelia – the next generation JavaScript Framework:

Strange Loop is an intersection of everything: from Researchers, through programmers maintaining 20 years old systems that still works, Web Developers using the latest Frameworks (like React), Web Developers using mature (AKA ‘old’) frameworks (like Spring), DevOps deploying with Docker, large scale distributed systems architects, to Common Lisp fans. The most important thing is – most of the people at this conference are real passionate programmers. I really recommend you to check out Sam Aaron’s session: Beating Threads – live coding with real time. Sam is a researcher who created programming environment that allows you to compose music by writing code. Something that can be used today, which is cool, and he presented it with such a passion that cannot be described by words.

All videos from Strange Loop are available on their YouTube channel.

If you think that now everyone is creating Web Apps and Mobile Apps – go to Strange Loop! You will see a different World.

The Strange Loop 2015


I’ve been at NCDevCon only for the day two, because of overlap with Strange Loop, and I presented how TypeScript helps to build large scale applications. Unfortunately, there is no video from my session, because just before my talk there was a power outage. I, and other speakers (if they still had battery), had to present from laptops while people were looking from behind our shoulders.

NCDevCon 2015

I gave similar talk earlier this year at .NET Developers meetup in Redmond. You can find video and slides in this blog post.

At NCDevCon I’ve seen only 3 sessions, because 1 hour after my session, in addition to power outage, the fire alarm started beeping, and the rest of the conference was cancelled. Videos from day 1, and maybe some from day 2 (if speakers record them at home) will be available at

This conference was more down to Earth for me, as everybody was talking about Web and Mobile. You can find more detailed overview in this blog post.

On my way back from Raleigh, NC (where NCDevCon took place) I had connection flight in Minneapolis, MN. This gave me an opportunity to see the airport of XXI century: power outlets everywhere, free WiFi, and iPads for free public use (utilized also for ordering food at restaurants).

Minneapolis airport
Minneapolis airport
Minneapolis airport
Minneapolis airport

Seattle Code Camp: Aurelia and TDD with TypeScript, AngularJS, and Node.js

Last Saturday I had a pleasure to speak at Seattle Code Camp. It was an amazing event, which was free. There were over 50 talks, 500 attendees, and raffle with many prizes, e.g., Microsoft Surface Pro 3!

Seattle Code Camp - Aurelia

Aurelia – the Next Generation JavaScript Framework you will love

Aurelia is a next generation JavaScript client framework that leverages simple conventions to empower your creativity created by Rob Eisenberg, creator of Durandal, who left Angular 2 team to create cleaner and simpler JavaScript framework of tomorrow written in ECMAScript 7!

In this talk I am showing how to get started with Aurelia, and how ES7 (aka ES 2016), JSPM, System.js, babel, and gulp can make you development amazingly fast, smooth, and enjoyable.




You can find demo app I created during presentation on github.

TDD with TypeScript, AngularJS, and Node.js

TypeScript helps to develop and maintain large web applications. Strong typing prevents from introducing bugs, but it doesn’t mean we can give up on testing. In this talk I showed how we can use TDD for building web applications with TypeScript on the client side (with AngularJS) and server side (with NodeJS). I showed a few JavaScript testing frameworks (mocha, Jasmine), and showed a few tools that can make Web Developer’s life easier (npm, gulp, bower, tsd, karma, protractor).




You can find demo app I created during presentation on github.

More is coming

I will be speaking about Aurelia, and TDD with TypeScript, AngularJS, and Node.js at various events this fall. You can find more details in my speaking page.

dotNetConfPL 2014: summary and sessions recap

The second edition of dotNetConfPL was pretty successful. I am very pleased with all sessions, and speakers performance.

All sessions went smooth, but one. Barbara Fusinska could not run screenshare on Google Hangouts. Her session was recorded later and is already available. The only way to inform other about the problems during the conference was through JabbR or displaying Blue Screen of Death instead of her session. Adding something on website would require us to redeploy. We didn’t want to do that. For the next year we will prepare some placeholder for information, which can be set dynamically.

This year we had one non-technical talk: Talent for $2. You would be tempted to! I think this talk has great potential. It includes a lot of pointers and tips. I encourage you to look at it. I watched Simon Sinek’s TED talk: “How great leaders inspire action”, and I took Clifton’s test to discover my talents. My 5 talents are:

  • Learner
  • Focus
  • Responsibility
  • Deliberative
  • Analytical

I am very interested if some of you did this test, and what results did you get. Share it in comments!

The most popular feedback about the conference is: “We need it more often than once a year”. We will try to figure out something 😉

Check all sessions recap:

Maciej Aniserowicz – Unit testing in practice, vol 2

1:11 – agenda
1:55 – unit tests vs integration tests
4:14 – DB testing: “in memory”
7:14 – DB create script
7:50 – DEMO start
9:25 – tests outline
11:40 – creating InMemoryDbFixture (helper class for tests)
13:40 – tests implementation
17:00 – first method implementation (to pass test)
18:29 – installing packages: autofixture, xunit.extensions, autofixture.xunit (for random string generation)
19:30 – applying installed packages for automatic string generation
21:15 – second method implementation (to pass test)
24:20 – modifying InMemoryDbFixture class to respect join on tables
26:12 – pros and cons for testing with real DB
27:50 – separating tests for mock DB, and real DB
30:09 – script for drop everything in DB
32:15 – creating fixture for running db scripts (drop_everything.sql and install.sql)
34:50 – baking fixture into test class and implementing tests for real DB
42:00 – turning off NCrunch ability to run tests simultaneously
43:40 – summary
45:10 – Q&A

Filip Wojcieszyn – Everything you want to know about Roslyn

1:55 – C# compiler today
3:20 – compiler as a service
4:05 – Roslyn influence
6:45 – Roslyn APIs
7:58 – Tools required for Roslyn
10:25 – compiler as a service DEMO
17:17 – Roslyn for code analysis (static, semantic)
22:24 – code analysis with Roslyn DEMO (syntax visualizer)
26:21 – sanity check DEMO
31:40 – SyntaxRewriter DEMO
35:55 – Roslyn APIs (one more time)
38:40 – building tools for Visual Studio with Roslyn SDK
39:25 – Diagnostic + Code fix DEMO
46:57 – Custom C# dialect DEMO
50:30 – Examples of Roslyn in Real World
52:00 – Q&A

Barbara Fusinska – Aspect-Oriented Programming (AOP)

1:37 – Agenda
3:29 – History of AOP
4:57 – Cross cutting concerns
8:50 – What the heck are aspects?
13:01 – demo app presentation
15:23 – Some benefits of AOP
16:15 – DEMO: adding functionality to existing method of demo app
23:55 – DEMO: LoggingAspect
27:00 – DEMO: DefensiveProgrammingAspect
28:23 – DEMO: TransactionAspect
30:00 – Where you’ve been using AOP without knowing it
33:15 – DEMO: communication with external services and cleaning code with aspects
42:02 – Testing aspects usage
46:10 – DEMO: How to test aspects and possible problems

Jakub Gutkowski – Server Side or/and Client Side MVC ???

0:45 – Agenda
1:06 – Client Side vs Server Side
6:22 – SPA (Single Page Applications)
14:00 – Problems with SPA
16:58 – Solutions?
19:20 – DEMO: SPA inside not SPA
23:39 – DEMO: SPA without server
26:20 – JavaScript everywhere? JS approach by Twitter, Basecamp, AirBnB, Instagram, Facebook
34:20 – How we can/should use JavaScript
35:13 – DEMO: Push State
40:53 – summary
41:22 – Q&A

Patryk Góralowski – Talent for $2. You would be tempted to!

3:39 – how to answer a question: who you are?
6:05 – development
6:59 – self development
7:58 – our personal resources: body, mind, emotions, belifies
14:00 – task 1: why your are here today? give 10 reasons, select 3 most important, and ask why each of them
19:30 – expected result from task 1
21:02 – about Simon Sinek (author of the process given in task 1) and his TED talk: How great leaders inspire action
26:35 – philosophy of our self development
27:35 – about Mike Markkula, and philosophy of Apple
29:34 – #1: empathy (understand customer needs better than others)
30:32 – task 2: write down your needs
30:53 – #2: focus (eliminate all irrelevances)
31:29 – task 3: eliminate all irrelevances at your work
33:10 – #3: impute desired characteristics
35:55 – task 4: identify your “imputed characteristics”
37:27 – invest $2 to discover your talent ($9.99 for 5 talents) with Gallup Strengths Center
39:55 – what means talent by Gallup Institute
42:06 – strength = talent + knowledge + skills
43:33 – Clifton’s test
45:05 – 5 talents discovered by Patryk
49:22 – summary
50:46 – recommended books
51:45 – Q&A

Maciej Grabek – Business Requirements in the form of a code: a few words about BDD with SpecFlow

1:25 – Agenda
2:20 – DEMO #0: unit tests – how we do that, and challenges in interaction with business people
5:03 – business requirements and unit tests (BDD)
7:02 – Applying BDD (tools)
9:25 – DEMO #1: simple example (translating behavior description to C# code)
16:53 – DEMO #2: parameters
18:45 – DEMO #3: scopes
23:05 – DEMO #4: parameters table
35:45 – DEMO #5: “before” and “after”
42:19 – summary
46:36 – Q&A

Michał Łusiak – WTF # – what is F # and why you should care

0:41 – Functional programming
4:38 – F# language overview
10:41 – DEMO: variables
14:07 – DEMO: lists
15:59 – DEMO: functions
19:53 – DEMO: pattern matching
21:23 – DEMO: tuples
22:20 – DEMO: record types
23:04 – DEMO: union types
24:01 – DEMO: printing
25:00 – DEMO: using .NET libraries from F#
25:55 – DEMO: unit of measures (“numbers with units” variables)
28:21 – DEMO: type provides (providing types for compiler dynamically)
31:12 – Why use F#
33:18 – Learning resources
38:05 – Recommended F# talks
39:20 – Recommended books
39:58 – summary
40:10 – Q&A

dotNetConfPL – the second edition

dotNetConfPL - 2nd edition

The first edition of dotNetConfPL was pretty successful, and together with Michal and Pawel we decided to do a second edition. This conference is in Polish language, which makes it unique, because there are no other online conference like that in Poland.

This year talks looks promising as well. Maciej Aniserowicz prepared second part of his talk about unit tests from the last year, Filip Wojcieszyn will talk about the hottest thing in this year: Roslyn. Jakub Gutkowski prepared a talk about cooperation of MVC in client and server side. Maciej Grabek proposed a talk about BDD, which is getting more and more popular in .NET World. Michał Łusiak (from tretton37) will talk about F#. This year, we have a women speaker! Barbara Fusińska will talk about Aspect-Oriented Programming. Another new thing is a non-technical talk: Patryk Góralowski prepared a talk with mysterious title: Talent for 2 dolars!

I really can’t wait! All talks sounds very interesting. Remember to buy pizza and beer, and join us on On Air, this Saturday, October 18, 3PM (UTC+01:00, Warsaw Time Zone).

Find out more about talks and speakers.

This year we have 6 ReSharper licenses, and 3 NCrunch licenses to give away. Additionally, Filip Wojcieszyn volunteered to give away one copy of his book: ASP.NET Web API 2 Recipes: A Problem-Solution Approach. To join the raffle, register your attendance!

See you at the conference!

Recommended Build 2014 sessions

build 2014

Finally, I had time to watch Build 2014 sessions. Here are the best I have seen.

Thinking for programmers (Leslie Lamport)

This session is intersection of Computer Science and programming. It will really makes you rethink your approach for solving problems and writing code. One of many interesting thoughts mentioned by Leslie Lamport was a role of specification. It is hard to disagree that in case of very complex code, need for change, after a few months or years, or by other programmer, will cause rewriting code for scratch if we do not have specification. I am recommending this session, because it is not demo of some new Microsoft tool/technology, but a solid piece of knowledge. It is not session for everybody, some may not like it. I love it!

Windows and the Internet of Things (Steve Teixeira)

This session is about writing Software for devices. But not only for PC, tablet or Phone. Also for embedded devices, or customized devices running on Windows Embedded. It is an overview of the future. Not only in Windows World, but at all. Steve Teixeira shows cool demos. E.g. controlling traffic lights using the Phone. He presents Intel Galileo, board which you can get for free by signing up! Only limited number available.

Building Azure Web Sites with Visual Studio Online “Monaco” (Chris Dias)

Visual Studio in Web Browser? I’m in! I am very impressed with progress which is being made in online version of Visual Studio. In addition to simple edits, there is a command line access, intellisense, git integration, side by side file comparison and more.

What’s New for ASP.NET and Web in Visual Studio 2013 Update 2 and Beyond (Scott Hanselman and Scott Hunter)

This is an update of ASP.NET features and future directions. Now, it really starts looking like LEGO pieces. If you are Web Developer, definitely worth to see.

Modern C++: What You Need to Know (Herb Sutter)

This talk is an overview of new features of C++. There is also 10-20 minutes about performance. Recommended if you are not familiar with new C++ features yet. For me, this session could be shorter, and some things could be skipped.

The Future of C# [and VB] (Dustin Campbel and Mads Torgersen)

First part (presented by Dustin Campbel) is about Roslyn. There is demo how custom code diagnostics can be created. Second part (presented by Mads Torgersen) is about new language features. My observation is that they started adding weird things to the language syntax. More over, Mads talk also about Visual Basic (for ~5 mins), which – as he claims – has a future as well. Mads already had similar session on other conferences (dotNetConf, NDC).

Go Mobile with C# and Xamarin (Miguel de Icaza)

Good introduction to Xamarin if you are not familiar with it. There is general overview and philosophy explained. There is also short demo. Good point to get started with Xamarin!

TypeScript (Anders Hejlsberg)

Anders Hejlsberg announced TypeScript 1.0. This session is an overview of TypeScript presented in a very solid way. Timestamped draft notes of the entire talk can be found here.

Developing Neural Networks Using Visual Studio (James McCaffrey)

This session is worth to see at least for first 8 minutes when James is summarizing entire build conference 🙂 The main content is good intro to Neural Networks. It awakened my desire to learn more about Artificial Intelligence and Machine Learning.

I’ve seen also: Building a Large Scale JavaScript Application in TypeScript (only slides, no code…), Building a Single Page Application with ASP.NET and AngularJS (I am not a fan of pasting large chunks of code during demos), Avoiding Cloud Fail: Learning from the Mistakes of Azure with Mark Russinovich (advanced, useful if you use Azure intensively), Building Modern Web Applications with Visual Studio and Web Essentials (just update in new Web Essentials features).