Panda Noir

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

ArchLinuxインストールしたい

まだできてない()

JavaScriptのブロックスコープの作り方

わざわざブロックスコープ作るためにforやifを使う必要がないって知ってましたか?

forもifも使わないプログラミング入門(終)

シリーズ物書ききったの初めてかも

Riotでカスタムタグを作る3つのやり方

まとまった記事がなくて四苦八苦したので書きました。

Can't load the js.babel riot parser: Error: Cannot find module 'babel-core' と出たときの解決方法

riotのプリコンパイルで $: riot --type babel ./ ./ Error: Can't load the js.babel riot parser: Error: Cannot find module 'babel-core' みたいなエラーが起きてしばらくの間悩んでたのでメモ。

forもifも使わないプログラミング入門3

そろそろforなしifなしでは限界を迎えます。が、まだいけるのでいけるところまで行ってみます。

forもifも使わないプログラミング入門2

前回は1から2016までの総和を取りました。今回はもうちょっと応用していきます。

forもifも使わないプログラミング入門

入門記事を量産してる気がするけど気にしたら負け。

SuperAgentからpostするときの注意

$_POSTで受け取れなくて困ったのでメモ。

演算子の右結合性、左結合性とは

なぜか日本語wikiにないright associativity、left associativity。小学生でもわかるくらい簡単だからだれか翻訳してもいいのではないですかね(他力本願)

マークダウンで間違えがちなところ

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) この投稿を持ってQiitaへの投稿は終わりとさせていただきます。そして、今まで書いた記事(この記事ふくむ)をすべてブログへ移行します。そのお知ら…

immutableとconstの違いがわかりやすいコードを考えた

immutableとconstはとてもよく似ていて混乱しがちですよね。

PyQt5でscrollContentsByが動かない

scrollContentsByを使ってもスクロールが微塵も動きませんでした。そこでネットで探してたら(古い記事ですが)ありました。 QScrollArea::scrollContentsBy does not work で、これをやってみたらPyQt5でも動きました、終わりです。ただの紹介記事です。 # be…

配列をバラバラに入れ替えて元の配列と重複しないようにする

配列をシャッフルし、それぞれのインデックスの要素が、元の配列の該当インデックス要素と異なるようにするアルゴリズムです。 A, B, Cを A, C, Bではなく、 C, A, Bのようにシャッフルします。 あ、前回の記事が400番目の記事でした。また記念イベントを忘…

PyQt5を使って手探りでツイッタークライアントを作る vol.3

いよいよ今回ロジック部分を作ります!これでツイート機能のついた(ツイート機能しかない)クライアントが完成します!

PyQt5を使って手探りでツイッタークライアントを作る vol.2

前回はGUI部分を作りました。今回はロジック部分...と行きたかったのですが、その前に一度前回のコードをリファクタリングしておきます。

PyQt5を使って手探りでツイッタークライアントを作る vol.1

PyQtの資料がただでさえ少なく、ましてやPyQt5の資料なんて雀の涙なのでこれは書くしかないな、と。

0で埋まった二次配列の作り方

0で埋まった二次配列、つまり零行列の作り方に関して。

正規表現のアンカーについて

つい先日 \b がアンカーであると知って驚いたので共有。 (注意: \b は [] で囲ってないときはアンカーですが、[] で囲うとアンカーではなく文字扱いになります)

俺が求めていたものはPyQtだった

インストーラをダウンロードしている。PyQtのサンプル見る限り俺の要求をすべて満たしているようだ。Pythonは神の言語かもしれない Pythonは神。JavaScriptはゴミ。

モナドってすごく簡単だ!

関数型プログラミングしたりHaskellしてるとたびたび遭遇する「モナド」。実は大学1年の僕も理解できるくらい簡単です。この記事ではモナドとは何なのか解説したいと思います。 (注: モナドはモナドでもプログラミングでのモナドについての記事です。圏論の…

canvasに描画されたオブジェクトにイベントリスナを設定する

「canvas上の円をクリックしたら色を変えたい!」「canvasでゲームを作りたい!」そういう時、canvasに対してイベントリスナを設定したくなります。しかし、円をクリックしたかどうかの判定を書くのは煩雑で面倒な作業です。 本記事ではUnitaryJSを用いて、c…

UnitaryJS 0.0.6公開しました

ついに!ついに!canvas内の三角形や円にイベントハンドラーをつけることができるようになりました!誰もが待ち望んだ機能ですよね!最高です!

Sweep line algorithmとは

直訳すると「直線を掃くアルゴリズム」ですかね。ちょっとsweepの品詞がよくわからない(多分名詞)から訳は勘弁してください。 以下この記事中ではsweep line algorithmを略してSLAと書きます。

NeoVimにしてdein.vim入れたらすごすぎて涙目になった

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 速すぎてリアルで涙目になったぞ… 対象読者 Vim & NeoBundle から NeoVim & dein.vimへ移行する人。 インストールとか NeoVimはがんばって。brewと…

うるう年の判定王を決めよう

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 今年2016年はうるう年です。2月は29まであり1年が366日でオリンピックが開かれます。 そして、うるう年判定はプログラマにとって熱いものがこみ上げ…

CSS入門

CSS

HTML入門書いたのでせっかくですし、CSS入門も書くことにしました。

もう分からないとは言わせない! 体系的に学ぶCSS transform 3D入門

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 目次 まえがき transform関数 軸について 複数指定の場合の順序についての注意点 transformはブラウザごとに表示が大きく違う ベンダープレフィクス…

C++のIterator学んだらJavaScriptのIterator理解できた

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 「C++ 入門書の次に読む本」という本を読み終わりました。中身はとても良かったです。まあ書評は置いときます。この本にIteratorが出てきたので、そ…

ずっと気が付かなかったけどインスタンスのprototypeはundefined

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) function Hoge(){ this.hoge = 'hoge'; } console.log(new Hoge().prototype); // undefined console.log(new Hoge().constructor); // [Hoge] 知ら…

i++はスペース挟んでi ++でもok

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) コメント頂いて雑に書きすぎたと思い書き直し。 本記事は「i++と書きがちだけど実はi ++って書いてもいいんだよ」と新しい視点を提供…というと大げ…

jQueryを使うべき2つの理由と使わないほうが良い3つの理由

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 追記: 個人的にそろそろ脱jQueryが来てもいいんじゃないかなと思い書いた記事です。 まあ読むとわかりますが、趣旨は「jQueryの悪いところAngularな…

HTMLで?をUnicode表記で表示する方法

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) ずばりこれ 🍣 ?をUnicodeに変換するコードは下。???もいけた。?は出来なかった。謎である。(下に追記があります) const sushi = '?'; let r…

言語仕様から入るJavaScript入門 その1

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) まあ僕は今受験生でしかも今11月なんで中身はほぼ0です。そのうち書き直します。多分。 誰か代わりに書いて 仕様書 今回はECMA262で書いていきます…

麻雀の役判定アルゴリズム

作りました。七対子、国士以外の判定です(二つは簡単すぎますよね)。また、流し満貫ものぞきます。

TypeScriptで作ったライブラリをブラウザ対応、CommonJS対応させる

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 結構試行錯誤したのでメモ。 全ての元凶(?) 最近の行儀のよい JavaScript の書き方 はじめはこの記事のやり方をTypeScriptに流用しようとしました。…

Canvasをめちゃくちゃ使いやすくするライブラリ「UnitaryJS」作った

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) ずっと思ってたんです。 「ctx.beginPath(); ctx.moveTo(x, y);」とか書くのは私の性に合わないな、と。 こんな無機質なプログラムは書きたくないな…

arr[arr.length++] = 0というコードについて

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) ngRepeat.jsにあった、 clone[clone.length++] = endNode; というコード。おそらく arr[arr.length] = 0; というコードの亜種と思われる(clone.leng…

JavaScriptのコードを綺麗に見せるたった2つのポイント

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 記事書く時にのせるJavaScriptコードはなるべく綺麗な方いいです。綺麗だと読む人も疲れません。 他にも常日頃からJavaScriptコードを綺麗に書くよ…

配列の使いみちを実例付きで解説する

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 対象読者 「配列なんて何に使うんだよ…変数でいいじゃん。」みたいに感じている初心者だった頃の私のような人。 「配列は役立つなぁ。便利だなぁ。…

AngularのServiceとFactoryの使い分け(ほぼ)決定版

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) ようやくわかったのでまとめておきます。決定版と言って差し支えないはずです。これ読めば 絶対に ServiceとFactoryの違いがわかります。これでもう…

よく引っかかるCoffeeScriptの罠

hoge -1 するとエラーが起きます。演算子として使うには hoge - 1 のように1つスペースを挟まなくてはいけません。関数呼び出しの関係(hoge(-1)と解釈されてる)でこうなってるのではないかと推測してはいますが、かなり理不尽なエラーだと思ってるのでなんと…

Angularでスパゲッティを作ったことがある人へ

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) Angularでスパゲティを大量生産するのはMVC厳格に守りつつAngularでアプリケーション作れてないからです。実はMVCを厳格に守りつつ作るのはかなり難…

HTML入門

HTMLはとても簡単な言語なのでサッサとマスターしてJavaScriptしましょう。

意外すぎる"未定義"の配列とその挙動

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) JavaScript で同じ要素が繰り返す配列を作る この記事を受けてコメントして自分の浅学を晒してしまいました。 さすがにまずいと思い、自分で検証し…

JavaScript製HTMLパーサー改

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) ※これは私が以前書いたJavaScript製HTMLパーサーとは仕様が大きく異なります。 以前との違い 以前書いたHTMLパーサーをより使いやすくしました。ど…

JavaScript製HTMLパーサー

追記 この記事のパーサは使いづらいです。子要素の取得すら面倒です。JavaScript製HTMLパーサー改に使いやすく改善したパーサーを載せましたのでそちらを御覧ください。 本題 今回はHTMLパーサーを作りました。HTMLパーサーは、Webスクレイピングやらなにや…

parsimmonで数式の解析

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) parsimmonで数式をパースしました。あとは操車場アルゴリズムでも適用してやれば計算も可能です。 const Parsimmon = require('parsimmon'); const …

JavaScriptのパーサコンビネータ Parsimmonを使ってみた

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) パーサコンビネータなる素敵なものを見つけたので使って検索クエリのパースをしてみました。そのとき、理解するのに時間がかかったのでメモを残して…

文字列が格納された配列をGoogleのように検索する

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) Google検索のように A or Bみたいに検索可能にしました。 配列を探索して当てはまった要素を抜き出した新しい配列を返します。元の配列に変更を加え…