Programming paradigm based on the concept of objects
POPULARITY
For the final episode of Hot Girls Code season 3, we chat about some of the iconic women in tech throughout history who have been trailblazers and had a huge impact in the world of tech. From writing the code that sent humans to space, through to creating innovations in AI, women have been there every step of the way. Join us in this episode as we celebrate the accomplishments of these tech girly icons! Hot Girls Code will be back in February 2025! Episode Links To hear more about compilers, check out Episode 32. Are IDEs the Makeup Bags of the Coding World? To learn about OOP, check out Episode 34. What is Object-Oriented Programming? Where to Find Us: Instagram Tik Tok The Hot Girls Code Website Sponsored by: Trade Me Jobs
В 71 выпуске подкаста Javaswag поговорили с Алексеем Жидковым об эргономичном подходе для разработки архитектуры проекта 00:00 Начало 12:06 Работа консультанта 17:38 Эргономичный подход и его принципы 26:44 Практика применения принципов разработки 30:55 Трудности внедрения DDD на практике 37:15 Популярность DDD и его реальная эффективность 39:33 TDD и его место в эргономичном подходе 41:00 Тестирование как основа разработки 43:55 Проблемы с моками в тестировании 48:50 Архитектурные подходы и JPA 51:01 Функциональная архитектура и ее влияние на разработку 55:36 Проблемы с ORM и Hibernate 01:00:03 Эргономичность и альтернативы ORM 01:01:53 Неизменяемая модель данных 01:05:58 Эргономичный подход в разработке 01:08:32 Обсуждение стека технологий и его эволюция 01:11:21 Эргономичный подход в разработке проектов 01:17:14 Проблемы объектно-ориентированного программирования 01:20:56 Декомпозиция системы и создание API 01:22:38 Тестирование и разработка по TDD 01:27:24 Экономика эргономичной архитектуры 01:30:59 Элементы эргономичного подхода 01:40:15 Проблемы многопоточности 01:42:58 Непопулярное мнение Гость - https://t.me/ergonomic_code Ссылки: Канал в телеграме https://t.me/ergonomic_code Сайт Алексея https://azhidkov.pro/ Многоликий принцип единственности ответственности - мой разбор формулировок и интерпретаций Single Responsibility Principle, которые даёт сам Анкл Боб. FizzBuzz Enterprise Edition - пример доведения Open-Closed Principle до абсурда SOLID Deconstruction - Kevlin Henney - c 28:23 докладчик говорит о том, что Liskov Substituion Principle является нонсенсом - для его соблюдения, вы не можете переобределять методы - только добавлять новые, про которые программа-клиент ничего не знает Domain-Driven Design: Tackling Complexity in the Heart of Software - та самая книга про DDD Принципы юнит-тестирования - самая крутая на сегодняшний день книга по тестированию бакендов Сайт Владимира Хорикова РЕПЕТИЦИЯ Структурный дизайн. Древний секрет простого и быстрого кода. - репетиция моего доклада на Joker ‘24 РЕПЕТИЦИЯ Функциональная архитектура и Spring Data JDBC. 4 года в проде, полёт отличны" - репетиция моего второго доклада на Joker ‘24, который в итоге стал Lightening Talk-ом Why is Java making so many things immutable? - пост в блоге Оракла, где автор пишет “чуваки, не парьтесь, GC заточен на быстрое создание объектов” Trainer Advisor - реальный проект по Эргономичному подходу Диаграмма эффектов - диаграмма, которую я использую для декопозиции ядра/домена/модели (сущностей и интеграций) на модули Алексей Жидков — Рациональный подход к декомпозиции систем на модули или микросервисы - мой доклад на JPoint ‘23 с алгоримтом декомпозиции диаграммы эффектов Lean Architecture: for Agile Software Development The Transformation Priority Premise, Code That Fits in Your Head - как выходить из тупика, когда в продовом коде захардкожен OK 200 и тест зелёный Как я превратил легаси-проект в конфетку за полгода. Том 1 - мой пост о том, как я переделал проект по Эргономичному подходу и ускорил работу команды в три раза Метрика Cognitive complexity или простой способ измерить сложность кода - лучшая альтеранитва цикломатической сложности Code Complexity - плагин для IDEA, который рисует когнитивную сложность прямо в редакторе Alan Kay at OOPSLA 1997 - The computer revolution hasnt happened yet - Алан Кей говорит, что не имел ввиду C++, когда придумывал термин ООП Dr. Alan Kay on the Meaning of “Object-Oriented Programming” - Алан Кей говорит, что имел ввиду под ООП Кип сейф!
In this episode of Control Intelligence, written by contributing editor Tobey Strauch, editor in chief Mike Bacidore discusses object-oriented programming in PLCs.
In this episode of the podcast, we start our mini-series on how to look at coding with Objects in Java, kicking off with understanding encapsulation. Check out our courses at https://courses.javaeasily.com Get your Java Beginner's Starter Kit over at https://javaeasily.com This is the Java Easily Podcast where beginning and intermediate Java developers can get all the latest tips, tutorials and advice on Java software development.
An airhacks.fm conversation with Nicolai Parlog (@nipafx) about: the advantages and challenges of Object-oriented programming (OOP) vs data-oriented programming (DOP) in Java, using Java record classes, sealed interfaces, and switch expressions to implement business logic outside of data classes, the advantages of polymorphism and transparent persistence in specific use cases, the pitfalls of deep inheritance hierarchies and instance of checks, modeling data with records and sealed interfaces, validating data at the boundaries and ensuring immutability, using switch expressions and pattern matching for type-based logic, the advantages of data-oriented programming for maintainability and safety, applying data-oriented programming to web services and data pipelines, combining enums with records for complex configurations Nicolai Parlog on twitter: @nipafx
If you're studying to become a software developer or you're early in your career, then this episode is for you! We will be covering five basic concepts every developer should know from what a variable is, to the SOLID principles. In the epsiode, we give a brief overview of our five most important software concepts as well as direct you to our other episodes if you want to learn more. Links Programming Fundamentals Check out Episode 10. Common Data Structures Check out Episode 4. Getting Started: The Fundamental Concepts of Coding Version control Check out Episode 20 Why you need Version Control in your Life if you want to learn more about version control Check out Episode 22 Git 101 to learn more about Git Object-Oriented Programming and Popular Design Principles Check out Episode 34. What is Object-Oriented Programming? to learn more about OOP and its principles Check out Episode 12. What is Good Code? to learn about a bunch of popular design principles. Check out Episode 37. Breaking Down the SOLID Principles Basics of software components Check out Episode 9: Types of Software Engineering Roles to learn about different types of software and the people that work on them Check out Episode 24 Basics of Software Infrastructure to learn more about the different parts of a software system work together Debugging and Problem-Solving Skills Check out Episode 4. Getting Started: The Fundamental Concepts of Coding (starting at 16.53) to learn more about debuggers and IDE Check out Episode 32. Are IDEs the Makeup Bags of the Coding World? (starting at 7.28) to learn even MORE about debuggers and IDE Hot Girls Code will be back on the 14th of August. Follow us on Instagram & Tik Tok @hot_girls_code to keep up to date with the podcast & learn more about being a women in tech!
Link and references from the video:https://williamdurand.fr/2013/06/03/object-calisthenics/https://www.learnagilepractices.com/posts/decoding-oop-complexity-how-objecthttps://github.com/dan-the-dev/object-calisthenics-rules #objectorientedprogramming #programming #softwaredevelopment #softwareengineer ___________________________________________________________________ Discover Learn Agile Practices: https://learnagilepractices.com/Subscribe to the newsletter: https://learnagilepractices.com/subscribeJoin the free Telegram channel: https://t.me/+2QAtoLNIgVU0NmU0Need help in developing your career in Software? Discover my coaching and mentorship program: https://learnagilepractices.com/coachingFollow me: https://danthedev.carrd.co/
Witam w dwieście trzydziestym drugim odcinku podcastu „Porozmawiajmy o IT”. Tematem dzisiejszej rozmowy w serii podcastów o software craftsmanship jest object-oriented programming czyli programowanie obiektowe.Dziś moim gościem jest Łukasz Drynkowski, z którym mam przyjemność współtworzyć portal z ofertami pracy dla branży IT o nazwie SOLID.Jobs.Główne myśli o programowaniu obiektowym z tego odcinka to:piszcie kod OOP a nie imperatywny wykorzystujący obiekty,używajcie nie tylko enkapsulacji i dziedziczenia ale też poliformizmu,przemyślcie jakie zalety daje wam w projekcie programowanie obiektowe i starajcie się je wykorzystać w celu poprawienia utrzymowalności kodu,pamiętajcie że object-oriented programming nie jest jedynym paradygmatem programowania, może dla danego zadania znajdziesz lepsza alternatywę.Subskrypcja podcastu:zasubskrybuj w Apple Podcasts, Google Podcasts, Spreaker, Sticher, Spotify, przez RSS, lub Twoją ulubioną aplikację do podcastów na smartphonie (wyszukaj frazę „Porozmawiajmy o IT”)poproszę Cię też o polubienie fanpage na FacebookuLinki:Profil SOLID.Jobs na LinkedIn – https://www.linkedin.com/showcase/solid.jobs/SOLID.Jobs – https://solid.jobs/Wsparcie:Wesprzyj podcast na platformie Patronite - https://patronite.pl/porozmawiajmyoit/Jeśli masz jakieś pytania lub komentarze, pisz do mnie śmiało na krzysztof@porozmawiajmyoit.plhttps://porozmawiajmyoit.pl/232
In this conversation, Ben interviews Caleb Porzio, the creator of AlpineJS and Laravel Livewire. The discussion ranges from discussions about life in general to specific testing practices and which notebook Caleb uses.LinksTuple.app - The best app for pair programmingAlpineJS Laravel Livewire Caleb's VSCode Course TakeawaysApply core truths to life outside of programming.Find ways to make difficult tasks easier.Change your environment to support your goals.Value tests as much as, if not more than, the code itself.Keep methods and functions short for better code quality.Embrace your strengths and delegate tasks that don't bring you joy.Focus on the meaty tasks that excite you.Consider rewrites carefully and prioritize other solutions first.Pull down unfamiliar code and interact with it to understand it better.Start the day with tasks that align with your goals and priorities.Chapters(00:00) - Introduction and Background (03:51) - Overview of LiveWire and Alpine (12:09) - Caleb's Programming Style (20:09) - Functional vs Object-Oriented Programming (25:39) - The Appeal of Functional Programming (32:01) - The Challenges of Learning Object-Oriented Programming (33:06) - Memory Allocation and Functional Languages (36:30) - Starting Complicated Projects (40:10) - Writing Blog Posts as Problem-Solving (42:30) - Core Beliefs (48:21) - Materials (49:20) - Getting into the Zone (51:14) - The Value of Tests Over Code (55:27) - Transitioning to Non-Typical Apps (01:03:00) - Radical Practices at Tuple (01:05:50) - Managing Pull Requests and Code Reviews (01:06:33) - Starting the Day and Prioritizing Tasks (01:07:41) - Balancing Maintenance and Long-Term Goals (01:09:52) - Finding Motivation for Maintenance Tasks (01:10:50) - Embracing Strengths and Delegating Weaknesses (01:11:46) - Continuous Improvement and Learning (01:14:19) - Favorite Tools and Productivity Hacks (01:19:07) - Core Beliefs and Values in Coding (01:21:19) - Benefits of Short Methods and Single File Principle (01:21:57) - Approaching Unfamiliar Code (01:22:51) - The Pros and Cons of Rewrites (01:23:46) - Final Thoughts and Passion for Coding
Lindsay Wardell tells how she persevered to write her own story as a programmer and shares her views on JavaScript frameworks & fatigue.Thanks to our sponsor, Logistically. Email: elmtown@logisticallyinc.com.Music by Jesse Moore.Recording date: 2023.11.06GuestLindsay WardellShow notes[00:00:20] Sponsored by Logistically[00:00:49] Introducing LindsayHuman Side of DevElm and Vite on Elm Radio, hosted by Dillon Kearns & Jeroen EngelsFunctional programming with Elm on PodRocket, hosted by Paul MikulskisFunctional and Object-Oriented Programming on Software Unscripted, hosted by Richard Feldman"Functional Programming in Vite" at ViteConf 2023elm-vue-bridgevite-elm-template.[00:01:54] Getting started in computing and programming[00:06:06] A break in Brazil"How to teach programming (and other things)?" by Felienne Hermans[00:09:27] Getting back into programmingFunctional and Object-Oriented Programming on Software Unscripted, hosted by Richard Feldman...again[00:18:55] Why Elm?JuralenFunctional and Object-Oriented Programming on Software Unscripted, hosted by Richard Feldman...yet again. Seriously, it's good.[00:28:06] The road to NoRedInkWikifunctionsViews on VueS08E014 Modern Web Podcast - Elm with Richard Feldman[00:33:05] JavaScript fatigue[00:38:04] Standardization around Vite[00:41:13] The challenge of legacy code at NoRedInknoredink-uiElm Landelm-pages[00:46:22] Star CommanderStar Commander (GitHub)Elm Town 63 – Opening the doors of functional programming[00:53:47] What are you excited about?Lamdera"The Economics of Programming Languages" by Evan Czaplicki at Strange Loop 2023[00:55:50] PicksLindsay's picksNuxtNaNoWriMo (National Novel Writing Month)Blood on the ClocktowerBabylon 5Jared's picksBattlestar GalacticaS2E2 - "One Moore", PortlandiaFeel It All Around by Washed Out
On today's episode, Elixir Wizards Owen Bickford and Dan Ivovich compare notes on building web applications with Elixir and the Phoenix Framework versus Ruby on Rails. They discuss the history of both frameworks, key differences in architecture and approach, and deciding which programming language to use when starting a project. Both Phoenix and Rails are robust frameworks that enable developers to build high-quality web apps—Phoenix leverages functional programming in Elixir and Erlang's networking for real-time communication. Rails follows object-oriented principles and has a vast ecosystem of plug-ins. For data-heavy CRUD apps, Phoenix's immutable data pipelines provide some advantages. Developers can build great web apps with either Phoenix or Rails. Phoenix may have a slight edge for new projects based on its functional approach, built-in real-time features like LiveView, and ability to scale efficiently. But, choosing the right tech stack depends heavily on the app's specific requirements and the team's existing skills. Topics discussed in this episode: History and evolution of Phoenix Framework and Ruby on Rails Default project structure and code organization preferences in each framework Comparing object-oriented vs functional programming paradigms CRUD app development and interaction with databases Live reloading capabilities in Phoenix LiveView vs Rails Turbolinks Leveraging WebSockets for real-time UI updates Testing frameworks like RSpec, Cucumber, Wallaby, and Capybara Dependency management and size of standard libraries Scalability and distribution across nodes Readability and approachability of object-oriented code Immutability and data pipelines in functional programming Types, specs, and static analysis with Dialyzer Monkey patching in Ruby vs extensible core language in Elixir Factors to consider when choosing between frameworks Experience training new developers on Phoenix and Rails Community influences on coding styles Real-world project examples and refactoring approaches Deployment and dev ops differences Popularity and adoption curves of both frameworks Ongoing research into improving Phoenix and Rails Links Mentioned in this Episode: SmartLogic.io (https://smartlogic.io/) Dan's LinkedIn (https://www.linkedin.com/in/divovich/) Owen's LinkedIn (https://www.linkedin.com/in/owen-bickford-8b6b1523a/) Ruby https://www.ruby-lang.org/en/ Rails https://rubyonrails.org/ Sams Teach Yourself Ruby in 21 Days (https://www.overdrive.com/media/56304/sams-teach-yourself-ruby-in-21-days) Learn Ruby in 7 Days (https://www.thriftbooks.com/w/learn-ruby-in-7-days---color-print---ruby-tutorial-for-guaranteed-quick-learning-ruby-guide-with-many-practical-examples-this-ruby-programming-book--to-build-real-life-software-projects/18539364/#edition=19727339&idiq=25678249) Build Your Own Ruby on Rails Web Applications (https://www.thriftbooks.com/w/build-your-own-ruby-on-rails-web-applications_patrick-lenz/725256/item/2315989/?utm_source=google&utm_medium=cpc&utm_campaign=low_vol_backlist_standard_shopping_customer_acquisition&utm_adgroup=&utm_term=&utm_content=593118743925&gad_source=1&gclid=CjwKCAiA1MCrBhAoEiwAC2d64aQyFawuU3znN0VFgGyjR0I-0vrXlseIvht0QPOqx4DjKjdpgjCMZhoC6PcQAvD_BwE#idiq=2315989&edition=3380836) Django https://github.com/django Sidekiq https://github.com/sidekiq Kafka https://kafka.apache.org/ Phoenix Framework https://www.phoenixframework.org/ Phoenix LiveView https://hexdocs.pm/phoenixliveview/Phoenix.LiveView.html#content Flask https://flask.palletsprojects.com/en/3.0.x/ WebSockets API https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API WebSocket connection for Phoenix https://github.com/phoenixframework/websock Morph Dom https://github.com/patrick-steele-idem/morphdom Turbolinks https://github.com/turbolinks Ecto https://github.com/elixir-ecto Capybara Testing Framework https://teamcapybara.github.io/capybara/ Wallaby Testing Framework https://wallabyjs.com/ Cucumber Testing Framework https://cucumber.io/ RSpec https://rspec.info/
מהו קוד ספגטי? מדוע הפקודה GoTo מסוכנת כל כך? ואיך כל זה קשור לבאג 2000?פרק היסטורי-סיפורי, שהולך אחורה אל ראשית המילניום (ואפילו קודם), אל המצאתה של שפת התכנות CLU, ואל התובנה שהובילה להתפתחותו של התכנות מונחה העצמים (Object Oriented Programming).
In today's episode, Sundi and Owen are joined by Yordis Prieto and Stephen Chudleigh to compare notes on HTTP requests in Elixir vs. Ruby, JavaScript, Go, and Rust. They cover common pain points when working with APIs, best practices, and lessons that can be learned from other programming languages. Yordis maintains Elixir's popular Tesla HTTP client library and shares insights from building APIs and maintaining open-source projects. Stephen has experience with Rails and JavaScript, and now works primarily in Elixir. They offer perspectives on testing HTTP requests and working with different libraries. While Elixir has matured, there is room for improvement - especially around richer struct parsing from HTTP responses. The discussion highlights ongoing efforts to improve the developer experience for HTTP clients in Elixir and other ecosystems. Topics Discussed in this Episode HTTP is a protocol - but each language has different implementation methods Tesla represents requests as middleware that can be modified before sending Testing HTTP requests can be a challenge due to dependence on outside systems GraphQL, OpenAPI, and JSON API provide clear request/response formats Elixir could improve richer parsing from HTTP into structs Focus on contribution ergonomics lowers barriers for new participants Maintainers emphasize making contributions easy via templates and clear documentation APIs drive adoption of standards for client/server contracts They discuss GraphQL, JSON API, OpenAPI schemas, and other standards that provide clear request/response formats TypeScript brings types to APIs and helps to validate responses Yordis notes that Go and Rust make requests simple via tags for mapping JSON to structs Language collaboration shares strengths from different ecosystems and inspires new libraries and tools for improving the programming experience Links Mentioned Elixir-Tesla Library: https://github.com/elixir-tesla/tesla Yordis on Github: https://github.com/yordis Yordis on Twitter: https://twitter.com/alchemist_ubi Yordis on LinkedIn: https://www.linkedin.com/in/yordisprieto/ Yordis on YouTube: https://www.youtube.com/@alchemistubi Stephen on Twitter: https://twitter.com/stepchud Stephen's projects on consciousness: https://harmonicdevelopment.us Owen suggests: Http.cat HTTParty: https://github.com/jnunemaker/httparty Guardian Library: https://github.com/ueberauth/guardian Axios: https://axios-http.com/ Straw Hat Fetcher: https://github.com/straw-hat-team/nodejs-monorepo/tree/master/packages/%40straw-hat/fetcher Elixir Tesla Wiki: https://github.com/elixir-tesla/tesla/wiki HTTPoison: https://github.com/edgurgel/httpoison Tesla Testing: https://hexdocs.pm/tesla/readme.html#testing Tesla Mock: https://hexdocs.pm/tesla/Tesla.Mock.html Finch: https://hex.pm/packages/finch Mojito: https://github.com/appcues/mojito Erlang Libraries and Frameworks Working Group: https://github.com/erlef/libs-and-frameworks/ and https://erlef.org/wg/libs-and-frameworks Special Guests: Stephen Chudleigh and Yordis Prieto.
Can you decipher the jargon of cybersecurity and ace the CISSP exam? Get ready to take notes as host Sean Gerber, a maestro of cybersecurity, breaks down the baffling world of libraries, ides, compilers, and object-oriented programming. With an emphasis on mastering the CISSP exam, Sean meticulously dissects complex concepts and questions, focusing on domain 8.1, and delivers a comprehensive understanding of the management thought process behind it.This week, we're peeling back the layers of cybersecurity! Sean expertly navigates topics such as inheritance in object-oriented programming, the cardinal role of redundancy in avoiding system failures, and the significance of assurance levels. Delve into the intricate world of secure authentication and session management for web applications, and discover what critical elements to prioritize. Plus, learn the ins and outs of error handling, and how polymorphism, cohesion, and coupling are vital in object-oriented application development. This episode is a must-listen if you're preparing for the CISSP exam or looking to expand your cybersecurity knowledge!Gain access to 30 FREE CISSP Exam Questions each and every month by going to FreeCISSPQuestions.com and sign-up to join the team for Free.
This week's episode is a Hot Girls Code classic: we break down jargon and show you that fancy sounding complex concepts and ideas are actually pretty straightforward when they're explained in a way that works well for you. Object-oriented programming is a term you hear thrown around often and it can seem really vague and confusing, so let's change that. In this episode, we break down what object-oriented programming is and the four principles that make it so efficient. New episodes come out fortnightly on Wednesday morning (NZT). Follow us on Instagram & Tik Tok @hot_girls_code to keep up to date with the podcast & learn more about being a women in tech!
Ready to level up your cybersecurity knowledge and coding prowess? We promise to elevate your understanding of CISSP development and libraries, as we venture into the world of code collections. Get a firm grip on the different types of libraries, from standard to custom, and learn about the potential dangers associated with cryptographic libraries. We also delve into the intriguing world of language-specific libraries and the pivotal role of packaging in the development realm.We then shift gears towards the dynamic field of development tools. From the nitty-gritty of integrated development environments to the intricacies of chat GPTs, we discuss their pros and cons, and the significance of understanding the code. Get a closer look at compilers and version control systems, your crucial allies for translating and tracking changes in source code. Finally, we tackle the key concepts of Object-Oriented Programming (OOP), their practical implications in cybersecurity, and the power of encryption algorithms. So buckle up and prepare to enter a world of code, cybersecurity, and essential development tools.Gain access to 30 FREE CISSP Exam Questions each and every month by going to FreeCISSPQuestions.com and sign-up to join the team for Free.
Array Cast - July 7, 2023 Show NotesThanks to Bob Therriault, Stephen Taylor, Richard Park and Marshall Lochbaum for gathering these links:[01] 00:01:55 Dyalog 23 User Meeting https://www.dyalog.com/user-meetings/dyalog23.htm[02] 00:04:56 Shakti DB https://shakti.com/[03] 00:05:37 Episode 56 (previous episode) https://www.arraycast.com/episodes/episode56-why-we-like-array-programming[04] 00:07:13 Ken Iverson https://en.wikipedia.org/wiki/Kenneth_E._Iverson TryAPL https://tryapl.org/[05] 00:08:25 Computing language paradigms https://en.wikipedia.org/wiki/List_of_programming_languages_by_type Procedural Programming https://en.wikipedia.org/wiki/Procedural_programming Functional Programming https://en.wikipedia.org/wiki/Functional_programming Object Oriented Programming https://en.wikipedia.org/wiki/Object-oriented_programming Array Programming https://en.wikipedia.org/wiki/Array_programming[06] 00:11:30 BQN programming language https://mlochbaum.github.io/BQN/ Dyalog APL programming language https://www.dyalog.com/ J programming language https://www.jsoftware.com/#/ k programming language https://aplwiki.com/wiki/K q programming language https://trykdb.kx.com/kx/signup/[07] 00:14:41 APL farm https://aplwiki.com/wiki/APL_Farm J forums https://code.jsoftware.com/wiki/System/Forums BQN forums https://app.element.io/#/room/#bqn:matrix.org[08] 00:16:30 kx.com[09] 00:18:50 SQL https://en.wikipedia.org/wiki/SQL[10] 00:21:42 Richard's videos https://dyalog.tv/Webinar/?v=AGWnBw7VBzg Dyalog tutorial https://tutorial.dyalog.com/ Dyalog course https://course.dyalog.com/ Stefan Kruger Learn APL https://xpqz.github.io/learnapl Stefan Kruger K book (WIP) https://github.com/xpqz/kbook[11] 00:26:00 BQN support of paradigms https://mlochbaum.github.io/BQN/doc/paradigms.html BQN tutorials https://mlochbaum.github.io/BQN/tutorial/index.html[12] 00:29:30 Scratch programming language https://scratch.mit.edu/ Blockly https://developers.google.com/blockly draw.io https://app.diagrams.net/[13] 00:31:05 Phrasal forms paper https://www.jsoftware.com/papers/fork.htm https://mlochbaum.github.io/BQN/doc/map.html#table https://mlochbaum.github.io/BQN/doc/tacit.html#combinators[14] 00:32:03 APL Show podcast https://apl.show/2023/01/27/Processes-and-Structures.html[15] 00:35:25 q diagrams https://code.kx.com/q/ref/uj/ https://code.kx.com/q/ref/maps/#each-left-and-each-right[16] 00:38:27 Morten Kromberg ArrayCast episode https://www.arraycast.com/episodes/episode21-morten-kromberg Bricolage https://en.wikipedia.org/wiki/Bricolage[17] 00:40:44 Interpreted programming languages https://en.wikipedia.org/wiki/Interpreter_(computing)[18] 00:48:43 J labs https://code.jsoftware.com/wiki/Guides/StudioForExplorers Jupyter notebooks https://jupyter.org/[19] 00:49:53 Stephen's contact SJT@5jt.com J playground https://code.jsoftware.com/wiki/Playground tryAPL https://tryapl.org/ apl.chat https://apl.chat/ apl.orchard https://aplwiki.com/wiki/APL_Orchard aplquest https://aplwiki.com/wiki/APL_Quest Adám's APL https://www.youtube.com/@abrudz try.html https://mlochbaum.github.io/BQN/try.html BQNpad https://bqnpad.mechanize.systems/[20] 00:55:25 Dyalog https://www.dyalog.com/[21] 00:56:28 Advent of Code BQN https://mlochbaum.github.io/BQN/community/aoc.html Share my Screen J Advent of Code https://code.jsoftware.com/wiki/ShareMyScreen[22] 00:57:18 APLCart https://aplcart.info/ BQNCrate https://mlochbaum.github.io/bqncrate/ J phrases https://code.jsoftware.com/wiki/Phrases[23] 00:59:23 KAP programming language https://aplwiki.com/wiki/KAP Structure Viewer https://peertube.functional.cafe/w/cDGqr9FmQoR2RyMGBTCZZK[24] 01:01:37 Contact AT ArrayCast DOT Com
Hey Everyone, In this video I was joined by Daniel Ciocîrlan from https://rockthejvm.com and we discussed Functional Programming concepts in great detail. Chapters: 00:00 Introduction 03:11 What is Functional Programming? How can I start learning? 11:40 Object Oriented Programming and Functional Programming 16:08 How should a beginner approach learning Functional Programming? 21:58 Handling Side Effects (Pure functions) 28:04 Immutability and Recursion 35:59 Concurrency Models (Futures, Co-routines, Actors) 42:47 Project Loom 46:42 Scala vs Kotlin 49:01 Current Limitations and Future RockTheJVM : https://rockthejvm.com I hope you like the episode, please like, share and subscribe for more videos. Cheers, The GeekNarrator
Nathan Jones has been talking about building command line interfaces, good design practices in C, creating MCU boards, wielding the PIC of destiny, and going beyond Arduino. As we are too lazy to attend the conferences, we asked him to give us the highlights. Nathan is giving two conference talks at Crowd Supply's Teardown 2023 June 23-24 in Portland, Oregon: Make Your Own MCU Board Build HackerBox #0040 and Wield the PIC of Destiny! He spoke recently at the Embedded Online Conference about Object Oriented Programming (well, really good design practices). He has a related github repository so you can look at the examples for yourself. He also gave a workshop on creating a simple command line interface (another excellent github repo full of examples). Probably the best place to start is his Embedded for Everyone Wiki where he collects all the bits and pieces you might want to know about getting into embedded systems. Transcript
Would you like to speed up your Python machine-learning code dramatically? What if you only had to change a few keywords and add a couple of type hints on portions of your code? This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder's Weekly articles and projects.
Array Cast - March 31, 2023 Show NotesThanks to Bob Therriault, Conor Hoekstra and Marshall Lochbaum for gathering these links:[01] 00:01:45 Luther J. Woodrum Obituary https://www.fraryfuneralhome.com/obituaries/Luther--J.-Woodrum?obId=27482014#/celebrationWall https://www.linkedin.com/in/luther-woodrum-b5775a4a?trk=public_profile_browsemap Lenore Mullin Mathematics of Arrays https://www.linkedin.com/in/lenore-mullin-268b0a13[02] 00:03:46 Episode 6 https://www.arraycast.com/episodes/episode-06-henry-richs-deep-dive-into-j Episode 18 https://www.arraycast.com/episodes/episode18-henry-rich-presents-j903 Episode 48 https://www.arraycast.com/episodes/episode48-henry-rich[03] 00:04:40 Command to run Fold using J Playground - install 'github:jsoftware/dev_fold' J Fold https://code.jsoftware.com/wiki/Vocabulary/fcap APL Reduce / https://aplwiki.com/wiki/Reduce APL Scan https://aplwiki.com/wiki/Scan J Scan / https://code.jsoftware.com/wiki/Vocabulary/bslash https://code.jsoftware.com/wiki/Vocabulary/slash J Grade /: or : https://code.jsoftware.com/wiki/Vocabulary/slashco[04] 00:10:02 Functional Programming Language https://en.wikipedia.org/wiki/Functional_programming C Programming Language https://en.wikipedia.org/wiki/C_(programming_language)[05] 00:12:30 Iverson Notation https://www.jsoftware.com/papers/APL.htm Adjacent Difference C++ https://en.cppreference.com/w/cpp/algorithm/adjacent_difference[06] 00:14:50 Haskell Programming Language https://en.wikipedia.org/wiki/Haskell BQN Primitives https://mlochbaum.github.io/BQN/commentary/primitive.html[07] 00:16:10 Object Oriented Programming https://en.wikipedia.org/wiki/Object-oriented_programming[08] 00:17:12 J Power Conjunction u^:n https://code.jsoftware.com/wiki/Vocabulary/hatco NARS 2000 APL https://aplwiki.com/wiki/NARS J Rank Conjunction " https://code.jsoftware.com/wiki/Vocabulary/quote J Cut Conjunction ;. https://code.jsoftware.com/wiki/Vocabulary/semidot J Key Conjunction /. https://code.jsoftware.com/wiki/Vocabulary/slashdot#dyadic J Recursion $: https://code.jsoftware.com/wiki/Vocabulary/dollarco[09] 00:24:20 Identity Element https://aplwiki.com/wiki/Identity_element[10] 00:37:09 J Terminate Z: https://code.jsoftware.com/wiki/Vocabulary/zcapco J Cap [: https://code.jsoftware.com/wiki/Vocabulary/squarelfco[11] 00:41:22 J throw. https://code.jsoftware.com/wiki/Vocabulary/throwdot J catch. https://code.jsoftware.com/wiki/Vocabulary/trydot[12] 00:45:21 J ^:v^:_ https://code.jsoftware.com/wiki/Vocabulary/hatco#DoWhile J _3 Z: (Iterations bottom of page) https://code.jsoftware.com/wiki/Vocabulary/zcapco[13] 00:53:05 BQN Fold https://mlochbaum.github.io/BQN/doc/fold.html Table from J Fold to K https://code.jsoftware.com/wiki/User:Will_Gajate/FoldVariants[14] 00:55:13 Arthur Whitney https://en.wikipedia.org/wiki/Arthur_Whitney_(computer_scientist) APL Partition https://aplwiki.com/wiki/Partition[15] 00:57:55 J Gerunds https://code.jsoftware.com/wiki/Vocabulary/Glossary#Gerund[16] 00:59:20 J Rank-Gerund 901 Release Notes https://code.jsoftware.com/wiki/System/ReleaseNotes/J901[17] 01:01:11 C++ 2019 7 Consecutive Ones Conor talk https://www.youtube.com/watch?v=48gV1SNm3WA[18] 01:03:10 BQN Each https://mlochbaum.github.io/BQN/doc/map.html[19] 01:05:25 Dyalog APL Split https://aplwiki.com/wiki/Split APL2 https://aplwiki.com/wiki/APL2[20] 01:07:42 J NuVoc Dictionary https://code.jsoftware.com/wiki/NuVoc[21] 01:11:25 Index Origin https://aplwiki.com/wiki/Index_origin[22] 01:27:15 CPU Cache https://en.wikipedia.org/wiki/CPU_cache[23] 01:33:00 ValGrind Tool https://valgrind.org/docs/manual/ Perf linux https://perf.wiki.kernel.org/index.php/Tutorial[24] 01:35:58 Contact AT ArrayCast DOT Com
Keaton Law graduated with full time Web Development Evening Cohort 19. I am a software developer with Object Oriented Programming experience using JavaScript, React, Python, and Django Prior to beginning my journey into software development I worked as an automotive technician, with a focus on electrical diagnoses. The logical trouble shooting has always appealed to me, and after being introduced to software engineering I recognized all of my favorite parts of my current career and none of my least favorite. The software development world has re-ignited a passion for learning that has been the most fun I've had learning new things in almost ten years, which I hope to continue into a fulfilling career in software development.
Code with Jason is back! On this episode, TJ Stankus returns for a discussion of Object Oriented Programming and his book 99 Bottles of OOP. We also discuss managing large applications with Rails, models, organizing by domain concept, and microservices.99 Bottles of OOP by Sandi Metz, Katrina Owen, and TJ StankusResponsibility-Driven Design by Rebecca Wirfs-BrockDesign Stamina Hypothesis by Martin FowlerThe Magic of Reality by Richard DawkinsDomain Driven Design by Eric EvansWhy I Organize my Tests by Domain Concept, not by Test Type by Jason SwettTJ.Stank.usTJ Stankus on Twittertjstankus@gmail.com
Richard and Lindsay talk about their experiences with FP and OOP, and some less obvious differences they've noticed between the two paradigms.
Career Nav: The role of public speaking in career growth is discussed by a panel of Women Who Code Leadership Fellows including Sierra OBryan, Senior Software Engineer at Twitter, Zarreen Reza, AI Research Scientist at Volta Charging, Jiaqi Liu, Senior Engineering Manager at GitHub, and Anjali Menon, Solutions Consultant at AsiaPac. Talks Tech: Object Oriented Programming: An Introduction. OOP concepts allow breaking the program into bite-sized problems that are easy to solve. The approach promises greater programmer productivity! You can achieve a better quality of software and lesser maintenance cost! Systems designed by these concepts are straightforward to upgrade from small to large scale. Given by Jamica Ortiz, Engineering Manager at Thought Machine. Conversations: Grecia Castaldi, Program Manager, Digital Community at Women Who Code interviews Kathryn Ross, Partner, Managing Director, and Black Founders Development Program Lead at Accenture. They discuss the company culture at Accenture, what drives Kathryn's passions, and the positive impact that her work with the Black Founders Development Program has had on the community it serves.
Catch Dave on Episode 006 of Greater Than Code! Getting Technology Into the Hands of Children with David Bock (https://www.greaterthancode.com/getting-technology-into-the-hands-of-children) 02:10 - Dave's Superpower: Ability to Reevaluate and Drop Ideas – Onto The Next! * Star Trek: The Next Generation (https://en.wikipedia.org/wiki/Star_Trek:_The_Next_Generation) * Impostor Syndrome (https://en.wikipedia.org/wiki/Impostor_syndrome) 07:10 - The Acceptance of Ruby; Using Ruby as a Teaching Language * Teaching Ruby Makes Approaching Computer Science Approachable * Intro To Programming Skill Tree.md (https://gist.github.com/caseywatts/93cba34cd882a05b3107) * Computational Thinking (https://en.wikipedia.org/wiki/Computational_thinking) * Object-Oriented Programming (https://en.wikipedia.org/wiki/Object-oriented_programming) * Functional Programming (https://en.wikipedia.org/wiki/Functional_programming#:~:text=In%20computer%20science%2C%20functional%20programming,by%20applying%20and%20composing%20functions.&text=When%20a%20pure%20function%20is,state%20or%20other%20side%20effects.) * Primer on Python Decorators (https://realpython.com/primer-on-python-decorators/) 18:01 - Mobile Development * Accessibility * FingerWorks (https://en.wikipedia.org/wiki/FingerWorks) * Teaching Performance; Linear Algebra (https://en.wikipedia.org/wiki/Linear_algebra) * Star 26 Math Puzzle (https://www.puzzlemaster.ca/browse/wood/otherwood/12292-star-26-math-puzzle) * Aristotle Number Puzzle (https://www.amazon.com/s?k=aristottles+number+puzzle&ref=nb_sb_noss_2) 24:10 - Teaching Remotely * WatchDOG Dads (https://www.pickerington.k12.oh.us/violet-elementary/watch-dog-dads/) * Cameras On/Off * % of Women Went Up / Gatekeeping and Gender Bias * Grace Hopper (https://en.wikipedia.org/wiki/Grace_Hopper) 34:25 - Computer Science Education Week (https://www.csedweek.org/) + Teaching/Volunteering * Hour of Code (https://hourofcode.com/) * Code.org (https://code.org/) * Scratch (https://scratch.mit.edu/) “Computers aren't smart. They're just dumb really, really fast.” Understanding the Pareto Principle (The 80/20 Rule) (https://betterexplained.com/articles/understanding-the-pareto-principle-the-8020-rule/) Zero: The Biography of a Dangerous Idea (https://www.amazon.com/Zero-Biography-Dangerous-Charles-Seife/dp/0140296476) Plimpton 322 (https://en.wikipedia.org/wiki/Plimpton_322) 56:39 - Handling Time Management and Energy * Ted Lasso (https://en.wikipedia.org/wiki/Ted_Lasso) * Getting Positive by Looking at the Negative Reflections: Casey: Motivating students to learn algorithmic efficiency. Feeling the problem. Mae: Becoming more involved in the community. Chelsea: What are people in the tech world ready for? Dave: How much talking about computer science education is invigorating and revitalizing. Seeing problems through beginners' eyes. This episode was brought to you by @therubyrep (https://twitter.com/therubyrep) of DevReps, LLC (http://www.devreps.com/). To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode (https://www.patreon.com/greaterthancode) To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps (https://www.paypal.me/devreps). You will also get an invitation to our Slack community this way as well. Special Guest: Dave Bock.
We're here to talk about the four pillars of Object Oriented Programming: Abstraction, Polymorphism, Inheritance, and Encapsulation. Ana shares some amazing news about her next piece of tech and we recommend a couple great resources you can use in your next project! Victor Recommends: https://readme.so/Ana Recommends: https://pocoloco.io/Ana Recommends this too for Linux Distribution: https://www.deepin.org/en/Website Victor mentioned: https://www.rockpaperfishandchips.com/Our Patreon: https://www.patreon.com/techheads
(NOTE: See Twitter for the screen capture) In this episode, we introduce object-oriented class, object, and method programming. We talk about arrays of objects and also how to access characters using the Scanner object.
We discuss the principles of object oriented programming. What is a script vs a program? What are the four principles of object oriented programming? What's an interface? How can understanding programming help you better understand movies? What's a value type vs a reference type? What is recursion? Come learn about these and more with us.
Hans Schnedlitz joins the Rogues to discuss how you can use ActionCable to get feedback on ongoing tasks in the commandline by connecting to a websocket. His solution is written entirely in Ruby and provides some interesting options for people building CLI's for their applications. Panel Charles Max Wood Luke Stutters Valentino Stoll Guest Hans Schnedlitz Sponsors Dev Influencers Accelerator Raygun | Click here to get started on your free 14-day trial Links Real-Time Command Line Applications with Action Cable and Thor OptionParser GitHub | ManageIQ/optimist GitHub | rails/thor Rails Application Templates GitHub | rails/rails GitHub | RailsApps/rails-composer TTY GitHub | junegunn/fzf Hans-Jörg Schnedlitz GitHub: Hans-Jörg Schnedlitz ( hschne ) Twitter: Hans Schnedlitz ( @hschnedlitz ) Picks Charles- Kajabi Charles- Devchat.tv/levelup Hans- GitHub | hschne/rails-mini-profiler Hans- Project Hail Mary Luke- CLI OAuth in Ruby Luke- A Rubyist's Walk Along the C-side (Part 6): Classes & Object Oriented Programming Luke- Raspberry Pi Touch Display Valentino- Destroy All Software Valentino- David Dollar | Developer Experience Design Contact Charles: Devchat.tv DevChat.tv | Facebook Twitter: DevChat.tv ( @devchattv ) Contact Luke: GitHub: Luke Stutters ( lukestuts ) Contact Valentino: Doximity Technology Blog Work @ Doximity GitHub: Valentino Stoll ( codenamev ) Twitter: V ( @thecodenamev )
Hans Schnedlitz joins the Rogues to discuss how you can use ActionCable to get feedback on ongoing tasks in the commandline by connecting to a websocket. His solution is written entirely in Ruby and provides some interesting options for people building CLI's for their applications. Panel Charles Max Wood Luke Stutters Valentino Stoll Guest Hans Schnedlitz Sponsors Dev Influencers Accelerator Raygun | Click here to get started on your free 14-day trial Links Real-Time Command Line Applications with Action Cable and Thor OptionParser GitHub | ManageIQ/optimist GitHub | rails/thor Rails Application Templates GitHub | rails/rails GitHub | RailsApps/rails-composer TTY GitHub | junegunn/fzf Hans-Jörg Schnedlitz GitHub: Hans-Jörg Schnedlitz ( hschne ) Twitter: Hans Schnedlitz ( @hschnedlitz ) Picks Charles- Kajabi Charles- Devchat.tv/levelup Hans- GitHub | hschne/rails-mini-profiler Hans- Project Hail Mary Luke- CLI OAuth in Ruby Luke- A Rubyist's Walk Along the C-side (Part 6): Classes & Object Oriented Programming Luke- Raspberry Pi Touch Display Valentino- Destroy All Software Valentino- David Dollar | Developer Experience Design Contact Charles: Devchat.tv DevChat.tv | Facebook Twitter: DevChat.tv ( @devchattv ) Contact Luke: GitHub: Luke Stutters ( lukestuts ) Contact Valentino: Doximity Technology Blog Work @ Doximity GitHub: Valentino Stoll ( codenamev ) Twitter: V ( @thecodenamev )
Hans Schnedlitz joins the Rogues to discuss how you can use ActionCable to get feedback on ongoing tasks in the commandline by connecting to a websocket. His solution is written entirely in Ruby and provides some interesting options for people building CLI's for their applications. Panel Charles Max WoodLuke StuttersValentino Stoll Guest Hans Schnedlitz Sponsors Dev Influencers AcceleratorRaygun | Click here to get started on your free 14-day trial Links Real-Time Command Line Applications with Action Cable and ThorOptionParserGitHub | ManageIQ/optimistGitHub | rails/thorRails Application TemplatesGitHub | rails/railsGitHub | RailsApps/rails-composerTTYGitHub | junegunn/fzfHans-Jörg SchnedlitzGitHub: Hans-Jörg Schnedlitz ( hschne )Twitter: Hans Schnedlitz ( @hschnedlitz ) Picks Charles- KajabiCharles- Devchat.tv/levelupHans- GitHub | hschne/rails-mini-profilerHans- Project Hail MaryLuke- CLI OAuth in RubyLuke- A Rubyist's Walk Along the C-side (Part 6): Classes & Object Oriented ProgrammingLuke- Raspberry Pi Touch DisplayValentino- Destroy All SoftwareValentino- David Dollar | Developer Experience Design Contact Charles: Devchat.tvDevChat.tv | FacebookTwitter: DevChat.tv ( @devchattv ) Contact Luke: GitHub: Luke Stutters ( lukestuts ) Contact Valentino: Doximity Technology BlogWork @ DoximityGitHub: Valentino Stoll ( codenamev )Twitter: V ( @thecodenamev ) Special Guest: Hans Schnedlitz.
Hans Schnedlitz joins the Rogues to discuss how you can use ActionCable to get feedback on ongoing tasks in the commandline by connecting to a websocket. His solution is written entirely in Ruby and provides some interesting options for people building CLI's for their applications. Panel Charles Max WoodLuke StuttersValentino Stoll Guest Hans Schnedlitz Sponsors Dev Influencers AcceleratorRaygun | Click here to get started on your free 14-day trial Links Real-Time Command Line Applications with Action Cable and ThorOptionParserGitHub | ManageIQ/optimistGitHub | rails/thorRails Application TemplatesGitHub | rails/railsGitHub | RailsApps/rails-composerTTYGitHub | junegunn/fzfHans-Jörg SchnedlitzGitHub: Hans-Jörg Schnedlitz ( hschne )Twitter: Hans Schnedlitz ( @hschnedlitz ) Picks Charles- KajabiCharles- Devchat.tv/levelupHans- GitHub | hschne/rails-mini-profilerHans- Project Hail MaryLuke- CLI OAuth in RubyLuke- A Rubyist's Walk Along the C-side (Part 6): Classes & Object Oriented ProgrammingLuke- Raspberry Pi Touch DisplayValentino- Destroy All SoftwareValentino- David Dollar | Developer Experience Design Contact Charles: Devchat.tvDevChat.tv | FacebookTwitter: DevChat.tv ( @devchattv ) Contact Luke: GitHub: Luke Stutters ( lukestuts ) Contact Valentino: Doximity Technology BlogWork @ DoximityGitHub: Valentino Stoll ( codenamev )Twitter: V ( @thecodenamev ) Special Guest: Hans Schnedlitz.
We are an Online Assignment Expert to promote your growth academically by delivering you the right piece of work. Here is the list of our academic functionality: Get the best Object-oriented Programming Assignment Help@ https://www.myassignmentservices.com/object-oriented-programming-assignment-help.html
Object Oriented Programming might just be a series of solutions to self-created problems. Discuss this episode: https://discord.gg/nPa76qF
01:00 - Mae's Superpower: Being Able to Relate to Other People and Finding Ways to Support Them 03:42 - Contributing to Humanity (Specifically American Culture) * Title Track Michigan (https://titletrackmichigan.org/) * Climate Change * Clean, Accessible Water * Hate & Divisiveness; Understanding Racial Justice 07:01 - Somatics (https://en.wikipedia.org/wiki/Somatics) and The Effects of Yoga, Meditation, and Self-Awareness * Flow (https://en.wikipedia.org/wiki/Flow_(psychology)) * Kripalu (https://kripalu.org/?) * PubMed (https://pubmed.ncbi.nlm.nih.gov/) * Cognitive Behavioral Therapy (CBT) (https://www.apa.org/ptsd-guideline/patients-and-families/cognitive-behavioral) * Debugging Your Brain by Casey Watts (https://www.debuggingyourbrain.com/) 12:20 - Mutual Aid: Solidarity, Not Charity * WeCamp (https://weca.mp/) * Ruby For Good (https://rubyforgood.org/) * Harm Reduction * Encampments * “We keep us safe.” * Rainbow Gatherings (https://en.wikipedia.org/wiki/Rainbow_Gathering) * Burning Man (https://burningman.org/) * Big Big Table Community Cafe (https://www.bigbigtable.org/) 33:17 - Giving vs Accepting Help; Extending and Accepting Love, Empathy, and Forgiveness * Collective Liberation * The Parable of Polygons (https://en.wikipedia.org/wiki/Parable_of_the_Polygons) * Listening: What could be of use? * 99 Bottles of OOP (https://sandimetz.com/99bottles) – Sandi Metz (https://twitter.com/sandimetz) 48:25 - The Mental Health Challenges of Being a Programmer * Celebrating Small Wins; “Microjoys!” Reflections: Casey: The word mutual aid can be more approachable if you think about it like people helping people and not a formal organization. Also: help and be helped! Jamey: Valuing yourself and the way that helps the communities you are a part of. Mae: Engaging with users using the things your building is a reward and a way to give yourself “microjoy!” This episode was brought to you by @therubyrep (https://twitter.com/therubyrep) of DevReps, LLC (http://www.devreps.com/). To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode (https://www.patreon.com/greaterthancode) To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps (https://www.paypal.me/devreps). You will also get an invitation to our Slack community this way as well. Transcript: JAMEY: Hello and welcome to Episode 238 of Greater Than Code. I am your host, Jamey Hampton, and I'm here with my friend, Casey Watts. CASEY: Hi, I'm Casey, and we're both here today with our guest, Mae Beale. Mae spent 20 years in and out of nonprofit-land, with jaunts into biochemistry and women's studies degreeing, full-time pool playing, high school chemistry and physics teaching, higher ed senior administrating, and more. She went to code school in 2014 (at 37 years old) to gain the technical skills needed to build the tools she wished she'd had in all the years prior. So glad to have you, Mae. MAE: Thanks, Casey. Thanks, Jamey. Same for me. JAMEY: So you may be ready for the first question that we're going to ask you, which is, what is your superpower and how did you acquire it? MAE: Yeah, thank you. I think that my superpower is being able to relate to other people and find ways to support them. How did I get good at that? Well, I've dealt with a lot of pretty complicated people in my life that you have to do extra thinking to figure out. So I think I got my start with that and I've done lots of different things in life and met lots of different people and felt lots of different feelings and thought lots of different thoughts. So I think that's mostly it: living. JAMEY: I was going to say that I know from knowing you that you've done lots of things, but even our listeners who don't know you probably already know that just after listening to your bio, so. [laughter] MAE: Yeah, and there's plenty more that didn't make it in there. That's something that is fun and a joke is no matter how long people know me, there's always still something that they didn't know and so, that's fun for me. I like to surprise other people and I love being surprised by people. So it's like a little game I have with all my fun facts. JAMEY: I love that. CASEY: I've got a question: what's on your mind lately. MAE: What is on my mind lately? So many things, I don't even know where to start. One is where and how can I contribute to the future of humanity [chuckles] and American culture in particular and in the circles that I'm in, drawing it down even more. So I think about that a lot. I think about my house a lot. I just bought a house and I'm going to do each room with a color theme so it'll end up being, you walked through the rainbow. Pretty excited for that, lots of things there. And I think a lot about how to empower others and be a more and more effective communicator. I think about that a lot. Probably those are the top ones and maybe Dominion. I play that every day. So I think about that a little bit. CASEY: [chuckles] Love that game. JAMEY: Me too. CASEY: This is great. All three are really interesting. I want to start on your first one. What opportunities do you see lately, or what have you done recently, or what do you hope to do to help the world help American culture help make an impact? What are you working on? MAE: From where I sit, it seems like the most important things that any of us can attune to about even a portion of is the environment and whatever's going on with our ability as humans to respond to climate change and water, like clean, accessible water for people, and hate and divisiveness. Those three things I think are our biggest challenges. So I try to do things that end up in those spheres, if not in things that ideally have some mix of those rather than having them be silos. One of my jobs is working with Title Track Michigan, and they are a relatively new nonprofit that brings creative practice to complex problems and is specifically focused on water protection, racial equity, and youth empowerment. Once all the uprising started in 2020, we created an Understanding Racial Justice course for white people in Northern Michigan and so, I've been helping to facilitate those courses and taking as many opportunities to rethink my orientation to all those topics as well. CASEY: That's so cool. You found a group that does all of those things in one. MAE: Amazing, right? CASEY: Wow. Title Track Michigan, huh? MAE: Yeah. I found them because my life radically changed a few years ago. A lot of things changed at once like, not just a lot, all of the things. So I went on this walkabout just trying to find ways to be of service in the world without expectation, watch who I met, and where I ended up. I ended up in Michigan and getting introduced to these people who then were creating a new nonprofit Title Track. Another thing I do is I have a consultancy that I have a flagship enterprise product for nonprofit, small business administration. That is a little bit of a Trojan horse for change management and organizational development and sustainable longevity planning for organizations. So the fact that I ended up there with them at that time and way more cool synchronicities happened. That's how I met them. So it just feels right and great to have landed in that space and then to have 2020 be what it became, we were already formed and positioned to try to be of help. JAMEY: This is an abstract question. MAE: Okay. JAMEY: But what does it feel like to feel like you're doing the right thing in that way like, the right place to be? I got the sense from you telling this story that things just came together in the right way at the right time and that's a beautiful thing when it happens and you said it feels right. What does that feel like? MAE: Mm thanks, Jamey. Well, my first thought is another thing that Title Track does in that Understanding Racial Justice course and a lot of circles I've ended up in have a focus on somatic and so, body centered awareness and engagement. So I used to always think my answer was going to be emotional when people ask me, “How do I feel?” and now I hear and think of my body first so that's cool. I'll answer a couple of ways, if that's okay. When for me synchronicities happen and I feel most alive, or of use, which is important to me, my heart literally feels bigger and almost breathing like I can feel air. I don't know how to explain that. I definitely will be smiling more, my back is straighter, and I usually have a lot more to say. All of a sudden, I'll have a lot to say. Other times, I have nothing to say! For how I might've answered that question previously would be closer to having a lot of things to say, like I'm a lot more creative, making connections, getting excited, and wanting to create new things together with other people. How about you two? CASEY: Just hearing you describe that, I have thought back on times I felt really proud and engaged and I noticed my posture improved, too. That's so interesting. I've had a nerve injury for 2 years. My hands go tingly sometimes. So I'm working on my back and noticing posture all the time. Interesting how my mood like that could affect the posture. I believe it, too. JAMEY: I'm not sure that I would have called out posture specifically in that way, but now that I'm thinking about it, I think what I would say is I feel lighter. MAE: Yeah! JAMEY: So to feel less bogged down, I can see in what way that's related to posture. [chuckles] MAE: Totally. Yeah. CASEY: We all have a lot to say on this, I love it. [chuckles] This reminds me of the Flow State. So when your skills match a need and it's challenging the appropriate amount, you're in a great concentration state, but if your skills aren't enough, or if the need isn't important enough—either one—feels a little way less good, not good. JAMEY: Totally. MAE: I lived at a yoga retreat center for a little while in Massachusetts called Kripalu—it's the largest yoga retreat center in North America. I had never done yoga and I was like, “Oh, cool. I'll just go live there [laughs] and see.” Anyway, I was there for three months and they have a part of their organization dedicated to optimal human performance. They have a partnership with Tanglewood and some other places around there to see if yoga and meditation can induce more Flow State, more of the time for top performing musicians, and just to be able to have more “scientific evidence” about how physiologically we can do things to get ourselves closer to those states more often. Pretty cool work. JAMEY: Yeah. That's really interesting. CASEY: I was just doing some research on the effects of different types of yoga and meditation on anxiety. I was trying to read some of the primary sources. I like to go to PubMed first—that's my go-to. Some people do Google Scholar. It's interesting, the framing sounded in a couple of papers like, “Well, it's not as good as CBT,” and my takeaway was, “Well, it helps an amount, huh? Great, good.” [laughter] So people who can't get access to CBT should consider that and that's true anyway. Science has shown this thing we knew was helpful anyway, is helpful in an empirical sense and that's great. MAE: Totally. Casey, for anybody who might not know what CBT is, would you be willing to…? CASEY: Thank you. CBT here is Cognitive Behavioral Therapy, which is one of the most common and effective forms of talk therapy you would do with a therapist. It focuses on what some maladaptive, unhelpful thought patterns are and helps you change them. MAE: And that's coming from a psych major, right, Casey? CASEY: That's right. I talk all about that in my book, Debugging Your Brain. It's funny, but you're flipping the script here. Usually we do this to our guests. MAE: [laughter] Great! CASEY: Love it. JAMEY: There's another project, Mae that I know that you've worked on that. I'm a little bit surprised that you haven't brought up yet, but I'm going to bring it up, which is your Mutual Aid program. MAE: Thank you. JAMEY: I think that when you are talking about doing something to make an impact on the world, like that was the first thing I thought of since I know you're involved with that and I would love to hear you talk about it. MAE: Yes. Thank you. Thanks for bringing that up and I did want to talk about that and I was looking forward to hearing what you have to say about that topic as well. So when the pandemic started, you may have seen these, or become involved, but there was a whole bunch of spreadsheets starting like Google Sheets of people who had some needs and people who wanted to offer some things. Google spreadsheets are really easy first pass for people with low tech skills and no budget to just come together. But I started being invited to all these different spreadsheets from around the country that include people's name, address, phone number, CashApp name, their exact vulnerabilities and identities, and current struggles in a spreadsheet that's downloadable. It really freaked me out and I started coding that day about how can we start to do something to make these people not have to have their identity so exposed and through like WeCamp networks, Ruby for Good networks, and different Slacks I'm in of varying programmers, I started saying, “Does anybody else want to get involved?” and several people did. So we have built a platform to support mutual aid groups and what we did immediately was find some groups to figure out what their needs were instead of just what we might imagine. They were doing a lot of, we call it dispatch moderated setups where people fill out a form and then volunteers read the forms and then match people and do all the communication manually, but not having peer-to-peer things go on. The system was originally designed to support that dispatch moderated set up and once people started to go back to work in the fall and there weren't as many people able to devote as much time to volunteer, and as varying groups, especially ones that hadn't been around as long, realized they would probably need a lot more training in social work, ask things just to be more effective and figure out how to route people correctly within their community to services that might be able to help them a little more. Since the fall, we've to coding peer-to-peer solution. We have several different mutual aid groups around the country and right now, most closely working with groups in Michigan and New York state, just because that's where our networks are. Getting to launch some peer-to-peer stuff, but mutual aid itself has become a buzzword and like, what is that anyway? [chuckles] So that topic I love talking about. There's like a mutual aid saying, “Solidarity, not charity.” The whole thing is we're all in it together and we're not going to rely on different structures, or institutions that were set up most often in ways that institutionalized various forms of oppression. Just empowering people to connect with each other, have stronger networks, and build more resiliency is what's up with it, but mutual aid has been around for over a 100 years, at least as a term and a thing, but it generally, almost always springs from communities that have been disenfranchised. So when the pandemic started and a lot of new groups formed, not everybody had already checked what's already happening and a lot of different people, especially in communities of color, were surprised by like, they didn't hear that term, that's just what they do. There's been a big—along with everything else—learning of how those structures already were in place and how we can continue to grow them, and support each other as we navigate this world we're in. Jamey, I was going to ask you about your involvement with mutual aid, too and if you had anything to add to that definition. JAMEY: I was going to say that I really liked what you said about finding new ways around things that have been institutionalized. Because I think one of the things that's so beautiful about mutual aid is the way that people can help each other realize what kind of help is available and what kind of help they even might need. A story that I really like to tell that and I think about a lot is I have a friend who's involved in mutual aid in Buffalo, where I'm from and he does repair work and just is very handy in that way. So he does a lot of mutual aid repair for people and he told me that the way that this started for him is that there was a request in our mutual aid Facebook group where someone was saying, “I really need $200, or something like this because my window is broken and I need to buy a space heater because it's been getting really cold. So I need this money to buy a heater and all of this stuff.” My friend came in and was like, “Okay, but what if I just fixed your window?” It had not occurred to this person that she could ask for that. MAE: Oh, boy. JAMEY: She was coming up with all these solutions around it. So this idea of like coming together as a community and saying, ‘Yeah, I can help you, but can we help a little bit closer to the source than what you even just asked for?” I think is really powerful. MAE: Yes. I love that, Jamey. Yeah, it's the closer we can be in community with each other, the easier those asks are. Something that you said about figuring out your own needs, there is a thing and it's related a little bit to some of the other topics we've talked about where there's like the white savior thing. People want to do something for people who they think are less – they have less than them. There's a power dynamic there and mutual aid—mutual, that's the main part. So you really aren't doing mutual aid if you're not accepting help. All of us have things that we could be supportive with and things to offer. I love also having that not – there's a lot of mutual aid that is about just giving money and/or like reparation stuff. But I love when money isn't part of the equation and quantification of value isn't part of the equation. It's just like, “I have something to give and I could use something and this is how we're going to stay in community and in network and lower those barriers to have offers and asks be even easier in the future.” JAMEY: For sure. I think it's about meeting people where they are, too, because I agree about some programs are focused on money, and some people have money and can put that into the community and that's great. But maybe they don't have time to show up and do these things and other people might think like, “Well, how can I help because I don't have money,” but they have time, or they have skills. I think that everyone bringing in and saying, “This is what I have to offer with what's going on in my life right now,” and maybe it's money, or maybe it's time, or maybe it's something else that I didn't even think of that they're going to offer. [chuckles] MAE: Totally. When you were saying that, I just got a chill thinking if really every single person just that question you just said, “How can I help?” If we all did one thing, this is how to effect broad change. CASEY: How can people find the mutual aid groups near them? If they just search mutual aid, that probably gets a bunch, but they don't all say it, right? MAE: Yeah. It's a really great point. There have been some different efforts to link together mutual aid networks and there's a map, but not every network is on it because not every network even knows about it. [chuckles] So because mutual aid is so grassroots, it's not – CASEY: Right. MAE: A number of them have form 501(c)(3) is just to not be doing illegal financial transaction stuff that is problematic by having all this money go through their personal Venmo, or something. But that is what a lot of people have done. So mostly there's the Google option and the term mutual aid is getting used more and more, but there are some other phrases. I'm forgetting it right now. What's the name when they hand out medical supplies? Harm reduction, there's a bunch of harm reduction efforts. Also, in cities where there are a lot of homeless shelters, there's things around encampments and like becoming community with those folks to advocate. Another piece, major piece of mutual aid that I forgot to name is it inherently has a political engagement component in it. So one of the reasons why it is this solidarity thing is you're seeing all the humans as inherently equally valuable and that you're identifying the structural things that led to people having a different experience, or a different privilege, or a different outcome to what's going down for them. So then by identifying those together, you try to change the system to not create the problem. Whereas, to go back to that phrase charity, a lot of charities—which are awesome, I'm not trying to knock those—but a lot of them have more of a it's your fault, or shortcoming, or need that has put you where you are. Mutual aid is the way in which this is all rigged and on purpose, or not on purpose, or just the impact of the structures is how you ended up where you are so let's rejigger. JAMEY: A phrase that comes up a lot, in the protest community specifically, is, “We keep us safe and we say that at protests about security, medics and things, and wearing masks—I've seen people start to use that phrase. But I think that that's a phrase that really speaks to like what mutual aid is about, too. It's about we are doing something together for ourselves as a community, and we're not looking for something from the outside that comes in a hierarchical structure. We're just making this decision as a group of people to take care of ourselves and our neighbors and I think that's what I really love about it. [chuckles] MAE: Totally. Yeah, absolutely. And back to what you were saying, Casey, the how can people find those things? There's also just, “Hey, I've got some extra seeds,” or put a cabinet in your yard with some food in it and say free food. You don't have to associate with a “mutual aid group” to do mutual aid. It's like, that's just a blanket term, basically that offers a little bit of a cue about what those people might be up to. But it's really, in whatever way you are sharing and developing relationships with your fellow community members. This is mutual aid. JAMEY: I thought of another example of that. MAE: Yay! JAMEY: We have this in Buffalo, but I think it's a thing that we're seeing other places, too. Separate from our mutual aid network, we have a Facebook Buy Nothing group. MAE: yes. JAMEY: And people will post like, “Oh, I have this, I'm going to get rid of it. Someone come pick it up.” “Oh, I was going to donate these spoons from my kitchen. Someone can have them.” When you said seeds, that's the kind of thing you'll see on Buy Nothing and I think that's been a revolution in anything even separately from it, because I do think that money plays a part in a lot of mutual aid stuff, because folks need money for things. But in Buy Nothing, it's pointedly without money and I think that that's a very fun and cool dynamic, too. MAE: Totally. Yes. I have a couple of things I would love to say them. One is that the bringing up Facebook has started to support mutual aid. But also, I don't know if y'all have seen The Social Dilemma and just become aware of all of this tracking that's going down. There's something that is another motivator for us on the mutual aid repo is this is open source code that anybody who wants to use it can stand up their own instance and if you partner with us, connect with us, we will help you if you need us to. But it's intentionally not a multitenant app so that people have small datasets that they own and there isn't like this aggregate thing going on about local data. It's basically a small tech for the win, which is also pretty mutual aid-y. Our group, like the programmers who are most involved, meet a couple times a week and know about what's going on in each other's lives. We are mutual aid for each other, too. The energy of what, how, who we are, and what we're doing is getting put into the thing that we're building that hopefully has that same effect. So there's this nice spiral thing going on in there that I'm proud of. I think there's a lot about what we referenced earlier, institutionalization of oppression, that has to be like, there are ways to create other options and they take cultivation of and building new structures. Stuff like this as an example of that and an experiment in it. Another one that it reminded me of is when I was younger, I used to go to rainbow gatherings. I don't know if y'all know about these. It's a super hippie thing and there's regional gatherings, but there's a national gathering at a national forest every year. All these people just show up and then they build earthen stoves. There's a bunch of people who do not participate in main society; they just go to these different gatherings and travel around as a… There's plenty more to talk about rainbow tribe and even the usage of that word tribe and what goes down. I'm not going to try to touch into that, but something I love about it is there's a whole exchange row where people just sit out with things and there's no money. You're not allowed to use money. I think I was 18 when I went to my first one and I was just like, “What? This is amazing.” Like, just to imagine my life not through a currency, or that evaluated exchange, it was so inspiring to me. It still is and so, some of what you said, Jamey, reminded me of that. JAMEY: I relate a lot to that, too. Burning Man events are also no money allowed. MAE: Ah. JAMEY: When I first entered that space, that was one of the things that really spoke to me about it too. In fact, it's also no barter allowed in Burning Man. It's a purely gifting economy where if you give someone something, a lot of times they become inspired to gift you something back right there and there's an exchange that happens. But culturally, the point of it is that there's not supposed to be any expectation of exchange when you gift something to somebody. MAE: Do you know about that restaurant in San Francisco that is free, but you pay for the person behind you if you want? JAMEY: I don't know about one in San Francisco specifically, but we have a program like that similar in Buffalo. It's called Big – I'm going to look it up so I can link it up. MAE: How about you, Casey? I'm getting excited so I keep saying things. CASEY: I'm reflecting on the award mutual aid a lot through all this. I like this idea that mutual aid as it is in action and that mutual aid groups do mutual aid, but individuals can, too. MAE: Yeah. CASEY: That's a pretty powerful theme. It makes the term more approachable, especially since it's a jargon word lately. It's just grassroots-y helping each other out, however that looks. MAE: Totally. CASEY: I'm thinking a lot about what communities I'm a part of, too, that naturally have that phenomenon. It's like, I'm queer, I'm in a lot of queer groups. I'm in interest groups like musician groups and they help each other do stuff. They carpool to the practice or anything like that that's this. There's also a formal ones like D.C. Ward 6 has mutual aid groups that are named that. That's its own thing. And then even my Facebook friends, I just post like, “I have a crackpot, who wants it?” MAE: Totally! CASEY: But before today, I might not have used the word mutual aid to describe any of that because I'm not part of a formal approved mutual aid group, which is not the point of that term. MAE: [laughs] Yeah. CASEY: Just people helping people. MAE: When I was thinking about getting into tech, I, as a pretty outspoken woman who will address injustice directly if I see it, when I see it in myself and others, I wasn't sure if that was going to be a place for me. I had had some not awesome experiences with tech people before I was in tech. So I reached out to a bunch of people who were already in the biz and they spent hours talking to me about their experiences, answering all of my questions, and offering to help me. As I took the leap and went to code school and participated in a meetups and just, everywhere is mutual aid in programming, everybody is helping each other. “I have a question,” “I'm wondering about this.” This podcast is mutual aid, in my opinion. It's been really inspiring for me to be a programmer because I feel a part of a worldwide network of people who try to, especially with mixing in the open source piece, build things and offer what they can. It's awesome. CASEY: I have a challenge for people listening to this podcast. This week, I'd like you to help someone and accept help from someone, both in the spirit of mutual aid. MAE: Yes! CASEY: I'm not surprised; accepting help might be the harder half for a lot of people. MAE: Yes. JAMEY: I think that's true. [chuckles] MAE: One way I've said it before is that that is your gift to the giver. The giver doesn't get to be a giver [chuckles] unless you accept the gift from them and that people can, including myself at times, tend to over-give and that is its own challenge. So if you need to stay in the giving frame, [chuckles] you can be like, “All right, well, I'm providing this opportunity to the other person.” [chuckles] CASEY: Sometimes I've playfully pushed on an idea to people. I'm trying to help them and they say, “No, no, no. I can't accept your help because I would be indebted,” and I'm like, “You would deprive me of this good feeling I would get from helping you? Really?” [laughter] MAE: Yeah. CASEY: Thinking of it a little bit, I'm not like – [overtalk] JAMEY: [inaudible]. CASEY: Right. I'm just thinking that way a little bit, flipping it, helps some people accept the help then. MAE: Yeah. JAMEY: I think that people have so much harder of a time of extending love and empathy, and forgiveness, and all of these nice things that we might really value extending to other people, but not to ourselves. MAE: Yo, that's for real, Jamey and still on this theme, the seeing each other as equals as in community. My Mom used to say this great phrase, “There but for the grace of God, go I.” She was raised Catholic so it's got that in there, but I love that of this could definitely be me. There's a cool Buddhist practice that I learned from Pema Chödrön about you extend release of suffering to others and then you widen the circle to include yourself in it, but you don't start there. So similar to how you're saying, Jamey, that that is a challenge for a lot of people, it's just built into that practice where when you can't give yourself a break, [chuckles] imagining others in that situation and then trying to include yourself is an angle on it. JAMEY: I like that. I think also related to Casey's example of his joke. It's thinking about how what you do affects other people, I think sometimes we're better at that and if you're treating yourself bad, especially if you're in one of these tight mutual communities. If you're treating yourself bad, that's affecting the people around you, too. They don't want to see you being treated bad and they don't want to see you being miserable and they want the best for you. When you're preventing yourself from having the best, that's affecting the whole community, too. MAE: Yo! JAMEY: I hadn't really thought about it like that until right now. So thank you, Casey, for your joke. CASEY: Powerful thought. Yeah. Like the group, your people, your team, they need you to be your best. So if you want to help your team, sometimes the best way is to help yourself. It's not selfish. It's the opposite of selfish. MAE: Exactly. Another thing I've heard a bunch of the different activist groups, some phrasing that people have started to use is collective liberation and no one's free till we're all free and if we are suffering, the other people are suffering and vice versa. So figuring out how to not be so cut off from ourselves, or others, or that suffering and seeing them as intertwined, I think is one of the ways to unlock the lack of empathy that a lot of people experience. CASEY: There's a really cool visualization I like that that reminds me of. It's called the Parable of the Polygons and you can drag around triangles and squares. You can see how segregation ends up happening, if you have certain criteria set up in the heuristics of how they move. Or if some people want to be around diverse people, it ends up not happening, or it ends up recovering and getting more integrated and mixed. It's so powerful because you can manipulate the diagrams. There's a whole series of diagrams. Look it up, it's the Parable of the Polygons. MAE: Cool! That is awesome. CASEY: So I want to be around people who aren't like me and that helps. It helps with this phenomenon and the more people do that, the better. MAE: Yeah, and having grown up in a small city, that's pretty homogenous on multiple levels. When I went to college and learned that people thought differently, my world was this very rigidly defined, this is how things are. [chuckles] My biker dad, that's still his way, his lens. When you start to experience people who are not like yourself, you let that challenge your assumptions, then you end up transformed by that. I was a double major in college—biochemistry and women's studies—and I remember being in an organic chemistry class and the professor said, “Well, if that's too hard for you, you can go take a sociology class.” I raised my hand and was like, “My sociology classes challenge me on every single thing I think about the world. Your class requires me to provide rote memorization, which I'm awesome at luckily and that's how I ended up in your class.” But that is not harder. That's that story. CASEY: The last episode that I recorded was with Andrea Goulet. One of the things that kept coming up was the old-timey programming interview questions were all about math. MAE: Yes. CASEY: Which isn't necessarily what programming is about. That reminds me here of rote memorization in that class versus complex systems thinking in sociology. MAE: Totally! CASEY: With these two choices, I might choose a sociology person to do architecture work in my software than the rote memorization person. MAE: Totally, definitely, every time. Yeah, and that's a different lens that I have coming in to the industry from having been an administrator for so many years is our perception as programmers about what's going to be helpful is very different than someone whose day job is to do repetitive work like very, very, very simple apps. When I was in code school, I really wanted us to figure out how to make even our homework assignments be available for nonprofits and that's how my whole system in business ended up getting spun up. Oh, it was before that. My job before that, when I interviewed, I said, “Well, how long do you need someone here for? How long would you need me to commit?” and he said, “A year,” and I said, “All right, well, I'm not sure I'm the best candidate for you because I'm going to go to grad school and get a degree and be a consultant as businesses and nonprofits.” And then I was at that job for 8 and a half years before I went to code school. [laughs] But the thing about what could be of use just requires so much humility from programmers to defer to the actual employees and the workers about their experience and what could help them. Because so often, we think that we're the ones with the awesome idea and we can just change their lives and disrupt the thing. A lot of the best ideas come from the people themselves. I went to a project management training in Puerto Rico and it was a very rarefied environment of people who could pay for people to get PMP training, or whatever. The people that were in my cohort were factory project planners and not a single one of them knew anyone who worked in the factory. Like, they didn't get to know them as part of that project and they didn't have anyone in their sphere and my parents were paper mill workers. So when I'm sitting there and listening to these people talk about the worker and their lack of wherewithal, I guess, there'll be a gracious way to say it right now, I was just appalled. I try to take that into any time we are building software in a way that honors all people. CASEY: Yeah. My favorite leaders are the ones that listen to their employees and the users. I am happy with my roles in leadership positions, but the thing that makes me happy with myself is listening and if I ever lose that, I don't trust myself to be a good leader, or manager. MAE: Totally. CASEY: I could. I know it's easy when you get promoted to stop listing as much. It's the incentive structure of the system. I wouldn't blame myself if I lost it, but knowing I value it and don't want to lose it helps me hold on to my propensity to listen. MAE: Yes, Casey! Totally that. CASEY: Sometimes people have asked me, “What makes you think you'd be good at leading this?” That is literally my answer is like, “Well, I won't forget to listen.” MAE: Yeah. JAMEY: I think that it's weird the way that people create this hierarchy of good ideas and better ideas and which idea is better and put that kind of value judgment on it. When really, when you're dealing with software and trying to create something that works for the people that are using it. It's not about whether your idea is good or bad, it's about whether it's the right one for that group of people. My background, my first tech industry job was in agriculture and so, all of our customers were farmers and people that worked at farms, To admit I don't know what it's like to work on a farm in that way, it's not a value judgment about whether you're smart, or good at programming, which people act like it is. It's just a true fact about whether, or not you've ever had that experience. [laughter] CASEY: Sometimes I run workshops where we think about all the pros and cons to different ideas and when we need it, we pull out a matrix. We get a spreadsheet that has columns and rows, and rows are the ideas. A lot of decisions are made with one column, naturally like, “What's the best?” You just say like, “1 to 10, this one's the best.” But when we break it out, we have lots of columns, lots of variables like, oh, this one's easier to build, this one's higher impact. And when we break it out even further, we can weight those columns then do the matrix math and people like that, actually. Even people who are math averse. They can fill in the numbers in each of the cells and then they trust the spreadsheet to do the thing. That gets us on the same page. It depends on the context, which columns matter, which factors are important and that can completely change the situation. Even if you all agree on this one's harder than that one, the outcome could be completely different. The columns, or the context in my matrix model. JAMEY: We're reading at work 99 Bottles of Object-Oriented Programming, which Mae knows because we work together, which we haven't said yet on the show. But we're doing a book club. Your description of the matrix columns and what is relevant reminded me of the thesis of that book because it's like, there are tradeoffs. It's not that one tradeoff is necessarily more valuable than another tradeoff, it's just like what makes sense for this context that you're using and building it in, then you have to think about it in a nuanced way if you want to come up with a nuanced answer. MAE: I am so grateful to and inspired by Sandi Metz. Her ability to distill these concepts into common sense terms is so genius and moving, welcoming, accessible. So grateful, so really glad you brought that up, Jamey. One of the things that really stuck out from various talks of hers that I've been to is even if you aren't changing that code, that code does not need to change. That's bad code, but it works. That's great code, [chuckles] like working code, and splitting some of the bikeshedding that we do on code quality with business impact is a teeter-totter that I really appreciate. JAMEY: I like the way it puts value on everyone and what they're working on. Because my big takeaway from starting to read this book has been that I tend to write fairly simple code because that's what I find easy to do. [chuckles] I always felt well, other people write more complicated code than me because they know more about X, Y, and Z than me and I don't know enough about it to write something that elegant, or that complex, or et cetera, et cetera, et cetera. I had placed this value judgment on other people's code over mine and to read about code that's dissecting the value judgments we put on it and determining hey, just because maybe it's not always the best thing to overengineer something Maybe it doesn't have to be because you don't feel smart enough to overengineer it. Maybe it can just be because that's not the right choice. [chuckles] MAE: Cool. JAMEY: I thought that was really valuable to think about. MAE: Love that, Jamey. JAMEY: Boost people's confidence, I hope because I think a lot of people need their confidence boosted. [chuckles] MAE: Yo, I had no idea what I was getting into as far as the mental health challenge of being a programmer. To maintain one's self-respect, especially as an adult who was successful in her career prior to then be like, there is a whole thing about the adult learner. But to have your entire day be dealing with things that are either broken, or don't exist yet, that's your whole day. Nothing works ever basically and the moment it does, you move on to the things that aren't, or don't exist. So it's so critical to try to remember and/or learn how to celebrate those small wins that then somehow feel like insulting that you're celebrating this is just some simple things. [laughs] And then it's like, why are we making a big fanfare? But those microjoys—I've never heard that phrase as opposed to microaggression, or something. Microjoys, if we could give each other those, it could go a long because the validation is a very different experience than I have seen, or heard about, or experienced in any other industry. It's a real challenge. JAMEY: Not only is everything broken, or doesn't exist. But once it's working, you never hear about it again until it's broken again. [chuckles] MAE: Yeah. [laughs] CASEY: That's so true and it's such an anti-pattern. At USCIS, you would have every developer, who was interested, see an interview—we're working on an interview app—watch the user use the app every month at least, if not more and they loved those. They saw the context, they saw the thing they just built be used. That's positive feedback that everyone deserves, in my opinion and it's just a cultural idea that engineers don't get to see users, but they should. They do at some companies and yours can, too. MAE: Yes, Casey! We are working on that at True Link financial as well. Figuring out how to work that more in so that we all feel part of the same team more and we're not like the IT crowd and in the basement and all we have to say is, “Hello, have you tried turning it on and off again?” [laughs] JAMEY: Casey, I love that because even as you were telling that story, I was like, “Yeah, it's useful to see how people use it because that'll help you make better decisions,” and blah, blah, blah, which I feel strongly about. And then what you actually said at the end was, “and you get satisfaction out of being able to see people using your thing.” I hadn't even thought of that dynamic of it. CASEY: Yeah. It's both, happier and more effective. That's the thing I say a lot. These user interviews make you happier doing your job and make you more effective at doing them both. How can you not? MAE: Yeah. JAMEY: What's not to like? [laughter] It's true, though about knowing that people use your app. I started in consulting and a lot of the things I worked on felt a little soul crushing and not because I thought that they were bad, or unethical in any way, but just like, who is this for? Like, who cares about this? One of my most joyful experiences was one of the other products that wasn't quite like that, that I worked on when I was in consulting was an app called Scorebuilders and it was for physical therapy students have a specific standardized test they have to take and so, it's study prep for this specific test. There's like two, or three and we had different programs for them. And then I, a few years after that was, in physical therapy myself, because I have back problems and they have interns from college helping them in the physical therapy office that I went to and they were talking about studying for their test, or whatever. I was like, “Oh, that's funny. I haven't thought about that in a while. Do you use Scorebuilders to study in?” They were like, “Oh yeah. We all use it. That's what you use if you're in this program,” and I was like, “Oh, I built that,” and they were like, “What?!” They were calling all of the other people from the next room to be like, “Guess what?” and I'm like, “This is literally the best thing that's ever happened.” [laughs] MAE: Yay! CASEY: Yeah! That's such a good story in the end, but it's such a bad story. You never got to meet anyone like that earlier, really? JAMEY: Yeah. CASEY: That's common, that's everywhere, but that's a shame. You can change that. [overtalk] JAMEY: I just realized since it was consulting and not like, I didn't work for Scorebuilders. CASEY: Oh, I'm sure. It's even more hard. JAMEY: Yeah. CASEY: I'm so glad you got that. JAMEY: Thank you. It happened like 5 years ago and I still think about it all the time. [laughs] Well, we've been having a great discussion, but we've pretty much reached the point in the show where it's time to do reflections and that's when everyone will say something that really stood out to them about our conversation, maybe a call-to-action, something that they want to think more about. So, Casey, do you want to start? CASEY: Yeah. I said this earlier, but this is my big takeaway is the word mutual aid can be more approachable if you think about it like people helping people and not a formal organization. Especially since it is, by definition, grassroots-y. There is no formal stamp of approval on a mutual aid group that formalizes it. That's pretty powerful. I'll be thinking about what communities I'm part of that do that through that lens this week and I challenge listeners to help and be helped sometime this week, both. JAMEY: I think one thing that I'm going to really try and keep in mind is what we were talking about, valuing yourself and the way that that helps the community. I really liked Mae's story about including yourself after other people and using that way to frame it in your mind. Because I think that that will make it easier and thinking about like, this is something I struggle with all the time. I think a lot of us do. So I think that I really want to take that one into my life. Next time I realize I'm treating myself unfairly, I want to think, “Well, how is this affecting the other people around me who probably don't want to see me to do that?” [chuckles] MAE: Thanks, Jamey. Yeah. I have so many answers of reflections! The one I know I'm going to use immediately is this most recent one of engaging with users using the things you're building as a reward and a way to be able to get microjoy. I'm definitely going to use that word now more, microjoys, but I agree with both of what you said, too. JAMEY: Well, Mae thank you so much for coming on and chatting with us. This was really great and I think people will really appreciate it. MAE: Yay. I loved it! Thank you both so much. What a treat! CASEY: I feel like we could keep talking for hours. JAMEY: I know. [laughter] This is how I feel after a lot of my episodes. [laughter] Which is always good, I guess, but. Special Guest: Mae Beale.
2021-06-01 Weekly News - Episode 106Watch the video version on YouTube at https://youtu.be/jmA7-rHjomk Hosts: Gavin Pickin - Software Consultant for Ortus SolutionsEric Peterson - Software Consultant for Ortus SolutionsThanks to our Sponsor - Ortus SolutionsThe makers of ColdBox, CommandBox, ForgeBox, TestBox and almost every other Box out there. A few ways to say thanks back to Ortus Solutions: Like and subscribe to our videos on youtube. Sign up for a free or paid account on CFCasts, which is releasing new content every week Buy Ortus's new Book - 102 ColdBox HMVC Quick Tips and Tricks on GumRoad (http://gum.co/coldbox-tips) Patreon SupportWe have 36 patreons providing 84% of the funding for our Modernize or Die Podcasts via our Patreon site: https://www.patreon.com/ortussolutions. If you love our podcasts and all we do for the #coldfusion #cfml community considers chipping in, we are almost there!https://www.ortussolutions.com/blog/we-need-your-help News and EventsLucee 5.3.8.179-RC4 (Final Release Candidate) ReleasedThis will be the Final RC before STABLE, available via your admin or via https://download.lucee.org/There are some improvements for MS SQL users since RC3. There is currently a problem with MS SQL extensions not being available for download, including 7.22, apologies, this will be fixed tomorrow.https://dev.lucee.org/t/lucee-5-3-8-179-rc4-final-release-candidate/8400 Adobe leaking Dev Week Sessions on TwitterAdobe has not added sessions to the Dev Week site yet, but Adobe is tweeting promos with the Session Name, Speaker, date and time on Twitter.https://twitter.com/coldfusionOnline CF Meetup - Getting Started with FusionReactor, with Brad WoodThursday Jun 3rd at 12pm US Eastern Time, UTC-4.New to FusionReactor? Perhaps you have a license but aren't sure how to tap into the features? We'll cover the basics of using FR to profile code, view your running and recent requests, and how to tell what is making a request slow. We'll cover tracking JDBC requests, HTTPS calls, and using the Profiler feature. There are many more features in FR, but we'll cover enough to get you started.https://www.meetup.com/coldfusionmeetup/events/278404050/ Ortus Webinar for June - Eric Peterson - Topic - Build a Blog in 30 minutes with QuickWebinars Page: https://www.ortussolutions.com/events/webinars Registration: coming soonICYMI TestBox v4.3 Released!We are excited to announce a new minor version release of TestBox version 4.3.x. To install just use CommandBox: install testbox --saveDev or to update your TestBox installation update testbox.This update includes several cool new features and improvements that will delight your testing life! For example, we have integrated your favorite code editors to the simple reporter so you can now open the line of code that failed your test or created and exception!https://www.ortussolutions.com/blog/testbox-v43-released Reminder - State of the CF Union SurveyHelp us find out the state of the CF Union – what versions of CFML Engine do people use, what frameworks, tools etc. We will share the summary results with everyone who completes the survey so that you can see how you compare with other CF developers.Spread the news so we can get as many responses as possible.https://teratech.com/state-of-the-cf-union-2021-survey CFCasts Content Updateshttp://www.cfcasts.com New features alert
In this episode of the I Can't Sleep Podcast, learn about object-oriented programming. We'll explore all sorts of boring things like objects and classes, encapsulation, and polymorphism. You're bound to drift off within minutes on this one. Happy sleeping! --- Send in a voice message: https://anchor.fm/i-cant-sleep/message Support this podcast: https://anchor.fm/i-cant-sleep/support
2021-05-11 Weekly News - Episode 103Watch the video version on YouTube at https://youtu.be/ktGWQa_OUA4 Hosts: Gavin Pickin - Software Consultant for Ortus SolutionsBrad Wood - Software Consultant for Ortus SolutionsThanks to our Sponsor - Ortus SolutionsThe makers of ColdBox, CommandBox, ForgeBox, TestBox and almost every other Box out there. A few ways to say thanks back to Ortus Solutions:- Like and subscribe to our videos on youtube. - Sign up for a free or paid account on CFCasts, which is releasing new content every week- Buy Ortus’s new Book - 102 ColdBox HMVC Quick Tips and Tricks on GumRoad (http://gum.co/coldbox-tips)Patreon SupportWe have 37 patreons providing 84% of the funding for our Modernize or Die Podcasts via our Patreon site: https://www.patreon.com/ortussolutions. If you love our podcasts and all we do for the #coldfusion #cfml community considers chipping in, we are almost there!https://www.ortussolutions.com/blog/we-need-your-help News and EventsAdobe ColdFusion Projects page is now liveWe have just launched the Projects page on our Community portal to enable our developers to find some examples to help them get started quicker in their Projects. All these Projects are free to download and to reuse. Please feel free to reuse the Projects or part of the Project.https://coldfusion.adobe.com/2021/05/adobe-coldfusion-projects-page-now-live/ ICYMI - VS Code Release partyRelease party happened May 11th, at 8am PSTLive event and Q&A with the VS Code team to discuss highlights from the March 2021, 1.55 release.https://docs.microsoft.com/en-us/learn/tv/?WT.mc_id=devcloud-18509-cxa Meetup: https://www.meetup.com/global-visual-studio-code-meetup-group/ ICYMI - CommandBox 5.3.0 ReleasedUPDATE: 5.3.1 update coming shortly for Web Aliases and Relative paths.We are pleased to announce the general availability of our latest CommandBox CLI release. This is a minor release that's full of bug fixes and enhancements. It should be backwards compatible (with one caveat below) and you can upgrade any previous version of CommandBox in-place to the latest release.https://www.ortussolutions.com/blog/commandbox-530-releasedICYMI - Bintray decommissioning - Adobe Docker image updateOn May 1, 2021, all Bintray services will be deprecated, and your accounts will be disabled. For more information, see the official Bintray blog. This means that the ColdFusion, Performance Monitoring Toolset, and API Manager containers for the versions 2016/2018/2021 will no longer be accessible. This may lead to interruption in your automation scripts and other CI/CD pipelines.We have moved all the containers to ColdFusion downloads. You’ll load the tar file in Docker and then run ColdFusion or the other tools.https://coldfusion.adobe.com/2021/04/bintray-decommissioning/FusionReactor Webinar - Reach for the Clouds with FusionReactorMay 12, 2021 05:00 PM in Amsterdam, Berlin, Rome, Stockholm, Vienna8am PST, 10am CSTFusionReactor APM has been available as a cloud-based or SaaS solution for a few years now. This webinar will reveal what additional capabilities and benefits this platform has to offer (on top of everything which FusionReactor on-premise provides). We will also answer questions about licensing, data retention and technical aspects of expanding to the cloud.https://us02web.zoom.us/webinar/register/4516197692493/WN__nI6dnlmRB6jafaKZmA_QAICYMI - Adobe’s ColdFusion Certification price dropsAdobe Certified Professional: Adobe ColdFusion is an industry-leading certification program from Adobe, for Adobe ColdFusion developers. The course consists of 50+ online videos and is designed for professionals who have basic to advanced level proficiency in any computer language and basic understanding of how web pages work. Successfully passing an assessment test at the end of the program will reward participants with a badge and certificate from Adobe. Only $149https://www.adobe.com/products/coldfusion-family/certificate.html ICYMI - Adobe Webinar- Building modern web apps with ContentBox Modular CMS with Luis MajanoMay 5, 2021 - 12 PM ET ContentBox is a professional open source modular content management system powered by ColdBox HMVC and ColdFusion. In this session, we will get an overview of this CMS platform and how you can leverage to not only deliver content based applications, but any modern web application thanks to its powerful headless API and ColdBox services.https://cfwebinar-modularcms.meetus.adobeevents.com/ No recording yetAdobe Webinar Series - API Creation and ManagementNext Webinar: 5/12/21ColdFusion Developers, do you want a first hand look at publishing APIs securely and at scale? Then mark your calendars for Brian Sappey’s upcoming webinars! This seven-part series will give you a 360 degree view of the API Manager and teach you how to build RESTful APIs with Adobe ColdFusion. Everything from securing, publishing and monitoring APIs, will be covered with hands-on examples, and easy discussions.Dates: 3/24/21, 3/25/21, 4/28/21, 4/29/31, 5/12/21, 5/13/21, 5/24/21Information: https://coldfusion.adobe.com/2021/03/webinar-series-api-creation-management/ Registration: https://coldfusion-api-management-solution.meetus.adobeevents.com/?fbclid=IwAR2q7aEI9u1ibBKrneeDvAhKWWW7V78bB_P1rTzWAh8x4e20q68gXLeMVrMRecordings: https://t.co/ZQc637BSkv Ortus Webinar for May - What's new in CommandBox 5.3 with Brad WoodFriday, May 21st at 11:00 AM CTCome learn with Brad Wood about all the new features and tricks in the newest CommandBox releases, including versions 5.1.0, 5.2.0, and 5.3.0.Register: https://us02web.zoom.us/meeting/register/tZ0kdeytrTMrHdW9ahnIZvSQJdRZalO7yeBn Webinar Page: https://www.ortussolutions.com/events/webinarsCFCasts Content Updateshttp://www.cfcasts.com Just Released- Object-Oriented Programming with Nolan Erck (https://cfcasts.com/series/oop-series) - Constructors and Pseudo-Constructors - Object Properties: Accessors and Visibility Types - Methods : Definitions, Scopes (public vs private (vs protected) package vs static vs remote) Don't forget - the first 4 videos from last week in this series were FREEComing this week- Object-Oriented Programming with Nolan Erck (https://cfcasts.com/series/oop-series) - Var Scoping - Static Properties and Methods - Encapsulation and CohesionComing up soon- More CommandBox Zero to Hero- More What’s new with ColdBox 6- Up and Running with Quick- LogBox 101- Using DocBoxSend your suggestions at https://cfcasts.com/supportConferences and TrainingAdobe ColdFusion Developers WeekJune 22-24, 2021 - OnlineCoders, mark your calendars for Adobe ColdFusion Developer Week 2021!Coders, Adobe ColdFusion Developer Week 2021 is edging closer! This year, we’ve lined up a series of sessions and webinars that will give you a 360-degree view of ColdFusion 2021’s brand new features and updates. Right from developing cloud-native applications to reducing downtime, these webinars will let you in on the best tips to deploy applications rapidly and seamlessly.This is your chance to meet coders from across the globe and exchange ideas with some of the best minds in the industry. And that’s not all! Your presence at the conference will earn you points that can help you win exciting prizes and vouchers. Our scoreboard will keep track of active participation!Whether you’re a new developer, someone with little or no experience with Adobe ColdFusion, or even if you have been using it all your life, Adobe ColdFusion Developers Week 2021 is where you need to be. Don’t miss out!https://adobe.vconfex.com/site/adobe-coldfusion-developer-week/977AWS Summit Online - Americas THIS WEEKMay 12-13Online and Free AWS Summit Online is designed for developers and IT professionals looking to learn how to build and innovate at scale using AWS Cloud. Hear the very latest from AWS executives, attend breakout sessions featuring customer stories, and engage with AWS experts to get your questions answered. Enhance your skills with hands-on labs and workshops, learn from inspiring demos, and discover what AWS and our Partner Solutions can do for your business.This free online conference is designed to educate you about AWS services; and help you design, deploy, and operate infrastructure and applications.https://aws.amazon.com/events/summits/online/americas/ Google I/OMay 18-20 - Online and Free for EveryoneConnect with developers from around the world at this year's virtual Google I/O for thoughtful discussions, hands-on learning with Google experts, and a first look at our latest developer products.https://events.google.com/io/ MS BuildMay 25-27Learn. Connect. Code. Explore what’s next in tech and the future of hybrid work. Find solutions, sharpen skills, and find what you can add to your toolbox at this year’s event.https://mybuild.microsoft.com/home DockerConMay 27th 2021DockerCon 2021 is a free, one-day virtual event that is a unique experience for developers and development teams who are building the next generation of modern applications. If you want to learn about how to go from code to cloud fast and how to solve your development challenges, DockerCon 2021 offers engaging live content to help you build, share and run your applications.Call for Speakers open until Midnight April 1sthttps://www.docker.com/dockercon-live/2021 Apple WWDC21 - Glow and beholdJune 7-11The Apple Worldwide Developers Conference is coming to a screen near you, June 7 to 11. Join the worldwide developer community for an all-online program with exciting announcements, sessions, and labs at no cost. You’ll get a first look at the latest Apple platforms, tools, and technologies — so you can create your most innovative apps and games yet.Learn about this year’s Swift Student Challenge, and stay tuned for additional details.https://developer.apple.com/wwdc21/ Ortus’s Possible Conferences for 2021Due to Online conference overload, we are thinking about not expanding the number of events, but more content in more timezones with a different format.ITB - Developer Week Style?? - (please be in-person!!!)With some European Timezone Friendly slots from our European Community MembersSeptember 2021Call for speakers coming soonITB LatamDecember 2021More conferencesNeed more conferences, this site has a huge list of conferences for almost any language/community.https://confs.tech/Blogs, Tweets and Videos of the WeekBlog - Pete Freitag - Java versions supporting TLS 1.3What versions of Java support TLSv1.3 / TLS 1.3?https://www.petefreitag.com/item/918.cfm Video - FusionReactor - FusionReactor DashboardsIn this blog, we are going to cover the dashboards available in FusionReactor.https://www.fusion-reactor.com/blog/technical-blogs/fusionreactor-dashboardsBlog - Ben Nadel - Creating Page-Breaks In CFDocument Without Using CFDocumentItem In Lucee CFML 5.3.7.47The other day, I was experimenting with the SrcFile attribute on the CFDocument tag as a means to pre-generate the HTML source for a PDF. Normally, when generating a PDF, I would just inline the CFML code inside the CFDocument tag-body; and, I'd use the CFDocumentItem tag with type="pagebreak" to create page-breaks. Which begs the question: if I'm using an externalized HTML source file, how do I create page-breaks? It turns out, since the CFDocument tag supports some CSS, we can use the page-break-before property to generate page-breaks without the CFDocumentItem tag in Lucee CFML 5.3.7.47.https://www.bennadel.com/blog/4045-creating-page-breaks-in-cfdocument-without-using-cfdocumentitem-in-lucee-cfml-5-3-7-47.htm Blog - Ben Nadel - CFSaveContent Trim And Append Attributes In Lucee CFML 5.3.7.47The other day on the Lucee Dev forum, I proposed that we add a file attribute to the CFSaveContent tag in Lucee CFML. And, as I was writing that proposal, I pulled up the docs page for the CFSaveContent tag; which is when I was surprised to see that Lucee actually offers two additional attributes on that tag: trim and append. I had no idea that these existed. So, I wanted to put together a quick demo (for myself) in Lucee CFML 5.3.7.47.https://www.bennadel.com/blog/4044-cfsavecontent-trim-and-append-attributes-in-lucee-cfml-5-3-7-47.htm Blog - Adam Cameron - Setting up a MariaDB JDBC datasource in ColdFusion 2021 in Application.cfcThis is how I needed to set my datasource in Application.cfc to get ColdFusion 2021 to connect to MariaDB. I'm writing this because I could not - for the life of me - find this information in any one place in the docs. Nor could I find it anywhere else via Google. I have pieced this together from various sources (including Lucee docs, which were more helpful than the Adobe ColdFusion documentation), and want to put it in one place for my own future reference, or should anyone else need to know how to set up a MariaDB datasouce in ColdFusion using their JDBC driver. The params should also work for any other JDBC datasource.https://blog.adamcameron.me/2021/05/setting-up-mariadb-jdbc-datasource-in.html Blog - Ray Camden - Updating (and Supporting) URL Parameters with Vue.jsToday's article is something that's been kicking around in my head for a few months now, and seeing a recent article (Update URL query parameters as you type in the input using JavaScript) encouraged me to finally get around to writing it. The basic idea is to make it easier for a person to share or bookmark the current state of an application. Let's start with a basic example.https://www.raymondcamden.com/2021/05/08/updating-and-supporting-url-parameters-with-vuejs Blog - Ben Nadel - Collecting HTML Class Name Attributes In Template Rendering In Lucee CFML 5.3.7.47The other day, I was updating a CFML template to include some conditional CSS class names in an ordered list. And, by the time I was done, the CFML looked a hot mess with several ternary operators all being interpolated into one class="" attribute. And, as I sat there, wallowing in the shame of such ugly looking code, it hit me like a bolt of lightening: Angular already solved this problem so elegantly with the NgClass directive that applies dynamic class names based on a set of conditionals. The same exactly thing should be quite doable in Lucee CFML 5.3.7.47.https://www.bennadel.com/blog/4043-collecting-html-class-name-attributes-in-template-rendering-in-lucee-cfml-5-3-7-47.htm Blog - Ben Nadel - Using Both SrcFile And CFDocumentItem In The Same CFDocument Tag In Lucee CFML 5.3.7.47At InVision, we generate a surprising number of PDF documents. For the most part, the CFDocument tag in Lucee CFML just works. But, sometimes, PDF generation eats-up all the RAM and an OOM (Out of Memory) error is thrown. As such, I'm always on the lookout for ways to tweak the PDF generation process to see if I can consume fewer resources. One idea that I had was to pre-generate the HTML file instead of just rendering the HTML content within the CFDocument tag-body. But, I wasn't sure if I could combine the concept of the srcfile attribute with the child-tag, CFDocumentItem. As such, I wanted to try it out in Lucee CFML 5.3.7.47.https://www.bennadel.com/blog/4042-using-both-srcfile-and-cfdocumentitem-in-the-same-cfdocument-tag-in-lucee-cfml-5-3-7-47.htm Blog - Ben Nadel - Validating And Documenting Complex Object Structures With CFParam In Lucee CFML 5.3.7.47At InVision, we generate our transactional emails by including a CFML template into a buffer; and then, using that buffer as the body attribute of a CFMail tag. And, since the definition of that template feels somewhat "far away" from the context in which it is being consumed, I've gotten into the habit of parameterizing the template variables using CFParam tags. This way, it's intensely obvious which variables are being used in the template; and, if I accidentally forget to define a variable during refactoring, the template will blow-up when I go to test it. Part of what makes this easy to do is the fact that the CFParam tag can validate complex object structures. I don't often use it this way, so I thought it would be interesting to share in Lucee CFML 5.3.7.47.https://www.bennadel.com/blog/4041-validating-and-documenting-complex-object-structures-with-cfparam-in-lucee-cfml-5-3-7-47.htm Blog - Charlie Arehart - Adobe CF certification now only US$149, including many hours of trainingIf you may not have heard the news or noticed it on the Adobe CF Certification page, the price is now listed as only US$149.https://coldfusion.adobe.com/2021/05/adobe-cf-certification-now-us149-including-many-hours-training/ CFML JobsSeveral positions available on https://www.getcfmljobs.com/Listing over 120 ColdFusion positions from 52 companies across 90 locations in 5 Countries since Dec 1st.Full-Time - Coldfusion/SUNCORP INSURANCE at Sydney NSW - Australia Posted May 11https://www.getcfmljobs.com/jobs/index.cfm/australia/ColdfusionSUNCORP-INSURANCE-at-Sydney-NSW/11267 Full-Time - Coldfusion Developer at Vancouver, BC - Canada Posted May 08https://www.getcfmljobs.com/jobs/index.cfm/canada/Coldfusion-Developer-at-Vancouver-BC/11266 Full-Time - Coldfusion at Bengaluru, Karnataka - India Posted May 07https://www.getcfmljobs.com/jobs/index.cfm/india/Coldfusion-at-Bengaluru-Karnataka/11265 Full-Time - ColdFusion Developer (Secret clearance) at Chantilly, VA - United States Posted May 05https://www.getcfmljobs.com/jobs/index.cfm/united-states/ColdFusion-Developer-Secret-clearance-at-Chantilly-VA/11256 ForgeBox Module of the WeekFacebook Conversions - CFML by Matthew ClementeA CFML wrapper for the Facebook Conversions API. Record Facebook conversions using their Server-Side API.The CFC only has one method, used to send events to Facebook. Here's how you use it, along with the helper component for building eventshttps://www.forgebox.io/view/fbccfml VS Code Hint Tips and Tricks of the WeekHTML accented character converterVSCode extension for quick replacements of accented characters into html entities.This extension adds a command to Visual Studio Code to replace some special characters into html entities. The command will appear in your command palette as Replace special characters with Html entities. Recommended by James Moberghttps://marketplace.visualstudio.com/items?itemName=enriquein.htmlentity-replacer Thank you to all of our Patreon SupportersWil De Bruin (bru-hein) is our latest Patreon Supporterhttps://forvo.com/word/bruin/#nl These individuals are personally supporting our open source initiatives to ensure the great toolings like CommandBox, ForgeBox, ColdBox, ContentBox, TestBox and all the other boxes keep getting the continuous development they need, and funds the cloud infrastructure at our community relies on like ForgeBox for our Package Management with CommandBox. You can support us on Patreon here https://www.patreon.com/ortussolutions- Bronze Packages and up, now get a ForgeBox Pro and CFCasts subscriptions as a perk for their Patreon Subscription.- All Patreon supporters have a Profile badge on the Community Website- All Patreon supporters have their own Private Forum access on the Community WebsiteDon BellamyEric HoffmanDavid BelangerGary KnightGiancarlo GomezJonathan PerretMario RodriguesJeffry McGee - Sunstar MediaJohn Wilson - Synaptrix Yogesh MathurJoseph LamoreeBen NadelBrett DeLineCarl Von StettenCharlie ArehartDan CardDaniel GarciaDidier LesnickiEdgardo CabezasJan JannekJason DaigerJeff McClainJeremy AdamsJonas ErikssonJordan ClarkKai KoenigLaksma TirtohadiLeon SeremelisMatthew DarbyMatthew ClementeMingo HagenPatrick FlynnRoss PhillipsScott SteinbeckStephany MongeSteven KlotzWil de Bruin (bru-hin)You can see an up to date list of all sponsors on Ortus Solutions' Websitehttps://ortussolutions.com/about-us/sponsors ★ Support this podcast on Patreon ★
Are you looking for a bit of order when working with dictionaries in Python? Are you aware that the Python dict has changed over the last several versions and now keeps items in order? Could you learn more about object-oriented programming in Python by comparing it to another language? This week on the show, David Amos is back, and he's brought another batch of PyCoder's Weekly articles and projects.
In this episode of the podcast, we take a look at object-oriented programming, the cornerstone of the Java programming language, and see why it's become so popular. This is the Java Easily Podcast where beginning and intermediate Java developers can get all the latest tips, tutorials and advice on Java software development. Check out our courses at https://courses.javaeasily.com Get your Java Beginner's Starter Kit over at https://javaeasily.com
Lorna Jane Mitchell: https://lornajane.net/Craig Dennis - Java: https://teamtreehouse.com/craigsdennisLumen Learning: https://lumenlearning.com/Some treehouse courses from Alena: https://teamtreehouse.com/alenaholliganLate static bindings, w/r/t self and static: https://www.php.net/manual/en/language.oop5.late-static-bindings.phpHeadcanon: https://www.urbandictionary.com/define.php?term=headcanonSketchings on GitHub: https://github.com/sketchingsAlena Holligan on Twitter: https://twitter.com/alenaholligan Episode SponsorshipTranscription sponsored by LarajobsEditing sponsored byTighten
Level 71: Become a Salesforce Developer: Adam Daw and Meighan Brodkey review being a #SalesforceDeveloper from what it is the job, what it takes, how to get there, trainings, resources, and answering your questions. What does a Salesforce Dev do? How does one prepare to become a dev? Best option: Get a mentor Certifications: Admin, App builder, Platform dev 1 How to learn how to start coding: Remember that Salesforce is a declarative-first platform. 75-80% of the customization needed can be accomplished through declarative means. Code is there to help bridge the gap between declarative solutions, or to simplify overly complex processes. In 2020, LWC is leveraging HTML/CSS/JS - most standard web technology skills are transferable to the platform, and vice versa! Learn JavaScript for Lightning Web Component Development! Salesforce Classes: Introduction to Object-Oriented Programming using Apex on the Lightning Platform (ADX231) Programmatic Development using Apex and Visualforce in Lightning Experience (DEX450) RAD Women Web courses: Apex Academy: Absolute Beginner's Guide to Coding in Salesforce | Pluralsight by David Liu Apex Academy: Fundamental Salesforce Coding Techniques by David Liu Play by Play: Battle of the Salesforce IDEs by by Robert Watson and Don Robins Websites Women Code Heros - Cooking with Code Getting Started --- This episode is sponsored by · Anchor: The easiest way to make a podcast. https://anchor.fm/app --- Send in a voice message: https://anchor.fm/system-dot-debug/message Support this podcast: https://anchor.fm/system-dot-debug/support
Welcome to the History of Computing Podcast, where we explore the history of information technology. Because by understanding the past, we're able to be prepared for the innovations of the future! Todays episode is gonna' be a bit boring. It's on APIs. An API is an Application Program Interface this is a set of tools, protocols or routines used for building applications. See boring! Most applications and code today are just a collection of REST endpoints interconnected with fancy development languages. We can pull in a lot of information from other apps and get a lot of code as we call it these days “for free”. It's hard to imagine a world without APIs. It's hard to imagine what software would be like if we still had to write memory to a specific register in order to accomplish basic software tasks. Obfuscating these low level tasks is done by providing classes of software to give developers access to common tasks they need to perform. These days, we just take this for granted. But once upon a time, you did have to write all of that code over and over, on PCs, initially in BASIC, PASCAL, or assembly for really high performance tasks. Then along comes Roy Fieldings. He writes the Architectural Styles and Design of Network-based Software Architectures dissertation in 2000. But APIs came out of a need for interaction between apps and devices. Between apps and web services. Between objects and other objects. The concept of the API started long before y2k though. In the 60s, we had libraries in operating systems. But what Subrata Dasgupta referred to as the second age of computer science in the seminal book by the same name began in 1970. And the explosion of computer science as a field in the 70s gave us the rise of Message Oriented Middleware and then Enterprise Application Integration (EAI) becomes the bridge into mainframe systems. This started a weird time. IBM ruled the world, but they were listening to the needs of customers and released MQSeries, to facilitate message queues. I release message queues are boring. Sorry. I've always felt like the second age of computer science is split right down the middle. The 1980s brought us into the era of object oriented programming when Alan Kotok and his coworkers from Xerox PARC gave us Smallltalk, the first popular object oriented programming language and began to codify methods and classes. Life was pretty good. This led to a slow adoption across the world of the principals of Alan Kay vis a viz Doug Engelbart vis a viz and Vanever Bush. The message passing and queuing systems were most helpful in very large software projects where there were a lot of procedures or classes you might want to share to reduce the cyclomatic complexity of those projects. Suddenly distributed computing began to be a thing. And while it started in research institutes like PARC and academia, it proliferated into the enterprise throughout the 80s. Enterprise computing is boring. Sorry again. The 90s brought grunge. And I guess this little uninteresting thing called the web. And with the web came JavaScript. It was pretty easy to build an API endpoint, or a programmatic point that you programmed to talk to a site, using a JSP or JavaServer Page helps software developers create dynamically generated pages such as those that respond to a query for information and then pass that query on to a database and provide the response. You could also use PHP, Ruby, ASP, and even NeXT's Web Objects, the very name of which indicates an Object Oriented Programming language. The maturity of an API development environment led to Service-Oriented Architectures in the early 2000s, where we got into more function-based granularity. Instead of simply writing an endpoint to make data that was in our pages accessible, we would build those endpoints to build pages on and then build contracts for those endpoints that guaranteed that we would not break the functionality other teams needed. Now other teams could treat our code as classes they'd written themselves. APIs had shot into the mainstream. Roy Fielding's dissertation legitimized APIs and over the next few years entire methodologies for managing teams based on the model began to emerge. Fielding wasn't just an academic. He would help create the standards for HTTP communication. And suddenly having an API became a feature that helped propel the business. This is where APIs get a bit more interesting. You could transact online. eBay shipped an API in 2000, giving developers the ability to build their own portals. They also released low-code options called widgets that you could just drop into a page and call to produce a tile, or iFrame. The first Amazon APIs shipped in 2002, in an early SOAP iteration, along with with widgets as well. In fact, embedding widgets became much bigger than APIs and iFrames are still common practice today, although I've never found a *REAL* developer who liked them. I guess I should add that to my interview questions. The Twitter API, released in 2006, gave other vendors the ability to write their own Twitter app, but also gave us the concept of OAuth, a federated identity. Amazon released their initial APIs that year, making it possible to use their storage and compute clusters and automate the tasks to set them up and tear them down. Additional APIs would come later, giving budding developers the ability to write software and host data in databases, even without building their own big data compute clusters. This too helped open the doors to an explosion of apps and web apps. These days they basically offer everything, including machine learning, as a service, all accessible through an API. The iPhone 3g wasn't boring. It came along in 2009. All of a sudden; and suddenly the world of mobile app development was unlocked. Foursqure came along at about the same time and opened up their APIs. This really gave the whole concept of using other vendor APIs as a way to accomplish various tasks without having to write all the code to do some of those tasks themselves. From there, more and more vendors began to open APIs and not only could you pull in information but you could also push more information out. And the ability to see settings gives us the ability to change them as well. From the consumer Foursqure to the Enterprise, now we have microservices available to do anything you might want to do. Microservices are applications that get deployed as modular services. Private APIs, or those that are undocumented. Public APIs, or interfaces anyone can access. Partner APIs, or those requiring a key to access. At this point, any data you might want to get into an app, is probably available through an API. Companies connect to their own API to get data, especially for apps. And if a vendor refuses to release their own API, chances are some enterprising young developer will find a way if there's an actual desire to leverage their data, which is what happened to Instagram. Until they opened up their API at least. And Facebook, who released their API to any developer well over a decade is probably the most villainized in this regard. You see, Facebook allowed a pretty crazy amount of data to be accessible in their API until all of a sudden Cambridge Analytica supposedly stole elections with that data. There's nothing boring about stealing elections! Whether you think that's true or not, the fact that Facebook is the largest and most popular social network in the history of the world shines a light when technology currently being used by everyone in the industry is taken advantage of. I'm not sticking up for them or villainizing them; but when I helped to write one of the early Facebook games and I was shown what we now refer to as personally identifiable data, and able to crawl a user to get to their friends to invite them to add our game, and then their friends, it didn't seem in the least bit strange. We'd done spidery things with other games. Nothing weird here. The world is a better place now that we have OAUth grant types and every other limiter on the planet. Stripe in fact gave any developer access to quickly and easily process financial transactions. And while there were well-entrenched competitors, they took over the market by making the best APIs available. They understood that if you make it easy and enjoyable for developers, they will push for adoption. And cottage industries of apps have sprung up over the years, where apps aggregate data into a single pane of glass from other sources. Tools like Wikipedia embrace this, banks allow Mint and Quickbooks to aggregate and even control finances, while advertising-driven businesses like portals and social networks seem to despise it, understandably. Sometimes they allow it to gain market share and then start to charge a licensing fee when they reach a point where the cost is too big not to, like what happened with Apple using Google Maps until suddenly they started their own mapping services. Apple by the way has never been great about exposing or even documenting their publicly accessible APIs outside of those used in their operating systems, APNs and profile management environment. The network services Apple provides have long been closed off. Today, if you write software, you typically want that software to be what's known as API-first. API-first software begins with the tasks users want your software to perform. The architecture and design means the front-end or any apps just talk to those backend services and perform as little logic not available through an API as possible. This allows you to issue keys to other vendors and build integrations so those vendors can do everything you would do, and maybe more. Suddenly, anything is possible. Combined with continuous deployment, contiuous testing, continuous design, and continuous research, we heavily reduce the need to build so much, slashing the time it takes to market and the cost it takes to get to market substantially. When I think of what it means to be nimble. No matter how big the team, that's what I think of. Getting new products and innovations to market shouldn't be boring. APIs have helped to fulfill some of the best promises of the Information Age, putting an unparalleled amount of information at our fingertips. The original visionary of all of this, Vannevar Bush, would be proud. But I realize that this isn't the most exciting of topics. So thank you for tuning in to yet another episode of the History of Computing Podcast. We're so lucky to have you. Have a great day!
Welcome to the History of Computing Podcast, where we explore the history of information technology. Because understanding the past prepares us for the innovations of the future! Today we're going to cover the first real object-oriented programming language, Smalltalk. Many people outside of the IT industry would probably know the terms Java, Ruby, or Swift. But I don't think I've encountered anyone outside of IT that has heard of Smalltalk in a long time. And yet… Smalltalk influenced most languages in use today and even a lot of the base technologies people would readily identify with. As with PASCAL from Episode 3 of the podcast, Smalltalk was designed and created in part for educational use, but more so for constructionist learning for kids. Smalltalk was first designed at the Learning Research Group (LRG) of Xerox PARC by Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Scott Wallace, and others during the 1970s. Alan Kay had coined the term object-oriented programming was coined by Alan Kay in the late 60s. Kay took the lead on a project which developed an early mobile device called the Dynabook at Xerox PARC, as well as the Smalltalk object-oriented programming language. The first release was called Smalltalk-72 and was really the first real implementation of this weird new programming philosophy Kay had called object-oriented programming. Although… Smalltalk was inspired by Simula 67, from Norwegian developers Kirsten Nygaard and Ole-johan Dahl. Even before that Stewart Nelson and others from MIT had been using a somewhat object oriented model when working on Lisp and other programs. Kay had heard of Simula and how it handled passing messages and wrote the initial Smalltalk in a few mornings. He'd go on work with Dan Ingalls to help with implementation and Adele Goldberg to write documentation. This was Smalltalk 71. Object oriented program is a programming language model where programs are organized around data, also called objects. This is a contrast to programs being structured around functions and logic. Those objects could be data fields, attributes, behaviors, etc. For example, a product you're selling can have a sku, a price, dimensions, quantities, etc. This means you figure out what objects need to be manipulated and how those objects interact with one another. Objects are generalized as a class of objects. These classes define the kind of data and the logic used when manipulating data. Within those classes, there are methods, which define the logic and interfaces for object communication, known as messages. As programs grow and people collaborate on them together, an object-oriented approach allows projects to more easily be divided up into various team members to work on different parts. Parts of the code are more reusable. The way programs are played out is more efficient. And in turn, the code is more scalable. Object-oriented programming is based on a few basic principals. These days those are interpreted as encapsulation, abstraction, inheritance, and polymorphism. Although to Kay encapsulation and messaging are the most important aspects and all the classing and subclassing isn't nearly as necessary. Most modern languages that matter are based on these same philosophies, such as java, javascript, Python, C++, .Net, Ruby. Go, Swift, etc. Although Go is arguably not really object-oriented because there's no type hierarchy and some other differences, but when I look at the code it looks object-oriented! So there was this new programming paradigm emerging and Alan Kay really let it shine in Smalltalk. At the time, Xerox PARC was in the midst of revolutionizing technology. The MIT hacker ethic had seeped out to the west coast with Marvin Minsky's AI lab SAIL at Stanford and got all mixed into the fabric of chip makers in the area, such as Fairchild. That Stanford connection is important. The Augmentation Research Center is where Engelbart introduced the NLS computer and invented the Mouse there. And that work resulted in advances like hypertext links. In the 60s. Many of those Stanford Research Institute people left for Xerox PARC. Ivan Sutherland's work on Sketchpad was known to the group, as was the mouse from NLS, and because the computing community that was into research was still somewhat small, most were also aware of the graphic input language, or GRAIL, that had come out of Rand. Sketchpad's had handled each drawing elements as an object, making it a predecessor to object-oriented programming. GRAIL ran on the Rand Tablet and could recognize letters, boxes, and lines as objects. Smalltalk was meant to show a dynamic book. Kinda' like the epub format that iBooks uses today. The use of similar objects to those used in Sketchpad and GRAIL just made sense. One evolution led to another and another, from Lisp and the batch methods that came before it through to modern models. But the Smalltalk stop on that model railroad was important. Kay and the team gave us some critical ideas. Things like overlapping windows. These were made possibly by the inheritance model of executions, a standard class library, and a code browser and editor. This was one of the first development environments that looked like a modern version of something we might use today, like an IntelliJ or an Eclipse for Java developers. Smalltalk was the first implementation of the Model View Controller in 1979, a pattern that is now standard for designing graphical software interfaces. MVC divides program logic into the Model, the View, and the Controller in order to separate internal how data is represented from how it is presented as decouples the model from the view and the controller allow for much better reuse of libraries of code as well as much more collaborative development. Another important thing happened at Xerox in 1979, as they were preparing to give Smalltalk to the masses. There are a number of different interpretations to stories about Steve Jobs and Xerox PARC. But in 1979, Jobs was looking at how Apple would evolve. Andy Hertzfeld and the original Mac team were mostly there at Apple already but Jobs wanted fresh ideas and traded a million bucks in Apple stock options to Xerox for a tour of PARC. The Lisa team came with him and got to see the Alto. The Alto prototype was part of the inspiration for a GUI-based Lisa and Mac, which of course inspired Windows and many advances since. Smalltalk was finally released to other vendors and institutions in 1980, including DEC, HP, Apple, and Berkely. From there a lot of variants have shown up. Instantiations partnered with IBM and in 1984 had the first commercial version at Tektronix. A few companies tried to take SmallTalk to the masses but by the late 80s SQL connectivity was starting to add SQL support. The Smalltalk companies often had names with object or visual in the name. This is a great leading indicator of what Smalltalk is all about. It's visual and it's object oriented. Those companies slowly merged into one another and went out of business through the 90s. Instantiations was acquired by Digitalk. ParcPlace owed it's name to where the language was created. The biggest survivor was ObjectShare, who was traded on NASDAQ, peaking at $24 a share until 1999. In a LA Times article: “ObjectShare Inc. said its stock has been delisted from the Nasdaq national market for failing to meet listing requirements. In a press release Thursday, the company said it is appealing the decision.” And while the language is still maintained by companies like Instantiations, in the heyday, there was even a version from IBM called IBM VisualAge Smalltalk. And of course there were combo-language abominations, like a smalltalk java add on. Just trying to breathe some life in. This was the era where Filemaker, Foxpro, and Microsoft Access were giving developers the ability to quickly build graphical tools for managing data that were the next generation past what Smalltalk provided. And on the larger side products like JDS, Oracle, Peoplesoft, really jumped to prominence. And on the education side, the industry segmented into learning management systems and various application vendors. Until iOS and Google when apps for those platforms became all the rage. Smalltalk does live on in other forms though. As with many dying technologies, an open source version of Smalltalk came along in 1996. Squeak was written by Alan Kay, Dan Ingalls, Ted Kaehler, Scott Wallace, John Maloney, Andreas Raab, Mike Rueger and continues today. I've tinkerated with Squeak here and there and I have to say that my favorite part is just getting to see how people who actually truly care about teaching languages to kids. And how some have been doing that for 40 years. A great quote from Alan Kay, discussing a parallel between Vannevar Bush's “As We May Think” and the advances they made to build the Dynabook: If somebody just sat down and implemented what Bush had wanted in 1945, and didn't try and add any extra features, we would like it today. I think the same thing is true about what we wanted for the Dynabook. There's a direct path with some of the developers of Smalltalk to deploying MacBooks and Chromebooks in classrooms. And the influences these more mass marketed devices have will be felt for generations to come. Even as we devolve to new models from object-oriented programming, and new languages. The research that went into these early advances and the continued adoption and research have created a new world of teaching. At first we just wanted to teach logic and fundamental building blocks. Now kids are writing code. This might be writing java programs in robotics classes, html in Google Classrooms, or beginning iOS apps in Swift Playgrounds. So until the next episode, think about this: Vannevar Bush pushed for computers to help us think, and we have all of the worlds data at our fingertips. With all of the people coming out of school that know how to write code today, with the accelerometers, with the robotics skills, what is the next stage of synthesizing all human knowledge and truly making computers help with As we may think. So thank you so very much for tuning into another episode of the History of Computing Podcast. We're lucky to have you. Have a great day!
Welcome to the History of Computing Podcast, where we explore the history of information technology. Because understanding the past prepares us for the innovations of the future! Todays episode is about the Xerox Alto. Close your eyes and… Wait, don't close your eyes if you're driving. Or on a bike. Or boating. Or… Nevermind, don't close your eyes But do use your imagination, and think of what it would be like if you opened your phone… Also don't open your phone while driving. But imagine opening your phone and ordering a pizza using a black screen with green text and no pictures. If that were the case, you probably wouldn't use an app to order a pizza. Without a graphical interface, or GUI, games wouldn't have such wide appeal. Without a GUI you wouldn't probably use a computer nearly as much. You might be happier, but we'll leave that topic to another podcast. Let's jump in our time machine and head back to 1973. The Allman Brothers stopped drinking mushroom tea long enough to release Ramblin' Man, Elton John put out Crocodile Rock, both Carpenters were still alive, and Free Bird was released by Lynard Skynyrd. Nixon was the president of the United States, and suspends offensive actions in North Vietnam, 5 days before being sworn into his second term as president. He wouldn't make it all four years of course because not long after, Watergate broke, and by the end of the year Nixon claimed “I'm not a crook”. The first handheld cell call is made by Martin Cooper, the World Trade Center opens, Secretariat wins the Belmont Stakes, Skylab 3 is launched, OJ was a running back instead of running from the police, being gay was removed from the DSM, and the Endangered Species Act was passed in the US. But many a researcher at the Palo Alto Research Center, known as Xerox Parc, probably didn't notice much of this as they were hard at work at doing something many people in Palo Alto talk about these days but rarely do: changing the world. In 1973, Xerox released the Alto, which had the first computer operating system designed from the ground up to support a GUI. It was inspired by the oN-Line System (or NLS for short), which had been designed by Douglas Engelbert of the Stanford Research Institute in the 60s on a DARPA grant. They'd spent a year developing it and that was the day to shine for Doublers Steward, John Ellenby, Bob Nishimura, and Abbey Silverstone. The Alto ran the Alto Executive operating system, had a 2.5 megabyte hard drive, ran with four 74181 MSI chips that ran at a 5.88 MHz clock speed and came with between 96 and 512 kiloBytes of memory. It came with a mouse, which had been designed by Engelbert for NLS. The Alto I ran a pilot of 30 and then an additional 90 were produced and sold before the Alto II was released. Over the course of 10 years, Xerox would sell 2000 more. Some of the programming concepts were borrowed from the Data General Nova, designed by Edson de Castro, a former DEC product manager responsible for the PDP-8. The Alto could run 16 cooperative, prioritized tasks. It was about the size of a mini refrigerator and had a CRTO on a swivel. It also came with an Ethernet connection, a keyboard, a three-button mouse a disk drive, and first a wheel mouse, later followed up with a ball mouse. That monitor was in portrait rather than the common landscape of later computers. You wrote software in BCPL and Mesa. It used raster graphics, came with a document editor, the Laurel email app, and gave us an actual multi-player video game. Oh, and a early graphics editor. And the first versions of Smalltalk - a language we'll do an upcoming episode on, ran on the Alto. 50 of these were donated to universities around the world in 1978, including Stanford, MIT, and Carnegie Mellon, inspiring a whole generation of computer scientists. One ended up in the White House. But perhaps the most important of the people that were inspired, was Steve Jobs, when he saw one at Xerox Parc, the inspiration for the first Mac. The sales numbers weren't off the charts though. Byte magazine said: It is unlikely that a person outside of the computer-science research community will ever be able to buy an Alto. They are not intended for commercial sale, but rather as development tools for Xerox, and so will not be mass-produced. What makes them worthy of mention is the fact that a large number of the personal computers of tomorrow will be designed with knowledge gained from the development of the Alto. The Alto was sold for $32,000 in 1979 money, or well over $100,000 today. So they were correct. $220,000,000 over 10 years is nothing. The Alto then begat the Xerox Star, which in 1981 killed the Alto and sold at half the price. But Xerox was once-bitten, twice shy. They'd introduced a machine to rival the DEC PDP-10 and didn't want to jump into this weird new PC business too far. If they had wanted to they might have released something somewhere between the Star and the Commodore VIC-20, which ran for about $300. Even after the success of the Apple II, which still paled in comparison to the business Xerox is most famous for: copiers. Imagine what they thought of the IBM PCs and Apple II, when they were a decade ahead of that? I've heard may say that with all of this technology being invented at Xerox, that they could have owned the IT industry. Sure, Apple went from $774,000 in 1977 to $118 million in 1980 but then CEO Peter McColough was more concerned about the loss of market share for copiers, which dipped from 65 to 46 percent at the time. Xerox revenues had gone from $1.6 billion dollars to $8 billion in the 70s. And there were 100,000 people working in that group! And in the 90s Xerox stock would later skyrocket up to $250/share! They invented Laser Printing, WYSIWYGs, the GUI, Ethernet, Object Oriented Programming, Ubiquitous computing with the PARCtab, networking over optical cables, data storage, and so so so much more. The interconnected world of today likely wouldn't be what it is without other people iterating on their contributions, but more specifically likely wouldn't be what it is if they had hoarded them. They made a modicum of money off most of these - and that money helped to fund further research, like hosting the first live streamed concert. Xerox still rakes in over $10 billion in a year in revenue and unlike many companies that went all-in on PCs or other innovations during the incredible 112 year run of Xerox, they're still doing pretty well. Commodore went bankrupt in 1994, 10 years after Dell was founded. Computing was changing so fast, who can blame Xerox? IBM was reinvented in the 80s because of the PC boom - but it also almost put them out of business. We'll certainly cover that in a future episode. I'm glad Xerox is still in business, still making solid products, and still researching all the things! So thank you to everyone at every level of Xerox, for all your organization has contributed over the years, including the Alto, which shaped how computers are used today. And thank YOU patient listeners, for tuning in to this episode of the History Of Computing Podcast. We hope you have a great day!
Do you store every piece of data in its own variable? Probably not... and if you had to, that would not be very fun, especially if had thousands or millions of data pieces. This week Kathryn and Robyn from The Programmer Toolbox will be talking all about data structures and why you need them. They'll also explain the basics of how you can organize data with object oriented programming and why it might be useful in your programs.
Chapter 7 (pt. 2) - Steve Jobs teaches us how to wash clothes Season 2 Episode 12 John: Welcome to Iteration: A weekly podcast about programming, development, and design through the lens of amazing books, chapter-by-chapter. JP: Welcome to PART 2 of Chapter 7: "Before The Project" 56 - Start When You're Ready You've been building experience all your life. Don't ignore nagging doubts. JP: Follow your instincts when starting a project - but don't procrastinate - you can do this by prototyping. Proof of concepts are nice when you tackle the "hard" thing first. Prototype to discover John: Prototype, prototype! "as the prototype progresses you may have one of those moments of revelation when you suddenly realize that some basic premise was wrong." 57 - Some Things Are Better Done than Described Don't fall into the specification spiral - at some point you need to start coding. JP: "Program specification is the process of taking a requirement and reducing it down to the point where a programmer's skill can take over." - John: "natural language is really not up to the job." John: Even if it's just a screen recording and an ugly sketch prototype - manually scrolling around - WAAAY better than a written requriment doc. I rarely define work through written requirments. more than 1 bullet point alert specs will never capture every detail and nuance of the system and it's important to recognize this "A design that leaves the coder no room for interpretation robs the programming effort of any skill and art" - you may unearth some insights by beginning to code "Distrust environments where requirements are gathered, specifications are written, and then coding starts, all in isolation." there should be no artificial boundaries a healthy dev process encourages feedback from implementation and testing into the spec process there is a point of diminishing returns when specs get too details this reminds me of the early days of Whiz when I was a designer. everything was terribly isolated 58 - Don't Be a Slave to Formal Methods Don't blindly adopt any technique without putting it into the context of your development practices and capabilities This shows how dated the book is. examples of formal methods: CASE tools, waterfall development, "the spiral model", to today's UML diagrams. If this were written today, we'd talk about lean methodology, agile development, SCRUM don't get caught up in methodology. this is bad because it encourages isolation. "us vs. them" mentality between designers and programmers. the process should be more collaborative that's not to say you SHOULDN'T use formal methods. just remember that they're another tool You should work constantly to refine and improve your process 59 - Costly Tools Don't Produce Better Designs Beware of vendor hype, industry dogma, and the aura of the price tag. Judge tools on their merits. There are a lot of expensive project management tools. Are they worth it? John: Try not to think about how much a tool cost when you look at its output. Picks JP: If you're an Apple fan boy/girl, you might be interested in what Steve Jobs had to say about Object-Oriented Programming. This is an excerpt from a 1994 Rolling Stone interview where Steve (not a programmer) explains OOP in simple terms. Jeff Goodell: Would you explain, in simple terms, exactly what object-oriented software is? Steve Jobs: Objects are like people. They're living, breathing things that have knowledge inside them about how to do things and have memory inside them so they can remember things. And rather than interacting with them at a very low level, you interact with them at a very high level of abstraction, like we're doing right here. Here's an example: If I'm your laundry object, you can give me your dirty clothes and send me a message that says, “Can you get my clothes laundered, please.” I happen to know where the best laundry place in San Francisco is. And I speak English, and I have dollars in my pockets. So I go out and hail a taxicab and tell the driver to take me to this place in San Francisco. I go get your clothes laundered, I jump back in the cab, I get back here. I give you your clean clothes and say, “Here are your clean clothes.” You have no idea how I did that. You have no knowledge of the laundry place. Maybe you speak French, and you can't even hail a taxi. You can't pay for one, you don't have dollars in your pocket. Yet, I knew how to do all of that. And you didn't have to know any of it. All that complexity was hidden inside of me, and we were able to interact at a very high level of abstraction. That's what objects are. They encapsulate complexity, and the interfaces to that complexity are high level. John: Time Timer - https://www.timetimer.com/ - Pomodoro - Physical Device
Learn all about one of the four major principles of Object Oriented Programming (encapsulation) as well as the "final" keyword. In this episode I also dive into the popular topic of Java Certification. Learn what certifications you can get, what you should do to prepare, as well as what materials I'd suggest picking up to give yourself the best chance of success!
Interested in starting your coding career? I'm now accepting students into an immersive programming Bootcamp where I guarantee you a job offer upon graduation. It is a 6 month, part-time, online Bootcamp that teaches you everything you need to know to get a job as a Java developer in the real-world. You can learn more via https://www.coderscampus.com/bootcamp In this episode... Trevor Page takes you through all the nail biting action that is casting in Java. This episode will teach you what casting is and why it's needed in Object Oriented Programming languages.