Tag Archives: ネタ

laptop.css – 画像をラップトップ化してくれるスタイルシート

laptop.cssは、画像の周りにアスキーアートのラップトップ枠をつけてくれるという単機能のCSSスタイルシートです。オープンソースです。

3種類のサイズのラップトップが用意されています。

どういう時に有用なライブラリなのか、今一つわかりませんが。

縦横比に注意して画像を用意しないといけないみたいですね。そして、画像につけたリンクが無効になってしまった。

(rss フィード経由の方は元ページを開いて見てください)

via Hacker News

metro-clojure – gitリポジトリで地下鉄路線図を作るClojure製ツール

gjhenrique/metro-clojure は、鉄道路線図をgitのコミット/ブランチログで再現するためのオープンソースツールです。

路線と路線に所属する駅名を並べた json ファイルが入力となります。サンプルとしてサンパウロとニューヨークのデータがついてきてるので、それを参考にします。


[
{
"name": "銀座線",
"stations": [
"渋谷",
"表参道",
"外苑前",
"青山一丁目",
"赤坂見附",
"溜池山王",
"虎ノ門",
"新橋",
"銀座",
"京橋",

データをツールに食わせると、git コマンド群を発行するシェルスクリプトを作ってくれます。


$ boot generate-git-commands -c tokyo -f tokyo.sh

大江戸線のような循環があると、git グラフが作れないためツールはエラーで止まります。そりゃそうですね。

都庁前の循環を外して再度挑戦するも、東京のいたるところの乗換駅でエラーが… あちらとこちらで乗り換えができれば、循環だらけにもなりますね。


# 渋谷 銀座線 半蔵門線 副都心線
git checkout --orphan "銀座線"
git commit --allow-empty -m "渋谷"
git branch -f "副都心線" HEAD
git branch -f "半蔵門線" HEAD
# 代々木上原 千代田線
git checkout --orphan "千代田線"
git commit --allow-empty -m "代々木上原"
# 代々木公園 千代田線
git commit --allow-empty -m "代々木公園"
# 明治神宮前 千代田線 副都心線
git merge --strategy=ours --allow-unrelated-histories --no-ff --commit -m "明治神宮前" 副都心線
git branch -f "副都心線" HEAD
# 北参道 副都心線
git checkout "副都心線"
git commit --allow-empty -m "北参道"
# 方南町 丸ノ内線分岐線
git checkout --orphan "丸ノ内線分岐線"
git commit --allow-empty -m "方南町"
# 中野富士見町 丸ノ内線分岐線
git commit --allow-empty -m "中野富士見町"
# 中野新橋 丸ノ内線分岐線

「赤坂見附-永田町」のような別名の乗換駅の同一化を諦め、さらにエラーを起こす乗換駅を同一にしないよう入力データを修正していって、やっとなんとかエラーを出さなくした結果のスクリプトを、新しい git レポジトリに突っ込むことで、部分的には正しいところもあるぐらいの、東京の地下鉄gitグラフ(東京メトロ+都営地下鉄)を作ってみました。

git log で見るとこんな感じ

東京の路線図は循環しすぎなので、使用例としてはあまり良くないかもしれませんね。

もともとパリの路線図をGitHub 上で再現した2015年の作品があり、metro-clojure はこのような作品を簡単に作れることを目指して制作されたようです。

このツールを使えば、地下鉄の路線図以外の何か身近な有向グラフを git グラフで表現することができますね。

via From metro connections to a git graph

ブラウザのファビコンでライブストリーム

ファビコンでアニメーションとかは以前からあるネタなので、その延長にあるアイデアというか。ファビコンでカメラが映した映像を表示させるというプログラムです。

作者の方がツイッターに動画を上げています。

ウェブカムに向かって手を振ってる様子がわかるでしょうか?

自分で試したい場合、こちらのサイトをChrome/Firefoxなどで開き、カメラへのアクセスを許可する必要があります。

# Safari では動かないというレポートがあります

ソースコードはこちら。短いですね。

via Hacker News

HTTPステータスコードを絵文字にする提案

PSR-7 のユーティリティクラス http-message-util において、ステータスコードの定数名を絵文字にしてはどうか、という提案が出ています。

週末が4月の始まり付近に掛かるという新事実にちなみ。絵文字はステータスコードの新標準となりつつあります。特定のステータスコードの数字にどんな意味があるかというのを覚えなくても、絵文字によってステータスコードを見た人々の感情を表すことができます。またこれは、404エラーが出たというユーザーからのつきない呼び出しを解消します。彼らは電話口で、建設中の絵文字が表示されたので完全に状況を把握したと述べることでしょう。

差分を見てもらった方がはやいでしょうか。

定数名の方を変えるんですね。

# 4月1日の提案です。プルリクエストまで掛かってますが。

やたら長いURL延長サービス a(x63).com

URLが短すぎて困るという人のための、URL延長サービスだそうです。

http://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com/

aは63個。ドメイン名も長いですが、短縮(延長)した部分は、ハッシュとしてAとaの組み合わせだけで表現されるため、さらに長くなります。

ソースコードを見た感じ、古いデータは上書きされてしまうかもしれません。

サイトのソースコードはGitHub で公開されています。

いったい何に使うんだよ… というサービスですが。

短縮URLサービス自体が、悪用されたりサービス停止して使えなくなったりと長期の利用に向くものではないので、もしURLを長く長くしたい人がいたとしても、ご利用には注意を願いたいところです。

via Hacker News

ASCII TV – テキストアニメーション映画(スターウォーズep4とか)を再生するwebサーバ

オープンソースで公開された ASCII TV は、ASCII文字で構成された「映画」をターミナル上で再生できる Golang 製の http サーバです。

サンプルとして、スターウォーズ・エピソード4 (のASCII映画)をターミナルから以下のコマンドで再生できます。

$ curl https://asciitv.fr

ここで再生される19分弱のASCII版スターウォーズは、2012年に telnet で再生する ascii-telnet-server が公開された際にもデモ用に使われていたものです。もともとは、http://www.asciimation.co.nz/としてサイモン・ヤンセンさんが制作したもの。

telnet版の呼び出しは以下

$ telnet towel.blinkenlights.nl

再生の様子はこんな感じになります。

ASCII TV はスターウォーズのテキストファイルを呼び出すようになっていますが、データさえ用意して差し替えれば、他のASCII映画やアニメーションをターミナルから再生することができます。

ASCII版スターウォーズほど気合の入ったものは、ちょっと見つかりませんでしたが。

via Hacker News

ニュージーランドがない世界地図

blocks で公開されたスニペットMaps with New Zealand(ニュージーランドのある地図)は、ページの右下に常にニュージーランドを表示するというJavaScriptコードです。でもなんのために?

ニュージーランドのない地図(Maps without New Zealand on them) という名前の reddit 掲示板があり、ここではニュージーランドを描き忘れている世界地図の事例を、様々な人が報告しています。

「日本で見た」というのもいろいろと出てきます。

日本だって端っこの島国なので、仲良く両方ないケースも。

毎日のように投稿があるのがすごいですね。毎日世界のどこかで、ニュージーランドを忘れた世界地図が見つかっている。それぐらい忘れられている(笑)。

この reddit グループについてはBBCニュースも過去に取り上げています。このreddit掲示板を元ネタに、イギリスの街頭で人々に「この世界地図に欠けている国があります。さあどこでしょう?」というクイズを出す様子を伝えているのですが、とてもイギリスっぽい企画。

さらには、ニュージーランド政府自身のサイトで、存在しないページを表示しようとすると、エラーページとしてこんなのが表示されます。

「申し訳ありません。何かが足りないようです…」 一緒に表示されるのは、ニュージーランドのない世界地図…

忘れられることが多すぎるから慣れちゃっているのか、忘れられてしまうような遠くて小さな存在であることを逆に特徴として楽しんでいるのか。やたらに怒ったり抗議したりするのとは一味違う対応ですね。

via Maps Mania

人が見ていると恥ずかしがってちゃんと動かないソート関数

Lynnさん(@chordbug)がツイッターで公開したデモがこちら。

https://twitter.com/chordbug/status/1005701513719754752

「見てる時だけちゃんと動くソート関数を書いてみた」

JavaScript で書かれた sort() という関数に配列を与えて呼び出しています。

カメラに正面から顔が映っている状態では正しくソートされた結果が返ってくるのに対して、横を向いたリ顔を隠したりした状態で呼んだ時には、結果は毎回異なる適当な順番になっています。

もう一つの動画もあって、こちらは逆に「見ていると緊張して正しくソートできない」関数のデモ

https://twitter.com/chordbug/status/1005703638323429377

リプライでの質問に対して、Lynnさんはこのウェブページのソースコードを公開してくれています。

tracking.jsという人の顔を認識するライブラリのサンプルをベースに、顔が認識されている時のフラグを用意して、フラグがオンの時だけ正しくソートし、そうでない時はランダムに並べていることがわかります。

ブラウザのカメラ入力を許可し、JavaScriptコンソールで同じように sort() を呼び出すと、手元でも動かすことができました。

手近にあった顔の映った写真を使いました。仕組み上は視線の向きは関係ないので…

ブラウザ上のカメラ入力からの顔認識、こんなに手軽に使えるようになっているんですね。今回の「顔が映ってたら画面を見てることにする」というアイデアだけでなく、これまで無かったページ上のギミックが考えられそうです。

ソースコードコメント – 引継ぎ者への警告


// Dear maintainer:
//
// When I wrote this code, only god and
// I knew how it worked.
// Now, only god knows it!
//
// Once you are done trying to 'optimize' this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
//
// total_hours_wasted_here = 25


// 引き継いだ人へ:
//
// これを書いたとき、なぜこれが動くのか理解してるのは神と自分だけだった。
// そして今、知っているのは神だけだ!
//
// このコードを「最適化」 しようとし、それがどんなに愚かな間違いだったか
// 気づいたときは、下のカウンタを増やして次の担当者への警告とすること
//
// ここで_無駄にした_時間 = 25

こんなコメントの入ったコードが回ってきたら嫌だなあ。

GitHub に、このtotal_hours_wasted_here が含まれるソースコードが結構あって、書かれてる時間も1から200超までいろいろとあるようです。

via QDB and reddit