SlideShare une entreprise Scribd logo
1  sur  184
Télécharger pour lire hors ligne
Liebe Dein Frontend
                      wie Dich selbst.



                          haml & sass & compass & less
                          02.09.2009
                          Rails-Konferenz 2009
                          Jan Krutisch <jan.krutisch@mindmatters.de>
                          mindmatters GmbH & Co. KG

Donnerstag, 3. September 2009
(disclaimer)




Donnerstag, 3. September 2009
HAML

Donnerstag, 3. September 2009
http://haml-lang.com/



Donnerstag, 3. September 2009
(X)HTML Abstraction
                Markup Language


Donnerstag, 3. September 2009
Nur 'ne neue
                Template-Engine?


Donnerstag, 3. September 2009
<em>
                <% "was ist falsch an
                erb or erubis?" %>
                </em>

Donnerstag, 3. September 2009
Nix.


Donnerstag, 3. September 2009
Mächtig.
Donnerstag, 3. September 2009
Flexibel.




Donnerstag, 3. September 2009
Ausreichend schnell.




Donnerstag, 3. September 2009
ABER!



Donnerstag, 3. September 2009
mirscheissegal


Donnerstag, 3. September 2009
1) Ich habe Kontrolle
                über meinen
                Template-Code


Donnerstag, 3. September 2009
2) Ich bin ein
                disziplinierter Coder


Donnerstag, 3. September 2009
3) Ich schreib mein
                HTML selber.


Donnerstag, 3. September 2009
Andere Sichtweise




Donnerstag, 3. September 2009
(x)HTML
                =
                XML


Donnerstag, 3. September 2009
Tagsoup


                                Text




Donnerstag, 3. September 2009
HTML-Tags =
                                Redundanz




Donnerstag, 3. September 2009
<div>

                </div>


Donnerstag, 3. September 2009
<div>
                                Re d
                    und
                </div>                 an t
                                              !


Donnerstag, 3. September 2009
ERB = Zu Nachsichtig



Donnerstag, 3. September 2009
(Zu agnostisch)



Donnerstag, 3. September 2009
de x .e r b
         in     <%= render :partial => 'head' %>
                ...
                <%= render :partial => 'foot' %>
              e ad .e r b
        _h
                <body>

            foo t .e r b
         _
                </body>

Donnerstag, 3. September 2009
found via google search, source unknown
Donnerstag, 3. September 2009
"There must be
    a better way"™




Donnerstag, 3. September 2009
Abstrahieren!




Donnerstag, 3. September 2009
HAML



Donnerstag, 3. September 2009
Kompakt



Donnerstag, 3. September 2009
Keine Redundanzen



Donnerstag, 3. September 2009
Wacht über die
                Dokumentenstruktur


Donnerstag, 3. September 2009
Gibt tollen HTML-
                Code aus.


Donnerstag, 3. September 2009
installation als gem
                &
                rails plugin


Donnerstag, 3. September 2009
> gem install haml
                > cd rails_app
                > haml --rails .


Donnerstag, 3. September 2009
(Library/
                commandline tool)


Donnerstag, 3. September 2009
Tags!



Donnerstag, 3. September 2009
%table
                  %tr
                    %td Hey there




Donnerstag, 3. September 2009
%table
                  %tr
                    %td Hey there

                                Magic!

               <table>
                 <tr>
                   <td>Hey there</td>
                 </tr>
               </table>




Donnerstag, 3. September 2009
%table
                  %tr
                    %td
                       Hey there

                                  Magic!
               <table>
                 <tr>
                   <td>
                      Hey there
                   </td>
                 </tr>
               </table>



Donnerstag, 3. September 2009
Self-closing tags



Donnerstag, 3. September 2009
%foo/
                                Magic!

               <foo/>




Donnerstag, 3. September 2009
automagisch für:
                   •meta
                   •img
                   •link
                   •script
                   •br
                   •hr
Donnerstag, 3. September 2009
Whitespace control



Donnerstag, 3. September 2009
(für die dämlichen
                Browserbugs)


Donnerstag, 3. September 2009
%blockquote<
                  %div
                    Foo!

                                Magic!

               <blockquote><div>
                 Foo!
               </div></blockquote>




Donnerstag, 3. September 2009
%img
                %img>
                %img
                                Magic!

               <img /><img /><img />




Donnerstag, 3. September 2009
Attribute!



Donnerstag, 3. September 2009
%head{ :name => "doc_head" }
                  %script{ 'type' => "text/" + "javascript",
                           :src   => "javascripts/script_#{2 + 7}" }


                                           Magic!

               <head name='doc_head'>
                 <script src='/docs/rdoc/javascripts/script_9' type='text/javascript'>
                 </script>
               </head>




Donnerstag, 3. September 2009
%head{ :name => "doc_head" }                  De p
                  %script{ 'type' => "text/" + "javascript",       re    c at
                           :src   => "javascripts/script_#{2 + 7}" }
                                                                                e d!
                                           Magic!

               <head name='doc_head'>
                 <script src='/docs/rdoc/javascripts/script_9' type='text/javascript'>
                 </script>
               </head>




Donnerstag, 3. September 2009
%head(name="doc_head")
                  %script(type="text/javascript",
                           src="javascripts/script_#{2 + 7}")


                                           Magic!

               <head name='doc_head'>
                 <script src='/docs/rdoc/javascripts/script_9' type='text/javascript'>
                 </script>
               </head>




Donnerstag, 3. September 2009
Attribut-Helper



Donnerstag, 3. September 2009
def html_attrs(lang = 'en-US')
                  {
                    :xmlns => "http://www.w3.org/1999/xhtml",
                    'xml:lang' => lang,
                    :lang => lang
                  }
                end




Donnerstag, 3. September 2009
%html{html_attrs(lang = 'de-DE')}



                                Magic!

               <html lang='de-DE' xml:lang='de-DE'
               xmlns='http://www.w3.org/1999/xhtml'>
               </html>




Donnerstag, 3. September 2009
Spezialgelagerter
                Sonderfall:


Donnerstag, 3. September 2009
IDs & Klassen



Donnerstag, 3. September 2009
#aye_dee
                 .klazz
                   Aha!

                                Magic!

               <div id='aye_dee'>
                 <div class='klazz'>
                   Aha!
                 </div>
               </div>



Donnerstag, 3. September 2009
Ruby!



Donnerstag, 3. September 2009
%p= "Yay".downcase

                                Magic!

               <p>yay</p>




Donnerstag, 3. September 2009
%p&= "<b>Yay</b>".downcase

                                Magic!

               <p>&lt;b&gt;yay&lt;/b&gt;</p>




Donnerstag, 3. September 2009
%p!= "<b>Yay</b>".downcase

                                Magic!

               <p><b>yay</b></p>




Donnerstag, 3. September 2009
%p= "<b>Yay</b>".downcase

                                Magic!

               <p><b>yay</b></p>




Donnerstag, 3. September 2009
%p= "<b>Yay</b>".downcase

                                Magic!

               <p>&lt;b&gt;yay&lt;/b&gt;</p>




Donnerstag, 3. September 2009
:escape_html



Donnerstag, 3. September 2009
%p== #{followers} Followers


                                Magic!

               <p>120231373274987476 Followers</p>




Donnerstag, 3. September 2009
De p
                                              re
               %p== #{followers} Followers c a t
                                                   e d!
                                Magic!

               <p>120231373274987476 Followers</p>




Donnerstag, 3. September 2009
%p #{followers} Followers


                                Magic!

               <p>120231373274987476 Followers</p>




Donnerstag, 3. September 2009
(siehe oben)



Donnerstag, 3. September 2009
%pre~ "YaynHey".downcase


                                Magic!

               <pre>yay&#x000A;hey</pre>




Donnerstag, 3. September 2009
%ul
                 - %w{one two three}.each do |word|
                   %li= word


                                  Magic!
               <ul>
                 <li>one</li>
                 <li>two</li>
                 <li>three</li>
               </ul>




Donnerstag, 3. September 2009
Auto-IDs und -Klassen



Donnerstag, 3. September 2009
%ul
                 - ['foo', 'bar'].each do |el|
                   %li[el]= el

                                   Magic!
               <ul>
                 <li class='string' id='string_2970900'>foo</li>
                 <li class='string' id='string_2970890'>bar</li>
               </ul>




Donnerstag, 3. September 2009
Filter



Donnerstag, 3. September 2009
:textile
                 h1. Header

                     Hello _world_


                                       Magic!
               <h1>Header</h1>


                       <p>Hello <em>world</em></p>




Donnerstag, 3. September 2009
Verfügbare Filter
                   ‣ plain        ‣ sass
                   ‣ javascript   ‣ textile
                   ‣ escaped      ‣ markdown
                   ‣ ruby         ‣ maruku
                   ‣ preserve     ‣ cdata
                   ‣ erb          ‣ roll yer own

Donnerstag, 3. September 2009
Kommentare



Donnerstag, 3. September 2009
/ This is a comment


                                Magic!


               <!-- This is a comment -->




Donnerstag, 3. September 2009
/[if IE]
                 %a{ :href => 'http://www.mozilla.com/en-US/firefox/' }
                   %h1 Get Firefox!



                                     Magic!
               <!--[if IE]>
                 <a href="http://www.getfirefox.com/">
                   <h1>Get Firefox!</h1>
                 </a>
               <![endif]-->




Donnerstag, 3. September 2009
-# A silent comment




Donnerstag, 3. September 2009
-# A silent comment

                                Magic!




Donnerstag, 3. September 2009
Und viel mehr.



Donnerstag, 3. September 2009
atlin.com/docs/rdoc/ classes/Haml.html
   http://haml.hamptonc
Donnerstag, 3. September 2009
F.A.Q.



Donnerstag, 3. September 2009
Performance



Donnerstag, 3. September 2009
Ohne Rails



Donnerstag, 3. September 2009
require 'rubygems'
                require 'haml'
                template = open('simple.haml').read
                engine = Haml::Engine.new(template)
                puts engine.render




Donnerstag, 3. September 2009
template = <<END
            %h1= foo
            END
            obj = Object.new
            engine =
              Haml::Engine.new(template).def_method(obj, :render, :foo)
            puts obj.render(:foo => 'bar')




Donnerstag, 3. September 2009
Migration



Donnerstag, 3. September 2009
SASS
Donnerstag, 3. September 2009
http://sass-lang.com/



Donnerstag, 3. September 2009
Syntactically
                Awesome StyleSheets


Donnerstag, 3. September 2009
Warum?



Donnerstag, 3. September 2009
found via google search, source unknown
Donnerstag, 3. September 2009
Warum?



Donnerstag, 3. September 2009
Keine Variablen/
                Konstanten


Donnerstag, 3. September 2009
Keine Abstraktionen



Donnerstag, 3. September 2009
Kein „echtes“
                Kaskadieren


Donnerstag, 3. September 2009
Ein paar überflüssige
                Zeichen


Donnerstag, 3. September 2009
Installation



Donnerstag, 3. September 2009
(kommt mit haml)



Donnerstag, 3. September 2009
stylesheets/sass/screen.sass
                                Magic!

                stylesheets/screen.css



Donnerstag, 3. September 2009
Simples




Donnerstag, 3. September 2009
#main
                 :color #0f0
                 :width 300px
                 p
                   :color #030
                                    Magic!

               #main {
                 color: #0f0;
                 width: 300px; }
                 #main p {
                   color: #030; }




Donnerstag, 3. September 2009
a l te
             #main                       rna
               color: #0f0                     t i ve
                                                        syn
               width: 300px
               p                                              tax
                 color: #030

                                                   Magic!

               #main {
                 color: #0f0;
                 width: 300px; }
                 #main p {
                   color: #030; }




Donnerstag, 3. September 2009
(
                Könnte sinnvoll sein in Situationen mit
                Migrationshintergrund.
                )




Donnerstag, 3. September 2009
References
                      on parent




Donnerstag, 3. September 2009
a
                     color: #0f0
                     &:hover
                       color: #0ff

                                     Magic!

               a {
                 color: #0f0; }
                 a:hover {
                   color: #0ff; }



Donnerstag, 3. September 2009
#sidebar
                 :float left
                 :margin-left 20%
                 .ie6 &
                   :margin-left 40%

                                   Magic!
               #sidebar {
                 float: left;
                 margin-left: 20%; }
                 .ie6 #sidebar {
                   margin-left: 40%; }




Donnerstag, 3. September 2009
Compound
                                   styles




Donnerstag, 3. September 2009
.black-border
                 :border
                   :color #000
                   :width 2px
                   :style solid

                                  Magic!
               .black-border {
                 border-color: #000;
                 border-width: 2px;
                 border-style: solid; }




Donnerstag, 3. September 2009
Konstanten




Donnerstag, 3. September 2009
!bg_color = #002244
             body
               :background-color = !bg_color

                                Magic!
               body {
                 background-color: #002244; }




Donnerstag, 3. September 2009
Ach t u
                                                ng!
             !bg_color = #002244
             body
               :background-color = !bg_color

                                Magic!
               body {
                 background-color: #002244; }




Donnerstag, 3. September 2009
Berechnungen




Donnerstag, 3. September 2009
!bg_color = #002244
               body
                 :color = !bg_color + #020202

                                Magic!
               body {
                 color: #022446; }




Donnerstag, 3. September 2009
Mixins


Donnerstag, 3. September 2009
=standard-border
                 :border 1px solid black
               #main
                 +standard-border
                 :padding 5px
                                   Magic!
               #main {
                 border: 1px solid black;
                 padding: 5px; }




Donnerstag, 3. September 2009
Mixin-Argumente



Donnerstag, 3. September 2009
=border(!color = #000)
                 :border 1px solid
                    :color = !color
               #foo
                 +border(#fea)




Donnerstag, 3. September 2009
Kontrollstrukturen



Donnerstag, 3. September 2009
@for !n from 1 through 6
                 h#{!n}
                   :padding 0
                   :margin 0




Donnerstag, 3. September 2009
!shall_we = false

               @if !shall_we
                 body
                   :background-color yellow
               @else
                 body
                   :display none


Donnerstag, 3. September 2009
@import




Donnerstag, 3. September 2009
Ausgabe-Styles




Donnerstag, 3. September 2009
.box{border-top:1px solid black;border-bottom:5px
               solid black}body{background-
               color:#002244}#main{color:lime;p-background-
               color:lime;p-color:#000000}#main{border:1px solid
               black;padding:5px}

                                                        e ss ed
                                                c om pr
                                               :



Donnerstag, 3. September 2009
F.A.Q.



Donnerstag, 3. September 2009
Performance



Donnerstag, 3. September 2009
File caching



Donnerstag, 3. September 2009
Reload-Verhalten



Donnerstag, 3. September 2009
Benutzung ohne Rails



Donnerstag, 3. September 2009
require 'rubygems'
                require 'sass'

                template = open('simple.sass').read
                sass_engine = Sass::Engine.new(template)
                output = sass_engine.render
                puts output




Donnerstag, 3. September 2009
COMPASS

Donnerstag, 3. September 2009
CSS meta framework



Donnerstag, 3. September 2009
CSS-Frameworks

                   •Blueprint
                   •YUI-Grids
                   •960.gs
                   •YAML

Donnerstag, 3. September 2009
COMPASS-Module


                   •Reset
                   •Utilities
                   •Layout


Donnerstag, 3. September 2009
Installation



Donnerstag, 3. September 2009
> git clone git://github.com/nex3/haml.git
                > cd haml
                > sudo rake install

                > gem sources --add http://gems.github.com/
                > sudo gem install chriseppstein-compass




Donnerstag, 3. September 2009
Rails-Integration



Donnerstag, 3. September 2009
> compass --rails .



Donnerstag, 3. September 2009
app/stylesheets/foo.sass

                                Magic!

                public/stylesheets/compiled/foo.css




Donnerstag, 3. September 2009
Beispiel (Blueprint)



Donnerstag, 3. September 2009
header


                                artist_header          logo_header




                                                body




                                                footer




Donnerstag, 3. September 2009
!!! Strict
                %html{html_attrs('de-de')}
                  %head
                    = stylesheet_link_tag 'compiled/screen.css'
                    /[if IE]
                      = stylesheet_link_tag 'compiled/ie.css'
                  %body
                    .container
                      #header.span-24
                        #artist_header.span-6
                           %h1 Foo
                        #logo_header.span-18.last
                           %h2 Bar
                      #body.span-24
                        = yield
                      #footer.span-24




Donnerstag, 3. September 2009
!!! Strict
                %html{html_attrs('de-de')}
                  %head
                    = stylesheet_link_tag 'compiled/screen.css'
                    /[if IE]
                      = stylesheet_link_tag 'compiled/ie.css'
                  %body
                    #container
                      #header
                        #artist_header
                           %h1 Foo
                        #logo_header
                           %h2 Bar
                      #body
                        = yield
                      #footer




Donnerstag, 3. September 2009
@import compass/reset.sass
                @import blueprint/modules/grid.sass

                #container
                  +container

                #header
                  +column(24, true)

                    #artist_header
                      +column(6)

                    #logo_header
                      +column(18, true)

                #body
                  +column(24, true)

                #footer
                  +column(24, true)




Donnerstag, 3. September 2009
Flexible Raster-
                Definitionen


Donnerstag, 3. September 2009
(try that, blueprint!)



Donnerstag, 3. September 2009
@import compass/reset.sass
                @import blueprint/modules/grid.sass

                !blueprint_grid_columns = 10
                !blueprint_grid_width = 60px
                !blueprint_grid_margin = 10px
                #container
                  +container

                #header
                  +column(10, true)

                   #artist_header
                     +column(6)

                   #logo_header
                     +column(4, true)

                #body
                  +column(10, true)

                #footer
                  +column(10, true)




Donnerstag, 3. September 2009
F.A.Q.



Donnerstag, 3. September 2009
Duplikation im
                generierten Code


Donnerstag, 3. September 2009
Kompatibilität
                zwischen Frameworks


Donnerstag, 3. September 2009
Work in progress



Donnerstag, 3. September 2009
Fragen?



Donnerstag, 3. September 2009
{less}

Donnerstag, 3. September 2009
Motivation




Donnerstag, 3. September 2009
Syntax



Donnerstag, 3. September 2009
css = less



Donnerstag, 3. September 2009
Installation




Donnerstag, 3. September 2009
> sudo gem install less




Donnerstag, 3. September 2009
Rails



Donnerstag, 3. September 2009
> script/plugin install 
                > git://github.com/augustl/less-for-rails.git




Donnerstag, 3. September 2009
public/stylesheets/foo.less
                >>>
                public/stylesheets/foo.css




Donnerstag, 3. September 2009
Production vs. Dev




Donnerstag, 3. September 2009
It is very fabolous,
                  and the plugin has won many prizes for this.




                                                       [sic]



Donnerstag, 3. September 2009
Syntax



Donnerstag, 3. September 2009
Variablen



Donnerstag, 3. September 2009
@nice-blue: #5B83AD;
                @light-blue: @nice-blue + #111;

                #header { color: @light-blue; }




Donnerstag, 3. September 2009
Mixins




Donnerstag, 3. September 2009
.bordered {
                  border-top: dotted 1px black;
                  border-bottom: solid 2px black;
                }
                #menu a {
                  color: #111;
                  .bordered;
                }

                .post a {
                  color: red;
                  .bordered;
                }




Donnerstag, 3. September 2009
Nested rules




Donnerstag, 3. September 2009
#header {
                  color: black;

                      .navigation {
                        font-size: 12px;
                      }
                      .logo {
                        width: 300px;
                        :hover { text-decoration: none }
                      }
                }




Donnerstag, 3. September 2009
Operations




Donnerstag, 3. September 2009
@base: 5%;
                @filler: @base * 2;
                @other: @base + @filler;

                color: #888 / 4;
                background-color: @base-color + #111;
                height: 100% / 2 + @filler;




Donnerstag, 3. September 2009
Namespaces /
                                Accessors




Donnerstag, 3. September 2009
#bundle {
                  .button {
                    display: block;
                    border: 1px solid black;
                    background-color: grey;
                    :hover { background-color: white }
                  }
                  .tab { ... }
                  .citation { ... }
                }
                #header a {
                  color: orange;
                  #bundle > .button;
                }




Donnerstag, 3. September 2009
#defaults {
                  @width: 960px;
                  @color: black;
                }

                .article { color: #294366; }

                .comment {
                  width: #defaults[@width];
                  color: .article['color'];
                }



Donnerstag, 3. September 2009
Scope




Donnerstag, 3. September 2009
@var: red;

                #page {
                  @var: white;
                  #header {
                    color: @var; // white
                  }
                }




Donnerstag, 3. September 2009
Kommentare




Donnerstag, 3. September 2009
/* One hell of a comment */
                @var: red;

                // Get in line!
                @var: white;




Donnerstag, 3. September 2009
@import

Donnerstag, 3. September 2009
@import "library";
                @import "typo.css";




Donnerstag, 3. September 2009
discuss.



Donnerstag, 3. September 2009
http://twitter.com/halfbyte
                                http://github.com/halfbyte
                        http://www.flickr.com/photos/jankrutisch/




                                   dangge.


Donnerstag, 3. September 2009

Contenu connexe

Similaire à Liebe Dein Frontend wie Dich selbst! HAML & SASS & COMPASS & less

Huffduffer
HuffdufferHuffduffer
Huffdufferadactio
 
The Future of Communications Applications
The Future of Communications ApplicationsThe Future of Communications Applications
The Future of Communications ApplicationsVoxeo Corp
 
Rack Middleware
Rack MiddlewareRack Middleware
Rack MiddlewareJon Crosby
 
Basics of Metaprogramming in Ruby
Basics of Metaprogramming in RubyBasics of Metaprogramming in Ruby
Basics of Metaprogramming in RubyDigital Natives
 
Internationalization of your homepage
Internationalization of your homepageInternationalization of your homepage
Internationalization of your homepagegutskun
 
DjangoCon 2009 Keynote
DjangoCon 2009 KeynoteDjangoCon 2009 Keynote
DjangoCon 2009 KeynoteTed Leung
 
Oxente on Rails 2009
Oxente on Rails 2009Oxente on Rails 2009
Oxente on Rails 2009Fabio Akita
 

Similaire à Liebe Dein Frontend wie Dich selbst! HAML & SASS & COMPASS & less (9)

Huffduffer
HuffdufferHuffduffer
Huffduffer
 
Enecomp 2009
Enecomp 2009Enecomp 2009
Enecomp 2009
 
The Future of Communications Applications
The Future of Communications ApplicationsThe Future of Communications Applications
The Future of Communications Applications
 
Rack Middleware
Rack MiddlewareRack Middleware
Rack Middleware
 
Basics of Metaprogramming in Ruby
Basics of Metaprogramming in RubyBasics of Metaprogramming in Ruby
Basics of Metaprogramming in Ruby
 
ONA09 Audience
ONA09 AudienceONA09 Audience
ONA09 Audience
 
Internationalization of your homepage
Internationalization of your homepageInternationalization of your homepage
Internationalization of your homepage
 
DjangoCon 2009 Keynote
DjangoCon 2009 KeynoteDjangoCon 2009 Keynote
DjangoCon 2009 Keynote
 
Oxente on Rails 2009
Oxente on Rails 2009Oxente on Rails 2009
Oxente on Rails 2009
 

Plus de jan_mindmatters

Ruby for Artists and Tinkerers. A non-presentation.
Ruby for Artists and Tinkerers. A non-presentation.Ruby for Artists and Tinkerers. A non-presentation.
Ruby for Artists and Tinkerers. A non-presentation.jan_mindmatters
 
realtime audio on ze web @ hhjs
realtime audio on ze web @ hhjsrealtime audio on ze web @ hhjs
realtime audio on ze web @ hhjsjan_mindmatters
 
Railsrumble railscamphh 2010
Railsrumble railscamphh 2010Railsrumble railscamphh 2010
Railsrumble railscamphh 2010jan_mindmatters
 
10 fun projects to improve your coding skills
10 fun projects to improve your coding skills10 fun projects to improve your coding skills
10 fun projects to improve your coding skillsjan_mindmatters
 
MongoDB & Mongomapper 4 real
MongoDB & Mongomapper 4 realMongoDB & Mongomapper 4 real
MongoDB & Mongomapper 4 realjan_mindmatters
 
Show the frontend some love - HAML, SASS and COMPASS
Show the frontend some love - HAML, SASS and COMPASSShow the frontend some love - HAML, SASS and COMPASS
Show the frontend some love - HAML, SASS and COMPASSjan_mindmatters
 
Lehmanns Rails Erweitern
Lehmanns Rails ErweiternLehmanns Rails Erweitern
Lehmanns Rails Erweiternjan_mindmatters
 
Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007jan_mindmatters
 

Plus de jan_mindmatters (9)

Ruby for Artists and Tinkerers. A non-presentation.
Ruby for Artists and Tinkerers. A non-presentation.Ruby for Artists and Tinkerers. A non-presentation.
Ruby for Artists and Tinkerers. A non-presentation.
 
realtime audio on ze web @ hhjs
realtime audio on ze web @ hhjsrealtime audio on ze web @ hhjs
realtime audio on ze web @ hhjs
 
Railsrumble railscamphh 2010
Railsrumble railscamphh 2010Railsrumble railscamphh 2010
Railsrumble railscamphh 2010
 
10 fun projects to improve your coding skills
10 fun projects to improve your coding skills10 fun projects to improve your coding skills
10 fun projects to improve your coding skills
 
MongoDB & Mongomapper 4 real
MongoDB & Mongomapper 4 realMongoDB & Mongomapper 4 real
MongoDB & Mongomapper 4 real
 
Show the frontend some love - HAML, SASS and COMPASS
Show the frontend some love - HAML, SASS and COMPASSShow the frontend some love - HAML, SASS and COMPASS
Show the frontend some love - HAML, SASS and COMPASS
 
Merb. Rails in anders.
Merb. Rails in anders.Merb. Rails in anders.
Merb. Rails in anders.
 
Lehmanns Rails Erweitern
Lehmanns Rails ErweiternLehmanns Rails Erweitern
Lehmanns Rails Erweitern
 
Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007
 

Dernier

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
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
 
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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 

Dernier (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
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
 
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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 

Liebe Dein Frontend wie Dich selbst! HAML & SASS & COMPASS & less