GithubHelp home page GithubHelp logo

efcl / efcl.github.io Goto Github PK

View Code? Open in Web Editor NEW
105.0 105.0 70.0 302.23 MB

Web Scratchブログのリポジトリ

Home Page: https://efcl.info/

License: Other

HTML 38.33% Ruby 0.79% CSS 1.78% JavaScript 30.45% Shell 0.71% SCSS 27.95%
blog jekyll

efcl.github.io's People

Contributors

azu avatar cyrilbois avatar e-jigsaw avatar gooocho avatar howdy39 avatar katsew avatar khsk avatar kubosho avatar mickey-happygolucky avatar mikimhk avatar mtgto avatar munierujp avatar noromanba avatar numb86 avatar ooooooo-q avatar otofune avatar shnjp avatar shrinkrayio avatar shyazusa avatar syohex avatar syoichi avatar tanimon avatar tbpgr avatar teppeis avatar tgfjt avatar uhooi avatar vzvu3k6k avatar yamanoku avatar yoshiko-pg avatar yukinobu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

efcl.github.io's Issues

Githubなどで使える :+1: バッチを作った話

https://azu.github.io/voting-badge を作った話を書く。

  • GitHubに投票機能がない
  • shield.ioを使えば低コストでバッチを作れるんじゃないかと
  • key : valueだけのシンプルな保存するバックエンド
  • leveldbが気になってたから使った
  • deployする場所を考えてなかった
  • HerokuならNodeが動く
  • データの永続化ができない - 再起動で消える
  • redisなど特定のデータベースは使える
  • redisとleveldb両方のバックエンドを作成
  • 動いた!
  • しかしGitHubがアグレッシブなキャシュをする
  • 投票しても全然更新されない…
  • キャッシュを無効にするヘッダが必要
  • shieldの画像はcacheが設定してある-> コントロールできない…
  • shieldのバッチ生成はcairoを使ったもの
  • 同じものをherokuで動かしてバッチを生成するようにした
  • キャッシュをコントロール出来るようになった!?

今後

  • Herokuの無料なのでちゃんと耐えられるのか不安
  • まだGitHubのキャッシュが影響してる気がする

Jekyll 2から3へのアップデート

  • Markdownプロセッサ
  • ページネーション
  • 動作確認
    #126 でCircle CIからデプロイするようになったので、GitHubのJekyll制約は受けなくなった。

E2EテストとjQueryリファクタリング

書いた => テストできないコードをE2Eテストを使ってリファクタリングしよう | Web Scratch


coding-kataというorganizationを使ってE2Eテスト + リファクタリングという写経的な事をやっていた話について。

E2Eテストとtestium

E2Eテストにはtestiumを使った。

testiumはMochaでうごかすことが出来るためpower-assertなど既存のものがそのまま使える。

PhantomJS/Chrome/Firefoxで動かせる(WebDriver)ようになっていて、PhantomJSとか使うとユニットテストと気持ちはそんな変わらない感じになって手を出しやすい。

また、testiumは同期的なWebDriver APIのラッパを持っているため、以下のようにコールバックなしに書くことが出来る。

var inputNew = browser.getElement('input');
inputNew.click();// クリックの処理が同期的になってる
assert(inputNew.get("value"), "expected value");

他のテストフレームワークは非同期を前提にしているためDSL的なものを導入していたり or 特定のフレームワークに依存が結構強い。

testiumがmochaと連携するのはinjectBrowserという関数を最初にinjectするだけで、この処理はmochaのイベントにhookしたり、this.browserを生やすだけなので自分で書くことも出来る程度の内容で済んでる。

https://github.com/groupon-testium/testium/blob/master/src/mocha/index.coffee

var injectBrowser = require('testium/mocha');
var assert = require("power-assert");
var browser;
function addTodo(text) {
    browser.setValue('.todoText', text);
    browser.click('.todoBtn');
}
describe("app-test", function () {
    var text = 'todo text';
    before(injectBrowser());
    beforeEach(function () {
        browser = this.browser;
        this.browser.navigateTo("/");
    });
    context("when テキストボックスに文字を入れて送信した時", function () {
        beforeEach(function () {
            addTodo(text)
        });
        it("should li要素が作成されている", function () {
            var list = browser.getElements('.todoList li');
            assert(list.length > 0); // assertが普通に利用できる
        });
        it("should リストアイテムのテキストは送信したものと一致している", function () {
            browser.assert.elementHasText('.todoList li', text)
        });
    });
});

面白いところとして、デフォルトでテストが失敗した時にスクリーンショットが保存されてるようになっている。また、スクリーンショット同士の比較してのassertも可能になってる。

後、Protractorに比べると設定ファイルや実行するために覚える必要があるコマンドが少なくていい。

実行はportを設定で合わせておいて、普通にmochaを実行すればE2Eテストできるので、ユニットテストと混ぜて書ける。

  • npm startの活用
  • port あわせ

E2Eテストとリファクタリング

coding-kataで数個リファクタリングを写経していたけど、jQueryベタ書きだとユニットテストを入れるのが結構難しい。

E2Eテストの場合は現状を壊してないかのテストは比較的カンタンに書くことが出来る(そこから継続して機能追加するとコストが生まれてきそうだけど)

ユニットテストは機能で取り出せないとテスト難しいけど、E2Eテストは面で切り取りできるので既存のものへテスト置きやすい。
-- https://twitter.com/azu_re/status/557904943957688320

  • Angularみたいな初期化が特殊なやつはbrowser.waitForElementExistみたいので待つかbrowser.evaluateでjsをinjectできるのでそれで待ち合わせ?

リファクタリングプロジェクト紹介

  • 構成
  • ライブラリ
  • ビルド
  • Travis

とかの紹介する感じ。


記事候補の草案文です。
ここはどうするの?とかの疑問や意見等は適当にコメントを書いたりしてくれると書くときに反映できるかもしれないです。
👍 Vote

npm publishのパターン

https://gist.github.com/azu/fb3ec88231235511858a
の紹介

npm publishする時に、どういうツールを使うかの話。

# npm
## 元ネタ: https://github.com/maxogden/maintenance-modules#maintenance-bash-scripts
## denpendency : https://github.com/azu/scoped-modules-checker
function _npm-message(){
  echo -n "npm publish to \033[036m$1\033[0m. OK? "
  read INPUT
  echo "\033[31m=>\033[0m \033[036m$1\033[0m"
}
alias npm-patch='_npm-message "Public" && pre-version && npm version patch && post-version && npm publish'
alias npm-minor='_npm-message "Public" && pre-version && npm version minor && post-version && npm publish'
alias npm-major='_npm-message "Public" && pre-version && npm version major && post-version && npm publish'
alias private-npm-patch='_npm-message "Private" && scoped-modules-checker && npm-patch'
alias private-npm-minor='_npm-message "Private" && scoped-modules-checker && npm-minor'
alias private-npm-major='_npm-message "Private" && scoped-modules-checker && npm-major'
alias pre-version='git diff --exit-code && npm prune && npm install -q && npm test'
alias post-version='npm run --if-present build && git diff --exit-code && git push && git push --tags'
  • 以前は https://github.com/webpro/release-it 使ってた
  • 大体Y押してた
  • scoped module扱うようになったので、何かもうちょっと安全な方法が欲しかった

複数のURLをまとめてPocketに突っ込むアプリ

概要

https://github.com/azu/read-all-later というアプリを作った。
JavaScript Weeklyみたいなメルマガ購読したはいいけど、一度に見え量ではないのでまとめてPocketに突っ込んで、ちらっと見ていく感じの事をやればいいのでは思った。

最初はPocketみたいなアプリ自体をつくろうかと思ったけどだるいので、
Fav -> IFTTT -> RSSというルートを持たせてる

esprima-fbがdeprecatedになる話とAST標準

記事候補: Vote


Deprecating esprima-fb · Issue #111 · facebook/esprima

Facebookがesprima-fb(JavaScriptパーサ)の新規開発は止めて、
acorn&Babel(Babelはacornベースのパーサ)を使っていくようになるとのこと。
具体的にはreact-toolsとかがこれ使っている。

Babel だけじゃなくて、ESTreeというASTのコミュニティ標準が揃ってきたのも乗り換えが簡単になった要因になってる。
パーサはESTreeという仕様レベルでの互換性は持っているので、好きなパーサを使える or 乗り換えが簡単になったという背景がある。

ESTree登場の流れはこの辺でまとめたので、そのときに色々増えたパーサが収束していってる雰囲気について書いておきたい

pdf-markdown-annotatorの紹介記事

azu/pdf-markdown-annotatorというアプリを作った話。

  • ES5の仕様書を読みたくなった
  • メモ付けないと一瞬で忘れる
  • HTMLページにメモ付けるタイプはサービスに依存する
  • PDFにアノテーションを付ける => PDFのアノテーションを使う習慣がない
  • メモはMarkdownで書きたい
  • Highlights App for Mac というアプリを見つけた
  • 悪くない使い心地
  • 発想が面白い PDF + Markdownメモ
  • pdf.jsとCodeMirrorで普通に実現できそう -> azu/pdf-markdown-annotator 作った
  • このアーキテクチャならブラウザ上でも動かせそう -> https://github.com/azu/annotation-memo/ できた

今からES6でコードを書く環境について

書いた => ライブラリをES6で書いて公開する所から始めよう | Web Scratch

ライブラリをES6で書く所から始めよう Vote

目的

  • 6to5の紹介
  • Node.jsライブラリをES6で書いて公開するのは無理なくて良い
  • 逆にfilesなどnpm公開のベストな手法を選択がセットとなる
  • 現在のES6変換器に求めるべきは構文であって機能じゃない(機能はpolyfillが持つ)
    • letとか変換でどうやっても結果が見えてるので無理に使う必要はないと思う。
    • Template StingsとかSpread operatorとかCompute property nameとかclassはコード自体がシンプルになるので使っていくといい

今ES6で書く手段

今ES6でコードを書く方法は色々ある。

Compare · 6to5

ライブラリをES6でnpmで公開してみよう

メインのコードは大きくなるからコンパイルしたくない人も多いはず。
でも、ライブラリなら結構気軽にES6で書いて公開することができる。

上記にリポジトリをみてもらうと、ES5のコードやgulp等の設定ファイルも存在しない事がわかる。(ブラウザ向けのコードだと必要になる可能性が高いけど、Node.js向けならなくてもいけるという事を示す)

ライブラリの構成は以下のようになっている

  • src/ : ES6で書かれたコード
  • lib/ : 6to5でsrc/以下のコードを変換したES5のコード
    • lib/: このディレクトリは.gitignoreでリポジトリには含めない
    • 変換後のソースは見えないほうがリポジトリがキレイ(Pull Requestしやすい)
    • 逆にpackage.jsonfilesフィールドでは "files" : ["lib"]のみとする
    • npmが軽量になるし、npmで使う時はES5のコードのみにできる
    • 細かすぎて伝わらない package.json 小ネタ三選 - t-wadaのブログ
  • test/: mocha + power-assertでテストを書く
    • azu/espower-6to5を使うことで、--compilers js:espower-6to5/guess と指定するだけでオンザフライの変換ができ、テストもES6で書ける
  • npm run-script: 6to5を使いbuild,watch,test を加える
  • ドキュメント: APIにはドキュメントは必要。いくら良いコードでもドキュメントがないならゴミ
    • JSDocでドキュメントを書き、jsdoc-to-markdownでREADMEに追加出来るように自動化する
    • jsdoc-to-markdownを使うことで、README自体がテンプレートとなってJSDocを変更する度にREADMEをいじる必要がなくなる
    • npm run docsでREADMEが更新できる
    • JSDocのHTMLって誰も見ないと思ってる。jsdoc-to-markdownも何か微妙な感じがあるけど…
    • 逆の考えでREADME駆動的にドキュメントをコードに落とすという考え方もある
    • 理想的にはd.tsかWebIDLでインターフェースを書いてドキュメント化できるといいけど、今のところツールがない。

ここはどうするの?とかの疑問や意見等は適当にコメントを書いたりして下さい。

👍 Vote

ブックマークレットを作る環境を作った話

古くは ブックマークレットを作る環境 · Issue #6 · azu/azu で立てていたIssueのものを作った。

azu/where-page-in-slide というブックマークレット作るにあたって欲しくなったのでazu/bookmarkletterを書いたけど、書いてからGitHubにはjavascript:を埋め込めないという制限があることに気づいた。

そのため、GitHub Pagesにリンクを置いて自動的に読み込ませる azu/embed-bookmarklets というものも作った

Vote

wait-for-element.js

azu/wait-for-element.js の紹介


azu/wait-for-element.js はある要素が表示されるまで待つPromiseを返す関数

用途

  • Greasemonkeyやユーザースクリプトで使う要素が多いと思う
  • MutationObserverとポーリングの実装を持ってる
  • テストはTestem + power-assert + Mocha + browserifyでやってる

[Node.js] npm 2.0でrequire("../../../")を回避する方法

npm 1.xの時はローカルにあるディレクトリをdependencyで指定できなかった

なので微妙なハックがひつようだった。

だけど npm 2.0.0でLocal Pathsがサポートされたので、ローカルに置いたディレクトリをモジュールとして使えるので、require("local-library"); みたいな書き方で使える。

プロジェクトに依存したUtilとかを定義するのに便利という話。

JekyllをCircle CIからデプロイ

GitHub側がアップデートされたので、確認する

  • update lock

https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-

追記:

Sorry for the trouble and thank you for the pointer to that issue - we can't make any promises about support for different Markdown engines, but we'll definitely share your feedback with our Pages team as they consider everything we hear about the Jekyll 3.0 update.

他のMarkdownプロセッサを使えるようにする予定はないと返事をもらった

Kramdownのリンクをテーブルと解釈する問題があり、GitHubのJekyllは無理そう。

とりあえず、Circle CI + Jekyll 2(現状)へ移行する。

その後Jekyll3へ移行する。

最近のJavaScript AST Part2

最近気になったJavaScript AST周りの動き | Web Scratch の 定期。

ネタが溜まったら書く感じな気がする

Vote

ネタ募集中

Acorn

CSS Parser

cssとかNV/CSSOMとかあるけど、CSS Syntax Module Level 3をかなり意識してるので気になる。

JavaScript ASTと違ってCSS ASTみたいなやつは抽象層なのに互換がないからまとまるとよさそう。

ライブラリ

ツール

ECMAScript 6 diff検索の仕組み

Meta ECMAScript
を作った話

という感じで、ダウンロード、変換、ES6ドラフトの一つのファイルのgit履歴に落とすツールを作った。

元の考えはES6 仕様のDiff検索システム · Issue #46 · azu/azuで書いてるように、

git log -S "if the argument to object.keys is not an object" -i

みたいな感じでgitに入れたドラフトのリビジョン毎の差分を簡単に検索出来るような仕組みを作って、どのリビジョンでその変更が入ったのかを追跡したいために作った。

データとかはそれぞれリポジトリにあるので、他の人がもっと便利な仕組みを作って欲しい感じ

Issueを読む技術

近年、(GitHub) Issueを読む機会が凄く増えている。

[2015-02] 最近のJavaScript AST標準化の動き | Web Scratch みたいな記事は、そもそもIssueを読まないと追うことが無理だったり、underscore.js 1.8.0問題みたいなものもIssueとPull Requestをちゃんと見ないと正しい現状を把握するのが難しい。

世界のJavaScriptを読もう @ 2014で話したように、最近のライブラリや仕様などはGitHubに比重があるので、現在と少し先を知ろうと思ったらコードだけではなくIssue等を見ていく必要があると思う。

多分感覚的には誰しもが何らかの手段でIssueを読んでいるはずなんだけど、そういう"Issueを読む/追う技術"みたいなのが文章としてあると便利だと思うのでそういう記事が欲しい。

JavaScriptみたいな枯れきってない感じのものを探す場合、探した結果も大事だけど、
結果はすぐに古くなったりしやすいので、探し方とかも共有できるとより良いんじゃないかなと思う。
-- 最近のJavaScript情報の探し方 · Issue #2 · jser/jser.info

のアプローチの一種。

他の人はどうしてるんだろうか?

alfredから使えるファイル単位のスニペット管理ツールを書いた話

https://twitter.com/azu_re/status/500922235704463360 これを作った感じで、
ファイルの中身をそのまま貼り付けるという単純な感じのもの。

ファイルの選択はAlfredが全てやってくれるので(全文検索もできて)、一応テンプレート的なものとしては${{}}の中身をシェルスクリプトとして実行するという仕組みをいれてだけのもの


---
title: ""
author: azu
layout: post
date : ${{ date +%FT%H:%M }}$
category: 
tags:
    - 

---
  • Alfred workflowの公開方法がイマイチ…
    exportはメンテしにくそう…

Vote

GitHub Releasesを見ていく方法について

GitHub Releaseを書いていく方法についてはgit tagとGitHub ReleasesとCHANGELOG.mdの自動化について | Web Scratchで書いたので、
今度はGitHub Relaseを見ていく方法についてを書く。

内容的には 最近のJavaScript情報の探し方 · Issue #2 · jser/jser.info の派生系で、今の自分のReleaseの追い方について。

主にGreasemonkeyの話になる

  • リポジトリをWatchする
  • 人をFollowする
  • GitHub Releaseを購読する
  • GitHub RelaseからCHANGELOGを見る
  • CHANGELOGすらない場合にDiffを見る

投票ボタン Vote

Add disque

元からWordpressで使ったので、
コメントのインポートとしてしなくてもいいのかなー。

これからBrowserifyを始める人向けの記事が欲しい

Browserifyを駄菓子屋さんで買おうとする人が良く見られるため、
もっと案内的なタイトルの記事が欲しい。

Vote

2014-07-11_17-08-48

イメージとしては jser/jser.info#17 のようなリンク集的な記事。

等もちょっと近い。全て列挙というよりはもう少し絞った感じにしたい。

efcl.info は記事のリソースも全部Github上にあるので、更新等も自分以外がPull Requestできる。
変化が早いツールにも向いてるスタイルだと思う。
(JSer.infoでもいいけど、あっちはまだTumblrだからイマイチ)

このページは紹介した方がいいとかあったら教えてください。

ある程度ジャンル分けした方がいいのかな?

ウェブの仕様は今どこにあるのか?

今のW3CとかWHATWGにあるやつとか、ECMAScript、JavaScript(DOM)の仕様ってGithubでやってたりすること増えた。

簡単にどこでやってるものがあるのかとか紹介をする記事とかどうだろう?

後、http://discourse.specifiction.org/https://github.com/webcompat/web-bugs/ とかユーザーに近い層とかも増えたよ的なやつ。

仕様の議論に参加してるような人が「身近になってる仕様」的なこともっと書いてくれるのがベストな気がするけど(自分は議論にあんまり参加しないので)

クリックで投票 => Vote

Edit on Github

各投稿にEdit on Githubボタンを付ける。

ついてでに、Qiita風のこの投稿に修正依頼をするボタンを下に入れる

[pdf.js] PDFベースのスライドをGitHubに公開出来るツールを書いた話

作った経緯は以下に書いてある。

mozilla/pdf.jsを使えばPDFをブラウザ上で表示出来るので、これを使ったプレゼンテーションツールとかあると面白そうな気がする。

Learningとか見る感じページめくり系のスライド表示を作るのは意外と簡単な気がする。

こういうのが欲しい理由としては以下のような感じ

SlideShareやSpeaker Deckにロックインされたくない
    そもそもSpeaker Deckは素のPDFを見たほうがましという状況がよくあるのが問題…
GitHub Pagesにスライドを置くという同じスタイルを取れる
    直接PDFだとはやっぱり避けられる所がある + ブラウザによって表示形態がスライドに適してない
PDFを吐けるアプリは多いので、意外と汎用的に対応できる気がする
    パワーポイント、KeyNote、DeckSet、Reveal.jsなど

-- PDFベースのプレゼンテーションツール · Issue #20 · azu/azu


mozilla/pdf.jsが主な構成要素

azu/pdf-slide-html はiframeでslide-pdf.jsを使ったビューアを埋め込むジェネレータ。

http://azu.github.io/slide/DOMQuery/ 埋め込み例

これMarkdownからレンダリングした内容を下にHTMLで入れるようにしてる。
SlideShareとかにある内容のテキスト出力をインスパイアしてつけた。

Decksetとか組み合わせると、
HTML自体もいい感じに読めるし検索性も高まるので便利な感じなった気がする。

デメリット

複雑な図形が多用されるとpdf.jsはまだレンダリングが苦手な感じがある
モバイルでpdf.js動くのか分からない(フェールバックとしてpdfを直接開かせる)

であげてたデメリットも、iOSとか普通に表示できたし思ったより現時点でよい感じがする。
ここ3年ぐらいスライドはHTMLで書いてて、色々なジェネレータやテーマを作ったりしたけど、スライドで求められるのレイアウトって大体固定である方が都合がいい感じになる気がする。

HTMLならではの実行が入るスライドは別だけど、大抵は固定レイアウトの方がモバイルとかで可変ならない方が見やすい。

後、これのツールについてpdf.jsについて色々書いたので、pdf.jsの紹介とかをやりたい。

長くなりそうなので、分割するかも。

Vote

プロジェクトのテンプレートをpeco/percol選んで使う話

peco + シェルスクリプトの単純なやつで、シェルスクリプトにセットアップ用のスクリプトを並べておくという単純なやつ。

function init-project() {
    local scriptDir="/Users/azu/Dropbox/local/init"
    local selectedFile="$(find "${scriptDir}" -maxdepth 1 -type f | peco)"
    if [ -e "$selectedFile" ]; then
        sh -e $selectedFile
    fi
}
zle -N init-project

pecoで選べるようにすれば、適当なファイル単位の管理で良いので意外と便利。

start at https://twitter.com/azu_re/status/508155852360933376

👍 Vote

Use Travis CI

Circle CIを使う理由がなくなったため無効化した。
Travis CIに移行する

  • textlint + reviewdog

ポートフォリオの作成

azu/portfolio#1 の内容をefcl.info以下に持ってくる。

  • タイムラインはデータとして別にする(追記しやすくする
  • 発表したスライドをまとめるページの作成
  • React(またてんぷれ) + Fluxでメインの中身を動的に書き換えるSPA的な感じ
  • 制作物とかもそのまま埋め込まないでMarkdownで書いてレンダリング出来るように

Jekyll と alfred workflow

画像のアップロードとか細かい補助はAlfredで出来るようにしてる。

2014-08-20_08-04-28

まだ、Jekyllで記事を書くエディタはまだ完全じゃないけど、とりあえず形は出来てきた感じがするので、軽く書きたい気がする。(けどパスとか大体汎用的じゃないから書き換え必須な感じなのがイマイチ)

後、alfred workflowってどう配布するのがいいんだろ。

Vote

ASTを扱うツールの作り方

#14 とも関係あるけど、
JavaScript ASTを扱うツールの作り方って感じの記事とかちゃんとしたのを見たことない気がする。

とかそういうやつだけど、スライドなので作り方まではやってない。

小さい書籍的な、実際に作りながら学ぶサンプル的なものが欲しい気がする。
(JavaScriptに置ける基礎知識がある前提の)

👍 Vote

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.