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.pro…

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が円周率に近似するため円周率の日というらしいです。

演算子ノ全テ

JavaScript の演算子とは何者でどういう挙動を取るのか、演算子の全て話します。 2015/7/20 追記: JavaScript 演算子の基礎知識としてQiitaにも記事を投稿しました。内容はほぼ同じです。

"変数"という名前の罪深さ

variableを変数と訳した先人の罪は深い。先人はおそらく変数を数学のみで使うと思いこう訳したのだろう。しかし、プログラミングでもvariableなのだ。だからプログラミングに数でもなんでもないのに変"数"などという誤訳が付いてしまったのだ。なぜ変数など…

論理演算子が気になって

x=x||0 このコード、よく見かけますよね。関数の引数の初期値を設定しているコードです(x==falseとなる値をとることが想定されている場合この方法では不十分なのですがそれは又の機会に)。しかしもってこのコード、よく出来ていますが初見では何がなんだかわ…

素数大富豪の判定ページ作ってみた

ちゃっかり二番煎じだったりします。

最近の活動

最近はQiitaでの投稿が増えています。le_panda_noirというユーザーが僕です。ブログよりも更新多いのでみてみてください。

Rabbit Plot更新しました

すごく更新しました。ユーザー機能実装したりマテリアルデザインにしたり色々しました。

今年こそはアニバーサリー祝います。

去年実装したブログのx周年が近づくとそれに合わせて色を赤系色にする機能のお陰で今年こそは祝えそうです(ちなみにこの記事自体は1月5日に書いています)。

Immutable.jsの便利な使い方

Immutable.jsにはまっています。なかなか奥が深くて面白いです。

文字列で表された数式を計算するライブラリ作りました

コードの90%くらいは操車場アルゴリズムの実装と数式を項に分けるのに費やされています。

中置記法の数式を逆ポーランド記法の数式に変換する、操車場アルゴリズム

逆ポーランド記法、便利ですよね。かっこが数式から消えてなくなる辺りがナイスです。

Rabbit Plot を公開しました

お久しぶりです。勉強したり行事をしたり部活をしたり高校生していたらブログの更新が滞ってしまいました。まあそんな忙しい合間を縫ってwebアプリを1つ完成させました。

cssBlock.jsをperlに移植しました

Snowballは、バッチ処理とかできたほうがなにかと便利なのでPerlに移植し始めました。手始めに、Snowballのライブラリの1つであるcssBlock.jsをPerlに移植しました。

cssBlock.js更新しました

ほぼすべて書き直し全く新しくなりました。 (全く新しいというのは最近ようやく日本語かな?となってきている、誤用です。使用の際にはご注意ください)

数学的帰納法・応用編

刀語最終話の七花八裂・応用編という響きが好きなので。響きの好き嫌いってなにで決定してるんでしょうかね? この記事は数学的帰納法を用いてより幅広く日常的に応用しようというものです。

逆ポーランド記法の利便性

逆ポーランド記法という計算式の書き方が便利だったので紹介を

AngularJS

Google先生が開発しておられるフレームワークAngularJS便利です

Snowballかっこよくしました

結構使える!そしてよくわからない!ウェブツールまとめてみました。に載ったので調子乗っていじりました。

雑学データベース「wenZdi」作成中…

久しぶりの更新です。近況報告と生存報告です。

楽しい日本地図

Javascriptで日本地図をいじくろうという記事です

面白いほど面白いことがないのでIndustrialCraft2 experimentalの解説します

あまりこのブログで取り上げるジャンルをぶれさせたくないです。しかし、あまりにも暇だしIndustrialCraft2 experimentalの解説が少なくて憤っているのでまとめたいと思います。