이재홍의 GitHub 탐험기 2014/08/14

저작권 안내
  • 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
  • 책 또는 웹사이트의 내용을 발췌, 요약하여 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

q - A tool for making and composing asynchronous promises in JavaScript

https://github.com/kriskowal/q

JavaScript 함수 실행 라이브러리입니다. 웹 브라우저에서 사용할 수 있습니다.

이런 콜백 코드를

step1(function (value1) {
    step2(value1, function(value2) {
        step3(value2, function(value3) {
            step4(value3, function(value4) {
                // Do something with value4
            });
        });
    });
});

이렇게 순차적으로 실행할 수 있습니다.

Q.fcall(promisedStep1)
.then(promisedStep2)
.then(promisedStep3)
.then(promisedStep4)
.then(function (value4) {
    // Do something with value4
})
.catch(function (error) {
    // Handle any error from all above steps
})
.done();

go-github - Go library for accessing the GitHub API

https://github.com/google/go-github

GitHub API를 Go로 래핑한 라이브러리입니다. 구글에서 공개했군요.

사용 방법도 간단하고, 깔끔하군요.

package main

import (
	"fmt"
	"github.com/google/go-github/github"
)

func main() {
	client := github.NewClient(nil)

	fmt.Println("Recently updated repositories owned by user willnorris:")

	opt := &github.RepositoryListOptions{Type: "owner", Sort: "updated", Direction: "desc"}
	repos, _, err := client.Repositories.List("willnorris", opt)
	if err != nil {
		fmt.Printf("error: %v\n\n", err)
	} else {
		fmt.Printf("%v\n\n", github.Stringify(repos))
	}

	rate, _, err := client.RateLimit()
	if err != nil {
		fmt.Printf("Error fetching rate limit: %#v\n\n", err)
	} else {
		fmt.Printf("API Rate Limit: %#v\n\n", rate)
	}
}

panamax-ui - The Web GUI for Panamax

https://github.com/CenturyLinkLabs/panamax-ui

Docker 관리를 위한 웹 인터페이스입니다. Panamax는 파나마 운하를 통과할 수 있는 최대 크기의 선박을 뜻하는데요. Docker와 연관지어서 이름을 지은 것 같습니다.


floatlabels.js - Follows the famous Float Label Pattern

https://github.com/clubdesign/floatlabels.js

HTML <input> 태그에 입력을 하면 위쪽에 레이블을 표시해주는 jQuery 플러그인입니다. 다양한 애니메이션 효과를 지원하는군요.

간단한 예제입니다.

<style>
.floatlabel_1 {
  font-family: 'Tahoma';
  border: 1px solid #494949;
  padding: 10px;
  outline: 0;
  color: #494949;
  font-size: 14px;
  width: 100%
}
</style>

<input type="text" class="floatlabel_1" placeholder="Floated Label" />

<script src="/assets/themes/twitter/js/jquery-1.11.1.min.js"></script>
<script src="https://cdn.rawgit.com/clubdesign/floatlabels.js/master/floatlabels.min.js"></script>
<script>
$('.floatlabel_1').floatlabel();
</script>

ace - Ace (Ajax.org Cloud9 Editor)

https://github.com/ajaxorg/ace

Cloud9에서 사용되는 웹용 코드 편집기입니다. 타이핑할 때마다 문법 체크도 되고 코드 자동완성도 됩니다.

ace를 사용하려면 https://github.com/ajaxorg/ace-builds/tree/master/src-min-noconflict에 있는 파일이 모두 필요합니다.

<style>
#editor {
  width: 500px;
  height: 200px;
}
</style>

<div id="editor">function foo(items) {
    var x = "All this is syntax highlighted";
    return x;
}</div>

<script src="https://cdn.rawgit.com/ajaxorg/ace-builds/v1.1.5/src-min-noconflict/ace.js"></script>
<script src="https://cdn.rawgit.com/ajaxorg/ace-builds/v1.1.5/src-min-noconflict/ext-language_tools.js"></script>
<script>
  var editor = ace.edit("editor");
  editor.setTheme("ace/theme/monokai");
  editor.getSession().setMode("ace/mode/javascript");
  editor.setOptions({
    enableLiveAutocompletion: true
  });
</script>
이렇게 HTML 코드를 작성하면 다음과 같이 ace 편집기가 나옵니다.
<style>
#editor { 
  width: 500px;
  height: 200px;
}
</style>

<div id="editor">function foo(items) {
    var x = "All this is syntax highlighted";
    return x;
}</div>

<script src="https://cdn.rawgit.com/ajaxorg/ace-builds/v1.1.5/src-min-noconflict/ace.js"></script>
<script src="https://cdn.rawgit.com/ajaxorg/ace-builds/v1.1.5/src-min-noconflict/ext-language_tools.js"></script>
<script>
  ace.require("ace/ext/language_tools");
  var editor = ace.edit("editor");
  editor.setTheme("ace/theme/monokai");
  editor.getSession().setMode("ace/mode/javascript");
  editor.setOptions({
    enableLiveAutocompletion: true
  });
</script>

이상 끝.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

2014-08-14