SlideShare una empresa de Scribd logo
1 de 86
FRANK
blahed.com
blahed.com
blahed.com




software developer @ medium
medium
medium




we build a lot of websites
departmentalized workflow
departmentalized workflow



   -design
departmentalized workflow



   -design
   -front end
departmentalized workflow



   -design
   -front end
   -server side
static builds are part of our workflow
everyone was using something different
everyone was using something different



        -django
everyone was using something different



        -django
        -sinatra
everyone was using something different



        -django
        -sinatra
        -static html
the product is always html/css/js
the product is always html/css/js


 and we wanted to produce it
    better, faster, and easier
the gauntlet has been laid
FRANK
RubyGem
FRANK
RubyGem
What is this frank?
What is this frank?




static site builder/rapid prototyper
What is this frank?




static site builder/rapid prototyper



         not a framework
Why is this frank?
Why is this frank?


-build a lot of websites
Why is this frank?


-build a lot of websites
-a framework isn’t always the best solution
Why is this frank?


-build a lot of websites
-a framework isn’t always the best solution
-no routing
Why is this frank?


-build a lot of websites
-a framework isn’t always the best solution
-no routing
-websites are html/js/css
Why is this frank?


-build a lot of websites
-a framework isn’t always the best solution
-no routing
-websites are html/js/css
-there are good solutions for creating html/js/css
How is this frank?
How is this frank?



-use tilt and rack
How is this frank?



-use tilt and rack
-hook it all together
How is this frank?



-use tilt and rack
-hook it all together
-add a little ruby magic
Frameworks
Frameworks



-changed the way we develop
Frameworks



-changed the way we develop
-great for webapps
Frameworks



-changed the way we develop
-great for webapps
-layouts and sharing of code
Frameworks



-changed the way we develop
-great for webapps
-layouts and sharing of code
-haml, sass, less, coffeescript, etc
frameworks are too much...
frameworks are too much...



-when you don’t have a complicated app
frameworks are too much...



-when you don’t have a complicated app
-when you want to keep it simple
frameworks are too much...



-when you don’t have a complicated app
-when you want to keep it simple
-when you need to quickly prototype
frameworks are too much...



-when you don’t have a complicated app
-when you want to keep it simple
-when you need to quickly prototype
-when you don’t need a framework
so what do we usually do...
so what do we usually do...

use a framework anyway
so what do we usually do...

use a framework anyway
          well...
so what do we usually do...

use a framework anyway
          well...

     NO MORE!!!
frank is a non-framework
with some framework like
          features
frank is a non-framework
with some framework like
          features


-templating languages
frank is a non-framework
with some framework like
          features


-templating languages
-named layout support
frank is a non-framework
with some framework like
          features


-templating languages
-named layout support
-partials/includes
frank is a non-framework
with some framework like
          features


-templating languages
-named layout support
-partials/includes
-custom helper methods
frank is a non-framework
with some framework like
          features


-templating languages
-named layout support
-partials/includes
-custom helper methods
-lorem text helpers
frank is a non-framework
with some framework like
          features


-templating languages
-named layout support
-partials/includes
-custom helper methods
-lorem text helpers
-lorem image helpers
erb

<div id="profile">
  <div class="left column">
    <div id="date"><%= print_date %></div>
    <div id="address"><%= current_user.address %></div>
  </div>
  <div class="right column">
    <div id="email"><%= current_user.email %></div>
    <div id="bio"><%= current_user.bio %></div>
  </div>
</div>
haml


#profile
  .left.column
    #date= print_date
    #address= current_user.address
  .right.column
    #email= current_user.email
    #bio= current_user.bio
choices...
<div id="profile">
  <div class="left column">
    <div id="date"><%= print_date %></div>
    <div id="address"><%= current_user.address %></div>
  </div>
  <div class="right column">
    <div id="email"><%= current_user.email %></div>
    <div id="bio"><%= current_user.bio %></div>
  </div>
</div>




#profile
  .left.column
    #date= print_date
    #address= current_user.address
  .right.column
    #email= current_user.email
    #bio= current_user.bio
lorem text




lorem.sentence                 lorem.date
lorem.words(5)                 lorem.name
lorem.word                     lorem.first_name
lorem.paragraphs(10)           lorem.last_name
lorem.paragraph                lorem.email
lorem images



lorem.image(width, height, true)
lorem images
lorem images
lorem images
lorem images
Getting started
Getting started



$ frank projectx
Getting started



$ frank projectx
   -----------------------
    Frank:
    - Creating 'projectx'
    - Copying Frank template

  Congratulations, 'projectx' is ready to go.
Getting started



$ frank projectx
   -----------------------
    Frank:
    - Creating 'projectx'
    - Copying Frank template

   Congratulations, 'projectx' is ready to go.


$ ls projectx
Getting started



$ frank projectx
   -----------------------
    Frank:
    - Creating 'projectx'
    - Copying Frank template

   Congratulations, 'projectx' is ready to go.


$ ls projectx
. .. dynamic/ helpers.rb settings.yml static/
dynamic folder



contains templates and layouts that will
dynamically be compiled to html/js/css
dynamic folder



contains templates and layouts that will
dynamically be compiled to html/js/css



   erb, haml, sass, less, builder, liquid,
   mustache, markdown, textile, and
              coffeescript
static folder



   contains static assets that will be
rendered before the dynamic layer is hit
static folder



   contains static assets that will be
rendered before the dynamic layer is hit



    html, css, js, images, swf, files, etc
helpers.rb



  your custom ruby helpers that are
available for use in dynamic templates
helpers.rb



  your custom ruby helpers that are
available for use in dynamic templates


   def this_helper(str)
     “returns this string”
   end
settings.yml



contains settings for rack, folder names,
               and layouts
settings.yml



contains settings for rack, folder names,
               and layouts


 #   Templates:
 #
 #   'layouts' is a list of layouts to use, where
 #   'name' is the filename (without extension).
 #    You can also use multiple layouts, and limit
 #    their scopes like so:
 #       - name: blog_layout
 #        only: [blog]
 #       - name: normal
 #        not: [blog, ajax]
basically...
basically...


you request:
http://localhost:3601/thispage
basically...


you request:
http://localhost:3601/thispage



frank looks for:
projectx/static/thispage/index.html
basically...


you request:
http://localhost:3601/thispage



frank looks for:
projectx/static/thispage/index.html



then looks for:
projectx/dynamic/thispage.*
demo
questions?
  the gill sans question mark looks funny...
blahed.com
http://github.com/blahed/frank


     clap now

Más contenido relacionado

Último

Último (20)

Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 

Destacado

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destacado (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

Frank: The Static Site Non-Framework

Notas del editor