Panda Noir

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

asyncキーワードはなぜ生まれたのか?

みなさんasync/await使っていますか?とても便利な機能ですよね。しかし、ふとこんな疑問をいだきませんか?「これ、なんでわざわざasync関数を導入したんだろう」と。 そうです。awaitさえ実装していれば、機能的に既存の関数で十分に対応ができたはずなの…

プログラマが資本主義についてかじってみた話

(まだ大学生なので職業プログラマではありませんが) 最近というか万年金欠で食費1万円チャレンジを毎月課せられているクロパンダです(親にバレたら怒られそう)。金欠すぎて「投資」で稼げないかと思い、資本主義についてかじってみました。そうしたら「プロ…

アキラ100%が安心しておぼんを外せるサービスをつくった

夏休みが終わってしまい悲しみを隠しきれないクロパンダです。 さて、アキラ100%さんを皆さんはご存知ですか?おぼんで恥部を隠して、見えるか見えないか絶妙な動かし方をして視聴者をハラハラさせる裸芸を披露する芸人さんです。 そんな彼はおぼんを落とし…

文字で背景画像を反転させるオシャレなやつやる

こんな感じのものを作ります。

「ビジネスロジック」のビジネスの意味とは?

tl;dr 「ビジネスマン」とか「ビジネスモデル」のビジネスと同じ意味です。 ただし、「ビジネスロジック」はビジネスのみではなく、「そのサービスのロジック」くらいに拡大解釈されていることがほとんどです。 英語wikiを見てみる 英語wikiのBusiness logic…

Emacsclientの基本的な使い方

Emacsclientに関してまとまった情報が見つからなかったので(というかEmacs全般に言えると思います)、自分で書きました。

LINE Payカードを入手したのでレポート

あまりプログラミングには関係ないですが、キャッシュレスに興味があったのでまとめてみました。 LINE Payカードとは? LINE PayカードというのはJCBプリペイドカードの一種で、LINE Payの媒体となるカードです。 LINE Payにお金をチャージしておくとLINE Pa…

アルゴリズム勉強会 第三回 A*探索

久しぶりにこのシリーズ書きました。シリーズ一覧はこちらから。 A*アルゴリズムとは? 「今までにかかったコスト + これから先の推定されるコスト」が最小になるノードを選びながら探索していくアルゴリズムです。 最短経路探索を考えると分かりやすいです…

同じ引数のとき新しいインスタンスを生成しない省エネなClassを作る

タイトルはつまり new Hoge(1, 2, 3) === new Hoge(1, 2, 3)を実現するということです。 実装 まず実装をお見せします。 const pool = []; class Hoge { constructor(x, y, z) { if (!pool[x]) pool[x] = []; if (!pool[x][y]) pool[x][y] = []; if (pool[x]…

時代遅れのJavaScript記事を判別する4つのポイント

ES2015が勧告されてからすでに3年近く経っています。IEもほぼ駆逐されモダンブラウザたちが跋扈する時代になったにもかかわらずES2015を使ってない記事はもはや時代遅れです。 というかつい先日ES2018が勧告されたわけですから、ES2017あたりまで含めるべき……

Ubuntu17.10にHyperとHyper-akari入れてみた

Hyperを導入してみてハマった点などをまとめました。 Hyperのいいところ テーマが使える 色がオサレ Hyperのダメなところ やや重い Ctrl + _が無効化される(このショートカットでコメントアウトするVimのプラグインが動かなくなった) 日本語入力がデフォルト…

東北大の情物の奴は黙ってMarkdownでレポート書け

東北大学の情物のレポートはWordで書かないといけません。(コースにもよりますが)仮にも情報学科の人間がなぜWordを使わないといけないのでしょうか?????Markdownで書きたいですよね????? ※はじめに行っておくと東北大用に書いたので、東北大生以…

10秒で使えるようになるSpacemacs

10秒で(Vimmerだった人が最低限)使えるようになるSpacemacsです。※環境構築は10秒に含まれません Spacemacsは「VimにEmacsを組み込んだエディタ」という感じのエディタです。狂気のマッドエディタです。しかしなぜか入門記事が見当たらなかったので、自分で…

レポート書くときに使えるWord Tips

今までに調べたものをまとめてみました。 連立方程式を入力する 数式エディタにて以下のようにして入力すると連立方程式を入力できます。 開始記号を入力 \eqarrayと入力 (x@y)と入力 終了記号を入力 開始記号というのは開始カッコのことです。\openとすると…

Nginxでlocationの書き方がわからない時に読む記事

「Nginxのlocationの書き方がわからない!」そう思ったことはありませんか? ネストするとおかしくなる 同じ階層にあるうち一つしか適用されない など 、locationディレクティブは直感的でない、クセがある動作をします。 今回、Nginx実践入門とNginxドキュ…

Emacsのバッファ・ウィンドウ操作の基本

意外にも日本語でまとまった情報がなくて四苦八苦したので基本操作をまとめました。 (少なくとも「emacs バッファ 操作」でググってもよく分からない状況だった)

意外と知らない著作権表記

ウェブサイトを作るとだいたい付けることになる「著作権表記」。だいたい「©︎ 2010-2018 hogehoge All rights reserved.」のようになっています。しかし、実はもっとシンプルでいいと知っていましたか?

プログラミングパズル作った

HTTPの知識やHTML、JavaScriptの知識を使って解くパズルを作ってみました。昔、「超究極迷宮」をプレイしたことがある人はそれっぽいものと思ってください。

ついにはてなブログのhttps化が始まった

(ただし独自ドメインを設定している人はまだhttps化できない模様) 昨年9月に発表があり、「11月にHTTPSで配信可能になる」というスケジュールだったHTTPS化が、約3ヶ月おくれの今年2月22日についに対応になりました! …ということに先週気が付きました。アン…

HTMLで絶対パスを有効的に使う

http://example.com/hoge と http://example.com/hoge/を区別せずに扱おうとすると、相対パスの問題が起きます。これを回避するために絶対パスを使いたいですが、一々フルで書くのはめんどくさいので<base>タグを使って楽をしようと思います。</base>

Neovimにでなぜか入力した文字がおかしくなった

Neovimを起動直後に「あいうえお」と入力すると「いうえおあ」になる、という問題に直面しました。このときの解決法をご紹介します

とりあえず動かしたい!Dockerいじり

対象読者 イメージとかコンテナとかどうでもいいんじゃ!動かして覚えるからサンプルよこせ!という方。僕自身「よくわからんけどなんか動いたぞ!」レベルなので。 できるようになること 詳しい解説は他の方がいくらでも書かれているので、解説はしません。…

\sは本当に空白文字を網羅できているのか?

世の中にはやたらと空白文字があり、なんと30文字以上もあります! 「/\s/はこんなにたくさんある空白文字の全てに対応しているのか?」という不安に駆られたので検証してみました。

tmuxで特定ペインを常に一定サイズに固定する

よくターミナルをリサイズするので、時計ペインのサイズが固定だと嬉しいと思い、スクリプトを組んでみました。

終了時に「実行中のプロセスが存在します」と言わせないためのtmux起動法

zshrcにtmux attachと記述してtmuxを起動させるというテクニック、ご存知ですよね?とても便利ですし僕自身使っていました。 しかし、この方法では端末の×ボタンを押したときに「この端末を閉じますか?」という警告メッセージが出ます。とてもストレスですし…

たった2つのポイントで!zshでもfish並のインクリメンタル補完を実現する

fishのインクリメンタル補完(下のような補完)が神すぎてzshをやめてfishを使っていました。 しかし、fishを使っているうちに色々と不具合が出てきました。 シェルスクリプトがbashやzshと異なる (2018/6/19追記) 設定ファイルの書き方がbashやzshと異なる ba…

Ubuntuのワークスペースの使い方まとめ

Ubuntuにはデフォルトでワークスペースと呼ばれる機能が存在します。が、使い方をまとめてあるサイトがなく、せっかく便利な機能なのにもったいないと思ったので、記事を書いてみました。

暗号化だけじゃない!サイトをhttps化するメリット

今朝、ConoHaからのメールで「Let's Encryptというサービスを使えば無料でhttps化できる」と知ったのでホームページをhttps化してみました。かなり簡単だったのでご紹介したいと思います。 実際にhttps化したサイトがこちら↓ Panda Noir

void演算子の活用法を考えてみた

考えてはみましたが、実際に使うと多分怒られます。

これでもう怖くない!npm versionで失敗しないための3つのポイント

npm versionコマンドの挙動がよくわからない tagがズレた CHANGELOG.mdをいつコミットすればいいのか dist/の生成タイミング などなど、npmパッケージのアップデートはややこしすぎます。毎回不安になるのでポイントをまとめました。