SlideShare a Scribd company logo
Building the modern web
Rachel Andrew, Montreal Girl Geeks, February 2016
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
Dancers do not need to use
computers
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
The web gave me a
community
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
“Knowing HTML” was a
marketable skill
Rachel Andrew, Montreal Girl Geeks
Learning something one
day - teaching it to
someone else the next
Rachel Andrew, Montreal Girl Geeks
The web gave me a new
career.
Rachel Andrew, Montreal Girl Geeks
The web was accessible, and had
a culture of sharing knowledge.
Rachel Andrew, Montreal Girl Geeks
Font tags and nested tables
Rachel Andrew, Montreal Girl Geeks
<script type="text/javascript">
<!--
function MM_reloadPage(init) {
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
Rachel Andrew, Montreal Girl Geeks
The “Netscape Resize Fix”
If the user resized their browser window positioned
elements lost their positioning values.
The “fix” was to reload the browser window on resize.
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
… basic support of existing W3C
standards has been sacrificed in
the name of such innovation,
needlessly fragmenting the Web
and helping no one.
— http://archive.webstandards.org/mission.html
Rachel Andrew, Montreal Girl Geeks
Our goal is to support these core
standards and encourage browser
makers to do the same, thereby
ensuring simple, affordable
access to Web technologies for
all.
— http://archive.webstandards.org/mission.html
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
Encouraging designers to
care about web standards
Rachel Andrew, Montreal Girl Geeks
The IE6 years
Rachel Andrew, Montreal Girl Geeks
Front-end developer 2005?
Browser bugs expert
Rachel Andrew, Montreal Girl Geeks
Thanks to the hard work of
countless WaSP members and
supporters (like you), Tim
Berners-Lee’s vision of the web as
an open, accessible, and universal
community is largely the reality.
— http://www.webstandards.org/2013/03/01/our-work-
here-is-done/
Rachel Andrew, Montreal Girl Geeks
Browser vendors are
implementing standard
things in a standard way
Rachel Andrew, Montreal Girl Geeks
Innovation happens
through the standards
process
Rachel Andrew, Montreal Girl Geeks
Show stopping browser
bugs when doing
straightforward things in
modern browsers are rare
Rachel Andrew, Montreal Girl Geeks
Is it all easy now?
Rachel Andrew, Montreal Girl Geeks
Studies show that a todo list is
the most complex JavaScript app
you can create before a newer,
better framework is invented.
— http://www.allenpike.com/2015/javascript-
framework-fatigue/
Rachel Andrew, Montreal Girl Geeks
We’re creating complexity
Hiding the simple languages of
the web behind tooling and
process
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
<div class="header">
<h1>My website</h1>
<div class="nav">
</div>
</div>
<div class="article"></div>
<div class="sidebar"></div>
<div class="footer"></div>
Rachel Andrew, Montreal Girl Geeks
<header>
<h1>My website</h1>
<nav>
</nav>
</header>
<article></article>
<aside></aside>
<footer></footer>
Rachel Andrew, Montreal Girl Geeks
Web Video Text Tracks Format (WebVTT)
WEBVTT
1
00:00:22.230 --> 00:00:24.606
This is the first subtitle.
2
00:00:30.739 --> 00:00:34.074
This is the second.
3
00:00:34.159 --> 00:00:35.743
Third
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
Time-dimensional pseudo-classes
:current
:past
:future
:current(p, li, dt, dd) {
background: yellow;
}
:past(p, li, dt, dd) {
background: transparent;
color: #999999;
}
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
CSS Grid Layout
<div class="wrapper">
<header class="header">Header</header>
<aside class="sidebar">Sidebar</aside>
<article class="content">Content</article>
</div>
Rachel Andrew, Montreal Girl Geeks
.sidebar {
grid-area: sidebar;
}
.content {
grid-area: content;
}
.header {
grid-area: header;
}
.wrapper {
display: grid;
grid-template-columns:
120px 10px 120px 10px 120px;
grid-template-rows: auto;
grid-template-areas:
"header header header header header"
"sidebar . content content content";
}
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
“I’ll take a look if you create a
Sass Mixin …”
— via my inbox
Rachel Andrew, Montreal Girl Geeks
Emerging specifications
like Grid remove the need
for a lot of the
preprocessing
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
.ag1 {
@include span(2 of 10);
}
.ag2 {
@include span(6 of 10);
@include clearfix;
}
.ag3 {
@include span(2 of 10 last);
}
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
/* declare a grid and set up a 10 column grid with gutters */
.container {
width: 90%;
margin: 0 auto 0 auto;
display: grid;
grid-template-columns: [col] 4.25fr repeat(9, [gutter] 1fr [col] 4.25fr ) [gutter];
grid-template-rows: auto repeat(5, 100px);
}
/* boxes positioned like so */
/* heading in row 1 full width */
h1 {
grid-column: col / span col 10;
grid-row: 1 / 2;
}
/* left hand sidebar */
.ag1 {
grid-column: col / span gutter 2;
grid-row: 2 / 3;
}
Rachel Andrew, Montreal Girl Geeks
We should be all over a spec
like grid. This is the
future.
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
By leaning on frameworks,
are we masking the issues?
Rachel Andrew, Montreal Girl Geeks
Only by working with the
specifications can we be
part of improving them
Rachel Andrew, Montreal Girl Geeks
Sheer frustration drove
much of the Web Standards
movement
Rachel Andrew, Montreal Girl Geeks
My fear is that our reliance
on frameworks will stop us
pushing for better solutions
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
There are always
compromises. They
shouldn’t be the same for
every project.
Rachel Andrew, Montreal Girl Geeks
Standardising on tools
should not be at the
expense of learning HTML,
CSS and JavaScript
Rachel Andrew, Montreal Girl Geeks
Use your tools and
frameworks lightly
Rachel Andrew, Montreal Girl Geeks
Be ready to put them aside
when they don’t suit a
project
Rachel Andrew, Montreal Girl Geeks
Don’t become an expert in
one brand of hammer.
Become a master carpenter.
Rachel Andrew, Montreal Girl Geeks
Develop timeless skills
Rachel Andrew, Montreal Girl Geeks
It is HTML, CSS, JavaScript
How you get there is just
process.
Rachel Andrew, Montreal Girl Geeks
The “space junk” of the web
Rachel Andrew, Montreal Girl Geeks
Will we be still using
frameworks to abstract
away layout hacks, long
after there is any need for
the hacks?
Rachel Andrew, Montreal Girl Geeks
Best practices can become anti-patterns
HTTP/2 will see many of our best practices become bad
practices.
— Image Sprites
— Domain Sharding
— Concatenating CSS and JavaScript
https://www.smashingmagazine.com/2016/02/getting-
ready-for-http2/
Rachel Andrew, Montreal Girl Geeks
Whose time are we saving?
Rachel Andrew, Montreal Girl Geeks
We write code once.
It runs 100s of 1000s of times in
the browsers of our visitors.
Rachel Andrew, Montreal Girl Geeks
“When I look around, I see our community spending a
lot of time coming up with new tools and techniques to
make our jobs easier. To ship faster. And it’s not that
I’m against efficiency, but I think we need to consider
the implications of our decisions. And if one of those
implications is making our users suffer—or potentially
suffer—in order to make our lives easier, I think we need
to consider their needs above our own.”
— http://aaron-gustafson.com/notebook/who-should-
pay/
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
The myth of temporary
Rachel Andrew, Montreal Girl Geeks
The web is inherently
accessible. We choose to
protect that, or to break it.
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
I believe progressive
enhancement is still the
best approach we have
Rachel Andrew, Montreal Girl Geeks
“a robust site or application in the
more traditional sense minimises
its dependencies. The minimum
dependency for a web site should
be an internet connection and the
ability to parse HTML.”
— http://www.bbc.co.uk/guidelines/futuremedia/
accessibility/html/progressive-enhancement.shtml
Rachel Andrew, Montreal Girl Geeks
Start with the core
experience
Rachel Andrew, Montreal Girl Geeks
What is the minimum that I
need to ship?
How can I ensure as I iterate I
protect the core experience for
everyone?
Rachel Andrew, Montreal Girl Geeks
We Ship. We Iterate.
Rachel Andrew, Montreal Girl Geeks
How should we integrate
third party code?
Rachel Andrew, Montreal Girl Geeks
Not Invented Here
Rachel Andrew, Montreal Girl Geeks
“Are you afraid to write code? Does the
thought linger in your brain that
somewhere out there somebody has already
done this? Do you find yourself trapped in
an analysis cycle where nothing is getting
done? Is your product mutating to
accommodate third party components? If
yes, then perhaps you are suffering from
invented-here syndrome.”
— http://mortoray.com/2015/02/25/invented-here-syndrome/
Rachel Andrew, Montreal Girl Geeks
Avoid turning shortcuts and
third party code into
dependencies
Rachel Andrew, Montreal Girl Geeks
Dependency Inversion
Rachel Andrew, Montreal Girl Geeks
“High level modules should not depend upon low-
level modules. Both should depend upon
abstractions.
Abstractions should never depend upon details. Details
should depend upon abstractions.”
— http://www.objectmentor.com/resources/articles/
dip.pdf
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
Progressively enhanced UI
— JavaScript implementation based on the regular
HTML5 Video element
— Static maps that become draggable and zoomable -
avoiding creating a dependency on one maps
provider or library
— Ordering items via a form input - that become drag
and drop if the user has JavaScript
Rachel Andrew, Montreal Girl Geeks
You can’t do everything
You can do something
Rachel Andrew, Montreal Girl Geeks
“A 100% pure progressively-enhanced
website may not be practical on every
single project you will ever encounter.
While that sort of purity can exist, it’s
unlikely in many business scenarios.
Budgets, timelines: these things exist.
Progressive enhancement isn’t a zero sum
game; it’s a continuum, just like the Web.”
— http://sixtwothree.org/posts/the-practical-case-for-progressive-
enhancement
Rachel Andrew, Montreal Girl Geeks
If your site doesn’t load who
misses out? What do they lose?
Rachel Andrew, Montreal Girl Geeks
Giving back
Rachel Andrew, Montreal Girl Geeks
Where does our next
generation of web
professionals come from?
Rachel Andrew, Montreal Girl Geeks
If you have been doing this
for a year, there is someone
6 months in who you are
ideally placed to help.
Rachel Andrew, Montreal Girl Geeks
You will learn by teaching
Rachel Andrew, Montreal Girl Geeks
Contribute to the standards
that make up the web
Rachel Andrew, Montreal Girl Geeks
What do authors think?
Rachel Andrew, Montreal Girl Geeks
Learn how the modern
standards process works
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
If authors do not offer feedback,
the final specification will reflect
our needs as understood by
people who do not build
websites.
Rachel Andrew, Montreal Girl Geeks
To make an impact on a specification you need to do so
while it is still a draft
There is no point complaining about something that is
finished. You have your chance to make your case
during the open standards process.
Rachel Andrew, Montreal Girl Geeks
Grid Layout and “gutters”
Rachel Andrew, Montreal Girl Geeks
.wrapper {
display: grid;
grid-template-columns:
120px 10px 120px 10px 120px;
grid-template-rows: auto;
grid-template-areas:
"header header header header header"
"sidebar . content content content";
}
Rachel Andrew, Montreal Girl Geeks
.wrapper {
display: grid;
grid-template-columns:
repeat(11, [col] 4fr [gutter] 3.5fr ) [col] 4fr [gutter];
grid-template-rows:
auto repeat(4, [row] auto [gutter] 15px);
}
Rachel Andrew, Montreal Girl Geeks
I believed the grid needed
column and row gaps much like
multi-column layout has the
column-gap property
Rachel Andrew, Montreal Girl Geeks
.wrapper {
display: grid;
grid-template-columns:
repeat(11, [col] 4fr [gutter] 3.5fr ) [col] 4fr [gutter];
grid-template-rows:
auto repeat(4, [row] auto [gutter] 15px);
}
Rachel Andrew, Montreal Girl Geeks
.wrapper {
display: grid;
grid-column-gap: 1em;
grid-row-gap: 1em;
grid-template-columns: repeat(12, [col] 4fr );
grid-template-rows: auto;
}
Rachel Andrew, Montreal Girl Geeks
Solving the gutter problem
— https://rachelandrew.co.uk/archives/2015/06/19/css-
grid-layout-solving-the-gutter-problem/
— Post to the CSS WG list about the issue
Rachel Andrew, Montreal Girl Geeks
Put together use cases.
Show issues clearly.
Rachel Andrew, Montreal Girl Geeks
Look for the issues already listed in draft specifications
Rachel Andrew, Montreal Girl Geeks
I am hopeful that
contributing to standards is
going to get easier
Rachel Andrew, Montreal Girl Geeks
The CSS Working Group
may move to GitHub for
issues in 2016
Rachel Andrew, Montreal Girl Geeks
The Web Incubator Community Group
— https://www.w3.org/community/wicg/
Rachel Andrew, Montreal Girl Geeks
“Their goal is to take the lessons
learned during the RICG’s
responsive images slog and adapt
web standards to match.”
— https://www.w3.org/community/respimg/2015/07/09/
wicg/
Rachel Andrew, Montreal Girl Geeks
The Specification Forum
http://discourse.wicg.io/
Rachel Andrew, Montreal Girl Geeks
Keep an eye on CSS Houdini
A task force working on drafts that seek to explain and
expose different parts of CSS. This should ultimately
make it easier to polyfill, innovate, experiment and
create entire new features.
— https://wiki.css-houdini.org/
— https://dev.opera.com/articles/houdini/
Rachel Andrew, Montreal Girl Geeks
Browsers vendors and the CSS WG alike are looking for
“signals” from authors
— are people talking about this spec?
— are they writing about it, speaking at conferences?
— are they directly requesting the features?
Rachel Andrew, Montreal Girl Geeks
Rachel Andrew, Montreal Girl Geeks
Make a noise so that
browser vendors hear what
we want implemented
Rachel Andrew, Montreal Girl Geeks
Adopt an emerging
specification!
Rachel Andrew, Montreal Girl Geeks
Some final thoughts
Rachel Andrew, Montreal Girl Geeks
Things are changing fast.
Solid understanding of core
web technologies has
proved timeless.
Rachel Andrew, Montreal Girl Geeks
Ensuring maximum
accessibility should be at
the heart of all you do.
Rachel Andrew, Montreal Girl Geeks
Find ways to contribute
Your voice & the voice of the
people you build sites for is
important.
Rachel Andrew, Montreal Girl Geeks
Thank you.
@rachelandrew
Rachel Andrew, Montreal Girl Geeks

More Related Content

What's hot

ChatGPT in Education
ChatGPT in EducationChatGPT in Education
ChatGPT in Education
Victor del Rosal
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
Natasha Murashev
 
+100 Prompts to Create Content with ChatGPT
+100 Prompts to Create Content with ChatGPT+100 Prompts to Create Content with ChatGPT
+100 Prompts to Create Content with ChatGPT
Carl Remi Beauregard
 
Google PageSpeed: 5 Steps to 100% (Mobile) Success
Google PageSpeed: 5 Steps to 100% (Mobile) SuccessGoogle PageSpeed: 5 Steps to 100% (Mobile) Success
Google PageSpeed: 5 Steps to 100% (Mobile) Success
Joe Williams
 
Pitching Ideas: How to sell your ideas to others
Pitching Ideas: How to sell your ideas to othersPitching Ideas: How to sell your ideas to others
Pitching Ideas: How to sell your ideas to others
Jeroen van Geel
 
The Rise of All-In-One SaaS
The Rise of All-In-One SaaSThe Rise of All-In-One SaaS
The Rise of All-In-One SaaS
Hiten Shah
 
Blueprint ChatGPT Lunch & Learn
Blueprint ChatGPT Lunch & LearnBlueprint ChatGPT Lunch & Learn
Blueprint ChatGPT Lunch & Learn
gnakan
 
Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017
NVIDIA
 
ChatGPT Evaluation for NLP
ChatGPT Evaluation for NLPChatGPT Evaluation for NLP
ChatGPT Evaluation for NLP
XiachongFeng
 
How People Are Leveraging ChatGPT
How People Are Leveraging ChatGPTHow People Are Leveraging ChatGPT
How People Are Leveraging ChatGPT
Roy Ahuja
 
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
Daniel Bryant
 
How to unlock the secrets of effortless keyword research with ChatGPT.pptx
How to unlock the secrets of effortless keyword research with ChatGPT.pptxHow to unlock the secrets of effortless keyword research with ChatGPT.pptx
How to unlock the secrets of effortless keyword research with ChatGPT.pptx
Daniel Smullen
 
Cloud History 101
Cloud History 101Cloud History 101
Cloud History 101
Mark Heinrich
 
How to Prepare Your Brand for Upcoming AI Features in Search
How to Prepare Your Brand for Upcoming AI Features in SearchHow to Prepare Your Brand for Upcoming AI Features in Search
How to Prepare Your Brand for Upcoming AI Features in Search
Lily Ray
 
Let's talk about GPT: A crash course in Generative AI for researchers
Let's talk about GPT: A crash course in Generative AI for researchersLet's talk about GPT: A crash course in Generative AI for researchers
Let's talk about GPT: A crash course in Generative AI for researchers
Steven Van Vaerenbergh
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
Thoughtworks
 
The Future of Everything
The Future of EverythingThe Future of Everything
The Future of Everything
Charbel Zeaiter
 
Exploring ChatGPT For Effective Teaching
Exploring ChatGPT For Effective TeachingExploring ChatGPT For Effective Teaching
Exploring ChatGPT For Effective Teaching
AdicodeTechnologies
 
Learn Prompting with ChatGPT
Learn Prompting with ChatGPTLearn Prompting with ChatGPT
Learn Prompting with ChatGPT
Nikhil Gadkar
 
ChatGPT_Cheatsheet_Costa.pdf
ChatGPT_Cheatsheet_Costa.pdfChatGPT_Cheatsheet_Costa.pdf
ChatGPT_Cheatsheet_Costa.pdf
ssuser3e5d3a
 

What's hot (20)

ChatGPT in Education
ChatGPT in EducationChatGPT in Education
ChatGPT in Education
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 
+100 Prompts to Create Content with ChatGPT
+100 Prompts to Create Content with ChatGPT+100 Prompts to Create Content with ChatGPT
+100 Prompts to Create Content with ChatGPT
 
Google PageSpeed: 5 Steps to 100% (Mobile) Success
Google PageSpeed: 5 Steps to 100% (Mobile) SuccessGoogle PageSpeed: 5 Steps to 100% (Mobile) Success
Google PageSpeed: 5 Steps to 100% (Mobile) Success
 
Pitching Ideas: How to sell your ideas to others
Pitching Ideas: How to sell your ideas to othersPitching Ideas: How to sell your ideas to others
Pitching Ideas: How to sell your ideas to others
 
The Rise of All-In-One SaaS
The Rise of All-In-One SaaSThe Rise of All-In-One SaaS
The Rise of All-In-One SaaS
 
Blueprint ChatGPT Lunch & Learn
Blueprint ChatGPT Lunch & LearnBlueprint ChatGPT Lunch & Learn
Blueprint ChatGPT Lunch & Learn
 
Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017Top 5 Deep Learning and AI Stories - October 6, 2017
Top 5 Deep Learning and AI Stories - October 6, 2017
 
ChatGPT Evaluation for NLP
ChatGPT Evaluation for NLPChatGPT Evaluation for NLP
ChatGPT Evaluation for NLP
 
How People Are Leveraging ChatGPT
How People Are Leveraging ChatGPTHow People Are Leveraging ChatGPT
How People Are Leveraging ChatGPT
 
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
 
How to unlock the secrets of effortless keyword research with ChatGPT.pptx
How to unlock the secrets of effortless keyword research with ChatGPT.pptxHow to unlock the secrets of effortless keyword research with ChatGPT.pptx
How to unlock the secrets of effortless keyword research with ChatGPT.pptx
 
Cloud History 101
Cloud History 101Cloud History 101
Cloud History 101
 
How to Prepare Your Brand for Upcoming AI Features in Search
How to Prepare Your Brand for Upcoming AI Features in SearchHow to Prepare Your Brand for Upcoming AI Features in Search
How to Prepare Your Brand for Upcoming AI Features in Search
 
Let's talk about GPT: A crash course in Generative AI for researchers
Let's talk about GPT: A crash course in Generative AI for researchersLet's talk about GPT: A crash course in Generative AI for researchers
Let's talk about GPT: A crash course in Generative AI for researchers
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
The Future of Everything
The Future of EverythingThe Future of Everything
The Future of Everything
 
Exploring ChatGPT For Effective Teaching
Exploring ChatGPT For Effective TeachingExploring ChatGPT For Effective Teaching
Exploring ChatGPT For Effective Teaching
 
Learn Prompting with ChatGPT
Learn Prompting with ChatGPTLearn Prompting with ChatGPT
Learn Prompting with ChatGPT
 
ChatGPT_Cheatsheet_Costa.pdf
ChatGPT_Cheatsheet_Costa.pdfChatGPT_Cheatsheet_Costa.pdf
ChatGPT_Cheatsheet_Costa.pdf
 

Viewers also liked

Game Based Learning for Language Learners
Game Based Learning for Language LearnersGame Based Learning for Language Learners
Game Based Learning for Language Learners
Shelly Sanchez Terrell
 
Are Traditional Teaching Methods Right for Today's Students
Are Traditional Teaching Methods Right for Today's StudentsAre Traditional Teaching Methods Right for Today's Students
Are Traditional Teaching Methods Right for Today's Students
Wiley
 
Enterprise 2.0 @ Sun Microsystems
Enterprise 2.0 @ Sun MicrosystemsEnterprise 2.0 @ Sun Microsystems
Enterprise 2.0 @ Sun Microsystems
Peter H. Reiser
 
The Human Body in the IoT. Tim Cannon + Ryan O'Shea
The Human Body in the IoT. Tim Cannon + Ryan O'SheaThe Human Body in the IoT. Tim Cannon + Ryan O'Shea
The Human Body in the IoT. Tim Cannon + Ryan O'Shea
Future Insights
 
Net neutrality: The Basics
Net neutrality: The BasicsNet neutrality: The Basics
Net neutrality: The Basics
InterQuest Group
 
Innovation Enablers: Culture, Community & Code
Innovation Enablers: Culture, Community & Code Innovation Enablers: Culture, Community & Code
Innovation Enablers: Culture, Community & Code
Angel Diaz
 
Business optimization | building your first million is easy
Business optimization | building your first million is easyBusiness optimization | building your first million is easy
Business optimization | building your first million is easy
Surjeet Singh
 
Kuala Lumpur CTO Summit - How to fire employees
Kuala Lumpur CTO Summit - How to fire employeesKuala Lumpur CTO Summit - How to fire employees
Kuala Lumpur CTO Summit - How to fire employees
Eric Tachibana
 
Vers une architecture de l'information
Vers une architecture de l'informationVers une architecture de l'information
Vers une architecture de l'information
Andrea Resmini
 
Brennpunkt2015 Neuburger
Brennpunkt2015 NeuburgerBrennpunkt2015 Neuburger
TEDxSanFrancisco – Review
TEDxSanFrancisco – ReviewTEDxSanFrancisco – Review
TEDxSanFrancisco – Review
Niki Skene
 
Rethinking Transformational Change
Rethinking Transformational ChangeRethinking Transformational Change
Rethinking Transformational Change
Jason Little
 
ADP ReThink 2016: Evolution of Work
ADP ReThink 2016: Evolution of WorkADP ReThink 2016: Evolution of Work
ADP ReThink 2016: Evolution of Work
ADP, LLC
 
Facebook, LinkedIN & Beyond - or how the new media changed how sales people d...
Facebook, LinkedIN & Beyond - or how the new media changed how sales people d...Facebook, LinkedIN & Beyond - or how the new media changed how sales people d...
Facebook, LinkedIN & Beyond - or how the new media changed how sales people d...
AdNerds
 
Offline is the new online - Le futur d'internet n'est plus derrière un écran
Offline is the new online - Le futur d'internet n'est plus derrière un écranOffline is the new online - Le futur d'internet n'est plus derrière un écran
Offline is the new online - Le futur d'internet n'est plus derrière un écran
Cedric Giorgi
 
31+ Startup Tools, Both Online & Offline
31+ Startup Tools, Both Online & Offline31+ Startup Tools, Both Online & Offline
31+ Startup Tools, Both Online & Offline
Pixc
 
Infographic: Cloud Security Superhero
Infographic: Cloud Security SuperheroInfographic: Cloud Security Superhero
Infographic: Cloud Security Superhero
IBM Security
 
Facebook et la présidentielle 2012
Facebook et la présidentielle 2012Facebook et la présidentielle 2012
Facebook et la présidentielle 2012
Publicis Consultants
 
Innovating supply chains in Asia
Innovating supply chains in AsiaInnovating supply chains in Asia
Innovating supply chains in Asia
The Economist Media Businesses
 
Securing the Cloud
Securing the CloudSecuring the Cloud
Securing the Cloud
GGV Capital
 

Viewers also liked (20)

Game Based Learning for Language Learners
Game Based Learning for Language LearnersGame Based Learning for Language Learners
Game Based Learning for Language Learners
 
Are Traditional Teaching Methods Right for Today's Students
Are Traditional Teaching Methods Right for Today's StudentsAre Traditional Teaching Methods Right for Today's Students
Are Traditional Teaching Methods Right for Today's Students
 
Enterprise 2.0 @ Sun Microsystems
Enterprise 2.0 @ Sun MicrosystemsEnterprise 2.0 @ Sun Microsystems
Enterprise 2.0 @ Sun Microsystems
 
The Human Body in the IoT. Tim Cannon + Ryan O'Shea
The Human Body in the IoT. Tim Cannon + Ryan O'SheaThe Human Body in the IoT. Tim Cannon + Ryan O'Shea
The Human Body in the IoT. Tim Cannon + Ryan O'Shea
 
Net neutrality: The Basics
Net neutrality: The BasicsNet neutrality: The Basics
Net neutrality: The Basics
 
Innovation Enablers: Culture, Community & Code
Innovation Enablers: Culture, Community & Code Innovation Enablers: Culture, Community & Code
Innovation Enablers: Culture, Community & Code
 
Business optimization | building your first million is easy
Business optimization | building your first million is easyBusiness optimization | building your first million is easy
Business optimization | building your first million is easy
 
Kuala Lumpur CTO Summit - How to fire employees
Kuala Lumpur CTO Summit - How to fire employeesKuala Lumpur CTO Summit - How to fire employees
Kuala Lumpur CTO Summit - How to fire employees
 
Vers une architecture de l'information
Vers une architecture de l'informationVers une architecture de l'information
Vers une architecture de l'information
 
Brennpunkt2015 Neuburger
Brennpunkt2015 NeuburgerBrennpunkt2015 Neuburger
Brennpunkt2015 Neuburger
 
TEDxSanFrancisco – Review
TEDxSanFrancisco – ReviewTEDxSanFrancisco – Review
TEDxSanFrancisco – Review
 
Rethinking Transformational Change
Rethinking Transformational ChangeRethinking Transformational Change
Rethinking Transformational Change
 
ADP ReThink 2016: Evolution of Work
ADP ReThink 2016: Evolution of WorkADP ReThink 2016: Evolution of Work
ADP ReThink 2016: Evolution of Work
 
Facebook, LinkedIN & Beyond - or how the new media changed how sales people d...
Facebook, LinkedIN & Beyond - or how the new media changed how sales people d...Facebook, LinkedIN & Beyond - or how the new media changed how sales people d...
Facebook, LinkedIN & Beyond - or how the new media changed how sales people d...
 
Offline is the new online - Le futur d'internet n'est plus derrière un écran
Offline is the new online - Le futur d'internet n'est plus derrière un écranOffline is the new online - Le futur d'internet n'est plus derrière un écran
Offline is the new online - Le futur d'internet n'est plus derrière un écran
 
31+ Startup Tools, Both Online & Offline
31+ Startup Tools, Both Online & Offline31+ Startup Tools, Both Online & Offline
31+ Startup Tools, Both Online & Offline
 
Infographic: Cloud Security Superhero
Infographic: Cloud Security SuperheroInfographic: Cloud Security Superhero
Infographic: Cloud Security Superhero
 
Facebook et la présidentielle 2012
Facebook et la présidentielle 2012Facebook et la présidentielle 2012
Facebook et la présidentielle 2012
 
Innovating supply chains in Asia
Innovating supply chains in AsiaInnovating supply chains in Asia
Innovating supply chains in Asia
 
Securing the Cloud
Securing the CloudSecuring the Cloud
Securing the Cloud
 

Similar to Montreal Girl Geeks: Building the Modern Web

Looking Back to Move Forward: Building the Modern Web
Looking Back to Move Forward: Building the Modern WebLooking Back to Move Forward: Building the Modern Web
Looking Back to Move Forward: Building the Modern Web
Rachel Andrew
 
The DiSo Project and the Open Web
The DiSo Project and the Open WebThe DiSo Project and the Open Web
The DiSo Project and the Open Web
Chris Messina
 
Business of Front-end Web Development
Business of Front-end Web DevelopmentBusiness of Front-end Web Development
Business of Front-end Web Development
Rachel Andrew
 
Knowing it all
Knowing it allKnowing it all
Knowing it all
Rachel Andrew
 
Contribution & Confidence, All Things Open Keynote
Contribution & Confidence, All Things Open KeynoteContribution & Confidence, All Things Open Keynote
Contribution & Confidence, All Things Open Keynote
Rachel Andrew
 
Contribution & Confidence
Contribution & ConfidenceContribution & Confidence
Contribution & Confidence
All Things Open
 
Bruce Lawson Opera Indonesia
Bruce Lawson Opera IndonesiaBruce Lawson Opera Indonesia
Bruce Lawson Opera Indonesia
brucelawson
 
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
 
2015 Pharo Prague Lambda Meetup
2015 Pharo Prague Lambda Meetup2015 Pharo Prague Lambda Meetup
2015 Pharo Prague Lambda Meetup
Pharo
 
Finding harmony in web development
Finding harmony in web developmentFinding harmony in web development
Finding harmony in web development
Christian Heilmann
 
Progressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptProgressive web and the problem of JavaScript
Progressive web and the problem of JavaScript
Christian Heilmann
 
Graduating to Grid
Graduating to GridGraduating to Grid
Graduating to Grid
Rachel Andrew
 
Why NodeJS
Why NodeJSWhy NodeJS
Why NodeJS
Riza Fahmi
 
Drupal Security for Coders and Themers - XSS and CSRF
Drupal Security for Coders and Themers - XSS and CSRF Drupal Security for Coders and Themers - XSS and CSRF
Drupal Security for Coders and Themers - XSS and CSRF
knaddison
 
There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014
jbandi
 
WAPWG Clark defining capturing_web-based_if
WAPWG Clark defining capturing_web-based_ifWAPWG Clark defining capturing_web-based_if
WAPWG Clark defining capturing_web-based_if
Sara Day Thomson
 
Google Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocialGoogle Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocial
Patrick Chanezon
 
[drupalday2017] - Speed-up your Drupal instance!
[drupalday2017] - Speed-up your Drupal instance![drupalday2017] - Speed-up your Drupal instance!
[drupalday2017] - Speed-up your Drupal instance!
DrupalDay
 
Speed up your Drupal instance!!
Speed up your Drupal instance!!Speed up your Drupal instance!!
Speed up your Drupal instance!!
bmeme
 
PrairieDevCon 2014 - Web Doesn't Mean Slow
PrairieDevCon 2014 -  Web Doesn't Mean SlowPrairieDevCon 2014 -  Web Doesn't Mean Slow
PrairieDevCon 2014 - Web Doesn't Mean Slow
dmethvin
 

Similar to Montreal Girl Geeks: Building the Modern Web (20)

Looking Back to Move Forward: Building the Modern Web
Looking Back to Move Forward: Building the Modern WebLooking Back to Move Forward: Building the Modern Web
Looking Back to Move Forward: Building the Modern Web
 
The DiSo Project and the Open Web
The DiSo Project and the Open WebThe DiSo Project and the Open Web
The DiSo Project and the Open Web
 
Business of Front-end Web Development
Business of Front-end Web DevelopmentBusiness of Front-end Web Development
Business of Front-end Web Development
 
Knowing it all
Knowing it allKnowing it all
Knowing it all
 
Contribution & Confidence, All Things Open Keynote
Contribution & Confidence, All Things Open KeynoteContribution & Confidence, All Things Open Keynote
Contribution & Confidence, All Things Open Keynote
 
Contribution & Confidence
Contribution & ConfidenceContribution & Confidence
Contribution & Confidence
 
Bruce Lawson Opera Indonesia
Bruce Lawson Opera IndonesiaBruce Lawson Opera Indonesia
Bruce Lawson Opera Indonesia
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
2015 Pharo Prague Lambda Meetup
2015 Pharo Prague Lambda Meetup2015 Pharo Prague Lambda Meetup
2015 Pharo Prague Lambda Meetup
 
Finding harmony in web development
Finding harmony in web developmentFinding harmony in web development
Finding harmony in web development
 
Progressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptProgressive web and the problem of JavaScript
Progressive web and the problem of JavaScript
 
Graduating to Grid
Graduating to GridGraduating to Grid
Graduating to Grid
 
Why NodeJS
Why NodeJSWhy NodeJS
Why NodeJS
 
Drupal Security for Coders and Themers - XSS and CSRF
Drupal Security for Coders and Themers - XSS and CSRF Drupal Security for Coders and Themers - XSS and CSRF
Drupal Security for Coders and Themers - XSS and CSRF
 
There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014
 
WAPWG Clark defining capturing_web-based_if
WAPWG Clark defining capturing_web-based_ifWAPWG Clark defining capturing_web-based_if
WAPWG Clark defining capturing_web-based_if
 
Google Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocialGoogle Devfest Singapore - OpenSocial
Google Devfest Singapore - OpenSocial
 
[drupalday2017] - Speed-up your Drupal instance!
[drupalday2017] - Speed-up your Drupal instance![drupalday2017] - Speed-up your Drupal instance!
[drupalday2017] - Speed-up your Drupal instance!
 
Speed up your Drupal instance!!
Speed up your Drupal instance!!Speed up your Drupal instance!!
Speed up your Drupal instance!!
 
PrairieDevCon 2014 - Web Doesn't Mean Slow
PrairieDevCon 2014 -  Web Doesn't Mean SlowPrairieDevCon 2014 -  Web Doesn't Mean Slow
PrairieDevCon 2014 - Web Doesn't Mean Slow
 

More from Rachel Andrew

All Day Hey! Unlocking The Power of CSS Grid Layout
All Day Hey! Unlocking The Power of CSS Grid LayoutAll Day Hey! Unlocking The Power of CSS Grid Layout
All Day Hey! Unlocking The Power of CSS Grid Layout
Rachel Andrew
 
SmashingConf SF: Unlocking the Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid LayoutSmashingConf SF: Unlocking the Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid Layout
Rachel Andrew
 
Unlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid LayoutUnlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid Layout
Rachel Andrew
 
The Creative New World of CSS
The Creative New World of CSSThe Creative New World of CSS
The Creative New World of CSS
Rachel Andrew
 
Into the Weeds of CSS Layout
Into the Weeds of CSS LayoutInto the Weeds of CSS Layout
Into the Weeds of CSS Layout
Rachel Andrew
 
Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17
Rachel Andrew
 
View Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & FriendsView Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & Friends
Rachel Andrew
 
DevFest Nantes - Start Using CSS Grid Layout today
DevFest Nantes - Start Using CSS Grid Layout todayDevFest Nantes - Start Using CSS Grid Layout today
DevFest Nantes - Start Using CSS Grid Layout today
Rachel Andrew
 
Start Using CSS Grid Layout Today - RuhrJS
Start Using CSS Grid Layout Today - RuhrJSStart Using CSS Grid Layout Today - RuhrJS
Start Using CSS Grid Layout Today - RuhrJS
Rachel Andrew
 
404.ie: Solving Layout Problems with CSS Grid & Friends
404.ie: Solving Layout Problems with CSS Grid & Friends404.ie: Solving Layout Problems with CSS Grid & Friends
404.ie: Solving Layout Problems with CSS Grid & Friends
Rachel Andrew
 
Solving Layout Problems with CSS Grid & Friends - WEBU17
Solving Layout Problems with CSS Grid & Friends - WEBU17Solving Layout Problems with CSS Grid & Friends - WEBU17
Solving Layout Problems with CSS Grid & Friends - WEBU17
Rachel Andrew
 
Laying out the future with grid & flexbox - Smashing Conf Freiburg
Laying out the future with grid & flexbox - Smashing Conf FreiburgLaying out the future with grid & flexbox - Smashing Conf Freiburg
Laying out the future with grid & flexbox - Smashing Conf Freiburg
Rachel Andrew
 
Solving Layout Problems with CSS Grid & Friends - NordicJS
Solving Layout Problems with CSS Grid & Friends - NordicJSSolving Layout Problems with CSS Grid & Friends - NordicJS
Solving Layout Problems with CSS Grid & Friends - NordicJS
Rachel Andrew
 
Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout
Rachel Andrew
 
Web Summer Camp Keynote
Web Summer Camp KeynoteWeb Summer Camp Keynote
Web Summer Camp Keynote
Rachel Andrew
 
New CSS Layout Meets the Real World
New CSS Layout Meets the Real WorldNew CSS Layout Meets the Real World
New CSS Layout Meets the Real World
Rachel Andrew
 
An Event Apart DC - New CSS Layout meets the Real World
An Event Apart DC - New CSS Layout meets the Real WorldAn Event Apart DC - New CSS Layout meets the Real World
An Event Apart DC - New CSS Layout meets the Real World
Rachel Andrew
 
Perch, Patterns and Old Browsers
Perch, Patterns and Old BrowsersPerch, Patterns and Old Browsers
Perch, Patterns and Old Browsers
Rachel Andrew
 
Evergreen websites for Evergreen browsers
Evergreen websites for Evergreen browsersEvergreen websites for Evergreen browsers
Evergreen websites for Evergreen browsers
Rachel Andrew
 
What I discovered about layout vis CSS Grid
What I discovered about layout vis CSS GridWhat I discovered about layout vis CSS Grid
What I discovered about layout vis CSS Grid
Rachel Andrew
 

More from Rachel Andrew (20)

All Day Hey! Unlocking The Power of CSS Grid Layout
All Day Hey! Unlocking The Power of CSS Grid LayoutAll Day Hey! Unlocking The Power of CSS Grid Layout
All Day Hey! Unlocking The Power of CSS Grid Layout
 
SmashingConf SF: Unlocking the Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid LayoutSmashingConf SF: Unlocking the Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid Layout
 
Unlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid LayoutUnlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid Layout
 
The Creative New World of CSS
The Creative New World of CSSThe Creative New World of CSS
The Creative New World of CSS
 
Into the Weeds of CSS Layout
Into the Weeds of CSS LayoutInto the Weeds of CSS Layout
Into the Weeds of CSS Layout
 
Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17
 
View Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & FriendsView Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & Friends
 
DevFest Nantes - Start Using CSS Grid Layout today
DevFest Nantes - Start Using CSS Grid Layout todayDevFest Nantes - Start Using CSS Grid Layout today
DevFest Nantes - Start Using CSS Grid Layout today
 
Start Using CSS Grid Layout Today - RuhrJS
Start Using CSS Grid Layout Today - RuhrJSStart Using CSS Grid Layout Today - RuhrJS
Start Using CSS Grid Layout Today - RuhrJS
 
404.ie: Solving Layout Problems with CSS Grid & Friends
404.ie: Solving Layout Problems with CSS Grid & Friends404.ie: Solving Layout Problems with CSS Grid & Friends
404.ie: Solving Layout Problems with CSS Grid & Friends
 
Solving Layout Problems with CSS Grid & Friends - WEBU17
Solving Layout Problems with CSS Grid & Friends - WEBU17Solving Layout Problems with CSS Grid & Friends - WEBU17
Solving Layout Problems with CSS Grid & Friends - WEBU17
 
Laying out the future with grid & flexbox - Smashing Conf Freiburg
Laying out the future with grid & flexbox - Smashing Conf FreiburgLaying out the future with grid & flexbox - Smashing Conf Freiburg
Laying out the future with grid & flexbox - Smashing Conf Freiburg
 
Solving Layout Problems with CSS Grid & Friends - NordicJS
Solving Layout Problems with CSS Grid & Friends - NordicJSSolving Layout Problems with CSS Grid & Friends - NordicJS
Solving Layout Problems with CSS Grid & Friends - NordicJS
 
Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout
 
Web Summer Camp Keynote
Web Summer Camp KeynoteWeb Summer Camp Keynote
Web Summer Camp Keynote
 
New CSS Layout Meets the Real World
New CSS Layout Meets the Real WorldNew CSS Layout Meets the Real World
New CSS Layout Meets the Real World
 
An Event Apart DC - New CSS Layout meets the Real World
An Event Apart DC - New CSS Layout meets the Real WorldAn Event Apart DC - New CSS Layout meets the Real World
An Event Apart DC - New CSS Layout meets the Real World
 
Perch, Patterns and Old Browsers
Perch, Patterns and Old BrowsersPerch, Patterns and Old Browsers
Perch, Patterns and Old Browsers
 
Evergreen websites for Evergreen browsers
Evergreen websites for Evergreen browsersEvergreen websites for Evergreen browsers
Evergreen websites for Evergreen browsers
 
What I discovered about layout vis CSS Grid
What I discovered about layout vis CSS GridWhat I discovered about layout vis CSS Grid
What I discovered about layout vis CSS Grid
 

Recently uploaded

From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
Sease
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
Ortus Solutions, Corp
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
Fwdays
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
Fwdays
 
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Ukraine
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
HarpalGohil4
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 

Recently uploaded (20)

From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
 
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 

Montreal Girl Geeks: Building the Modern Web

  • 1. Building the modern web Rachel Andrew, Montreal Girl Geeks, February 2016 Rachel Andrew, Montreal Girl Geeks
  • 3. Dancers do not need to use computers Rachel Andrew, Montreal Girl Geeks
  • 5. The web gave me a community Rachel Andrew, Montreal Girl Geeks
  • 7. “Knowing HTML” was a marketable skill Rachel Andrew, Montreal Girl Geeks
  • 8. Learning something one day - teaching it to someone else the next Rachel Andrew, Montreal Girl Geeks
  • 9. The web gave me a new career. Rachel Andrew, Montreal Girl Geeks
  • 10. The web was accessible, and had a culture of sharing knowledge. Rachel Andrew, Montreal Girl Geeks
  • 11. Font tags and nested tables Rachel Andrew, Montreal Girl Geeks
  • 12. <script type="text/javascript"> <!-- function MM_reloadPage(init) { if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); } MM_reloadPage(true); //--> </script> Rachel Andrew, Montreal Girl Geeks
  • 13. The “Netscape Resize Fix” If the user resized their browser window positioned elements lost their positioning values. The “fix” was to reload the browser window on resize. Rachel Andrew, Montreal Girl Geeks
  • 18. … basic support of existing W3C standards has been sacrificed in the name of such innovation, needlessly fragmenting the Web and helping no one. — http://archive.webstandards.org/mission.html Rachel Andrew, Montreal Girl Geeks
  • 19. Our goal is to support these core standards and encourage browser makers to do the same, thereby ensuring simple, affordable access to Web technologies for all. — http://archive.webstandards.org/mission.html Rachel Andrew, Montreal Girl Geeks
  • 21. Encouraging designers to care about web standards Rachel Andrew, Montreal Girl Geeks
  • 22. The IE6 years Rachel Andrew, Montreal Girl Geeks
  • 23. Front-end developer 2005? Browser bugs expert Rachel Andrew, Montreal Girl Geeks
  • 24. Thanks to the hard work of countless WaSP members and supporters (like you), Tim Berners-Lee’s vision of the web as an open, accessible, and universal community is largely the reality. — http://www.webstandards.org/2013/03/01/our-work- here-is-done/ Rachel Andrew, Montreal Girl Geeks
  • 25. Browser vendors are implementing standard things in a standard way Rachel Andrew, Montreal Girl Geeks
  • 26. Innovation happens through the standards process Rachel Andrew, Montreal Girl Geeks
  • 27. Show stopping browser bugs when doing straightforward things in modern browsers are rare Rachel Andrew, Montreal Girl Geeks
  • 28. Is it all easy now? Rachel Andrew, Montreal Girl Geeks
  • 29. Studies show that a todo list is the most complex JavaScript app you can create before a newer, better framework is invented. — http://www.allenpike.com/2015/javascript- framework-fatigue/ Rachel Andrew, Montreal Girl Geeks
  • 30. We’re creating complexity Hiding the simple languages of the web behind tooling and process Rachel Andrew, Montreal Girl Geeks
  • 32. <div class="header"> <h1>My website</h1> <div class="nav"> </div> </div> <div class="article"></div> <div class="sidebar"></div> <div class="footer"></div> Rachel Andrew, Montreal Girl Geeks
  • 34. Web Video Text Tracks Format (WebVTT) WEBVTT 1 00:00:22.230 --> 00:00:24.606 This is the first subtitle. 2 00:00:30.739 --> 00:00:34.074 This is the second. 3 00:00:34.159 --> 00:00:35.743 Third Rachel Andrew, Montreal Girl Geeks
  • 37. Time-dimensional pseudo-classes :current :past :future :current(p, li, dt, dd) { background: yellow; } :past(p, li, dt, dd) { background: transparent; color: #999999; } Rachel Andrew, Montreal Girl Geeks
  • 40. CSS Grid Layout <div class="wrapper"> <header class="header">Header</header> <aside class="sidebar">Sidebar</aside> <article class="content">Content</article> </div> Rachel Andrew, Montreal Girl Geeks
  • 41. .sidebar { grid-area: sidebar; } .content { grid-area: content; } .header { grid-area: header; } .wrapper { display: grid; grid-template-columns: 120px 10px 120px 10px 120px; grid-template-rows: auto; grid-template-areas: "header header header header header" "sidebar . content content content"; } Rachel Andrew, Montreal Girl Geeks
  • 44. “I’ll take a look if you create a Sass Mixin …” — via my inbox Rachel Andrew, Montreal Girl Geeks
  • 45. Emerging specifications like Grid remove the need for a lot of the preprocessing Rachel Andrew, Montreal Girl Geeks
  • 48. .ag1 { @include span(2 of 10); } .ag2 { @include span(6 of 10); @include clearfix; } .ag3 { @include span(2 of 10 last); } Rachel Andrew, Montreal Girl Geeks
  • 50. /* declare a grid and set up a 10 column grid with gutters */ .container { width: 90%; margin: 0 auto 0 auto; display: grid; grid-template-columns: [col] 4.25fr repeat(9, [gutter] 1fr [col] 4.25fr ) [gutter]; grid-template-rows: auto repeat(5, 100px); } /* boxes positioned like so */ /* heading in row 1 full width */ h1 { grid-column: col / span col 10; grid-row: 1 / 2; } /* left hand sidebar */ .ag1 { grid-column: col / span gutter 2; grid-row: 2 / 3; } Rachel Andrew, Montreal Girl Geeks
  • 51. We should be all over a spec like grid. This is the future. Rachel Andrew, Montreal Girl Geeks
  • 53. By leaning on frameworks, are we masking the issues? Rachel Andrew, Montreal Girl Geeks
  • 54. Only by working with the specifications can we be part of improving them Rachel Andrew, Montreal Girl Geeks
  • 55. Sheer frustration drove much of the Web Standards movement Rachel Andrew, Montreal Girl Geeks
  • 56. My fear is that our reliance on frameworks will stop us pushing for better solutions Rachel Andrew, Montreal Girl Geeks
  • 58. There are always compromises. They shouldn’t be the same for every project. Rachel Andrew, Montreal Girl Geeks
  • 59. Standardising on tools should not be at the expense of learning HTML, CSS and JavaScript Rachel Andrew, Montreal Girl Geeks
  • 60. Use your tools and frameworks lightly Rachel Andrew, Montreal Girl Geeks
  • 61. Be ready to put them aside when they don’t suit a project Rachel Andrew, Montreal Girl Geeks
  • 62. Don’t become an expert in one brand of hammer. Become a master carpenter. Rachel Andrew, Montreal Girl Geeks
  • 63. Develop timeless skills Rachel Andrew, Montreal Girl Geeks
  • 64. It is HTML, CSS, JavaScript How you get there is just process. Rachel Andrew, Montreal Girl Geeks
  • 65. The “space junk” of the web Rachel Andrew, Montreal Girl Geeks
  • 66. Will we be still using frameworks to abstract away layout hacks, long after there is any need for the hacks? Rachel Andrew, Montreal Girl Geeks
  • 67. Best practices can become anti-patterns HTTP/2 will see many of our best practices become bad practices. — Image Sprites — Domain Sharding — Concatenating CSS and JavaScript https://www.smashingmagazine.com/2016/02/getting- ready-for-http2/ Rachel Andrew, Montreal Girl Geeks
  • 68. Whose time are we saving? Rachel Andrew, Montreal Girl Geeks
  • 69. We write code once. It runs 100s of 1000s of times in the browsers of our visitors. Rachel Andrew, Montreal Girl Geeks
  • 70. “When I look around, I see our community spending a lot of time coming up with new tools and techniques to make our jobs easier. To ship faster. And it’s not that I’m against efficiency, but I think we need to consider the implications of our decisions. And if one of those implications is making our users suffer—or potentially suffer—in order to make our lives easier, I think we need to consider their needs above our own.” — http://aaron-gustafson.com/notebook/who-should- pay/ Rachel Andrew, Montreal Girl Geeks
  • 72. The myth of temporary Rachel Andrew, Montreal Girl Geeks
  • 73. The web is inherently accessible. We choose to protect that, or to break it. Rachel Andrew, Montreal Girl Geeks
  • 75. I believe progressive enhancement is still the best approach we have Rachel Andrew, Montreal Girl Geeks
  • 76. “a robust site or application in the more traditional sense minimises its dependencies. The minimum dependency for a web site should be an internet connection and the ability to parse HTML.” — http://www.bbc.co.uk/guidelines/futuremedia/ accessibility/html/progressive-enhancement.shtml Rachel Andrew, Montreal Girl Geeks
  • 77. Start with the core experience Rachel Andrew, Montreal Girl Geeks
  • 78. What is the minimum that I need to ship? How can I ensure as I iterate I protect the core experience for everyone? Rachel Andrew, Montreal Girl Geeks
  • 79. We Ship. We Iterate. Rachel Andrew, Montreal Girl Geeks
  • 80. How should we integrate third party code? Rachel Andrew, Montreal Girl Geeks
  • 81. Not Invented Here Rachel Andrew, Montreal Girl Geeks
  • 82. “Are you afraid to write code? Does the thought linger in your brain that somewhere out there somebody has already done this? Do you find yourself trapped in an analysis cycle where nothing is getting done? Is your product mutating to accommodate third party components? If yes, then perhaps you are suffering from invented-here syndrome.” — http://mortoray.com/2015/02/25/invented-here-syndrome/ Rachel Andrew, Montreal Girl Geeks
  • 83. Avoid turning shortcuts and third party code into dependencies Rachel Andrew, Montreal Girl Geeks
  • 84. Dependency Inversion Rachel Andrew, Montreal Girl Geeks
  • 85. “High level modules should not depend upon low- level modules. Both should depend upon abstractions. Abstractions should never depend upon details. Details should depend upon abstractions.” — http://www.objectmentor.com/resources/articles/ dip.pdf Rachel Andrew, Montreal Girl Geeks
  • 87. Progressively enhanced UI — JavaScript implementation based on the regular HTML5 Video element — Static maps that become draggable and zoomable - avoiding creating a dependency on one maps provider or library — Ordering items via a form input - that become drag and drop if the user has JavaScript Rachel Andrew, Montreal Girl Geeks
  • 88. You can’t do everything You can do something Rachel Andrew, Montreal Girl Geeks
  • 89. “A 100% pure progressively-enhanced website may not be practical on every single project you will ever encounter. While that sort of purity can exist, it’s unlikely in many business scenarios. Budgets, timelines: these things exist. Progressive enhancement isn’t a zero sum game; it’s a continuum, just like the Web.” — http://sixtwothree.org/posts/the-practical-case-for-progressive- enhancement Rachel Andrew, Montreal Girl Geeks
  • 90. If your site doesn’t load who misses out? What do they lose? Rachel Andrew, Montreal Girl Geeks
  • 91. Giving back Rachel Andrew, Montreal Girl Geeks
  • 92. Where does our next generation of web professionals come from? Rachel Andrew, Montreal Girl Geeks
  • 93. If you have been doing this for a year, there is someone 6 months in who you are ideally placed to help. Rachel Andrew, Montreal Girl Geeks
  • 94. You will learn by teaching Rachel Andrew, Montreal Girl Geeks
  • 95. Contribute to the standards that make up the web Rachel Andrew, Montreal Girl Geeks
  • 96. What do authors think? Rachel Andrew, Montreal Girl Geeks
  • 97. Learn how the modern standards process works Rachel Andrew, Montreal Girl Geeks
  • 99. If authors do not offer feedback, the final specification will reflect our needs as understood by people who do not build websites. Rachel Andrew, Montreal Girl Geeks
  • 100. To make an impact on a specification you need to do so while it is still a draft There is no point complaining about something that is finished. You have your chance to make your case during the open standards process. Rachel Andrew, Montreal Girl Geeks
  • 101. Grid Layout and “gutters” Rachel Andrew, Montreal Girl Geeks
  • 102. .wrapper { display: grid; grid-template-columns: 120px 10px 120px 10px 120px; grid-template-rows: auto; grid-template-areas: "header header header header header" "sidebar . content content content"; } Rachel Andrew, Montreal Girl Geeks
  • 103. .wrapper { display: grid; grid-template-columns: repeat(11, [col] 4fr [gutter] 3.5fr ) [col] 4fr [gutter]; grid-template-rows: auto repeat(4, [row] auto [gutter] 15px); } Rachel Andrew, Montreal Girl Geeks
  • 104. I believed the grid needed column and row gaps much like multi-column layout has the column-gap property Rachel Andrew, Montreal Girl Geeks
  • 105. .wrapper { display: grid; grid-template-columns: repeat(11, [col] 4fr [gutter] 3.5fr ) [col] 4fr [gutter]; grid-template-rows: auto repeat(4, [row] auto [gutter] 15px); } Rachel Andrew, Montreal Girl Geeks
  • 106. .wrapper { display: grid; grid-column-gap: 1em; grid-row-gap: 1em; grid-template-columns: repeat(12, [col] 4fr ); grid-template-rows: auto; } Rachel Andrew, Montreal Girl Geeks
  • 107. Solving the gutter problem — https://rachelandrew.co.uk/archives/2015/06/19/css- grid-layout-solving-the-gutter-problem/ — Post to the CSS WG list about the issue Rachel Andrew, Montreal Girl Geeks
  • 108. Put together use cases. Show issues clearly. Rachel Andrew, Montreal Girl Geeks
  • 109. Look for the issues already listed in draft specifications Rachel Andrew, Montreal Girl Geeks
  • 110. I am hopeful that contributing to standards is going to get easier Rachel Andrew, Montreal Girl Geeks
  • 111. The CSS Working Group may move to GitHub for issues in 2016 Rachel Andrew, Montreal Girl Geeks
  • 112. The Web Incubator Community Group — https://www.w3.org/community/wicg/ Rachel Andrew, Montreal Girl Geeks
  • 113. “Their goal is to take the lessons learned during the RICG’s responsive images slog and adapt web standards to match.” — https://www.w3.org/community/respimg/2015/07/09/ wicg/ Rachel Andrew, Montreal Girl Geeks
  • 115. Keep an eye on CSS Houdini A task force working on drafts that seek to explain and expose different parts of CSS. This should ultimately make it easier to polyfill, innovate, experiment and create entire new features. — https://wiki.css-houdini.org/ — https://dev.opera.com/articles/houdini/ Rachel Andrew, Montreal Girl Geeks
  • 116. Browsers vendors and the CSS WG alike are looking for “signals” from authors — are people talking about this spec? — are they writing about it, speaking at conferences? — are they directly requesting the features? Rachel Andrew, Montreal Girl Geeks
  • 117. Rachel Andrew, Montreal Girl Geeks
  • 118. Make a noise so that browser vendors hear what we want implemented Rachel Andrew, Montreal Girl Geeks
  • 119. Adopt an emerging specification! Rachel Andrew, Montreal Girl Geeks
  • 120. Some final thoughts Rachel Andrew, Montreal Girl Geeks
  • 121. Things are changing fast. Solid understanding of core web technologies has proved timeless. Rachel Andrew, Montreal Girl Geeks
  • 122. Ensuring maximum accessibility should be at the heart of all you do. Rachel Andrew, Montreal Girl Geeks
  • 123. Find ways to contribute Your voice & the voice of the people you build sites for is important. Rachel Andrew, Montreal Girl Geeks