start new:
tmux
start new with session name:
tmux new -s myname
์๋ ํ์ธ์. ์ฌ์์ฌ์ ๋ถ์ ๋ง๋ฃจ์ผ๋ง@h13i32maru์ ๋๋ค. ์ต๊ทผ์ Web ํ๋ก ํธ์๋์ ๋ณํ๋ ๋งค์ฐ ๊ฒฉ๋ ฌํด์, ์กฐ๊ธ ๋์ ๋ ์ฌ์ด์ ์ ์ ์๋ก์ด ๊ฒ์ด ๋์ค๊ณ ์๋๋ผ๊ตฌ์. ๊ทธ๋ฐ ๊ฒฉ๋ ฌํ ๋ณํ์ค ํ๋๊ฐ ES6์ด๋ผ๋ ์ฐจ์ธ๋ JavaScript์ ์ฌ์์ ๋๋ค. ์ด ES6๋ ํ์ฌ ์ฌ์ ์ค์ผ๋ก ์งํ์์ ์์๋ Draft Rev31์ด ๊ณต๊ฐ๋์ด์์ต๋๋ค.
JavaScript๋ ECMAScript(ECMA262)๋ผ๋ ์ฌ์์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋์ด์์ต๋๋ค. ํ์ฌ ๋ชจ๋ํ Web ๋ธ๋ผ์ฐ์ ๋ ECMAScript 5.1th Edition์ ๊ธฐ๋ฐ์ผ๋ก ํ JavaScript์คํ ์์ง์ ํ์ฌํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ๋ฒ์ ์ธ ECMAScript 6th Edition์ด ํ์ฌ ์ฌ์ ์ค์ผ๋ก, ์ฝ์นญ์ผ๋ก ES6์ด๋ผ๋ ๋ช ์นญ์ด ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
I fell in love with CoffeeScript a couple of years ago. Javascript has always seemed something of an interesting curiosity to me and I was happy to see the meteoric rise of Node.js, but coming from a background of Python I really preferred a cleaner syntax.
In any fast moving community it is inevitable that things will change, and so today we see a big shift toward ES6, the new version of Javascript. It incorporates a handful of the nicer features from CoffeeScript and is usable today through tools like Babel. Here are some of my thoughts and issues on moving away from CoffeeScript in favor of ES6.
While reading I suggest keeping open a tab to Babel's learning ES6 page. The examples there are great.
Holy punctuation, Batman! Say goodbye to your whitespace and hello to parenthesis, curly braces, and semicolons again. Even with the advanced ES6 syntax you'll find yourself writing a lot more punctuatio
function logClass(target: any) { | |
// save a reference to the original constructor | |
var original = target; | |
// a utility function to generate instances of a class | |
function construct(constructor, args) { | |
var c : any = function () { | |
return constructor.apply(this, args); | |
} |
์ด ๊ธ์ ์ฐ๋ฆฌ๊ฐ ์ด ์ฑ , 'Reactive Programming with RxJava' ์ ๋ถ๋ก์ด์๋ค. Reactive programming๊ณผ ๊ด๋ จ์ด ๊น์ ์ฃผ์ ๊ธด ํ์ง๋ง ๋ชจ๋๋๋ฅผ ์๊ฐํ๋ค๋ ๊ฒ ์ฑ ๊ณผ ์ฉ ์ด์ธ๋ฆฌ์ง๋ ์์๋ค. ๊ทธ๋์ ๋๋ ๋ฐ๋ก ๋ธ๋ก๊ทธ์ ์ฌ๋ฆฌ๊ธฐ๋ก ํ๋ค. ํ๋ก๊ทธ๋๋ฐ์ ๋ค๋ฃจ๋ ๋ธ๋ก๊ทธ์์ *"๋ฐ์ ๋ง๊ณ ๋ฐ์ ํ๋ฆด ์ง ๋ชจ๋ฅด๋ ๋๋ง์ ๋ชจ๋๋ ์ค๋ช "*์ด๋ ๊ฒ์ด ์๋ก์ด *"Hello World"*๋ผ๋ ์ ์ ๋๋ ์ ์๋ค. ํ์ง๋ง ์ด ๊ธ์ ํํฐ(functor)์ ๋ชจ๋๋(monad)๋ฅผ ์๋ฐ ์๋ฃ ๊ตฌ์กฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๋ ๊ฐ๋์์ ๋ฐ๋ผ๋ณด๊ณ ์์ผ๋ฉฐ, ์ด๋ ๊ณต์ ํ ์ ๋์ ๊ฐ์น๋ ์์๊ฑฐ๋ผ ์๊ฐํ๋ค.
(by @andrestaltz)
(orginal source: https://gist.github.com/staltz/868e7e9bc2a7b8c1f754)
/* eslint-disable no-console, consistent-return */ | |
const logger = (function Logger() { | |
const prefix = "[MYAPP]"; | |
const logLevelPreset = [ | |
'SILENT', | |
'ERROR', | |
'WARN', | |
'INFO', | |
'DEBUG', |
#!/bin/bash | |
if [ -f ~/Library/KeyBindings/DefaultkeyBinding.dict ]; then | |
echo "~/Library/KeyBindings/DefaultkeyBinding.dict already exists" | |
exit -1 | |
fi | |
mkdir -p ~/Library/KeyBindings | |
cat << EOF > ~/Library/KeyBindings/DefaultkeyBinding.dict | |
{ | |
"โฉ" = ("insertText:", "\`"); |
I started using React 3.5 years ago, and I still love it. It was such a well-designed solution that not much has changed since then, only superficial stuff like naming. What I learned then is still wholly applicable today because it's such a good idea (although now you can choose from many other libraries). On top of that, we now benefit from an entirely new architecture (fiber) without changing much.
Some things that are "better" with this BetterPromise
implementation:
BetterPromise # then(..)
accepts a BetterPromise
(or Promise
) instance passed directly, instead of requiring a function to return it, so that the promise is linked into the chain.
var p = BetterPromise.resolve(42);
var q = Promise.resolve(10);
p.then(console.log).then(q).then(console.log);