рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ # 16 рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд░реЛрдЪрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рдмрд╛рддреЗрдВ

рд╢реБрдн рджрд┐рди, рдкреНрд░рд┐рдп Kravravchiansред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВрдиреЗ рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг / рдкреБрд╕реНрддрдХрд╛рд▓рдп / рдХрд╛рд░реНрдпрдХреНрд░рдо рджреЗрдЦреЗ рдЬреЛ рдореИрдВ рд╣реНрд░рдм рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред



pourover



рдЫрд╡рд┐

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдФрд░ рд╡рд┐рд╢рд╛рд▓ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЫрд╛рдВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЬрд╣рд╛рдВ рд╣рдо рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рддрддреНрд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред PourOver рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд░рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдмрди рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд, рдкрд╛рд░ рдФрд░ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред PourOver рдХреЛ рдпрд╛рдж рд╣реЛрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрдЧрд░ рдирдП рддрддреНрд╡ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ рдпрд╛ рдкреБрд░рд╛рдиреЗ рдмрджрд▓реЗ рд╣реБрдП рд╣реИрдВ рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕реНрдорд╛рд░реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред IE7 +, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 4+, рд╕рдлрд╛рд░реА 5+, рдУрдкреЗрд░рд╛ 9+, рдХреНрд░реЛрдо 1+ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред



рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣ рдиреНрдпреВрдпреЙрд░реНрдХ рдЯрд╛рдЗрдореНрд╕ рдХреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЧреАрдердм рдкрд░ рдбреЗрдЯрд╛ рдФрд░ рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдп backbone.stickit рдкреНрд▓рдЧрдЗрди рд╣реИ - рд╢реНрд░реЗрдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдкрд╢реНрдЪрд┐рдореА рдореАрдбрд┐рдпрд╛ рдХреЗ geeks рд╕реАрдзреЗ рдЙрда рдЧрдП рд╣реИрдВ - рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдж рдЧрд╛рд░реНрдЬрд┐рдпрди рдФрд░ рдлрд╛рдЗрдиреЗрдВрд╢рд┐рдпрд▓ рдЯрд╛рдЗрдореНрд╕ рд╕реЗ рд╢рд╛рдВрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИред





Superhero.js



рдЫрд╡рд┐

рд╕реБрдкрд░рд╣реАрд░реЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдПрдХ рднрдВрдбрд╛рд░ рд╣реИред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЗрдЦреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рдЬреЛ рдХрдИ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИрдВ:

  1. рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдордЭрдирд╛ : рд╕рд┐рдВрдЯреИрдХреНрд╕, рд╕реНрдЯрд╛рдЗрд▓ рдФрд░ рдиреБрдХрд╕рд╛рди
  2. рдЖрдкрдХреЗ рдХреЛрдб рдХрд╛ рд╕рдВрдЧрдарди : рдПрдкреАрдЖрдИ рдбрд┐рдЬрд╛рдЗрди, рдкреИрдЯрд░реНрди рдФрд░ рд░реВрдкрд░реЗрдЦрд╛
  3. рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг : рдкрд░реАрдХреНрд╖рдг рдпреЛрдЧреНрдп рдХреЛрдб, рдкрдардиреАрдп рдкрд░реАрдХреНрд╖рдг
  4. рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЙрдкрдХрд░рдг : рд╡рд░реНрдХрдлрд╝реНрд▓реЛ, рдбреАрдмрдЧрд┐рдВрдЧ
  5. рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ : рддреЗрдЬ рдФрд░ рдХреБрд╢рд▓ рдХреЛрдб
  6. рд╕реБрд░рдХреНрд╖рд╛ : рд╕рд┐рджреНрдзрд╛рдВрдд, рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рд╕рддреНрдпрд╛рдкрди
  7. рд╣реБрдб рдХреЗ рддрд╣рдд : рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд╕рдордЭрдирд╛
  8. рдХреНрд╖рд┐рддрд┐рдЬ рдкрд░ : рдЪреАрдЬреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП
  9. рдЕрджреНрднреБрдд рд▓реАрдЧ : рдЕрдиреНрдп рд╕реБрдкрд░рд╣реАрд░реЛ рд╕рдВрд╕рд╛рдзрди




рдЬреАрдд



рдЫрд╡рд┐

рдПрдХ рдЖрд╕рд╛рди-рд╕реЗ-рд╕рдордЭрдиреЗ рдФрд░ рддреНрд╡рд░рд┐рдд-рдЙрдкрдпреЛрдЧ рдЧреНрд░рд┐рдб рдЙрдкрдХрд░рдгред рдПрд╕рдПрдПрд╕рдПрд╕ рдФрд░ рд╕реНрдЯрд╛рдЗрд▓рд╕ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред рд▓реЛрдХрдкреНрд░рд┐рдп рд╕реАрдПрд╕рдПрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдЗрд╕рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВред



Mach.js



"Node.js. рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛"



var mach = require('mach'); var app = mach.stack(); app.use(mach.gzip); app.use(mach.logger); app.use(mach.contentType, 'text/html'); app.use(mach.file, 'public'); app.map('files.example.com', function (app) { app.use(mach.file, '/www/static-files'); }); app.use(mach.session, 'session secret'); app.use(mach.params); app.get('/', function (request) { return "Hello world!"; }); app.get('/posts/:postId.json', function (request, postId) { return query('SELECT * FROM posts WHERE id=?', postId).then(function (post) { return post ? mach.json(post) : 404; }); }); app.post('/posts/:postId/comments', function (request, postId) { return createComment(postId, request.params).then(function (comment) { return mach.json(comment, 201); }, function (error) { return mach.json({ error: error.message }, 403); }); }); app.get('/legacy-url', function (request) { return mach.redirect('/new-url', 301); }); mach.serve(app, 3000);
      
      







Vis.js



рдЫрд╡рд┐

рдЧрддрд┐рд╢реАрд▓ рдбреЗрдЯрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реАред рдЖрд╕рд╛рдиреА рдХреЗ рд╕рд╛рде, рдпрд╣ рдЖрдкрдХреЛ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрдирдХреЗ рд╕рд╛рде рд╣реЗрд░рдлреЗрд░ рдФрд░ рдмрд╛рддрдЪреАрдд рднреА рдХрд░рддрд╛ рд╣реИред рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреГрд╢реНрдп рд╡рд┐рдХрд▓реНрдкред

  var container = document.getElementById('mytimeline'); var data = [ {id: 1, content: 'item 1', start: '2013-04-20'}, {id: 2, content: 'item 2', start: '2013-04-14'}, {id: 3, content: 'item 3', start: '2013-04-18'}, {id: 4, content: 'item 4', start: '2013-04-16', end: '2013-04-19'}, {id: 5, content: 'item 5', start: '2013-04-25'}, {id: 6, content: 'item 6', start: '2013-04-27'} ]; var options = {}; var timeline = new vis.Timeline(container, data, options);
      
      







рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рдмрд╛рдд рдХрд░реЗрдВ, рддреЛ рдореИрдВ рднреА рдЯреНрд░рдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ - рдкрд╛рд╡рд░рдлреБрд▓ рдЯреНрд░реА рдПрдбрд┐рдЯрд┐рдВрдЧ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред



рдкрд╢реНрдЪрд┐рдореА рд╡рд┐рдЪрд╛рд░ рдпрд╛ рдХреНрдпрд╛ рдпрд╣ Habr├й рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧрд╛:







рдЕрдВрдд рдореЗрдВ:







рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЖрдк рдореЗрдВ рд╕реЗ рдХреБрдЫ рдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдореБрдЭрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рдЗрд╕реЗ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╡рд┐рдХрд╛рд╕ рдлреЗрд░реАрд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛, рддреЛ рдореИрдВ рд╣рдореЗрд╢рд╛ рдЙрдирдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд░ рдЦреБрд╢ рд╣реВрдВред рдореЗрд░рд╛ рд╕рдВрдкрд░реНрдХ рд╣реИрдмреЗ рдкрд░ рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЯреНрд╡рд┐рдЯрд░ @ilya_pestov рдкрд░ рд╢реАрдШреНрд░ рд╣реА рд╕рдмрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗред рдФрд░ рдореИрдВ рд╣реИрд╢рдЯреИрдЧ # рдЬрд╝рд╛рджрд░реНрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рд╡реЗрдм рдпреБрд╡рддреА рдХреЗ рд▓рд┐рдП рд╕рднреА "рд╢рд╛рдВрдд рд╕рд╛рдорд╛рди" рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рд╢рд╛рдпрдж рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЛрдВ рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред



рдкрд┐рдЫрд▓рд╛ рд╕рдВрдЧреНрд░рд╣ (рдЕрдВрдХ 15)



рдореИрдВ рдХрд┐рд╕реА рднреА рдЯрд╛рдЗрдкреЛрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБред рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ - рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЗрдВ рд▓рд┐рдЦреЗрдВред



рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред



UPD: рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХреЗ рд▓рд┐рдП рд╣реИрд╢рдЯреИрдЧ # рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рд╡рд┐рдХрд▓реНрдк рд╕реБрдЭрд╛рдПрдВред рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ - рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡реЗрдм рдпреВрдЯрд┐рд▓рд┐рдЯреА рджреЗрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рд╣реИрдмрд░ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреИрдЧ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддрд╛рдХрд┐ рдХреЛрдИ рд╕реНрд▓реИрдЧ рди рд╣реЛ; рджреВрд╕рд░реА рдмрд╛рдд - рдореИрдВ рдЕрдореЗрд░рд┐рдХреА "рдлреНрд░реАрдмреАрдЬ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╡рд┐рд╖рдп рдХреЛ рдЖрдкрдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдФрд░ рдореИрдВ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдирд┐рдпреЛрд▓рд┐рдЬрд╝реНрдо рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реВрдВ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реА рднрд╛рд╖рд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ; рддреАрд╕рд░рд╛, "рдлреНрд░реАрдмреАрдЬ" рдХрд╛ рд╢рд╛рдмреНрджрд┐рдХ рдЕрдиреБрд╡рд╛рдж "рдлреНрд░реАрдмреА" рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреБрд░рд╛рдиреЗ рд░реВрд╕реА рд╕реНрд╡рдЪреНрдЫ рд╢рдмреНрдж "рдЬрд╝реЗрдбрд░реНрдорд╛" рдХреЛ рдЦреЛрджрд╛ - рдмрд┐рдирд╛ рдХреБрдЫ рд▓рд┐рдПред



рд╣реИрдкреНрдкреА рдИрд╕реНрдЯрд░!




All Articles