The Code Café is a series of low key, relaxed meetups where we explore various technologies, tools, programming aids and other fun stuff in a relaxed setting. This repository contains artifacts for the Code Café sessions.
Note: in the Code Café, we can work with various technologies - browser based or local (typically in containers) - and across the stack: UI, (micro)service, database, code editing and programming utilities and general productivity boosters.
Code Café sessions will usually not work with slides and presentations. Items are introduced with a brief introduction and a demonstration - followed by trying out!
Initially, a single Code Cafe Repository was used on GitHub. However, that becomes unwieldy. So now we use GitHub repos per Code Cafe session, and we link these individual session repos as sub modules to this overarching Code Cafe repo.
I use the command
git submodule add https://github.com/AMIS-Services/code-cafe-20190520
to add a repo as a submodule. After executing this command, the .gitmodules file is committed for the mother-repo. All sources and changes for a specific Code Cafe session are made in the context of the GitHub repo for that particular session.
See for example this article with details on submodules: https://github.blog/2016-02-01-working-with-submodules/ .
- Laptop as Code – Nico Klasens
- Quickstart - Je Container de Azure Cloud in – Henk Jan van Wijk
- Recharts - charting in React – Bram Kaashoek
- Asynchronous Generators en Data Pipelines in JavaScript – Lucas Jellema
- LastPass - https://www.lastpass.com/ LastPass remembers all your passwords, so you don't have to.
- Kafka Connect
- Adobe XD - design tool for web and mobile apps - https://www.adobe.com/products/xd.html
- Node Red
- Kibana
- Traefik - Load Balancer and Proxy ("Cloud Native Edge Router") https://traefik.io/~
- Powershell
- ZSH and OhMyZSH - https://ohmyz.sh/ Linux Shell
- Katacoda - browser based sandboxes and tutorials environment (with the option of defining your own tutorials running on Katacoda servers)
- Cypress Testing - automated unit testing of browser applications (Selenium++): https://www.cypress.io/
- ngrok (& local tunnel) for exposing locally running services on the internet
- JSONata - XPath & XSLT/XQuery like expression language for retrieving data from and transforming JSON documents
- Vagrant (& VirtualBox) - tool for efficient management of VMs and a local Docker Engine); especially useful for running Docker on Windows laptops
- QuickSQL - free cloud service for rapid generation of SQL DDL and DML scripts for tables, generated test data, constraints, views, triggers and APIs
- Neo4j - open source Graph Database
- AWS?
- APEX?
-
ArrangoDB - multimodel store, somewhat similar to MongoDB; newer, less mature, much nicer UI, good geo support (with ui openstreetmap integration). tip from Thijs van Ulden - https://www.arangodb.com/
-
BigQuery - Google Column Store -
-
p5.js a JS client-side library for creating graphic and interactive experiences, based on the core principles of Processing. - https://p5js.org/
-
Google Container Diff - utility to compare two container images and find differences
-
Skaffold - command line tool that facilitates continuous development for Kubernetes applications
-
Oracle Self Service Integration - cloud service for specifying and running (poll based) integration recipes
-
GraphQL - Apollo - alternative for REST APIs
-
WebSpeech API - speech to text support in HTML5 browsers
-
Apache Drill - SQL on non-SQL sources such as JSON, CSV, Hadoop
-
Apache Camel - light weight Java based integration framework
-
Syndesis - UI for Camel
-
Oracle SQL Pattern Matching (Match Recognize)
-
Terraform
-
JShell - REPL CLI for Java
-
LiveSQL - browser based environment for experimenting with (Oracle) SQL
-
Google ContainerTools - collection of open source tools from Google for container and K8S development and management
-
KubeApps - Helm based deployments of dozens of (complex) applications and stacks onto Kubernetes cluster
-
Dash - Documentation Browser and Code Snippet Manager. Dash stores snippets of code and instantly searches offline documentation sets for 200+ APIs, 100+ cheat sheets and more https://kapeli.com/dash (MacOS and iOS)
-
Silver Searcher - source code search utility (https://github.com/ggreer/the_silver_searcher)
-
OneNote (Office 365)
-
Wappalyzer - a Chrome extension that lets you visit any webpage and see what stack was used to build it
-
CloudFlare - CDN, WebApp Firefall, ...
-
Elastic Stack for Logging/Monitoring: Beads, LogStash, Elastic Index, Kibana
-
ASCIIDoctor - Asciidoctor (https://asciidoctor.org/) is a text processor and publishing toolchain that converts AsciiDoc files into HTML5, PDF, EPUB, and MOBI.
-
Graal VM - create polyglot applications - for example Java application that can call Node JS/JavaScript and Python libraries or Node application that hooks into Java based logic
-
Browser Developer tools - Console, Debug, Traffic Inspector, ...
-
How to create a Chrome Browser plugin
-
CodeWars - to train developer coding skills: https://www.codewars.com/
-
RPA - quick introduction to Robotic Process Automation
-
CodePen (of JSFiddle) - browser based environment to try out (and share) samples/code snippets (HTML + CSS + JS)
-
JSONFormatter - https://chrome.google.com/webstore/detail/json-formatter/bcjindcccaagfpapjjmafapmmgkkhgoa?hl=en Chrome Extension for formatting and syntax highlighting JSON documents (loads documents from URL)
-
Google VisBug Chrome Extension: https://chrome.google.com/webstore/detail/visbug/cdockenadnadldjbbgcallicgledbeoc "Give power to designers & content creators, in a place where they currently feel they have little to none, by bringing design tool interactions and hotkeys to the browser"
-
Beacon Web API - https://developer.mozilla.org/en-US/docs/Web/API/Beacon_API - Introduction on use cases: https://www.smashingmagazine.com/2018/07/logging-activity-web-beacon-api/
-
NASA APIs - https://api.nasa.gov/
-
Web API for Blue Tooth (from Desktop/Tablet Browser) - https://developers.google.com/web/updates/2015/07/interact-with-ble-devices-on-the-web
-
Browser Push API - https://developers.google.com/web/fundamentals/push-notifications/
-
Browser Shape Detection API - https://medium.com/@eyevinntechnology/using-shape-detection-api-in-chrome-to-detect-if-anyone-is-watching-the-video-f3f898d2912
-
Browser Geofencing API - https://developers.google.com/location-context/geofencing/
-
Browser Web Share API - https://hackernoon.com/web-share-api-the-coolest-but-simple-e3bb7ec9bb02 , https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share and Web Share Target API: https://developers.google.com/web/updates/2018/12/web-share-target (currently only Chrome?)
-
Voice enabled Web Application using AWS Lex API (to interpret audio input) - https://aws.amazon.com/blogs/machine-learning/capturing-voice-input-in-a-browser/
-
Jupyter Notebooks for Data Gathering, Exploration, Visualization, Wrangling (Filtering, Conversion, Transformation, Enrichment) and Analysis: To run Jupyter Notebook in container: https://jupyter-docker-stacks.readthedocs.io/en/latest/using/selecting.html#jupyter-scipy-notebook ; run live notebooks online based on GitHub repo: https://mybinder.org/
-
Rechart - React UI library based on d3.js for charts in React applications
-
AWS AppSync - Cloud service for implementing a GraphQL server
-
HotJar - client side monitoring and user action tracking - https://www.hotjar.com/home2
-
KOA - NPM/Node alternative for Express - https://koajs.com/
-
GitLab - DevOps lifecycle platform - https://about.gitlab.com/
-
Code Analysis - Java Dynamic & Static Callgraph: https://github.com/gousiosg/java-callgraph , Ioh - Node Dynamic Node Call Analysis https://github.com/maierfelix/Iroh
-
MicroK8S - https://microk8s.io/?utm_source=MOTD&utm_medium=MOTD&utm_campaign=1)FY19_Cloud_K8
-
Aciinema - https://asciinema.org/ Free Terminal Recording software (including copy & paste from recordings )
-
LogRocket - client side log consolidation and analysis - learn what your users are doing in their browsers https://logrocket.com/signup/ (LogRocket is a frontend logging tool that lets you replay problems as if they happened in your own browser. Instead of guessing why errors happen, or asking users for screenshots and log dumps, LogRocket lets you replay the session to quickly understand what went wrong.)
-
Read the Docs - https://readthedocs.org/ open platform for creating, managing, publishing software documentation
-
Mark down editor - online or local: MDE https://simplemde.com/ and local: MarkDownPad - https://markdownpad.com/
-
Self service integration - Microsoft Flow, Oracle Self Service Integration, IFTTT, Zapier (https://zapier.com/)
-
Imgur - Image sharing/manipulation (animated GIF generation) - https://imgur.com/vidgif
-
LetsEncrypt - Let’s Encrypt is a free, automated, and open Certificate Authority. https://letsencrypt.org/
-
JSONPath and/or JMESPath - JSON querying (and light weight transformation with JMESPath) - (https://goessner.net/articles/JsonPath/) in many client libraries/languages including Java and Node JS- https://github.com/json-path/JsonPath, Online JSON Path Evaluator http://jsonpath.com/; introduction to JSONPath: https://www.baeldung.com/guide-to-jayway-jsonpath ; NPM Package: https://www.npmjs.com/package/jsonpath
-
OpenVAS - http://www.openvas.org/ - a full-featured vulnerability scanner. OpenVAS is available as packages in multiple Linux distros, in source code form, and as a virtual appliance that can be loaded into a VM on Windows. It is also part of Kali Linux.
-
mitmproxy - https://mitmproxy.org/ is a free and open source interactive HTTPS proxy.
-
Kialia - Service Mesh Observability (friends of Istio) https://www.kiali.io/
-
Apache Nifi - Real Time High Volume Data Flows to process and distribute data - https://nifi.apache.org/
-
FuentD - Logging collector, similar to LogStash/Beats in Elastic Stack; also used with Elastic and Kibana; part of CNCF, frequently used in Kubernetes - https://www.fluentd.org/
-
Kayenta - automated Canarary release analysis (integrated with Spinnaker) - https://cloud.google.com/blog/products/gcp/introducing-kayenta-an-open-automated-canary-analysis-tool-from-google-and-netflix
-
Spinnaker - Release Management (some overlap with Jenkins, GitLab) - https://www.spinnaker.io/concepts/
-
Zipkin - collect trace information across end to end chains of processing requests - great to use with microservices and multilayered APIs - https://zipkin.io
-
ExpressGateway - lightweight all Node API Gateway - https://www.express-gateway.io/ (alternative to Kong, Apigee, Tyk)
-
CircleCI - Automated Continuous Integration (cloud service) - https://circleci.com/
-
Gatling - load testing tool, alternative for JMeter (looks attractive) - https://gatling.io/
-
DuckDNS - free Dynamic DNS service (get a fixed URL that is mapped to an IP address that you can change at any moment ) https://www.duckdns.org
-
StreamSets - data integration engine for flowing data - https://streamsets.com/products/dataops-platform
-
Debezium - to turn database change events into Kafka messages - https://debezium.io (now including Oracle Databade connector - using XStreams which requires Golden Gate license)
-
RethinkDB - https://www.rethinkdb.com/ - database pushing JSON to apps (leverage socket.io)
-
Storyline http://storyline.knightlab.com/ , StoryMap - https://storymap.knightlab.com/
-
Microcks - http://microcks.github.io/ - mock implementations for APIs/microservices
-
Apicurio.io - https://www.apicur.io/ - API design and publication (similar to Swagger and Apiary)
-
Axon Framework and Server - https://axoniq.io/ - event driven microservices in Java
-
ZeroMQ - http://zeromq.org/ Distributed messaging
-
NPM Axon - https://www.npmjs.com/package/axon message-oriented socket library for node.js heavily inspired by zeromq
-
Rabbit MQ - https://www.rabbitmq.com/ open source message broker, lightweight and easy to deploy on premises and in the cloud. It supports multiple messaging protocols. RabbitMQ can be deployed in distributed and federated configurations to meet high-scale, high-availability requirements.
-
Nakadi https://github.com/zalando/nakadi /https://nakadi.io/ - Zalando's distributed event bus that implements a RESTful API abstraction on top of Kafka-like queues ; alternative to Confluent Platform (and perhaps Axual as well); it has "timelines" that allows moving Topics between Clusters in a smart way (see https://archive.fosdem.org/2018/schedule/event/nakadi/)It also allows combining different "sequential logs" backends (Kafka and others) under the covers
-
Keda - Kubernetes Event Driven Autoscaling (https://github.com/kedacore/keda) - Adding and Removing Pods for example based on how full an event queue becomes (or based on HTTP request rate)