4/26/18

This week's Wednesday Evening Training: Domoticz, Blockly and the digital Rube Goldberg machine

This week's Wednesday Evening Training was organized as a "klusavond"; an evening in which everyone is working on his own projects and demo's, walkthroughs and explanations are on an ad hoc basis.

Luc Slutter demonstrated us his Domoticz project in which he connected wifi switches operated using Node-RED messaging and Witty Cloud. Domoticz is a Home Automation System that lets you monitor and configure various devices like lights, switches, various sensors/meters like temperature, rain, wind, uv, electra, gas, water and much more. Notifications/Alerts can be sent to any mobile device. Interesting stuff. When his project is finished he will organize a workshop on this topic.


Also, we've taken a look at Blockley. Blockly is a client-side JavaScript library for creating visual block programming languages and editors. Using Blockly, we'll be able to define, e.g. a language for describing User Stories and, based on that language definition, be able to "drag and click"-assemble a User Story. As a next step we would be able to generate some kind of prototype code based on this digitized User Story. I've shown some demo's and have given a code & tool walkthrough on how to create a language using Blockly and how to generate code from this. There is a neat handson lab available on the web, please see the links below.

In our continuing quest for the ultimate IoT killer application we came to the conclusion that we really shouldn't continue this quest but rather concentrate on playing with technology. Inspired by artists' slogan: "l'art pour 'l art" (Art for art's sake, see: https://en.wikipedia.org/wiki/Art_for_art%27s_sake) we should have our own slogan: "Technology for technology's sake". Experimenting, learning and having a lot of fun is a goal on it's own. So building some kind of a digital Rube Goldberg machine seems a nice practical common goal for us. For those who wonder what a Rube Goldberg machine is, it's a "deliberately complex contraption in which a series of devices that perform simple tasks are linked together to produce a domino effect in which activating one device triggers the next device in the sequence" (see: https://en.wikipedia.org/wiki/Rube_Goldberg_machine). Therefore, we decided to define a message format describing some sort of "digital train" that will be able to travel across our various IoT devices and applications.

Each device/application will determine it's own way in which the digital train look like. For example: on a laptop it could look like a normal train, but on the next device on the virtual track, it could look like a procession of elephants and in a Unity3d scenery it would be possible to present it as a row of rolling balls. The first two railway stations: a Java program (thanks Bart van Beek) and a Node-RED flow, have been created in this evenings' session. Trains started at Bart's station, drove to my Pi and drove back to the station, all in one piece and all the digital wagons in the correct order. We will see where all this is going to lead!

Next week's Wednesday Evening Training

In next week's Wednesday Evening Training, we'll get a nice electronics 101 session and we'll be starting a handson lab on creating a programmable LED cube (for a demo, see: https://www.youtube.com/watch?v=S6P3jcxKh-k). Thanks in advance, Aishwarya Dhall and Harrie van der Plas, for preparing this!

Further reading

Want to read more or try yourself? Here are some links...
Get started with Blockly: https://developers.google.com/blockly/
Blockly GitHub sources and some great examples & labs: https://github.com/google/blockly
Blockly demo: https://blockly-demo.appspot.com/static/demos/fixed/index.html
A neat Blockly codelab: https://codelabs.developers.google.com/codelabs/blockly-web/index.html
An intro to Rube Goldberg's machines: https://www.youtube.com/watch?v=__mId8huz1Q
Domoticz home automation: https://domoticz.com/
Domoticz source code: https://github.com/domoticz/domoticz
Using Domoticz with Raspberry Pi: https://www.domoticz.com/wiki/Raspberry_Pi

#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #iot #nodered #raspberrypi #blockly #domoticz #rubegoldbergmachine #nodered #wittycloud


4/25/18

Week 17's Digest: VisualStudio 2018 roadmap, Microservices, Blazor, Razor, WebAssembly, Mono, Azure, nodeJS and patterns on distributed systems

VisualStudio 2018 Roadmap
Microsoft has published the Visual Studio Roadmap. The roadmap lists some of the more notable upcoming features and improvements but is not a complete list of all that is coming to Visual Studio.

More: https://docs.microsoft.com/en-us/visualstudio/productinfo/vs2018-roadmap

How to break a Monolith into Microservices
Migrating a monolithic system to an ecosystem of microservices is an epic journey. Deciding what capability to decouple when and how to migrate incrementally are some of the architectural challenges of decomposing a monolith to an ecosystem of microservices. In this write-up, Martin Fowler shares a few techniques that can guide the delivery teams - developers, architects, technical managers - to make these decomposition decisions along the journey.

More: https://martinfowler.com/articles/break-monolith-into-microservices.html

Blazor, Razor, WebAssembly, and Mono - How the pieces fit together.
Blazor is an exciting new web framework from the ASP.NET team that uses Razor, WebAssembly, and Mono to enable the use of .NET on the client. There’s been a lot of excitement about the possibilities this presents, but there’s also been just as much confusion about how these various parts fit together. In this post Dave Glick attempts to clarify things and show you exactly what each of these technologies do and how they work together to enable .NET in your browser.

More: https://daveaglick.com/posts/blazor-razor-webassembly-and-mono

Get started with Azure for .NET developers
Azure MVP Barry Luijbregts stops by to chat with Scott Hanselman about how .NET developers can easily get started with Azure. They talk about the free e-book: Getting started with Azure for .NET developers and they discuss and show some of the awesome tools that can help you get started with Azure today.

More: https://channel9.msdn.com/Shows/Azure-Friday/Get-started-with-Azure-for-NET-developers

Get started with Azure for .NET developers - Free guide
Get the free e-book: Getting started with Azure for .NET developers.

More: https://aka.ms/azurefordotnetdevs

The Node.js Project Introduces Latest Release Line: Node.js 10.x
Today, the Node.js Project is releasing Node.js 10.0.0. In October 2018, the Node.js 10.x release line will become the new active Long Term Support release line. Node.js 10.x focuses mainly on incremental improvements, and is the first Node.js release line to upgrade to OpenSSL version 1.1.0. The release is equipped with the Google V8 v6.6 JavaScript engine, and includes performance enhancements, error handling improvements, and improved diagnostics around trace events and post mortem. This release line also brings Node.js API (N-API) out of experimental mode. N-API is a stable module API that is independent from changes in V8 allowing modules to run against newer versions of Node.js without recompilation.

More: https://medium.com/@nodejs/the-node-js-project-introduces-latest-release-line-node-js-10-x-bf07abfa9076

Announcing npm@6
In coordination with today’s announcement of Node.js v10, npm@6 is announce as well. This major update to npm includes powerful new security features for every developer who works with open source code.

More: https://medium.com/npm-inc/announcing-npm-6-5d0b1799a905

REST vs CRUD: What you need to know
CRUD is the short form of Create, Read, Update and Delete. It refers to the action of writing data in a storage system like a database where you can create, read, update or delete records. REST is the short form of Representational State Transfer. It is sort of an architecture such as a collection of web pages in a website and how they can be navigated. In this article, both approaches are compared.

More: https://www.freelancinggig.com/blog/2018/04/24/rest-vs-crud-need-know/

Free eBook: Designing Distributed Systems, Patterns and Paradigms for Scalable, Reliable Services.
Distributed systems enable different areas of a business to build specific applications to support their needs and drive insight and innovation. While great for the business, this new normal can result in development inefficiencies when the same systems are reimplemented multiple times. This free e-book provides repeatable, generic patterns, and reusable components to make developing reliable systems easier and more efficient—so you can free your time to focus on core development of your app.

More: https://azure.microsoft.com/en-us/resources/designing-distributed-systems/en-us/?wt.mc_id=AID627576_QSG_SCL_245284


4/18/18

This week's Wednesday Evening Training: Virtual Reality with Unity3d handson labs, the continuing story...

We continued our introduction to Virtual Reality with the Unity cross-platform game engine this week with the bowling alley handson lab. We have studied the techniques used, experimented and played around in our bowling alleys.

It was informative and fun!

Thanks to our VR champion Alexandra Belzon for sharing her knowledge!

And there still remains a lot to explore, so... to be continued...

Next week in the Wednesday Evening Training

Next week, we'll have a "Klusavond" (roughly translated from Dutch: "an evening with a lot handson labs"), with various topics, e.g. Blockly, WebAssembly & NodeJS, Raspberry Pi, Arduino & Witty Cloud.

Want to start with Unity3d?  See the links below

Download Unity3d: https://unity3d.com/get-unity/download
Sample projects, a great way to learn: https://unity3d.com/learn/tutorials
Unity3d User Manual: https://docs.unity3d.com/Manual/index.html
A quick video how to download and install: https://www.youtube.com/watch?v=jkV5X6FWvrM

#werkenbijcapgemini #lifeatcapgemini #capgemini #wednesdayeveningtraining #unity3d #virtualreality #vr







4/12/18

Upcoming events...

wednesday, april 11th, 2018: 18:30h – 21:00h: Wednesday Evening Training: Introduction to Arduino
(Capgemini, Leidsche Rijn, CoZone) A compact practical introduction to IoT with Arduino.
More info: Wednesday Evening Training: Introduction to Arduino

tuesday, april 17th, 2018: NAV Event
(Dutch Dynamics Community, Tiel) Diverse functionele - en technische sessies
More info: NAV Event

wednesday, april 18th, 2018: 18:30h – 21:00h: Wednesday Evening Training: A practical introduction to Virtual Reality, part 3
(Capgemini, Leidsche Rijn, CoZone) Continuing with the Unity cross-platform game engine + hands-on lab (continuation of earlier session, starting with the bowling alley VR-lab)
More info: Wednesday Evening Training: A practical introduction to Virtual Reality, part 3

wednesday, april 18th, 2018: Skynet activated – Building smarter apps with Cognitive Services and Xamarin
(.NET Zuid User group, Helmond) AI is not taking over our planet just yet, but we're getting there! In this session we will look at how we can integrate the Microsoft Cognitive Services into our Xamarin apps.
More info: Skynet activated – Building smarter apps with Cognitive Services and Xamarin

thursday, april 19th, 2018: WAZUG NL 47: Centric
(Nederlandse Microsoft Azure User Group (WAZUG NL), Gouda) Donderdag 19 april is er een bijeenkomst van de Nederlandse Microsoft Azure User Group.
More info: WAZUG NL 47: Centric

thursday, april 19th, 2018: DIWUG Event
(DIWUG, Den Bosch) Deze avond zal Pieter Kops alle nieuwe mogelijkheden van het Nintex platform laten zien en neemt Carl in 't Veld ons mee in de wereld van de Microsoft Graph.
More info: DIWUG Event

saturday, april 21th, 2018: Global Azure Bootcamp - Delta-N Den Haag
(Nederlandse Microsoft Azure User Group (WAZUG NL), Den Haag) In dit Bootcamp leer je hoe je DevOps practices kan toepassen op Microsoft Azure.
More info: Global Azure Bootcamp - Delta-N Den Haag

saturday, april 21th, 2018: Global Azure Bootcamp - Atos Amstelveen
(Nederlandse Microsoft Azure User Group (WAZUG NL), Amstelveen) Traditioneel ligt bij ons de focus op IoT en dus passeren alle mogelijkheden die Microsoft Azure op dit vlak biedt.
More info: Global Azure Bootcamp - Atos Amstelveen

saturday, april 21th, 2018: Global Azure Bootcamp - mStack Vught
(Nederlandse Microsoft Azure User Group (WAZUG NL), Vught) Miscellaneous tpics, e.g. Blockchain as a Service (in Azure).
More info: Global Azure Bootcamp - mStack Vught

tuesday, april 24th, 2018 - thursday, april 26th, 2018: Dynamics Summit EMEA
(Summit EMEA, Dublin (Ireland))
More info: Dynamics Summit EMEA

wednesday, april 25th, 2018: 18:30h – 21:00h: Wednesday Evening Training: klusavond, met o.a. Blockly
(Capgemini, Leidsche Rijn, CoZone)
More info: Wednesday Evening Training: klusavond, met o.a. Blockly

thursday, april 26th, 2018: Specification by example in enterprise-om gevingen en Secure cross-platform App Development met .NET
(DotNed, Apeldoorn)
More info: Specification by example in enterprise-om gevingen en Secure cross-platform App Development met .NET

wednesday, may 2th, 2018: 18:30h – 21:00h: Wednesday Evening Training: klusavond IoT with Raspberry Pi, Arduino, Witty Cloud
(Capgemini, Leidsche Rijn, CoZone)
More info: Wednesday Evening Training: klusavond IoT with Raspberry Pi, Arduino, Witty Cloud

wednesday, may 9th, 2018: 18:30h – 21:00h: Wednesday Evening Training: klusavond IoT with Raspberry Pi, Arduino, Witty Cloud
(Capgemini, Leidsche Rijn, CoZone)
More info: Wednesday Evening Training: klusavond IoT with Raspberry Pi, Arduino, Witty Cloud

wednesday, may 9th, 2018: AdvantageYou: UMAX Foundation (Microsoft Dynamics AX)
(Capgemini, Utrecht-Leidsche Rijn)
More info: AdvantageYou: UMAX Foundation (Microsoft Dynamics AX)

wednesday, may 16th, 2018: 18:30h – 21:00h: Wednesday Evening Training: Using PowerShell: a practical introduction
(Capgemini, Leidsche Rijn, CoZone)
More info: Wednesday Evening Training: Using PowerShell: a practical introduction

saturday, may 23th, 2018: Global Azure Bootcamp - Betabit Utrecht
(Nederlandse Microsoft Azure User Group (WAZUG NL), Utrecht) There’s a lot going on about Serverless. This Global Azure Bootcamp we’ll dive deep into everything Serverless on Azure. You will learn how to work with relative simple solutions like Microsoft Flow and Azure Logic Apps.
More info: Global Azure Bootcamp - Betabit Utrecht

thursday, june 21, 2018: AdvantageYou: Introduction to Business Applications and Languages (Microsoft) (part 1 of 2)
(Capgemini, Amsterdam-Hullenbergweg)
More info: AdvantageYou: Introduction to Business Applications and Languages (Microsoft) (part 1 of 2)

wednesday, may 23th, 2018: 18:30h – 21:00h: Wednesday Evening Training: Infrastructure basics, part 2
(Capgemini, Leidsche Rijn, CoZone)
More info: Wednesday Evening Training: Infrastructure basics, part 2

thursday april 26th, 2018: Specification by example in enterprise-om gevingen en Secure cross-platform App Development met .NET
(DotNed, Apeldoorn)
More info: Specification by example in enterprise-om gevingen en Secure cross-platform App Development met .NET

thursday, june 28, 2018: AdvantageYou: Introduction to Business Applications and Languages (Microsoft) (part 2 of 2)
(Capgemini, Amsterdam-Hullenbergweg)
More info: AdvantageYou: Introduction to Business Applications and Languages (Microsoft) (part 2 of 2)

thursday, june 28th, 2018: Aan de slag met Microsoft Azure
(Big Data, Rotterdam)
More info: Aan de slag met Microsoft Azure

wednesday, may 30th, 2018: 18:30h – 21:00h: Wednesday Evening Training: building .NET web apps using WebAssembly that run in the browser with Blazor
(Capgemini, Leidsche Rijn, CoZone)
More info: Wednesday Evening Training: building .NET web apps using WebAssembly that run in the browser with Blazor

sunday, july 15th, 2018 - thursday, july 19th, 2018: Microsoft Inspire
(Microsoft, Las Vegas, Nevada (US))
More info: Microsoft Inspire

monday, september 24th - friday, 28th, 2018: Microsoft Ignite
(Microsoft, Orlando, Florida (US))
More info: Microsoft Ignite


4/11/18

This week's Wednesday Evening Training: a cool introduction to Arduino

In the past year, we played around a lot with IoT using the Raspberry Pi and Witty Cloud (ESP8266). Arduino is an alternative to these machines, also used to automate something in your house like your lights or implementing cool gadgets.

One of our IoT champions, Aishwarya Dhall, offered us a great opportunity to dive into the Arduino technology and play around with handson labs. She also told us of the exciting IoT projects she's done with Capgemini.

Also, a welcome to our special guest tonight: Harrie van der Plas of UWV.

We have learned to control a LED strip, and connected a variety of sensors so that the color and number of lights reflected the measurements. This time we programmed in good old C and C++.
A lot to do in a few hours. Hence we decided to continue the labs in our next IoT Wednesday Evening Training, that now encompasses Raspberry Pi, Witty Cloud and Arduino technology. One of the things we should also definitely do: a 101 on electronics (aka workshop-on-how-to-keep-your-device-from-a-major-meltdown).

So... to be continued!

Next week, we'll continue our dive into Unity3D with our bowling alley VR-lab.

Try it yourself? Here are some pointers...

https://en.wikipedia.org/wiki/Arduino
The official site: https://www.arduino.cc/
Getting started: https://www.arduino.cc/en/Guide/HomePage
Development tools: https://www.arduino.cc/en/Main/Software
Basic labs & explanation: https://www.arduino.cc/en/Tutorial/HomePage-0007
Keeping up to date: https://twitter.com/arduino
A nice intro video (in only 8 minutes): https://www.youtube.com/watch?v=BtLwoNJ6klE


Want to take a look at our previous Wednesday Evening Trainings?

Take a look here at my previous posts on this blog or at LinkedIn here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining

#werkenbijcapgemini #lifeatcapgemini #capgemini #wednesdayeveningtraining #iot #arduino #softwareengineering














4/5/18

This week's Wednesday Evening Training: Infrastructure basics: What you should know

As a software engineer and solution architect, nowadays you'll need quite some basic knowledge on infrastructure. In this week's Wednesday Evening Training, we discussed some of the topics we often encounter in projects:
  • Proxy, reverse proxy
  • Qradar, ldap varianten, sniffers, log & monitor
  • How to "read" an infrastructure model diagram efficiently
  • Zones, DMZ
  • Trusts
  • How IPv6 AnyCast works
  • Virtualization, with Docker as an example
  • Securing (web)servers
  • DevOps basics
  • Azure Resource Management
  • Desired State Configuration
  • Puppet
  • PowerShell basics
Having three of our leading infra specialists in our midst, we got the opportunity of having introductions, a Q&A session and lively discussions to expand our knowledge on infrastructure.

Thanks to our infra champions Rene Scholten, Bas Wienen and Gert-Jan van Raamsdonk!

With this amount of topics, one wednesday evening was not sufficient. We therefore decided to plan some more workshops, so... to be continued!

Next week, we'll dive into Arduino (like the Raspberry Pi, but in some ways different).

#werkenbijcapgemini #lifeatcapgemini #capgemini #wednesdayeveningtraining #devops #microsoft #infrastructure #softwareengineering #patterns #puppet #powershell #azure #security #webtechnology #agiletraining #agile #sysop





4/4/18