
A few interesting and useful things for web developer # 24
Good day, dear Khabravchians. Recently, I saw several interesting and useful tools / libraries / events that I want to share with Habr.

Webhook is a platform for creating sites. It is important not to be confused with static generators, because this is exactly the “CMS builder”. The project successfully completed the Kickstarter campaign on May 14 this year, where it was able to raise the amount twice as much as was necessary. And just recently, the first version of the product was released. Webhook is built using real-time NodeJS, Grunt and Firebase , runs on Windows, Linux and Mac, inside a whole system of widgets with many variations on the output, "Django-like templating" using Swig JS , a cross-platform admin panel and a number of pluses.

TypeScript is a programming language that is designed to extend the basic capabilities of JavaScript. I want to draw your attention to the fact that the project from Microsoft is a whole event, because TypeScript is also the first public repository on the official account of the corporation on GitHub.
"Starts from JavaScript, Ends with JavaScript":
A live list of the best videos from lectures and conferences in Python. Duplicate the contents of the repository at the time of publication of the collection:
2009
2010
2011
2012
2013
2014

When it comes to really large web applications, it is very difficult or even impossible for developers to follow all the changes in the DOM tree. At the same time, each update of the DOM can greatly affect the performance of the project, everything will happen slowly and with delays. By the way, there is a wonderful article on Habr "Web page rendering: what the front-end developer should know about it" from the user skutin . Virtual DOM is a collection of modules that provides a declarative representation of the DOM in your project. That is, it becomes possible to write all state changes to the virtual tree, and only then update the DOM. In general, the project deserves a separate article, at first the idea of "React's diff algorithm" was described , then the concept appeared"Virtual DOM and diffing algorithm" , and only then implementation and principles of work.

Web components, though slowly but surely, are coming into our lives. This specification is often written in the West, it is zealously promoted by large companies. Well, I’ll say on my own that this is a new step in the development of web standards, which opens up new opportunities for developers and changes the idea of semantics. That is why I want to share two replenished collections of various web components: Custom Elements and Component Kitchen .

In previous selections, I already shared the projects of the wonderful company HubSpot. But he was surprised to find that he had not yet provided links to Offline for the easiest way to determine the online / offline user mode and display the corresponding message on the screen in different topics, and Select to create a simple custom selection without using third-party libraries.
Previous Collection (Issue 23)
I apologize for any typos. If you notice a problem - please write in a personal.
Thank you all for your attention.
Webhook

Webhook is a platform for creating sites. It is important not to be confused with static generators, because this is exactly the “CMS builder”. The project successfully completed the Kickstarter campaign on May 14 this year, where it was able to raise the amount twice as much as was necessary. And just recently, the first version of the product was released. Webhook is built using real-time NodeJS, Grunt and Firebase , runs on Windows, Linux and Mac, inside a whole system of widgets with many variations on the output, "Django-like templating" using Swig JS , a cross-platform admin panel and a number of pluses.
# Install Webhook through npm
npm install grunt-cli wh
# Create your first site
wh create my_awesome_site
# Load the local runserver
cd my_awesome_site
wh serve
# Make your website live
wh deploy
TypeScript

TypeScript is a programming language that is designed to extend the basic capabilities of JavaScript. I want to draw your attention to the fact that the project from Microsoft is a whole event, because TypeScript is also the first public repository on the official account of the corporation on GitHub.
"Starts from JavaScript, Ends with JavaScript":
class Point {
x: number;
y: number;
constructor(x: number, y: number) {
this.x = x;
this.y = y;
}
getDist() {
return Math.sqrt(this.x * this.x +
this.y * this.y);
}
}
var p = new Point(3,4);
var dist = p.getDst();
alert("Hypotenuse is: " + dist);
Py must watch
A live list of the best videos from lectures and conferences in Python. Duplicate the contents of the repository at the time of publication of the collection:
2009
2010
2011
2012
- Erik Rose: Parsing Horrible Things with Python
- Jack Diederich: Stop Writing Classes
- Ned Batchelder: Pragmatic Unicode, or, How do I stop the pain?
- Peter Inglesby: Discovering Descriptors
- Raymond Hettinger: The Art of Subclassing
2013
- David Beazley: Python 3 Metaprogramming
- Jessica McKellar: The Future of Python - A Choose Your Own Adventure
- Kenneth Reitz: Python for Humans
- Ned Batchelder: Loop like a native: while, for, iterators, generators
- Raymond Hettinger: Python's Class Development Toolkit
- Raymond Hettinger: Transforming Code into Beautiful, Idiomatic Python
2014
- Alex Gaynor: Fast Python, Slow Python
- Benjamin Peterson: Garbage Collection in Python
- Brandon Rhodes: All Your Ducks In A Row: Data Structures in the Standard Library and Beyond
- Christine Spang: Subprocess to FFI: Memory, Performance, and Why You Should'nt Shell - PyCon 2014
- David Beazley: Generators: The Final Frontier
- Guido van Rossum: Tulip: Async I / O for Python 3
- Mike Müller: Faster Python Programs through Optimization
KeystoneJS - CMS on Node.js

Virtual dom
When it comes to really large web applications, it is very difficult or even impossible for developers to follow all the changes in the DOM tree. At the same time, each update of the DOM can greatly affect the performance of the project, everything will happen slowly and with delays. By the way, there is a wonderful article on Habr "Web page rendering: what the front-end developer should know about it" from the user skutin . Virtual DOM is a collection of modules that provides a declarative representation of the DOM in your project. That is, it becomes possible to write all state changes to the virtual tree, and only then update the DOM. In general, the project deserves a separate article, at first the idea of "React's diff algorithm" was described , then the concept appeared"Virtual DOM and diffing algorithm" , and only then implementation and principles of work.
Custom Elements and Component Kitchen

Web components, though slowly but surely, are coming into our lives. This specification is often written in the West, it is zealously promoted by large companies. Well, I’ll say on my own that this is a new step in the development of web standards, which opens up new opportunities for developers and changes the idea of semantics. That is why I want to share two replenished collections of various web components: Custom Elements and Component Kitchen .
Offline and Select

In previous selections, I already shared the projects of the wonderful company HubSpot. But he was surprised to find that he had not yet provided links to Offline for the easiest way to determine the online / offline user mode and display the corresponding message on the screen in different topics, and Select to create a simple custom selection without using third-party libraries.
Western thoughts or what it would be worth translating into Habré:
- Open sourcing our email signature parsing library by Mailgun Team
- 8 Ways For A Programmer To Stay Sane
- Github's CSS
- Authoring Critical Above-the-Fold CSS
- Guide to Responsive-Friendly CSS Columns
- 3.14 things I didn't know about CSS | CSS Day
- A Compendium of SVG Information
- Responsive Images: Use Cases and Documented Code Snippets to Get You Started
- More Responsive Single-Page Applications With AngularJS & Socket.IO: Creating the Library
- 7 More Mistakes Commonly Made by PHP Developers
- Design Tips For Developers
- The Interactive Imperative in Mobile Design
- You May Be Losing Users If Responsive Web Design Is Your Only Mobile Strategy
- Social Influence: Incorporating Social Identity Theory Into Design
- 90 Percent of Everything
- E-Commerce Sites Should Include Contextual Search Snippets (96% Get it Wrong)
- How to Craft the Perfect 404 Page
- The Mystery Is Resolved: Chirpy Birds, Lost Numbers and Pretty Slow Wheels
- How to Land Your First Customers When You're Unknown
Says and shows Habr:
- “Which programming language is most liked in Yandex? And is love always mutual? From Zalina
- “Building Trusted Web Applications on React: Part 1, Browser Prototypes”
“Building Trusted Web Applications on React: Part 2, Optimization with Browserify”
“Building Trusted Web Applications on React: Part 3, Testing with Jasmine”
“Building Trusted web applications on React: Part 4, server generation "
" 18 surprises when reading jQuery source code " from jojo97 - “Interviewing for a JavaScript Developer Position ” by xamd
- “Building Routes Using OpenStreetMap, OSRM, and Leaflet” by HunterNNm
- "JQuery Deferred Case Studies " by format1981
- “Viewing DOM events in Firefox Developer Tools” by kolyuchii
- “Learning the Ruby Regular Expression Algorithm” by stdfox
Finally:
- rome.js - probably the first normal data picker independent of third-party libraries.
UPD: as suggested in the comments of rinnaatt there is still a wonderful and independent Pikaday - Headstart is a front - end framework and builder .
- VIDE.js - jQuery plugin for ease of creating a video background.
- PrettyEmbed.js - makes YouTube inserts look better (terrible description, look at the demo page and immediately understand everything).
- google-api-nodejs-client
- Justified.js - “jQuery Plugin to create Justified Image Gallery”.
- learning-angular - a set of all the necessary code fragments for learning Angular.
- go-underscore - a set of the most popular functions for Go.
- grunt-svgstore is a great plugin for creating .svg sprites.
- DomFlags - Chrome extension allows you to create shortcuts when working with the DOM.
- Rainbowstream - twitter client in your terminal
- Onebody - to put it mildly, it’s very strange, but it’s a social network for churches on Ruby on Rails.
- Smashing Magazine recommended the e-book for project management startups “ Making it right .” Painfully familiar symbolism on the cover ...
Previous Collection (Issue 23)
I apologize for any typos. If you notice a problem - please write in a personal.
Thank you all for your attention.
Only registered users can participate in the survey. Please come in.
Do you like the selection?
- 89.5% Yes 703
- 10.4% No 82