12/23/19

Capgemini Netherlands' yearly tradition: Patatjesdag (French-fries-day)!

A great opportunity for our kids get acquainted with new technologies, to have a lot of fun ... and have tons of French fries in the bargain!


















12/20/19

Architecting the Ecosystem: 5 Challenges for 2020 and beyond

For years, organizations are experiencing increasing pressure to adapt faster, and at the same time: to work more efficiently (and cheaper).

ICT developments play a dual role in this: on the one hand, new technological developments facilitate organizations to change faster (reorganize, innovate, expand) and work more efficiently, on the other hand, the same developments create a bigger playing field and offer more opportunities to put pressure on the same organizations.

As always, the challenges are met by combining (integrating, linking) IT systems to provide more functionality and splitting systems into smaller pieces, thereby creating a greater degree of flexibility. With these developments, ICT equipment, software and services are becoming increasingly more complex and more extensive. Large ICT ecosystems emerge in which the manageability of development and management is becoming an ever greater challenge. To cope with this, ICT systems are supported with platforms, frameworks and tools, and broad-based industry standards and patterns are adopted.

This evolution is nothing new and has been taking place for decades. In the last decade, however, the speed of change and the associated challenges to cope with it have greatly increased.
The following recent developments have made a major contribution to this:

  • Micro services: applications are split up, making the structure (through reuse of services) and behavior of applications (better scalability) more flexible;
  • Cloud: where applications are placed in platforms so that these applications can be managed more effectively as a group;
  • Agile / SCRUM / SAFe: where development organizations and development activities are split up (schedules and products) in order to be able to develop products and services faster,  more efficiently and effectively;
  • IoT: over the past few years, in addition to smartphones, laptops and tablets, it causes an explosive expansion of the IT ecosystem by adding millions of "smart" devices.

These developments should make it possible to realize a flexible ecosystem of distributed components that in a continuous stream of small adjustments is continuously optimally aligned with the constant and faster changing needs of organizations and individuals.
However, the above also causes some "extra challenges" ...

Challenges for the architecture and the role of the architect

An architect provides insight into the structure and behavior of ecosystems and processes and determines rules according to which these systems are worked on.

Challenge 1: massive increase in boundaries and data streams

The increasing size of ICT ecosystems introduces many more boundaries (in the broadest sense of the word) that must be controlled. Cross-cutting concerns (e.g., maintainability, adaptability, usability) and non-functional requirements (e.g., security, synchronization) must now be managed across entire ecosystems instead of relatively controllable monoliths. These ecosystems also have a highly dynamic character; both the structure and the behavior are constantly changing under the influence of the development and use of ever changing equipment, software and services.

This increasing degree of size, dynamics and complexity makes obtaining the insight that the architect must offer more difficult.

Also, the massive expansion of the ecosystem with devices (IoT devices that generate lots of sensor data) and protocols like WebSocket realizing realtime and two-way communication between server and client massively increases the amount of data that is generated, stored and streamed in the ecosystem. The continuous increase in bandwidth (e.g. 5G) makes data transport easier and faster, and new applications possible.

Challenge 2: additional questions

In addition, the architect is required to answer new questions, well substantiated. Questions on the costs, efficiency and effectiveness of future scenarios (e.g. implementation of new versions of software, new user stories, impact of new regulations etc.) in complex and dynamic ecosystems are becoming increasingly important. After all: the aforementioned pressure from the organizations (business) to be able to deliver faster and cheaper is ever increasing.

Challenge 3: outdated techniques and tools

The architect uses models and views to gain and provide insight into the IT ecosystem. However, the standards, techniques and tools used for this were devised in a time when the architecture was not yet extensive, dynamic and complex to the present extent. Also, nowadays, more different expert architects and designers play a role; for example for UX, infrastructure, business, and software. These experts use models and techniques that work effectively and efficiently for specific target groups (stakeholders), but often do not connect with each other. This makes it more difficult to realize a complete and coherent model of the entire architecture, which also makes it difficult to understand architectures in the IT ecosystem. In addition, the frequency with which changes are implemented has increased sharply, which makes updating models a greater challenge.

It is therefore increasingly difficult to obtain and provide insight into the entire ecosystem; the insight becomes more limited. And limited insight means a limited degree to which the architecture of an ecosystem can be sufficiently aligned with the goals set for it.

Challenge 4: work silos

Furthermore, the Agile / SCRUM way of working results in a division of work over several small work silos in which the influence of the architect is more limited than in classic "waterfall" sections. Effective and efficient coordination between these silos therefore costs the architect more effort, so that regulating and guiding to achieve an effective and efficient architecture and maintaining it as well also takes more effort.

Challenge 5: getting insight in both private and work domains

The User eXperience (UX) architect focuses specifically on usability of ICT for end users.

This is a particular important expert-architect since the ecosystem of devices, processes and software is now no longer limited to the domain of organizations, but has been expanded with the ecosystem of devices, processes and software that is outside the sphere of influence of organizations. The DCX architect must also have insight into the private and working environment (domains) of the individual, which also partly overlap each other.

The way of life has changed considerably in recent decades. Both private and professional life has become more flexible and dynamic and exerts increasing pressure on the individual. Work and private activities and time regularly overlap and long-term focus on tasks is becoming increasingly difficult. Tasks are therefore increasingly performed in a fragmented manner (micro tasks, micro productivity).

The context in which the individual performs tasks also varies more frequently and to a greater extent than before; he now uses different and rapidly changing devices and applications, from different locations, at any time of the day, and under different circumstances (e.g. online, offline).

In addition, the behavior of the individual has also changed considerably in recent decades. Hardware and software have become fashion-sensitive and participating in trends or, on the contrary, wanting to be “different” by choosing specific equipment and apps has become commonplace.

The behavior of the individual is also influenced by the services and IT ecosystems that he uses. Through structural personalization and commercialization, information bubbles and echo chambers can arise in which the information and services provided to the individual are aligned with earlier behavior and his behavior is thus confirmed more often than is inspired by other insights. Services can, as a kind of government, influence the behavior of the individual.

Both the behavior of the end user, the services he uses and the context in which he performs tasks in both private and work domains and the way in which he performs tasks play a decisive role in the effectiveness and efficiency of services offered to users by organizations. Insight into this is therefore crucial for the work of the UX architect.

How can architects deal with these challenges?

The basis for a good architecture is insight; in functionality, structure and behavior of eco systems. Models that the different specialist architects and designers use will have to be aligned so that a consistent model is formed from which this insight can be obtained. The current method of modeling can be used in part, but the size, complexity and dynamics of these ecosystems requires that modeling should be done in a more comprehensive and efficient manner.

Consolidating models, modelling dynamics and calculating constructions

Static models (the "blocks and arrows", sketches, overviews, etc.) will have to be incorporated into consolidated and standardized models from which views for all expert architects and stakeholders are derived. And insight into the dynamics will play a major role in this, for example in the form of simulations. The concept of "Digital Twins", in which models are expanded with digital replicas of entities that exist in the physical world, offers possibilities to implement these simulations. All the domains involved, both the own organization and the domains in which the individual operates, must be involved.

This way, insight into the architecture and influences on this architecture can be obtained more efficiently and efficiently. This facilitates understanding and communication between the various architects and stakeholders. After all, from a shared simulation across all relevant domains (dynamic) views can be defined in the format that best fits the perception of the stakeholders and expert architects involved. The above-mentioned new questions posed to architects can also be better answered. Impact analyzes can be "calculated" and subsequently evaluated with actual measurements.

Use best practices & patterns

The fact that we have much less to do with monoliths and more with an ecosystem of ICT components (distributed applications with lots more boundaries) makes standardized implementation of solutions for cross-cutting concerns more of a challenge. By using best practices and patterns, thus using solution blueprints standardizing solutions for parts of the ecosystem, this challenge can be met. An additional advantage of this is that, with the use of patterns, the associated problem areas are also better understood.

Keeping up with Agile/SCRUM

Effective and efficient application of Agile / SCRUM stands or falls with sufficient adoption thereof throughout the organization and sufficient involvement of architecture, architects, support services (e.g. for infrastructure) and stakeholders. Although frameworks such as SAFe provide tools for tackling these challenges, they must be applied to a sufficient extent. In addition to adapting the organization and organizing processes, this also requires a different way of thinking: a cultural change. And cultural changes are generally more difficult to implement. Streamlining supporting processes, such as requesting environments (e.g. by applying self service), can in any case significantly reduce the workload of architects.

What remains a challenge is the force field between the interests of the business (which has a more direct influence on work in progress; implementation and documentation / communication) and working under architecture. Software development is becoming increasingly intertwined with business processes (development of services), as a result of which software development itself has actually become a business process itself in which architecture (medium and long term) is given less importance than the rapid realization of agility; the development of new products and services (short term).

Get a better and broader insight

Adding the user's private and work domain to the UX-architect's focus area makes insight more challenging; certainly with the dynamics of the ICT ecosystem, user behavior and context. The use of simulations in those domains is even more important here to give the UX architect the insight with which he can devise efficient and effective solutions.

Because the UX architect has to deal with different domains, both the private and the work domain, the UX architect must have broad knowledge base. His expertise actually includes the expertise of various expert architects; among others in the areas of User Experience (UX), platforms (CMS, business systems), integration and devices (e.g. mobile, IoT).

The models and techniques used in these different areas of expertise will have to be aligned so that a holistic view of solution ecosystems can be obtained. This coordination can already take place initially by making use of existing modeling standards that naturally already offer a joint insight to the various expert architects. An example of this are semantic information models that offer building blocks for epics and user stories as well as for technical data models.

Summarized… and concluding

The ever increasing pressure to deliver products and services quickly, effectively and efficiently in an increasingly complex and dynamic ecosystem of devices, services and users gives the architect some major challenges:

  • Challenge 1: massive increase in boundaries and data streams
  • Challenge 2: additional questions
  • Challenge 3: outdated techniques and tools
  • Challenge 4: work silos
  • Challenge 5: getting insight in both private and work domains

ICT / automation is still a relatively young discipline. Disciplines like architectural engineering, civil engineering, hydraulic engineering and industrial engineering are much more mature when it comes to working under architecture, standards for development and dealing with changes. As ICT architects, we can learn a lot from these disciplines. The techniques used therein such as modeling, calculating (strength theory, capacity planning, simulation, logistics, etc.) and simulation can be a true source of inspiration for us.

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!

11/16/19

Wednesday Evening Training #JuniorEdition: experimenting with the Arduino micro controller at the Leidsche Rijn Centrum's library

This friday afternoon, we held a Wednesday Evening Training at the Leidsche Rijn Centrum's  library, especially for kids. Our IoT champion, Aishwarya Dhall, had prepared a nice handson lab on programming a LED panel with the Arduino micro controller.


So what’s an Arduino? An Arduino is like a little computer (micro controller) 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.

After an introduction on the Arduino, programming and basic electronics, the kids got to work creating the electronic circuit and programming the Arduino.

Thanks Aish and others for sharing your knowledge with us! That's all in the game in the Wednesday Evening Training (also on Friday afternoon)!


 

Further study

Do you want to read more on the topics in this post or play around with the technology? Here are some links…

On the Arduino: 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
10 Awesome Beginner Arduino Projects: https://create.arduino.cc/projecthub/RoyTobby/10-awesome-beginner-arduino-projects-78a6a6
Arduino project - Adaptive LED Morse Code Decoder and Timer Interrupt: https://create.arduino.cc/projecthub/shjin/adaptive-led-morse-code-decoder-and-timer-interrupt-8d18a7

Next week's Wednesday Evening Training

Next week we will continue our sessions on Practical 3D Graphics & Programming with Quincy Jacobs and Remko Haagsma. We'll be diving in Unity once again.

Great stuff, looking forward to next week!

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 @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 mail. Working for us gives you access to all Wednesday Evening Trainings!

11/15/19

Computer fraude in the '80's...

It is not something of the most recent years, not even something that started when the internet became accessible to the general public. Computer fraud happened as early as the 1980s, and then on a larger scale than you would expect. A look back to 1983 in which computers still had a fixed workplace and graphic interfaces only appeared in StarTrek.

Then, it costed the British industry already  £100 million-a-year. How did they cope back then?



11/13/19

dotnetFlix: an instructive video channel for developers


A short time ago, I stumbled upon a YouTube channel with quite a lot of content on Microsoft .NET technolog: dotnetFlix. Content is not restricted to hardcore Microsoft development, other technology topics like PWA and WebAssembly are discussed as well.


In my opinion certainly worth a visit!

The latest video's include:

How to build Blockchain applications using Azure Blockchain Services - Part 1 of 2: https://www.youtube.com/watch?v=Jj1b7ZGd1tI
How to build Blockchain applications using Azure Blockchain Services - Part 2 of 2: https://www.youtube.com/watch?v=S4bixgBry1g
How to manage secrets in a .NET Core app with HashiCorp Vault - Part 1: https://www.youtube.com/watch?v=K8TnbbsdthQ
How to manage secrets in a .NET Core app with HashiCorp Vault - Part 2: https://www.youtube.com/watch?v=6ZkZ98sdDP4
How to build an event store using CosmosDB: https://www.youtube.com/watch?v=UejwRlmV6E4&t=1775s

Visit the dotnetFlix channel for more video's: https://www.youtube.com/channel/UCFz17EP7PE2ouhPuVmu__kA/

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.

7/4/19

Week #27's Wednesday Evening Training: A good old IoT "klusavond" featuring the Arduino microcontroller and Mozilla WebThings

Two topics, this evening, on Internet of Things (IoT)...

An introduction of the Arduino technology with some nice handson labs by Aishwarya Dhall

We do this on a regular basis in our Wednesday Evening Trainings, to give our colleagues the opportunity to catch up on IoT any time during the year. More experienced colleagues continued with their own labs. In this way everyone can acquire knowledge and experience with this technology at their own pace.

A first exploration van Mozilla WebThings (by me)

Well, this is quite a new thing and quite promising!
As a result of Mozilla's Project Things, Mozilla WebThings is an open platform for monitoring and controlling devices over the web.

It consists, roughly, of the following products:

  • WebThings Gateway: a software distribution for smart home gateways which allows users to directly monitor and control their smart home.
  • WebThings Framework: A collection of re-usable software components to help developers build their own functionality (web things).
  • Things UI: a unified web interface to monitor and control all smart home devices.

The interesting thing is that WebThings allows users to directly monitor and control their smart home over the web, without a middleman. Yes, no subscription for some kind of portal needed. This smart home gateways is focused on privacy, security and interoperability.

Installation and setup of WebThings is quite easy. In tonight's Wednesday Evening Training we just did that, and brainstormed on the applications and next steps we're going to explore next.

Interesting stuff, we'll definitely continue with WebThings!



Further reading

Do you want to read more on the topics in this post?

On IoT technology
What is an IoT Gateway? (SAP EA Explorer - Short Video): https://www.youtube.com/watch?v=6ObesqWDpEo
Mozilla IoT - Mozilla IoT team: https://github.com/mozilla-iot/

On Mozilla WebThings
Mozilla Project Things: https://labs.mozilla.org/projects/project-things
What Mozilla WebThings Has to Offer for the IoT: https://blog.paessler.com/what-mozilla-webthings-has-to-offer-for-the-iot
Introducing Mozilla WebThings: https://hacks.mozilla.org/2019/04/introducing-mozilla-webthings
Simple server for WiFi101, ESP8266, or ESP32 boards compliant with Mozilla's proposed WoT API: https://github.com/mozilla-iot/webthing-arduino
Mozilla WebThings - An open platform for monitoring and controlling devices over the web: https://iot.mozilla.org/
Easy Home Automation With Mozilla IoT & Raspberry Pi - Part 1: https://www.youtube.com/watch?v=maSdWQHSzCg
Getting Started with the WebThings Gateway for Raspberry Pi®: https://iot.mozilla.org/docs/gateway-getting-started-guide.html
Mozilla WebThings Documentation - A guide to using the WebThings Gateway and WebThings Framework: https://iot.mozilla.org/docs/

On demo's and examples (video's from my YouTube channel)
Mozilla Project Things Workshop: https://www.youtube.com/watch?v=uEHL3ZYS790&list=PLSiMhBs48YvXSmJyFMt3eYOG12Llcqyi-&index=23&t=0s
A Universal IoT Gateway? Setting up Mozilla IOT Gateway: https://www.youtube.com/watch?v=MZexWQJtni4&list=PLSiMhBs48YvXSmJyFMt3eYOG12Llcqyi-&index=24&t=0s
Mozilla IoT Framework - Kathy Giori (Mozilla): https://www.youtube.com/watch?v=mWCa6byiPco&list=PLSiMhBs48YvXSmJyFMt3eYOG12Llcqyi-&index=25&t=0s
mozilla-iot-gateway-sensors-20180406rzr: https://www.youtube.com/watch?v=4haKrPetGmg&list=PLSiMhBs48YvXSmJyFMt3eYOG12Llcqyi-&index=26&t=0s
mozilla things gateway - orange pi: https://www.youtube.com/watch?v=y4eTym_TVFo&list=PLSiMhBs48YvXSmJyFMt3eYOG12Llcqyi-&index=27&t=0s

On communities
Mozilla IoT GitHub Community: https://github.com/mozilla-iot/
Mozilla IoT - Mozilla IoT team: https://github.com/mozilla-iot/
Mozilla IoT - Discussion board: https://discourse.mozilla.org/c/iot
Mozilla IRC: https://wiki.mozilla.org/IRC
MozIoT - The Mozilla IoT Team (a small team inside the Emerging Technologies department at Mozilla, working on the Internet and Web of Things): https://wiki.mozilla.org/MozIoT

On related topics
Mozilla IoT - Supported hardware: https://github.com/mozilla-iot/wiki/wiki/Supported-Hardware
Raspberry Pi: https://www.raspberrypi.org/products/
Balena Etcher - Flash OS images to SD cards & USB drives, safely and easily: https://www.balena.io/etcher/
Other Mozilla projects: https://labs.mozilla.org/projects/

Next week's Wednesday Evening Training

Next week we will have an update on our exploration of storing, querying and visualizing software architecture models. We’ll share the prototypes and discuss the proceedings of our research on using graph/noSQL/RDF databases like Neo4j and Apache Jena and 3djs / 3D force graphs.

Looking forward to next week!

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

What happened to the posts of previous Wednesday Evening Trainings?
Well, to be honest I am a bit behind with my blog posts. I hope to catch up with my work in the coming period.

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 mail. Working for us gives you access to all Wednesday Evening Trainings!

5/29/19

Week #22's Wednesday Evening Training: Quantum Computing, a practical introduction using IBM technology (part 7)

Continuing our exploration of Quantum Computing in our Wednesday Evening Training, we had a nice introduction in Quantum Computing and the math behind from one of our Quantum Computing experts: Ilyas Sener.

We've discussed ports, matrix calculations, applications and made comparisons to Turing based computers.




We also had a good brainstorm on topics that we like to discuss next Wednesday Evening Training sessions on Quantum computing. I'll soon give an update on what will be on our agenda the upcoming months.

Interesting topics! We'll definitely continue exploring Quantum Computing!



Further reading

Do you want to read more on the topics in this post?

Take a look at my post: "Quantum computing: an introduction and a lot of links to resources":
https://hansrontheweb.blogspot.com/2018/11/quantum-computing-introduction.html

Or visit my YouTube channel on Quantum Computing: https://www.youtube.com/playlist?list=PLSiMhBs48YvWecXqKP00NGuiP5UD6RoCk

Next week's Wednesday Evening Training

Next week we will have an introduction on Android Studio by Melchior Vrolijk. We'll get basic knowledge on how to use the Android Studio IDE for developing Native Android apps, run native apps using the integrated emulator and on our own physical Android devices.

Looking forward to next week!

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 @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 mail. Working for us gives you access to all Wednesday Evening Trainings!

5/28/19

Access videos and presentations from the Neo4j GraphTour 2019 in Europe

Were you unable to attend the Neo4j GraphTour 2019 in Europe?

Neo4j is a graph database is a database that uses graph structures (nodes, edges and properties) and  semantic queries to represent and store data.

Access videos and presentations from the Neo4j GraphTour 2019 in Europe: https://go.neo4j.com/OnDemand-GraphTour-2019-EMEA_Registration.html

You'll find a video summary here: https://youtu.be/Ctuim01UXE0



In our Wednesday Evening Trainings, we regularly pay attention to graph databases and Neo4j.
See my posts: https://hansrontheweb.blogspot.com/search?q=neo4j

10 Commandments for software(development)

10 years ago, I posted 10 Commandments for software(development).

Since then, nothing much has changed.

Therefore, once again:

  1. You shall be swift and accurate in responding to the user's commands and you shall therefore not keep the user waiting for something he did not ask for. (also: you shall not mislead the end user by showing animated gifs as if you were working hard)

  2. You shall be swift, accurate, clear and understandable in communicating with your user.

  3. You shall not waste memory nor shall you waist processor time or network bandwidth.

  4. You shall not offer the user more functionality and information than he can handle.

  5. You shall not distract the user with information he does not want or need at that particular moment.

  6. You shall not force the user to take action when he does not need to, that is: when work is not in jeopardy.

  7. You shall not force the user to unnecessarily update or upgrade.

  8. You shall not force the user to uniquely commit to one technology, company, organisation or community.

  9. You shall not seduce the user to communicate only by computer and thus neglect face-to-face communication.

  10. You shall not make your favorite platform or technology into a religion.

5/20/19

Week #19's Wednesday Evening Training: Combi IoT "klusavond" and a practical introduction on IoT using the Arduino microcontroller

This evening, one of our IoT champions, Aishwarya Dhall, once again gave a good introduction of the Arduino technology with some nice handson labs. We do this on a regular basis in our Wednesday Evening Trainings, to give our colleagues the opportunity to catch up on IoT any time during the year.

More experienced colleagues continued with their own labs. In this way everyone can acquire knowledge and experience with this technology at their own pace.



Future Wednesday Evening Training sessions on IoT/Arduino and related topics...

We also had an inspiring brainstorm on future handson labs. Connecting more detectors and experimenting with other technologies. RFID (Radio-frequency identification ) and gesture sensors are just two of the technologies we'll be playing with in upcoming Wednesday Evening Trainings.

Keep following my posts to stay up to date!

Further reading

Do you want to read more on the topics in this post or play around with the technology? Here are some links…

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. Read more in my other blog posts: https://hansrontheweb.blogspot.com/search?q=Arduino

On Arduino:
Arduino Interrupts Tutorial (explanations, 2 demo's/labs): https://www.youtube.com/watch?v=QtyOiTw0oQc
My YouTube playlist on YouTube: https://www.youtube.com/playlist?list=PLSiMhBs48YvV86iiXFJY-BRxOsP2A2pnH
10 Awesome Beginner Arduino Projects: https://create.arduino.cc/projecthub/RoyTobby/10-awesome-beginner-arduino-projects-78a6a6
Arduino project - Adaptive LED Morse Code Decoder and Timer Interrupt: https://create.arduino.cc/projecthub/shjin/adaptive-led-morse-code-decoder-and-timer-interrupt-8d18a7
Arduino - Multitasking (e.g. interrupts): https://learn.adafruit.com/multi-tasking-the-arduino-part-2/overview
Arduino Interrupts: https://www.instructables.com/id/Arduino-Interrupts
Arduino Playgrounds - Interrupts: http://playground.arduino.cc/code/interrupts

On Fritzing (designing electronic circuit boards):
Fritzing official site: http://fritzing.org/home
A quick overview on Fritzing: https://www.slideshare.net/HansRontheWeb/fritzing-breadboard-editor

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

Week #20's Wednesday Evening Training: Web Socket implementation using ASP.NET Core, Angular and SignalR

Ever wondered how to push information from the server to your single page app in the browser?

Delivering up-to-date information is crucial today. In classic web applications, server side code is passive and needs to be queried to get information. Web sockets, however, gives the ability to have server-side code push content to clients in real-time.

This Wednesday Evening Training, our colleagues Sina Wahed and Carl in 't Veld gave us an excellent introduction into the application of web sockets in a connected web browser setup.

This technology really helps building a real-time web experience in applications like chat, stock tickers, co-editing et cetera.



So, what did we do during our Wednesday Evening Training?

We started with a Microsoft-flavored :) overview of event driven architectures and the application of web sockets in a connected web browser setup.

After this, Carl gave us a demo and code walk through of a nice example SignalR application building  an event-driven web socket enabled web application. SignalR is an ASP.NET based software library allowing server code to send asynchronous notifications to client-side web applications. Read more on this in the links below.


Then Sina escorted us in a deep-dive into the details of the web sockets protocol. WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection.

Of course there was plenty of room for Q&A, discussions and hands on labs. But since the amount of contents exceeded the amount of time, we'll continue these topics in next Wednesday Evening Training sessions. We'll also take a deep dive in additional related topics as well.

Interesting and innovative stuff! Thanks Sina and Carl for sharing your knowledge with us!



Next Wednesday Evening Training...

Next Wednesday Evening Training, we'll have an introduction on Neural Networks. We'll be getting an overview of the concepts and applications and we'll dive into the mathematics & algorithms involved.

Further study

Do you want to read more on the topics in this post or play around with the technology? Here are some links…

To get started:
Have the latest Nodejs/npm LTS installed: https://nodejs.org/
Have Visual Studio Code installed: https://code.visualstudio.com/
or Visual Studio 2017 / 2019 if you have a Visual Studio subscription. https://visualstudio.microsoft.com/

On Web Sockets:
WebSocket: https://en.wikipedia.org/wiki/WebSocket
WebSockets 101: lucumr.pocoo.org/2012/9/24/websockets-101/

On SignalR:
SignalR: https://en.wikipedia.org/wiki/SignalR
Real-time ASP.NET with SignalR: Incredibly simple real-time web for ASP.NET: https://dotnet.microsoft.com/apps/aspnet/real-time
ASP.NET Core SignalR .NET Client: https://www.youtube.com/watch?v=vHgMD7I3Duw
Example code (GitHub): https://github.com/swappdeveloper/watwsstappen
Example code (GitHub) swappdeveloper/WednesdayTrainingWebsocketExample:
https://github.com/swappdeveloper/WednesdayTrainingWebsocketExample
Example code using Azure Durable Function (GitHub): https://github.com/cveld/DurableFunctionsExample

Past Wednesday Evening Trainings on all topics

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

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 mail. Working for us gives you access to all Wednesday Evening Trainings!


Week #18's Wednesday Evening Training: WebGL, a recap and continuing implementing WebGL graphics

In this session Quincy Jacobs gave a short recap of his previous Wednesday Evening Training sessions on WebGL (also see my previous posts) to refresh our knowledge on Shaders, Vertex Buffers, Attribute Pointers and various other techniques used in WebGL.




Afterwards this he continued his explanation on implementing textures using the same techniques as the Vertices and the Colors. Some simple math to move, scale and rotate our created shapes was discussed as well.

Just like in other Wednesday Evening Training  sessions, there was also sufficient room for Q&A and discussion and there were lots of code example available for each topic . Plenty to play around with!

Next session, we'll plan time for continuing our WebGL handson labs.

Thanks Quiny, for sharing your knowledge with us!


Further study

Do you want to read more on the topics in this post or play around with the technology? Here are some links…

Quincy Jacob's WebGL Github repository, with alle the docs and examples
https://github.com/QuincyJacobs/WebGLTutorial

WebGL
https://webglfundamentals.org/
https://webgl2fundamentals.org/
https://developer.mozilla.org/nl/docs/Web/API/WebGL_API

OpenGL (also handy for WebGL)
https://learnopengl.com/
https://open.gl/

On the Math
https://www.khanacademy.org/
https://www.symbolab.com/solver/matrix-calculator
https://academo.org/demos/3d-vector-plotter/

Examples and demo's
https://experiments.withgoogle.com/collection/chrome

Past Wednesday Evening Trainings on all topics

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

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 mail. Working for us gives you access to all Wednesday Evening Trainings!

5/3/19

Week #17's Wednesday Evening Training: Quantum Computing & Encryption

On the 24th of April, the 6th edition of the Wednesday Evening Training on Quantum computing was held.

The topic was:  how quantum computing could effect encryption.

In this session, we had a great discussion on how long the most modern supercomputer would take to calculate every single answer in an RSA 2048 bit encryption calculation. And how a Quantum Computer could help.

The time that it would take was estimated to be much longer then the universe will be in existence. That is why this form of encryption is very secure and used everywhere today. However,  immense quantum parallelism would enable quantum computers to break RSA within days or hours.

This would mean that current cryptography would be completely useless when quantum computers are ready. To make matters worse, loads of data is already logged today by companies and governments. This means that data that is secure today, will not be protected tomorrow. We should, therefore, start to think about how long we want to keep our data safe.


Thanks Julian, for sharing your knowledge with us!




Further reading

Do you want to read more on the topics in this post?

Take a look at my post: "Quantum computing: an introduction and a lot of links to resources":
https://hansrontheweb.blogspot.com/2018/11/quantum-computing-introduction.html

Or visit my YouTube channel on Quantum Computing: https://www.youtube.com/playlist?list=PLSiMhBs48YvWecXqKP00NGuiP5UD6RoCk

On specific topics:

Bra–ket notation: https://en.wikipedia.org/wiki/Bra%E2%80%93ket_notation
Quantum Mechanics Concepts: 1 Dirac Notation and Photon Polarisation: https://www.youtube.com/watch?v=pBh7Xqbh5JQ
Conjugate transpose: https://en.wikipedia.org/wiki/Conjugate_transpose
What are theta, phi and lambda in cu1(theta, ctl, tgt) and cu3(theta, phi, lam, ctl, tgt)? What are the rotation matrices being used? https://quantumcomputing.stackexchange.com/questions/2707/what-are-theta-phi-and-lambda-in-cu1theta-ctl-tgt-and-cu3theta-phi-lam
Grover - A fast quantum mechanical algorithm for database search: http://arxiv.org/abs/quant-ph/9605043

Next week's Wednesday Evening Training

Next week we'll have a good old "klusavond" in which we will have multiple topics, like the Arduino Micro processor, IoT  Neo4j, WebGL (continuation of this week's session) et al.

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 @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 mail. Working for us gives you access to all Wednesday Evening Trainings!

5/1/19

Week #16/17/18's Wednesday Evening Trainings: a quick preview...

Apologies! I'm a bit behind with writing my blog articles.

For that, already some impressions of week #16/17/18's Wednesday Evening Trainings on:

  • Modeling patterns & solutions in Archimate using Archi & an update on how to use Neo4j with Archimate & Archi
  • Quantum Computing, a practical introduction using IBM technology (part 6)
  • WebGL: recap and continuation of implementing WebGL graphics

Blog articles will be published as soon as possible!










4/13/19

Week #15's Wednesday Evening Training: Whack-a-LED!

In this week's Wednesday Evening Training, we had a great Arduino Micro controller lab: "Whack-a-LED!"

One of our Arduino champions, Aishwarya Dhall, prepared a nice little game implemented using the Arduino Micro Controller. The game is based on the well known game "Whac-A-Mole".



Using 4 push buttons, 4 LED's and a little Arduino program, the game is implemented. The LED's are lit one at a time in random order. The player must hit the corresponding button in time to proceed with the game and gain points. This requires a timer and some interrupts.

Nice lab to get started using the Arduino!



There was a special welcome to the students of the Hogeschool Utrecht who we assisted programming a LED panel with the Arduino.



Of course, there was also plenty of opportunity for other projects & topics. Even the first ever photograph of a black hole was discussed. That's agile learning ;) !

Thanks Aish and others for sharing your knowledge with us! That's all in the game in the Wednesday Evening Training!


Next Wednesday Evening Training...

Next Wednesday Evening Training, we'll continue our architecture series with modelling architecture patterns in Archimate and an introduction in Archi, a free Archimate editor. We'll also discuss proceedings on

Further study

Do you want to read more on the topics in this post or play around with the technology? Here are some links…

On the Whac-A-Mole game:
Whac-A-Mole: https://en.wikipedia.org/wiki/Whac-A-Mole

On Arduino:
Arduino Interrupts Tutorial (explanations, 2 demo's/labs): https://www.youtube.com/watch?v=QtyOiTw0oQc
My YouTube playlist on YouTube: https://www.youtube.com/playlist?list=PLSiMhBs48YvV86iiXFJY-BRxOsP2A2pnH
10 Awesome Beginner Arduino Projects: https://create.arduino.cc/projecthub/RoyTobby/10-awesome-beginner-arduino-projects-78a6a6
Arduino project - Adaptive LED Morse Code Decoder and Timer Interrupt: https://create.arduino.cc/projecthub/shjin/adaptive-led-morse-code-decoder-and-timer-interrupt-8d18a7
Arduino - Multitasking (e.g. interrupts): https://learn.adafruit.com/multi-tasking-the-arduino-part-2/overview
Arduino Interrupts: https://www.instructables.com/id/Arduino-Interrupts
Arduino Playgrounds - Interrupts: http://playground.arduino.cc/code/interrupts

On Fritzing:
Fritzing official site: http://fritzing.org/home
A quick overview on Fritzing: https://www.slideshare.net/HansRontheWeb/fritzing-breadboard-editor

Week #14's Wednesday Evening Training: A good old Micro controller klusavond

In this week's Wednesday Evening Training, we had a good old "klusavond" (Dutch for "a pleasant and educational evening in which we worked on our own projects and shared knowledge") on Micro controllers.

We gave some demo's on the proceedings on our projects, discussed the usage of sensors and I gave a short intro on Fritzing. Fritzing is a nice and free CAD application that can be used to design breadboard circuits for Arduino and Raspberry Pi. It's easy to use and I often use it to create illustrations for manuals for Arduino and Raspberry Pi labs.



Next Wednesday Evening Training...

Next Wednesday Evening Training, we'll continue our experiments with Micro controllers with a special lab: "Whack a LED!" using the Arduino Micro controller. Make sure to follow my posts!

Further study

Do you want to read more on the topics in this post or play around with the technology? Here are some links…

On Arduino:
Arduino Interrupts Tutorial (explanations, 2 demo's/labs): https://www.youtube.com/watch?v=QtyOiTw0oQc
My YouTube playlist on YouTube: https://www.youtube.com/playlist?list=PLSiMhBs48YvV86iiXFJY-BRxOsP2A2pnH
10 Awesome Beginner Arduino Projects: https://create.arduino.cc/projecthub/RoyTobby/10-awesome-beginner-arduino-projects-78a6a6
Arduino project - Adaptive LED Morse Code Decoder and Timer Interrupt: https://create.arduino.cc/projecthub/shjin/adaptive-led-morse-code-decoder-and-timer-interrupt-8d18a7
Arduino - Multitasking (e.g. interrupts): https://learn.adafruit.com/multi-tasking-the-arduino-part-2/overview
Arduino Interrupts: https://www.instructables.com/id/Arduino-Interrupts
Arduino Playgrounds - Interrupts: http://playground.arduino.cc/code/interrupts

On the Raspberry Pi:
Raspberry Pi: https://en.wikipedia.org/wiki/Raspberry_Pi
Raspberry Pi (official site): https://www.raspberrypi.org
Comparison of single-board computers: https://en.wikipedia.org/wiki/Comparison_of_single-board_computers

On Fritzing:
Fritzing official site: http://fritzing.org/home
A quick overview on Fritzing: https://www.slideshare.net/HansRontheWeb/fritzing-breadboard-editor

Past Wednesday Evening Trainings on all topics

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

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 mail. Working for us gives you access to all Wednesday Evening Trainings!