Nimで作りたいものをつらつら書くだけ

この記事は Nim Advent Calendar 2018 - Qiita の22日目の記事です。

皆さんバッチリNimに関するノウハウを書いていらっしゃって誠に恐縮ですが、私は「Nimで作りたいもの」をつらつら描きます。

この記事の筆者はPythonなんていう生ぬるい言語を触りながら、C++1xの仕様の改良に 「おや、これ、私もC++できるのでは?」 という妄想をするにわかNimファンです。

それでもなぜNimを使おうとするのか

言わんでも分かるでしょう。

Features | Nim を真に受けてますよ。

だからこんなPythonなんていう生ぬるい言語使いが、 「Cythonもいいなあ」 と脇見しながらNimを使ってみようかと思ってしまってるのですよ。

本題

さて、本題です。

もう作りたいものが多すぎます。これから書くことはただの絵空事です。妄想です。作るとは言ってないです。

CoderDojo受付システム Touryumon (登竜門)

私は趣味で CoderDojoSapporo DojoSapporo East Dojo で子どもたちにプログラミングを布教してます。

その活動自体は特に問題ないですが、ちょっと不満がプログラミングを教える人たちの上がっている事としては、 「 Connpass もいいっちゃ良いのだけど、ちょっとかゆいところに手が届かないのだよなあ」 ということで。

作るか。

と思ったのですよ。当初の予定では。

良い点

なんでって、そりゃあ、

  • コンパクトなバイナリを吐き出せる → 環境構築がそこまで手間がかからないのでは?
  • Pythonに近い文法だから、割といけるのでは?
  • さくらインターネットさんから CoderDojo Japan に提供して頂いているクラウドマシンでも十分に動くものを作りたい。

悪い点

と思いましたが、自分でちょっと「待った」をかけました。

  • Pythonに近い文法とはいえ、ちょっと難易度高いのでは?
  • やっぱ自分、そこまでNimのこと分かってないわ(先週までプラグマの使い方が分からなかった)
  • 何より 子どもたちにも触って遊んでほしい ので、ちょっとハードルが高すぎるのでは……!

いや、Nim教えればNimできるようになるかもしれませんが、俺がNim分かってないんだもん。難しくね?

ということで、Nimでの開発を断念し、サーバーサイドはPython, フロントサイドは CoffeeScriptElm 使うかなーと漠然と考えております。

Linuxでも動作するBMSプレイヤー

お、BMSをご存じない? BM98もご存じない? きっと1990年世代じゃないか、もっと素敵なコンピューターライフを送ってたのですね!

簡単に言うと、パソコンでできるコナミ音ゲーっぽいやつです。

これの売りは 「譜面・楽曲データを作れること」 です。

BMSのファイルフォーマットは 公開されております 。やねうらお先生とNDK先生は偉大ですね!

更に言うと、最近 BMSON という JSONベースのファイルフォーマットも出てきたので、27歳派遣プログラマのおじさんは、正直「おぅ……」ってなってます。

なんで作りたいかって、そりゃああなた、中学時代に O-SE さんのサウンドとか nixx さんのサウンド聞いて、エレクトロミュージックにドハマリした人間としてはなあっ!

なお、ライブラリ(エンジン?)としては frag を利用する予定です。

「知ってるか? 手榴弾はピンを抜いた瞬間にお前の友達ではなくなるんだぞ」 「 `Step Mania <https://www.stepmania.com/>`_ は調査したのか?」

MMLファイルフォーマットをMIDIに変換して音を鳴らすなにか

MMLという音楽記述言語というのかフォーマットがあるんですよ。

ぱっと探したところ、Linuxでそれの音を鳴らせるものはないんですよ。

個人的には速攻でサイン波でも矩形波でもいいからメロディ鳴らせたらいいなと壮大な夢を考えましたが、 まずMIDIに落とすところからやるかと思ったり。

既にありそうですけどね。


なんかここに上げたもの既にありそうなんですよねえ……。

後は気が向いた時にワンボード・マイコンとかのプログラミングとかしてみたいですね。

よろしい、ならば布教だ ―遠征は楽しい―

この記事は FuraIT Advent Calendar 2018 - Adventar の10日目の記事になる……はずでした (風邪で寝込んでいた上、 CoderDojoのAdvent Calendar とブッキングしてた。)

はい、言い訳はこんなところで良いですかね。 自己紹介?

自己紹介

まんじゅ(´ん`)さんです。

UbuntuとCoderDojoの布教をしてます。

この記事を執筆している時点では、 札幌 関数型ミートアップ というイベントで、 Spacemacs を使って書いてる一般人です。

初FuraITでした

写真は後日!

Facebookで tomio2480 さんが、 「誰かDockerを教えられる人は居ないかあ」 と助けを求めていたので、 「どーれどれ、おじさんが手伝いに行こうかあ?」 と言ったら、本当に行くことになってしまった。嬉しいけど。

ぶっちゃけ「楽しかった」しか感想が無いんだよなあ。

田舎で勉強会をやる意義について

少しおじさんの話しようか。

僕は北海道は別海町というド田舎の酪農家の家で、X68000を持つ父親の元に生まれた。

友達は居たが、ぶっちゃけ「CPUの創りかた」を読んで、熱く語り合うようなのは居なかった。

ましてや、そんなド田舎でUbuntuとPythonに出会えた事が奇跡なのかもしれない。

それでも、仲間が居たほうがいいのだ。

できれば早いうちに。

いくら、 「一人ぼっちの惑星でひたすら電波を飛ばす」 だけでも、自分の存在を自分で証明できていたとしても、寂しいよな。

だから、僕はそんなど田舎でもコンピューター少年になってしまった少年少女たちの、友達になりたいと思う。

友達になって、僕から君たちのところに行けるようになりたい。いや、なる。

こんなコンピューターおじさんでよければだけど。

そう思って、CoderDojoを、道東とかで出張Dojoという感じで、できたらなとか思ったり。


そんな決意を改めてさせられる、FuraITでしたよ。 うん。

なんか駄メンターとしてやりたいこと

自己紹介と謝罪

どうも。勝手に coderdojo-japan.social なんていうドメインをとって、 Mastodon的マイクロブログサービスの運営をしようとした駄メンター、まんじゅ(´ん`)です。

もちろん、この件に関しては札幌東DojoのChampionからご指摘をいただきましたので、 その後サービスは閉じております。

サービスを勝手に立ち上げたことは後悔はしていますが、反省はできておりません。残念ながら。

とりあえず、ここからの記事は、こんなふざけた27歳のプログラマがつらつらとなんか書くだけなので、 期待しないでください。

はじめに

この記事は、 CoderDojo Advent Calendar 2018 - Adventar の10日目の記事になり……ませんでした。(風邪で寝込んでおりました)

ここからは非常にふざけた姿勢で、ただ単純に自分の承認欲求を満たすためにCoderDojoに参加している、 いわば「駄メンター」ないし「堕メンター」が、今後何をやっていきたいかをとりあえず書き残して置きます。

当初は、デジカメのRAW撮影と現像について書こうかと思いましたが、色々思うことがあったので予定を変更しました。

駄メンターのやりたいこと

ということで早速本題に入ります。

クリエイティブコーディング

あまり聞き慣れない言葉かもしれませんが。

コンピューターは別に、 「事前に組んだプログラムしかできない」 とか 「即興で何かできるものではない」 という考えを壊して行きたい所存です。

ということで、定期的に TidalCyclesFoxDotveda や、 Python Mode for Processing でライブコーディングしてみたいなと思ってたりします。

Scratchでライブコーディングしても面白そうですね。

パソコンとフリーソフトウェアで創作活動

ど素直にいうと、一番はこれを子どもたちに伝導(?)したいです。

もともと僕がプログラミングを初めたきっかけは、 「ビデオゲームを作りたい」 というところでしたので。
ついでにいうと、プログラミング初めた当初に友人から言われたのは、 「よし、俺が監督するから、お前はグラフィックと音楽とプログラミングとシナリオやれな」 と言われたため、全部できないこともないです。

僕の感覚だと、5万円ちょっとあれば、部屋を汚さずに落書きはしほうだい、いろんな楽器の音を鳴らしたりできる。こんな便利な環境は無いでしょう。

ということで、ぼちぼちやってます。

コンピューターの偉人伝

僕はプログラマやソフトウェアエンジニアのエッセイは大好きです。

なので、そんな素晴らしい人たちのことを紹介せずにはいられません。

ということで、ぼちぼち、 「こんな面白い人がいるんだよー」 という話もしていけたらと思います。

Ubuntuディスクの配布

あまり食いついてくれる子がいないので最近はイメージディスクを焼いていませんが、Ubuntuの配布・布教も積極的にやってるつもりです。

大人も人間であることを示す

自己紹介と謝罪 で申したとおり、僕はふざけた27歳です。子どもに対しても普通にキレます。怒鳴りはしないけど。

なぜかというと、そういう接し方をしたほうが、むしろ子どもたちに変な気を使わせない気がしてるからです。

そもそも 「なぜ子どもに気を使わせたくないか」 という話ですが、信じられないと思いますが自分が割とそういう人間だからです。

結局相手の話を聞いて、聞いて、機嫌を損ねないように付き合って……。

なんかそんなことをしていたら、疲れてしまったらしく。いつの間にか眉毛を抜くくせが出てきたり、精神科に通って薬を飲まないと床に頭を叩きつけるような精神状態になっておりました。

なので、子ども達にはできれば自分を思いっきりアピールしちゃっても良い環境づくりはしているつもりです。

なんていったって、自分の感じてきた嫌な気持ちや疎外感や孤独感を、子どもたちに味わってほしくないので。

そうやって接していく過程で、私は大人同士のやりとりでも距離感が掴めなかったり、 自己紹介と謝罪 のような変な行動をしてしまっているのが最近の自分ではありますが。許してもらおうなんて思ってるつもりはないですよ? これでも。

まとめ

最後はまるで良いこと言ったみたいな感じの文章を書いていますが、やっぱり、 「コンピューターそのものも楽しいし、コンピューターでものづくりするのも楽しいし、コンピューターに関わる人たちも楽しい人がいる」

ということを、ただ伝えたいだけなんですよ。ぼかあ。


さて、カレンダーの並び順通りだと、次は togazo - Adventar さんなのですが……。

他の皆さんのカレンダー記事も、僕なんかより素晴らしい記事だと思いますので、是非見てください。

CoderDojo Advent Calendar 2018 - Adventar

マシュマロにアヒルのような脚が生えているそれに関数をぶん投げて演算させたい

はじめに

この記事は「ドイツのトリ Advent Calendar」の1日目の投稿になるはずでした。

なお、僕はドイツのトリがどうして一部でここまでのムーブメントが起こっているのかよくわかりません。 ミリしらの可能性もあります。

そして、この記事は僕がこの世界をどのように解釈したいのかという話をだらだらしていくだけです。

ダッグタイピング

「アヒルのように鳴いてアヒルのような格好をしていれば、それはアヒルだ」

そんな言葉があります。

しかし、 「ドイツのトリ」 で画像検索をすると、 「アヒルなのだろうけど確証を持ってアヒルとは言えない、アヒルのような脚の生えた動物」 の写真を見ることができます。

アヒルと確かめてみたいので

まるで、 「現地に飛んでいったのかという」 書き方をしていますが、残念ながらそうではありません。

この「ドイツのトリ」という、現在は謎の生物がもし私の前にいたと仮定して話を進めます。

命令する。念じる。

僕はドイツのトリは脚が生えているので、 「鳴いて」 と命令、もしくは念じます。

鳴きません。

次に、 「ドイツのトリはきっと頭を隠しているだけだろう」 と思ったので、 「こっちを向いて」 と命令、もしくは念じます。

向いてくれません。

こうして、ドイツのトリは、アヒルという動物の具象から、「ドイツのトリ」というアヒルではない動物 ということがわかりました。

次に行うことは、きっとゆっくり近づいてみるといったアクションをして、具体的に「ドイツのトリ」が どんな姿をしていて、どの動物に似ているからカテゴライズする。というアクションを僕は取るでしょう。

まるでダックタイピングプログラミング(きっと)

今までの話で何が言いたいのかというと、 「世界ってダックタイピングプログラミングっぽいよね」 という暴論です。
「君、踊って」 と命令したり、 「雨よ止んで」 と願ったり。

じゃあ、プログラミングもそういう風にできないのかな? と私はつい思います。

主語抜け会話

私は会話するときに主語がよく抜けてます。多分苦手な人を結構苛つかせるレベルで。

でもそれは、日本語という言語の仕様がそれを寛容しているし、それで会話も成り立つ、表現性の高い 言語ではあるという話しにもなりません? ならないか……。


なんか書いていて、話のつなげ方がわからなくなったので、オチを書くと。

  • なんか自分は関数型パラダイムを日常会話で使ってる
  • 関数型パラダイムに適した言語は無いか(日本語では限界を感じ始めた)
  • ロジバンとかいいよね、S式に分解できそうだし。

ってことで、はじめてのロジバン 第2版 - はじめてのロジバン第2版 読んでください。使ってください。気さくにこの言語で挨拶しませんか?

以上、お粗末でした。

Smalltalk のメッセージと、Scratch の読みづらさ

先日の CoderDojo 稽古終了後の一幕、他のメンターさんにたずねられた

「Scratch のメッセージって、Smalltalk 由来?」
「確かそうだと思いましたけど」

と答えると。

「いやね、子ども達なりに工夫しているのはわかるのだけど、スクリプトを分割してて、あっちこっちに飛んでて、子ども達自身もわからなくなってしまっててね」

そして興味深い一言、

Smalltalk のメッセージタイプのオブジェクト指向の弱点が、Scratch で顕著に現れてしまったのかもね」

ほほう、興味深い。

ということで個人的にちょっと考えてみました。

続きを読む...

ダサい生き方しかしていない件について

「本当に自覚してるの?」
と尋ねられれば多分自覚していないからこんなこと書いてるのだとは思う。
「わかってるよ」
と言ってるが、その実分かってないから繰り返してるし、直せないのであって。

と言うような長編ポエムをダラダラ書く。

続きを読む...

Blender立ち上げる前に……絵コンテ描こうな!

この記事は、 Blender Advent Calendar の 22日の記事の……はずでしたっ!(また遅れた)

前回 はBlenderに役立つと思う検定試験の紹介をしました。

しかしながら、検定試験で自信をつけて書籍をいっぱい読んでも、Blenderで理想的なモデルを 作れるようにはなりません。

とはいえ、
「Blenderは毎日立ち上げて毎日モデリングしている。なのに理想のモデルができない! コレジャナイ!」
という方はたくさんいらっしゃると思います。私もその一人のつもりです。

そんなときどうすればいいのかって話なんですが。一概にこれが正しいわけではないのですが、 モデリングしたいものをまず2次元に描き起こすことをおすすめします。

続きを読む...

自分のErgodoxが欲しかったので、まず他人のErgodoxを作ってお小遣いを稼ごうと思った話

この記事は、 自作キーボード Advent Calendar の8日目の記事に なるはず……でした!(クズ人間)

とりあえずネタはあるので、一応書いておこうと思います。

SSIA

Subject Says It All です。

タイトルの通りなんです。

詳しくは、
「Ergodox作らせてください」
とかで検索書ければ出てくると思います。

Q, なぜはやまった?

絵の無い4コマ漫画で説明するとですね……、

  1. Ergodoxか、いいなあー。
  2. 月収10万円だけど、FablaTechで買っちゃうぞー
  3. PayPal「決済が承認されませんでした」
  4. どうしたら良いんだぁーっ! はっ! (その時、電撃が走る)

と言う感じです。

いや、待て。

自作するのはまだわかるけど、なんでいきなり売ろうと思ったのか……。

未だに私も分かりませんよ……。

あとがき

最近普通のキーボードで作業してると手首が痛くなります。

Ergodox作りたいので、パーツかお金ください……。

※: このブログはThermaltakeのPoseidon(青軸, 最近過入力、接触不良が見られる)で書きました。

俺、エンジニアだと思ってたけどエンジニアじゃなかった

この記事は、 カノジョできないエンジニア Advent Calendar の 19日目の記事になる……はずでした!(また遅刻したらしい)

こうやってまともに約束を守れないからまずカノジョできないんですよ。

さて、もし何らかの期待を抱いてこの記事にたどり着いた方には、1つ2つ謝らきゃいけないことがあります。

俺、エンジニアだっけ?

あとものっそいポエミーです。

続きを読む...

創作者はもっと自由になれる ―突き詰めれるだけフリーソフトウェアで構成した創作・執筆環境―

この記事は、 LibreOffice Advent Calendar の8日目の記事の……はずでした!(ごめんなさい)

そして内容は 同人創作サークル Onoma (活動休止中)の記事の虫干しです。これは当初からそうでした。

そんな拙い記事ではございます。

続きを読む...