Forget everything you thought you knew about NPM and yarn. In this talk we'll teach those old dogs some new tricks, and learn to manage dependencies for virtually any language.
Do you have an internal UI component library you struggle to tame? We'll discuss how to package, distribute, and deploy components, and look at tools that can help - TypeScript, Webpack, Artifactory, and npm/yarn. You'll learn how to create beautiful documentation, avoid the next leftpad incident, and leverage TypeScript interfaces to implicitly document component APIs, among many other things.
Do you have an internal UI component library you struggle to tame? Together, we'll take a journery to learn how to package, distribute, document, and use component libraries to improve organizational productivity.
Do you have an internal UI component library you struggle to tame? We'll discuss how to package, distribute, and deploy components, and look at tools that can help - TypeScript, Webpack, Artifactory, and npm/yarn. You'll learn how to create beautiful documentation, avoid the next leftpad incident, and leverage TypeScript interfaces to implicitly document component APIs, among many other things.
Do you have an internal UI component library you struggle to tame? I will describe how to package, distribute, document, and use component libraries to improve organizational productivity.
Do you have an internal UI component library you struggle to tame? I will describe how to package, distribute, and effectively use UI components, with a focus on Angular, Typescript, Webpack, and Artifactory.
Your component library doesn't have to become a hard-to-manage hydra. An internal component library can help improve visual consistency, quality, and consistency, and DRY out your code. And yet there are so many decisions to make: Angular or React, TypeScript or ES6 or Flow, dependency management, packaging, distribution, documentation, developer on-boarding, and so much more.
function fish_user_key_bindings | |
bind \e\[1\;9C forward-word | |
bind \e\[1\;9D backward-word | |
bind \e\[dw backward-kill-word | |
end | |
function portkill --description "Kill process running on port" | |
kill -9 (lsof -t -i:$argv) | |
end |
[alias] | |
st = status | |
di = diff | |
co = checkout | |
ci = commit | |
chp = cherry-pick | |
br = branch | |
sta = stash | |
gr = log --graph --date-order -C -M --pretty=format:\"<%h> %ad [%an] %Cgreen%d%Creset %s\" --all --date=short |
<?xml version="1.0"?> | |
<root> | |
<item> | |
<name>Bind Hyper + J to left arrow</name> | |
<identifier>private.caps_leftarrow</identifier> | |
<autogen> | |
__KeyToKey__ | |
KeyCode::J, ModifierFlag::COMMAND_L, ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L, | |
KeyCode::CURSOR_LEFT | |
</autogen> |
Backbone.ViewCollection = Backbone.View.extend({ | |
delegateChildEvents: function() { | |
_.each(this.childViews, function (childView) { | |
childView.delegateEvents(); | |
}); | |
}, | |
render: function() { | |
if(!this.collection) { | |
throw "ViewCollection needs a collection of models to render"; | |
} |