SlideShare a Scribd company logo
Develop, Debug, Learn?
A time to re-think our tooling.
Chris Heilmann (@codepo8), DotJS Paris 2019
I remember
when this was all fields…
Chris Heilmann @codepo8
And then we added labels…
Chris Heilmann @codepo8
JavaScript, DHTML, Unobtrusive
JavaScript, Flash/Air/Flex, DOM
Scripting, AJAX, Comet…
Chris Heilmann @codepo8

Recommended for you

Tf byow
Tf byowTf byow
Tf byow

This document provides an introduction to web development training through Thinkful. It outlines Thinkful's mentorship and project-based learning approach. Sections cover HTML, CSS, building a website starter code, and learning resources. Testimonials from graduates highlight their portfolio and capstone projects. A survey link is included for feedback on Thinkful events.

Tf byow
Tf byowTf byow
Tf byow

Thinkful is a coding bootcamp that trains web developers and data scientists through 1-on-1 mentorship and project-based learning. They offer a two-week free trial of their Full Stack Flex online program which teaches HTML, CSS, JavaScript, and allows for unlimited Q&A sessions and access to a student Slack community. The document provides links to starters codes and drills to help students learn the basics of HTML, CSS, and building a website. It also shares portfolios from Thinkful graduates to showcase the types of projects and skills students gain in the program.

Thinkful DC FrontEnd Crash Course - HTML & CSS
Thinkful DC FrontEnd Crash Course - HTML & CSSThinkful DC FrontEnd Crash Course - HTML & CSS
Thinkful DC FrontEnd Crash Course - HTML & CSS

This document provides an overview of a frontend crash course on HTML and CSS. It includes details about the instructor, learning objectives, agenda, and how to continue learning after the course. The agenda covers key concepts of HTML, CSS, and how the web works. Assignments are provided to practice the skills learned. Real-world examples and troubleshooting tips are also discussed to help students learn and feel supported.

html5cssthinkful
Learn
A logical order…
Chris Heilmann @codepo8
Learn Develop
A logical order…
Chris Heilmann @codepo8
Learn Develop Debug
A logical order…
Chris Heilmann @codepo8
Then we added abstractions…
Chris Heilmann @codepo8

Recommended for you

Architecture @ Appknox
Architecture @ AppknoxArchitecture @ Appknox
Architecture @ Appknox

This document discusses architecture and design patterns for Python applications. It begins with an introduction by the presenter, dhilipsiva, who is a tech lead and full-stack developer at Appknox. The presentation then provides an overview of Appknox, describing the technologies in its stack including Django, PostgreSQL, RabbitMQ, and Kubernetes. It also outlines Appknox's microservices architecture, which includes components like API servers, scanners, tasks, and a device farm. The document concludes by promising to explain Appknox's deployment process and inviting questions.

pythoncloudsecurity
Building your first WordPress plugin
Building your first WordPress pluginBuilding your first WordPress plugin
Building your first WordPress plugin

This document provides an overview of building WordPress plugins, including when code should be placed in functions.php versus a plugin, basic plugin structure, adding custom features like shortcodes and upload types, and tips for testing and getting help. It encourages experimenting with code snippets but knowing your limits, and consulting developers when examples are complex. The goal is to help people get started writing simple plugins.

wordpress
Holacracy
HolacracyHolacracy
Holacracy

This document discusses Holacracy, an alternative organizational structure to traditional hierarchies. It notes that current management structures were designed for factories, while Holacracy is designed for humans. Holacracy eliminates hierarchies and instead focuses on clearly defined roles and circles within an organization. It aims to embrace autonomy through separating people from roles and having roles, not managers, make decisions. While challenging to implement due to issues of power, some companies have adopted aspects of Holacracy.

holocracymgmtculture
And build processes…
Chris Heilmann @codepo8
Develop
Alas…
Chris Heilmann @codepo8
Develop
Alas…
Chris Heilmann @codepo8
Depend
Develop Debug
Alas…
Chris Heilmann @codepo8
Depend

Recommended for you

The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...

Over the past several years, as the role of the browser has grown, rich desktop-like apps have emerged built entirely in the browser. To enable this movement, a new generation of powerful JavaScript frameworks have emerged including EmberJS, AngularJS, BackboneJS, and React. In this 30 minute crash course on front end frameworks, Bloc co-founder and CTO Dave Paola will cover the history of front end web development, the recent emergence of these new Javascript frameworks, and go over some of the pros and cons for learning them. We'll hear from Bloc co-founder and CTO Dave Paola and Bloc Developer Christian Schlensker. Prior to Bloc, Dave was a developer at Kontagent, has over 15 years of software development experience, and has founded numerous other companies. Christian comes to Bloc from Pinchit and TAG where he was a developer. Prior to that, Christian was also a graphic designer. In our experience, beginners are often overwhelmed by buzz words like "HTML5," "JavaScript," and "Ruby." Without an experienced guide, they can spend months going down rabbit-holes drilling into specific languages, and emerge frustrated that they can't build a real website. Dave will start by helping you visualize the front end web development landscape. Comparing Angular, Ember, Backbone, and React 2 Once you understand the landscape, Dave will introduce the four major front end frameworks that have emerged over the past two years. He'll discuss the pros and cons of learning each one, from the point of view of a beginner. These four frameworks are: AngularJS, EmberJS, BackboneJS, and ReactJS.

apprenticeshipemberjshtml
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?

The document provides advice and encouragement for someone starting out with JavaScript development. It discusses how JavaScript can be used in many environments like browsers, apps, and servers. It recommends resources like MDN and tools like linting to help avoid mistakes. It emphasizes that this is an exciting time for JavaScript and advises setting priorities and standards, being involved in the community, and bringing new voices and perspectives.

javascriptlearning
Code Forensics
Code ForensicsCode Forensics
Code Forensics

This document outlines techniques for debugging and investigating software issues like a code forensics expert. It recommends avoiding panicking and doing multiple things at once. Follow a scientific process by writing down facts, having theories, and getting a debugging partner. Use tools like observability, debug tricks, and Linux tools. Analyze code changes and previous working versions. Document investigations through post-mortems, root cause analyses, and retrospectives to prevent future issues.

codeforensicsinvestigation
Develop Debug
Learn
Alas…
Chris Heilmann @codepo8
Depend
Caught in the rush…
Chris Heilmann @codepo8https://pxhere.com/en/photo/489670
people.focus()
Chris Heilmann @codepo8
This is not about us.
This is about our tech legacy.
Chris Heilmann @codepo8

Recommended for you

Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developer

The document provides five ways for JavaScript developers to be happier: 1) Concentrate on the present and focus on creating rather than worrying about the past or future. 2) Limit distractions by streamlining your development environment and using an editor like VS Code that consolidates features. 3) Make mistakes less likely by using linters to catch errors as you code. 4) Get to know your tools better like debuggers to avoid console.log and gain insights to build better solutions. 5) Give back to others in the community by being helpful rather than causing drama.

smashingconf nycsmashingconfjavascript
Frontend Crash Course
Frontend Crash CourseFrontend Crash Course
Frontend Crash Course

The document outlines an agenda for a frontend crash course on HTML and CSS concepts. It introduces the instructor and TAs, discusses how Thinkful helps people become developers through mentorship and projects. The agenda includes learning key HTML and CSS concepts, reviewing assignments, working on challenges with support, and next steps for continued learning. It also covers topics like how the web works, HTML structure and tags, CSS selectors/properties/values, and assignments for practicing the concepts taught.

html5cssprogramming
Atag & drupal 8
Atag & drupal 8Atag & drupal 8
Atag & drupal 8

This document discusses how the Authoring Tool Accessibility Guidelines (ATAG) and Drupal 8 aim to make it easier to create accessible content. ATAG provides guidelines for making content authoring tools accessible, while Drupal 8 seeks to incorporate these guidelines and support authors in producing accessible content. The document outlines several areas both are working to address, such as ensuring editing interfaces are operable and understandable for authors, automatically processing content for accessibility, and providing tools to assist authors in checking and repairing existing content to make it more accessible. The overall goal is to work together to simplify the process of creating accessible digital content for all.

atagdrupalw3c
Filling the needs
Chris Heilmann @codepo8
must
 Availability
 Accessibility
 Security
 Mutability
Adding quality
Chris Heilmann @codepo8
should
must
 Enhanced performance
 Extended availability
 Customisabilty
Creating delight
Chris Heilmann @codepo8
want
should
must
 Making full use of the
platform in a safe manner
 Predict usage and prevent
simple mistakes
developers === people
Chris Heilmann @codepo8

Recommended for you

Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015
Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015
Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015

Session from Symfony Live Berlin 2015 with Campbell Vertesi: - introducing Drupal 8--the first product of the PHP-FIG era--to the Symfony community, how it is built, how it can help developers and their clients - Explanations of Drupal's data model and Views query builder - advantages of a decoupled architecture - disadvantages of a decoupled architecture -- plugging the built in features you get by choosing Drupal 8 - a suggested, example app architecture relying on Drupal 8's native strengths

d8symfonylivesymfony
WordCamp Barcelona 2015 : From Design to a Theme
WordCamp Barcelona 2015 : From Design to a ThemeWordCamp Barcelona 2015 : From Design to a Theme
WordCamp Barcelona 2015 : From Design to a Theme

The project manager journey. What to take care and analyze the a web design production into a WordPress Theme. Learn the different types of content sources and administration and organice the development of that design in a way that content creator can understand how the Theme works. It helps you to calculate the time and effort of a project.

wordpressproject managementproject manager
HTML5 Jump Start
HTML5 Jump StartHTML5 Jump Start
HTML5 Jump Start

These are the slides I was using in my HTML5 Jump Start lecture, that took place in HIT on October 9th, 2013. More information about the Java course I deliver can be found at java.course.lifemichael.com More information about the PHP course I deliver can be found at php.course.lifemichael.com More information about the FED course I deliver can be found at fed.course.lifemichael.com More information about the Scala course I deliver can be found at scala.course.lifemichael.com More information about the Android course I deliver can be found at android.course.lifemichael.com More information about the Kotlin course I deliver can be found at kotlin.course.lifemichael.com More information about the Swift course I deliver can be found at swift.course.lifemichael.com More information about the C++ course I deliver can be found at cpp.course.lifemichael.com More information about the Go course I deliver can be found at go.course.lifemichael.com More information about the CSS course I deliver can be found at css.course.lifemichael.com More information about the C# course I deliver can be found at csharp.course.lifemichael.com More information about the Python course I deliver can be found at python.course.lifemichael.com More information about the Angular course I deliver can be found at angular.course.lifemichael.com More information about the Node.js course I deliver can be found at nodejs.course.lifemichael.com More information about the Fullstack Development course I deliver can be found at fullstack.course.lifemichael.com

html5web developmentjavascript
https://pxhere.com/en/photo/1554913
Performance
Security
Accessibility
Interoperability
App-readiness
Maintenance
Automation
Frameworks
Libraries
CLI/Tool customisation
Demand overload!
Chris Heilmann @codepo8
Performance
Security
Accessibility
Interoperability
App-readiness
Maintenance
Automation
Frameworks
Libraries
CLI/Tool customisation
We work on faith…
Chris Heilmann @codepo8
Depend
(frameworks, 3rd party
packages, services) 🦄
https://pxhere.com/en/photo/630291
Missed opportunities
Chris Heilmann @codepo8
A tale of fixing a typo…
Chris Heilmann @codepo8

Recommended for you

Architecture & Engineering : Doing the non-obvious!
Architecture & Engineering :  Doing the non-obvious!Architecture & Engineering :  Doing the non-obvious!
Architecture & Engineering : Doing the non-obvious!

Diego Pacheco is a software architect, agile coach, and speaker who focuses on non-traditional approaches. Some of his views include that requirements can change and duplication is okay, tests don't always improve design or find bugs, and complexity sometimes needs abstractions but other times they add unnecessary complexity. He also believes teams will always have technical debt so it's important to prioritize fixing quick wins over deep technical issues, and that architecture is about people and enabling teams.

architecturearcheginering
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168

This document outlines the agenda for a frontend crash course workshop on HTML and CSS. It will cover key concepts of HTML and CSS like tags, elements, and selectors over 30 minutes. Then go over assignments for 10 minutes and have 30 minutes for completing challenges with support. It will also discuss continuing learning paths for 10 minutes. The workshop will be led by Robert Wilson from Thinkful and cover topics like how the web works, client-server relationships, HTML structure, CSS properties and values, and assignments to complete after the workshop.

Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"

Keynote at halfstackconf 2017 discussing the falsehood of the idea that in order to survive the automation evolution everybody needs to learn how to code. Machines can code, too.

machine learningautomationcoding
We have amazing tech, and yet
nobody is happy.
Chris Heilmann @codepo8
The full stackoverflow developer.
Chris Heilmann @codepo8
https://pxhere.com/en/photo/977180
What went wrong?
Chris Heilmann @codepo8
Chris Heilmann @codepo8

Recommended for you

Feature life cycle
Feature life cycleFeature life cycle
Feature life cycle

Chimp is an online fundraising platform that allows individuals and charities to raise money. It uses a feature lifecycle process that includes problem solving through customer interviews and data analysis, designing solutions, and development. Developers are involved throughout the process to help specify problems, design solutions, and implement features. The goal is for developers to understand the problems being solved so they can make better decisions with less documentation.

Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"

Chris Heilmann gave a talk at BTConf in Munich in January 2018 about machine learning, automation worries, and coding. He discussed how coding used to refer to creative programming within technical limitations but now often refers to programming for work. He addressed common worries about new technologies and dependencies, and argued that abstractions are not inherently bad and help more people build products together through consensus. The talk focused on using tools to be more productive and enabling rather than seeing them as dangers, and creating solutions for users rather than fighting old approaches.

btconfbtconfmuc
Building a better web with free, open technologies (no notes version)
Building a better web with free, open technologies (no notes version)Building a better web with free, open technologies (no notes version)
Building a better web with free, open technologies (no notes version)

Chris Heilmann gave a presentation about building a better web using open technologies like HTML5. He discussed new HTML5 features such as geolocation, local storage, SVG, Canvas, and video/audio. He provided many examples and resources for learning about and using these new technologies. He encouraged attendees to jump in and use the full capabilities of HTML5 to create the best user experiences and attract talent, while acknowledging there will still be challenges to overcome.

html5css3innovation
Context switching is mentally
exhausting – really!
Chris Heilmann @codepo8
Rethinking tooling…
Prevent us from doing things
wrong instead of patching up
what we created.
Chris Heilmann @codepo8
A more natural approach…
Chris Heilmann @codepo8
LearnDevelop Debug
Holistic developer tools
Lightweight, preconfigured
and open to feedback and
contribution.
Chris Heilmann @codepo8

Recommended for you

The Role of GitOps in IT Strategy - June 2021 - Schlomo Schapiro
The Role of GitOps in IT Strategy - June 2021 - Schlomo SchapiroThe Role of GitOps in IT Strategy - June 2021 - Schlomo Schapiro
The Role of GitOps in IT Strategy - June 2021 - Schlomo Schapiro

See https://www.youtube.com/watch?v=_uDzXmbiUIg for German-language talk to these slides. What is the role of GitOps in IT strategy? This talk gives an overview and puts GitOps into the context of current challenges in IT strategy. Main aspects are continuous delivery, policy as code, automated governance, compliant-by-default work environments, acceptable means of compliance and a comprehensive automation of all development and operations related processes with the goal of true hands-off operations. The result places GitOps as a major building block of any modern IT strategy. GitOps helps building essential key IT capabilities. It creates the motivation to truly “fix the basics” via sustainable solutions to enable creating higher level automation solutions. With GitOps engineers can focus much more on business value and spend less effort on boring IT topics.

gitopsdevopsit strategy
A Brief Guide to IT Project Management
A Brief Guide to IT Project Management A Brief Guide to IT Project Management
A Brief Guide to IT Project Management

This document provides a brief guide to IT project management. It summarizes several studies that found a significant number of IT projects fail due to a lack of proper planning and management. The document outlines best practices for successfully managing an IT project, including having a clear target and timeline, a structured plan, communication with stakeholders, and allowing time for testing.

project managementguidelineconsulting
Culture Hacking — Subversive And Intentional Innovation Capability Building F...
Culture Hacking — Subversive And Intentional Innovation Capability Building F...Culture Hacking — Subversive And Intentional Innovation Capability Building F...
Culture Hacking — Subversive And Intentional Innovation Capability Building F...

My talk from the IRDG Design Thinking Conference 2018: These days design thinking is in high demand with top leadership. But often it’s just the outcomes — the innovation — management wants, less so the organizational change that comes attached with a comprehensive methodology and mindset. Why? The former is ‘sexy’ and brings money, the latter is annoying and might need investment at the outset. So, for many innovators and intrapreneurs the question is: how can we establish a design thinking practice sustainably, even with just ‘lip-service leadership support’? Jan’s talk will look into that topic by showcasing a range of inspiring examples of deliberate and subversive (culture hack) innovation capability building.

cultural transformationculture hackinginnovation
Editor
Chris Heilmann @codepo8
Editor
Chris Heilmann @codepo8
Editor
Chris Heilmann @codepo8
Browser
(Developer Tools)
Editor
Chris Heilmann @codepo8
Browser
(Developer Tools)

Recommended for you

Techniques for Designing with Drupal 8
Techniques for Designing with Drupal 8Techniques for Designing with Drupal 8
Techniques for Designing with Drupal 8

Designing for the web is complicated. Endless screen sizes, high user expectations, and usability challenges offer up some interesting if not impossible challenges for web designers, especially when wrestling with complex functionality delivered by Drupal. Join this detailed discussion on web design and designing Drupal 8 websites. Where to start? So often the creative process begins with a blank page. Does the approach to design change when working with Drupal? Drupal is not a blank slate. As designers and themers, we have to consider structures inherent in all Drupal sites like regions, blocks, displays and views. We’ll look at specific structures found in every Drupal 8 site and discuss approaches to design that leverage the output that Drupal provides. With a rich medium like Drupal to work with processes have to change. We’ll explore how the design process fits into the development process. How we can make the design process more agile and how can we incorporate design into a project. We’ll discuss the difference between theming and design and their role in building out a new Drupal 8 site. Then we’ll talk about managing all this and how the design process fits into a large development project. What are the responsibilities of the designer? What are their deliverables? We’ll propose a standard list of design deliverables and touch upon style guides, wireframes and mood boards. Since creativity is all about invention and inspiration we’ll explore the cutting edge of web design and how future releases of Drupal 8 might shift the way we design websites and how we interact with them.

web designweb developmentproject management
S dwebsite12.18.17
S dwebsite12.18.17S dwebsite12.18.17
S dwebsite12.18.17

This document provides an agenda for a workshop on building your own website with HTML and CSS. The workshop will cover key concepts of HTML and CSS, reviewing starter code, building a site with support, and next steps for continuing to learn. It will be led by instructor Tanner Gill and TA Jasmine Kim from Thinkful, which helps people become developers through mentorship and project-based learning.

Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote

The document discusses concerns about the perception and realities of coding careers. It expresses worry that coding is seen solely as a way to get a job rather than as a means of problem-solving. While coding can provide fulfilling work, the document cautions that the need for coders may decrease with automation and that the role may evolve from coding to engineering. It suggests a future where machines assist with repetitive coding tasks and people focus on delivering maintainable, secure products with attention to privacy and user experience.

weardevs2018machinelearningprogramming
Editor
Chris Heilmann @codepo8
Browser
(Developer Tools)
Docs
(MDN / CanIUse…)
Editor
Chris Heilmann @codepo8
Browser
(Developer Tools)
Docs
(MDN / CanIUse…)
This is powerful and flexible.
Chris Heilmann @codepo8
Problem:
You can’t know everything
Chris Heilmann @codepo8

Recommended for you

Building Stuff for Fun and Profit - confessions from a life in code and cables
Building Stuff for Fun and Profit - confessions from a life in code and cablesBuilding Stuff for Fun and Profit - confessions from a life in code and cables
Building Stuff for Fun and Profit - confessions from a life in code and cables

I love making stuff. I'm so happy that my job allows me to make stuff, and when I'm not at work, I'm making stuff anyway. Some of the stuff I've made has solved real technical and business problems; some of it I've done just to see if I can. In this talk I'll describe some of the valuable things I've built for my employer, IBM, and our clients - I'll also describe some of the ridiculous things I've made for myself.  These are slides for a talk given at BuildStuff Odessa, 2016 (http://www.buildstuff.com.ua/odessa/)

buildstuffiotibm
Working In The Now - Paris Web
Working In The Now - Paris WebWorking In The Now - Paris Web
Working In The Now - Paris Web

My presentation covering several ways how you can use nowaday's free web offers to save money and time for your company and thus securing your job.

cssframeworkscloudcomputinghostedservices
Travailler dans le présent - Chris Heilmann - Paris Web 2008
Travailler dans le présent - Chris Heilmann - Paris Web 2008Travailler dans le présent - Chris Heilmann - Paris Web 2008
Travailler dans le présent - Chris Heilmann - Paris Web 2008

Dans cette présentation, Chris Heilmann nous parlera des problèmes liés à l'adoption de standards du web récents, et décrira des façons de contourner ces difficultés. Un exemple simple est le manque de prise en charge native de l'audio et de la vidéo, et les problèmes des implémentations actuelles. La session illustrera concrètement comment régler des problèmes a priori sans solution en les attaquant sous un autre angle. Il s'agit essentiellement de trouver une façon pragmatique de vendre, implémenter et utiliser les standards plutôt que d'attendre que le marché adopte des technologies dont l'utilisation devrait être d'une évidence complète. Présentation originale : http://www.slideshare.net/cheilmann/working-in-the-now-presentation/

pw2008pw2008
In-context documentation and
linting – learn while you code.
Chris Heilmann @codepo8
Chris Heilmann @codepo8
aka.ms/webhint4code
Chris Heilmann @codepo8
aka.ms/webhint4code
Chris Heilmann @codepo8
aka.ms/webhint4code

Recommended for you

Byowwhc26
Byowwhc26Byowwhc26
Byowwhc26

This document provides an agenda for a workshop on building a website with HTML and CSS. The workshop will cover key concepts of HTML and CSS like tags, attributes, selectors, properties and values. It will demonstrate how to set up a starter project and build a site with support from instructors. Finally, it promotes Thinkful's free coding prep course which provides over 75 hours of curriculum and mentor support to learn HTML, CSS, and JavaScript.

Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity

Our industry has a problem: We are not lacking software methodologies, programming languages, tools or frameworks but we need great software engineers. Great software engineer teams build quality-in and deliver great software on a regular basis. The technical excellence of those engineers will help you escape the "Waterfall sandwich" and make your organization a little more agile, from the inception of an idea till they go live. I will talk about my experiences from the last 15 years, including small software delivery teams until big financial institutions. Why would a company like to be "agile"? How can a company achieve that? How can you achieve Technical Excellence in your software teams? What developer skills are more important than languages, methods or frameworks? This will be an interactive session with a Q&A at the end.

agileagile software developmentsoftware development
Keynote Devops Days Amsterdam - Hacking IT, Culture over Code Bringing Devops...
Keynote Devops Days Amsterdam - Hacking IT, Culture over Code Bringing Devops...Keynote Devops Days Amsterdam - Hacking IT, Culture over Code Bringing Devops...
Keynote Devops Days Amsterdam - Hacking IT, Culture over Code Bringing Devops...

The term DevOps has crossover over from a culture movement around improved IT delivery to a buzzword co-opted by headline minded journalists and companies who want to reinvent their antiquated practices by acquiring new talent. This presentation will talk about DevOps the movement, desired outcomes from DevOps practices and how to bring those practices to your organization especially those with entrenched practices that lack the agility, automation and other benefits of DevOps.

devopsculture
Chris Heilmann @codepo8
aka.ms/webhint4code
Problem:
Context switching is tiring
Chris Heilmann @codepo8
Editing in elements
aka.ms/elements4code
Wild idea:
Open source code is a resource
Chris Heilmann @codepo8

Recommended for you

Creating UI Marketers Won't F*Up
Creating UI Marketers Won't F*UpCreating UI Marketers Won't F*Up
Creating UI Marketers Won't F*Up

Here is a presentation of how creating a great UI system with Hubspot CMS to allow marketers having fun with

inbound marketingpartnerdayinbound18
Tf byowwhc
Tf byowwhcTf byowwhc
Tf byowwhc

This document provides an introduction to coding and web development. It discusses HTML, CSS, and JavaScript, and how to structure them using concepts like the box model. It promotes Thinkful, an online coding bootcamp, and describes their curriculum and mentorship approach. Links are provided to free coding resources and a two-week trial for Thinkful's program. Graduates share their experiences and projects.

Tf byowwhc
Tf byowwhcTf byowwhc
Tf byowwhc

This document provides an introduction to coding and web development. It discusses HTML, CSS, and JavaScript, and how to structure them using concepts like the box model. It promotes Thinkful, an online coding bootcamp, and describes their curriculum and mentorship approach. Links are provided to free coding resources and a two-week trial for Thinkful's program.

Chris Heilmann @codepo8aka.ms/ai-autocomplete
Sorry - I have no easy answers.
Chris Heilmann @codepo8
But I know that an open
mind, open ears and open
source can fix this.
Chris Heilmann @codepo8
Automation is happening
everywhere.
Chris Heilmann @codepo8

Recommended for you

Why Scrum sucks - and what to do about it
Why Scrum sucks - and what to do about itWhy Scrum sucks - and what to do about it
Why Scrum sucks - and what to do about it

- The document discusses why the Scrum framework for agile product development can be problematic. At the product level, issues include not knowing the final product, delivery timeline, or costs. Organizationally, Scrum is meant to transform organizations, not just deliver products, requiring constant change and skilled, motivated people. This leads to loss of headcount and power within organizations. - The document proposes using an "Agile Equator" to balance the needs of agile development practices with more traditional waterfall methods through constant information sharing. This helps fulfill requirements on both sides of the "equator". - In summary, while Scrum aims to be more agile, it can create uncertainty at the product level and require significant

scrumagileagile software development
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege

This document discusses privilege in the context of social media and the internet. It acknowledges privileges like internet access, the ability to communicate, and supportive online communities. It warns that machine learning and algorithms risk creating echo chambers and guided messaging if they are not kept in check by human curation. The document advocates taking back the web for decent, thinking and loving humans and using privileges to help others gain access to learning, communication, and communities.

social mediaprivilege
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynote

This document discusses artificial intelligence and how it can help humans. It covers that AI is not new, having originated in the 1950s, and is now more advanced due to increased computing power. It also discusses how AI utilizes pattern recognition and machine learning. The document then covers several applications of AI including computer vision, natural language processing, sentiment analysis, speech recognition/conversion and moderation. It notes both the benefits of AI in automating tasks and preventing errors, as well as the responsibilities of ensuring transparency and allowing people to opt-in to algorithms.

aidc2018machine learningartificial intelligence
This is a good time to be open
to make it easy to become a
developer.
Chris Heilmann @codepo8
Editor
Chris Heilmann @codepo8
Browser Docs
This is your world to build.
Merci beaucoup!
Chris Heilmann
aka.ms/workwithchris
@codepo8
@edgedevtools
@msedgedev

More Related Content

What's hot

Thinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSThinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSS
TJ Stalcup
 
Tf byows
Tf byowsTf byows
Design is not Subjective
Design is not SubjectiveDesign is not Subjective
Design is not Subjective
Diego Pacheco
 
Tf byow
Tf byowTf byow
Tf byow
Tf byowTf byow
Thinkful DC FrontEnd Crash Course - HTML & CSS
Thinkful DC FrontEnd Crash Course - HTML & CSSThinkful DC FrontEnd Crash Course - HTML & CSS
Thinkful DC FrontEnd Crash Course - HTML & CSS
TJ Stalcup
 
Architecture @ Appknox
Architecture @ AppknoxArchitecture @ Appknox
Architecture @ Appknox
Dhilipsiva DS
 
Building your first WordPress plugin
Building your first WordPress pluginBuilding your first WordPress plugin
Building your first WordPress plugin
Justin Foell
 
Holacracy
HolacracyHolacracy
Holacracy
Diego Pacheco
 
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
Prasid Pathak
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?
Christian Heilmann
 
Code Forensics
Code ForensicsCode Forensics
Code Forensics
Diego Pacheco
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developer
Christian Heilmann
 
Frontend Crash Course
Frontend Crash CourseFrontend Crash Course
Frontend Crash Course
Aaron Lamphere
 
Atag & drupal 8
Atag & drupal 8Atag & drupal 8
Atag & drupal 8
Mike Gifford
 
Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015
Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015
Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015
Jeffrey McGuire
 
WordCamp Barcelona 2015 : From Design to a Theme
WordCamp Barcelona 2015 : From Design to a ThemeWordCamp Barcelona 2015 : From Design to a Theme
WordCamp Barcelona 2015 : From Design to a Theme
Pancho Pérez Salazar
 
HTML5 Jump Start
HTML5 Jump StartHTML5 Jump Start
HTML5 Jump Start
Haim Michael
 
Architecture & Engineering : Doing the non-obvious!
Architecture & Engineering :  Doing the non-obvious!Architecture & Engineering :  Doing the non-obvious!
Architecture & Engineering : Doing the non-obvious!
Diego Pacheco
 
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
Thinkful
 

What's hot (20)

Thinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSThinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSS
 
Tf byows
Tf byowsTf byows
Tf byows
 
Design is not Subjective
Design is not SubjectiveDesign is not Subjective
Design is not Subjective
 
Tf byow
Tf byowTf byow
Tf byow
 
Tf byow
Tf byowTf byow
Tf byow
 
Thinkful DC FrontEnd Crash Course - HTML & CSS
Thinkful DC FrontEnd Crash Course - HTML & CSSThinkful DC FrontEnd Crash Course - HTML & CSS
Thinkful DC FrontEnd Crash Course - HTML & CSS
 
Architecture @ Appknox
Architecture @ AppknoxArchitecture @ Appknox
Architecture @ Appknox
 
Building your first WordPress plugin
Building your first WordPress pluginBuilding your first WordPress plugin
Building your first WordPress plugin
 
Holacracy
HolacracyHolacracy
Holacracy
 
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?
 
Code Forensics
Code ForensicsCode Forensics
Code Forensics
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developer
 
Frontend Crash Course
Frontend Crash CourseFrontend Crash Course
Frontend Crash Course
 
Atag & drupal 8
Atag & drupal 8Atag & drupal 8
Atag & drupal 8
 
Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015
Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015
Drupal 8 as a Drop-In Content Engine - SymfonyLive Berlin 2015
 
WordCamp Barcelona 2015 : From Design to a Theme
WordCamp Barcelona 2015 : From Design to a ThemeWordCamp Barcelona 2015 : From Design to a Theme
WordCamp Barcelona 2015 : From Design to a Theme
 
HTML5 Jump Start
HTML5 Jump StartHTML5 Jump Start
HTML5 Jump Start
 
Architecture & Engineering : Doing the non-obvious!
Architecture & Engineering :  Doing the non-obvious!Architecture & Engineering :  Doing the non-obvious!
Architecture & Engineering : Doing the non-obvious!
 
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-13-66-123-168
 

Similar to Develop, Debug, Learn? - Dotjs2019

Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
Christian Heilmann
 
Feature life cycle
Feature life cycleFeature life cycle
Feature life cycle
Clayton Correia
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
Christian Heilmann
 
Building a better web with free, open technologies (no notes version)
Building a better web with free, open technologies (no notes version)Building a better web with free, open technologies (no notes version)
Building a better web with free, open technologies (no notes version)
Christian Heilmann
 
The Role of GitOps in IT Strategy - June 2021 - Schlomo Schapiro
The Role of GitOps in IT Strategy - June 2021 - Schlomo SchapiroThe Role of GitOps in IT Strategy - June 2021 - Schlomo Schapiro
The Role of GitOps in IT Strategy - June 2021 - Schlomo Schapiro
Schlomo Schapiro
 
A Brief Guide to IT Project Management
A Brief Guide to IT Project Management A Brief Guide to IT Project Management
A Brief Guide to IT Project Management
Habermann Frank
 
Culture Hacking — Subversive And Intentional Innovation Capability Building F...
Culture Hacking — Subversive And Intentional Innovation Capability Building F...Culture Hacking — Subversive And Intentional Innovation Capability Building F...
Culture Hacking — Subversive And Intentional Innovation Capability Building F...
Jan Schmiedgen
 
Techniques for Designing with Drupal 8
Techniques for Designing with Drupal 8Techniques for Designing with Drupal 8
Techniques for Designing with Drupal 8
Snake Hill Web Agency
 
S dwebsite12.18.17
S dwebsite12.18.17S dwebsite12.18.17
S dwebsite12.18.17
Thinkful
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote
Christian Heilmann
 
Building Stuff for Fun and Profit - confessions from a life in code and cables
Building Stuff for Fun and Profit - confessions from a life in code and cablesBuilding Stuff for Fun and Profit - confessions from a life in code and cables
Building Stuff for Fun and Profit - confessions from a life in code and cables
Holly Cummins
 
Working In The Now - Paris Web
Working In The Now - Paris WebWorking In The Now - Paris Web
Working In The Now - Paris Web
Christian Heilmann
 
Travailler dans le présent - Chris Heilmann - Paris Web 2008
Travailler dans le présent - Chris Heilmann - Paris Web 2008Travailler dans le présent - Chris Heilmann - Paris Web 2008
Travailler dans le présent - Chris Heilmann - Paris Web 2008
Association Paris-Web
 
Byowwhc26
Byowwhc26Byowwhc26
Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity
Peter Gfader
 
Keynote Devops Days Amsterdam - Hacking IT, Culture over Code Bringing Devops...
Keynote Devops Days Amsterdam - Hacking IT, Culture over Code Bringing Devops...Keynote Devops Days Amsterdam - Hacking IT, Culture over Code Bringing Devops...
Keynote Devops Days Amsterdam - Hacking IT, Culture over Code Bringing Devops...
Mark Hinkle
 
Creating UI Marketers Won't F*Up
Creating UI Marketers Won't F*UpCreating UI Marketers Won't F*Up
Creating UI Marketers Won't F*Up
LOIC BURDET
 
Tf byowwhc
Tf byowwhcTf byowwhc
Tf byowwhc
Shannon Gallagher
 
Tf byowwhc
Tf byowwhcTf byowwhc
Tf byowwhc
Shannon Gallagher
 
Why Scrum sucks - and what to do about it
Why Scrum sucks - and what to do about itWhy Scrum sucks - and what to do about it
Why Scrum sucks - and what to do about it
DirkLoop
 

Similar to Develop, Debug, Learn? - Dotjs2019 (20)

Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
Feature life cycle
Feature life cycleFeature life cycle
Feature life cycle
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
Building a better web with free, open technologies (no notes version)
Building a better web with free, open technologies (no notes version)Building a better web with free, open technologies (no notes version)
Building a better web with free, open technologies (no notes version)
 
The Role of GitOps in IT Strategy - June 2021 - Schlomo Schapiro
The Role of GitOps in IT Strategy - June 2021 - Schlomo SchapiroThe Role of GitOps in IT Strategy - June 2021 - Schlomo Schapiro
The Role of GitOps in IT Strategy - June 2021 - Schlomo Schapiro
 
A Brief Guide to IT Project Management
A Brief Guide to IT Project Management A Brief Guide to IT Project Management
A Brief Guide to IT Project Management
 
Culture Hacking — Subversive And Intentional Innovation Capability Building F...
Culture Hacking — Subversive And Intentional Innovation Capability Building F...Culture Hacking — Subversive And Intentional Innovation Capability Building F...
Culture Hacking — Subversive And Intentional Innovation Capability Building F...
 
Techniques for Designing with Drupal 8
Techniques for Designing with Drupal 8Techniques for Designing with Drupal 8
Techniques for Designing with Drupal 8
 
S dwebsite12.18.17
S dwebsite12.18.17S dwebsite12.18.17
S dwebsite12.18.17
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote
 
Building Stuff for Fun and Profit - confessions from a life in code and cables
Building Stuff for Fun and Profit - confessions from a life in code and cablesBuilding Stuff for Fun and Profit - confessions from a life in code and cables
Building Stuff for Fun and Profit - confessions from a life in code and cables
 
Working In The Now - Paris Web
Working In The Now - Paris WebWorking In The Now - Paris Web
Working In The Now - Paris Web
 
Travailler dans le présent - Chris Heilmann - Paris Web 2008
Travailler dans le présent - Chris Heilmann - Paris Web 2008Travailler dans le présent - Chris Heilmann - Paris Web 2008
Travailler dans le présent - Chris Heilmann - Paris Web 2008
 
Byowwhc26
Byowwhc26Byowwhc26
Byowwhc26
 
Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity
 
Keynote Devops Days Amsterdam - Hacking IT, Culture over Code Bringing Devops...
Keynote Devops Days Amsterdam - Hacking IT, Culture over Code Bringing Devops...Keynote Devops Days Amsterdam - Hacking IT, Culture over Code Bringing Devops...
Keynote Devops Days Amsterdam - Hacking IT, Culture over Code Bringing Devops...
 
Creating UI Marketers Won't F*Up
Creating UI Marketers Won't F*UpCreating UI Marketers Won't F*Up
Creating UI Marketers Won't F*Up
 
Tf byowwhc
Tf byowwhcTf byowwhc
Tf byowwhc
 
Tf byowwhc
Tf byowwhcTf byowwhc
Tf byowwhc
 
Why Scrum sucks - and what to do about it
Why Scrum sucks - and what to do about itWhy Scrum sucks - and what to do about it
Why Scrum sucks - and what to do about it
 

More from Christian Heilmann

Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
Christian Heilmann
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynote
Christian Heilmann
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays Finland
Christian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
Christian Heilmann
 
Taking the P out of PWA
Taking the P out of PWATaking the P out of PWA
Taking the P out of PWA
Christian Heilmann
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReach
Christian Heilmann
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worlds
Christian Heilmann
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humans
Christian Heilmann
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center
Christian Heilmann
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
Christian Heilmann
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
Christian Heilmann
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)
Christian Heilmann
 
Breaking out of the Tetris mind set #btconf
Breaking out of the Tetris mind set #btconfBreaking out of the Tetris mind set #btconf
Breaking out of the Tetris mind set #btconf
Christian Heilmann
 
Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017
Christian Heilmann
 
Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and Microsoft
Christian Heilmann
 
Supercharging Public Speaking
Supercharging Public SpeakingSupercharging Public Speaking
Supercharging Public Speaking
Christian Heilmann
 
The Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for HumansThe Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for Humans
Christian Heilmann
 
The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017
Christian Heilmann
 
Suit up, bring extra oxygen Internet space explorers needed.
Suit up, bring extra oxygen Internet space explorers needed.Suit up, bring extra oxygen Internet space explorers needed.
Suit up, bring extra oxygen Internet space explorers needed.
Christian Heilmann
 
JavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteJavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynote
Christian Heilmann
 

More from Christian Heilmann (20)

Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynote
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays Finland
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Taking the P out of PWA
Taking the P out of PWATaking the P out of PWA
Taking the P out of PWA
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReach
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worlds
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humans
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)
 
Breaking out of the Tetris mind set #btconf
Breaking out of the Tetris mind set #btconfBreaking out of the Tetris mind set #btconf
Breaking out of the Tetris mind set #btconf
 
Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017
 
Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and Microsoft
 
Supercharging Public Speaking
Supercharging Public SpeakingSupercharging Public Speaking
Supercharging Public Speaking
 
The Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for HumansThe Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for Humans
 
The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017
 
Suit up, bring extra oxygen Internet space explorers needed.
Suit up, bring extra oxygen Internet space explorers needed.Suit up, bring extra oxygen Internet space explorers needed.
Suit up, bring extra oxygen Internet space explorers needed.
 
JavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteJavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynote
 

Recently uploaded

CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 12 - GLOBAL SUCCESS - FORM MỚI 2025 - HK1 (C...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 12 - GLOBAL SUCCESS - FORM MỚI 2025 - HK1 (C...CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 12 - GLOBAL SUCCESS - FORM MỚI 2025 - HK1 (C...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 12 - GLOBAL SUCCESS - FORM MỚI 2025 - HK1 (C...
Nguyen Thanh Tu Collection
 
National Learning Camp( Reading Intervention for grade1)
National Learning Camp( Reading Intervention for grade1)National Learning Camp( Reading Intervention for grade1)
National Learning Camp( Reading Intervention for grade1)
SaadaGrijaldo1
 
How to Configure Time Off Types in Odoo 17
How to Configure Time Off Types in Odoo 17How to Configure Time Off Types in Odoo 17
How to Configure Time Off Types in Odoo 17
Celine George
 
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894
PECB
 
BRIGADA ESKWELA OPENING PROGRAM KICK OFF.pptx
BRIGADA ESKWELA OPENING PROGRAM KICK OFF.pptxBRIGADA ESKWELA OPENING PROGRAM KICK OFF.pptx
BRIGADA ESKWELA OPENING PROGRAM KICK OFF.pptx
kambal1234567890
 
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
siemaillard
 
Howe Writing Center - Orientation Summer 2024
Howe Writing Center - Orientation Summer 2024Howe Writing Center - Orientation Summer 2024
Howe Writing Center - Orientation Summer 2024
Elizabeth Walsh
 
NAEYC Code of Ethical Conduct Resource Book
NAEYC Code of Ethical Conduct Resource BookNAEYC Code of Ethical Conduct Resource Book
NAEYC Code of Ethical Conduct Resource Book
lakitawilson
 
Delegation Inheritance in Odoo 17 and Its Use Cases
Delegation Inheritance in Odoo 17 and Its Use CasesDelegation Inheritance in Odoo 17 and Its Use Cases
Delegation Inheritance in Odoo 17 and Its Use Cases
Celine George
 
NLC Grade 3.................................... ppt.pptx
NLC Grade 3.................................... ppt.pptxNLC Grade 3.................................... ppt.pptx
NLC Grade 3.................................... ppt.pptx
MichelleDeLaCruz93
 
Understanding and Interpreting Teachers’ TPACK for Teaching Multimodalities i...
Understanding and Interpreting Teachers’ TPACK for Teaching Multimodalities i...Understanding and Interpreting Teachers’ TPACK for Teaching Multimodalities i...
Understanding and Interpreting Teachers’ TPACK for Teaching Multimodalities i...
Neny Isharyanti
 
No, it's not a robot: prompt writing for investigative journalism
No, it's not a robot: prompt writing for investigative journalismNo, it's not a robot: prompt writing for investigative journalism
No, it's not a robot: prompt writing for investigative journalism
Paul Bradshaw
 
Is Email Marketing Really Effective In 2024?
Is Email Marketing Really Effective In 2024?Is Email Marketing Really Effective In 2024?
Is Email Marketing Really Effective In 2024?
Rakesh Jalan
 
How to Handle the Separate Discount Account on Invoice in Odoo 17
How to Handle the Separate Discount Account on Invoice in Odoo 17How to Handle the Separate Discount Account on Invoice in Odoo 17
How to Handle the Separate Discount Account on Invoice in Odoo 17
Celine George
 
How to Show Sample Data in Tree and Kanban View in Odoo 17
How to Show Sample Data in Tree and Kanban View in Odoo 17How to Show Sample Data in Tree and Kanban View in Odoo 17
How to Show Sample Data in Tree and Kanban View in Odoo 17
Celine George
 
ENGLISH-7-CURRICULUM MAP- MATATAG CURRICULUM
ENGLISH-7-CURRICULUM MAP- MATATAG CURRICULUMENGLISH-7-CURRICULUM MAP- MATATAG CURRICULUM
ENGLISH-7-CURRICULUM MAP- MATATAG CURRICULUM
HappieMontevirgenCas
 
DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...
DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...
DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...
thanhluan21
 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
marianell3076
 
How to Install Theme in the Odoo 17 ERP
How to  Install Theme in the Odoo 17 ERPHow to  Install Theme in the Odoo 17 ERP
How to Install Theme in the Odoo 17 ERP
Celine George
 

Recently uploaded (20)

CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 12 - GLOBAL SUCCESS - FORM MỚI 2025 - HK1 (C...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 12 - GLOBAL SUCCESS - FORM MỚI 2025 - HK1 (C...CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 12 - GLOBAL SUCCESS - FORM MỚI 2025 - HK1 (C...
CHUYÊN ĐỀ DẠY THÊM TIẾNG ANH LỚP 12 - GLOBAL SUCCESS - FORM MỚI 2025 - HK1 (C...
 
National Learning Camp( Reading Intervention for grade1)
National Learning Camp( Reading Intervention for grade1)National Learning Camp( Reading Intervention for grade1)
National Learning Camp( Reading Intervention for grade1)
 
How to Configure Time Off Types in Odoo 17
How to Configure Time Off Types in Odoo 17How to Configure Time Off Types in Odoo 17
How to Configure Time Off Types in Odoo 17
 
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894
 
BRIGADA ESKWELA OPENING PROGRAM KICK OFF.pptx
BRIGADA ESKWELA OPENING PROGRAM KICK OFF.pptxBRIGADA ESKWELA OPENING PROGRAM KICK OFF.pptx
BRIGADA ESKWELA OPENING PROGRAM KICK OFF.pptx
 
“A NOSSA CA(U)SA”. .
“A NOSSA CA(U)SA”.                      .“A NOSSA CA(U)SA”.                      .
“A NOSSA CA(U)SA”. .
 
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
 
Howe Writing Center - Orientation Summer 2024
Howe Writing Center - Orientation Summer 2024Howe Writing Center - Orientation Summer 2024
Howe Writing Center - Orientation Summer 2024
 
NAEYC Code of Ethical Conduct Resource Book
NAEYC Code of Ethical Conduct Resource BookNAEYC Code of Ethical Conduct Resource Book
NAEYC Code of Ethical Conduct Resource Book
 
Delegation Inheritance in Odoo 17 and Its Use Cases
Delegation Inheritance in Odoo 17 and Its Use CasesDelegation Inheritance in Odoo 17 and Its Use Cases
Delegation Inheritance in Odoo 17 and Its Use Cases
 
NLC Grade 3.................................... ppt.pptx
NLC Grade 3.................................... ppt.pptxNLC Grade 3.................................... ppt.pptx
NLC Grade 3.................................... ppt.pptx
 
Understanding and Interpreting Teachers’ TPACK for Teaching Multimodalities i...
Understanding and Interpreting Teachers’ TPACK for Teaching Multimodalities i...Understanding and Interpreting Teachers’ TPACK for Teaching Multimodalities i...
Understanding and Interpreting Teachers’ TPACK for Teaching Multimodalities i...
 
No, it's not a robot: prompt writing for investigative journalism
No, it's not a robot: prompt writing for investigative journalismNo, it's not a robot: prompt writing for investigative journalism
No, it's not a robot: prompt writing for investigative journalism
 
Is Email Marketing Really Effective In 2024?
Is Email Marketing Really Effective In 2024?Is Email Marketing Really Effective In 2024?
Is Email Marketing Really Effective In 2024?
 
How to Handle the Separate Discount Account on Invoice in Odoo 17
How to Handle the Separate Discount Account on Invoice in Odoo 17How to Handle the Separate Discount Account on Invoice in Odoo 17
How to Handle the Separate Discount Account on Invoice in Odoo 17
 
How to Show Sample Data in Tree and Kanban View in Odoo 17
How to Show Sample Data in Tree and Kanban View in Odoo 17How to Show Sample Data in Tree and Kanban View in Odoo 17
How to Show Sample Data in Tree and Kanban View in Odoo 17
 
ENGLISH-7-CURRICULUM MAP- MATATAG CURRICULUM
ENGLISH-7-CURRICULUM MAP- MATATAG CURRICULUMENGLISH-7-CURRICULUM MAP- MATATAG CURRICULUM
ENGLISH-7-CURRICULUM MAP- MATATAG CURRICULUM
 
DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...
DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...
DANH SÁCH THÍ SINH XÉT TUYỂN SỚM ĐỦ ĐIỀU KIỆN TRÚNG TUYỂN ĐẠI HỌC CHÍNH QUY N...
 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
How to Install Theme in the Odoo 17 ERP
How to  Install Theme in the Odoo 17 ERPHow to  Install Theme in the Odoo 17 ERP
How to Install Theme in the Odoo 17 ERP
 

Develop, Debug, Learn? - Dotjs2019

Editor's Notes

  1. We obsess about coding, creating automated workflows and optimising. And yet our final products aren't making it easy for people to use them. Somewhere, we lost empathy for our end users and other developers. Maybe it is time to change that. Here are some ideas.
  2. I’ve been doing web development for a long time. Over 20 years. When I started it was literally all fields. Interaction in web sites meant that we needed to send forms and deal with the logic on the backend.
  3. When JavaScript came around all that changed. It enabled us to build interfaces with much higher fidelity, but that seemed not to be enough. We wanted to distinguish ourselves as something better than web developers. – a term belittled by “real programmers” back then.
  4. We coined a lot of clever technology terms like DHTML and AJAX and touted them as "de facto standards". We also called anyone not professional for not embracing them. Over the years we kept going in circles. We kept over-relying on JavaScript and proprietary technologies. And then we told people not to do that.
  5. Being a web developer in the past was interesting. You had to learn about the platform. But there was also a different side to it. As the platform was not standardised there was a lot of trial and error and hacking around inadequate tech support. You had to know how HTML and browsers work to get started.
  6. WYSIWYG editors didn't result in usable web sites. It was a competitive advantage to know about browser bugs and how to work around them. Was this a professional work environment? Questionable, but it was a creative one. We developed a lot of best practices and named – for example – a lot of CSS tricks to create different designs in pretty inept browsers.
  7. It all kind of kicked off and we learned a lot more about our job when debugging tools got better. It started with Firebug and continued into in-browser developer tools and dedicated IDEs for web work. We got insights not only that things went wrong, but also why they did. We also got visual tools to tweak settings and see what it takes to make a CSS layout work.
  8. The differences in browsers in the past was a hindrance to quick development. That's why we built libraries and frameworks to take that workload off developers.
  9. When this resulted in bloated and slow products, we created build processes to automate a lot of the work. We wrote more code to undo unnecessary code and untangle complex dependencies. This is natural for developers to do – we want to automate boring and repetitive tasks. But doesn't it feel a bit over-engineered? What if we didn't add too much code to start with?
  10. These days things are different. We say we develop a lot, but we do something else much more.
  11. We depend on third party products to develop our products. This is OK, as most dependencies are open source and shared with a community, but it also means there is an overhead. Maintainers and new people coming into the market get split into several communitities. They need to learn the abstraction and the platform and often our end users get much more code sent to their devices than necessary.
  12. Our debugging tools are incredible these days. But they often fail to help us when the problem is the abstraction code we rely on to make it easier for us as developers.
  13. We get excited about the dependencies. We keep losing sight on how the platform itself is developing. A plaftorm that has never been in a better state and many abstractions are not as useful as we think they are.
  14. We seem to be caught up in our own excitement of doing things new and different rather than embracing what matured quite nicely over the years.
  15. Maybe it is time to feel some more humbleness and realise that our job as developers is not to make it easy for us but to build products for people - all kinds of people. With bad connections, unreliable hardware and disabilities of all shades.
  16. The products we build now are our legacy. We will be measured by how useful our products were, how inviting and how easy it was for the next generation of maintainers to take over from us. If we want people to remember us fondly, we need to build products for people. We need to consider the effects our products have on their lives and keep them safe from harm. Harm that may be based on our arrogance or an over-reliance on third party dependencies.
  17. In order for our products to deliver what people need they must be available in less capable and unreliable environments. They must be accessible to people of all kind of levels of physical and mentally ability. They must be secure and not allow our users to shoot themselves in the foot. And they need to be mutable to the needs of the end users. This means support for assistive technology and also to things like high contrast mode or reduced interaction mode.
  18. Once we covered the basics we should add more nice-to-haves. These include enhanced performance by preloading next content. Extended availability with offline-first architectures. And customisability to the wants and not only the needs of our users.
  19. Another "want" of our end users is making full use of the platform in a safe manner. Like allowing for biometric logins on on-device payment solutions. They have these devices, they know how to use them. So why do we force another interaction flow on them? We should build interfaces that allows people to make mistakes and not throw them back at them. A telephone number with parenthesis and spaces is not a hard thing to parse in our code. Why ask people to write it in a certain way or get stuck? Using natural language processing we can allow users to enter human search queries. Let's not force them to click through complex interfaces to get a search result.
  20. Making end users happy is by far the most important part of our work. However, developers are people, too. And demanding from them to know everything is not sensible.
  21. People expect far too much of developers. As what we create affects the end user and everyone else in between in the process of delivery a lot of best practices assume that we have infinite time and wisdom to do everything right. And that doesn’t even include the pressure we put on one another. You encounter a lot of non-sense demands what constitutes a “professional developer” spanning from knowing different platforms by heart and understanding how every single new and hot abstraction works.
  22. A lot of our work as developers is having faith in third party products. Frameworks, NPM packages and services is what we trust to make us more effective. These help us create more in a shorter amount of time and often we rely in them to help us with the important parts. The problem is that historically these tools don’t create accessible, secure and maintainable products. They are built for speed and convenience, not with a user centric approach in mind.
  23. Currently if feels like we are missing out on a lot of opportunities. Developers don’t keep up with the one thing they can not demand their end users to change – the web platform. Instead we use and learn about abstractions that promise an easier way to develop. This is understandable, but often based on prejudices of more seasoned developers still suffering from bad memories of the web of old. Abstractions are a great way to build a lot in a short amount of time and – to developers – easy to maintain products. However, this is a problem when the abstractions themselves become a roadblock.
  24. The other day someone asked me to help them with a project and take a look at a single web document. Nothing fancy, one document with a bit of text and some design. No interaction, no special ”app” needs. I looked at the page and I found a typo. Normally I'd write a report of what could be done better. But I thought I’d be a good web citizen and go to GitHub, fork the project and do the changes myself adding comments why I did so. I also thought it a sensible thing to run the project locally to see the changes. As it turns out, the project used not markdown or HTML, but a templating engine. Building the project locally meant downloading 150 MB of dependencies. It then failed because I tried it in my Linux shell on my Windows machine. Some of the dependencies flat out expected a Mac without any information about that. In the end, I fixed the typos directly on GitHub using the raw view. I encountered some waste of time and effort and I am OK with that. However, now imagine me being a person that just wants to help out an open source project. A non-affluent person on low-level hardware on an unreliable or expensive connection on the web. Not using the web interface of GitHub would mean I am blocked and I paid the price of downloading 150MB for it. We should be better than this. There are lots of articles on how to make our products perform well for end users. But what about the technical, cognitive and monetary efforts we expect from contributors? Shouldn’t it be easy for anyone to participate rather than just those with the fastest computers and the best connections?
  25. It is extraordinary to see what’s going wrong at the moment. We have users of the web who get incredible browsers. Our apps and sites have functionality that in the past was only available in apps that came on DVDs. Yet users complain about browser updates as too much work. There is also a general feeling that native apps feel more convenient and secure. The web has a bad reputation as a wild west playground. We have developers who have great tooling and get lost in looking for the next big thing. They have no time to keep up with what’s happening. Instead there is a feeling of repetitive complaints about problems of the past. And citing these as a reason for the lack of quality when it comes to delivering great products. Far too often you hear the “but browser X doesn’t support it” argument. Most of the time browser X is an outdated version not used by anyone in the audience of the product at hand. Newcomers to the web find the stack exciting enough. They don’t put much effort into learning it though. Which is no surprise. The people they look up to don't mention its benefits. Instead they praise libraries, frameworks and already built components as the best way to start. It is not the fault of the technology or the platform. It is our lack of focus and a general "clever laziness" they may have gone too far.
  26. As a whole, we’ve become a group of full stackoverflow developers. Instead of learning how things work, we apply them and hope for the best. When something goes wrong, we go to help channels like Slack, Twitter or Stackoverflow and we ask for a fix. The speed and voting nature of these platforms favour the quick and results-oriented over the explanatory. In other words, people explaining why something doesn't work and that it may even be a bad idea get downvoted. Those who give you a “copy and paste this and all will be fine” get celebrated as effective and great developers. The learning aspect is not what we want to have – we only want an answer that works.
  27. Many things are to blame for this state of affairs. Maybe you don’t even see it as an issue. There is no denying though that we could be better. We should be a serious as a part of the job market and not a place where money is burnt. We need to become more inclusive if we want to keep growing both in size and impact. We have to find a way to make this less of a competitive rat race. I'd love the world to see software development as a place where people of all kind of backgrounds can grow in. And you grow most by learning. So let‘s take a look at where we use up a lot of our energy and what we could do about it.
  28. When you open developer tools in browsers you get a huge amount of options. I am pretty sure the design and marketing department woud not be happy if this were a commercial product. It is overwhelming to get this as a first experience. This is not a personal feeling. When you look at the usages stats of in-browser tooling 2-3 tools are always. All the others are only looked at on a need basis and even then only be a small group of experts. Yet we added them all and made them immediately accessible. It is the proverbial kitchen sink. It stops people from embracing advanced debugging on the web. Want proof? Ask people how often they use breakpoint debugging. Most of us still prefer a - much less superior - console.log().
  29. We work in several contexts and keep switching them, which is bad enough. But instead of wondering how to fix this we celebrate it. We love to talk about and tweak our editors. We fight what is the best browser. We all have a pet resource to look up information. The most baffling of all is that we see the terminal still as the most professional of all environments. Knowing about all these tools is a full-time job in itself. Jumping from one to another is a cognitive overhead we keep underestimating. We edit a file, we jump to the browser and its developer tools to see if it worked and tweak it if needed. We fail to see why it doesn’t and we go to some documentation to find out. Once we fixed the problem we go to the terminal to do our version control and publication. This is exhausting and feels unoptimized.
  30. Let's rethink our tooling. We switch from one context to another to find out what went wrong. We also switch to move along on the delivery process. Wouldn’t it be better if our tools prevented us from doing things wrong in the first place?
  31. What if we embedded the learning part into the other parts of the process? Tools should tell us what is going wrong and why it is wrong. Not only flagging up that there is something that needs fixing.
  32. We should consider a more holistic approach to developer tools. Instead of a steep learning curve the tools should come with sensible presets. Instead of giving us the kitchen sink they should offer contextual functionality. We have these opportunities. Development tools these days aren’t black boxes we pay for. Most are open source and encourage contribution or at the very least feedback.
  33. Editors aren’t huge, monolithic IDEs any longer that need a beefy computer to run on.
  34. A lot of excellent editors are web based and can either run in a browser or on the computer inside an Electron shell. This means that you can hack around on the editor. Visual Studio Code, for example, is written in TypeScript. Extensions to it use a heavily documented API to build interfaces. More importantly, it also means that you can install an editor on your server and run it for your users. That means they don't need to install anything on their machines. They can open it in their browsers and start coding or tweak settings. This also allows you to preconfigure the editor on the server. Contributors can use abstractions like TypeScript or Sass without having to install them. Online editors like JSBin, Codepen, Stackblitz, Codesandbox all do this and are a big success. They don’t only allow people to code, but also to collaborate on code and try things out without much overhead.
  35. Browsers aren’t unknown entities created by only godlike developers either. The most used ones are based on open source projects that invite and allow contribution. The same applies to developer tools inside them. You can write extensions for developer tools in case there is something you are missing. For browser makers extensions are a great opportunity to try out new functionality.
  36. Most browsers can also be remote controlled. This means you can automate a lot of the processes historically done by hand by testers or end users. Headless browsers allow you to open a URL, render the page, create an image of it and compare it to others. This is an excellent way to automate testing of your products. In other words, you have remote access to the browser and its inner workings. And you can also use parts of the browser in other products instead of having to re-invent them.
  37. Documentation of web standards and browser functionality is also open these days. In the past each browser maker controlled and duplicated these efforts. These days, the Mozilla Web Docs have become a place where every big player of the web contributes. As it is an open wiki it also is easy to keep up to date. “Can I use” is another excellent resource. It gives you up-to-date information on browser support of certain features.
  38. Both these resources are not just products on the web. They come with APIs to get the content and use it in other products.
  39. The open nature of tools these days allows us to be flexible in how to get developers to learn their trade.
  40. Word and other text editors put red squiggly lines under spelling mistakes. Code editors like Visual Studio Code using information from Mozilla Web Docs can do the same. The above screenshot is the webhint extension running inside the editor. Some elements have squiggly lines under them, meaning something is wrong.
  41. For example, the extension flags up that a button element is exactly what it says. What you might not know though is that to make it work across browsers, you also need to give it a type attribute of "button". This is where "webhint":https://webhint.io complains. Now you know, you probably won't forget to add the type next time.
  42. Webhint also knows about cross browser compatibility problems, like the output element not being supported by older versions of Internet Explorer.
  43. The validation works live while you are typing. For example, an image without an alternative isn’t accessible, which means that when you close the img tag without adding at least an empty alt attribute, you get a squiggly line.
  44. As both Visual Studio Code and Edge are based on Chromium, we can do something about this. Imagine you write some Sass, and switch over to the browser to see if the outcome works. You tweak some settings in the visual tools until the problems are fixed and then go back to the editor. That's where it gets tricky. You fixed the generated CSS but you still have to find out which Sass generated that. Using the the "Elements for VS Code":https://aka.ms/elements4code extension, you can embed the developer tools of the browser directly in the editor. The editor fires up an instance of the browser and hides it in the background. That way you can use both the editor and the visual tools in the same context.
  45. Now we looked at a way to get documentation and best practices into editors. We also found ways to fix content switching even more by adding browser tools to editors. But what about the problem of the full stackoverflow approach? There seems to be no way to stop people from randomly copying and pasting code that works without considering the consequences. It is just too easy and rewarding to do.
  46. If copying and pasting code is a thing people do, why should people do it? Computers are much better at analysing the performance of code and finding patterns. What you can see in this screencast is an experimental feature of Visual Studio Online called  AI-assisted IntelliSense. What it does is use a machine learning model that has been trained on the most successful open source projects on GitHub that did similar tasks to what you’re creating. It then gives you the most likely results from that as an autocomplete option in the editor. In essence, this is copy and paste with a lot more computing smarts.