![Page 1: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/1.jpg)
Underdog Web Frameworks
Aslak Hellesøy
![Page 2: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/2.jpg)
We’ll look at these
• Sinatra + Haml + Sass + DataMapper
• Camping + Markaby + ActiveRecord
• Waves +
![Page 3: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/3.jpg)
3 Webapps in 45 minutes
![Page 4: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/4.jpg)
Why?
$ rails demo; du -sh demo; find demo | wc -l; rm -Rf demo400K85
![Page 5: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/5.jpg)
Name
Homepage
Description
Events
Name
RubyFoolsRuby conference in Copenhagen and Oslo
RubyConfTHE Ruby conference
New Event
Create
![Page 6: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/6.jpg)
REST
GET /create # Find all Events # Render them + form
POST /create # Create an Event # Redirect to GET /create
![Page 7: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/7.jpg)
<html> <head> <title>Events</title> <link href='/stylesheet.css' media='screen' rel='stylesheet' type='text/css' /> <meta content='text/html; charset=utf-8' http-equiv='Content-Type' /> </head> <body> <table> <caption>Events</caption> <tr class='odd'> <th class='name' scope='col'>Name</th> </tr> <tr class='even'> <td class='name'> <a href='http://rubyfools.com'>RubyFools</a> Ruby conference in Copenhagen and Oslo </td> </tr> <tr class='odd'> <td class='name'> <a href='http://rubyconf.org'>RubyConf</a> THE Ruby conference </td> </tr> </table> <form action='/events' method='POST'> <fieldset> <legend>New Event</legend>
<label for='name'>Name</label> <input id='name' name='name' size='30' type='text' /> <br />
<label for='url'>Homepage</label> <input id='url' name='url' size='30' type='text' /> <br />
<label for='description'>Description</label> <textarea cols='30' id='description' name='description' rows='4' type='description'> </textarea> <br />
<input class='submit' name='foo[bar]' type='submit' value='Create' /> </fieldset> </form> </body>
</html>
![Page 8: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/8.jpg)
body { background:#B5B5B5 none repeat scroll 0%; font-family:Verdana,Arial,"Bitstream Vera Sans",Helvetica,sans-serif; line-height:160%; margin:0pt; padding:30px; }h1 { display:block; padding-bottom:5px; }a { color:black; }form label { float:left; font-weight:bold; width:120px; }form input, form textarea { margin-bottom:5px; width:180px; }form input.submit { margin-left:120px; margin-top:5px; width:90px; }form br { clear:left; }table { background:#FFFFFF none repeat scroll 0%; border:1px solid #000000; border-collapse:collapse; width:100%; }table caption { background:#FFFFFF none repeat scroll 0%; border-color:#000000 rgb(0, 0, 0) -moz-use-text-color; border-style:solid solid none; border-width:1px 1px medium; margin:0pt; padding:8px 20px; text-align:left; }table th, table td { border-bottom:1px solid #B5B5B5; margin:0pt; padding:8px 20px; text-align:center; }table th.name, table td.name { text-align:left; }table th { color:#999999; }table tr.odd { background:#E6E6E6 none repeat scroll 0%; }table tr.even { background:#F1F1F1 none repeat scroll 0%; }table td a { display:block; font-weight:bold; }
![Page 9: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/9.jpg)
100 KbSASS
![Page 10: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/10.jpg)
Camping, a Microframework4Kb
![Page 11: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/11.jpg)
144 Kb /1000 LOC
![Page 12: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/12.jpg)
Waves
• Compact: 1000 LOC
• Sequel (+migrations)
• Rack
• Threadsafe
![Page 13: Underdog Web Frameworksjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/aslak_underdog.pdf · Name Homepage Description Events Name RubyFools Ruby conference in Copenhagen and Oslo RubyConf](https://reader034.vdocument.in/reader034/viewer/2022050407/5f845ad9c0a7250827077d22/html5/thumbnails/13.jpg)