More details here: https://developer.mozilla.org/en/docs/Simple_Firefox_build
Get Firefox' source code:
git clone https://github.com/mozilla/gecko-dev.git
git checkout fx-team
Install dependencies:
// Concatenate your partials and append them to index.html | |
gulp.task('templates', function() { | |
var stream = streamqueue({objectMode: true}); | |
stream.queue(gulp.src([ | |
'./src/layout/header.html', | |
'./src/layout/body.html' | |
])); | |
stream.queue(gulp.src('./src/partials/**/*.html').pipe(partials())); |
More details here: https://developer.mozilla.org/en/docs/Simple_Firefox_build
Get Firefox' source code:
git clone https://github.com/mozilla/gecko-dev.git
git checkout fx-team
Install dependencies:
Créer des applications partagées pérennes qui peuvent être déployées à grande échelle.
Partagées
signifie que différents utilisateurs vont pouvoir interagir et "travailler" ensemble sur l'application
Grande échelle
, en 2013, signifie que des dizaines à des millions de personnes peuvent utiliser l'application. Une majorité de plateforme doit être accessibles (ordis de bureaux, portables, tablettes, téléphones mobiles) de préférence à moindre coût et donc sans avoir à tout refaire pour chaque appareil.
Vivant dans un monde régit par certaines lois physiques, il sera raisonnable de supposer que le réseau de communication est au pire ouvert. La sécurité de l'application ne devra pas supposer le contrôle du réseau, même dans si l'environnement de déploiement est considéré contrôlé.
Pérennes
signifie que l'arrivée de nouveaux appareils sur le marché ne remet pas en cause plus de 1% du temps de développement. Personne ne peut prévoir le futur ; il conviendra de garder un œil ouvert sur les ten
/// | |
var pkg = require("./package.json") | |
, rimraf = require("rimraf") | |
, gulp = require("gulp") | |
, gutil = require("gulp-util") | |
, filter = require("gulp-filter") | |
, plumber = require("gulp-plumber") | |
, concat = require("gulp-concat") | |
gulp.task("clean", function() { |
var gulp = require('gulp'); | |
var size = require('gulp-filesize'); | |
var stream = require('stream'); | |
var util = require('util'); | |
var styles = 'Assets/Styles'; | |
var scripts = 'Assets/Scripts'; | |
function aNewWritableStream() { | |
stream.Writable.call(this, { objectMode: true }); // make Stream behave like stream of objects instead of a Buffer with a set size |
module.exports = function (grunt) { | |
// Project configuration. | |
grunt.initConfig({ | |
// Store your Package file so you can reference its specific data whenever necessary | |
pkg: grunt.file.readJSON('package.json') | |
// ...tasks... | |
// ---- | |
// Sass (v3.3.0.rc.3) | |
// Compass (v1.0.0.alpha.18) | |
// ---- | |
$guss-rem-baseline: 10px !default; | |
// Transform a value into rem | |
// Assuming baseline is set to 10px on :root/html | |
@function rem($value, $baseline: $guss-rem-baseline) { |
The BBC has a server-side image service which provides developers with multiple sized versions of any image they request. It works in a similar fashion to http://placehold.it/ but it also handles the image ratios returned (where as placehold.it doesn't).
The original BBC News process (and my re-working of the script) follows roughly these steps...
div
s within the page (which have a class of delayed-image-load
) into a transparent GIF using a Base64 encoded string.
width
& height
HTML attributes of the image to the required sizediv
has custom data-attr
set server-side to the size of the imageimage-replace
onto each newly created transparent imagesetTimeout
to unblock the UI thread and which calls a function resizeImages
which enhances the image-replace
images so their source is now set to a URL whemymodule { | |
@at-root { | |
.#{&}-header { ... } | |
.#{&}-footer { ... } | |
.#{&}-body { | |
a { ... } | |
span { ... } | |
p { ... } | |
} | |
} |