Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

2016-01-01から1年間の記事一覧

この1年を振り返ってみる -2016年版

今年も振り返り記事を書きます。去年の記事はこちら www.pandanoir.info

100回いれ直して分かった:echo has('python3')を1にする方法

ほんと100回は brew uninstall neovim; brew install neovim/neovim/neovim しました。…50回、いや少なくとも10回はやりました。

Riot.js+Redux+Immutable.jsでカレンダーアプリを作った

なんでReactじゃないのかって?Riotの方が好きだからですよ。

Fluxとはなんぞや

github.com ここのFlux conceptsを参考にFluxについて解説したいと思います。

List in JSを更新しました

github.com 以前、List in JSというライブラリを作っていたのですが、同じようなライブラリが存在していたこと、実装がつまったことで放置していました。が、ありがたいことに星を7つもつけていただけたので、このままでは申し訳ないと奮い立ち、アップデー…

JavaScriptテンプレートリテラルのおもしろい例

ES2015でテンプレートリテラルが追加されました。テンプレートリテラルには変数を埋め込むことができるのは周知の事実かと思います。しかし、埋めこむことができるのは実は変数、ではなく式です。今回は式を埋め込むことでできるおもしろいコードを紹介しよ…

Canvasまとめ

canvasに関する知見がたまったのでまとめようと思います(今更)。

3入力以上のXORは真の個数が奇数か判定している

おさらい: まず2入力の場合 の xor。この場合は、「どちらかがON、どちらかがOFF」のときに真を出力します。 A B A^B 0 0 0 0 1 1 1 1 0 1 0 1 3入力のXOR 3入力のXORの真偽表は以下のようになります。 A B C A^B^C 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1…

カレンダーを扱いやすくするライブラリfilendarを作りました

filter + calendarでfilendarです。 ある月の平日を求めるプログラムや、ある日が国民の休日であるか判定するプログラムなどを記述するためのJavaScriptライブラリです。

npmパッケージを作るときの雛形を作りました

publishするときに地雷を踏んだり、アップデートするときに落とし穴にはまったり、試行錯誤してなんとなく自分の中でベストプラクティス確立したので、雛形としてまとめてみました。

UnitaryJS 0.0.8公開しました

今回メインとなるのはDoughnutクラスの追加です

UnitaryJSで五芒星を描く

UnitaryJSを使えば星を描くのも簡単です。

UnitaryJS 0.0.7公開しました

補助的なメソッドの追加とバグ修正が主な内容です。

直線と直線の交点を求めるプログラム

これも結構間違えた実装してました…

線分の上に点が載っているか判定する

まあひねりの何もないコードですが、なぜか間違えたまま半年放置してしまっていたという笑えない事態になっていました…

npmでアップデートするときに踏みがちな3つの落とし穴

踏みつけた▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂ ライブラリ公開のときに起こした事故まとめはこちら 踏みがちなことを潰すためにnpm versionを使うとより確実です。

UnitaryJSを更新しました

久しぶりにUnitaryJSを更新しました。UnitaryJSの開発が止まっている間に世間ではRollupだのES2015だのと大きく動いていたのでそれへの対応がメインです。 今回の変更点は ベジェ曲線をサポート TypeScriptからES2015へ乗り換え BrowserifyからRollupへ乗り…

bentley-ottmannアルゴリズム

約1ヶ月ぶりの更新です。いやー夏休み終わって部活再開してからめちゃくちゃ忙しくて大変です… 今回は、n本の線分の集合が与えられたとき、それらの交点をO(n log n)で求めるアルゴリズム、bentley-ottmannアルゴリズムを紹介します。実装はダラダラ進めてい…

アロー関数とかclassとかfunctionとか

いろいろ出てきたのでfunction(){}使う機会減ったよねという記事です

Riotのコンポーネント作り1日目 -ダミー画像

いつも通りシリーズにしようとするも続かないやつです。 <dummy-img width="200" height="150"></dummy-img> というコンポーネントを作りました。空タグじゃないけどそこは許してください。空タグできるんですかね…?

ifのあとにブロックつけるつけない問題に新展開が来てたよ!

2015年に!

離散フーリエ変換の解説

離散フーリエ変換とは (以下では離散フーリエ変換をDFTと記述します) DFTとは、「ある関数f(x)から、関数F(t)を求める変換」です。 ただし、f(x)もF(t)も連続した関数ではありません。離散した関数なので、どちらかというと数列に近いです。 F(t)は以下の式…

離散フーリエ変換をC++で実装した

C++

なぜかwolfram alphaの計算結果とずれてるけど、wikiの数式のとおりに実装できてはいるはずです。合っているのかはよくわかりません。 2016/9/14 追記: 正規化係数を1/root(N)にする(ノーマライズする)とwolfram alphaの数値と一致するようです。下のプログ…

Segmentation faultこわい

C++

フリじゃなくてSegmentation faultきらいです(じょしらくにハマってるオタク)。 なんかやけにセグフォールト(セグメンテーションフォールトの略)に出くわしている気がするので、出くわした状況をメモしていこうという記事です。

アリ本の詳解 その1

アリ本の解説、私のように頭が弱い人には足りないことがあります。そこで、私がうんうん唸りつつ考察した、小学生でもわかりそうな解説を記そうと思います。 …少なくとも東大未満でも学生なら理解できるレベルではあります。たぶん 今回は2-2の「区間スケジ…

C++でハフマン符号を求めるプログラム

結局C++でも実装しました。 ブログネタないからハフマン符号記事で3つも書いたなんてことはありません

二分ヒープによるハフマン符号の効率化

二分ヒープを用いることでハフマン符号を効率よく計算できるようにしました

ハフマン符号をJavaScriptで実装した

え?C++を体得したんじゃなかったって? 知りませんね、そんなこと。私はC++なんて使わないでJavaScriptでコードを書きます。

『独習C++』読了。

C++

お盆期間の1週間で読みました。

九蓮宝燈は実は全パターン四面子一雀頭

九蓮宝燈は1 1 1 2 3 4 5 6 7 8 9 9 9 + Xという形です。実は、Xが何であってもすべて四面子一雀頭になります。以下一覧にしてみました。