Лекции:
- Введение в GitHub
- Continuous Integration
- Travis CI, пример сервиса для Continuous Integration
{ | |
"log": { | |
"level": "trace" | |
}, | |
"dns": { | |
"servers": [ | |
{ | |
"address": "tls://8.8.8.8" | |
} | |
] |
bind 'set completion-query-items 500' | |
bind 'set page-completions Off' | |
bind 'set colored-completion-prefix On' | |
bind 'set colored-stats On' | |
bind 'set completion-ignore-case On' | |
bind 'set enable-keypad On' | |
bind 'set show-all-if-ambiguous On' | |
bind 'TAB:menu-complete' |
class MasterSlave(Model): | |
# There should be only one Updater in polling mode, so we have to check that via this model | |
collection = 'master_slave' | |
ttl = 10 | |
holder_thread = None | |
@classmethod | |
def ensure_indexes(cls): | |
cls.get_collection().create_index([ | |
('created', pymongo.DESCENDING), |
const express = require('express'); | |
const app = express(); | |
app.get('/', (req, res) => { | |
res.setHeader('Content-Type', 'text/html; charset=utf-8'); | |
res.setHeader('Transfer-Encoding', 'chunked'); | |
res.write(` | |
<!doctype html> | |
<head> |
const weights = { | |
fcp: 2, | |
fmp: 5, | |
js: 3, | |
tti: 1 | |
} | |
const negativeWeights = { | |
fcp: 3, | |
fmp: 6, |
<script> | |
requestAnimationFrame(() => { | |
sendCounter('low-fmp-border') | |
requestAnimationFrame(() => { | |
sendCounter('high-fmp-border') | |
}) | |
}) | |
</script> | |
<div id="main">Main content</div> |
Лекции:
Здесь приведены шаги для выполнения задания с использованием стандартных компонент. Любые из них можно заменить аналогами
console.time('render')
, console.timeEnd('render')
var Fs = require('fs'); | |
var Http = require('q-io/http'); | |
var Q = require('q'); | |
var R = require('ramda'); | |
var readFile = R.composeP(R.toString, R.partial(Q.ninvoke, Fs, 'readFile')); | |
var readPackageInfo = R.composeP(JSON.parse, readFile, R.partial(Q, 'package.json')); | |
var homePageFromAuthor = R.compose(R.propOr('', 1), R.match(/.+?\((.+?)\)$/), R.prop('author')); |