Panda Noir

JavaScript の限界を究めるブログです。

プログラミング・パソコン

npmでライブラリ公開したときに踏みつけた地雷7つ

かなり後悔してる。とりあえず現時点で失敗したと思った点まとめてます。今後npmでライブラリ公開したいという人が同じ轍踏まないことを願います。

ワンライナーで[1..100]を生成する in JavaScript

0で埋まった配列はArray(100).fill(0)でおしまいですが、[1..100]となると生のJavaScriptでは実は考えないとできません。 ツイッターで少し(空中リプで)議論したのでそのまとめしつつ思いついたものを書きます。

自然数の分割について考えてみた

新型のテトリスを考えていた時に自然数の分割が必要となり考えてたら結構すんなり綺麗に解けたので紹介します。

全角アルファベットの罪悪

「全角アルファベットは悪い!」「じゃあどこが悪いの?」すぐにパッと4、5個は根拠が言えますか?

Make each program do one thing well.

UNIX哲学の一つですね。僕のお気に入りの言葉の一つです。今回はプログラムの様々なところで使えるこの言葉について語りたいと思います。

Iteratorパターンの利点

ES6で追加されたIterator。使い所が分かりづらいです。何が嬉しいのでしょうか?

かなり重たいアニメーションを表現する荒技

jQueryやCanvasの登場によりアニメーションをつけることは一般的なものとなりました。しかし、スマートフォンのようにスペックの足りない端末ではアニメーションができないことがあります。しかし、一歩引いてみると解決策が見えてくることがあります。

lower_boundとupper_boundをJavaScriptで実装してみた・リベンジ

http://www.cplusplus.com/reference/algorithm/lower_bound/ ここの仕様を満たすように実装していきます。 lower_bound()とupper_bound()をJavaScriptで実装してみたのリベンジ記事です。今回は前回のような雑なテスト通して終わりではなく、きちんと論証し…

for文の評価順に関する検証

仕様書読むのが面倒だったのでコードにて検証してみました。

そろそろReactを本腰入れて学びたいです

…うん。今年2015年はAngularJS一筋でReactは見て見ぬフリをしてきました。おかげでAngularJSスキルはバリバリついてMVC設計力もMVCの根底もガッツリ掴めました。 …しかしReactは脱MVCを掲げておられる。死にたい。

AngularJSでコマンドラインツール作ろうと思った

AngularJSをキッチリ書いていればMVC完璧なのでVがたとえターミナルになろうと理論上は動きます。もちろんAngularJSはブラウザ用に作ってあるのである程度黒魔術使ったりなんだかんだする必要はあるでしょうが。

AngularJSと1年間付き合ってきたので

Angularなんかより可愛い女子と付き合いたかった AngularJS 1と1年間付き合ってきたのでまとめ話です。2ではありません。

UnitaryJSのwikiを書いています

途中で面倒になりました。つづきはあとで書きます。 http://pandanoir.github.io/UnitaryJS/ 全編英語 + シンプルなデザイン(CSS12行!)です。デザインはあとでなんとかします。日本語版はそのうち作るかもしれません。 英語間違いが多そうなので突っ込みたい…

JavaScriptでalgebra.jsを使って円と直線の交点を求める

algebra.jsという代数学ライブラリで連立方程式をときます。

Fantasy landのREADME.md翻訳しました

間違いがあるかもしれません。まあ高校生の英語レベルなんてたかが知れているので勘弁ください。 github.com このフォークのREADME.mdが翻訳したものです。fantasy landはプログラミングの仕様を示したものです。だから ライブラリではない 、ということに注…

寿司関数

特に意味はないけど思いついてしまったので てか当初は関数だったのにメソッドになってるし まあ関数としても呼べるからいいや function Rice() { this.food = ''; } function Fish() { this.food = ''; } function Professional() {} Professional.prototy…

UnitaryJSにrotate()メソッドとGroupクラスを追加しました

これで六芒星を簡単に作れるようになりました。

ペグソリティアをJavaScriptで解く

ペグ・ソリティアもしくはペグ・ソリテール、ソリタリアをJavaScript上でシミュレートするライブラリ作りました。 http://github.com/pandanoir/solitaire ペグ・ソリティアの解き方 ザックリとした手順 上のライブラリを読み込む ゲームボードを作成 解く …

正規表現で(\w){5}でもキャプチャされるのか

var str = 'abcde'; var reg = /(\w){5}/; var reg2= /(\w)(\w)(\w)(\w)(\w)/; console.log(str.replace(reg, '$1, $2, $3')); console.log(str.replace(reg2, '$1, $2, $3')); 結果は e, $2, $3 a, b, c まあそりゃそうかと思う一方、気を利かせてもいいん…

UnitaryJSでグラフを書く

UnitaryJSは数学のようにグラフを書くことができます。

varを使ってるつもりが変数がグローバル変数になるケース

varを使っているのにグローバル変数として宣言されているケースがあります。

JavaScriptでsign関数をビットを用いて実装

sinではなくsign関数です。受け取った数値が正の数か負の数か0かを返します。

Parsimmon のREADME.mdを翻訳しました。

許可はきちんととりました。Can I write article about README.md of parsimmon in Japanese? #44 本記事はhttps://github.com/jneen/parsimmon/blob/f67ed23a575ff5d60871fe671a432f50dc476ca5/README.mdを翻訳しております。最新版を翻訳しているわけでは…

MVCの利点

MVCのメリットとは何か?と考え試行錯誤し駄作を量産した結果たどり着いた結論についての記事です。

ほぼ全てのデータをJSONに変換できるライブラリmyJSON

まあだっさい名前してて御察しの通り自作ライブラリです。正規表現、Dateオブジェクトなど通常のJSONでは変換できないオブジェクトも変換し、再度オブジェクトに戻すことができます。使用用途としては例えばローカルにデータ保存する時にDateオブジェクトは…

nの位で四捨五入する方法

自分は今まで使ったことないです。しかし、この技術の応用はよくします。

for文と式文とできるとちょっとかっこいいテクニック

for文は奥が深くて、最適化出来る部分がたくさんあります。今回はそんな for の真価を垣間見ようという記事です。

省略可能なセミコロンか否か

JavaScript では、 セミコロンは 基本は 省略可能です。これはよく知られてると思います。しかし、 どのセミコロンが本当に省略可能なセミコロンなのかきちんと知ってる人は少ないでしょう。今回はその説明です。

( 続 ) 円周率を求める方法

前回のプログラムを C++ で書きなおして任意精度演算を行ってみました。

円周率を求める方法

自力で考え出した方法です。だいたい10回の施行で3.141592まで当てました どうでもいいですが7月22日は22/7が円周率に近似するため円周率の日というらしいです。