American computer programmer who developed the first wiki
POPULARITY
pWotD Episode 2735: Wiki Welcome to Popular Wiki of the Day, spotlighting Wikipedia's most visited pages, giving you a peek into what the world is curious about today.With 633,663 views on Sunday, 27 October 2024 our article of the day is Wiki.A wiki ( WI-kee) is a form of hypertext publication on the internet which is collaboratively edited and managed by its audience directly through a web browser. A typical wiki contains multiple pages that can either be edited by the public or limited to use within an organization for maintaining its internal knowledge base.Wikis are powered by wiki software, also known as wiki engines. Being a form of content management system, these differ from other web-based systems such as blog software or static site generators in that the content is created without any defined owner or leader. Wikis have little inherent structure, allowing one to emerge according to the needs of the users. Wiki engines usually allow content to be written using a lightweight markup language and sometimes edited with the help of a rich-text editor. There are dozens of different wiki engines in use, both standalone and part of other software, such as bug tracking systems. Some wiki engines are free and open-source, whereas others are proprietary. Some permit control over different functions (levels of access); for example, editing rights may permit changing, adding, or removing material. Others may permit access without enforcing access control. Further rules may be imposed to organize content. In addition to hosting user-authored content, wikis allow those users to interact, hold discussions, and collaborate.There are hundreds of thousands of wikis in use, both public and private, including wikis functioning as knowledge management resources, note-taking tools, community websites, and intranets. Ward Cunningham, the developer of the first wiki software, WikiWikiWeb, originally described wiki as "the simplest online database that could possibly work". "Wiki" (pronounced [wiki]) is a Hawaiian word meaning "quick".The online encyclopedia project Wikipedia is the most popular wiki-based website, as well being one of the internet's most popular websites, having been ranked consistently as such since at least 2007. Wikipedia is not a single wiki but rather a collection of hundreds of wikis, with each one pertaining to a specific language. The English-language Wikipedia has the largest collection of articles, standing at 6,900,744 as of October 2024.This recording reflects the Wikipedia text as of 02:47 UTC on Monday, 28 October 2024.For the full current version of the article, see Wiki on Wikipedia.This podcast uses content from Wikipedia under the Creative Commons Attribution-ShareAlike License.Visit our archives at wikioftheday.com and subscribe to stay updated on new episodes.Follow us on Mastodon at @wikioftheday@masto.ai.Also check out Curmudgeon's Corner, a current events podcast.Until next time, I'm neural Salli.
Le nom "Wikipedia" est un mot-valise formé de deux éléments : "wiki" et "encyclopedia" (encyclopédie en anglais). 1. "Wiki" :Le terme "wiki" vient du mot hawaïen "wiki-wiki", qui signifie "rapide" ou "vite". Il a été popularisé dans le domaine de l'informatique par le programmeur Ward Cunningham, qui a créé en 1995 le premier site web collaboratif appelé WikiWikiWeb. Un wiki est un type de site web qui permet aux utilisateurs de modifier directement son contenu, favorisant ainsi la collaboration et l'échange d'informations. 2. "Encyclopedia" (encyclopédie) :Le terme "encyclopedia" fait référence à une œuvre contenant un ensemble structuré de connaissances, organisé de manière à offrir une vue d'ensemble sur divers sujets. Une encyclopédie traditionnelle est souvent un ouvrage volumineux, avec des articles informatifs sur une large gamme de sujets, écrits par des experts. 3. Origine du nom "Wikipedia" :Jimmy Wales et Larry Sanger, les fondateurs de Wikipedia, ont lancé le projet en janvier 2001. Leur idée initiale était de créer une encyclopédie libre et collaborative, mais ils cherchaient un modèle qui permettrait aux utilisateurs de participer facilement à la création et à l'édition des articles. Le terme "Wikipedia" a donc été créé en combinant le concept de "wiki", une plateforme rapide et collaborative, avec celui d'"encyclopedia", reflétant la nature encyclopédique du projet. Wikipedia s'est distinguée des encyclopédies traditionnelles en adoptant un format où n'importe qui, dans le monde entier, pouvait éditer et contribuer aux articles, ce qui en a fait l'une des sources d'information les plus dynamiques et accessibles. Anecdote: Voici une autre anecdote amusante : en 2008, Wikipedia a failli fermer temporairement à cause d'un article sur un sandwich. Il s'agit de l'article sur le "peanut butter and jelly sandwich" (sandwich au beurre de cacahuètes et à la confiture). Un débat intense a éclaté entre les contributeurs sur la formulation exacte et la nécessité de l'article, menant à des guerres d'édition répétées et à des discussions enflammées. La situation a dégénéré au point où les administrateurs de Wikipedia ont dû intervenir pour calmer les esprits. L'article a survécu et est encore en ligne aujourd'hui, mais cela montre comment des sujets apparemment anodins peuvent parfois créer de vives controverses sur la plateforme. En résumé, Wikipedia signifie littéralement une encyclopédie collaborative rapide, où "wiki" représente l'aspect ouvert et modifiable par les utilisateurs, et "pedia" renvoie à l'encyclopédie. Hébergé par Acast. Visitez acast.com/privacy pour plus d'informations.
Ben and Matt discuss the original definition of technical debt a metaphor created by Ward Cunningham to explain why software designs that were correct when created now need to be changed. Ben invents a new verb, 'to soapbox' and then demonstrates its practical use. Matt reads timestamps in the future.
A new week means new questions! Hope you have fun with these!What is the name of the video rhythm game that Konami introduced in 1989 that makes the players move their feet to the beat as arrows go up the screen?Named for wiki developer Ward Cunningham, Cunningham's law states that the best way to get the right answer on the internet, is to do what?Which actor has appeared in the most films of the James Bond franchise? Half points if you can name the character the actor playedWhat interactive words do AMA stand for?Which element is named after a village in Scotland?What is the sacred animal of Thailand?The laws of rugby league state that the hooker is to be what number?What type of bird carried Zeus and Jupiter's thunderbolts in Greek/Roman mythology?What is the capital of Thailand?MusicHot Swing, Fast Talkin, Bass Walker, Dances and Dames, Ambush by Kevin MacLeod (incompetech.com)Licensed under Creative Commons: By Attribution 3.0 http://creativecommons.org/licenses/by/3.0/Don't forget to follow us on social media:Patreon – patreon.com/quizbang – Please consider supporting us on Patreon. Check out our fun extras for patrons and help us keep this podcast going. We appreciate any level of support!Website – quizbangpod.com Check out our website, it will have all the links for social media that you need and while you're there, why not go to the contact us page and submit a question!Facebook – @quizbangpodcast – we post episode links and silly lego pictures to go with our trivia questions. Enjoy the silly picture and give your best guess, we will respond to your answer the next day to give everyone a chance to guess.Instagram – Quiz Quiz Bang Bang (quizquizbangbang), we post silly lego pictures to go with our trivia questions. Enjoy the silly picture and give your best guess, we will respond to your answer the next day to give everyone a chance to guess.Twitter – @quizbangpod We want to start a fun community for our fellow trivia lovers. If you hear/think of a fun or challenging trivia question, post it to our twitter feed and we will repost it so everyone can take a stab it. Come for the trivia – stay for the trivia.Ko-Fi – ko-fi.com/quizbangpod – Keep that sweet caffeine running through our body with a Ko-Fi, power us through a late night of fact checking and editing!
Suppose you believed that the ecological/embodied cognitive scientists of last episode had a better grasp on cognition than does our habitual position that the brain is a computer, passively perceiving the environment, then directing the body to perform steps in calculated plans. If so, technical practices like test-driven design, refactoring in response to "code smells," and the early-this-century fad for physical 3x5 cards might make more sense. I explain how. I also sketch how people might use such ideas when designing their workplace and workflow. Books I drew uponAndy Clark, Being There: Putting Brain, Body, and World Together Again, 1997Alva Noë, Action in Perception, 2005Also mentionedGary Klein, Sources of Power: How People Make Decisions, 1998I mentioned a session of the Simple Design and Test conference.The sociology book I contributed to: The Mangle in Practice: Science, Society, and Becoming, 2009, edited by Andrew Pickering and Keith Guzik. My chapter, "A Manglish Way of Working: Agile Software Development", is inexplicably available without a paywall.The MIT AI Lab Jargon FileI believe the original publication about CRC cards is Kent Beck and Ward Cunningham, "A laboratory for teaching object oriented thinking", 1989. I also believe the first book-type description was in Rebecca Wirfs-Brock et. al., Designing Object-Oriented Software, 1990. The idea of "flow" was first popularized in Mihály Csíkszentmihályi's 1990 Flow: The Psychology of Optimal Experience. The idea of the hedgehog and the fox was popularized by Isaiah Berlin in his 1953 book The Hedgehog and the Fox (a wikipedia link).The original developer of the Pomodoro technique describes it here. There was a book about it, but Goodreads has been sufficiently enshittified that I can't find it. Perhaps you might be interested in Reduce PTSD and Depression Symptoms in 21 Days Using the Pomodoro Method instead? Because Goodreads prefers that.The Boy Who Cried World (wikipedia)CreditsI was helped by Steve Doubleday, Ron Jeffries, and Ted M. Young. I took the picture of Dawn in the tango close embrace.
If two parents can run a family, why shouldn't two executives run a company? We dig into the research and hear firsthand stories of both triumph and disaster. Also: lessons from computer programmers, Simon and Garfunkel, and bears versus alligators. RESOURCES:"How Allbirds Lost Its Way," by Suzanne Kapner (The Wall Street Journal, 2023)."Is It Time to Consider Co-C.E.O.s?" by Marc A. Feigen, Michael Jenkins, and Anton Warendh (Harvard Business Review, 2022)."The Costs and Benefits of Pair Programming," by Alistair Cockburn and Laurie Williams (2000)."Strengthening the Case for Pair Programming," by Laurie Williams, Robert R. Kessler, Ward Cunningham, and Ron Jeffries (IEEE Software, 2000).EXTRAS:"The Facts Are In: Two Parents Are Better Than One," by Freakonomics Radio (2023)."The Secret Life of a C.E.O.," series by Freakonomics Radio (2018-2023).
Array Cast - November 11, 2022 Show NotesThanks to Bob Therriault and Adám Brudzewsky for gathering these links:[01] 00:04:10 SJT AT 5JT DOT COM[02] 00:04:30 APLNAATOT Podcast https://www.youtube.com/watch?v=R_dpMVyyCEo&list=PLYKQVqyrAEj8Q7BdOgakZCAGf6ReO1cue https://abrudz.github.io/aplnaatot/ Dyalog User meeting videos https://dyalog.tv/Dyalog22/[03] 00:08:40 q personal licence https://kx.com/kdb-personal-edition-download/[04] 00:09:20 Stop Writing Dead Programs StrangeLoop 2022 https://www.youtube.com/watch?v=8Ab3ArE8W3s[05] 00:11:22 Deck of Cards video https://www.youtube.com/watch?v=eXGKK8BkCkg[06] 00:11:44 Tangentstorm home page http://www.tangentstorm.com/ Youtube https://www.youtube.com/user/tangentstorm/videos Twitch https://www.twitch.tv/tangentstorm Twitter https://twitter.com/tangentstorm GitHub https://github.com/tangentstorm/[07] 00:13:09 Tandy 1000 https://en.wikipedia.org/wiki/Tandy_1000 GW Basic https://en.wikipedia.org/wiki/GW-BASIC[08] 00:14:09 Turbo Pascal https://en.wikipedia.org/wiki/Turbo_Pascal[09] 00:15:30 Fred and Wanda website http://tempytantrum.com[10] 00:16:50 AmeriCorps https://americorps.gov/[11] 00:21:30 Haskell https://www.haskell.org/ Smalltalk https://en.wikipedia.org/wiki/Smalltalk Python https://www.python.org/[12] 00:22:50 J software https://www.jsoftware.com/#/[13] 00:24:15 J for C programmers https://code.jsoftware.com/wiki/Books#J_for_C_Programmers Ulam's Spiral video https://youtu.be/dBC5vnwf6Zw[14] 00:25:18 Eric Iverson Episode https://www.arraycast.com/episodes/episode10-eric-iverson[15] 00:25:42 1010data.com https://www.1010data.com/ Stevan Apter Episode https://www.arraycast.com/episodes/episode26-stevan-apter Joel Kaplan Episode https://www.arraycast.com/episodes/episode27-joel-kaplan[16] 00:29:05 Github Tangentlab http://tangentstorm.github.io/ Ward Cunningham https://en.wikipedia.org/wiki/Ward_Cunningham C2 wiki http://wiki.c2.com/[17] 00:30:00 Python Paradox Paul Graham http://www.paulgraham.com/pypar.html k language https://en.wikipedia.org/wiki/K_(programming_language)[18] 00:31:50 kona https://github.com/kevinlawler/kona/wiki[19] 00:34:12 ok.js https://johnearnest.github.io/ok/index.html[20] 00:35:21 Job posting https://www.linkedin.com/pulse/want-work-k-1010data-michal-wallace/?trackingId=MAtCm2uioHw0wAsNbxJ%2FNA%3D%3D[21] 00:38:34 Recursion https://en.wikipedia.org/wiki/Recursion[22] 00:54:12 Jprez presentation in J https://github.com/tangentstorm/jprez Tangentstream https://www.youtube.com/channel/UCWgUN-LjgbKkeqQ0llA51Gw[23] 00:59:45 CP3 Python https://www.youtube.com/watch?v=o4Pnn6T9d3Y[24] 01:00:30 Why Isn't Functional Programming the Norm Richard Feldman https://www.youtube.com/watch?v=QyJZzq0v7Z4
Peter Galison, Image and Logic: A Material Culture of Microphysics, 1997Wikipedia on academic genealogy@made_in_cosmos had a tweet about tradition that I mentionedPaul Hoffman, The Man Who Loved Only Numbers: The Story of Paul Erdős and the Search for Mathematical Truth, 1998Context-driven testing website and bookThe Agile Fusion workshop descriptionPeople mentioned: Lisa Crispin, Ward Cunningham, Janet Gregory, GeePaw Hill, Simon Peyton-JonesCreditsAn image from an undated review of a staging of "Fiddler on the Roof". DuckDuckGo claims it's CC-licensed, but I can't tell. I'm gonna risk it.
La nuova versione del booking engine di Slope offre l'occasione ad Edoardo e Marco di parlare di quanto sia per un albergatore, sia per una tech company, sia importante capire quando rinnovarsi e con quali modalità farlo. Nel corso della 177esima puntata del podcast Ospitalità 4.0 si parlerà anche di "debito tecnico", concetto noto agli ingegneri del software. Il debito tecnico va di pari passo con la volontà di rinnovarsi, infatti entra in gioco ogniqualvolta viene introdotta una nuova funzionalità. Il debito tecnico è una metafora concepita da Ward Cunningham che assimila la complessità di un software ad un debito finanziario e lo sforzo necessario ad aggiungere una nuova funzionalità all'interesse pagato sul debito.Ogni riga di codice scritta va ad incrementare il livello di complessità generale al progetto, andando così ad aumentare il debito tecnico.
CitationsCrafting Science: A Sociohistory of the Quest for the Genetics of Cancer, Joan Fujimura, 1997. Contingency, Irony, and Solidarity, Richard Rorty, 1989. Smalltalk Best Practice Patterns, Kent Beck, 1996.Ward Cunningham on "working the program", 2004.The Mathematical Experience, Phillip J. Davis and Reuben Hersh, 1980."Elephant Talk", King Crimson, 1981 (audio)."Hammock-Driven Development", Rich Hickey, 2010 (video)."What is Hammock-Driven Development?", Keagan Stokoe, 2021CreditsImage of contrasting words from Flickr user andeecollard, Creative Commons License CC BY-SA 2.0
From extreme programming to pairing with Ward Cunningham and the earliest days of .Net to building communities in a remote-first world, Thoughtworks' CEO Guo Xiao has seen huge changes in the tech industry. We hear how he went from being a graduate developer to leading a company of more than 10,000 — and what he's learned about developing software along the way.
As menders working with legacy code, we are focused on identifying and reducing technical debt. But how much easier this task would be if the creator of the code or the previous maintainer left us some breadcrumbs to follow? A simple note on the rationale for a particular decision they have made or a warning about interconnected lines of code would take us a long way! Today we talk with Andrea Goulet, co-founder and Chief Strategy Officer of Corgibytes. Her empathy-driven approach to software development earned her recognition as one of the Top Ten Professionals in Software Under 35 by LinkedIn. She tells us about this lack of communication in software development, the phenomenon she calls the communication debt, and how its reduction can make the software more robust and its maintenance more efficient. When you finish listening to the episode, connect with Andrea via LinkedIn, contact her via Corgibytes' website, and check out her LinkedIn courses: Agile Software Development: Remote Teams and Creating an Agile Culture. Mentioned in this episode: Andrea on LinkedIn at https://www.linkedin.com/in/andreamgoulet/ Andrea on Twitter at https://twitter.com/andreagoulet Corgibytes website at https://corgibytes.com Andrea Goulet, Agile Software Development: Remote Teams at https://www.linkedin.com/learning/agile-software-development-remote-teams Andrea Goulet, Creating an Agile Culture at https://www.linkedin.com/learning/agile-software-development-creating-an-agile-culture Changelog podcast with Katrina Owen at https://changelog.com/podcast/108 Katrina Owen, Exorcism.io at https://exercism.io Indi Young, Practical Empathy at https://amzn.to/3jkDlLH* Legacy Code Rocks with Indi Young at https://www.legacycode.rocks/podcast-1/episode/270edc0e/practical-empathy-with-indi-young Ward Cunningham on technical debt at https://youtu.be/pqeJFYwnkjE Legacy Code Rocks with Arlo Belshee at https://www.legacycode.rocks/podcast-1/episode/c240c45d/naming-with-arlo-belshee Daniel Kahneman, Thinking Fast and Slow at https://amzn.to/3kceRW3* Legacy Code Rocks with Cyrille Martraire at https://www.legacycode.rocks/podcast-1/episode/2fd0fdeb/living-documentation-with-cyrille-martraire Cyrille Martraire, Living Documentation at https://amzn.to/3kd2J7e* * Heads up! If you purchase a book through the links above, we will get a small commission which helps us continue to bring quality content to our Legacy Code Rocks! community. You won’t pay a penny more, we receive a small kickback, and you’re supporting our friends who wrote them. Everybody wins!
Materiały dodatkowe:Value Object, bliki Martina Fowlera, strona, której przedstawiać raczej nie trzeba...Value Object, c2 wikiValue Object Should Be Immutable, c2 wikiThe CHECKS Pattern Language of Information Integrity, Ward Cunningham, zestawienie 11 wzorców zarządzania spójnością informacji, gdzie opisany jest wzorzec Whole Value
There are many causes of technical debt - unknown or ill-defined requirements, business pressures to deliver fast, procedural deficiencies during development, and many more. These are often just manifestations of a larger problem - lack of understanding due to limitations of natural language and inability to predict future social and technical developments. Today we talk with Einar W. Høst, a programmer at the NRK, Norwegian public broadcasting company, about these sociolinguistic causes of technical debt. We can't predict the future, but we can adopt strategies to make our code more flexible and resilient. Einar shares with us a few of these strategies. When you finish listening to the episode, connect with Einar on Twitter. Mentioned in this episode: Einar on Twitter at https://twitter.com/einarwh?lang=en Norwegian public broadcasting company NRK at https://www.nrk.no/about/ Ward Cunningham on technical debt metaphor at https://www.youtube.com/watch?v=pqeJFYwnkjE Ludwig Wittgenstein, Tractus Logico-Philosophicus at https://www.amazon.com/dp/0486404455/ref=cm_sw_r_cp_api_i_bUv-Eb722FCY3 William Kent, Data and Realit: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World, 3rd Edition at https://www.amazon.com/dp/1935504215/ref=cm_sw_r_cp_api_i_7Uv-EbEH73Z2J
In this Episode, Diana joined Shahin to talk about Agile Fluency and other related topics. We conversed about and around the following topics: Agile Fluency® Model (Resources, Community & Game); and it's reference Language Fluency Group coaching compared to Individual coaching Retrospective Facilitator Gathering & Open Space Technology Continuous Learning & Continuous Improvement; Advice and Tools for newer people to Agile Coaching in the Zones & Improvement Kata We referred to and/or mentioned the following people: Rebecca Wirfs-Brock - Linda Rising - Esther Derby - Klaus Leopold (LeanOnAgile Show with Klaus) - Joshua Kerievsky - Ward Cunningham - Norman Kerth - Allison Pollard - Alistair Cockburn - Ron Jeffries - Arlo Belshee - Martin Fowler - James Shore We cited the following resources: By Diana & Co-Authors: Agile Retrospectives: Making Good Teams Great (Amazon US - Amazon CA) Liftoff: Start and Sustain Successful Agile Teams (Amazon US - Amazon CA) The Five Rules of Accelerated Learning (LeanPub) By Other Authors: Company-wide Agility with Beyond Budgeting, Open Space & Sociocracy: Survive & Thrive on Disruption - Jutta Eckstein & John Buck (Amazon US - Amazon CA) Project Retrospective: A Handbook for Team Reviews - Norman Kerth (Amazon US - Amazon CA) Love is Letting Go of Fear - Gerald Jamposky (Amazon US - Amazon CA) Checklist Manifesto - Atul Gawande (Amazon US - Amazon CA) For more details please visit http://podcast.leanonagile.com. Twitter: twitter.com/LeanOnAgileShow LinkedIn: linkedin.com/company/lean-on-agile
Scott Belsky on Product Love, Beth Long on Maintainable, Mark Schell on Agile Uprising, Daniel Mintz on Product Love, and Kelsey Hightower on On Call Nightmares. I’d love for you to email me with any comments about the show or any suggestions for podcasts I might want to feature. Email podcast@thekguy.com. And, if you haven’t done it already, don’t forget to hit the subscribe button, and if you like the show, please tell a friend or co-worker who might be interested. This episode covers the five podcast episodes I found most interesting and wanted to share links to during the two week period starting December 23, 2019. These podcast episodes may have been released much earlier, but this was the fortnight when I started sharing links to them to my social network followers. SCOTT BELSKY ON PRODUCT LOVE The Product Love podcast featured Scott Belsky with host Eric Boduch. Scott founded Behance in 2005, which he calls a “LinkedIn for the creative world.” They were acquired by Adobe in 2012. He is now Chief Product Officer there. He wrote two books: Making Ideas Happen and The Messy Middle. Scott founded Behance because his designer and artist friends felt a sense of frustration at how their careers were at the mercy of circumstance. He pitched them on the idea of a social network for creatives and they hated it. So he asked what problem they wanted to solve. Many said that their portfolio sites were always out of date and hard for clients to find, they never got attribution for their work, their potential clients found it hard to look them up if they saw their work for another client, and there was a lack of software that catered to the business aspects of being a professional designer or artist. This was a community of customers who didn’t realize that what they needed is what they didn’t want. Behance needed to pull their customers through their first mile of doubt. When they put out a beta, they asked customers to put their portfolio on it and the customers said no because they had a portfolio site already. So they asked their customers if they could interview and write a blog post about them and they said yes. So Behance made a blog of leading designers and asked them for portfolio images. Customers agreed and let them put the images in Behance. They found a backdoor way to get some of the most beautiful portfolios into Behance upon launch. People who now looked up their favorite designers found them on Behance and thought, “I should be on there.” This taught Scott the lesson that, while the science of business is scaling, the art of business is the things that don’t scale. The best businesses find the non-scalable things to prime the pump for their products. Scott says businesses need to nail it before they scale it. In other words, they should aim for high product-market fit with a hundred or so users. Eric asked where the average product leader struggles in making the transition from being hands-on to more strategic. Scott says a common struggle is not empowering design sufficiently. You want to find the right design leaders and empower them sufficiently at the right point in the process. Great product leaders don’t say much at all. They are conduits that are working behind the scenes to get people aligned and to get designers and engineers working together. Apple Podcasts link: https://podcasts.apple.com/ca/podcast/scott-belsky-joins-product-love-to-talk-about-exploring/id1343610309?i=1000458667222 Website link: https://www.spreaker.com/user/casted/belsky-edited-audio-mp3 BETH LONG ON MAINTAINABLE The Maintainable podcast featured Beth Long with host Robby Russell. Beth is a software engineer at New Relic. She says that maintainable code is code that prioritizes intelligibility and is oriented to the way humans interact with it. It is simple, clear, and emphasizes readability over conciseness. The infrastructure the code deploys to and the deployment mechanisms themselves should also prioritize intelligibility and clarity to be considered maintainable. Intelligible code is code that tends to make sense even to those that aren’t intimately familiar with it. This might be someone who hasn’t worked extensively in the codebase or someone who worked in it two months ago and has just now come back to it. Robby asked about technical debt. Working at New Relic, Beth has had opportunities to talk with Ward Cunningham, the originator of the term. When Ward coined the term, he was working on a financial system and he described technical debt, like financial debt, as something you deliberately take on. You sacrifice some maintainability in the short term and pay it back over time. Robby asked how developers can bring up maintainability concerns with stakeholders. Stakeholders are often focused on velocity, so they says things like, “Can we have the person who is on call due the sustainability engineering work?” This doesn’t work. What works is giving the team focused, protected time. Developers need to step out of their own experience of the world enough to understand the pain and pressure that their stakeholders live under and make a compelling case to them. Beth has seen it work. She has seen New Relic customers make slide decks to present to stakeholders about the value of doing the work to add observability to their systems and getting executive buy-in as a result. Robby asked about second system syndrome. She says it comes from the book The Mythical Man-Month and refers to the tendency to replace small, elegant systems that work well with bloated, over-engineered systems. You have a system that works well enough but people want more features and there is a temptation to replace the old system with something new. The old system is full of known flaws and, in the potential new system, the flaws are not yet known and you can pretend they are not there. This is why she recommends against rewrites. Apple Podcasts link: https://podcasts.apple.com/ca/podcast/beth-long-maintainable-code-prioritizes-how-humans/id1459893010?i=1000458429284 Website link: https://maintainable.fm/episodes/beth-long-maintainable-code-prioritizes-how-humans-interact-with-it-XHdDZOQF MARK SCHELL ON AGILE UPRISING The Agile Uprising podcast featured Mark Schell with host Andy Cleff. Mark started out working at an organization that had reached CMMI (that is, Capability Maturity Model Integration) level 5 (that is, the highest level: optimizing) but he struggled to see the worth of it. Eventually, a friend of his introduced him to Extreme Programming or XP and this got him energized about Agile. They got into a discussion about a talk Mark attended at the Philly XP conference that was given by Ryan Lockard. Ryan described the benefits of cleaning up old code. Mark says that the less you clean up after yourself, the more stuff you have to step around. This also means being careful not to add too much complexity, as this makes things more complicated for the user and for the developers. Andy asked Mark where he starts in such a situation where you inherit a system where there hasn’t been a great deal of taking out the trash. Mark referenced Foot and Yoder’s paper on the big ball of mud. He says you start with the smallest pieces you can find. Don’t be afraid to delete things; that’s what we have code repositories for. If you are using a compiled language and you have tools like Resharper, make use of them. Mark talked about tools like OpenGrok for making code files more searchable. He says there are going to be cases where you have to take a leap of faith; you have to delete something that you know you may need to revert if you discover a previously unknown use. If you never take that risk and you’re always afraid of that code, you’ll never get to a cleaner state. Andy asked about how things get this way. Mark says that most developers’ passion is often around the building of new things. Combined with schedule pressure, doing chores like code cleanup becomes a low priority. Mark says that, ideally, it should be baked into the red-green-refactor cycle. Andy asks how we can push back as craftspeople when the business says, “More, more, more.” Mark says you need to find a way to tie this retirement of complexity to revenue. Apple Podcasts link: https://podcasts.apple.com/ca/podcast/clean-code-refactoring-and-deleting-w-mark-schell/id1163230424?i=1000459008564 Website link: http://agileuprising.libsyn.com/clean-code-refactoring-and-deleting-w-mark-schell DANIEL MINTZ ON PRODUCT LOVE The Product Love podcast featured Daniel Mintz with host Eric Boduch. The work Daniel did in politics informed everything he does everyday. It helped him understand how people interact with products, how to scale and grow, how data can inform product decisions, how data can mislead product decisions, and how tools get built. When you’re running a giant volunteer political organization, that’s the lowest-attachment user you can imagine. Your product has to be good at grabbing users and getting them in the door or else it’s not going to work. Daniel says we often fall into the trap of being data-driven. He thinks of the episode of The Office where Michael Scott drives into the lake because the GPS tells him to turn right. There is a difference between being data-driven and data-informed and when data conflicts with your intuition, your qualitative research, and your experience, you should interrogate that. Eric asked how Daniel ended up at Looker. Daniel described his first experience with their sales team. After the salesperson struggled to describe what Looker was, he eventually asked Daniel to let him show off Looker by connecting to Daniel’s database and letting Daniel ask Looker any question about his own data. In ten minutes, the salesperson had shown him things about his data he had never seen before. Seeing Looker in this way, Daniel felt like he did when first encountered the power of SQL, but this time it was something that anybody could use. Just as any good product manager would try to get to the real problem when a customer comes to them with a solution like, “I want to make this button blue,” when a customer asks a data analyst to show them sales by salesperson by region for the last six months, a good analyst will ask them why. They might say, “I want to see if there is a big difference in how salespeople ramp over different regions.” The analyst might then respond, “What if we narrow that down and only look at people recently hired?” Product managers need to do the same thing when thinking about how they use data. For example, if you are trying to understand where people get stuck in the on-boarding path, then usage data may be useful. If you are trying to understand whether people’s impression of the product has changed over time, net promoter score might be what you need. Start with the question instead of saying, “This is the data I have available and here is what I can make of it.” Daniel says that good operational metrics are ones that, upon looking at them, you immediately know what you should do in response to them. Alternatively, dashboards of vanity metrics can be disempowering for people: if you are a product manager who isn’t working on a revenue-creating part of the product yet, a dashboard tracking a vanity metric like revenue is not something you can do anything about. Daniel gave an example of vanity and operational metrics for a company like Uber or Lyft. A vanity metric might be rides taken or cities served. It is the kind of metric that might be valuable to investors, not for the people that work there. An operational metric might be percentage of rides cancelled and that is only operational if you dig a level deeper to find out why they were cancelled. Eric asked Daniel for his take on net promoter score. From the consumer perspective, Daniel says, NPS is a great innovation because it is so simple and easy to administer that your response rate is going to be higher than any other survey question. Being a single question survey makes it easy to ask in-product rather than in a survey email and thereby increase response rate even further. He says that tracking NPS over time makes it even more useful. When it is used to just ask if something is good or bad, however, it just becomes another vanity metric. Apple Podcasts link: https://podcasts.apple.com/ca/podcast/daniel-mintz-joins-product-love-to-talk-about-data/id1343610309?i=1000459282754 Website link: https://www.spreaker.com/user/casted/daniel-mintz-joins-product-love-to-talk- KELSEY HIGHTOWER ON ON CALL NIGHTMARES The On Call Nightmares podcast featured Kelsey Hightower with host Jay Gordon. Kelsey talked about what he calls “learning in public”, in which you share things as you learn them. He says that when you learn in public, you tend to not skip over the interesting bits from zero to getting started. A lot of times, we’re afraid to share that because we want to be seen as experts. Kelsey talked about his truest introduction to on call. He described how his CTO made it clear just how important their work was to customers. Hearing about the consequences for customers of system downtime put things in perspective for Kelsey. Kelsey says that if you fail to explain it, on call can feel like you’re overtaxing your employees. It is less like on call and more like glorified overtime. Another lesson Kelsey learned about on call at that company happened when he took on all of the on call work for two months. His goal was to find the patterns and make it go away. Over the two months, he made sure the issues were documented and the documentation was made consistent. The rest of the team saw Kelsey as “taking one for the team”. The team was able to do work in their areas of expertise to improve the on call experience. The number of incidents dropped from 1-2 per week every week to having weeks without any incidents. They had been in a cycle in which on call pain was spread out enough that nobody did anything about it. Stepping up and showing leadership by doing changed things. Apple Podcasts link: https://podcasts.apple.com/ca/podcast/episode-45-kelsey-hightower-google/id1447430839?i=1000460193573 Website link: https://www.podomatic.com/podcasts/oncallnightmares/episodes/2019-12-19T08_16_15-08_00 LINKS Ask questions, make comments, and let your voice be heard by emailing podcast@thekguy.com. Twitter: https://twitter.com/thekguy LinkedIn: https://www.linkedin.com/in/keithmmcdonald/ Facebook: https://www.facebook.com/thekguypage Instagram: https://www.instagram.com/the_k_guy/ YouTube: https://www.youtube.com/c/TheKGuy Website:
In this episode I want to introduce the term Technical Debt. The term Technical debt was coined in 1992 by Ward Cunningham to describe what happens when we fail to adequately maintain what he calls “immature” code. I find technical debt a great way to express choices we make in prioritising our software development investment.
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 on Agile Software Development. Agile software development is a methodology, or anti-methodology, or approach to software development that evolves the requirements a team needs to fulfill and the solutions they need to build in a collaborative, self-organized, and cross-functional way. Boy, that's a lot to spit out there. I was in an elevator the other day and I heard someone say: “That's not very agile.” And at that moment, I knew that I just couldn't help but do an episode on agile. I've worked in a lot of teams that use a lot of variants of agile, scrum, Kanban, scrumban, Extreme Programing, Lean Software Development. Some of these are almost polar opposites and you still hear people talk about what is agile and if they want to make fun of people doing things an old way, they'll say something like waterfall. Nothing ever was waterfall, given that you learn on the fly, find re-usable bits or hit a place where you just say that's not possible. But that's another story. The point here is that agile is, well, weaponized to back up what a person wants someone to do. Or how they want a team to be run. And it isn't always done from an informed point of view. Why is Agile an anti-methodology? Think of it more like a classification maybe. There were a number of methodologies like Extreme Programming, Scrum, Kanban, Feature Driven Development, Adaptive Software Development, RAD, and Lean Software Development. These had come out to bring shape around a very similar idea. But over the course of 10-20 years, each had been developed in isolation. In college, I had a computer science professor who talked about “adaptive software development” from his days at a large power company in Georgia back in the 70s. Basically, you are always adapting what you're doing based on speculation of how long something will take, collaboration on that observation and what you learn while actually building. This shaped how I view software development for years to come. He was already making fun of Waterfall methodologies, or a cycle where you write a large set of requirements and stick to them. Waterfall worked well if you were building a computer to land people on the moon. It was a way of saying “we're not engineers, we're software developers.” Later in college, with the rapid proliferation of the Internet and computers into dorm rooms I watched the emergence of rapid application development, where you let the interface requirements determine how you build. But once someone weaponized that by putting a label on it, or worse forking the label into spiral and unified models, then they became much less useful and the next hot thing had to come along. Kent Beck built a methodology called Extreme Programming - or XP for short - in 1996 and that was the next hotness. Here, we release software in shorter development cycles and software developers, like police officers on patrol work in pairs, reviewing and testing code and not writing each feature until it's required. The idea of unit testing and rapid releasing really came out of the fact that the explosion of the Internet in the 90s meant people had to ship fast and this was also during the rise of really main-stream object-oriented programming languages. The nice thing about XP was that you could show a nice graph where you planned, managed, designed, coded, and tested your software. The rules of Extreme Programming included things like “Code the unit test first” - and “A stand up meeting starts each day.” Extreme Programming is one of these methodologies. Scrum is probably the one most commonly used today. But the rest, as well as the Crystal family of methodologies, are now classified as Agile software development methodologies. So it's like a parent. Is agile really just a classification then? No. So where did agile come from? By 2001, Kent Beck, who developed Extreme Programming met with Ward Cunningham (who built WikiWikiWeb, the first wiki), Dave Thomas, a programmer who has since written 11 books, Jeff Sutherland and Ken Schwaber, who designed Scrum. Jim Highsmith, who developed that Adaptive Software Development methodology, and many others were at the time involved in trying to align an organizational methodology that allowed software developers to stop acting like people that built bridges or large buildings. Most had day jobs but they were like-minded and decided to meet at a quaint resort in Snowbird, Utah. They might have all wanted to use the methodologies that each of them had developed. But if they had all been jerks then they might not have had a shift in how software would be written for the next 20+ years. They decided to start with something simple, a statement of values; instead of Instead of bickering and being dug into specific details, they were all able to agree that software development should not be managed in the same fashion as engineering projects are run. So they gave us the Manifesto for Agile Software Development… The Manifesto reads: We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: * Individuals and interactions over processes and tools * Working software over comprehensive documentation * Customer collaboration over contract negotiation * Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. But additionally, the principles dig into and expand upon some of that adjacently. The principles behind the Agile Manifesto: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Many of the words here are easily weaponized. For example, “satisfy the customer.” Who's the customer? The product manager? The end user? The person in an enterprise who actually buys the software? The person in that IT department that made the decision to buy the software? In the scrum methodology, the customer is not known. The product owner is their representative. But the principles should need to identify that, just use the word so each methodology makes sure to cover it. Now take “continuous delivery.” People frequently just lump CI in there with CD. I've heard continuous design, continuous improvement, continuous deployment, continuous podcasting. Wait, I made the last one up. We could spend hours going through each of these and identifying where they aren't specific enough. Or, again, we could revel in their lack of specificity by pointing us into the direction of a methodology where these words get much more specific meanings. Ironically, I know accounting teams at very large companies that have scrum masters, engineering teams for big projects with a project manager and a scrum master, and even a team of judges that use agile methodologies. There are now scrum masters embedded in most software teams of note. But once you see Agile on the cover of The Harvard Business Review, you hate to do this given all the classes in agile/XP/scrum - but you have to start wondering what's next? For 20 years, we've been saying “stop treating us like engineers” or “that's waterfall.” Every methodology seems to grow. Right after I finished my PMP I was on a project with someone else that had just finished theirs. I think they tried to implement the entire Project management Body of Knowledge. If you try to have every ceremony from Scrum, you're not likely to even have half a day left over to write any code. But you also don't want to be like the person on the elevator, weaponizing only small parts of a larger body of work, just to get your way. And more importantly, to admit that none of us have all the right answers and be ready to, as they say in Extreme Programming: Fix XP when it breaks - which is similar to Boyd's Destruction and Creation, or the sustenance and destruction in Lean Six-Sigma. Many of us forget that last part: be willing to walk away from the dogma and start over. Thomas Jefferson called for a revolution every 20 years. We have two years to come up with a replacement! And until you replace me, 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!
Source: https://www.artima.com/intv/simplest.html
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 on Agile Software Development. Agile software development is a methodology, or anti-methodology, or approach to software development that evolves the requirements a team needs to fulfill and the solutions they need to build in a collaborative, self-organized, and cross-functional way. Boy, that's a lot to spit out there. I was in an elevator the other day and I heard someone say: “That's not very agile.” And at that moment, I knew that I just couldn't help but do an episode on agile. I've worked in a lot of teams that use a lot of variants of agile, scrum, Kanban, scrumban, Extreme Programing, Lean Software Development. Some of these are almost polar opposites and you still hear people talk about what is agile and if they want to make fun of people doing things an old way, they'll say something like waterfall. Nothing ever was waterfall, given that you learn on the fly, find re-usable bits or hit a place where you just say that's not possible. But that's another story. The point here is that agile is, well, weaponized to back up what a person wants someone to do. Or how they want a team to be run. And it isn't always done from an informed point of view. Why is Agile an anti-methodology? Think of it more like a classification maybe. There were a number of methodologies like Extreme Programming, Scrum, Kanban, Feature Driven Development, Adaptive Software Development, RAD, and Lean Software Development. These had come out to bring shape around a very similar idea. But over the course of 10-20 years, each had been developed in isolation. In college, I had a computer science professor who talked about “adaptive software development” from his days at a large power company in Georgia back in the 70s. Basically, you are always adapting what you're doing based on speculation of how long something will take, collaboration on that observation and what you learn while actually building. This shaped how I view software development for years to come. He was already making fun of Waterfall methodologies, or a cycle where you write a large set of requirements and stick to them. Waterfall worked well if you were building a computer to land people on the moon. It was a way of saying “we're not engineers, we're software developers.” Later in college, with the rapid proliferation of the Internet and computers into dorm rooms I watched the emergence of rapid application development, where you let the interface requirements determine how you build. But once someone weaponized that by putting a label on it, or worse forking the label into spiral and unified models, then they became much less useful and the next hot thing had to come along. Kent Beck built a methodology called Extreme Programming - or XP for short - in 1996 and that was the next hotness. Here, we release software in shorter development cycles and software developers, like police officers on patrol work in pairs, reviewing and testing code and not writing each feature until it's required. The idea of unit testing and rapid releasing really came out of the fact that the explosion of the Internet in the 90s meant people had to ship fast and this was also during the rise of really main-stream object-oriented programming languages. The nice thing about XP was that you could show a nice graph where you planned, managed, designed, coded, and tested your software. The rules of Extreme Programming included things like “Code the unit test first” - and “A stand up meeting starts each day.” Extreme Programming is one of these methodologies. Scrum is probably the one most commonly used today. But the rest, as well as the Crystal family of methodologies, are now classified as Agile software development methodologies. So it's like a parent. Is agile really just a classification then? No. So where did agile come from? By 2001, Kent Beck, who developed Extreme Programming met with Ward Cunningham (who built WikiWikiWeb, the first wiki), Dave Thomas, a programmer who has since written 11 books, Jeff Sutherland and Ken Schwaber, who designed Scrum. Jim Highsmith, who developed that Adaptive Software Development methodology, and many others were at the time involved in trying to align an organizational methodology that allowed software developers to stop acting like people that built bridges or large buildings. Most had day jobs but they were like-minded and decided to meet at a quaint resort in Snowbird, Utah. They might have all wanted to use the methodologies that each of them had developed. But if they had all been jerks then they might not have had a shift in how software would be written for the next 20+ years. They decided to start with something simple, a statement of values; instead of Instead of bickering and being dug into specific details, they were all able to agree that software development should not be managed in the same fashion as engineering projects are run. So they gave us the Manifesto for Agile Software Development… The Manifesto reads: We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: * Individuals and interactions over processes and tools * Working software over comprehensive documentation * Customer collaboration over contract negotiation * Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. But additionally, the principles dig into and expand upon some of that adjacently. The principles behind the Agile Manifesto: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Many of the words here are easily weaponized. For example, “satisfy the customer.” Who's the customer? The product manager? The end user? The person in an enterprise who actually buys the software? The person in that IT department that made the decision to buy the software? In the scrum methodology, the customer is not known. The product owner is their representative. But the principles should need to identify that, just use the word so each methodology makes sure to cover it. Now take “continuous delivery.” People frequently just lump CI in there with CD. I've heard continuous design, continuous improvement, continuous deployment, continuous podcasting. Wait, I made the last one up. We could spend hours going through each of these and identifying where they aren't specific enough. Or, again, we could revel in their lack of specificity by pointing us into the direction of a methodology where these words get much more specific meanings. Ironically, I know accounting teams at very large companies that have scrum masters, engineering teams for big projects with a project manager and a scrum master, and even a team of judges that use agile methodologies. There are now scrum masters embedded in most software teams of note. But once you see Agile on the cover of The Harvard Business Review, you hate to do this given all the classes in agile/XP/scrum - but you have to start wondering what's next? For 20 years, we've been saying “stop treating us like engineers” or “that's waterfall.” Every methodology seems to grow. Right after I finished my PMP I was on a project with someone else that had just finished theirs. I think they tried to implement the entire Project management Body of Knowledge. If you try to have every ceremony from Scrum, you're not likely to even have half a day left over to write any code. But you also don't want to be like the person on the elevator, weaponizing only small parts of a larger body of work, just to get your way. And more importantly, to admit that none of us have all the right answers and be ready to, as they say in Extreme Programming: Fix XP when it breaks - which is similar to Boyd's Destruction and Creation, or the sustenance and destruction in Lean Six-Sigma. Many of us forget that last part: be willing to walk away from the dogma and start over. Thomas Jefferson called for a revolution every 20 years. We have two years to come up with a replacement! And until you replace me, 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 on the history of Wikipedia. The very idea of a single location that could store all the known information in the world began with Ptolemy I, founder of the Greek dynasty that ruled Egypt following the death of Alexander the great. He and his son amassed 100s of thousands of scrolls in the Library and Alexandria from 331 BC and on. The Library was part of a great campus of the Musaeum where they also supported great minds starting with Ptolemy I's patronage of Euclid, the father of geometry, and later including Archimedes, the father of engineering, Hipparchus, the founder of trigonometry, Her, the father of math, and Herophilus, who gave us the scientific method and countless other great hellenistic thinkers. The Library entered into a slow decline that began with the expulsion of intellectuals from Alexandria in 145BC. Ptolemy VIII was responsible for that. Always be weary of people who attack those that they can't win over especially when they start blaming the intellectual elite for the problems of the world. This began a slow decline of the library until it burned, first with a small fire accidentally set by Caesar in 48BC and then for good in the 270s AD. In the centuries since there have been attempts here and there to gather great amounts of information. The first known encyclopedia was the Naturalis Historiae by Pliny the Elder, never completed because he was killed in the eruption of Vesuvius. One of the better known being the Encyclopedia Britannica, starting off in 1768. Mass production of these was aided by the printing press but given that there's a cost to producing those materials and a margin to be made in the sale of those materials that encouraged a somewhat succinct exploration of certain topics. The advent of the computer era of course led to encyclopedias on CD and then to online encyclopedias. Encyclopedias at the time employed experts in certain fields and paid them for compiling and editing articles for volumes that would then be sold. As we say these days, this was a business model just waiting to be disrupted. Jimmy Wales was moderating an online discussion board on Objectivism and happened across Larry Sanger in the early 90s. They debated and became friends. Wales started Nupedia, which was supposed to be a free encyclopedia, funded by advertising revenue. As it was to be free, they were to recruit thousands of volunteer editors. People of the caliber that had been previously hired to research and write articles for encyclopedias. Sanger, who was pursuing a PhD in philosophy from Ohio State University, was hired on as editor-in-chief. This was a twist on the old model of compiling an encyclopedia and a twist that didn't work out as intended. Volunteers were slow to sign up, but Nupedia went online in 2000. Later in the year there had only been two articles that made it through the review process. When Sanger told Ben Kovitz about this, he recommended looking at the emerging wiki culture. This had been started with WikiWikiWeb, developed by Ward Cunningham in 1994, named after a shuttle bus that ran between airport terminals at the Honolulu airport. WikiWikiWeb had been inspired by Hypercard but needed to be multi-user so people could collaborate on web pages, quickly producing content on new patterns in programming. He wanted to make non-writers feel ok about writing. Sanger proposed using a wiki to be able to accept submissions for articles and edits from anyone but still having a complicated review process to accept changes. The reviewers weren't into that, so they started a side project they called Wikipedia in 2001 with a user-generated model for content, or article, generation. The plan was to generate articles on Wikipedia and then move or copy them into Nupedia once they were ready. But Wikipedia got mentioned on Slashdot. In 2001 there were nearly 30 million websites but half a billion people using the web. Back then a mention on the influential Slashdot could make a site. And it certainly helped. They grew and more and more people started to contribute. They hit 1,000 articles in March of 2001 and that increased by 10 fold by September, By And another 4 fold the next year. It started working independent of Nupedia. The dot-com bubble burst in 2000 and by 2002 Nupedia had to lay Sanger off and he left both projects. Nupedia slowly died and was finally shut down in 2003. Eventually the Wikimedia Foundation was built to help unlock the world's knowledge, which now owns and operates Wikipedia. Wikimedia also includes Commons for media, Wikibooks that includes free textbooks and manuals, Wikiquote for quotations, Wikiversity for free learning materials, MediaWiki the source code for the site, Wikidata for pulling large amounts of data from Wikimedia properties using APIs, Wikisource, a library of free content, Wikivoyage, a free travel guide, Wikinews, free news, Wikispecies, a directory containing over 687,000 species. Many of the properties have very specific ways of organizing data, making it easier to work with en masse. The properties have grown because people like to be helpful and Wales allowed self-governance of articles. To this day he rarely gets involved in the day-to-day affairs of the wikipedia site, other than the occasional puppy dog looks in banners asking for donations. You should donate. He does have 8 principles the site is run by: 1. Wikipedia's success to date is entirely a function of our open community. 2. Newcomers are always to be welcomed. 3. “You can edit this page right now” is a core guiding check on everything that we do. 4. Any changes to the software must be gradual and reversible. 5. The open and viral nature of the GNU Free Documentation License and the Create Commons Attribution/Share-Alike License is fundamental to the long-term success of the site. 6. Wikipedia is an encyclopedia. 7. Anyone with a complaint should be treated with the utmost respect and dignity. 8. Diplomacy consists of combining honesty and politeness. This culminates in 5 pillars wikipedia is built on: 1. Wikipedia is an encyclopedia. 2. Wikipedia is written from a neutral point of view. 3. Wikipedia is free content that anyone can use, edit, and distribute. 4. Wikipedia's editors should treat each other with respect and civility. 5. Wikipedia has no firm rules. Sanger went on to found Citizendium, which uses real names instead of handles, thinking maybe people will contribute better content if their name is attached to something. The web is global. Throughout history there have been encyclopedias produced around the world, with the Four Great Books of Song coming out of 11th century China, the Encyclopedia of the Brethren of Purity coming out of 10th century Persia. When Wikipedia launched, it was in English. Wikipedia launched a German version using the deutsche.wikipedia.com subdomain. It now lives at de.wikipedia.com and Wikipedia has gone from being 90% English to being almost 90 % non-English, meaning that Wikipedia is able to pull in even more of the world's knowledge. Wikipedia picked up nearly 20,000 English articles in 2001, over 75,000 new articles in 2002, and that number has steadily climbed wreaching over 3,000,000 by 2010, and we're closing in on 6 Million today. The English version is 10 terabytes of data uncompressed. If you wanted to buy a printed copy of wikipedia today, it would be over 2500 books. By 2009 Microsoft Encarta shut down. By 2010 Encyclopedia Britannica stopped printing their massive set of books and went online. You can still buy encyclopedias from specialty makers, such as the World Book. Ironically, Encyclopedia Britannica does now put real names of people on articles they produce on their website, in an ad-driven model. There are a lot of ads. And the content isn't linked to as many places nor as thorough. Creating a single location that could store all the known information in the world seems like a pretty daunting task. Compiling the non-copywritten works of the world is now the mission of Wikipedia. The site receives the fifth most views per month and is read by nearly half a billion people a month with over 15 billion page views per month. Anyone who has gone down the rabbit hole of learning about Ptolemy I's involvement in developing the Library of Alexandria and then read up on his children and how his dynasty lasted until Cleopatra and how… well, you get the point… can understand how they get so much traffic. Today there are over 48,000,000 articles and over 37,000,000 registered users who have contributed articles meaning if we set 160 Great Libraries of Alexandria side-by-side we would have about the same amount of information Wikipedia has amassed. And it's done so because of the contributions of so many dedicated people. People who spend hours researching and building pages, undergoing the need to provide references to cite the data in the articles (btw wikipedia is not supposed to represent original research), more people to patrol and look for content contributed by people on a soapbox or with an agenda, rather than just reporting the facts. Another team looking for articles that need more information. And they do these things for free. While you can occasionally see frustrations from contributors, it is truly one of the best things humanity has done. This allows us to rediscover our own history, effectively compiling all the facts that make up the world we live in, often linked to the opinions that shape them in the reference materials, which include the over 200 million works housed at the US Library of Congress, and over 25 million books scanned into Google Books (out of about 130 million). As with the Great Library of Alexandria, we do have to keep those who seek to throw out the intellectuals of the world away and keep the great works being compiled from falling to waste due to inactivity. Wikipedia keeps a history of pages, to avoid revisionist history. The servers need to be maintained, but the database can be downloaded and is routinely downloaded by plenty of people. I think the idea of providing an encyclopedia for free that was sponsored by ads was sound. Pivoting the business model to make it open was revolutionary. With the availability of the data for machine learning and the ability to enrich it with other sources like genealogical research, actual books, maps, scientific data, and anything else you can manage, I suspect we'll see contributions we haven't even begun to think about! And thanks to all of this, we now have a real compendium of the worlds knowledge, getting more and more accurate and holistic by the day. Thank you to everyone involved, from Jimbo and Larry, to the moderators, to the staff, and of course to the millions of people who contribute pages about all the history that makes up the world as we know it today. And thanks to you for listening to yet another episode of the History of Computing Podcast. We're lucky to have you. Have a great day! Note: This work was produced in large part due to the compilation of historical facts available at https://en.wikipedia.org/wiki/History_of_Wikipedia
Technical debt is just like a financial debt - incurring it responsibly boosts the development and growth, but failing to repay it in time can lead to bankruptcy and complete failure of the program. Today we talk with Tim Doherty, Staff Software Engineer at Procore Technologies and a co-organizer of the Santa Barbara JavaScript Meetup, about the responsible management of technical debt. Tim breaks down for us the Ward Cunningham’s definition of technical debt into sub-categories and shares with us the justifications for the acquisition and strategies for prudent repayment of these diverse kinds of technical debt. When you are done with the episode, you can check out Tim’s blog post that steered our conversation.
> Sign Up For Our Newsletter: http://www.firsthuman.com/being-human-newsletter/In this week's episode of Being Human I interview Joshua Kerievsky, the originator of Modern Agile and CEO of leading agile training and coaching group Industrial Logic. With occassional contributions from his dogs, we talk:- The difference between a principle-oriented vs a practice-oriented approach to Agile- How Paul O'Neill's turnaround of aluminium giant Alcoa led him to make safety a prerequisite in his philosophy- The true essence of agility- How the wiki creator Ward Cunningham still inspires him todayEnjoy!http://modernagile.org/https://www.industriallogic.com/
> Sign Up For Our Newsletter: http://www.firsthuman.com/being-human-newsletter/In this week's episode of Being Human I interview Joshua Kerievsky, the originator of Modern Agile and CEO of leading agile training and coaching group Industrial Logic. With occassional contributions from his dogs, we talk:- The difference between a principle-oriented vs a practice-oriented approach to Agile- How Paul O'Neill's turnaround of aluminium giant Alcoa led him to make safety a prerequisite in his philosophy- The true essence of agility- How the wiki creator Ward Cunningham still inspires him todayEnjoy!http://modernagile.org/https://www.industriallogic.com/
> Sign Up For Our Newsletter: http://www.firsthuman.com/being-human-newsletter/In this week's episode of Being Human I interview Joshua Kerievsky, the originator of Modern Agile and CEO of leading agile training and coaching group Industrial Logic. With occassional contributions from his dogs, we talk:- The difference between a principle-oriented vs a practice-oriented approach to Agile- How Paul O'Neill's turnaround of aluminium giant Alcoa led him to make safety a prerequisite in his philosophy- The true essence of agility- How the wiki creator Ward Cunningham still inspires him todayEnjoy!http://modernagile.org/https://www.industriallogic.com/
EPISODE DESCRIPTION: In this episode, Phil talks to software developer Kent Beck, director of Three Rivers Institute (TRI) and author of multiple programming books. Kent shares his thoughts on how he looks at software development, the value of community and the untapped potential of engineering talent that exists in different areas of the world. KEY TAKEAWAYS: (1.39) - Phil opens by asking Kent to expand on the introduction and tell everyone a bit more about himself. Kent explains that for the last 7 years he has been working at Facebook. His main focus, while there, was on the engineering culture. During those 7 years, he did a lot of writing, coaching and educating. As well as studying the culture as a whole. (2.18) - Phil asks Kent to share a unique career tip. Kent says: “It's easy to treat software development as a production process where there's some functionality and the more quickly you can produce it, the better you are and I think that that's it's an understandable mistake but a fairly large mistake.” “I prefer to look at software development as a learning process that throws off running software as a by-product. If you do that, you'll learn to do your job better and better, over time, and those improvements compound on each other.” (3.15) - Phil asked Kent to share his worst IT moment and what he learned from that experience. Kent said it was the first time he was fired. He went on to explain he was not paying enough attention to the feedback by saying: “I thought here's the job. I'm doing this job. That was much more important to me then what the team as a whole was trying to accomplish and I did my job as I saw it. It just wasn't what the person signing the checks cared about.” (4.09) - From then on, Kent has made a point of really listening and also making sure he is communicating effectively. He said: “So you’ll hear me, if I give a talk with question and answer, I almost always will say ‘Does that answer your question?’” (5.00) - Phil asks Kent about his career highlight or greatest success. Kent said – “Right at the beginning of my career, I stumbled into a relationship with Ward Cunningham, who would go on to invent the wiki. And it was really a mentor-student relationship, at first”. He explained how working with Ward gave him confidence in his abilities and reinforced, in his mind, the need to value his ideas. As well reinforcing the importance of listening to others. (6.43) - Phil asks if Kent felt it was the foundation of many of the things he went on to do subsequently. Kent said he thought it was. For example, “This habit of checking in started very much with the work that I did with Ward. So we would spend a few hours maybe programming something. And then we would go have a coffee and talk about not just the content that we'd worked on, but the process that we'd used for it.” Regularly checking in enabled them to pick up on little details at each stage. For example, something as simple as the fact that they had used 4 keystrokes for a process prompted them to ask can we make it 3? They optimized everything from the micro stuff all the way up to how does this fit into society. (7.39) - Phil asks what excites Kent the most about the future of the IT industry and careers in IT. Kent responds saying that 'things are going to definitely radically change'. He expands this statement by explaining that there's unbelievably good engineering talent in Africa which may lead to large-scale collaborations. Kent then states that "we're going to have to find ways of having finer-grain commits and quicker path to production, better feedback from production; but also we’re going to have to confront some of the limitations of the social structures that we’ve built around programming. (09.44) – Kent went on to say that things have the potential to change a lot but also the potential to stagnate if people become complacent. (9.55) – Phil asks Kent whether or not he thinks the trend of diversity will continue. Kent says, “I think the world has big problems, engineers and software engineers can be part of addressing those problems. We don't have near enough engineers to throw away five sixths of the world's engineering talent just because it happens to be female or have melanin in its skin.” (10.31) - What first attracted you to a career in IT? (10.41) – “My dad was an electrical engineer, and then a programmer. And when he gave me my first book about BASIC, it was like remembering. It was not like learning. It was just like, Oh, yeah, yeah, yeah, that’s how that works.” (11.00) – Phil asked - So you felt you found the logic behind it quite straightforward? It just worked with the way you think? Kent said yes and explained he took a microprocessor manual and just read it repeatedly until he remembered it. Even though he did not completely understand it. He knew that he just had to continue to work hard and expand his knowledge. (11.34) – What is the best career advice you ever received? Kent replied: “Um, I'm not much of an advice taker." (12.09) - If you were to begin your IT career again, right now, what would you do? Kent's reply was to: “Treat it as a learning process. Act as if you haven't graduated from school. This is just your next class and you're going to treat it as a learning process and when the class is over and you've learned the lessons, you're going to go to a different class.” The more diverse your learning, the more cross-fertilization happens. (12.55) - What career objectives are you currently focusing on yourself? (13.35) – “My focus is on longer-term relationships, especially with large scale software development. I think that's, that's something I have now a lot of experience with, and I have some ideas that aren't widely shared. So that's a focus. I'm also going to do individual coaching because I receive the benefits of that as a young engineer.” (14.13) – “It's much more highly leveraged to produce better engineers, than any amount of code that you could write.” He is also experimenting, so he can learn whether he has more leverage with an audience of geeks or business owners. (14.43) - What's the number one non technical skill that has helped you in your career so far? (14.57) – “I come to a place of compassion more quickly than a lot of people seem to. So if somebody is doing something that doesn't make any sense to me, I'll get annoyed just like anybody else. But pretty quickly I start to try to see the situation from their perspective. And I think that's a powerful habit.” “It is helpful for me to be able to see the situation from the other person’s perspective.” (15.54) - Can you share a parting piece of career advice with the IT Career Energizer audience. "Learning works better in a community" (16.29) – What’s the best way to connect with you? Kent says that his website is provides information about what he’s up to, what he’s written recently and where he’ll be speaking. (17.21) – Phil reminds the audience of the upcoming changes to the podcasts and the timescales for those changes. BEST MOMENTS: (3.00) – “Even a small change in learning trajectory can result in a large change in productive capacity”. (3.57) – “I did my job as I saw it. It just wasn't what the person signing the check cared about.” (Don’t forget to really listen to the client and the team) (7.50) – “Things are definitely going to change radically. There's a huge pool of unbelievably good engineering talent in Africa that hasn't been tapped.” (8.35) – “The pull request, code review, merge, deploy model I think is starting to run out of steam.” (9.34) – “We're going to have to find ways of building and maintaining teams and teamwork across a greater variety of thinking styles and cultural backgrounds.” (16.01) – “Learning works better in a community. I learn faster, I learn better if I share that learning experience with somebody else.” GUEST BIO: Kent Beck is the founder and director of Three Rivers Institute (TRI). His career has combined the practice of software development with reflection, innovation and communication. His contributions to software development include “Patterns For Software”, “The Rediscovery of Test-First Programming” and “Extreme Programming”. Kent has also authored multiple books, including “Test Driven Development By Example” and “Extreme Programming Explained”. CONTACT THE GUEST - KENT BECK: Website: www.kentbeck.com Twitter: https://twitter.com/KentBeck @KentBeck LinkedIn: https://www.linkedin.com/in/kentbeck/ Books: https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530 https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658 CONTACT THE HOST - PHIL BURGESS: Website: www.itcareerenergizer.com Twitter: https://twitter.com/PhilTechCareer LinkedIn: https://www.linkedin.com/in/philburgess/ Email: phil.burgess@itcareerenergiser.com
Managing technical debt has been one of the most emerging problems for the current general of software testers, especially those organizations that develop and maintain large software systems. Similar to a bad debt in the financial industry, the term was devised by Ward Cunningham to draw an analogy with financial debt to indicate how incurring debt in the short run is beneficial but hurts badly in the long run if not repaid. Basically, the term was meant to remedy the practice of making non-optimal technical decisions.
Panel: Charles Max Wood Joe Eames Aimee Knight Special Guests: Kent Beck In this episode, the JavaScript Jabber panel talks to Kent Beck. Kent left Facebook 4 months ago after working for them for 7 years and is now self-unemployed so that he can decompress from the stressful environment that he was a part of for so long. He now travels, writes, creates art, thinks up crazy programming ideas, and is taking a breather. They talk about what he did at Facebook, what his coaching engagement sessions consisted of, and the importance of taking time for yourself sometimes. They also touch on what he has learned from his experience coaching, how to create a healthy environment within the workplace, and more! In particular, we dive pretty deep on: Kent intro/update Ruby Rogues Episode 23 Worked at Facebook for 7 years What were you doing at Facebook? Unique culture at Facebook His strengths as a developer didn’t match with the organization’s Coaching developers TDD and Patterns Advantages as an old engineer What did coaching engagement consist of? Takes time to build trust Discharging shame Need permission to take care of what you need to Being at your best so you can do your best work Vacation in place What have you learned in your time working with people? The nice thing about coaching Everyone is different How do we create a healthy environment within the workplace? Mentor in Ward Cunningham What is it costing us? Why did you decide to leave? And much, much more! Links: Ruby Rogues Episode 23 @KentBeck kentbeck.com Kent’s GitHub Sponsors Kendo UI Sentry Digital Ocean Picks: Charles The Five Dysfunctions of a Team by Patrick Lencioni Crucial Accountability by Kerry Patterson Aimee n-back Joe Test Driven Development: By Example by Kent Beck Kent The Field Guide to Understanding 'Human Error' by Sidney Dekker Conspiracy: Peter Thiel, Hulk Hogan, Gawker, and the Anatomy of Intrigue by Ryan Holiday
Panel: Charles Max Wood Joe Eames Aimee Knight Special Guests: Kent Beck In this episode, the JavaScript Jabber panel talks to Kent Beck. Kent left Facebook 4 months ago after working for them for 7 years and is now self-unemployed so that he can decompress from the stressful environment that he was a part of for so long. He now travels, writes, creates art, thinks up crazy programming ideas, and is taking a breather. They talk about what he did at Facebook, what his coaching engagement sessions consisted of, and the importance of taking time for yourself sometimes. They also touch on what he has learned from his experience coaching, how to create a healthy environment within the workplace, and more! In particular, we dive pretty deep on: Kent intro/update Ruby Rogues Episode 23 Worked at Facebook for 7 years What were you doing at Facebook? Unique culture at Facebook His strengths as a developer didn’t match with the organization’s Coaching developers TDD and Patterns Advantages as an old engineer What did coaching engagement consist of? Takes time to build trust Discharging shame Need permission to take care of what you need to Being at your best so you can do your best work Vacation in place What have you learned in your time working with people? The nice thing about coaching Everyone is different How do we create a healthy environment within the workplace? Mentor in Ward Cunningham What is it costing us? Why did you decide to leave? And much, much more! Links: Ruby Rogues Episode 23 @KentBeck kentbeck.com Kent’s GitHub Sponsors Kendo UI Sentry Digital Ocean Picks: Charles The Five Dysfunctions of a Team by Patrick Lencioni Crucial Accountability by Kerry Patterson Aimee n-back Joe Test Driven Development: By Example by Kent Beck Kent The Field Guide to Understanding 'Human Error' by Sidney Dekker Conspiracy: Peter Thiel, Hulk Hogan, Gawker, and the Anatomy of Intrigue by Ryan Holiday
Panel: Charles Max Wood Joe Eames Aimee Knight Special Guests: Kent Beck In this episode, the JavaScript Jabber panel talks to Kent Beck. Kent left Facebook 4 months ago after working for them for 7 years and is now self-unemployed so that he can decompress from the stressful environment that he was a part of for so long. He now travels, writes, creates art, thinks up crazy programming ideas, and is taking a breather. They talk about what he did at Facebook, what his coaching engagement sessions consisted of, and the importance of taking time for yourself sometimes. They also touch on what he has learned from his experience coaching, how to create a healthy environment within the workplace, and more! In particular, we dive pretty deep on: Kent intro/update Ruby Rogues Episode 23 Worked at Facebook for 7 years What were you doing at Facebook? Unique culture at Facebook His strengths as a developer didn’t match with the organization’s Coaching developers TDD and Patterns Advantages as an old engineer What did coaching engagement consist of? Takes time to build trust Discharging shame Need permission to take care of what you need to Being at your best so you can do your best work Vacation in place What have you learned in your time working with people? The nice thing about coaching Everyone is different How do we create a healthy environment within the workplace? Mentor in Ward Cunningham What is it costing us? Why did you decide to leave? And much, much more! Links: Ruby Rogues Episode 23 @KentBeck kentbeck.com Kent’s GitHub Sponsors Kendo UI Sentry Digital Ocean Picks: Charles The Five Dysfunctions of a Team by Patrick Lencioni Crucial Accountability by Kerry Patterson Aimee n-back Joe Test Driven Development: By Example by Kent Beck Kent The Field Guide to Understanding 'Human Error' by Sidney Dekker Conspiracy: Peter Thiel, Hulk Hogan, Gawker, and the Anatomy of Intrigue by Ryan Holiday
After coding live at Lean+Agile DC 2018, Ben Scott of Ippon Technologies joins Bob Payne to talk code craftsmanship and getting proper feedback from the business side. Ben explains a way to quickly build a quality demo from scratch – creating the first demonstrable piece of value. Bob and Scott walk through their opinions on (shudder) best practices, living in ambiguity in agile methods, and bridging the gap between IT and business. Bob Payne: [00:00:03] Hi I'm your host Bob Payne. I'm here at Lean+Agile D.C.. I'm here with Ben Scott and we're listening to "Stand in the Place Where You are" by RBM played on the music fiddle version which is really disconcerting for me. It's like Fugazi. You know elevator music which is definitely elevator music. But country elevator music. So Ben we were talking earlier about lots and lots of things but you were talking about sort of your experience here trying to do live coding and talk. What was your what was the gist of your talk? What were you talking about with. Ben Scott: [00:00:56] So, let's start with the problem statement: Whenever you start a project from scratch mainly it's really hard to get good business demos and keep the business interactive with getting proper feedback. You'll see a lot of demos with terminals. Hey let's see what my code can do and you have to look at log statements or use post postman to demonstrate APIs. And then the business kind of glazes over it. And I think a lot of issues stem from developers trying to recreate everything internally. Someone has to provide a demo that even started a presentation with zero code I could provide a business level demo with a front end application backend with database usage deployed to the cloud. All within the same presentation within 45 minutes. So that was kind of the gist, some people really liked the felt it really demonstrated well what could be done now. They're probably unsure how to adopt down to their own organization but it's mostly a show that it is able to do that and you don't have to buy it. It's FREE. Ben Scott: [00:02:14] It's opensource a tool that I use is called J Hipster and I think overall great. Bob Payne: [00:02:23] Yeah I mean for those of us who've been familiar with play or Rails or any of the generative frameworks you know that it was not should not have been surprising but I realized how how painful it is for most organizations to get to that first demonstrable piece of value. Ben Scott: [00:02:50] Yes. Bob Payne: [00:02:51] It is a little a little insane. Ben Scott: [00:02:53] It is. The key differences are with J hipster is it really tries to adopt the enterprise level technology. Bob Payne: [00:03:00] You see the full stack you've got full size containerized deployments. Ben Scott: [00:03:05] You can you don't have to but it sure does generate Docker containers. I use the docker file to let you generate a Docker container from your code. It will generate your CD pipeline script. It supports multiple privacy circles C.I. Jenkins obviously and a few other really really kind of handhold you through the whole process of getting a code from scratch all the way to diploid and ready. It can't do anything about your business level code that's on you right. But all the bootstrapping and plumbing it generates according to best practices of the time with us. Bob Payne: [00:03:45] I winced on the inside. I don't like the phrase best practices but best that I'm okay with. Ben Scott: [00:03:54] Yes well it's always a big debate. What is best practice. Like for depending on where you are which technology you're using and your opinion because it's a hotly debated topic Your Domain Driven Design or you don't. Some people really love it some people hate it. Yeah that type of thing. Bob Payne: [00:04:12] Yeah I try to stay away because people always ask us for as consultants are always asking for the answer and there really only is know fee here given your situation. Here are a few options that we've seen people be successful. Yes you know and you know I always sort of try to steer people away from that. Like calling people resources. There's a few you like hot button words that I can't make can move resources around us our projects exactly rituals and scroll to find that I hate things that that pull it out of the somewhat grey world that we actually live in. Ben Scott: [00:05:05] Yes I actually like to prefer I prefer to live in this ambiguity. I don't like to define what scrum is definitely. I don't like too dear to a Agile philosophy per se or implementation whenever somebody dresses. Hey what is ads out to you. To me it's you delivered a piece of software that was correct at the right time and how you got there might differ based on the people working in your company. Yes we might use Scrum or not. It depends if it's a good fit with that place and sometimes it's now or sometimes they just decide as long as we do what scrum says we are agile and we just get away from what they really mean. Bob Payne: [00:05:50] Yeah. Defer to authority. There is a good strategy. Ben Scott: [00:05:55] So I don't like to prescribe things. Bob Payne:[00:05:57] Yeah. Ben Scott: [00:05:58] When we hire Scrum Masters always ask me what's your process. What tool to use. You know you use Jira. I don't prescribe - you use what you like to use right. Ben Scott: [00:06:07] Well your client will let you use yes whatever you is best for your situation which will change. Bob Payne: [00:06:15] So how do you so I know you've been doing a lot of technical coaching coaching. What do you what do you find most rewarding. Because sometimes it's it's you know it's it's a tough slog sometimes and there are always those little nuggets that just say yeah you know that will keep me going for a few months banging my head against this team or this wall or whatever. Ben Scott: [00:06:43] So I really enjoy bringing upskilling developers on where they lack and I'm not a awesome developer. I'm a very niche developer who understand the agile practices so I can do their job testing frameworks Cucumber, or perform sensing as a Gatling I know how to do them and the basic forms right and the tools to know how to use them. Eventually it clicks at first like I don't want it. It is what QA is for but eventually it clicks and it's really fun to see a click. Likewise I work a lot with the business side on bridging the gap between developers and the business we actually start working together instead of the whole campus. This is the business that we need to take to go on like what we need is. Of course we do to this refactoring. We need to adopt this technology or just trying to bring them together so they actually work as a team and we'll stack clicks which is much harder than it was going developers. Bob Payne: [00:07:40] Yeah. Ben Scott: [00:07:41] That's that's really fun. Bob Payne: [00:07:42] Yeah that is. Yeah. We like speed we have that sort of mission of making people's lives more valued fulfilling and productive. It's kind of our or our mission if we can do that on an individual basis or you know we health and organization so that it helps the folks. But it all fundamentally comes down to you know people people in interactions and you know hopefully making a you know a decent world for them to sort of grind away at the code code is an unforgiving. Ben Scott: [00:08:21] Yes we'll spend days looking for that tiny little mistake. Bob Payne: [00:08:27] Yeah yeah. So what's the other big dogmatic thing you're railing against. I don't know that you're actually railing against any big dogmatic things but you seem like the sort of person that might. Ben Scott: [00:08:41] There are some things I'm very strict on and it's is code craftsmanship to the detriment of sometimes I'm actually delivering value and I understand that. But there are times to be fast and dirty. You have a production bug. Bob Payne: [00:08:55] Yep. Ben Scott: [00:08:56] There's a feature that needs to go to the market right away. OK we can do that fast and dirty. But if that's every time there's a problem. Bob Payne: [00:09:06] Right. Ben Scott: [00:09:06] And at that point I don't have any issues slowing everything down and I guess focus on craftsmanship. Let's focus on actually teaching what solid principles mean because over time you're going into being faster more maintainable code. The sustainable pace and that takes time to learn. It might take six months a year to really get there. It's a huge investment and it's the responsibility of the entire organization to to foster that. So just like we have the Center for agile excellence or you go to an agile coach organization talk about processes. Ben Scott: [00:09:39] You should have a software craftsmanship as well a new way to mentor the developers. And that practice that's probably where I'm the most strict on. Bob Payne: [00:09:51] OK yeah no that's ... Yeah. That's a good place to be strict I think. I often think of the three things that can make a great team. It's discipline, continuous improvement, and play the long game you know not the short term gain necessarily but product delivery is is not project right now. Ben Scott: [00:10:16] And I completely understand there's times we have to go really fast for whatever reason it is. Maybe there's a bug that's costing thousands of dollars. When it's in production. Bob Payne: [00:10:23] Yeah. Ben Scott: [00:10:24] And yes. Quick and dirty fix but then think about it and fix it again the right way. Bob Payne: [00:10:30] Yeah. Well everybody. It's interesting because that the current understanding where the current sort of popular understanding of technical debt is that it is a bad thing and you know when they first started talking about it Ward Cunningham and and you know some of the folks on the first XP team actually used it in more the financial term debt. Sometimes you do take down. You know you go fast to be quick and you might incur some debt. You got to pay it down. Always cost a little bit more to pay it down. But sometimes that's the right decision. But when you're paying off the credit card with another credit card you're in drips. Ben Scott: [00:11:20] That compounds quickly. Bob Payne: [00:11:21] Then You need to re platform the whole thing. Ben Scott: [00:11:26] And then it just never ends. Bob Payne: [00:11:27] Yeah. Bob Payne: [00:11:28] And that's what the craftsmanship comes in play because if you instill those values when you build a new software and maybe you'll be a little bit better and last longer. Bob Payne: [00:11:36] Yeah. So is IPPON primarily you know do you or most of the folks steeped in XP stream programming and. Ben Scott: [00:11:47] So I would say most of us are what I would consider like Premier consultants as far as developers. Most of us are developers. So in that sense we're a bit different from most agile consulting companies. We focus a lot on the engineering aspect of agile versus the process and most of our developers don't always subscribe to Agile values. They like to get their stuff done and they're like good code and beautiful aspects that don't always adhere to delivering to agile way which is fine. But you couple that wish people would truly understand agile and you've just multiplied yet the actual value of it. It's like the cross-functional needed agile deep expertise to guide the ship but you still need a technical deep expertise on what good coding practices look like. Yeah and we also like to embed with our clients. We don't always like to take the whole project and then deliver at the end. We like to develop right and while we could develop we'll pair with them or we'll teach developed practices how to test and how to automate the whole thing and the whole the whole package. I think that's where our values will be different than other places. Bob Payne: [00:13:07] Yes. And we've you know at LitheSpeed we've been happy to be able to partner with the guys periodically because we focus primarily on the people in the process and you guys can focus on the technical chops. Ben Scott: [00:13:25] Yes. Bob Payne: [00:13:25] Yeah. I'm primarily a PowerPoint engineer and there is no PPT unit. Ben Scott: [00:13:34] No I'm really bad at PowerPoint. Bob Payne: [00:13:39] I wouldn't say I'm good. But the reason I'm not very good is because there's no there's no unit test framework to how to get good. I was talking to somebody earlier because I I was when I was developing you know I got immediately test infected like TTD like real TDD not the ATDD or BDD. Not that those things are bad but that thinking and design process of TDD was an amazing force multiplier for me as not a terribly great developer. It allowed me to focus know where I was know that I hadn't broken something else because I couldn't keep every esoteric detail from the entire system. Ben Scott: [00:14:38] Yes. Bob Payne: [00:14:39] In my head some people love that they loved the challenge of I've got every single detail in my head. But that doesn't scale. It does and test. Ben Scott: [00:14:52] It's a good thing you brought TDD like I have my own opinions about it. And you're right. Some people love us some people hate it. And to me there's a lot of focus from the process scores to do TDD when developers aren't ready for it. Bob Payne: [00:15:06] Yeah yeah yeah. Ben Scott: [00:15:07] Just like everything will be fine if you just do TDD. Bob Payne: [00:15:11] Yeah I don't believe that to be true. Everything will be fine if you have engineers that are that are that really you know there I sort of look at the code and you can see the thought process of the developer in the code and that is much easier for me to read to read tested code than it is to to create an elegant you know you start throwing in some Lambda's there and we're we're we're parked. I mean because I struck part of my psychosis if you will. And I think it's reasonable to call it that around TDD as I started in Lisp and I don't know if you've ever tried to debug lisp or scala. It's probably easier now and in scala but there's just the interpreter. Back when I was doing this so you had a command line and you read in a file and something pops out and it is the most amazing black box in the world because it's just it's interpreted. It's a functional language and 42 is the answer, right? I forgot the question we asked in end. So unless you knew that those little pieces worked. Yes pull that out throw it into an interpreter and see if it give it some some values in and see if it makes sense because all it takes is a misplaced pen. It could be anywhere and it will usually evolve out to something that still works. Ben Scott: [00:17:04] And I guess where I differ what it is like or I'm strict on tests in the same commit as the code. Bob Payne: [00:17:11] Yeah. Ben Scott: [00:17:12] I don't prescribe to. You must write a test first. Bob Payne: [00:17:15] Sure. Ben Scott: [00:17:16] But it must be in the same commit. Yeah that's that's kind of where I differ. And some people are really good at writing tests first. Some are not. Bob Payne: [00:17:24] Yeah. Ben Scott: [00:17:24] But everybody should be able to write before or after, there's not. Never does ..That's Not allowed. Bob Payne: [00:17:31] Yeah I think it's a reasonable place to be strict. I think for me just I. Bob Payne: [00:17:39] I loved Arlo Belshee. I think it was our Arlo Belshee that coined the term test infected because some people either are or are not. And it's like you know that zombie strain virus. And I don't know which side is the zombie in which is the not here but I think the TTD folks are probably the zombies. But if you were when you find yourself on one side of that divide I think that the folks that actually like TTD and I know it is not universal. It's it's one of the more powerful and least used agile engineering practices. Ben Scott: [00:18:15] Yes. Bob Payne: [00:18:16] I mean Pairing, people say they pair, but nobody pairs. I mean not like. Ben Scott: [00:18:21] Well not like extreme program where you must pair. Right. We like to pair for occasions like right. Here's a difficult piece of code. Let's work on it together or for mentoring. We'll pair for code reviews the type of thing we'll do some pairing for writing prose not so much right. How hard is it to write Pojos. You know it's so many people go down this rabbit hole to we test the setters and getters like I don't care. Like ok. Probably not. I'm OK. But really how long would it take you to actually do it if you said if everybody said we need to. Ben Scott: [00:19:09] So. So interesting thing. So the debate by just writing a piece of code using reflection finds a perjures sets the value gets the value a certain done. So all my pages are tested automatically. Bob Payne: [00:19:25] Yeah. and now with generative frameworks it is it is relatively easy. I was cured of that debate because I'm not a great programmer. When I misformatted the way I created a Java date. And so when I made and I always know how to make your assertion not against the same constructor that you used. So I use distracted at this other date class add some other stuff in and misuse the constructor and when I assert it against the string format it value, i'm like "Well that's not right." And I don't know that I would have found that regular regular test or I would have I would have found like f'd up dates in the database or in the persistence layer or in the front end and I'm like I might not know. Then I've got a whole different problem but because I knew it I found out early that it didn't work like the debugging. For me it was just so much so much easier. Ben Scott: [00:20:36] And eventually you have to use common sense. You look at your POJO like well maybe I don't need to test every single one of them. But if you're serializing a date you should test that because for whatever reason it's so strict that the date format it will kill you application is different for might just use a whole AI behind it to be able to extract data and decide what date it is. Bob Payne: [00:21:00] You guys likes you know you guys like screw up the order of the month and the day like what is this? Ben Scott: [00:21:05] It has Slashes no slashes. Bob Payne: [00:21:07] Dashes no dashes, dots.. Ben Scott: [00:21:10] Or you add milliseconds and you expect no milliseconds and it still won't truncate it'll just die right there. Bob Payne: [00:21:17] Yeah. Ben Scott: [00:21:17] So testing that. That's a good test. Typically also have a serialization test if it's data layer i'll serialize or deserialize back to the object, validate, but I might not validate. Bob Payne: [00:21:30] You know that was that it was more important when he had to write her own serializer. Ben Scott: [00:21:37] Well I don't write my own serializer but I do write my own test for the annotations like for date format for example did you do the right format right. Does the precision matter or those type of things you have and I'm working on a project right now that for whatever reason the order matters. The order should not matter but whoever was sending it to they got that code where the order of your serialization matters and they can't just construct the object they actually validate it in its raw format first. Bob Payne: [00:22:05] Okay. Ben Scott: [00:22:06] So then we have to validate that we send in the right Json format but in the right order each field. It shouldn't matter. At least in my opinion it should not matter. Bob Payne: [00:22:15] No. But yeah well unless you want strong coupling in implementations which I'm shocked at how many are organizations really like strong coupling. Ben Scott: [00:22:33] I'm not sure they like it or just live with it. Bob Payne: [00:22:36] Yeah it's Like oh my god. It's like it's like the old Korbo or SOAP. Oh man. Ben Scott: [00:22:42] This is how we've always done it so we will continue. Bob Payne: [00:22:44] Yeah. Yep. So what else would do you. What's interesting to you in what hobbies do you have besides like? Ben Scott: [00:22:56] Kids.. Does that count as Hobbies? Bob Payne: [00:22:58] Yeah. Ben Scott: [00:22:59] It takes a lot of my time - it's fun time, it's really interesting and enjoyable to watch and grow. But I did find my most of my hobbies dropped away little by little. Bob Payne: [00:23:10] Yeah. Ben Scott: [00:23:13] When I did become a parent. Bob Payne: [00:23:16] I picked up new hobbies like I had never watched soccer before because I didn't like sports because those were the people that beat up the geeks. And now I'm doing like Magic the Gathering which I avoided in college like the plague. Ben Scott: [00:23:43] I never got into that. Bob Payne: [00:23:43] Because I was more of a punk than a D&D. There's a reasonable Venn diagram there. But but. Now I'm going to Friday Night Magic with my son. Ben Scott: [00:23:55] So that's a very fun but very expensive game. Bob Payne: [00:23:59] It is. Like you know a lot of people like do sports gambling. I think that's even worse. You know. Ben Scott: [00:24:06] Yes. Bob Payne: [00:24:07] Liaisons in a Russian hotel. Let it get very expensive very quickly depending on what you're doing. Ben Scott: [00:24:17] And I also do gaming video games typically do single player story type games. Bob Payne: [00:24:23] Oh really? given your military background. You've had enough First Person Shooter.. Ben Scott: [00:24:31] We'll it's more that to play online takes dedicated time whereas a single player. I can stop anytime. Pause and walk away. Bob Payne: [00:24:39] Yeah. Ben Scott: [00:24:40] I find that sometimes as a parent it's really hard to get an hour dedicated time. Bob Payne: [00:24:43] Oh yeah yeah. Ben Scott: [00:24:44] straight to play, it's like no I cannot help you to do anything because I'm in my game. If I'm doing single player I can quickly pause and do something else. That's how I mostly got into it. Ben Scott: [00:24:54] Before kids I was mostly into Dota. Bob Payne: [00:24:59] sorry? Ben Scott: [00:24:59] Dota Which is a different type of game. Bob Payne: [00:25:02] OK. Ben Scott: [00:25:03] League of Legends. Very similar as the birth of League of Legends. Was one of the first of those types of games. Bob Payne: [00:25:11] Okay. But that's when I decided it would be hard for me to play because it requires 1 hour blocks. Bob Payne: [00:25:19] Oh yeah. Yeah. Ben Scott: [00:25:22] Couldn't dedicate that anymore. Bob Payne: [00:25:23] I know, yeah. So there's there's probably a game waiting for me this evening when I go home. So let's see. But. Ben Scott: [00:25:35] Let's see what else now spend time with family. Every Wednesday we have. Bob Payne: [00:25:42] Long walks on the beach and. Ben Scott: [00:25:43] Ah.. Not that, Just cook and eat and and drink and be merry. Revolves around food, and every Wednesday we have big family dinner. Bob Payne: [00:25:55] Wednesday? Ben Scott:[00:25:55] Yeah Wednesday just because weekends are crazy. We also do on weekends. But we found that doing it in the middle of the week it kind of cuts the week and half. Bob Payne: [00:26:04] Yeah. You talk about work a little bit the stress and excuse to escape the daily grind of get up go to work. Come back do homework or other things. It's another event middle of the week that's a bit unusual but yeah it works for us. Bob Payne: [00:26:22] Yeah Wednesdays are not that exciting, it's dessert day. So. Ben Scott: [00:26:26] I like family Wednesdays. It's fun. Bob Payne: [00:26:29] Ok cool. We'll have to we'll have to do dessert/Dota/. Ben Scott: [00:26:37] Well I haven't played that game in so long i'd probably be terrible at it now. Bob Payne: [00:26:41] It's ok. You're better than I am Ben Scott: [00:26:44] Probably. Bob Payne: [00:26:48] Thanks a lot, Ben Really appreciate it.
Doc Norton talks about the experimentation mindset. This episode is sponsored by Smartsheet. Show Notes: Slides from Doc’s presentation on the experimentation mindset XP = eXtreme Programming Other methodologies that fall into the "agile" category: Scrum, Lean Kent Beck, Ron Jeffries, and Ward Cunningham were all mentioned. They are all signers of the Agile Manifesto. Chris Argyris was mentioned in regards to single-loop and double-loop learning Book: Escape Velocity by Doc Norton - it has increased in price since the recording. It will now set you back at least 5 entire dollars. Supplemental links from Doc: CTO2 DocOnDev Collaboration Contracts Refactoring Code Smells Video: Experimentation Mindset Mob Programming Learning through experimentation PDF: How Organizations Learn From Harvard Business Review: Collective Genius Argyris: Teaching Smart People how to Learn (and PDF version) A/B Testing and the Experimentation Culture Enlightened Experimentation Smart Business Experiments Evidence Based Management link:http://www.edbatista.com/2008/05/double-loop.html[Ed Batista blog post on double-loop learning Lean Change Book: Scaling Up Excellence Experiential Learning Doc Norton is on Twitter. Want to be on the next episode? You can! All you need is the willingness to talk about something technical. Music is by Joe Ferg, check out more music on JoeFerg.com!
Fredrik chats with Craig Muth, creator of the more than slightly mind-bending Xiki about the past, present and future of this weird and wonderful evolution of the command line. Seeing Xiki in action is probably the best way to begin to grasp it, and Craig has created several great videos and screencasts. We go all the way from Xiki’s beginnings as a framework inside of Emacs to its current state as a standalone companion to your normal command line, and its just launched Kickstarter to take the next step and become social by making it super simple to share and find commands. We also look further into the future, entering completely free-form speculation about where things could go both for command lines and user-extendable interfaces. (Yes, Hyper card and Opendoc both come up.) Don’t assume things you want will happen - back things you want to succeed! Cheer up the autumn: on October 3rd Suse is sponsoring a live pod and after work in Stockholm! We’ll occupy Hobo at Brunkebergstorg 4. Doors open at 17, the pod commences somewhere around 18, and then we talk code, life, the universe, and everything and have some nice drinks for as long as we like. We hope to see you there, and that you bring along a friend or two! The number of seats are limited, so send an email as soon as possible to livepodd@gmail.com with your name, company and if you’re bringing anyone along. Thank you Cloudnet for sponsoring our VPS! Comments, questions or tips? We are @kodsnack, @tobiashieta, @oferlund and @bjoreman on Twitter, have a page on Facebook and can be emailed at info@kodsnack.se if you want to write longer. We read everything we receive. If you enjoy Kodsnack we would love a review in iTunes! Links Craig on Github Xiki The 2014 Xiki Kickstarter The current (2017) Kickstarter - includes the videos we talk about The older screencasts Quicksilver Xikihub Riverdance The talks are also on the screencasts page Emacs Elisp - Emacs Lisp Bash Z shell The Medium post - Xiki: one developer's quest to turbocharge the command line interface Made to stick React native EJB CORBA JSON CSON YAML AWS - Amazon web services Xpath Fish shell Oh my zsh Hyper D3 Ward Cunningham Smallest federated wiki The Xiki tutorial Roads and bridges: the unseen labor behind our digital infrastructure - the paper Fredrik read Hypercard Mac LC computers Opendoc Steve Jobs explaining why he’s shutting down Opendoc Titles The command line is awesome when you know exactly what to type All right, now I get it Lost, but in a really exciting way Make the command line work like a search engine A missing piece in the command line Making all the search results myself It doesn’t take that many people Riverdance with the horse and the banana Now I get the one thing, but I don’t care An idea whose time has come Hey, that’s like a command line Way back in Ohio The power you get when you do remember the commands The germ of Xiki I’ve never been able to stop working on it Users are so key I could add something here! Hey, this doesn’t exist yet! In Ohio working at boring banks This better work! My friend Keith thinks I should move to San Francisco Feeling comfortable in my skin for the first time Escape gets you into more trouble! People will fill in the gaps Do for commands what Github did for code Utterly freeform This neat open thing
Descripcion del programa Carlos Blé, desarrollador Agile, autor del libro Diseño Ágil con TDD, con él hablaremos de lo importante que es saber el objetivo del proyecto, en función de las necesidades que obtendremos en la toma de requisitos. Cuando pensamos en la necesidad de nuestros clientes nos vienen palabras como briefing a la cabeza pero sin duda el saber en lo que podemos ayudarle pasa por entenderle, por saber como trabaja y cuales son sus puntos fuertes y débiles. ¡Esperamos que os guste el episodio y como siempre nos vemos al final! Recomendaciones Preguntas rápidas: Carlos Blé Quién me ha inspirado: Mahatma Gandhi Quién me ha inspirado: Kent Beck Quién me ha inspirado: Martin Fowler Recomiéndanos un recurso: Stackoverflow Recomiéndanos a una invitada: Jorje Uriarte ¿Qué tema te gustaría que tratásemos?: Inteligencia artificial ¿Qué tema te gustaría que tratásemos?: Integración de la web en móvil: React Native, Ionic, Phonegap Contacta con: Carlos Blé Twitter de Carlos Blé Github de Carlos Blé Libro: Diseño Ágil con TDD Codesai Blog Links del programa Marty Cagan Kent Beck Martin Fowler Ward Cunningham Lean software development egghead Spring Boot Knockout.js React Redux.js Castle Project Vue.js Recomendaciones de Ignacio La importancia del Briefing Briefing model for web projects Guía para una buena toma de requisitos Cómo saber lo que quiere tu cliente Contacta con el programa Web de WeCodeSign Twitter de WeCodeSign eMail de WeCodeSign Web de Ignacio Villanueva Twitter de Ignacio Villanueva
In his Agile2016 session "The Technical Debt Trap", Doc Norton takes all the way back to the metaphor that started it all. Doc says Ward Cunningham coined the term "technical debt" not as shorthand for lousy code but for clean code implemented with your current understanding of the requirements and covered with tests. In short, "technical debt" isn't code that you intend to clean up later: it's clean code created when the dev's knowledge is impartial that the dev can then easily refactor when they learn more about the problem. The danger with the current meaning of technical debt is that the term is benign enough that we don't give it enough attention. "In a great extent, we're using the metaphor to abdicate our own professional responsibility..." Things that teams can start doing now: create debt stories and discuss with the business what the real value of that debt is. John Esposito, Editor-in-Chief of DZone, SolutionsIQ partner, hosts at Agile2016 in Atlanta, GA. About Agile Amped The Agile Amped podcast series connects the community through compelling stories, passionate people, shared knowledge, and innovative ideas. Fueled by inspiring conversations with industry thoughtleaders, Agile Amped offers valuable content – anytime, anywhere. To receive real-time updates, subscribe at YouTube, iTunes or SolutionsIQ.com. Subscribe: http://bit.ly/SIQYouTube, http://bit.ly/SIQiTunes, http://www.solutionsiq.com/agile-amped/ Follow: http://bit.ly/SIQTwitter Like: http://bit.ly/SIQFacebook
“I believe that there’s something deeply personal, natural, and human going on as we construct these abstract devices called computers.” Wiki technology was invented decades ago to improve how software developers communicate. Today, Wikipedia has taken the ideas of the wiki to a new level, creating a free knowledge graph for the world to learn The post Creating the Wiki with Ward Cunningham appeared first on Software Engineering Daily.
Guest: Ward Cunningham @WardCunningham Full show notes are at https://developeronfire.com/podcast/episode-057-ward-cunningham-exceeding-expectations-with-joy-curiosity-and-discovery
In the late 80s, Kent Beck and Ward Cunningham came up with HotDraw (http://c2.com/cgi/wiki?HotDraw), a two-dimensional graphics framework for structured drawing editors, originally written in Smalltalk-80. Since then, many implementations have been created, and the principles applied in a lot of places. While a lot has been learned, the original HotDraw still outshines many of its successors. In the last few years, RoleModel Software was asked to build several systems with a complex underlying model where the user input was primarily direct graphical manipulation. This included: * a system to support educational innovators at the Friday Institute, using direct manipulation tasks to test and teach various mathematical concepts to elementary age children. * a deck designer for decks.com, to design and produce a 3D rendering, materials lists, and permit-ready plans to help do-it-yourselfers get professional designs in seconds. The solution in both cases included a HotDraw-like JavaScript approach to drawing and direct manipulation on an HTML5 Canvas, almost completely test driven using Jasmine. We'll go over the highlights of the cool technical feats and show how JavaScript is not just for manipulating the DOM.
In the late 80s, Kent Beck and Ward Cunningham came up with HotDraw (http://c2.com/cgi/wiki?HotDraw), a two-dimensional graphics framework for structured drawing editors, originally written in Smalltalk-80. Since then, many implementations have been created, and the principles applied in a lot of places. While a lot has been learned, the original HotDraw still outshines many of its successors. In the last few years, RoleModel Software was asked to build several systems with a complex underlying model where the user input was primarily direct graphical manipulation. This included: * a system to support educational innovators at the Friday Institute, using direct manipulation tasks to test and teach various mathematical concepts to elementary age children. * a deck designer for decks.com, to design and produce a 3D rendering, materials lists, and permit-ready plans to help do-it-yourselfers get professional designs in seconds. The solution in both cases included a HotDraw-like JavaScript approach to drawing and direct manipulation on an HTML5 Canvas, almost completely test driven using Jasmine. We'll go over the highlights of the cool technical feats and show how JavaScript is not just for manipulating the DOM.
In the late 80s, Kent Beck and Ward Cunningham came up with HotDraw (http://c2.com/cgi/wiki?HotDraw), a two-dimensional graphics framework for structured drawing editors, originally written in Smalltalk-80. Since then, many implementations have been created, and the principles applied in a lot of places. While a lot has been learned, the original HotDraw still outshines many of its successors. In the last few years, RoleModel Software was asked to build several systems with a complex underlying model where the user input was primarily direct graphical manipulation. This included: * a system to support educational innovators at the Friday Institute, using direct manipulation tasks to test and teach various mathematical concepts to elementary age children. * a deck designer for decks.com, to design and produce a 3D rendering, materials lists, and permit-ready plans to help do-it-yourselfers get professional designs in seconds. The solution in both cases included a HotDraw-like JavaScript approach to drawing and direct manipulation on an HTML5 Canvas, almost completely test driven using Jasmine. We'll go over the highlights of the cool technical feats and show how JavaScript is not just for manipulating the DOM.
In the late 80s, Kent Beck and Ward Cunningham came up with HotDraw (http://c2.com/cgi/wiki?HotDraw), a two-dimensional graphics framework for structured drawing editors, originally written in Smalltalk-80. Since then, many implementations have been created, and the principles applied in a lot of places. While a lot has been learned, the original HotDraw still outshines many of its successors. In the last few years, RoleModel Software was asked to build several systems with a complex underlying model where the user input was primarily direct graphical manipulation. This included: * a system to support educational innovators at the Friday Institute, using direct manipulation tasks to test and teach various mathematical concepts to elementary age children. * a deck designer for decks.com, to design and produce a 3D rendering, materials lists, and permit-ready plans to help do-it-yourselfers get professional designs in seconds. The solution in both cases included a HotDraw-like JavaScript approach to drawing and direct manipulation on an HTML5 Canvas, almost completely test driven using Jasmine. We'll go over the highlights of the cool technical feats and show how JavaScript is not just for manipulating the DOM.
In the late 80s, Kent Beck and Ward Cunningham came up with HotDraw (http://c2.com/cgi/wiki?HotDraw), a two-dimensional graphics framework for structured drawing editors, originally written in Smalltalk-80. Since then, many implementations have been created, and the principles applied in a lot of places. While a lot has been learned, the original HotDraw still outshines many of its successors. In the last few years, RoleModel Software was asked to build several systems with a complex underlying model where the user input was primarily direct graphical manipulation. This included: * a system to support educational innovators at the Friday Institute, using direct manipulation tasks to test and teach various mathematical concepts to elementary age children. * a deck designer for decks.com, to design and produce a 3D rendering, materials lists, and permit-ready plans to help do-it-yourselfers get professional designs in seconds. The solution in both cases included a HotDraw-like JavaScript approach to drawing and direct manipulation on an HTML5 Canvas, almost completely test driven using Jasmine. We'll go over the highlights of the cool technical feats and show how JavaScript is not just for manipulating the DOM.
Andrés nos contó la historia de Ward Cunningham y su sistema de información compartida, que gestó tanto la muerte de Enciclopedia Encarta como el nacimiento de Wiki Leaks. Además, nos emocionamos por el futuro combate MegaBots, Inc. vs. Suidobashi Heavy Industry que enfrentará robots gigantes (!!!) para determinar cuál dominará el mundo. Trash-talk robótico y un abuso desmedido del término "Wiki" en esta breve pero contundente versión 1.6.
02:24 - Dann Toliver Introduction Twitter GitHub Bento Miso 02:35 - Matt Asher Introduction Twitter GitHub Blog 02:51 - EveryBit.js and I.CX [GitHub] everybit.js EveryBit.js Whitepaper 03:43 - Architecture Episode #135: Smallest Federated Wiki with Ward Cunningham 06:54 - Sustainability and The Pieces of the System Content “Puffs” Authentication Storage Firebase Distributed Hash Table (DHT) The Chord Algorithm (Peer-to-Peer) 21:56 - Decentralization Space Monkey Madesafe 25:20 - Audience: Why Should I Care? 27:38 - Getting Started: Nuts and Bolts Frontend Agnostic Storage and Performance Users and Data Management Payload Properties Metadata Graph Database Adding New Relationships Adding Heuristics Resource Allocator Component Local Storage RAM 34:55 - Scaling and Server Cost 36:23 - Cloud Storage and Management (Security & Trust) HTTPS SSL Model GPG Model “Proof of Presence” "Self-verifying" Namecoin Project 47:22 - Implementing Cryptographic Primitives bitcoinjs-lib Key Management Cryptography OAuth 55:13 - The Firefox Sync Tool Project Picks [Twitch.tv] Kylelandrypiano (Jamison) "Visualizing Persistent Data Structures" by Dann Toliver (Jamison) Probability and Statistics Blog (Jamison) Seeed Studio (Tim) Adafruit Industries (Tim) SparkFun Electronics (Tim) American Sniper by Chris Kyle, Scott McEwen, and Jim DeFelice (Chuck) Introducing Relay and GraphQL (Dann) The Clojurescript Ecosystem (Dann) Read-Eval-Print-λove (Dann) React Native (Matt)
02:24 - Dann Toliver Introduction Twitter GitHub Bento Miso 02:35 - Matt Asher Introduction Twitter GitHub Blog 02:51 - EveryBit.js and I.CX [GitHub] everybit.js EveryBit.js Whitepaper 03:43 - Architecture Episode #135: Smallest Federated Wiki with Ward Cunningham 06:54 - Sustainability and The Pieces of the System Content “Puffs” Authentication Storage Firebase Distributed Hash Table (DHT) The Chord Algorithm (Peer-to-Peer) 21:56 - Decentralization Space Monkey Madesafe 25:20 - Audience: Why Should I Care? 27:38 - Getting Started: Nuts and Bolts Frontend Agnostic Storage and Performance Users and Data Management Payload Properties Metadata Graph Database Adding New Relationships Adding Heuristics Resource Allocator Component Local Storage RAM 34:55 - Scaling and Server Cost 36:23 - Cloud Storage and Management (Security & Trust) HTTPS SSL Model GPG Model “Proof of Presence” "Self-verifying" Namecoin Project 47:22 - Implementing Cryptographic Primitives bitcoinjs-lib Key Management Cryptography OAuth 55:13 - The Firefox Sync Tool Project Picks [Twitch.tv] Kylelandrypiano (Jamison) "Visualizing Persistent Data Structures" by Dann Toliver (Jamison) Probability and Statistics Blog (Jamison) Seeed Studio (Tim) Adafruit Industries (Tim) SparkFun Electronics (Tim) American Sniper by Chris Kyle, Scott McEwen, and Jim DeFelice (Chuck) Introducing Relay and GraphQL (Dann) The Clojurescript Ecosystem (Dann) Read-Eval-Print-λove (Dann) React Native (Matt)
02:24 - Dann Toliver Introduction Twitter GitHub Bento Miso 02:35 - Matt Asher Introduction Twitter GitHub Blog 02:51 - EveryBit.js and I.CX [GitHub] everybit.js EveryBit.js Whitepaper 03:43 - Architecture Episode #135: Smallest Federated Wiki with Ward Cunningham 06:54 - Sustainability and The Pieces of the System Content “Puffs” Authentication Storage Firebase Distributed Hash Table (DHT) The Chord Algorithm (Peer-to-Peer) 21:56 - Decentralization Space Monkey Madesafe 25:20 - Audience: Why Should I Care? 27:38 - Getting Started: Nuts and Bolts Frontend Agnostic Storage and Performance Users and Data Management Payload Properties Metadata Graph Database Adding New Relationships Adding Heuristics Resource Allocator Component Local Storage RAM 34:55 - Scaling and Server Cost 36:23 - Cloud Storage and Management (Security & Trust) HTTPS SSL Model GPG Model “Proof of Presence” "Self-verifying" Namecoin Project 47:22 - Implementing Cryptographic Primitives bitcoinjs-lib Key Management Cryptography OAuth 55:13 - The Firefox Sync Tool Project Picks [Twitch.tv] Kylelandrypiano (Jamison) "Visualizing Persistent Data Structures" by Dann Toliver (Jamison) Probability and Statistics Blog (Jamison) Seeed Studio (Tim) Adafruit Industries (Tim) SparkFun Electronics (Tim) American Sniper by Chris Kyle, Scott McEwen, and Jim DeFelice (Chuck) Introducing Relay and GraphQL (Dann) The Clojurescript Ecosystem (Dann) Read-Eval-Print-λove (Dann) React Native (Matt)
The Panelists talk to the creator of the Smallest Federated Wiki, Ward Cunningham.
The Panelists talk to the creator of the Smallest Federated Wiki, Ward Cunningham.
The Panelists talk to the creator of the Smallest Federated Wiki, Ward Cunningham.
Joe Krebs speaks with Ward Cunningham, creator of the Wiki and signatory of the Agile Manifesto about object-orientation, design-patterns and Smallest Federated Wiki which is his latest project
Jochen (Joe) Krebs speaks with Ward Cunningham, creator of the Wiki and signatory of the Agile Manifesto. Joe and Ward also talk about object-orientation, design-patterns and Smallest Federated Wiki, his latest project.
I always enjoy talking with Arlo about his open data work and the strange coincidence that he and Ward Cunningham are both working on this problem. He chats about his work with big data, his penchant for starting with XP as the initial set of agile practices for teams to allow tight feedback and real agility. This interview has been on disk for a while but I hope you enjoy. As you can tell he is an angry, angry, bitter man. Bob Payne
Welcome to the Software Process and Measurement Cast 192! The SPaMCAST 192 features my interview with Mitch Lacey. We discuss his new book, The Scrum Field Guide. Mitch Lacey is an agile practitioner and consultant and is the founder of Mitch Lacey & Associates, Inc., a software consulting and training firm. Mitch specializes in helping companies realize gains in efficiency by adopting agile principles and practices such as Scrum and Extreme Programming. Mitch is a self-described “tech nerd” who started his technology career in 1991 at Accolade Software in San Jose, CA, a computer gaming company. After working as a software test engineer, a test manager, a developer, and a variety of other jobs in between, he settled on his true calling, project and program management. Mitch was a formally trained program manager before adding agile to his project tool belt. He began developing agile skills at Microsoft Corporation, where his team successfully released core enterprise services for Windows Live, where he has two patents pending. Mitch’s first agile team was coached by Ward Cunningham, Jim Newkirk, and David Anderson. Mitch cut his agile teeth working as a product owner or ScrumMaster on a variety of projects. He continued to grow his skills to the point where he was able to help other teams adopt agile practices. Today, with more than 16 years of experience under his belt, Mitch continues to develop his craft by experimenting and practicing with project teams at many different organizations. As a Certified Scrum Trainer (CST) and a PMI Project Management Professional (PMP), Mitch shares his experience in project and client management through Scrum Alliance Certified Scrum courses, agile coaching engagements, conference presentations, blogs, and white papers. Mitch works with companies across the world, from Austria to Colombia, California to Florida, Portugal to Turkey, and just about everywhere in between. Mitch has presented at a variety of conferences worldwide, is the conference chair for Agile 2012, on the board of directors for the Agile Alliance and was on the board of directors of the Scrum Alliance. Web: http://www.mitchlacey.com/ Twitter: mglacey Buy the Scrum Field Guide (dead tree) Kindle The SPaMCAST 182 is sponsored by LeanKit Kanban. LeanKit Kanban is a software tool for kanban that is as simple to use as physical kanban. If you put it up on a touchscreen in your team area, it practically IS physical kanban. But your boards are available from anywhere, and updated in real-time. A slew of colors, icons, and avatars take your visual signaling to the next level. And the system tracks the metrics for you, providing analytics on bottlenecks, lead time, work distribution, process efficiency, and variability - for a single board or a whole company. It's kanban for the Lean enterprise. FYI . . . something special is coming to LeanKit Kanban. Words like enterprise portfolio and groundbreaking, More to come soon! I am working on several projects with friends that we are using kanban to control flow. We are using LeanKit Kanban as a mechanism to keep the project on track and organized. LeanKit allows us to share the Kanban board across the miles with ease! Visit LeanKit Kanban! (and say hello for the SPaMCAST!) Shameless Ad for my book! Mastering Software Project Management: Best Practices, Tools and Techniques co-authored by Murali Chematuri and myself and published by J. Ross Publishing. We have received unsolicited reviews like the following: "This book will prove that software projects should not be a tedious process, neither for you or your team." News just in . . . We also just got word that the SPM book has been adopted for a class at the University of West Flroida for the Fall. Have you bought your copy? Contact information for the Software Process and Measurement CastEmail: spamcastinfo@gmail.comVoicemail: +1-206-888-6111Website: www.spamcast.netTwitter: www.twitter.com/tcagleyFacebook: http://bit.ly/16fBWV Next The Software Process and Measurement Cast 193 will feature my essay on the impact of routine on change, innovaton and goals!
I chat with Ward about the 10th anniversary of the Agile Manifesto and his newest wiki project. The best conversation happened directly after the podcast as we discussed what an audio wiki might look like. Sorry the bits were not rolling on the digital recorder. Hope you enjoy this. -bob payne
Scott stopped by Ward Cunningham (you know, the guy who invented the Wiki. Yes, that Ward Cunningham) to hang out, and discovered Ward's treasure trove of electronics, software, soldering guns and web accessible sensor arrays that run 24/7/365. Ever wish you had a real cool uncle that didn't take you fishing, but instead showed you how to create your own multi-processor computer with $2 chips off the shelf? Let's step into Uncle Ward's basement.
You may have heard the terms "Fit" and "Fitnesse" bandied about by the software engineering literati. What are they? Are they useful? Are they used at all? Does your testing strategy need some fitnesse? The creator of Fit and the coordinator of the Fit project chat with Scott and answer the hard questions.
This is a phone interview with Ward Cunningham. Ward is known, among other things, for inventing and popularizing the wiki. Recorded: 2007-02-14 Length: 1:26:01, Size: 39.3MB
Auf der PLoP 2006 in Portland haben wir die Gelegenheit genutzt mit Ward Cunningham, dem Erfinder der Wikis, zu reden. Erfahren Sie, wie Wikis entstanden sind und welche Bedeutung die Wikipedia hat. Ward Cunningham verrät außerdem, wie sich Wikis sinnvoll in der Lehre einsetzen lassen und wie man den Grundstein für eine Online Community setzen kann.
Ward and I talk about his new position as the Director of Committer Community Development at Eclipse. He discusses the release of Callisto by the Eclipse foundation, it’s Agile roots and other fun tool related topics.-bob
Here is an interview that I had with Ward Cunningham and Rick Mugridge at the Agile 2005 conference in Denver. Fit is an acceptance testing tool that took the conference by storm. Many languages are supported and tests are defined in a Wiki. If you are looking to fill the Acceptance Test Gap on your project and have not yet looked at this tool...you should. Listen and enjoy. -bob payne
Discuss this episode in the Muse community Follow @MuseAppHQ on Twitter Show notes 00:00:00 - Speaker 1: It’s very common that you want 3 views. You want a view which is temporal, what is the team working on this week? You want a view that’s personal, what is Mark thinking about right now? What does he want to have at hand. And then there’s a view which is subject base. What is the design of our sync system? And what link cards allow you to do is to have any given thing appear in each of those. 00:00:27 - Speaker 2: Hello and welcome to Meta Muse. Muse is a tool for deep work on iPad and Mac, but this podcast isn’t about Muse the product. It’s about the small team and the big ideas behind it. I’m Adam Wiggins here with my colleague Mark McGrenigan. Hey, Adam. So a little bit of news from the new product side. We recently released a feature called Linked Cards to everyone and been quite surprised and happy with how useful these have proven to be. It was in beta through the Backstage Pass with our pro members for a few months, but yeah, it just seems so valuable to everyone. We are really happy to launch it broadly, and that’s especially true within the Muse for teams. Context. So we’ll talk about that. We’ll talk about the future and our approach, and we’ll talk about some of these use cases that we’ve seen. But of course, we have to start with something philosophical and historical to set the context. So our topic today is linking. So, what comes to mind for you, Mark, when you hear that word? 00:01:26 - Speaker 1: That’s quite a rich set of precedents there. Perhaps the very first thing one thinks of is web links. Although, as we discussed, I don’t think that’s actually the closest case of prior art. Also comes to mind things like citations, but really dialing into linked cards, things like file system sim links, wiki backlinks, the knowledge graphs that you see in emerging knowledge management tools, things like that. 00:01:51 - Speaker 2: To me it’s an interesting topic because it is such a simple idea. It almost seems too simple. It’s just one place or work or piece of information is referencing another place or work or piece of information, but I think there is something very powerful emerges from that. I would say a lot of the current. Sort of tools for thought, excitement or revolution, if you want to call it that, and the productivity software space is largely built on the foundation of linking as a core idea, as well as the web, obviously, hypertext and hyperlinks, even though there’s much more to the web than just the link, that actually is a very foundational piece. And so it’s quite surprising what emerges from that. Yeah, you mentioned citations, be fun maybe to talk about that a little bit more towards the end, but I think that was sort of the original thing is, I don’t know, 1000 years ago, someone is writing a book and they want to reference another book or I don’t know, maybe it’s not even a book, maybe it’s a scroll and you just name it, right? You say the item titled this, maybe you give the author and when it was written as a way to kind of Hopefully unambiguously refer to this thing, and that implies that there is this greater canon of human knowledge, which indeed at some point we started to have a, if not unified, perhaps today you can say it’s a fairly unified sort of sphere of books and videos and newspaper articles and all that sort of thing. But yeah, you go back in history and just a simple idea of referencing another work that is not the one that you’re currently reading implies the larger sphere and indeed then you start to build this network and these connections and this implication of shared knowledge. So again, this one simple idea, just this simple reference of naming another thing from that comes this sort of giant hive mind of all human knowledge. 00:03:46 - Speaker 1: Yeah, and I think it’s really important because, as we’ve said many times on the podcast, knowledge is built up in this web. It’s not a linear process. It’s this very messy, organic, incremental growth of knowledge that happens over time, and so things like citations help reify that. 00:04:07 - Speaker 2: And Another piece of prior art that’s more on the technical side is file systems. I think this was probably my first exposure to thinking about links as a first class item. So in Unix you have what’s called the sim link or symbolic link. There’s also hard links, but we don’t necessarily need to get into those. On Windows you have something that are called shortcuts, which I think a lot of people are familiar with just because there’s a little kind of icon that indicates this isn’t the original item, this is a pointer to that item, and you often get that on your desktop, for example. The application doesn’t live on your desktop, you just have a, well, a shortcut to it there for convenience. And Mac also has something called aliases, although of course it’s also Unix under the hood, so you can use some links, but regardless, this idea of linking things together where a file lives in one place in the hierarchical file system or on your hard drive, but you can reference it from another, that was my first real exposure to both the power of it, but also sometimes can be confusing, or you can tie yourself in knots with, you know, circular references or whatever. 00:05:08 - Speaker 1: I think file systems are interesting because they illustrate, there’s actually several very different types of things that can be happening here. So let me enumerate them quickly. You can have a duplicate to make a copy of a file. You could potentially recognize that those copies are the same objects by content addressing. You can have a transparent pointer. This would be like aiming or an alias where The second object is of a different type. It has a little arrow thing. It’s not a regular icon, but when you, for example, double click on it, it opens the underlying pointed to objects. So it’s mostly but not entirely behaving like the original thing. And then you can have something that behaves exactly like the original thing. If you have the recent tab in your finder, for example, the items there are the same thing as when you go to the original location in your file system, it’s kind of a different view. So when we talk about linking, we’re often referring to one or more of these things. I think it’s useful to remember that there’s several quite different types of objects in play. And maybe one more that we could add is the actual file system path. This would be comparable to the HTTPS URL on the web. Some people call that a link, some people would say the actual underlying hyperlink thing where you click the link, but these are all different objects and they have different properties. 00:06:22 - Speaker 2: Yeah, I would call the path, but I would think of the generic term for that is the address. And within a single computer system you usually have this unified way to reference a file, which is the path. Actually I would argue citations are probably a place where you know there’s all these standards, right? You use the Chicago Manual of style or the this or that. Basically how you do a citation is actually there’s a lot of specific formats and if you mess it up, you get in trouble, especially if you’re trying to do a scientific work. But coming to the web, one of the things that is so miraculous there is this totally unified address format. So there’s links and links have appeared in a lot of different computer software, but maybe what makes the World Wide Web and HTML work so well is that you have the URL, the Uniform Resource locator. And that that single address is unique in the world, or at least in the internet, which is, you know, our digital world, and that now that that is deployed so universally both in desktop browser software, but also in APIs and so on, that if you just have that one string and you don’t need to understand how it works or how to break the pieces apart or even certainly how the packets are routed, you just know that your web request is going to go to where you need it to. Which is again quite a miraculous, not just technical achievement or design achievement, but really kind of human coordination achievement that we’ve managed to deploy that so widely. And probably as long as we’re talking about the history here worth just giving a quick nod to, you know, links and well, the term hyperlink was coined by Ted Nelson, who’s quite good at these rather bombastic terms. Tranclusion is another one of his that we use with some frequency. But then also, for example, Doug Engelbart’s NLS included a version of linking Hypercard. A lot of that is about how cards link together. And so there’s the web, I think rolls together or is the best manifestation of all of those ideas, but the history of it in computing goes back to really to almost the beginning. Now another invention from the 1990s, sort of piggybacking on the web is the wiki, right? And I think Ward Cunningham was the inventor of the first of these, and it certainly builds on that foundation of the web. But one thing it brought that’s unique is what I usually call the double bracket notations, the idea that you can put in brackets a keyword, a very human readable keyword that is a link to someplace else and not the entire internet. It’s not a complete Globally addressable address, but it more makes that keyword into something we’re saying there’s a reference for this in this system in this wiki. And one of the interesting things about that, certainly there’s the accessibility that it’s very easy to use, but I think one of the fallouts of that or one of the implications is that you can link something that doesn’t exist yet. Which is an interesting idea, right? And I’ve certainly used this in Team wikis, for example, where there’s a project page I know I need to write because we’re talking about doing this project, but I haven’t done it yet, but I want to reference that. I can put that in brackets, and sometimes that link shows up in a different color or something like that. Wikipedia has a version of this as well, where you basically can link something that’s not there, you click on it and then it tells you this isn’t here yet. Would you like to add some content, but it’s a nice way to stub something out. 00:09:39 - Speaker 1: And there’s another very important behavior difference. So if we go back to the example of the file system, if you want to refer to a file several times, the first operation is very different. You gotta create the file and write the contents, and then subsequent operations create a different type of object, a similar link or an alias or something. So there’s a huge discontinuity and Typically on a file system, it’s not as native to go the other direction to get the so-called backlinks, and one of those backlinks that you’re basically missing it because there’s nothing pointing back to the place where you did the original operation from. Whereas on a wiki, for example, when you make a double bracket, that’s the same the first time, the second time, the 3rd time you do it. And furthermore, when you go to the backlink page for whatever was in double brackets, those backlinks are all symmetric. I believe, like there’s not special treatment for the first double bracket that you happen to have made mentioning some noun that is the current title of the page. Those properties are subtle, but as we discuss the muse approach to link cards, I think that will become important. 00:10:41 - Speaker 2: Yeah, I think backlinks were present for a long time and things like Wikipedia and other places, but I really think the modern, call it linking back linking trend really came with what are now usually called knowledge graphs. So Rome kicked that whole thing off. The notion it always had linking, but they added backlinks, I think somewhat in reaction to the overnight success of Rome, then you have all these kind of Rome descended products like obsidian, LogSeek, even classic kind of text editor note tools like I writer or get. Into that now and I think what you referenced there with the backlink and links being symmetric, I think that’s why they call them the knowledge graph is this idea that the nodes are the notes and those notes might be something about a person or a thing or a concept or an event or a meeting or whatever, but the edges, those links in the graph represent relationships and actually seeing those relationships and again treating them as symmetric as you said. Of course, it gives you these cool visualizations where you see all the time you’ve invested in your notes and how they all fit together, or if you look at more like a larger scale Wiki like Wikipedia, you can see the relationship, the clustering of different knowledge, but sometimes the relationship between things is as important as the things themselves. 00:11:59 - Speaker 1: Yeah, and I have to be honest, I’ve been surprised by how taken folks are with linking and back linking and explicit knowledge graphs. I certainly think that they’re useful in their own ways, but there’s something about them that people get really excited about. 00:12:15 - Speaker 2: Indeed, well, I certainly think of this trend scene, community. Around tools for thought in the last 3 or 4 years. Obviously I’m very happy. I’m sometimes surprised as well. I certainly find it very powerful. I’m also glad people get excited about it and in general, I think that’s part of what’s been great about this tools for thought, scene or community or just trend that we’ve had in the last few years, which is people getting excited about productivity software and excited about their knowledge tools. Now, sometimes I do think it gets a little bit narrowly focused on Linking and back linking knowledge graphs and lots of different variations on that, but I think that was a really good starting place. It’s a good example of showing how just managing our information in different ways can unlock new possibilities for individuals, for groups, for humanity as a whole, and obviously computing, the dynamic medium of computing has so much untapped potential that we are really just at the beginning of it, so I Certainly hope that the excitement over knowledge graphs is just a door opener to a wider world of tools for thought, productivity, and in general just continuing to explore what’s possible in the world of knowledge and information systems. Well, I guess that naturally brings us to the muse approach and this linked cards feature, and it came up a lot in the very early days of our product because we were part of the tools for Though scene from the beginning and people naturally think of the linking back linking knowledge graph stuff that that’s kind of like a foundational feature and obviously we are more focused on the visual and spatial elements, the free form sketching, bringing together your research materials to ruminate upon. But we always knew, hey, yeah, linking is super useful for all the reasons we just described, and we always knew we would want to bring it to the product at some point, but we wouldn’t necessarily, it wouldn’t be right to just straight up copy the double bracket notation or something like that. I mean, you know, maybe that could fit in, but we wanted something that would be more in tune with how we do things, the visual and spatial approach, and that’s what brought us to linked cards. 00:14:22 - Speaker 1: Yeah, and Muse, we think there’s a lot of value to each piece of content having a place, and for a long time, we said that a piece of content should have exactly one place, but we found that to be a little bit too limiting. So often you would have a board, for example, that you wanted to be able to access that made sense in the context of Say your daily work in the context of a longer term project and that presented a conundrum, what do you do in use to be able to access, say that board from both locations. Now, one thing you could do is the file system type approach where you have some canonical board in one place and you have a second class pointer board in another case, but that felt unsatisfying to us, like we didn’t want this two-tier system and this notion of like a pointer board versus a regular board. So this is where we come to linked cards. And the idea with linked cards is that it’s a set of cards, 2 or more, that point to the same content symmetrically. I think actually back some years ago now, we had this notion of like portals or mirrors, which I think are not as suitable for a public product, but I think described the notion of the sort of two views from two different locations into the same. Underlying content. So you can access the content from either place A or B, but when you zoom in, for example, you’re at the same place. And there’s also a sort of back leaking tight mechanism where you can from any of these linked card instances, say, where else is this card present, and you can seamlessly navigate to those other locations to move across different contexts. And then to close the loop here, if for some reason you were to delete one instance of two of these linked cards, you gracefully go back to the base case of a simple piece of content that’s in exactly one location. 00:16:13 - Speaker 2: Yeah, you mentioned the concept of location quite a bit there, and I think that ends up being key to it. This is something that’s different compared to a, for example, a notes tool that does not have the spatial component. The spatial component is so core to muse and what Muse is offering you as a thinking tool where something is located that’s in a little pile of some things over here versus this other pile over here might be really important for your thinking process or how you’re making sense of a set of materials. So naturally then where something lives, if it’s going to live in two places or more than two places, you need to have some concept of that, and key to this ends up being this little icon that basically goes in the upper left corner that lets you see all the places that it is, and then really importantly switch between them quickly. So you can use it as kind of a portal to essentially teleport to this other location in your larger knowledge sphere, and this proves to be a really helpful and useful concept that preserves the spatialness and preserves that sense of place that we think is so important, but kind of breaks the 1 to 1 relationship and gets you a lot more of the ability to build a more complex knowledge graph. 00:17:29 - Speaker 1: Yeah, and by the way, there’s a pretty slick animation that happens when you change locations like this that I think really nicely reflects what we’re trying to get after, which is when it works correctly, it’s hard to get it to work correctly in all cases because of the literal dimensionality of the canvas and the objects, but the content that is linked in multiple locations sort of stays in the same place, and the background around it shifts. So you are appearing in this new location, but you’re still anchored by this content that was meant to appear in multiple locations. I think that’s pretty slick. 00:17:59 - Speaker 2: Yeah, that was a really clever creation by Leonard and Julia because so much of how you are oriented is based around this navigation in and out of boards and panning around them and so we were worried or even in the early prototypes, I think when you saw you could just jump, it’s disorienting. So this transition animation serves more than the purpose of just being fun to look at or something like that, but actually helps you keep that sense of being oriented. 00:18:30 - Speaker 1: And now that I think about it, I’m actually not sure how common it is to have this backlink style navigation available without going into the object in question. Do you know what I mean? So like on a wiki, you can click on a link and then click on backlinks, and from there, get to a sibling page. But I don’t know how common it is to be able to go directly to a sibling page from the, say, link. 00:18:53 - Speaker 2: Hm, cause yeah, typically you’re viewing the board sort of from the outside, you’re seeing its thumbnail essentially, and then you’re deciding to go to this other place where it is located. Yeah, that’s true. This is why we needed to do our own take on this is that when you’re in that spatial setting, it’s just a different thing than when you’re in lists of documents that aren’t organized or you just don’t have a visual metaphor for it that works in that same way. Speaking of that, animation in general, the transition of being able to quickly jump between locations, this was actually quite a technical challenge to implement. So I thought it might be fun if we could get our colleague Yullia on the phone here briefly and see if she could tell us a little bit about how that worked. 00:19:41 - Speaker 3: Hello. 00:19:43 - Speaker 2: Hey, Julia, congratulations on shipping linked cards. 00:19:47 - Speaker 3: Oh, thanks, yeah, it’s been a long time coming. I guess it’s been sitting there in the backstage pass for a while, but it’s nice that we can finally give it to the whole world. And yeah, it looks like you are pretty excited about it. 00:19:59 - Speaker 2: Yeah, well, I feel like it was one of our smoother betas in the sense that we actually went pretty quickly from, I think it was in the backstage pass for I don’t know, 3 or 4 months, something like that, but it basically worked really great from the start. We needed to make a couple small tweaks, but nothing too dramatic. And yeah, people were finding it really useful, so it just sort of made sense to bring it into production. But Mark and I were just talking about the location switching and the transition animation as well as the challenges there, and I seem to remember in that first implementation there was a lot of technical challenges. I was hoping you could give us a little insight into that. 00:20:35 - Speaker 3: Yeah, there’s quite a few. I mean, I guess we could start with the transition since we were just talking about that, but um there’s actually quite a bit to uncover. So let’s see if we get to all of that. But yeah, one of the things that made this a bit challenging to implement is that of course, as being news, we had kind of high stakes for the UX and how we wanted it to feel. And Leonard, our designer, had initially prototyped something where you could just super quickly like hit a button and cycle through all of the different places where this link card existed. That ended up not being quite feasible, but we still wanted to make it pretty fast so that you can just go and select a different location and you’re basically there quite instantly. But yeah, depending on how large these boards are that these cards live in, rendering a big board can actually take quite a bit of time and there’s some tricks that we do when you transition from one board to the next, kind of just in a normal zoom in, that makes that feel instantaneous, even though it’s actually not quite instantaneous. So for every board that you have, we store a snapshot. They’re basically PNGs that render your entire board content into an image. And those are actually what you see in the little cards that represent your boards, and when you zoom in, we actually load a higher resolution version of that image kind of seamlessly as the transition happens so that when the transition finishes and you’re zoomed in for the first. Depending on how big the board is, 0.5 a second to maybe 1 2nd or 2, you’re actually still looking at the image of the board, and then as everything gets loaded in the background, we switch out that image for the actual board view that where you can interact with the cards and everything. So this usually happens behind the scenes and ideally the user never actually notices it. So for these transitions for the link cards, we basically had to do a similar trick. So when you first select from the drop down menu on the Mac or I think on the iPad, it’s a context menu as well, tapping on this button. When you first select a different location, we actually immediately load in the high resolution snapshot of that board. And we transform it to match exactly the position of the card in the board that you came from. So the idea is basically the card stays in the same place and then the content around it just changes. And yeah, to do that really fast we have to. Load in the JPEG, put the card on top of that image, then in the background, we actually load the entire board hierarchy and the real views, and then once that’s done, we remove the image and you’re actually in that board and you can start interacting with the content. 00:23:27 - Speaker 2: And it feels very quick to me, but certainly your brain needs a moment to process the new scene that you’re looking at before you’re gonna go do anything to it. And so that sort of like, is part of the stage magic there is use that moment of the human is reorienting themselves to the new location to do the work of rendering the interactive view. 00:23:49 - Speaker 3: Yeah, and most of the time it works actually quite nicely. Of course, since the card in the new location that you’re going to might actually be in a completely different position. Let’s say you come from a board where the card is on the very top left, kind of the first thing that you see in the board. And then you go to a board where it’s all the way at the bottom right, like maybe several screen widths away. Then there’s also the thing that we sometimes see where it kind of jumps a little bit because in the destination board it’s actually so close to the edge that you can’t scroll it into the place where the car was in the previous view. Maybe that’s getting a little bit too much into the details. 00:24:30 - Speaker 2: And I also remember really well we were in the midst of implementing this that a lot of other operations in the application that seemed unrelated to linked cards got really slow as a result, once we had this in our internal test flight builds and it just so we were at our team summit last August when we were working on this, and I remember you and Adam Wulf furiously drawing complex graphs and talking through the problem on the kitchen table in the house we were staying in. Can you tell me about what that was all about? 00:25:01 - Speaker 3: Yeah, so this was kind of a surprising turn that the whole thing took. We initially thought seems like a pretty straightforward feature. We just basically create a new card that points to the same document and then we display this little kind of link icon in the top left corner of the card to indicate that this is a link card, so there’s other cards that represent the same document. And the initial implementation of all of this was actually really fast, like kind of done in a few days, and then we noticed the app got really slow and it wasn’t initially clear why that was, but as we looked into it further, it actually turned out that the kind of database queries that had to happen to actually determine whether a card is a linked card or not a linked card. Ended up being extremely expensive. So the first thing that needs to happen is that we check for a given document how many cards actually point to this document. So that’s kind of one database create. That’s relatively simple. And if we have more than one card, you would think, OK, surely this is a linked card, so we should show this little icon. But it’s actually not enough to just look at the number of cards that point to this documents because some of these cards might actually not be in your corpus at all. They might be unreachable from the home board. And this is because when you delete something from your corpus, let’s say you delete a board that has a bunch of subcontent. We don’t actually go in and prune every single subboard and every single document that is contained in the subtree that is that board. We just set the board that you deleted to delete it and it disappears from your view hierarchy and as far as the app is concerned, you can’t actually navigate to it anymore from anywhere. But there might be somewhere in there a board or a card that points to that same board that you have also linked somewhere else, and that card is technically not deleted. It just happens to not be reachable from the home board. So we actually also for each card that points to the board we need to determine. Is this actually in the user’s graph? Is this card something that is in quotation mark deleted, so the user can’t actually reach it from their home board? Or is it actually in the corpus and we should include it in the list of linked cards for this particular document? And that actually ended up being an extremely expensive operation because you kind of have to tee up multiple queries to find the parent board of the parent board of the parent port. And if you eventually end up at the root of the corpus, then yes, this card is reachable. But doing this kind of on every render just because you want to display a board with a couple of cards in it and determine whether or not they should get a little icon in the corner. Just ended up really slowing down the app, just kind of rendering a pretty basic board structure started becoming very slow and affecting all kinds of parts in the app. So what we ended up doing was something that we had thought about on and off anyway because it was kind of a data structure that would help us in all kinds of different scenarios and working on the app and kind of working with the user’s content. We ended up creating a graph structure that actually maps out the user’s content in a very easily queriable way. So in this case we’re only storing the IDs of all the documents and their relationships to each other. So if a card displays a board, that’s basically one node of the graph, and then we build out the graph this way. And every time something changes, every time you add a card or delete a card or you move a card around, we update that graph immediately. So then every time we want to render something, we don’t need to do all of these database queries again. We just need to go to this graph and say give me all the cards that point to this document or give me all the parents of this cards, and from there on it then got very fast. Now of course you have kind of an additional. Data structure kind of model around the user data that you constantly have to maintain. So that’s of course leaves new surface area for bugs or kind of forgetting to update this as the code grows, but it’s so far had been really helpful and has made the app a lot faster in that regard again. 00:29:27 - Speaker 1: Yeah, and this is all in memory, right? 00:29:29 - Speaker 3: Yes, exactly. This gets built once when you launch the app and then just continuously updated. 00:29:35 - Speaker 1: Yeah, and we have a similar thing on the server and it’s definitely true that it’s a little bit troublesome to get all the details right of maintaining basically a second view over all the data, but at least it’s just a memory, so you get to blow it away each time the app starts, it makes it much more forgiving in my experience, versus something on disk, which is a whole another level of ordeal. 00:29:55 - Speaker 3: Yeah, that’s true. 00:29:56 - Speaker 2: And I think that’s always a trade-off with database or persistence layers is that the more indexes you have that slice the data in different ways you want to view it, the faster it will be, but now all those indexes have to be maintained, and if they get messed up, you need to regenerate them or something like that, and that’s the fine art of data persistence. 00:30:17 - Speaker 3: Yeah, exactly. 00:30:19 - Speaker 2: As Mark and I were talking about earlier, one thing that introducing linked cards to Muse did was to break this strict 1 to 1. Cars are only in one place. Everything is a very direct hierarchy, and that changed things in the user interface. Certainly, for example, that you can navigate into a board from several different locations, and that comes up, I think, in both the individual user just, you know, when you pinch out, you expect to go back to the board you were on. Originally, but it also comes up even in our multiplayer world in terms of like where we’re going to show an avatar floating over a board relative to the path they took to get into it. Curious to know what kinds of challenges there’s been in adapting all of that. 00:31:04 - Speaker 3: Yeah, this is something that we kind of noticed in hindsight when certain things in the app that used to be really easy, like navigate to a particular document based on his ID now suddenly had kind of unclear implications because that document isn’t just in one place anymore. So if for example, I have a deep link that points to a specific document and I open news. Clicking on that deep link, where do I actually go? Like, of course I go to the document, but what’s the context? Is it the linked card on my home board or is it the one that’s 5 levels deeply nested in one of the subboards or is it one that’s, you know, linked from somewhere else? So we can’t actually describe a position in your corpus anymore just by a particular document or board ID. This also became evident when Something that seems really trivial, like you close the app and then you open it up again, and we have to like launch it afresh and ideally bring you to the place that you’ve left off because that’s probably where you want to continue working. Previously we just basically always stored the idea of the board where the user was last on, and when the app launched, we opened that board and built the view hierarchy underneath it, so all of the parent boards all the way up to the root board underneath and that was it. So now we actually have to store the entire navigation stack, including every card, basically kind of leaving bread crumbs of where the user went to end up on the board that they’re currently viewing. And this all gets serialized to disk when the app quits so that when you launch the app again, we can look at these bread crumbs and retrace the steps to exactly where the user had come from. And we’re going to have to do that probably with all kinds of things like deep links or like sharing URLs for go to this sports. Well, which one do you mean? Do you mean the one on the home board or the one? levels deep down below, so we’re, we’re gonna have to start encoding these path information into all kinds of things, including, I think like you said, the presence of avatars in a board. Like if you’re in this board, you’re technically in 5 different locations, but we don’t want to show you avatar and all of these different locations. We want to show exactly the path you took to get to that board. 00:33:26 - Speaker 2: Do you remember anything about detecting cycles, like sort of putting a linked card inside itself and dealing with that as being part of the initial technical challenge as well? 00:33:37 - Speaker 3: Yeah, so detecting cycles actually has always been a big challenge for M and linked cards actually was a big relief for that because now instead of having to be really careful to prevent cycles, we can kind of allow them and embrace them. So in the pre-link cards were, there were. A few weird edge cases, for example, when you had two windows of muse open, so like split screen on the iPad or two actual windows on the Mac. And let’s say you have board A, B, C, where A is your root board and B is the board in between and then C is deeply nested, and you have board A in the one window and have board B open in the other window. And then you pick up board B, the card for board B in the window of board A, and then drag it into the other window and drop it into board B. Then you just drop B into B. So now B is contained in itself and you’ve effectively detached it from the view hierarchy. This is now also something that we can nicely detect with the corpus graph. And previously we had to really make sure to prevent these accidental operations. So basically disallow you from dropping the card there because that could very easily lead to not technically data loss, but data loss in the sense of you can’t get to that content anymore and we didn’t have any UI of kind of surfacing these detached cycles. So now when you do this instead of disallowing the operation, it’ll just drop a linked card of itself into B. And keep card B and A, but then also put a link card of B into B. And so now you have an endless loop of B and B, and you could try it out. I think you could basically go indefinitely navigate and probably at some point the app will crash because you have put hundreds of view controllers onto the navigation stack. I’m not actually sure what happens, but it does work well for quite some time and I guess technically if you’re 10 levels deep into B and you’re still on B. When you then quit and relaunch the app, we should also build the stack 10 levels deep, although I guess in this case, the card is actually the same, so I’m not quite sure how that would work, but yeah, there’s definitely lots of fun little edge cases like this. 00:35:52 - Speaker 2: And I think almost always if someone does one of those things you described, it’s an error essentially or they’re just doing it to see what happens. So it’s not so much that we need to make it make perfect sense, but more that just we need to not yet have the app crash or screw up your data or get you into a state that you can’t get out of. Yeah, exactly. Well, my head’s spinning a little bit with all the complexities here. I’m glad I get to just be a user and not need to load all of that into my brain. So thanks for taking us through it, and we’ll let you get back to your ex code. 00:36:26 - Speaker 3: Yeah, my pleasure. Have a good one. 00:36:29 - Speaker 2: Bye bye. Bye. Few, I actually didn’t fully know what was there. I had a sense of it because we actually have one of our earliest boards that we have in our Muse for Teams shared workspace is one of the kind of scribblings that Wulf and Julia did together when they were thinking through this whole, what she was calling the corpus graph, this kind of relationship index. So, I had a sense there was something there, but I didn’t know quite how deep that rabbit hole went. Now another area to talk about is the design considerations that went into this. I think Yullia mentioned some of those in the sense of what happens when you do particular edge cases in the sense of the user’s mental model about this. I think you also mentioned briefly in passing the idea of having cards which were more of a reference, more like that file system shortcut. was one of our first prototypes. So if I remember correctly, they implemented prototypes of what we ended up with, which is this kind of each card is a mirror of each other and essentially any change you make to one happens to the other and there is no kind of source or original, but they had also mocked up something where there was a link card that was very similar to our web links, which of course are a reference, not a mirror. But that had a little richer of a preview, and we basically tried that out, and that actually felt pretty good. We liked that in a lot of ways, but somehow I think the mirror felt just more of the kind of embodied or physical or spatial style that fits with Muse. And actually that fed into the the name of it as well. When I was chatting with Leonard about this, he mentioned or he pointed out that we call them linked cards linked ending with an ED, not link cards, right? Link cards, which we have for web links, for example, where you can put deep links to other iOS apps. It’s really clear that that thing is not in use. It’s someplace else. This is a reference that will take you there. We’ll open it in a browser, that sort of thing. But the idea with the linked cards, which are usually boards, but can also be a PDF or a video or something else, they really are like the same thing and they are linked together and the content will always stay the same. 00:38:38 - Speaker 1: Yeah, and if you think about it from first principles, I think it makes sense that we ended up here, because when you’re dealing with external content, you don’t really have a choice. It has to be a link without an ED object, because it’s not something that you control. But when it’s internal, why not? You have full control over this, including the magical ability to make it appear in multiple locations. 00:38:58 - Speaker 2: Another design consideration here is what you do with things that are untitled. So this is something we consider a key feature. It was part of the Muse white paper that we published from the research lab a few years back, which is the ability to create something and not have to give it a name. Which I’m a fan of generally, I don’t necessarily want to have to name a project before I’ve decided what’s gonna go into it, but usually, of course, you end up with something that’s called Untitled, and then you end up with untitled parentheses 234, and so forth. That’s a really common thing you see in, I don’t know, classic word processors or whatever. But in Muse, you can put all kinds of items. In fact, most of your items don’t have names necessarily. You may only title a board or an image or something later, once you kind of know what it is or what it’s about. But of course, what that also means, the location switcher is showing you a text representation, so then we need to show you basically, this is an untitled board in the case, or an untitled card of some kind. I think that’s not fully solved. I think Leonard is still kind of chewing on that a little bit in the best way to manage that, but certainly as we get into more and more things that are not pure spatial and visual, things like search, for example, that’s gonna come up more and more. So I think this untitled boards design or untitled cards design challenge. That’s a key feature of the app. We want to keep that, that’s desirable, but at the same time, how do we handle that in a more of a text or list kind of setting like this. 00:40:26 - Speaker 1: Yeah, we’ll continue to noodle on that. I think in practice it hasn’t been too bad because the places that you tend to put linked cards are relatively important and therefore tend to have titles. It has been my experience. So, more often than not, you have a suitable title in place, but yeah, I agree that as we get into more non-spatial content types, as I’ve been calling them, it’s gonna become more important. 00:40:47 - Speaker 2: Yeah, well, maybe that brings us nicely to just talking about linked cards in practice, the use cases we’ve seen from users and customers as well as what we’ve experienced ourselves on the team, and definitely going into it, we didn’t necessarily know what all the use cases would be or what the best use cases would be, which is sort of a funny thing. I think you even raised the flag on this a little bit, which is you want to have a lot of clarity usually about what your use cases are before developing a feature. And we had a list of them, but it was sort of more driven by where we started the podcast, which was linking is just really useful, and probably if we add it, things will emerge that we wouldn’t have even predicted necessarily and I think that’s kind of how it panned out. Many and most of the use cases that we had in mind initially did come to light, but basically immediately once we released this in beta and then we had some lively discussion on our Discord and the beta’s channel where folks were trying this out and sharing what they were using it for, and we were almost immediately surprised by some of the interesting stuff that folks were doing with it. So maybe we could start with how we are using it personally or on the team. How have you found linked cards that fit into your new workflow, or have they? 00:42:01 - Speaker 1: Yeah, for me a little bit. So in both my personal corpus and on the team’s corpus, I’ve seen us use them for what I might call workflow purposes, where you have a board, it’s usually a board that you find that you want to access from a few different contexts. It might be, for example, you have a technical design for something that you want. On the one hand, in the context of your larger technical board and also in the context of your weekly planning, say, that sort of thing I find happens pretty frequently, and I do some stuff like that for personal projects where I want it on some maybe more temporal board versus more subject matter board, and it’s helpful to see the thing in both places. I also use it a little bit as a sort of bookmark feature where there’s some topic that you know is referenced in a few different places in your corpus, and you can create a board for that notion and then make a linked instance of that board in those handful of other places and you have a sort of bookmark access portal network, you know, underground tunnels to your different boards. Now, what I don’t use it for is the really high cardinality. Super dense reified web that you sometimes see with knowledge graph tools where like, each page has 10 links and you’re trying to form this really explicit graph of concepts. I’ve argued that I mean, I think there’s something to that, but the in fact network of concepts is so massively dense. It’s like the branching factor is thousands or more that I think you’re kind of fooling yourself if you think you’re gonna fully reify that in the tool. There’s still some uses to it, right, but in my mind, that stuff happens in my head, and where I find myself using the links is more for workflow purposes where I know I’m gonna want to traverse these networks of boards and non-hierarchical ways. 00:43:52 - Speaker 2: Yeah, well, I was surprised how useful it turned out to be. I guess I didn’t feel quite the burning desire for it, but again, we heard this just so often from users and customers and a few folks on our team also were really, really driven about it. And of course this reflects, yeah, a very flexible and general purpose tool like Muse. People use it in lots of different ways. Everyone has their own approach, not everyone uses every feature and so forth, but I was surprised how much I did find myself using it. Certainly a good bit in my personal muse, but where I’ve really been surprised about how useful it is is the team setting, and I guess I shouldn’t be so surprised from this because, you know, using something like Notion or even Google Docs back in the day when that was when we used more of our internal memos and project documentation. Yes, it’s just really, really useful. You’re going to build up this network collection of projects and concepts and processes and so forth, and it’s just very good to be able to reference them to each other. A really simple version of that that comes up basically every week in our planning is we’re having a discussion about, OK, these 3 people are working on this task this week, and they’re doing this and this and this, and by the way, they had previously had. You know, a whole design sketching section and talked through exactly what they’re going to do next. Here’s the board for that. And so kind of in the call, what will happen is someone will go and grab a linked card for that and drop it in the planning document right alongside. There’s the explicit list of tasks and assignments of what we’re doing for the week, but here’s the reference to and as these projects get more complex, particularly as our team is growing and so forth, sometimes it’s, you have 3 lines. Of tasks for the team that just describe what they’re doing for the week, but then you double click or you pinch to navigate into that subboard and you see this huge world of things whether it’s technical or design or whatever it is, and you either get a glimpse of it or maybe you think, OK, I’m going to sort of make a note to go review this later because I think it touches on my work or maybe you just go, Oh man, I’m glad those people are working on that and not me because it’s a whole huge world and I’m not going to load the context into my brain. But just that ability to just drop that reference there, and very casually, I think it’s just a really nice way to offer the depth if you want it, but you don’t necessarily need to go into it right there in the meeting. 00:46:10 - Speaker 1: Right. Another way to describe this might be different views into the same data. So I think it’s very common that you want 3 views. You want a view which is temporal, what is the team working on this week? You want a view that’s personal, what is Mark thinking about right now? What does he want to have at hand. And then there’s a view which is subject base. What is the design of our sync system? And what link cards allow you to do is to have any given thing, boards say appear. And each of those. And really importantly from you, as you alluded to this, it’s all symmetric because often the way this stuff happens in practice is someone is off noodling in their own world and, you know, how to do graph indexing for linked cards as he was describing. And it would really be a shame if You either disallowed or made it look weird if that was to get promoted into the weekly work and then into the sort of canonical subject matter board for sync or the client and what have you. But with linked cards, these things get promoted and they’re really peers among each other, so it’s very natural for stuff to Flow in organically versus you can imagine a world where there are 2 class links and then the subject board, for example, is this weird mix of like boards versus second class link boards, it just be kind of weird. Whereas here you get this very nice minor link icon to indicate that this board appears in other places, but otherwise it’s all symmetrical. 00:47:34 - Speaker 2: Another thing I’ve noticed is that the number of links, the number of other locations, I guess number of linked cards that is in that Droptown serves as a sort of measure of importance. So as one example here, you wrote a description of the roadmap essentially for multiplayer or multiplayer features in terms of technical capabilities we needed to build as well as some of the user facing stuff, and you wrote that pretty early in our process, and that’s been An important reference point for a lot of project planning and design work and so on. And so now there’s a pretty good list of stuff there and almost an interesting parallel there with, I think citation count in scientific papers where you can measure the influence of a paper by how often it’s cited some. Similar for boards. Our most important boards tend to get referenced a lot, and notably, I don’t think you necessarily know ahead of time which you’re going to turn out to be that, and maybe that’s to your point about the canonical location, which is something that might start in a board that I call Adam’s weird ideas in November. And it turns out that one of them is useful or interesting enough that it keeps coming up and gets referenced a lot, and the fact that it started life there isn’t important for its longer influence that it’s going to have on what our team is up to. 00:48:56 - Speaker 1: And speaking of personal workspaces and then promoting content into team spaces, I think the elegant transition from single instance to multiple linked instances is going to work really well because, so right now in our use for teams, basically everything is visible to everyone. Each of us has our own little workspace that’s carved out and some of it a little like pseudos screens over it so people don’t, I don’t know, annoy us too much or, you know, look in before stuff is ready. But ultimately, if you, Adam, have something in your personal workspace and then link to it from the team’s weekly planning board, for example, that backlink is gonna appear to everyone in the current views for Teams space. But you can imagine a world where the backlink calculation is done per user. So, in a world of more granular sharing that we’ll have in the future, it could be that when you do that promotion and you go to the weekly team planning board, you see the backlink to your personal space. But when I go, I don’t see that backlink. And in fact, it might just look like a regular board to me because that’s the only place that appears for me. And then perhaps if I want to link it from my scratch board, then I see the two ends. Says it’s on the weekly planning board and it’s on my personal space. So that’s, I think an important example of how the linkedness is a property that emerges of how many times a given document is visible to you. And right now that’s all the same because we’re all sharing the same team space, but eventually it’ll be more granular. 00:50:21 - Speaker 2: Right, right now you got your personal muse where it is by definition only visible to you, and then you’ve got teamwork spaces, which in our current data are essentially everyone on the team can see everything. But in the future world, we have in mind is one of much more granular sharing, as you said, the ability to share individual boards, as well as even within a team space having a private office, private workspace where you can get stuff ready, even though it is intended to be in that bucket of There’s something I’m doing for work or for this particular team or project, and it may be something that has some kind of a privacy screen over it, but you can relatively seamlessly move it into the shared space when you are ready to work on it. So yeah, it definitely opens up or it fits really cleanly into that paradigm. Well, maybe as a place to end, we’re gonna reference Ted Nelson again, I mentioned earlier, he invented the term for hyperlinks, but he also invented this term transclusion, and the muse take on transclusion so far is that you can grab what we call an excerpt from a PDF or an image, or even a frame from a video, and have a source link and indeed a little portal that takes you back to that place. But in some ways, linked cards have some of the same transclusion quality to them, and indeed, I think something we would like to see in the future is essentially a called a linked section or a linked portion of a board or other card, and actually at that point, then you start to see it as a sort of transclusion, right, a portal to that source, something you could potentially not only see but potentially change, you can obviously navigate into it. And the fact that it is this one specific subset, I think is also part of the potentially usefulness. Now, what the interface for that would look like, I think would be quite a design challenge, but I think the value of that would be fairly obvious and hopefully would make Ted Nelson proud. 00:52:24 - Speaker 1: Yeah, I think that would be very powerful. I’ve definitely found myself wanting something like that and have received several support requests looking for that kind of capability. And just reasoning by analogy, this is super useful on the web. You have vanilla URL links, and then you have so-called anchor links where you have the URL, the pound sign, and then some anchor tag, which typically corresponds to some heading or some other section of the web page. And when you click on that link, it takes you to the web page and scrolls right to the point. And sometimes with jobs you can even make it highlight the particular thing that you scrolled right to. Super valuable. And importantly with web links, the former is sort of a special instance of the latter. It’s like you’re basically link into the whole thing, and I kind of wonder if we can make that same thing work in Muse where instead of having separate linked card and excerpt slash transclusion features, there’s sort of a continuum. So you can think of a linked card as you have underlying content. You make an excerpt, but the excerpt is like the whole thing. If the window is the size of the entire document. And there’s another thing you can do, which is make an excerpt where the window is smaller than the entire document. But you can see how those are on a continuum, and then things like the back linking, for example, would be unified. I don’t know if that’s gonna work out. We need to think about it more, but I think that’d be pretty powerful if we can get to work. I also think both linked cards and excerpts could be relevant for maybe you call them computed views or derived views. The example that I constantly go to is search. So there’s one way to do search, which is like search is a totally separate thing with a totally separate interface, just kind of its own world. And then you click on links and it brings you back into the main app. The vision that I have for search is more like there’s some content type that you’re programmatically. Computing. So in the current muse, you can imagine you type some search terms and it computes a board that has a bunch of linked boards on it, which correspond to your search results, which would be a little bit weird, but you can imagine if a muse eventually has a non-spatial content type, basically a set type, which is more comparable to like a Maciner, and there. When you do a search, you compute a set of results in order to set maybe or a list and you present that in the same way that if you want to make a manual list, it would be, you know, very comparable how the set is built. And then furthermore, you can imagine. If you’re searching for text, for example, and it’s searching within PDF, it actually computes an excerpt object so that you can, you know, see where in the PDF the result is popping up and when you click on the excerpt in the same way that you animate a manually create excerpt, it goes to the PDF source. So I think these are pretty cool building blocks for eventual computed types like search results. 00:54:59 - Speaker 2: Yeah, I know something I always find myself wanting with search, generally, Google does a version of this, but I’m also thinking of Unix text search tools like Grap has a command line option to essentially give yourself a couple lines of context around the search term, maybe log search tools like Splunk. And when they don’t have that, you’re struggling to see, OK, like I found the error I searched for, but I really want to know what happened in the few lines before it. That context is really important, but sometimes there’s not even a way to get to that. So the idea of the excerpt where you can easily see the context or even go completely to the source, is something that’s generally very powerful in computing. Well, then maybe I’ll just encourage our listeners, if you haven’t given linked cards a try yet, to go check that out and use. You can basically use the right click contexts menu on your Mac or the context menu on the iPad and make yourself a little linked card and fool around and see if you like the metaphor we landed on there and tell us if you have any feedback, and we can wrap it there. Thanks everyone for listening. Join us on Discord to discuss the episode with me, Mark, and our community. I’ll put the link in the show notes. You can also follow us on Twitter at mAppHQ. And Mark, I think the 1st 50 or so years of linking and computing have been pretty good. I’m looking forward to seeing what the future holds. 00:56:28 - Speaker 1: Great I.