One of the key values as part of the Software Craftsmanship movement is to be "skill-centric" and as part of that, practicing our skills as software developers is key! The Code Kata format is a coding exercise that is repeated and perfected. It provides one of many ways to practice the craft of software development. We'll discuss the Code Kata format, introduce a few katas and discuss some other practice formats.
This presentation is from a University of Oregon Teaching Effectiveness Program workshop on screen recording applications and the benefits of using the technology.
Life After Death by PowerPoint 2015 HandoutChris Shade
Tired of “death by PowerPoint”…endless slides, bullet points, and text? Alas, there is “Life After Death by PowerPoint!” And it’s not about PowerPoint, Prezi, Google Slides, or Keynote…it’s about YOU and your MESSAGE.Learn how to best connect with an audience or students based upon how the brain processes information. You will
learn how to develop brain-friendly presentations that help organize and integrate information, engage audiences or students. Walk away with the knowledge to dynamically change the way your information and material is presented.
Another take on powerpoint boredom but this time specially adapted for teachers! Because so many of them do not know how to use PowerPoint well and need some inspiration. Musical version also available on the you.
In this session from Øredev 2010 in Malmö, Sweden, Cory Foy covers the concepts of Koans and Katas in the software world by explaining the concepts of learning models such as the Dreyfus Model of Skills Acquisition, Shu Ha Ri and others.
This presentation is from a University of Oregon Teaching Effectiveness Program workshop on screen recording applications and the benefits of using the technology.
Life After Death by PowerPoint 2015 HandoutChris Shade
Tired of “death by PowerPoint”…endless slides, bullet points, and text? Alas, there is “Life After Death by PowerPoint!” And it’s not about PowerPoint, Prezi, Google Slides, or Keynote…it’s about YOU and your MESSAGE.Learn how to best connect with an audience or students based upon how the brain processes information. You will
learn how to develop brain-friendly presentations that help organize and integrate information, engage audiences or students. Walk away with the knowledge to dynamically change the way your information and material is presented.
Another take on powerpoint boredom but this time specially adapted for teachers! Because so many of them do not know how to use PowerPoint well and need some inspiration. Musical version also available on the you.
In this session from Øredev 2010 in Malmö, Sweden, Cory Foy covers the concepts of Koans and Katas in the software world by explaining the concepts of learning models such as the Dreyfus Model of Skills Acquisition, Shu Ha Ri and others.
RED ACADEMY is a unique Vancouver-based technology academy created for the designers, creators, developers and digital marketers of tomorrow.
MAKE YOUR MARK is a tailored to 3 cohorts spanning Digital Marketing, Web Development and UX Design. Students get ready to showcase and flex their new skills in the workplace, share their experiences and offer support and strategies to each other.
This session covers pitching, Pitching, Selling, Marketplace, Branding, Future of Work, Content Marketing, Design, Mindsets, Tips, Hacks & More.
Presented at the National Speakers Association Influence 15 convention in Washington, DC, Kristin Arnold and Sarah Michel share practical tips and techniques on how to make your keynote more engaging and interactive.
Yes, My tuatara loves to cha-cha: Improv, creativity and designUX New Zealand 2015
Speaker: Steve Portigal
Improv is not ‘stand-up comedy’ but a series of games that offer huge degrees of freedom within a set of constraints. During improv, we bring out quickly-understood-and-communicated rules of culture that are implicit, not explicit.
Design and improv have important similarities. Both practices involve collaboration and brainstorming; an emphasis on breakthrough thinking; in-the-moment aspects and ‘Aha!’ moments; a balance of process, structure, and unfettered creativity; an enormous unspoken interaction; and the need to learn upon reflection.
Playing with improv can help us to be more mindful of the power of listening, to create a more collaborative work culture, to develop our own creativity, and to warm up teammates and clients in workshops and design sessions.
In this interactive presentation, you’ll learn about improv, listening, and creativity, and how each supports the others. No tuatara's will be harmed.
A few weeks ago I had the opportunity to deliver a talk at Shift in Split, Croatia.
Shift is a developer conference, so initially, I thought it would be entertaining to talk about what it’s like to work with an engineer, from a designers perspective. The working title of the talk was Things Engineers Hate About Working With (Me) a Designer.
I was going to share the mistakes I’ve made, and learned from, along the way. A manifesto of what not to do when working with an engineer. However, feedback included phrases like “it’s a bit tongue & cheek” and the best talks are ones that are “raw, honest and vulnerable.”
You don’t write code, but you’ve been successful in spite of it. The lines are blurring between design & engineering. Why not talk about how tools have helped bridge that gap?
There was something more interesting to talk about. I realized that I didn’t write code because I didn’t need to. For years I’d been spoiled, and to some extent enabled, by a handful of incredibly talented iOS engineers. The realization didn’t sit well with me.
I scrapped everything and went back to the drawing board.
Tools were my first introduction to a hobby that turned into a passion that has become an obsession
They have been steadily influencing and shaping me as a designer from the first time I sat in front of a computer in elementary school. I would not realize how much they’d impact my life until much much later.
Tools have had a massive influence on me and my work, but had they on others?
Yes, My Tuatara Loves to Cha-Cha Improv, Creativity and DesignSteve Portigal
From UX New Zealand 2015 - Improv is not ‘stand-up comedy’ but a series of games that offer huge degrees of freedom within a set of constraints. During improv, we bring out quickly-understood-and-communicated rules of culture that are implicit, not explicit.
Design and improv have important similarities. Both practices involve collaboration and brainstorming; an emphasis on breakthrough thinking; in-the-moment aspects and ‘Aha!’ moments; a balance of process, structure, and unfettered creativity; an enormous unspoken interaction; and the need to learn upon reflection.
Playing with improv can help us to be more mindful of the power of listening, to create a more collaborative work culture, to develop our own creativity, and to warm up teammates and clients in workshops and design sessions.
In this interactive presentation, you’ll learn about improv, listening, and creativity, and how each supports the others. No tuataras will be harmed.
Observation is fundamental to any design & goes far beyond looking at something carefully.
We involve all of our communication channels in a systemic & sistematic way, in good prolonged observation.
In this class we study in depth the clients interview & other observation techniques & tools.
SXSW - Diving Deep: Best Practices For Interviewing UsersSteve Portigal
While we know, from a very young age, how to ask questions, the skill of getting the right information from users is surprisingly complex and nuanced. This session will focus on getting past the obvious shallow information into the deeper, more subtle, yet crucial, insights. If you are going to the effort to meet with users in order to improve your designs, it's essential that you know how to get the best information and not leave insights behind. Being great in "field work" involves understanding and accepting your interviewee's world view, and being open to what they need to tell you (in addition to what you already know you want to learn). We'll focus on the importance of rapport-building and listening and look at techniques for both. We will review different types of questions, and why you need to have a range of question types. This session will explore other contextual research methods that can be built on top of interviewing in a seamless way. We'll also suggest practice exercises for improving your own interviewing skills and how to engage others in your organization successfully in the interviewing experience.
Collaboration Principles from Mob ProgrammingMike Clement
In the media, writing software is often portrayed as a solo endeavor. While many modern software systems begin as the work of one person, building and scaling them cannot be done by “lone wolf” developers. We need to collaborate with other developers as well as those in different roles and in concentric rings of responsibility and influence around the core product team. These complex dynamic socio-technical systems can be difficult to navigate.
Mob programming is a technique for collaborative software development where “all the brilliant people work on the same thing, at the same time, in the same space, and on the same computer.” I have had the opportunity to work primarily in mobs for the past eight years and before that for years in pairs. I have observed that this has led to higher internal and external quality which has led to more maintainable code which has led to consistent delivery sooner. Either way, by sharing my experiences with mob programming, I’ll point to principles underlying the practices that will help you along your own collaboration journey.
Focus on Flow: Lean Principles in ActionMike Clement
Lean concepts have become more and more popular in software development. Coming from the manufacturing world, understanding these concepts and how they can apply to your software development efforts can help you get to deliver faster and more reliably. Join Mike as he makes the case for integrating lean software development principles into your software development methodology.
RED ACADEMY is a unique Vancouver-based technology academy created for the designers, creators, developers and digital marketers of tomorrow.
MAKE YOUR MARK is a tailored to 3 cohorts spanning Digital Marketing, Web Development and UX Design. Students get ready to showcase and flex their new skills in the workplace, share their experiences and offer support and strategies to each other.
This session covers pitching, Pitching, Selling, Marketplace, Branding, Future of Work, Content Marketing, Design, Mindsets, Tips, Hacks & More.
Presented at the National Speakers Association Influence 15 convention in Washington, DC, Kristin Arnold and Sarah Michel share practical tips and techniques on how to make your keynote more engaging and interactive.
Yes, My tuatara loves to cha-cha: Improv, creativity and designUX New Zealand 2015
Speaker: Steve Portigal
Improv is not ‘stand-up comedy’ but a series of games that offer huge degrees of freedom within a set of constraints. During improv, we bring out quickly-understood-and-communicated rules of culture that are implicit, not explicit.
Design and improv have important similarities. Both practices involve collaboration and brainstorming; an emphasis on breakthrough thinking; in-the-moment aspects and ‘Aha!’ moments; a balance of process, structure, and unfettered creativity; an enormous unspoken interaction; and the need to learn upon reflection.
Playing with improv can help us to be more mindful of the power of listening, to create a more collaborative work culture, to develop our own creativity, and to warm up teammates and clients in workshops and design sessions.
In this interactive presentation, you’ll learn about improv, listening, and creativity, and how each supports the others. No tuatara's will be harmed.
A few weeks ago I had the opportunity to deliver a talk at Shift in Split, Croatia.
Shift is a developer conference, so initially, I thought it would be entertaining to talk about what it’s like to work with an engineer, from a designers perspective. The working title of the talk was Things Engineers Hate About Working With (Me) a Designer.
I was going to share the mistakes I’ve made, and learned from, along the way. A manifesto of what not to do when working with an engineer. However, feedback included phrases like “it’s a bit tongue & cheek” and the best talks are ones that are “raw, honest and vulnerable.”
You don’t write code, but you’ve been successful in spite of it. The lines are blurring between design & engineering. Why not talk about how tools have helped bridge that gap?
There was something more interesting to talk about. I realized that I didn’t write code because I didn’t need to. For years I’d been spoiled, and to some extent enabled, by a handful of incredibly talented iOS engineers. The realization didn’t sit well with me.
I scrapped everything and went back to the drawing board.
Tools were my first introduction to a hobby that turned into a passion that has become an obsession
They have been steadily influencing and shaping me as a designer from the first time I sat in front of a computer in elementary school. I would not realize how much they’d impact my life until much much later.
Tools have had a massive influence on me and my work, but had they on others?
Yes, My Tuatara Loves to Cha-Cha Improv, Creativity and DesignSteve Portigal
From UX New Zealand 2015 - Improv is not ‘stand-up comedy’ but a series of games that offer huge degrees of freedom within a set of constraints. During improv, we bring out quickly-understood-and-communicated rules of culture that are implicit, not explicit.
Design and improv have important similarities. Both practices involve collaboration and brainstorming; an emphasis on breakthrough thinking; in-the-moment aspects and ‘Aha!’ moments; a balance of process, structure, and unfettered creativity; an enormous unspoken interaction; and the need to learn upon reflection.
Playing with improv can help us to be more mindful of the power of listening, to create a more collaborative work culture, to develop our own creativity, and to warm up teammates and clients in workshops and design sessions.
In this interactive presentation, you’ll learn about improv, listening, and creativity, and how each supports the others. No tuataras will be harmed.
Observation is fundamental to any design & goes far beyond looking at something carefully.
We involve all of our communication channels in a systemic & sistematic way, in good prolonged observation.
In this class we study in depth the clients interview & other observation techniques & tools.
SXSW - Diving Deep: Best Practices For Interviewing UsersSteve Portigal
While we know, from a very young age, how to ask questions, the skill of getting the right information from users is surprisingly complex and nuanced. This session will focus on getting past the obvious shallow information into the deeper, more subtle, yet crucial, insights. If you are going to the effort to meet with users in order to improve your designs, it's essential that you know how to get the best information and not leave insights behind. Being great in "field work" involves understanding and accepting your interviewee's world view, and being open to what they need to tell you (in addition to what you already know you want to learn). We'll focus on the importance of rapport-building and listening and look at techniques for both. We will review different types of questions, and why you need to have a range of question types. This session will explore other contextual research methods that can be built on top of interviewing in a seamless way. We'll also suggest practice exercises for improving your own interviewing skills and how to engage others in your organization successfully in the interviewing experience.
Collaboration Principles from Mob ProgrammingMike Clement
In the media, writing software is often portrayed as a solo endeavor. While many modern software systems begin as the work of one person, building and scaling them cannot be done by “lone wolf” developers. We need to collaborate with other developers as well as those in different roles and in concentric rings of responsibility and influence around the core product team. These complex dynamic socio-technical systems can be difficult to navigate.
Mob programming is a technique for collaborative software development where “all the brilliant people work on the same thing, at the same time, in the same space, and on the same computer.” I have had the opportunity to work primarily in mobs for the past eight years and before that for years in pairs. I have observed that this has led to higher internal and external quality which has led to more maintainable code which has led to consistent delivery sooner. Either way, by sharing my experiences with mob programming, I’ll point to principles underlying the practices that will help you along your own collaboration journey.
Focus on Flow: Lean Principles in ActionMike Clement
Lean concepts have become more and more popular in software development. Coming from the manufacturing world, understanding these concepts and how they can apply to your software development efforts can help you get to deliver faster and more reliably. Join Mike as he makes the case for integrating lean software development principles into your software development methodology.
Taming scary production code that nobody wants to touchMike Clement
Most dev teams “own” some code that they don’t really want to work with. However it got there, the code is scary but pretty stable and requires updates. Perhaps your team draws straws to each time to figure out who is going to have to put on the metaphorical hazmat suit and deal with the problem. Or worse yet, your team relies on one developer to always do it and he or she is getting burned out and could leave at any minute.
Mike will share some techniques that will help you modify the code with confidence using a few core refactorings and characterization test.
It has been 18 years since Martin Fowler published “Refactoring” which codified an initial catalog of code smells. But in that time, have our noses been able to sniff them out? What have we done to develop our sense of smell? We will do a series of Sparrow Decks to increase our sense of code smell by building the pattern recognition part of our brain. This way we can more easily know if there is something wrong with the code. Remember smelling you have a problem is always the first step. (Note: this technique works for non-programmers as well as programmers so even if you’re not a programmer, come and develop your sense of code smell!)
Maps over Backlogs: User Story Mapping to Share the Big PictureMike Clement
A flat backlog presents problems understanding context of individual items. Determining the value of a user story in a vacuum is difficult, if not impossible. We need the big picture! Without understanding the big picture, how do we know if we have identified all the stories? How do we communicate the context of a user story in the big picture? How do we really know what is necessary for a minimum viable product?
User story mapping is a technique that can help us keep the big picture front and center. It was developed to build shared understanding and display the stories within the context of the user narrative. We will discuss the challenges with flat backlogs, how user story mapping can help with those, do an activity to build a story map and discuss how to integrate this technique into the work you’re already doing.
Escaping the Pitfalls of Software Product DevelopmentMike Clement
Building a software product can be complex. The pitfalls include prioritization, planning, focus, complexity, and more. We’ll discuss techniques on how to avoid or escape these pitfalls. This includes an activity that demonstrates the inherent complex nature of software development.
Test Driven Development specifies that you write a failing unit test before you write any code. Some people say this is impossible. I'll demonstrate that it's not only possible, but will change how you write code for the better.
Mob Programming for Continuous LearningMike Clement
What if we took Extreme Programming and said it’s not “extreme” enough? What if we took pair programming and cranked it to 11? Mob programming is a technique with “all the brilliant people working on the same thing, at the same time, in the same space, and on the same computer.”
I was lucky enough to be on a team for about year that worked “as a mob.” Come learn what practices we found to be critical, what obstacles we encountered and what practices became irrelevant during our experience.
Play to Learn: Agile Games with Cards and DiceMike Clement
Play is a powerful method to learn! Come and play some simple agile games that use playing cards, index cards and dice to explore the different values that are at the foundation of Agile and Lean development practices. In addition to your own insights, you may be able to take these game back to work to share with your co-workers.
This is a hands-on session so come prepared to have some fun!
There is no "right" answer to what you're "supposed to" learn from a game, so come ready to discover your own insights into software development processes and teamwork.
The Quest for Continuous Delivery at PluralsightMike Clement
Continuous integration, continuous delivery, continuous deployment. These may seem like unreachable goals in your current situation. Maybe you’re doing weekly or even monthly coordinated releases. At Pluralsight we deploy multiple times a week, sometimes multiple times a day. We’re not perfect and we’re constantly working to improve our system, but I’ll share an experience report of where we currently are and where we’re going.
Software Craftsmanship and Agile Code GamesMike Clement
Join us to talk about what it means to be a software craftsman, how the Software Craftsmanship Manifesto (http://manifesto.softwarecraftsmanship.org/) provides a framework for us to improve.
A large part of being a software craftsman is practice. Using different "code games" we can have a full toolbelt of activities that will help us (and those around us) become better at our craft.
Agile software development promises the ability to deliver value quickly. But this isn’t just a matter of process. Uncle Bob says "the only way to go fast is to go well." But how do we go well? As software developers, we can only deliver features as fast as the code base and our skills allow us. Unfortunately the quality of our code base is directly related to our skill in the past.
Musicians and athletes spend most of their time practicing, not performing. As software developers (aspiring craftsmen) we must have practice sessions that allow us to improve our skills and develop better “code sense”. We’ll look at some different “agile code games” that will help us improve our craft.
Coding in a functional language requires more than simply knowing the syntax of that language. You can write a for loop in F# as easily as you can in C#, but you're missing out on the functional aspects of F# (and C# for that matter). We'll do an introduction to the language features of F# and how to unit test but more importantly we'll write some code with a functional mindset and discuss where and why you would want to use F# in your existing projects.
Transformation Priority Premise: TDD Test Order MattersMike Clement
When coding using TDD, do you often run into a point when you have to “implement the whole thing”? The sequence of tests that we write significantly impacts where are code ends up! We’ll explore Uncle Bob’s Transformation Priority Premise, looking at the transformations that code goes through and how our tests can drive the code in different directions.
Power of Patterns: Refactoring to (or away from) PatternsMike Clement
What is a design pattern? Why should you care? What it the power of design patterns? How do design patterns tie into object oriented programming? If I'm using objects in my code, isn't that object oriented programming? (The answer is not necessarily!) When should I use them?
Design Patterns are great but the temptation is to use Design Patterns as a golden hammer. This can lead to unnecessarily complicated, over-engineered code in an effort to be flexible and ready for the future. That sounds reasonable - if you happen to be a psychic. More commonly, you will refactor to a pattern when the code (that you’ve written simply and minimally) demands it.
We'll talk about why you should know common design patterns, why they are powerful, how they relate to object oriented principles, different composite refactorings that will move you to (and sometimes away) from patterns and the smells that help you know when to apply them.
Knowing how to use Linq is useful if you're doing any coding using .NET 3.5 or newer. But have you ever thought about what is going on "under the hood"?
Join us as we dive into the guts of Linq and implement Linq extension methods such as Where, Select, Any, All and Aggregate. Not only is it interesting to see what's going on, it'll help you to build better code using Linq.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Code Katas: Practicing Your Craft
1. Code Katas Practicing Your Craft Mike Clement @mdclement mike@softwareontheside.com http://blog.softwareontheside.com Utah Code Camp Fall 2011
2. “Often the true value of a thing isn’t the thing itself, but instead is the activity that created it.” -Dave Thomas
3. Chad Fowler on Practice “As a musician, I might spend a significant portion of my practice schedule playing things that nobody would want to listen to…. I would certainly never record them and release them on a CD. I wouldn’t even bore anyone with these sounds unless they either lived in my house and had no choice or were being paid to listen to them and offer suggestions for improvement. This is an example of “work” in which the action is far more valuable than the direct output.” http://chadfowler.com/2003/03/25/valueless-software
6. Dave Thomas on Practice “It’s like taking a group of fit kids and telling them that they have four quarters to beat the Redskins (hey, we manage by objectives, right?). In software we do our practicing on the job, and that’s why we make mistakes on the job. We need to find ways of splitting the practice from the profession. We need practice sessions.” http://codekata.pragprog.com/2007/01/code_kata_backg.html
7. Dave Thomas’s Keys to Practice Pressure Off Learn how to play with code http://www.codekata.com/2007/01/code_katahow_it.html Fundamentally incompatible with “on the job”!
9. Shu Ha Ri 守 Shu – House of Laws; to abide by, to defend 破 Ha – Stone; to break 離 Ri – Bird; to leave, to depart Similar to Dryfus model Novice, Advanced Beginner, Competent, Proficient, Expert Similar to Apprentice model Apprentice, Craftsman, Master
14. Randori Pair Programming Pair changes with mechanism (Time box, Ping Pong) Start from scratch Use TDD Everyone should be following Pair should be explaining Audience gives suggestions only with when Green Example at http://vimeo.com/2499540 http://codingdojo.org/cgi-bin/wiki.pl?RandoriKata
15. Koans Koans are questions without absolute answers which are used to break down assumptions and reveal underlying truths http://rubykoans.com/
16. Code Retreat Problem: Conway's Game of Life Length of Session: 45 minutes Duration: 8.30am to 5 or 6pm Pair-programming is necessary, as the knowledge transfer contained in that activity is essential to the practice Prefer using Test-Driven Development (TDD) After each session, pairs should be swapped After each session, code must be deleted, not put in a branch, not stashed, just deleted with no trace left http://coderetreat.com/facilitation.html
18. “Often the true value of a thing isn’t the thing itself, but instead is the activity that created it.” -Dave Thomas
19. Kata Lists http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue http://codekata.pragprog.com/2007/01/code_kata_backg.html http://stackoverflow.com/questions/44533/your-favorite-code-kata http://www.katacasts.com/ http://katas.softwarecraftsmanship.org/
20. My Contact Info @mdclement mike@softwareontheside.com http://blog.softwareontheside.com Utah Software Craftsmanship Group https://groups.google.com/forum/#!forum/ut-software-craftsmanship @utahsc
Editor's Notes
Verbs vs. NounsRequirements“Plans are useless, but planning is invaluable” – Dwight D. Eisenhowerthe value is the process that everyone goes through in order to produce the document: the understanding gained, the relationships forged, the negotiations, the compromises, and all the other little interactions which share information.QualityPlan, measure, build a quality product!Quality is PART OF THE PROCESS. Quality is in the spirit of the smallest of our daily activities.
Read quote
Who plays a musical instrument? Practice time vs. performance time?ScalesArpeggiosExtended tones (wind instruments)Various technical patternsLast bars of Franz Liszt's Transcendental Étude No. 2: one of the most difficult of Liszt's études, this is a study in passages for alternating and overlapping hands.Sports is the same way, how much time is spent practicing versus performing?
Clearly each of you is here at Code Camp on a Saturday because you KNOW that you can’t get everything you need for your profession, to be a master of your craft by practicing “on the job”.
Provide a temporal oasis where it’s OK not to worry about some approaching deadline.Learn how to play with code: how to make mistakes, how to improvise, how to reflect, and how to measure. This is hard: we’re trained to try to do things right rather than improvise.These “keys” are fundamentally incompatible with “on the job” learning.One the job has deadlines and restrictions. It’s very visible to other people so mistakes are less tolerated.Sure there is a component to this. We can learn on the job. “Live” experience is important. For example with public speaking, you can practice and practice, but actually presenting is different. Practicing helps, but it doesn’t replace real experience.SportsMusicMilitary combatCooking for your in-laws
The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality. His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the "quantity" group: fifty pound of pots rated an "A", forty pounds a "B", and so on. Those being graded on "quality", however, needed to produce only one pot - albeit a perfect one - to get an "A".Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the "quantity" group was busily churning out piles of work - and learning from their mistakes - the "quality" group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.http://www.codinghorror.com/blog/2008/08/quantity-always-trumps-quality.htmlArt & Fear: Observations On the Perils (and Rewards) of Artmaking [Paperback]David Bayles (Author), Ted Orland (Author)We learn by DOING!I would argue that we can’t do quantity on the job. We have to get the volume of repetitions elsewhere.
Concept introduced to software by Alistair CockburnShu - the technical foundation of the artSingle instructorCopy techniques without modificationit is the instructor that decides when the student moves on from Shu to Ha, not the studentIt’s up to the student to follow the instructor’s teaching as an empty vessel to be filled upHareflect on the meaning and purpose of everything that s/he has learned and thus come to a deeper understanding of the artRimust think originally and develop from background knowledge original thoughts about the art and test them against the reality of his or her background knowledge and conclusions as well as the demands of everyday lifethe art truly becomes the practitioner’s own and to some extent his or her own creationInvent own techniques
Everyone is at different levels with different skills that they are developing, but nobody is master of all skills.We often jump right into critiquing a method or idea instead of attempting it “as is” first. We think that we’re so smart that we can skip past the “beginner” stuff and get right into it.Programmers are especially susceptible to this as we have sizable egos generally.Seek first to understand.
Slow down!Practice the feel and to internalize the movesBuilding muscle memoryChange your intuitionTrain your eyes and fingers to recognize and respond to patternsValue in repetition even if you don’t agree.You may not like what the kata is teaching you, but that is learning too.
Japanese word describing detailed choreographed patterns of movements practiced either solo or in pairs.A kata is a coding exercise that performed repeatedly and perfected.Framework for focused practiceTDD/Unit TestsPerformanceStructureMemory UseTool use (IDE, text editor)Practice comes to an end; with a real problem… not so muchPath is laid out for you so there is a definite end
Group is given a problem.Time box – you have x amount of time per pairPing Pong – one person writes a test, next codes to green and writes next test, next codes to green and writes test…
Anybody attended one of these?Working to have one in Utah.
As we learned earlier, the best way to learn is by experimenting and repeating so that’s what we’re going to do
Remember that the problem that we solved today is not really that important. It’s not important that we have a piece of code to score a bowling game. It is important that we go through the exercise and take from it what we can.