カテゴリー
データ可視化

KalkiCode – 基本的なデータ構造を各種言語でどう書くかや動く図で見せてくれるサイト

Kalkicode は、例示や図によるプログラミングサンプルを、プログラミング上の問題(基本的なアルゴリズムやウェブサービス技術)と複数の言語のそれぞれの切り口から並べて示そうとしている、教育サイトです。

配列・行列・リスト・ツリー・グラフ・再帰、などさまざまなデータ構造・アルゴリズム毎に分けられた章を開くと、

データ構造 and/or アルゴリズムの解説に、それを実装したコードサンプルが10前後のプログラミング言語で用意され、コードの実行結果、図、などが続きます。

ものによっては動的にデータ構造の変化を見せてくれたりもします。

こちらは平衡二分探索木にノードを追加したり削除したりする際の動きをアニメーションで表示しているところ。

双方向リンクリストへの追加や削除とか

環状単方向リストへの追加と削除とか

プログラミングの学習をする際に、理解を助けてくれそうなコンテンツがたくさんあります。

10前後のプログラミング言語で同じことを書く、というのもこれだけ多くの項目となると大変なことだと思います。見た感じ、ある程度自動で変換してるのかなとも思いましたが。

# 同じサイト内に Java-to-PHP converter なんてのもあったので、全部じゃないにしてもある程度横展開は自動なのかもしれません。

via Hacker News

カテゴリー
データ可視化

世界の人口を1%ずつ緯線や経線で分けた世界地図

Redditユーザー alexmijowastaken さんによる、世界人口の1%が含まれるように緯度で輪切りにし、異なる色で塗った世界地図

人がほとんど住めない高緯度や、過疎地が多い緯度では帯が幅広になります。中国・インド・アフリカなど人口の多い地帯を含む緯度では幅の狭いラインが密集します。

経度で作られたバージョンはこちら

同じ緯度・同じ経度だからといって離れた国のことを意識することはそんなにないかもしれません。この地図は変わった切り口で見せてくれるという意味でちょっと気になりました。

日本もそこそこの人口密集地帯だと思うのですが、経線で考えると東部シベリアや中央オーストラリアなど人口密度の低いところのグループに入ってしまい、こんな感じになるのですね。

カテゴリー
技術

オープンソースプロジェクト内のTODO個数調査

マーティン・シュライスさん(Martin Schleiss)がブログで公開したのが、Linux をはじめとする巨大オープンソースプロジェクトのソースコードにおける「やらないといけない」あるいは「後で考える」マークである“TODO”の個数の移り変わりをグラフ化したものです。

基本的には、プロジェクトの年月が重なるほど、コードに書かれた TODO の個数は増えていくようです。上の PHP のグラフでは、メジャーリリースや通常リリースの時期の少し前に TODO が増えているようにも見えます。

プロジェクトによっては単調増加ではないものも。Rust は TODO の個数自体が少ないように見えるし、途中で数個まで減っている時期もあるので、意識的に TODO の解消を目指したりしていたのかもしれません。

Next.js 、version 10 と 10.1 のどちらのリリース時期でもなく、突然増えています。

ブログ記事では言語処理系やライブラリなど、有名なもの20個弱についてグラフ化されています。

プロジェクトの規模、歴史の長さによってもTODO の個数は変わりますが、規模や歴史と無関係に多い少ないもあったりもします。シュライスさんはTODO が有ることはどのオープンソースプロジェクトにおいても貢献をする余地があるということだ、と言っています。あなたが良く使っているツール/ライブラリのTODO は増えているでしょうか?