the internet works, kinda • This class will teach you how to program, kinda • This class will teach you how Rails works, kinda • This class will show you the tools of the trade • This class will show you how to build a prototype web application
(5y) • Started programming with toy languages • Ruby was my first real language • Sinatra my first web framework • Rails is where the real money comes from • Since then, many other languages, Ruby still primary
The darker and deeper parts of the web • HTML, CSS, or JavaScript • Other languages, frameworks, or similar • Profiling, testing, or coverage • The really hard stuff
presentation • Each session is video recorded • Each session is audio recorded • Any code, materials, or links will be on the website: http://nolaonrails.com/courses
15 minutes long • 5 minute discussion on what we did last class • 45 minutes on part of building a rails application • 15 minutes reviewing what we learned • 10 minutes with cleanup, problem areas, and resources
want • Usually requires writing in a programming language • Making a program read your code • The process of providing input, resolving logic, pushing output
Ruby • Started in 2001 as a web app building script • The latest version is 3.2 and is widely used • Removes a lot of the boilerplate from building web applications
• The client is a browser ◦ Renders HTML ◦ Styles with CSS ◦ Runs JavaScript • The server is a stack including: ◦ A HTTP Server (Apache, Nginx, Lighttpd) ◦ A daemon listening on a port (80) • The protocol is called HTTP
• Gets a response from the server • Attempts to render the response (HTML) • Styles the DOM (CSS) • Manipulates the DOM (JS) • Can (optionally) send other types of requests
• GET is for asking the server for content: "Server, can you GET me the /home resource?" • POST is for sending the server content: "Server, please take this data to /accounts/new" There are others, but are unimportant
be other servers) • Processes the request path (looks like '/xxx/vyyy/qqq` • Passes along the parameters (looks like '? key=value&key2=value2`) • Runs logic (Like a framework, Rails) • Responds with a header and body of info (usually HTML)