Showing posts with label softwareengineering. Show all posts
Showing posts with label softwareengineering. Show all posts

12/11/19

The Wednesday Evening Training: a recap of 2019 and quick preview of 2020

Also this year we organized around 50 sessions on diverse technical topics. We learned a lot and we had a lot of fun...



On 3D graphics... Quincy Jacos and Remko Haagsma organised a number of sessions covering various techniques in computer graphics like WebGL, Unity 3D, Blender and of course the math involved. We dealt with one topic per evening and had also have time to work on projects together or alone. At the end of 2019, we mainly discussed topics that were close to the basics. The sessions that have been held so far were about the layout of the track and the Unity game engine.

On Quantum Computing... Julian van Velzen organised sessions in which the basics of Quantum Computing were discussed: the physics, gates, programming and platforms (IBM, Microsoft) involved.

On architecture... Amir Westhoff, Fred van Nimwegen and Hans van Rijs discussed ways in which architecture can be modelled, stored & queried and visualized. Some of the topics: Neo4J (graph databases) and Apache Jena for storing and querying models, patterns, modelling in Archimate/Archi and UML and model visualization prototypes in threejs (2D/3D).

On IoT and Microcontrollers... Aishwarya Dhall organised sessions on Arduino, Raspberry Pi. In various labs we experimented with various sensors, made our own LED cube and learned to implement basic home automation solutions using IFTT (If This Then That) and Smart Home Devices like Alexia.

We discussed various topics on software engineering and specific technology stacks like C#, Python, Code Reviewing & SonarQube, ASP.NET Core, WebSockets and SignalR.

On mobile we had workshops on Android Studio, Ionic4 and Progressive Web Apps (PWA).

There was also room for Frontend technologies like Angular, Web Components, FlexBox and Vanilla Frontend Architectures (that is: building the frontend without frameworks).

On security, we had sessions on Encryption and Social Engineering in which we discovered that you don't need to use advanced technology to hack an organisation.

Various platforms were discussed, like Kafka, Docker, Kubernetes and DevonFW.

And in our "klusavonden" (which translates from Dutch as "an educational and sociable evening full of experiments on technology") we worked on our projects on various topics, gave demos and held discussed on the topics involved.

Thanks to all colleagues who contributed to the sessions by sharing their knowledge, experience, prototypes, demos and participating in the inspiring discussions!


There remains a lot to learn in our Wednesday Evening Training... a quick preview on 2020


In 2020, we'll continue our tracks on Graphics, IoT & Micro controllers, Architecture and our Combi klusavonden. And more topics have been put on the agenda... and there is still room for more.

The agenda for the sessions in January and February 2020 will include:

  • Combi IoT klusavond: Squat for coffee (Arduino and sensors)
  • Practical 3D Graphics & Programming: Practical 3D Graphics & Programming: Unity movement
  • A practical introduction to the Kotlin cross-platform programming language
  • A practical introduction to the ReactJS framework
  • Combi IoT klusavond: Automate your house using IFTTT.com (If-This-Then-That)
  • Practical 3D Graphics & Programming: Blender modeling
  • Architecture: API management


Past Wednesday Evening Trainings on all topics

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


Would you like to attend one of our Wednesday Evening Training sessions?

There is a limited amount of seats available to attend our sessions. Please send me an email if you would like more information on the sessions and the the possibilities to attend.


Work @Capgemini?

Do you want to join us? We're always looking for and well-motivated young professionals. Do you have a bachelor or master degree or extensive practical experience? Or do you have a relevant ICT / Informatics training and you have become curious about us? Please send me an email. Working for us gives you access to all Wednesday Evening Trainings!

9/27/19

HTTP for software engineers: the basics you should know

A nice series of articles on HTTP for software engineers. It discusses the basics of HTTP from a software developer's perspective. A solid understanding of HTTP can help you write better web applications and web services. It can also help debug applications and services. All the basics including resources, messages, connections, and security as it relates to HTTP will be discussed.

The series include the following parts:

A Software Developer's Guide to HTTP Part I - Resources: https://odetocode.com/Articles/741.aspx
A Software Developer's Guide to HTTP Part II - Message: https://odetocode.com/Articles/742.aspx
A Software Developer's Guide to HTTP Part III–Connections: https://odetocode.com/Articles/743.aspx
A Software Developer's Guide to HTTP Part IV– Web Architecture: https://odetocode.com/Articles/744.aspx
A Software Developer's Guide to HTTP Part V– State & Security: https://odetocode.com/Articles/745.aspx

I've included these in my learning resources page as well.

2/9/19

Week #6's Wednesday Evening Training: A practical introduction to C# code reviewing

Reviewing code requires to have a fresh and different view on (your colleague’s) code. You need to look for bad practices, think out of the box, follow your gut feeling, know about best and bad practices. You need to find a balance between advising about improvements and flat out rejecting code.

This Wednesday Evening Training, we had a practical overview and deep dive into code reviewing. One of our C# champions, Bart Roozendaal, showed us what we can look for specifically in code.

What to look for when reviewing code?

You can take a look at the general structure, tidiness, common errors, code smells and easy to find things. And there is a lot of checks and examples to be found on the internet as well. But what is also important is to view your code from particular viewpoints like security, efficiency and exception handling (error handling). It is definitely worth thinking out of the (language) box when developing a software program. Especially if your code is part of a much larger whole. And that is increasingly the case nowadays.



This evening was all about sharing experiences and opinions. There is no definite right or wrong, there are only considerations that you should make in a sensible manner. For example; there are multiple strategies to choose from when handling errors. How far do you have to go to catch errors in the code? This depends, for example, on the purpose of the program and the damage that specific errors can cause.

We did a walk through of  an existing C# solution and discussed the different findings. Very educative. The code was written in C #, but that was certainly no problem for Java engineers.

During the walk through we also discussed tooling that you can use for testing your software. See the links below for some of the tools we discussed.

To be continued...

We will certainly organize follow-up sessions on this topic. Next time, participants are invited to bring their own code to have reviewed, or bring interesting samples found. The Wednesday Evening Trainings are all about sharing knowledge and experience and learning from each other.

Thanks Bart for sharing your knowledge and experience with us!



Further reading

Do you want to read more on the topics in this post? Here are some links…

List of tools for static code analysis: https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis
CodeMaid - An open source Visual Studio extension to cleanup and simplify C#, C++, F#, VB, PHP, PowerShell, R, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript and TypeScript coding: http://www.codemaid.net/
NCrunch - An automated concurrent testing tool for Visual Studio: https://www.ncrunch.net/

Past Wednesday Evening Trainings on all topics

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

Work at Capgemini?

Do you want to join us? We're always looking for and well-motivated young professionals. Do you have a bachelor or master degree or extensive practical experience? Or do you have a relevant ICT / Informatics training and you have become curious about us? Please send me an email. Working for us gives you access to all Wednesday Evening Trainings!

11/1/18

Last week's Wednesday Evening Training: a practical introduction to IoT with Arduino

What’s an Arduino? An Arduino is like a little computer (microcontroller) where you can read input of a (example) sensor and can control your output. Like lights, LCD screen, speaker etc. It’s easy to program the Arduino.




One of our IoT champions, Aishwarya Dhall, offers a good introduction training of the Arduino technology with some nice handson labs. She also shows and explains the exciting IoT projects she's done with Capgemini.

Exciting technology... definity to be continued!



This week (actually this evening), we took a dive into Quantum Computer technology using IBM tooling. My blogpost on tonight's session will be published shortly.


Try it yourself? Here are some pointers...

The official site: https://www.arduino.cc/
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

3/21/18

This week's Wednesday Evening Training: a lot of Pi and some Witty Cloud with patterns

We continued our labs and projects this evening. We got some interesting demo's of running projects, e.g. a sensor network in which temperature and moisture data is exhanged between Pi's, a Witty Cloud Board, through various channels, including mail. This way, we're able to switch on/off devices remotely, guaranteed. Next step: come up with a practical application for this ;).
Also this evening: a lecture on basic design patterns. No tools, a whiteboard and a marker only.

Next week, we'll dive into Procedural Content Generation (used by graphical tools and game engines).

#werkenbijcapgemini #lifeatcapgemini #capgemini #wednesdayeveningtraining #raspberrypi #pi #iot #softwareengineering #patterns