Web based applications

Participants:

Hannan Butt (Facilitator)

Darin Phelps

Brooks Swinnerton

Mark Macmurdo

Brendan Woodcock

Rob Capellini

Aleksandrs Rogozins

Web frameworks:

Ruby on Rails

Django

PHP

Hannan – primarily using Ruby and Java

AJAX – Async Java and XML

Process:

1. first step is development on a local machine

2. getting onto a server (can use cloud computing tech aws, hiroku, etc)

3. deployment

Development

HTML / CSS – latest technologies HTML5 and CSS3

– developing with CSS — keep in mind that browsers all use different defaults for text rendering, etc

– use CSS resets (e.g. Yahoo! reset)

Dynamic CSS generators – SAS, moustache, LEX – make  it easier to write CSS code

Cross-browser testing – Selenium (browser automation) — used for automated testing, Sauce Labs cloud-based Selenium implementation, can select operating systems and devices

– when testing usually test to the latest browser version (jquery dropping ie 5 or 6)

– icon fonts – using icons instead of local fonts from user

Javascript – AJAX, Node.js (server-side Javascript), Backbone.js, Require.js (modularization and dependency management of Javascript code), jQuery / jQuery UI, Coffee Script (higher level of abstraction of Javascript)

Kickstarter HTML, Twitter Bootstrap – HTML library where you get a set of pre-designed elements — takes away a lot of the burden of using javascript — helps sites look the same across

Grids – Keeps alignment of every single element in a website — allows for easier implementation of responsive design

Don’t automatically use Webkit, because it’s not necessarily cross-browser compliant

Yahoo! Query Language – allows you to use any website as an API – they webscrape the page for you and turn the page into an API

Search Engine Optimization – need to keep your site searchable

Considerations when choosing framework

– Security

– Learning curve

– Speed

– Support

– Maturity of support community

Facebook’s GitHub page — compile PHP to C code and run the C code

Laravel – PHP framework, version 4.0 coming out today — very similar to Rails (migrations, composer similar to gems, etc)

Model , View, Controller Framework

– Model – data layer

– View – what the user sees

– Controller – controls flow between models

Deployment

Putting your app on a server that can run it.  Tomcat — allows Java to be run as a web app.  Capistrano for Ruby — deploys onto a development, staging, and production environment all at once.

Jenkins – allows you to do automatically deploy code

You have to deploy without the end user know that something is happening — you never see Google go down!