SlideShare a Scribd company logo
1 of 131
Team Styles
How to develop Cascading Style Sheets for
             use in a team
Nathan Sampimon
   @nathan_scott
Challenges

• Be progressive, without leaving anyone
  behind
• Tackle multiple levels of experience
• Keep it simple
• Allow for isolation
Why a team?

• Big apps = multiple developers
• You should be building ready for a
  handover
• Create a solid foundation and build off it
What do we want to
     deliver?
As little as possible
• Less files
• Minimum amount of http requests
• Styles to target less sophisticated browsers
• Styles to target different media types’
• Simplicity
What do we want to
   work with?
• More files
• Loads of stylesheets
• Broken up into sections
• Easy to navigate, isolate, extrapolate
• Sheets to target different browsers
• Sheets to target different media
Front-end Developers
•   Like working their own way
•   Often opinionated
•   Not necessarily technical
•   May require guidance
How to we address
      this?
Most important: Talk to them
• Write docs
• Outline rules
• Use comments
• Provide structure
Docs
• Overview of technologies used
• Approach to issues like
  •   Browser targeting
  •   CSS3
  •   @media supported

• Outline creative brief
• Include original designs
Rules
Outline any general coding rules
• Don’t change base styles
(try rewriting the style with more specific
selectors)
// John

.button {
  background: black;
  color: white;
}

// Peter

html body .button {
  background: grey;
  color: creme;
}
• Alphabetise properties
(Although I prefer to have styles structured
                       as follows)


                  h1#logo {

     Layout           display: block;
(by importance)       position: absolute;
                      margin: 15px 0 10px;
                      padding: 7px 4px;
  Aesthetics
                      background: black;
  (by impact)
                      font: bold 16px/21px Helvetica, Arial,
                      color: pink;

                  }
Comment anything
ambiguous or unclear
Structure <<
• Rails is easy to navigate, because of
  structure
• Create a solid structure in your app
• Why reinvent the wheel?
Controllers
announcement
s
application
documents
events
parts
user_sessions
Controllers     Views
announcement    announcement
s               s
application     documents
documents       events
events          layouts
parts           parts
user_sessions   user_sessions
Controllers     Views           Stylesheets
announcement    announcement    application
s               s               announcement
application     documents       s
documents       events          documents
events          layouts         events
parts           parts           layouts
user_sessions   user_sessions   parts
                                user_sessions
Controllers     Views           Stylesheets
announcement    announcement    application
s               s               announcement
application     documents       s
documents       events          documents
events          layouts         events
parts           parts           layouts
user_sessions   user_sessions   parts
                                user_sessions
All partials feed into 1 stylesheet

Only 1 stylesheet gets sent to browser
stylesheets/
               styles.css
               partials/
                        _application.css
                        _announcements.css
                       _documents.css
                       ...
Target media
@media
<LINK REL="stylesheet" TYPE="text/css"
         MEDIA="print, handheld" HREF="foo.css">


@media screen {
  body {
    background: white;
  }
}
@media

• all        • handheld     • screen
• braille    • print        • speech
• embossed   • projection   • tty
@media
     @media (max-width: 600px)
     {
    ...
}

@media (max-width: 400px) {
  ...
}

@media (min-width: 1300px) {
Naming Conventions
   application.css
   application.print.css
   announcements.css
   documents.css
   events.css
   layouts.css
   layout.print.css
   parts.css
   user_sessions
Extrapolate to suit
   application/reset.css
   application/fonts.css
   application.css
   application.print.css
   announcements.css
   documents.css
   events.css
   layouts.css
   layout.print.css
   parts.css
   user_sessions
Target browsers
1 sheet for each IE version
1 sheet for every other browser
= stylesheet_link_tag 'screen', :media => 'screen'
= stylesheet_link_tag 'print', :media => 'print'

/[if lte IE9]
  = stylesheet_link_tag   'ie9', :media => 'screen'
/[if lte IE8]
  = stylesheet_link_tag   'ie8', :media => 'screen'
/[if lte IE7]
  = stylesheet_link_tag   'ie7', :media => 'screen'
/[if lte IE6]
  = stylesheet_link_tag   'ie6', :media => 'screen'
IE Sheets are generally quite small, no
           need for partials
Use less hacks
and more tact
Use this:    # application.css
             li {
                margin: 5px;
             }
             # ie.css
             li {
                margin: 0;
             }


Over this:   # application.css
             li {
                margin: 5px; !important
                margin: 0;
             }
Quick side note
CSS Resets
To take browser subjectivity out of the equation
Front end developers tend to be
           particular

     Stick to the big ones
• Yahoo! YUI Reset
• Eric Meyer
• Use as a base
• Customise to suit project (cascaded)
screen.css   application/reset.css
             application/fonts.css
print.css    application.css
             application.print.css
ie9.css      announcements.css
             documents.css
ie8.css      events.css
             layouts.css
ie7.css      layout.print.css
             parts.css
ie6.css      user_sessions
@import
screen.css       application/reset.css
                 application/fonts.css
print.css        application.css
                 application.print.css
ie9.css          announcements.css
                 documents.css
ie8.css          events.css
                 layouts.css
ie7.css          layout.print.css
                 parts.css
ie6.css          user_sessions
/* screen.css */

@import   "partials/application.css";
@import   "partials/announcements.css";
@import   "partials/documents.css";
@import   "partials/events.css";
...
Too many http requests
# app/views/layouts/application.html.erb

<%= stylesheet_link_tag "application/reset",

 "application",

 "announcements",

 "documents",

 “events”,

 ...

 :cache => "screen",

 :media => “screen” %>
Development
# when ActionController::Base.perform_caching is false =>

<link href="/stylesheets/application/reset.css" media="screen" rel="stylesheet" type="text/
css" />
<link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/announcements.css" media="screen" rel="stylesheet" type="text/css" /
>
<link href="/stylesheets/documents.css" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/events.css" media="screen" rel="stylesheet" type="text/css" />
...
Production

# when ActionController::Base.perform_caching is true =>

<link href="/stylesheets/application/screen.css" media="screen" rel="stylesheet" type="text/
css" />
Problems with CSS
CSS History

CSS1            CSS2
1996            2005   2010
W3C move slowly
“14 years of CSS has
 basically given us...”
“more selectors
       +
more properties”

           - Wynn Netherland
Enter meta-frameworks
• Increase productivity
• Limit damage (they compile!)
• Progressive
CSS
table.events {
  margin: 14px 0 7px;
}
table.events td {
  background: #ccc;
}
table.events td h4 {
  margin-top: 6px;
  font-size: 1.2em;
}
table.events td a {
  color: #f00;
}
LESS CSS
@silver: #ccc;
@red: #f00;

table.events {
 margin: 14px 0 7px;
 td {
   background: @silver;
   h4 {
     margin-top: 6px;
     font-size: 1.2em;
   }
   a{
     color: @red;
   }
 }
SCSS
$silver: #ccc;
$red: #f00;

table.events {
 margin: 14px 0 7px;
 td {
   background: $silver;
   h4 {
     margin-top: 6px;
     font-size: 1.2em;
   }
   a{
     color: $red;
   }
 }
SASS
$silver: #ccc
$red: #f00

table.events
 margin: 14px 0 7px
 td
   background: $silver
   h4
     margin-top: 6px
     font-size: 1.2em
   a
     color: $red
SASS vs SCSS/LESS
•   SASS is a language        •   SCSS/LESS act like
                                  extensions of CSS

•   You can’t use CSS in      •   You can use CSS in SCSS/
    SASS                          LESS

•   SASS looks different to   •   SCSS/LESS looks like CSS
    CSS                           extended
SCSS
$silver: #ccc;
$red: #f00;

table.events {
 margin: 14px 0 7px;
 td {
   background: $silver;
   h4 {
     margin-top: 6px;
     font-size: 1.2em;
   }
   a{
     color: $red;
   }
 }
Compiles to CSS
Benefits of SCSS for
      teams
Variables
$silver: #ccc;
$red: #f00;

a { color: $red; }
small { color: $silver; }
• Front-end developers can set colours to be
  used throughout all styles

• Let guess-work when introducing colours
• DRYer
Define all colour, size and
    grid variables in
    application.scss
# application.scss

$max_width: 1080px;
$column: 80px;
$gutter: 18px;

$orange: #FE4110;
$purple: #56017A;
$red: #BA0000;
$grey: #505050;
$light_grey: #AEAEAE;

...
Don’t use any colour
  codes or grid sizes
anywhere except here
body {
  max-width: $max_width;
}

article {
  margin: $gutter;
  width: $column * 6;
}

em.crazy_bargain {
  color:$orange;
}
Nesting
table.events   { margin: 14px 0 7px;}
table.events   td { background: #ccc;}
table.events   td h4 { margin-top: 6px; font-size: 1.2em;}
table.events   td a { color: #f00;}


                        becomes

table.events {
  margin: 14px 0 7px;
  td {
    background: #ccc;
    h4 { margin-top: 6px; font-size: 1.2em;}
    a { color: #f00;}
  }
}
• Less code
• DRYer
• Easier to make bigger changes
Good Practice: Nesting
Educate your developers
      a{
        color: $pink;
        &:hover {
          color: $green;
        }
      }
Mixins
@mixin rounded($radius: 10px) {
  -moz-border-radius: $radius;
  -webkit-border-radius: $radius;
  border-radius: $radius;
}

ul li a { @include rounded(6px); }
• Define once, use lots
• Facilitates transitioning CSS technology
• DRY
Define core mixins in application.scss
// application.scss

...

@mixin rounded($radius: 10px) {
 -moz-border-radius: $radius;
 -webkit-border-radius: $radius;
  border-radius: $radius;
}

@mixin rounded-top($radius: 10px) {
 -moz-border-radius-topleft: $radius;
 -moz-border-radius-topright: $radius;
 -webkit-border-top-left-radius: $radius;
 -webkit-border-top-right-radius: $radius;
}

@mixin gradient($from, $to) {
  background: -moz-linear-gradient(50% 0, $from, $to);
  background: -webkit-gradient(linear, 50% 0, 50% 100%, from($from), to($to));
}
Make every file a whole lot of mixins
// partials/application.scss
$preset: #000;

// partials/bulletins.scss
@mixin bulletins { ... }

// partials/events.scss
@mixin events { ... }
Then include them in the order they’re
               required
// screen.scss
@import "partials/application"
@import "partials/bulletins"
@import "partials/events"

@include bulletins;
@include events;
Use @mixins to nurture and transition to
                CSS3
@mixin rounded($radius: 10px) {
  -moz-border-radius: $radius;
  -webkit-border-radius: $radius;
  border-radius: $radius;
}

ul li a { @include rounded(6px); }
Sprites
1 File
 1 http request
Loads of images
@mixin sprites($x_offset: 0, $y_offset: 0) {
  background-image: url(/images/sprites.png);
  background-repeat: no-repeat;
  background-position: -$x_offset -$y_offset;
}

@mixin icon_sprite($sequence) {
  // icons start 350px down
  @include sprites(($sequence * 30px) + 350px);
}

a.new {
 display: inline-block;
 padding-left: 25px;
 @include icon_sprite(1);
Selector Inheritance
.button {
  background: black;
  color: white;
  &:hover {
    background: white;
  }
}

.funky_button {
  @extend .button;
  color: pink;
}
Create a solid base
Educate of it’s use
// a list of buttons
// ul

.buttons {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
  li {
    display: block;
    margin: 0;
    padding: 0;
    a{
       display: block;
       padding: 8px 15px;
    }
Functions
$purple: #56017A;

table.striped {
  tr:nth-child(odd) {
    background: lighten($purple, 80%);
    background: transparentize($purple, 0.2);
  }
}
lighten() and darken() means there
      is no colour guesswork
Can easily simplify the colour palette of your
                   interface
$visible_light: #ccc;

#lights_are {
  &.on {
    background: lighten( $visible_light, 35% );
    color: $visible_light;
  }
  &.off {
    background: darken( $visible_light, 35% );
    color: $visible_light;
  }
}
@import
// screen.scss
@import "partials/application"
@import "partials/bulletins"
@import "partials/events"
Importing happens server-side
1 http request
Using Frameworks
Blueprint example
#container {
    @include container;
     
    .form_row {
        @include column(24);
         
        .label {
            @include column(3);
            font-weight: bold;
         }
        .child_block {
            @include column(12);
             
            .label {
                @include clearfix;

 
 
 
 
 
 }
Problems
Problems
Challenges
semantic variable names can work
$bright: orange;


a:hover { color: $bright; }
But they’re hard to remember
Which can create problems
$purple: purple; // purple

      gets changed to

$purple: green; // green
Multiple mixin
 definitions
@mixin rounded($radius: 10px) {
  -moz-border-radius: $radius;
  -webkit-border-radius: $radius;
  border-radius: $radius;
}

// Already defined so just a rename
@mixin round($radius: 10px) {
  @include rounded($radius);
}
Forms
Create a base form stylesheet

    Include all variations

Special use-cases can go into
         section file
Sounds tough
Compass brings the structure
Compass makes it easy to tack on
         frameworks

     Blueprint   960   YUI
@include ‘blueprint’

@include ‘css3’
app/stylesheets/ # all scss files



public/stylesheets/ # compiled css

 
 
 
 
 
 
 
 
 
 
 
 goes here
%end/

More Related Content

What's hot

Quality Development with CSS3
Quality Development with CSS3Quality Development with CSS3
Quality Development with CSS3Shay Howe
 
Css for Development
Css for DevelopmentCss for Development
Css for Developmenttsengsite
 
Sass - Getting Started with Sass!
Sass - Getting Started with Sass!Sass - Getting Started with Sass!
Sass - Getting Started with Sass!Eric Sembrat
 
Intermediate Web Design
Intermediate Web DesignIntermediate Web Design
Intermediate Web Designmlincol2
 
Making Your Own CSS Framework
Making Your Own CSS FrameworkMaking Your Own CSS Framework
Making Your Own CSS FrameworkDan Sagisser
 
CSS in React - The Good, The Bad, and The Ugly
CSS in React - The Good, The Bad, and The UglyCSS in React - The Good, The Bad, and The Ugly
CSS in React - The Good, The Bad, and The UglyJoe Seifi
 
Confessions of an APEX Design Geek
Confessions of an APEX Design GeekConfessions of an APEX Design Geek
Confessions of an APEX Design GeekChristian Rokitta
 
Object-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSS
Object-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSSObject-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSS
Object-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSSLi-Wei Lu
 
Face/Off: APEX Templates & Themes
Face/Off: APEX Templates & ThemesFace/Off: APEX Templates & Themes
Face/Off: APEX Templates & Themescrokitta
 
GDI Seattle Intermediate HTML and CSS Class 1
GDI Seattle Intermediate HTML and CSS Class 1GDI Seattle Intermediate HTML and CSS Class 1
GDI Seattle Intermediate HTML and CSS Class 1Heather Rock
 
Web design-workflow
Web design-workflowWeb design-workflow
Web design-workflowPeter Kaizer
 
TOSSUG HTML5 讀書會 新標籤與表單
TOSSUG HTML5 讀書會 新標籤與表單TOSSUG HTML5 讀書會 新標籤與表單
TOSSUG HTML5 讀書會 新標籤與表單偉格 高
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive WebsitesJoe Seifi
 
CSS in React
CSS in ReactCSS in React
CSS in ReactJoe Seifi
 
CSS3: Simply Responsive
CSS3: Simply ResponsiveCSS3: Simply Responsive
CSS3: Simply ResponsiveDenise Jacobs
 
Bootstrap: the full overview
Bootstrap: the full overviewBootstrap: the full overview
Bootstrap: the full overviewGill Cleeren
 

What's hot (20)

CSS Reset
CSS ResetCSS Reset
CSS Reset
 
Quality Development with CSS3
Quality Development with CSS3Quality Development with CSS3
Quality Development with CSS3
 
Css for Development
Css for DevelopmentCss for Development
Css for Development
 
css-tutorial
css-tutorialcss-tutorial
css-tutorial
 
Sass - Getting Started with Sass!
Sass - Getting Started with Sass!Sass - Getting Started with Sass!
Sass - Getting Started with Sass!
 
Intermediate Web Design
Intermediate Web DesignIntermediate Web Design
Intermediate Web Design
 
SASS - CSS with Superpower
SASS - CSS with SuperpowerSASS - CSS with Superpower
SASS - CSS with Superpower
 
Making Your Own CSS Framework
Making Your Own CSS FrameworkMaking Your Own CSS Framework
Making Your Own CSS Framework
 
CSS in React - The Good, The Bad, and The Ugly
CSS in React - The Good, The Bad, and The UglyCSS in React - The Good, The Bad, and The Ugly
CSS in React - The Good, The Bad, and The Ugly
 
Intro to CSS3
Intro to CSS3Intro to CSS3
Intro to CSS3
 
Confessions of an APEX Design Geek
Confessions of an APEX Design GeekConfessions of an APEX Design Geek
Confessions of an APEX Design Geek
 
Object-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSS
Object-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSSObject-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSS
Object-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSS
 
Face/Off: APEX Templates & Themes
Face/Off: APEX Templates & ThemesFace/Off: APEX Templates & Themes
Face/Off: APEX Templates & Themes
 
GDI Seattle Intermediate HTML and CSS Class 1
GDI Seattle Intermediate HTML and CSS Class 1GDI Seattle Intermediate HTML and CSS Class 1
GDI Seattle Intermediate HTML and CSS Class 1
 
Web design-workflow
Web design-workflowWeb design-workflow
Web design-workflow
 
TOSSUG HTML5 讀書會 新標籤與表單
TOSSUG HTML5 讀書會 新標籤與表單TOSSUG HTML5 讀書會 新標籤與表單
TOSSUG HTML5 讀書會 新標籤與表單
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive Websites
 
CSS in React
CSS in ReactCSS in React
CSS in React
 
CSS3: Simply Responsive
CSS3: Simply ResponsiveCSS3: Simply Responsive
CSS3: Simply Responsive
 
Bootstrap: the full overview
Bootstrap: the full overviewBootstrap: the full overview
Bootstrap: the full overview
 

Similar to Team styles

Lect-4-Responsive-Web-06032024-082044am.pptx
Lect-4-Responsive-Web-06032024-082044am.pptxLect-4-Responsive-Web-06032024-082044am.pptx
Lect-4-Responsive-Web-06032024-082044am.pptxzainm7032
 
Structuring your CSS for maintainability: rules and guile lines to write CSS
Structuring your CSS for maintainability: rules and guile lines to write CSSStructuring your CSS for maintainability: rules and guile lines to write CSS
Structuring your CSS for maintainability: rules and guile lines to write CSSSanjoy Kr. Paul
 
Teams, styles and scalable applications
Teams, styles and scalable applicationsTeams, styles and scalable applications
Teams, styles and scalable applicationsVittorio Vittori
 
Responsive web design
Responsive web designResponsive web design
Responsive web designRicha Goel
 
An Introduction to CSS Frameworks
An Introduction to CSS FrameworksAn Introduction to CSS Frameworks
An Introduction to CSS FrameworksAdrian Westlake
 
Responsive Design in Drupal with Zen and Zen Grids
Responsive Design in Drupal with Zen and Zen GridsResponsive Design in Drupal with Zen and Zen Grids
Responsive Design in Drupal with Zen and Zen GridsSuzanne Dergacheva
 
Responsive Web Design (April 18th, Los Angeles)
Responsive Web Design (April 18th, Los Angeles)Responsive Web Design (April 18th, Los Angeles)
Responsive Web Design (April 18th, Los Angeles)Thinkful
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Developmentmwrather
 
CSS Workflow. Pre & Post
CSS Workflow. Pre & PostCSS Workflow. Pre & Post
CSS Workflow. Pre & PostAnton Dosov
 
Developing Your Ultimate Package
Developing Your Ultimate PackageDeveloping Your Ultimate Package
Developing Your Ultimate PackageSimon Collison
 

Similar to Team styles (20)

HTML CSS & Javascript
HTML CSS & JavascriptHTML CSS & Javascript
HTML CSS & Javascript
 
Using a CSS Framework
Using a CSS FrameworkUsing a CSS Framework
Using a CSS Framework
 
Lect-4-Responsive-Web-06032024-082044am.pptx
Lect-4-Responsive-Web-06032024-082044am.pptxLect-4-Responsive-Web-06032024-082044am.pptx
Lect-4-Responsive-Web-06032024-082044am.pptx
 
Structuring your CSS for maintainability: rules and guile lines to write CSS
Structuring your CSS for maintainability: rules and guile lines to write CSSStructuring your CSS for maintainability: rules and guile lines to write CSS
Structuring your CSS for maintainability: rules and guile lines to write CSS
 
Create a landing page
Create a landing pageCreate a landing page
Create a landing page
 
Teams, styles and scalable applications
Teams, styles and scalable applicationsTeams, styles and scalable applications
Teams, styles and scalable applications
 
UNIT 3.ppt
UNIT 3.pptUNIT 3.ppt
UNIT 3.ppt
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
CSS3
CSS3CSS3
CSS3
 
An Introduction to CSS Frameworks
An Introduction to CSS FrameworksAn Introduction to CSS Frameworks
An Introduction to CSS Frameworks
 
Responsive Design in Drupal with Zen and Zen Grids
Responsive Design in Drupal with Zen and Zen GridsResponsive Design in Drupal with Zen and Zen Grids
Responsive Design in Drupal with Zen and Zen Grids
 
Sass compass
Sass compassSass compass
Sass compass
 
Responsive Web Design (April 18th, Los Angeles)
Responsive Web Design (April 18th, Los Angeles)Responsive Web Design (April 18th, Los Angeles)
Responsive Web Design (April 18th, Los Angeles)
 
Css group
Css groupCss group
Css group
 
Css group
Css groupCss group
Css group
 
Css group
Css groupCss group
Css group
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Development
 
CSS Workflow. Pre & Post
CSS Workflow. Pre & PostCSS Workflow. Pre & Post
CSS Workflow. Pre & Post
 
Print CSS
Print CSSPrint CSS
Print CSS
 
Developing Your Ultimate Package
Developing Your Ultimate PackageDeveloping Your Ultimate Package
Developing Your Ultimate Package
 

Recently uploaded

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Team styles

Editor's Notes