From c088f4e88211dcd11e51760fc6fa07d2a8f6198a Mon Sep 17 00:00:00 2001 From: Dinis Cruz Date: Mon, 19 Feb 2018 22:47:14 +0000 Subject: [PATCH] More ideas from analogue notes --- content/2.technologies/iot.md | 17 +++++++++++++ content/3.what-is-this/linux.md | 13 +++++++--- content/3.what-is-this/python.md | 14 ++++++++++- content/3.what-is-this/raspberry-pi.md | 8 +++--- .../3.what-is-this/wallabyjs-and-nodejs.md | 25 +++++++++++++++++++ content/5.concepts/agile-and-kanban.md | 21 +++++++++++++--- content/5.concepts/change.md | 6 ++--- content/5.concepts/chaos-engineering.md | 21 ++++++++++++++-- content/5.concepts/continuous-integration.md | 6 ++--- content/5.concepts/fdd.md | 15 +++++------ content/5.concepts/gdpr.md | 6 ++--- content/5.concepts/tdd.md | 9 ++++++- content/strings-should-be-banned.md | 15 +++++++++++ 13 files changed, 144 insertions(+), 32 deletions(-) create mode 100644 content/2.technologies/iot.md create mode 100644 content/3.what-is-this/wallabyjs-and-nodejs.md create mode 100644 content/strings-should-be-banned.md diff --git a/content/2.technologies/iot.md b/content/2.technologies/iot.md new file mode 100644 index 0000000..bd34f34 --- /dev/null +++ b/content/2.technologies/iot.md @@ -0,0 +1,17 @@ +--- +title: IOT (Internet of Things) +--- + +... + +--- + +**Topics to cover and ideas** + + - why it is big + - what it means for programmers + - massive job opportunities + - the power of software vs hardware + - it is all about code + - most IOT vendors don't understand much about modern development practices and security + - show shodan diff --git a/content/3.what-is-this/linux.md b/content/3.what-is-this/linux.md index 5f74ded..70bb475 100644 --- a/content/3.what-is-this/linux.md +++ b/content/3.what-is-this/linux.md @@ -3,9 +3,16 @@ title: linux --- -{{% panel theme="success" header="Topics to cover" %}} +**Topics to cover and ideas** + + - linux history (it all started by Linus Torvalds inspired by a MINIX system) + - mention some of Linus views - - linux - [Linux patch submitted by an 4 year old](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=690b0543a813b0ecfc51b0374c0ce6c8275435f0) + - most complex software in the world + - git was created to manage the linux code development + - you need to learn it, how to install kernel drivers, how to hack it, how to rebuilt it + - power of raspberry pi is that it gives you a linux environment for you to play with + - Mac is linux under the hood (same heritage) + -{{% /panel %}} \ No newline at end of file diff --git a/content/3.what-is-this/python.md b/content/3.what-is-this/python.md index 58fac62..7c78f07 100644 --- a/content/3.what-is-this/python.md +++ b/content/3.what-is-this/python.md @@ -2,6 +2,18 @@ title : Python --- -Here is how it all started +... +**Topics to cover and ideas** + + - Here is how it all started + - what makes python special + - how guido was hired by google + - Guido van Rossum + - https://twitter.com/gvanrossum/ + - guido created python when he was 35 + - https://gvanrossum.github.io/ + - http://neopythonic.blogspot.co.uk/2016/04/kings-day-speech.html + + - make reference to other languages like NodeJs \ No newline at end of file diff --git a/content/3.what-is-this/raspberry-pi.md b/content/3.what-is-this/raspberry-pi.md index edb7171..2897cc9 100644 --- a/content/3.what-is-this/raspberry-pi.md +++ b/content/3.what-is-this/raspberry-pi.md @@ -3,8 +3,10 @@ title: raspberry-pi --- -{{% panel theme="success" header="Topics to cover" %}} +**Topics to cover and ideas** - why was it created - -{{% /panel %}} \ No newline at end of file + - https://en.wikipedia.org/wiki/Raspberry_Pi_Foundation + - https://www.makeuseof.com/tag/raspberry-pi-creditcard-sized-arm-computer-25/ + - use a raspberry PI to connect to a hardware (get one of the starter kits (add link). Make a led blink, create a mobile phone, etc.. + - connected to maker movement and IOT world \ No newline at end of file diff --git a/content/3.what-is-this/wallabyjs-and-nodejs.md b/content/3.what-is-this/wallabyjs-and-nodejs.md new file mode 100644 index 0000000..029ff24 --- /dev/null +++ b/content/3.what-is-this/wallabyjs-and-nodejs.md @@ -0,0 +1,25 @@ +--- +title: WallabyJS and NodeJS +--- + +... + +--- + +**Topics to cover and ideas** + + - why wallabyJS is a massive paradigm shift and why is it so good + - real time test execution + - only execution of tests affected by changes + - ability to see the code coverage in real-time + - ability to easily just run one test + - which with the real-time coverage, provides a much better way to debug that the normal 'debug/breakpoint model' + + - why NodeJS took the world by storm + - the power of async code + - generating 20k requests with a couple lines of code + - coding at the speed of thought (and type) + - node history (based on chrome's V8) + - the node forking incident (io.js) + - why it was so important + - why java could had done with a fork like that \ No newline at end of file diff --git a/content/5.concepts/agile-and-kanban.md b/content/5.concepts/agile-and-kanban.md index 368e460..303f5dc 100644 --- a/content/5.concepts/agile-and-kanban.md +++ b/content/5.concepts/agile-and-kanban.md @@ -3,12 +3,27 @@ title: Agile and Kanban --- -{{% panel theme="success" header="Topics to cover" %}} +**Topics to cover and ideas** - history - why it worked + - agile manifesto + - https://www.agilealliance.org/agile101/the-agile-manifesto/ + - Individuals and interactions over processes and tools + - Working software over comprehensive documentation + - Customer collaboration over contract negotiation + - Responding to change over following a plan + + - [Software Craftsmanship](http://manifesto.softwarecraftsmanship.org/) + - Not only working software , but also well-crafted software + - Not only responding to change , but also steadily adding value + - Not only individuals and interactions , but also a community of professionals + - Not only customer collaboration , but also productive partnerships + - Anton cords + - explain concepts (with diagrams) + - how agile become dogma and created environments where agile teams where not agile at all + - processes become more important than understanding why something was being created in the first place, to much effort was put on estimates, to much focus was placed on what could be done in 2 weeks + - Scrumbam is a nice alternative - [The Mythical Man-Month](https://en.wikipedia.org/wiki/The_Mythical_Man-Month) - -{{% /panel %}} \ No newline at end of file diff --git a/content/5.concepts/change.md b/content/5.concepts/change.md index 0fac6d4..4d96c6a 100644 --- a/content/5.concepts/change.md +++ b/content/5.concepts/change.md @@ -3,7 +3,7 @@ title: Change --- -{{% panel theme="success" header="Topics to cover" %}} +**Topics to cover and ideas** - Change is the only constant - Enjoy lose briefs (they are an opportunity to refactor those briefs into something that you are good at) @@ -11,5 +11,5 @@ title: Change - find the sweet spot where you are adding a lot of value - view problems as oportunities (which can be broken down into smaller problems and tasks) - -{{% /panel %}} \ No newline at end of file + - [Who Moved My Cheese: An Amazing Way to Deal with Change in Your Work and in Your Life](https://www.amazon.co.uk/Who-Moved-My-Cheese-Amazing/dp/0091816971) + - [Our Iceberg is Melting: Changing and Succeeding Under Any Conditions](https://www.amazon.co.uk/Our-Iceberg-Melting-Succeeding-Conditions/dp/1509830111/) diff --git a/content/5.concepts/chaos-engineering.md b/content/5.concepts/chaos-engineering.md index dd44da2..2104484 100644 --- a/content/5.concepts/chaos-engineering.md +++ b/content/5.concepts/chaos-engineering.md @@ -3,11 +3,28 @@ title: Chaos Engineering --- -{{% panel theme="success" header="Topics to cover" %}} +**Topics to cover and ideas** - Great concept (from 2017) - Security has been doing this for ages - Add references to site and best posts + - focus on resilient systems + - need to understand and visualize what is going on + - a massive problem with micro-services (and any services/monolith) based application is vibility into what is going on (and even just getting good graphs is the first step, just ask anybody who has deployed AppDynamics) + - integrate this concept with the SRE's 'Error Budget' + - expand on the concept of 'Steady state' (and write tests for it) + - how we want tests to replicate it -{{% /panel %}} \ No newline at end of file + +**references**: + + - [The Language of Chaos Experiments in Chaos Toolkit](https://medium.com/chaos-toolkit/the-language-of-chaos-experiments-in-chaos-toolkit-bd55a5c04057) + - https://github.com/chaostoolkit , http://chaostoolkit.org/ , http://chaostoolkit.org/faq/ + - http://www.oreilly.com/webops-perf/free/chaos-engineering.csp book + - [Chaos Engineering: Why the Label Matters](https://medium.com/russmiles/chaos-engineering-why-the-label-matters-35ddbb974fa5) + - [Chaos Engineering for the Business](https://medium.com/russmiles/chaos-engineering-for-the-business-17b723f26361) introduces great concept "Limited scope, continuous, disaster recovery" + - [Are you ready for Chaos Engineering?](https://medium.com/russmiles/are-you-ready-for-chaos-engineering-59b859091281) + - [Chaos engineering paradigm](https://www.codibly.com/2017/05/chaos-engineering-paradigm/) + - https://github.com/Netflix/chaosmonkey + - [From resilient to antifragile - Chaos Engineering Primer DevSecCon](https://www.slideshare.net/sbodiu/from-resilient-to-antifragile-chaos-engineering-primer-devseccon) \ No newline at end of file diff --git a/content/5.concepts/continuous-integration.md b/content/5.concepts/continuous-integration.md index d2ceab4..795c6ee 100644 --- a/content/5.concepts/continuous-integration.md +++ b/content/5.concepts/continuous-integration.md @@ -3,7 +3,7 @@ title: Continuous Integration --- -{{% panel theme="success" header="Topics to cover" %}} +**Topics to cover and ideas** - why it matters - how it works @@ -17,6 +17,4 @@ title: Continuous Integration - ZAP (to generate attack traffic) - ELK (to visualise traffic) - Write security tests that execute against site - - -{{% /panel %}} \ No newline at end of file + - compare with CD (Continuous Delivery)O diff --git a/content/5.concepts/fdd.md b/content/5.concepts/fdd.md index fbcd072..2520e0c 100644 --- a/content/5.concepts/fdd.md +++ b/content/5.concepts/fdd.md @@ -3,7 +3,7 @@ title: FDD (Feedback-Driven Development) --- -{{% panel theme="success" header="Topics to cover" %}} +**Topics to cover and ideas** - real-time feedback in IDE (REPLs) - this is key to learn @@ -12,16 +12,13 @@ title: FDD (Feedback-Driven Development) - wallabyjs - great example of what this UI needs to be - incredible how it has not be copied into all IDEs (as far as I can tell only NCrunch has the same features) - - why is it so good - - real time test execution - - only execution of tests affected by changes - - ability to see the code coverage in real-time - - ability to easily just run one test - - which with the real-time coverage, provides a much better way to debug that the normal 'debug/breakpoint model' - - all code changes (except refactoring) should require a test change - see http://pitest.org/ - see chaos engineering + - every developer does tests all time + - the question is how repeatable, scalable, mesuable those tests are + - and how much context switching occurs + + - the FDD applies to much more than just coding (see chapter on "Inventing on Principle") it is also related to how we learn -{{% /panel %}} \ No newline at end of file diff --git a/content/5.concepts/gdpr.md b/content/5.concepts/gdpr.md index fee28b6..f08104f 100644 --- a/content/5.concepts/gdpr.md +++ b/content/5.concepts/gdpr.md @@ -3,8 +3,8 @@ title: GDPR --- -{{% panel theme="success" header="Topics to cover" %}} +**Topics to cover and ideas** - Know your rights. What does it mean for you - -{{% /panel %}} \ No newline at end of file + - History of privacy + - [The Right to Curate an Identity](https://pbx-group-security.com/blog/2017/12/04/the-right-to-curate-an-identity/) diff --git a/content/5.concepts/tdd.md b/content/5.concepts/tdd.md index 8df8f63..c728b78 100644 --- a/content/5.concepts/tdd.md +++ b/content/5.concepts/tdd.md @@ -6,4 +6,11 @@ title: TDD (Test-Driven Development) **Topics to cover and ideas** - the most coverage you get, the more changes you are happy to make, the better the code is because you have the confidence to make the hundreds of small changes that the only way to create a high quality and scalable application - - be a craftsman \ No newline at end of file + - be a craftsman + - explain history + - key challenges + - why the TDD community created dogma and lost the plot + - if you don't have 100% code coverage, what are those bits of code not covered by tests? (what happens if that code changes) + - everything should be tested + - history of a site that went down for hours because of a one char (pipe) change in a nginx config file + - explain BDD and Gherkin language \ No newline at end of file diff --git a/content/strings-should-be-banned.md b/content/strings-should-be-banned.md new file mode 100644 index 0000000..faa0bae --- /dev/null +++ b/content/strings-should-be-banned.md @@ -0,0 +1,15 @@ +--- +title: Strings should be banned +--- + +... + +--- + +**Topics to cover and ideas** + + - Strings are not strongly typed + - You never want a string , you want a specific type (with a very specific format/regex) + - Strings are 4Gb monsters + - What happens is some fields are given 100k of data (what is the impact on the back end + - Each layer needs to validate all data that it receives and consumes \ No newline at end of file