Showing posts with label iot. Show all posts
Showing posts with label iot. Show all posts

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!

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/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

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!

1/26/19

Week #4's Wednesday Evening Training: Arduino your house and an intro to the Fritzing electronic circuit designer

This evening, one of our IoT champions, Aishwarya Dhall, 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.



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

Fritzing electronic circuit designer

Also this evening, I gave an introduction into the  Fritzing electronic circuit editor. Ever tried to make clear photo's of your Arduino or any other electronic circuit for your IoT device? I did, and I did not succeed. Using the Fritzing editor you can create a clear design and share this. See my SlideShare presentation below.



(source: https://www.slideshare.net/HansRontheWeb/fritzing-breadboard-editor)


Further reading

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 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 on my blog and on LinkedIn: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining

1/23/19

Using the Fritzing electronic circuit designer for your IoT (Arduino, Raspberry Pi, ...) project


Ever tried to make clear photo's of your Arduino or any other electronic circuit for your IoT device? I did, and I did not succeed. Using the Fritzing editor you can. I've done a little presentation and demo during tonight's Wednesday Evening Training. The post of this will be published shortly, but I could not resist publishing my Fritzing stuff now.



See my SlideShare presentation: https://www.slideshare.net/HansRontheWeb/fritzing-breadboard-editor

1/12/19

Week #2's Wednesday Evening Training: an IoT "Klusavond" on Domoticz, interrupts and a great brainstorm

This week, we had our first Wednesday Evening Training of 2019! We started with a good old IoT "klusavond" in which we discussed several topics:

  • Domoticz home automation
  • Implementing interrupts with the Arduino
  • Brainstorm on this years IoT topics in the Wednesday Evening Training


Domoticz home automation


Luc Slutter, on of our IoT experts, gave us an excellent introduction into home automation with Domoticz. Domoticz is a compact home automation system that allows you to operate a multitude of devices, sensors and smart devices. You can control Domoticz via various devices, such as your laptop, tablet and smartphone. The user environment is web-based, and can be installed on different devices.

Luc showed us the features, technology and gave us a demonstration and technology walkthrough of his own home built automation solution.

Great stuff! We will definitely continue with Domoticz (and similar platforms) this year.



Implementing interrupts with the Arduino


Reading values from sensors in your IoT device (like the Raspberry Pi of Arduino) can be done by, roughly speaking, constantly interrogating them or reacting on changed measured values. The first approach requires a program loop in which all sensors are queried. This is rather inefficient and, depending on the implementation, can also give untimely measurements. The program may not react fast enough to changes in measurements. An alternative to this approach is an interrupt implementation in which the hardware detects voltage changes in the hardware pins (to which the sensors are linked), stops processing the main program and runs a specially created interrupt routine. This is a more efficient and accurate approach which also yields neater code.












This evening I gave an introduction and demo of an interrupt implementation using the Arduino. The demo consisted of a button being pressed, generating a value change on one on the Arduino pins, causing an interrupt routine to be fired in my C program loaded in the Arduino. The interrupt routine then activates another pin which turns on a LED. My C program kept the status of the LED (on/off) and, dependent of this status, could switch the LED on and off. A very simple example, clearly demonstrating the interrupt approach.






Brainstorm on this years IoT topics in the Wednesday Evening Training


We also had an inspiring brainstorm on IoT topics we should address in 2019, led by our IoT champion (and Young professional of 2018!) Aishwarya Dhall. In 2019 there is still a lot to experiment and learn in the field of IoT. Here we are thinking of experimenting with various new sensors, home automation, integration of IoT devices and (cloud) platforms and experimenting with new applications.

We'll continue our IoT workshop on January 23th. Make sure you don't miss my posts on this!



Further reading

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 Arduino: 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 Playgrounds - Interrupts: http://playground.arduino.cc/code/interrupts

On Domoticz:
Domoticz official site: http://www.domoticz.com
My YouTube playlist on Domoticz: https://www.youtube.com/playlist?list=PLSiMhBs48YvWmAEqHS_w_l9Suj4lT05VX
(Dutch) Controle over je apparaten met Domoticz en Raspberry Pi: https://computertotaal.nl/artikelen/internet-thuis/controle-over-je-apparaten-met-domoticz-en-raspberry-pi

Past Wednesday Evening Trainings on all topics

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


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

10/12/18

This week's Wednesday Evening Training: a "klusavond" on a giant Arduino driven LED cube, a lot of sensors and generating 3D Archimate models

In this week's Wednesday Evening Training we had some great demo's and discussions on our individual projects on IoT and 3D modelling.





A lot of IoT

Aish showed us her giant LED cube (10x10x10 LED's, that's a lot of soldering!) and explained to us how she managed to build and run it. We discussed powering such a large collection of LED's and how the software was designed. Such a bug LED cube offers plenty of applications, including running 3D animations and games within the cube. We've started building a graphics library for basic LED handling that is going to be a great help in building such applications.

Aish also showed us her multi sensor project; a test platform on which all sorts of sensors are installed. We discusses the various sensor types, how to connect and use them and how (combined) measurements can best be done. Interesting stuff! One of the topics we also discussed is the way which the sensors are read in the software. That can be done in a loop but also using interrupts (low level event handlers). The latter method is faster, less error prone and cleaner. We'll be investigating this technique in the upcoming Wednesday Evening Training IoT sessions.







Archimate architecture models in BabylonJS 3D

This week's session, I gave give a demo of my BabylonJS prototype in which an Archimate model view (using the free Archi editor) is converted into a BabylonJS 3D model. For complex architectures, 3D modelling may give more insight than plain 2D models. Worth doing some experiments to see whether this is a good approach. The Technical Proof of Concept is running great. It uses MySQL as a central database and a simple website with some Web Workers to gather model data, generating and continuously updating a JavaScript Archimate model and a derived Babylon 3D model from this in the background. Our colleague Fred van Nimwegen also joined my project and he had experimented with Neo4j in which he stored the Archimate model.  Neo4j is a graph database (while MySQL is a relational database). Graph databases have some advantages over relational databases, mainly when querying data collections that naturally resemble networks. And that is exactly what an architectural model resembles: a network of related nodes. Moreover: modern architectures are getting more dynamic and will change over time more rapidly. When analyzing an architecture model to answer architectural questions like "what will happen when I change this?", an efficient query language and dito database are very convenient. We've planned a Wednesday Evening Training session on Graph databases and Neo4j in november. Fred will then share his knowledge gained with us.





Further reading

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

Considering building your own LED cube? Start simple with a 4x4x4 cube (still 64 LEDS, but at least you won't be needing a nuclear plant to power it): https://www.instructables.com/id/4x4x4-LED-Cube-Arduino-Uno/
BabylonJS: https://www.babylonjs.com
Archi: https://www.archimatetool.com
Archimate tool database plugin: https://github.com/archi-contribs/database-plugin
Neo4j: https://en.wikipedia.org/wiki/Neo4j


Past Wednesday Evening Trainings

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


Next week 's Wednesday Evening Training

Next week, we'll have the intro on Progressive Web Apps (PWA). This a hot topic in the world of web development and its only growing further in popularity. It is a relatively new way to develop applications for the mobile phone, combining the best of the web and apps. We will cover benefits using a PWA instead of traditional hybrid/native solutions, the basics and possibilities of a PWA, show some examples in functionality and give an example of how you can get started building your own PWA’s quickly. Yes, there will also be a handson lab. In later sessions we expect to cover topics like push notifications, background refresh, et cetera. 

9/12/18

This week's Wednesday Evening Training: a good old "klusavond" on IoT, 3D modelling and more…

In this week's Wednesday Evening Training we continued our individual projects on IoT, 3D modelling and more… On such evenings, things can be quiet (only typing noise) and lively in the same evening.



So what have we done?

Luc showed us progress on his Domoticz IoT project in which he was testing and optimizing connectivity in his "pool temperature measurement and adjustment project". He's promised us an intro on the Domoticz platform shortly. Quincy and I were propering next week's Wednesday Evening Training on WebGL, BabylonJS and 3d/game engines. There is really a LOT to demonstrate, explain and play with. For next week, we've determined the basic topics, selected examples and created some handson labs. Next week we will see how far we will come. In the tradition of the Wednesday Evening Training, we shift what we do not finish to the next week. It was instructive and fun!




Further reading

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

Domoticz: https://www.domoticz.com
BabylonJS: https://www.babylonjs.com
WebGL: https://en.wikipedia.org/wiki/WebGL 
OpenGL: https://en.wikipedia.org/wiki/OpenGL

Past Wednesday Evening Trainings

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

Next week 's Wednesday Evening Training

Next week, we'll have the intro on WebGL, BabylonJS and 3d/game engines. Worth mentioning: on October 3rd the Wednesday Evening Training "How to become a hacker! Introduction to security & handson hacking, part 2" will be open for visitors as well. See https://www.werkenbijcapgemini.nl/events/How-to-become-a-hacker if you want to read more and sign up for the event.

8/1/18

This week's Wednesday Evening Training: continuing our 3d and IoT projects and a bit of Windows programming

This Wednesday Evening Training, we continued our exploration of IoT and 3D technologies and learned about Windows programming.

Also: a special welcome to our guests from Siemens Germany: Florian, Alexander and Achim.


Windows DIB Buffer and Sound Buffer

First we had a nice demo and code walkthrough of our colleague Quincy Jacobs, who has experimented with the Windows DIB Buffer and Sound Buffer using good old C++/C. This ignited a lively discussion on wave and sound generation and techniques used for that. It took me right back to the era of home computers, in which I experimented a lot with the Commodore 64's SID (Sound Interface Device) programmable sound generator chip. Revolutionary for it's time (see also: https://en.wikipedia.org/wiki/MOS_Technology_SID).

BabylonJS

Next, I gave an update on my BabylonJS Archimate model project. This week, I had implemented an Observer to keep the Archimate (JavaScript Object) model in sync with the BabylonJS model. This enables the 3D model of the architecture being updated at runtime. I abandoned the proxy approach that I mentioned last week, since this is not supported by IE (in Edge it is supported) and IMHO it's too early to exclude IE. Instead I used a classic Observer implementation in JavaScript. We did a code walkthrough and discussed application of the Observer- and Factory pattern in general and in JavaScript. There is interest to plan a separate knowledge session on BabylonJS and WebGL. BabylonJS is based on WebGL (Web Graphics Library), which is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins.

To be continued...

RFID (Radio-Frequency Identification)

As promised last week, we took a look at RFID technology. Roughly speaking: using a reader/writer  your application can interact with RFID tags (e.g. in your security card). Your RFID tag provides a unique id to your application, which you can use as a key in your database. In a nutshell this is the basis of access and registration systems. At very low costs, a few Euro's actually, you can have a lot of fun in your IoT project! See the links below for resources on this.
We could use RFID labels and a scanner for building an interactive toy for young children (see my last week's post on this). Based on RFID and Lilypad Arduino technology we should be able to create some kind of easily foldable and transportable carpet on which you can place all kinds of tagged objects and interact with them using an sowed in Lilypad Arduino.

Anyway... a lot to learn!

Further reading

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

RFID: https://en.wikipedia.org/wiki/Radio-frequency_identification
Tutorial 12 for Arduino: RFID Card Reading: https://www.youtube.com/watch?v=gIlSLwcbeTU
What is RFID? How RFID works? RFID Explained in Detail: https://www.youtube.com/watch?v=Ukfpq71BoMo
MF522 RFID Write data to a tag: https://www.youtube.com/watch?reload=9&v=uihjXyMuqMY
RFID Programming Made Simple and Cheap: https://www.developer.com/net/article.php/3628811/RFID-Programming-Made-Simple-and-Cheap.htm
BabylonJS, see my previous 19th july post: https://hansrontheweb.blogspot.com/2018/07/this-weeks-wednesday-evening-training_19.html
Understand the Factory Design Pattern in plain javascript (one of the many articles on this): https://medium.com/front-end-hacking/understand-the-factory-design-pattern-in-plain-javascript-20b348c832bd
The Observer Pattern in JavaScript explained: https://pawelgrzybek.com/the-observer-pattern-in-javascript-explained/
WebGL: https://en.wikipedia.org/wiki/WebGL

Past Wednesday Evening Trainings

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

Next Wednesday Evening Training

Next Wednesday Evening Training, we'll take a deep dive into Micro Services. We'll discuss this from both an architectural point of view and a (Java) software engineering point of view. Demo's will be shown, code walkthroughs will be done and hopefully we'll have yet again a lively discussion!

Experiment, learn and have fun!


#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #3d #virtualreality #unity3d #babylonjs #arduino #rfid #iot #internetofthings #archimate #archi #patterns #windowsprogramming #c #c++