Friday, September 24, 2021

Code & Coffee 9/24/2021

 Code & Coffee 9/24/2021

Topic:  Learning like a Nobel Prize winning Physicist (Richard Feynman)

My outline and topic notes.

  • Talked about antennas and Ham Radio
  • Adding step zero, gathering the information about the topic
  • Replace you words with diagrams
  • Also is this about "the need to show off"?
    • Is some of this "Do as I say not as I do"
  • Asciinema: https://asciinema.org/
    • My demo:
    • https://asciinema.org/a/WuGUIbTzYSX1buMLl1vyXmXwU
    • Talked about screen recording terminal sessions
      • mitigation techniques
      • mitigating mitigation techniques
  • Physics vs. Astro Physics vs. Quantum Mechanics
    • They are all a bit different
    • Use lots of diagrams and examples
  • Audio Book: Surely your joking Mr. Feynman
  • Using this in real life:
    • Bruce: has a presentation next week that can be refined.
    • Ryan: interested in using this to improve onboarding.
  • Learning styles
    • Veritasium: The biggest myth in education (You are not a visual learner)
    • Make sure to touch on each of these while you are presenting
    • "Inquiry Learning"
    • "Flipped Classroom"
    • "The best way to teach people is to not teach them"
      • Instead of the traditional tests and structure
        • Mastery structure
        • "This is a list of what you need to demonstrate that you have learned"
        • Choose your own adventure on how to demonstrate mastery.
  • General work banter
    • Sales are good and strong, back to 2019 levels
      • Trans is working Saturdays to drive pizza dough around
      • Supply chain is working to get back in order
      • Supply chains are resonant systems and there is noise in the system
  • Water filtering and putting stuff back into pure water
    • Need to put stuff back into filtered water to make you not demineralize
  • Watch out for illegal goat farms
  • Also walapini may be a good server celler.
  • Someone always takes the good ideas
    • https://akash.network/
    • but wait theres more... the idea isn't dead yet.
Lots of new people, and as usual lots of good discussion.

Code & Coffee 9/17/2021

 We had Code & Coffee, but I missed capturing the notes topics varied a good time was had by all.

Learning like a Nobel prize winning physicist

Over several upcoming sessions of Code & Coffee we will explore The SOLID principles of object oriented design.  To facilitate that we have a short intro in a future meeting. Today (9/24/2021) there will be an introduction to a framework for facilitating the learning and exploration.

Feynman technique for problem solving:

  • Pick topic
  • Write down everything you know in a note book
    • Add lots of illustrations and examples
    • put it into a rough outline
  • Present it
    • Are you able to present the topic simply, clearly and correctly?
      • If not you have gaps
    • Capture questions 
      • Questions that you are unable to answer are gaps in what you know
  • Simplify
    • Revisit and revise your notes
    • Fill in the gaps discovered in the latest presentation
    • Simplify the language and illustrations
  • Repeat
    • In each iteration you will be able to discover new ways to distill the information and present it more clearly
    • Find a new group that you can present the information to and try again.
This technique works well when preparing for a big presentation.  The first iteration can be presentation to the rubber duck on your desk as even when no other person is present you will notice things to be improved.  Next iteration may be a local user group or in a work lunch & learn.  Then regional and finally the national event.  

Without knowing the framework this is how I prepared for presenting "Disintegration Testing" at QA or the Highway and The Agile Conference in 2014.  Before presenting at the larger venues it was presented and refined at local groups. Even though it is a natural process and was use implicitly being aware and explicit in the process would have allowed the presentation to be even better.  Also missing in that presentation was the focus on continual simplification of the subject.

Feynman's advice is to find a practical problem to apply the topic.  His example for this is the flagpole problem in the "Problem Solving Techniques" video (link 2 in references) starting at about 8:00. This is something to look for when listening to Feynman talk in the links below, it is fascinating to observe the way he explains things knowing that his goal is simplification.


References:

  1. List: Richard Feynman and his technique.
  2. Richard Feynman - Problem Solving Techniques:  (I really like this one, it is part of the list, if you only watch one, make it this one)
  3. Richard Feynman - Computer Heuristics Lecture: (An example of an Nth iteration of him using the technique)
  4. Trello blog post: Boost Your Leadership Skills With The Feynman Technique


Friday, September 10, 2021

Code & Coffee 9/10/2021

 Code & Coffee 9/10/2021

  • Topic: "What is clean code to you"
    • A data access layer that is actually tested
      • there is a thing called NULL
      • it is uncomparable
      • value.equals(otherValue) will make your life less fun 
        • Sonar Cube would have caught that 
          • yup :(
      • 10 year old code may still have fun and interesting bugs yet to be discovered
      • Clean code is code you can trust
    • Clean code takes more time
      • and yet this saves time
      • Quick and dirty saves time
        • the cost is hidden in the future
    • When you are doing code in reverse
      • (dissecting code previously written to figure out what the code is doing)
      • The time taken is exponential with the complexity of the code.
    • Clean code is code that is acceptable to the maintenance team
    • Clean code is NOT ssdd
      • Shiny Stuff Driven Development
      • aka Resume Driven Development
      • This leads to somewhat hackish code as it takes time to learn how to cleanly implement a new tool or technology
      • Instead of resume padding seek to master the new tech and make sure that it is tested and that other team members are onboard with the new shiny stuff.
    • Clean code and testing
      • attitude has changed over time
      • used to be more militant
      • but over time you realize that people are trying their best but more understanding now
      • virtually nobody is deliberately lax on quality.
      • This is a sensitive topic but there are techniques for having these conversations.
    • SOLID and DRY
      • both are commonly misunderstood, misapplied and worthy of additional study.
      • For example Single Responsibility
        • ... database and business logic can be side by side if their requirements will ALWAYS change at the same time.
        • You missed more examples because I don't type fast enough to keep up sometimes.
      • Is SOLID still the best we can do?
        • I wonder if part of the pain is friction from applying OO principals in a functional-ish style
    • Can you grok this code,  can you read it and modify it and how long will it take to do so.
    • Postel's law: https://en.wikipedia.org/wiki/Robustness_principle
    • Clean code is not prematurely optimized
  • Communication
    • Sometimes it seems that people are using works from the same language
      • but entirely failing to convey meaning
    • It is good to be able to recognize when this is happening so that course corrections can happen
  • Linux distros
    • Manjaro - Arch derivitive
      • "easy mode arch"
      • Used this as it had the latest kernel at the time
    • Next up is back to Ubuntu, it caught up to the kernel that is needed for the fancy video card
  • Barrier for mouse sharing - required xorg, does not support wayland
  • Talked a bit about HATEAOS (pronunciation is left to the reader) and beyond.
    • Links about what is beyond and how it to make it more useful:
    • http://amundsen.com/talks/2015-04-codepalousa/semantic-gap.html
      • As presented at Google: https://www.youtube.com/watch?v=UkAt9XSOfaE
      • Slides: http://amundsen.com/talks/2015-04-codepalousa/gap-slides.pdf
      • On O'Reilly Learning: https://learning.oreilly.com/videos/rest-hypermedia-and/9781491936511/9781491936511-video219221/
        • better audio if you have access.
    • I have not looked deeply into this yet but it looks to have some very interesting potential.

Code & Coffee 9/3/2021

 

Code & Coffee 9/3/2021

  • No topic today
  • Talked about chatty queries and optimization
    • Some queries prompt many many other queries and how to tweak these to make them less "chatty"
    • Stories about queries past
  • Talked about profile pictures
    • Why not just use Gravatar?
      • But wait, how does Gravetar make money?
      • Talked about security and privacy implications of Gravetar
      • links pending more research.