shell script は普段さけて通りたいと願ってやまないわけですが、たまには書かないといけないことがあるので、そういうときは覚えておくと便利な tips を2つ。 autodie っぽくするset -eとすると、コマンドの実行に失敗したときにそこで実行がとまるので便利。 #!/bin/sh set -e perl -e 'die' echo SHOULD NOT REACH HEREとすると % ./hoge.sh Died at -e line 1. % echo $? 255となって、最後までいかずに死にます。 複数のコマンドを順番に実行するときに便利。 なお、以下のような挙動をするんだそうです。 ただし失敗したコマンドが until または while ループの一部である、 if 文の一部である、 && または || リストの一部である、 コマンドの返り値が ! で反転されてい
Getting started Hogan.js is a 3.4k JS templating engine developed at Twitter. Use it as a part of your asset packager to compile templates ahead of time or include it in your browser to handle dynamic templates. If you're developing with Node.js, just use NPM to add the Hogan package. $ npm install hogan.js Alternatively, drop hogan.js in your browser by adding the following script. <script src="h
Zepto is a minimalist JavaScript library for modern browsers with a largely jQuery-compatible API. If you use jQuery, you already know how to use Zepto. While 100% jQuery coverage is not a design goal, the APIs provided match their jQuery counterparts. The goal is to have a ~5-10k modular library that downloads and executes fast, with a familiar and versatile API, so you can concentrate on getting
Promise API Overview Constructor var promise = new Promise(function(resolve, reject) { /* (非同期)処理 */ }); Instance Method promise.then(onFulfilled, onRejected); promise.catch(onRejected); Static Method Promise.all() 、 Promise.resolve() などの便利メソッド系 Promiseのキホン的な流れ function asyncFunction() { return new Promise(function (resolve, reject) { setTimeout(function () { resolve('Async Hello world'); }, 16);
Scriptular is a javascript regular expression editor. Inspired by Rubular it gives you a simple way to test javascript regular expressions as you write them. Start by entering a regular expression and then a test string. Or give this example a try. Learn more about regular expressions in javascript.
CSSLint CSSLint is an open source CSS code quality tool originally written by Nicholas C. Zakas and Nicole Sullivan. It was released in June 2011 at the Velocity conference. A lint tool performs static analysis of source code and flags patterns that might be errors or otherwise cause problems for the developer. CSSLint is a tool to help point out problems with your CSS code. It does basic syntax c
Note: these docs are for version v4.0.0 (aka gulp@next) If you're on gulp v3.9.1, which is the current default npm release, you probably want that version's documentation. gulp API docs gulp.src - Emit files matching one or more globs gulp.dest - Write files to directories gulp.symlink - Write files to symlinks gulp.task - Define tasks gulp.lastRun - Get timestamp of last successful run gulp.paral
Documenting your code is somewhat like testing; we all know we should do it, we’re not really sure how, and most folks, if we're honest, simply don’t, but those who do are huge proponents of it. This tutorial will get you up to speed on one of the best ways to tackle it: YUIDoc. What is YUIDoc? YUIDoc will generate API documentation based on comments that you write. YUIDoc is a NodeJS app that wil
Fixed positioned elements (typically headers or footers) are extremely common conventions for native mobile platforms, so naturally fixed elements found their way into mobile browsers. Web designers are used to fixing elements to the window using CSS’s position: fixed, however, in the land of mobile browsers, support for fixed positioning is far less universal and is way more quirky. I set up a de
サイト高速化をネタにした記事は星の数ほどありますし、YSlow や PageSpeed、あるいは両方同時にチェックできる GTmetrix のおかげで、アドバイスに従って問題点を一つ一つ潰し込んでいけば、着実にスコアを「Grade A」に近づけられるようになりました。 またベスト・プラクティスなんて知らなくても、「CloudFlare 導入、一発 OK!」なんていうお手軽なサービスもあります。 一方、これら個々の Tips、テクニックを断片的に積み上げていくアプローチやブラックボックス方式では、サイト全体を通して「本当に最適なの?」という疑問も生じます。 別な言い方をすれば、「Grade A は取ったけど… その先は?」に対する処方箋が必要なんじゃないかと思っています。 そこで今回は、「スコア」だけでは見えてこない、サイト高速化の「戦略」と「戦術」の話にチャレンジしてみたいと思います。これ
最近ガッツリnode.jsのプロジェクトを行っているんですが、チームで開発しててよくあるのが、git pullした後にpackage.jsonやbower.jsonが変更されている事に気づかず、 そのまま起動してしまい、モジュールが足りてなくて動作しないって事です。 多分コレってnode.jsに限らずrubyとかperlとかphpとかpythonとか何でもあると思うんです。もうすぐ、2014年度です、運用でpullしてエラーが出たらnpm install/cpanm/bundle installしましょうとか言うのは辞めましょう。*1 git pullしたら変更されたファイルの一覧から 対象のファイルが変更されているかどうかを認識して、特定のコマンドを自動で実行するためのコマンド、hookinを作りました。 Getting started npmが入っているなら超簡単で、 $ npm in
これはvim advent calendar2012の155日目の記事です。 ternについて javascriptで書かれたjavascriptの構文解析、型推論library https://github.com/marijnh/tern Marijn Haverbeke氏を中心に開発 browser中にcode editorを提供するjavascript component codemirror の開発者でもある 既存editorでのjavascript開発の改善を目的としており現時点ではemacs, vim, sublimetext, bracketsでternを用いたjavascriptの補完が可能。 tern for vimについて Marijn氏のgithubにternのためのvim scriptのrepositoryがある。 https://github.com/marij
前回の投稿の時にはよく分かっていなかったTern for Vimを使った、VimでJavaScriptを書く時の補完環境がある程度整いました。といっても.tern-projectを設置するだけなのですが、、 tern for vimのインストールを微修正Tern for Vimでの補完環境を整えるために1点インストールについて、前回から変更点があります。 前回の投稿では、Tern for Vimのインストールには、:NeoBundleInstall の後にインストールディレクトリに移動してnpm installを叩くと書いていました。 しかし、NeoBundleでは「インストール後に任意のコマンドが実行」できるみたいですので、以下でインストールは一発完了です。NeoBundle便利!!! NeoBundle 'marijnh/tern_for_vim', { \ 'build': { \
usevim Vim links, plugins, screenshots, tutorials, and themes Tern is an open source JavaScript project designed to run as a server that sends completion results to compatible editors. The author is looking for a "Vim expert" to help finish the Vim plugin. The project has an Indiegogo funding page and quickly met its goal. "Tern is a piece of software. It dives into the muddy depths of a JavaScrip
UNIXの代表的なダウンローダにwgetとcurlがあります。 たいていの場合どんなOSでも、どちらかのソフトがインストールされているのではないかと思います。 しかし、この2つのダウンローダの機能は、一見似ているようにも見えますが、実はそれぞれに特徴が見られるので、今日はそれについて解説してみます。 wgetの特徴 wgetのスペルは「片手でもコマンドできる」ということもあって、多くの人から気に入られています。 そんなwgetの特徴として、最も際立っているのが、クローラとして動作可能という点です。 オプションで-rを付加してやることで再帰的に動作し、-lでその深さを指定することができます。 また、-Aや-Rを利用すれば、ダウンロードする拡張子のホワイトリストとブラックリストを指定することも可能です。 つまり、特定のサイト内に散らばって存在するファイルを、拡張子によって指定ダウンロードできる
These are the slides for the talk "Managing and Visualizing JavaScript Complexity" given at QCon SF 2013 by Jarrod OversonRead less
プラグイン機構を持っているので、Lintするルールを追加できる ESLint 本体のコードがシンプルに保たれる Mozilla JavaScript AST をベースとしているため、他のものと連携しやすい EsprimaでパースしたASTをLintする two-pass のツール つまりEsprimaでパースできないとLintはできない また、現段階だと巨大なjsファイルではJSHintより3倍程度遅い Rule performance などにまとめられている、速度については今後改善していくとのこと JSLint/JSHint互換のようなルールが作られている – ESLint Rules List Node.js で書かれているツール 将来的には Browserified されたバージョンも出す予定 ドキュメントがよく書かれている それぞれのルールごとにドキュメントが書かれている esli
photo credit: Kmark via photopin cc Ruby を初めて 2日目。 Railsチュートリアル第4章で Ruby の基本的な使い方を学んだ。 Ruby を使って驚いたことがいくつかあったのでまとめておく。 (プログラミング経験はそれなりにある。C# や JavaScript, PHP など) Rubyist の方は、初めて Ruby に触れたときのことを思い出すきっかけに。 非Rubyist の方は、Ruby に興味を持ってもらえるきっかけになれば。 なお、いくつかのコードは Railsチュートリアルから抜粋している。 end はあるけど begin しない 多くの言語では関数やブロックを中括弧で括る。 Pascal 系言語では begin 〜 end で括る。 Ruby では begin なしで急に end が出てくる。 if string.empty?
CoffeeScript is an open source project that provides a new syntax for JavaScript. I have to say that I have a lot of respect for CoffeeScript and it got a lot of things right. The “golden rule” of CoffeeScript is “It’s just JavaScript”. That means there is a straightforward equivalent to every line of CoffeeScript. Consequently, there aren’t as many issues with JavaScript interop as there are with
渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 メモリリーク。一言でプログラマを死に追いやる恐怖の言葉。C/C++の世界ではmallocしたのにfreeしないとかのケアレスミスでよく起きていた問題です。その後、ガベージコレクタが掃除してくれるプログラミング言語が増え、一部の言語で循環参照に気をつけるぐらいであまり気にしなくても良い的な風潮になっています。 というものの、そうとも言ってられなくない状況も増えてきています。クラウドのスケールアウトブームも一段落というかコモディティ化し、go言語で再び性能向上方面に関心が寄せられたり、日本でErlangの勉強会が満席になったり、スケールアウトから再びスケールアップ方面に話題が移りつつあるのを感じます。長時間稼働のサーバで、スケールアップしてさらに数多くのリクエストを大量に受けるよう
River.js is a small framework focus on module enclosure and data binding, borrows scope, directive ideas from AngulaJS but keep same style with node module definition. 1 <div scope> 2 <label for="">name:</label> 3 <input type="text" class="form-control" jbind="name"> 4 <hr> 5 <p>Hello {{ name }} !</p> 6 <p>the {{ name }} ?</p> 7 <p>world {{ name }} !</p> 8 <p>and {{ name }} .</p> 9 </div>
Newcomers to NodeJS typically find its API difficult to grasp. Luckily, many developers have created frameworks that make it easier to work with Node. Connect is one such framework. It sits on top of Node's API and draws the line between comfort and control. Think of Connect as a stack of middleware. With every request, Connect filters through the layers of middleware, each having the opportunity
I previously wrote about the minefield that is JavaScript programming and several possible answers to the problem. One possible answer is TypeScript. It’s an OpenSource project from Microsoft and the language “is a typed superset of JavaScript that compiles to plain JavaScript”. It builds on JavaScript by adding classes, modules, interfaces and optional type declarations. When compiled, the type d
仕事で中規模程度の Rails アプリケーションのコードベースをいじっている。このアプリはもともと app/assets/javascripts 以下に必要に応じて JavaScript ファイルを置き、適当なテンプレートファイルから直接 JavaScript の関数を呼び出したりしていた。ごく普通の Rails アプリである。 このアプリは CMS で、いわゆる「ブログの管理画面」みたいな用途で使われている。一部の機能はそれなりに込み入った UI 操作を必要としページ遷移なしに操作できる必要があるが、旧来のやり方では JavaScript コードの管理が間に合わなくなってきたので部分的に Backbone.js を導入し始めている。 最近悩んでいるのが、 Backbone.js なコードのエントリポイントをどのように呼び出すべきなのか?ということ。そもそも自分が Backbone.js
browserify v2 transform to compile JavaScript.next (ES6) to JavaScript.current (ES5) on the fly. Project maintained by thlorenz Hosted on GitHub Pages — Theme by mattgraham browserify v2 transform to compile JavaScript.next (ES6) to JavaScript.current (ES5) on the fly Try it! Open your dev tools and look inside the Sources tab and/or the Console to see the results. Make sure to use a browser that
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く