5/30/18

This week's Wednesday Evening Training: Infrastructure basics, part 2: What you should know about web servers

In this Wednesday Evening Training, we continued our exploration of basic infrastructure. This time, we explored web server technology. In this, a special welcome for our French colleague Théo Berthin who visited our Dutch site.

Apache, IIS, Tomcat, all are fine examples of webservers. But how do they work, from a technical point of view? In this session we have taken a look at the whole process of accepting and processing requests and generating responses. Which components are involved, how do they interact and how has the web server technology involved the past decade(s)?
Bart van Beek and I had prepared a presentation and some demo's / walkthroughs for this.

After a deep dive into the http protocol, requests and responses, we first discussed IIS. IIS, Internet Information Services, is the web server technology of Microsoft. We have discussed processing requests, the request pipeline, process handling with application pools and web workers, how IIS supports .NET and .NET Core and how .NET Core applications are served using other web server platforms on non-Microsoft Operating Systems.

We enjoyed demo's / walkthroughs on Spring and Tomcat web server, and Microsoft's IIS and had plenty of opportunity for lively discussions on security, scaling and other technical topics. Especially when NodeJS (as a web server) came up, the discussion seemed to intensify ;).



As a bonus, Bart van Beek has given us a recap on the Open Systems Interconnection model (OSI). This model is a conceptual model that characterizes and standardizes the communication functions of a telecommunication or computing system without regard to its underlying internal structure and technology. http, tcp/ip can be placed in this model.
Also this time, Bart managed to largely fill the room-wide whiteboard!



There definitely were plenty of questions left at the end of this week's Wednesday Evening Training. Also, the community would like to experiment with both platforms in handson labs. In the next Wednesday Evening Training on infra we'll definitely include labs for both IIS and Spring/Tomcat and provide some answers on the remaining questions.

To be continued!



Further reading

Do you want to read more on web server technology? Here are some links...

OSI model:   https://en.wikipedia.org/wiki/OSI_model
Web server (rather obvious, but a nice place to start anyway):https://en.wikipedia.org/wiki/Web_server
IIS official site (obvious as well): https://www.iis.net
More on ASP.NET Core Running under IIS: https://weblog.west-wind.com/posts/2017/Mar/16/More-on-ASPNET-Core-Running-under-IIS
Serving Web Content with Spring MVC: https://spring.io/guides/gs/serving-web-content/
Apache Tomcat (the place to start): http://tomcat.apache.org/
NodeJS: https://www.w3schools.com/nodejs/nodejs_http.asp

Past Wednesday Evening Trainings

You'll find post of previous sessions here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining

Next week

In next week's Wednesday Evening Training, we'll be taking a deep dive in infrastructure a well. In this "how stuff works" session we will discuss various infra topics from a technical point of view.


#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #iis #tomcat #spring #microsoft #webserver #java #nodejs #dotnet #dotnetcore #dotnetcore #kestrel #httpsys

5/23/18

This week's Wednesday Evening Training: building .NET web apps using WebAssembly that run in the browser with Blazor

This Wednesday Evening Training, we have continued our exploration of WebAssembly. In a previous sessions, we learned what WebAssembly is and how we can use it. Now, we continued our exploration using Blazor.

So what is Blazor anyway?

Blazor is an experimental .NET web framework using C#/Razor and HTML that runs in the browser via WebAssembly
Blazor uses only the latest web standards. No plugins or transpilation needed. It runs in the browser on a real .NET runtime (Mono) implemented in WebAssembly that executes normal .NET assemblies. It works in older browsers too by falling back to an asm.js based .NET runtime.
(source: https://github.com/aspnet/Blazor)

Some of us have already played around with WebAssembly and Blazor. Hans Harts and I have given an introduction and Hans shared his prototypes with us. Thanks Hans Harts, for this! There was a plenty of room for code walkthroughs, Q&A and lively discussion on the technology, possibilities and future of WebAssembly and Blazor. Since Blazor is build upon .NET Core and Razor, these topics were discussed extensively as well.


Handson labs

We also had time for handson activities. Hans and I had collected some handson lab and instruction material that we shared in the group. For starters: building a simple "Hello world" app and as a next step, a lab for building a simple Tetris-like game engine that runs in the browser. See the links below for the labs & documentation.
WebAssembly is a relative recent technology, but hopes are high that this technology will have a big impact on how we implement web applications, and even mobile apps.

There will certainly be a sequel to this session... to be continued!

Further reading

Do you want to read more on WebAssembly and Blazor? Here are some links...

Explanation and examples:
Blazor: a technical introduction - Deeper technical details about Blazor: http://blog.stevensanderson.com/2018/02/06/blazor-intro/
A new experiment: Browser-based web apps with .NET and Blazor: https://blogs.msdn.microsoft.com/webdev/2018/02/06/blazor-experimental-project/
Learn Blazor: https://learn-blazor.com/
Blazor - Samples: https://github.com/software-architects/learn-blazor/tree/master/samples
GitHub aspnet/Blazor - Blazor: https://github.com/aspnet/Blazor

Labs:
BlazorBricks - WebAssembly with Blazor: https://www.codeproject.com/Articles/1241210/WebAssembly-with-Blazor
BlazorBricks - WebAssembly with Blazor - Online demo: https://marcelooliveira.github.io/

Get started building .NET web apps that run in the browser with Blazor: https://blogs.msdn.microsoft.com/webdev/2018/03/22/get-started-building-net-web-apps-in-the-browser-with-blazor/

Past Wednesday Evening Trainings

You'll find post of previous sessions here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining

Next week

In next week's Wednesday Evening Training, we'll be taking a deep dive in Web servers. In this "how stuff works" session we will discuss the technology of several web servers, like Tomcat, IIS, Kestrel and HTTP.sys. In such sessions, we usually use the entire wall-filling whiteboard sketching :). We'll take a look at the platform architecture, the way in which requests are processed, security, scaling, threading et cetera. Bart van Beek and I will prepare this session.



#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #webassembly #dotnetcore #blazor #microsoft #webdevelopment #csharp #visualstudio

5/17/18

This week's Wednesday Evening Training: a practical introduction to PowerShell

This Wednesday Evening Training we got a nice practical introduction in PowerShell. There was a lot of examples, handson labs and plenty of room for code walkthroughs, Q&A and discussion.

Why PowerShell?

Windows PowerShell is a combination of a command shell and scripting environment. It's quite useful for automating repetitive tasks, scheduling tasks and configuring components and services. This is indispensable for the modern software engineer, who also gets more and more tasks with system management tasks.
Even for Linux and Mac engineers PowerShell may be interesing: the release of PowerShell Core last January PowerShell runs on both Linux and Mac.

Thanks to our colleagues Niloufar Markazi and Carl in 't Veld who prepared and presented this Wednesday Evening Training!


 

Further reading

Do you want to read more on PowerShell? Here are some links...



Past Wednesday Evening Trainings

You'll find post of previous sessions here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining


Next week

In next week's Wednesday Evening Training, we'll be taking a look at Blazor. Using the Blazor platform, .NET web apps using WebAssembly can be build that run in the browser. In my humble opinion, WebAssembly will change the way in which we build applications. Using a common runtime code standard, it will be a lot easier to create, distributed and run distributed web applications. Until now we were stuck with patchwork of languages, frames and technology stacks. WebAssembly could change this fundamentally. There will be a lot to discuss, and Hans Harts and I  will be presenting some nice Blazor / WebAssembly handson labs to our colleagues to explore.


#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #powershell #devops #scripting #microsoft



 


5/16/18

Last week's Wednesday Evening Training: Building a programmable LED cube

In last week's Wednesday Evening Training (apologies for the delayed publication of this post) we learned how to build a programmable LED cube and program it with Arduino.


So, what is a LED cube anyway?
A LED cube is a cube constructed with LED's. It can have any size from 3x3x3 to 10x10x10. You can buy such a cube but building one yourself is more fun. However, behold: a 10x10x10 cube consists of 1000 LED's. That takes quite a long time soldering. Therefore we restricted ourselves to building one of 3x3x3 LED's. Programmed by an IoT device like Arduino, a LED cube is a really cool device that enables you to see in three dimensions and get some depth perception. You can create some nice 3d animations with it.
For a demo, see: https://www.youtube.com/watch?v=S6P3jcxKh-k

Aishwarya Dhall, one of our IoT champions, arranged the materials and gave us instructions how to proceed.
Also thanks to Harrie van der Plas (UWV), for helping!




In our continuing quest for the ultimate Rube Goldberg machine (see my post http://hansrontheweb.blogspot.in/2018/04/this-weeks-wednesday-evening-training_26.html) we could use our LED cubes to interact with eachother, to their environment and to other IoT applications. We will see where all this is going to lead!


This week's Wednesday Evening Training
In this week's Wednesday Evening Training (today), we'll get a nice session on PowerShell. Thanks in advance, Niloufar Markazi and Carl in ‘t Veld, for preparing this!


Further reading
Want to read more on LED cubes or try buildin one yourself? Here are some links...

Instructions to some nice handson labs:
http://www.instructables.com/id/3D-LED-Cube/
http://www.pyroelectro.com/projects/8x8x8_led_cube/

And, if you can spare the time for some more soldering: some giant LED devices:
https://www.youtube.com/watch?v=7toXDJZfxug
https://www.youtube.com/watch?v=dVHP7Nhsn4E


#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #iot #ledcube








5/3/18

This week's Wednesday Evening Training: a "klusavond" with Arduino and an electronics 101

A quick refresher training in the field of electronics tonight; a real electronics 101 by Aishwarya Dhall and Harrie van der Plas.

Components, current vs voltage, measuring, a bit of arithmetic and building some electronics circuits ourselves tonight. Arduino is best used with a breadboard. This is a handy board on which you can build your electronics circuit quickly and easily. We also learned to calculate and measure voltage and currents in electronic circuits. Very handy when preventing your Arduino's ports from having a meltdown. It's only a couple of Volts, I know, but still...

Thanks Aish and Harrie!





Do you want to know more on electronics? Here are some pointers...

Arduino Uno Tutorial Basic circuit breadboarding
A simple guide to electronic components
Arduino Lesson 2: Multimeter & Collin's Lab: Multimeters





Next week's Wednesday Evening Training

In next week's Wednesday Evening Training, we'll start creating a programmable LED cube. Thats a bunch of LED lights, put together in a cube. Since each LED can be put on and off inividually, you can create awsome effects. We may even be doing a bit of soldering!

For an example of a LED cube, see: 8x8x8 LED cube with Arduino Uno on YouTube and below.

Post on previous Wednesday Evening Trainings on LinkedIn.



#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #iot #arduino #raspberrypi #electronics101

5/1/18

Week 18's Digest: GraphQL, Windows 10 update, Microsoft Forms, .Net Framework 4.7.2, Microservices Monitoring and Selenium

GraphQL with ASP.NET Core (Part- I : Hello World)
GraphQL with ASP.NET Core, a compact intro in 5 parts. GraphQL provides a declarative[1] way in which you can fetch data from the server.The articles show how you can integrate GraphQL with ASP.NET Core it and use it as a query language for your API. As a basis, GraphQL for .NET (http://graphql-dotnet.github.io) s used. Part I: Hello world.

More: http://fiyazhasan.me/graphql-with-asp-net-core/

GraphQL with ASP.NET Core (Part- II : Middleware)
GraphQL with ASP.NET Core Part- II: Middleware

More: http://fiyazhasan.me/graphql-with-asp-net-core-part-ii-middleware/

GraphQL with ASP.NET Core (Part- III : Dependency Injection)
GraphQL with ASP.NET Core Part- III: Dependency Injection

More: http://fiyazhasan.me/graphql-with-asp-net-core-part-iii-dependency-injection/

GraphQL with ASP.NET Core (Part- IV : GraphiQL - An in-browser IDE)
GraphQL with ASP.NET Core Part- IV: GraphiQL - An in-browser IDE

More: http://fiyazhasan.me/graphql-with-asp-net-core-part-iv-graphiql-an-in-browser-ide/

GraphQL with ASP.NET Core (Part- V : Fields, Arguments, Variables)
GraphQL with ASP.NET Core Part- V: Fields, Arguments, Variables

More: http://fiyazhasan.me/graphql-with-asp-net-core-part-v-fields-arguments-variables/

Here Are the Features You Should Care About in Microsoft's Windows 10 April 2018 Update
A lot of new features in Windows 10: e.g. Near Share, Focus Assist, Timeline, Microsoft Edge webbrowser, Cortana and the Game Bar.

More: https://lifehacker.com/here-are-the-features-you-should-care-about-in-microsof-1825642722

Microsoft Forms is now available for the enterprise
With Microsoft Forms, your employees can easily solicit client input, measure customer satisfaction, and organize team events, within minutes. The app is simple to use and works on any web browser, so it can be accessed from anywhere, anytime. With real time responses and automatic charts built in, Microsoft Forms makes it easy to understand the data right away.

More: https://mspoweruser.com/microsoft-forms-is-now-available-for-the-enterprise/

Microsoft .Net Framework 4.7.2 released
Microsoft .Net Framework 4.7.2 is a new version of Microsoft's .Net Framework. The new version is integrated in the Windows 10 April 2018 Update release.

More: https://www.ghacks.net/2018/05/01/microsoft-net-framework-4-7-2-released/

Analyze This: Understand Microservices Monitoring
As the number of microservices grow and the complexity of the processes increases, getting visibility into these distributed workflows becomes difficult. This article describes some of the challenges and solutions.

More: https://thenewstack.io/analyze-this-understand-microservices-monitoring/

Web Browser Automation with Selenium using Node.js
Selenium is a suite of tools that enable the automation of web browsers across multiple platforms. The article describes how to use one of Selenium's components, i.e. WebDriver to automate a given use case.

More: https://www.codeproject.com/Articles/1241573/Web-Browser-Automation-with-Selenium-using-Node-js