KMC活動ブログ

京大マイコンクラブの活動の様子を紹介します!!

KMCごはん開拓部

こんにちはこんにちは、id:crashrt です。

京都って美味しいご飯屋さんがいっぱいありますよね。 百万遍まわりはもちろん、今出川通の東の方とか河原町三条あたりとか、いろんなところにご飯やさんがあります。 しかも、学生が気軽に行けるような価格帯のお店もたくさんあります。

せっかく京都にいるんだから色々行ってみたい、ということで現在KMCの有志でいろんなお店を開拓しています。 今回はその中でも特に良かったお店を紹介したいと思います。

京大周辺

さい菜ごはん

https://maps.app.goo.gl/oyVg9r3EVP48uaJP6

美味しくて健康的な感じがするの和風の定食がとても良い。学生だと少し安くしてもらえるのもありがたい。

南国サンサン食堂

https://maps.app.goo.gl/5kqYacHvr2vxSMLA9

沖縄のやんばる豚を使った料理が食べれます。生姜焼きがとても美味しかった。 1000円以内で食べれるのもありがたい。

イカヅチうどん

https://maps.app.goo.gl/RFioPyJ71e4BFpVM8

コシ強めのうどんが食べれるうどん屋さんです。開店前の時点で列ができるくらい人気。ちょっと早めに行くのが良さそうです。

本格中華料理 火楓源火鍋 京大店

https://maps.app.goo.gl/BtVcUjTLkoytKqhr6

定番な気はするけど、火鍋が食べれる中華屋さん

平わ

https://maps.app.goo.gl/pL77LcSktXHYwsnw6

カツとかハンバーグとかの定食が美味しかった。天ぷらとか鯛もあるらしい?

河原町三条〜四条河原町

ごはんや 一芯 京都

https://maps.app.goo.gl/aAmqLFEHZitkicaY8

2000円のちょっと良いランチがとても美味しい。 角煮は最高でした。鯛めしも良いらしい。大人気ですが平日の11時に行ったら割とスムーズに入れました。

京都ダイニング正義

https://maps.app.goo.gl/bYSDMC6crV4eurm8A

平日の昼なら1100円で美味しいステーキが食べれちゃうお店。 お肉好きな人はぜひ!

京都寺町 鯛めし槇

https://maps.app.goo.gl/GvVAiwYzyxv1Myx56

宇和島鯛めしが食べれるお店です。一人でも入りやすいのが個人的にはありがたい。

天丼まきの 京都寺町店

https://maps.app.goo.gl/3U6VrNc5sp28mV7i9

よく列ができている天丼やさん。天ぷらがめちゃ美味しいしボリュームもしっかりあります。 17時くらいに行ったら割とすぐ入れたので早めにいくのがおすすめです。

おわり

KMCごはん開拓部の活動を紹介しました。 ちょっと良さげなお店とかは一人では入りづらくても誰かと一緒なら入りやすくてとても良いですね。 散歩中に見つけたところとかSlackでOBに教えてもらったところとか行きたいお店はたくさんあるので、開拓はまだまだ続く予定です。

KMCごはん開拓部は開拓同行者を募集しています。興味のある方はぜひKMCへ!

KMC部員紹介

KMCへの入部を検討されている皆さんに向けて、KMCに所属している個性豊かな部員を紹介します!

ここで紹介された部員以外にもアクティブに活動している部員は沢山います!部員と直接交流したい方はぜひ新歓イベントにお越しください!

2026年新歓ページ | 京大マイコンクラブ (KMC)

また、体験入部フォームにお申込みしていただくと、普段活動に用いているSlackにゲスト招待します!オンライン上で部員や新入生と交流することができます!

KMC体験入部受付フォーム

akkey(49代)

京大工学部情報学科の新2回生のakkeyです。スイーツを食べ、コーヒーを飲むのが好きです。プログラミング言語にまつわる色々なことが好きで、ゲーム制作、自作言語の思索、競技プログラミング、お絵かきなどをしています。最近は機械学習にも挑戦していますが、現状はまだまだです。好きな言語はRustやHaskellなど。最近、いよわさんの曲と将棋がマイブームです。49代の会長として頑張ります

furakuta(49代)

京大工学部情報学科の新2回生のfurakutaです。みんゲーの開発が終わって暇になるかと思っていたら、イベントや部誌等の締め切りに追われてかえって忙しくなっている気がします。機械学習勉強会の運営側に回らないといけないし、競プロ、Web技術、シェーダーにも手を出したいので、どんどん進捗を生んでいきます!

shooogo(49代)

京都大学工学部情報学科の新2回生です。最近ちゃんとプログラミングをするようになった初心者です。初心者の割にはKMCによく顔を出している比較的アクティブな人です。最近日曜のバイトのせいで鍋パーティに参加できず非常に心残りに思ってます。バイトは給料がもらえる以外いいことがないと思っています。日々頑張って進捗を生めるように頑張ります!

randint(49代)

京大工学部電気電子工学科新2回生のrandintです。台灣出身です。小学校6年生から日頃 Linux を使っており、色々触ってきました。春休みは JANOG57 NOC の準備をして、DHCP やサーバー構築などの勉強をしていました。インフラやネットワークなどに力を入れていきたいと思っています。他の趣味としては語学が好きで、最近はスペイン語と台湾語を学んでいます。

我是 randint,就讀京都大學工學部電氣電子工學科二年級。台灣台北人。高中畢業後來了京都大學留學。從國小六年級開始用 Linux。春假時參與了一個叫 JANOG57 NOC 的架網路活動,學習了 DHCP。想要更加精進自己架伺服器的功力及網路相關的知識。嗜好還有學習語言,最近在學西班牙語跟台語。

やらわ(49代)

京大農学部資源生物科学科の新2回生のやらわです。パソコンは大学に入ってからちゃんと触り始めました。それまでは絵ばっかり描いてました。今も毎日ワンドロ描いています。みんげーに参加してゲーム制作に興味がでたのでもう1作品作ろうと思っています。NF終わってから創作意欲がとてもすごいのでこれからイラスト、3DCG、MV、アニメーションに力を入れていこうと思っています。

鯛鯛(49代)

京都大学工学部電気電子工学科の新2回生です。主にゲーム制作をお絵描きをやっています。お絵描きは大学に入ってから始めましたが、毎日描き続けられているので続けていきます。ゲーム制作はインプットもアウトプットもしっかりしていきたいです。

nora(49代)

京都大学工学部物理工学科の新2回生です。ゲームが完成せず、学祭当日に人生初の夜鍋をしましたが、何とか学祭開始までに完成させられたので安堵しています。少し前に先輩からサーバーを譲り受けたので、今はサーバー周りのことを少しずつ学んでいます。

たまさん(49代)

京大工学部理工化学科の新2回生のたまさんです。みんげーでイラスト担当になったことでドット絵に触れ、今ではドット絵アニメーションの虜になっています。ドット絵やアニメーションの技術向上はもちろん、ゲーム制作にも興味が出てきたので今年も頑張っていきたいです!

akinooimo(49代)

京都芸術大学情報デザイン学科の新2回生です。普段は映像やイラスト活動をしていて、KMCでは宇宙猫として活動しています。 現在はインターネットの仕組みを分かりやすく描いたマンガを少しづつ制作しているので、今年の夏コミに出せたら嬉しいなと思っています。 サイト,アプリのデザインやメディアアートに関心があるので、今年は学びを形にできるように頑張りたいです。 知らない分野に触れられるKMCというサークルにとても感謝しています。いつもありがとうございます!

biuntri(49代)

京都大学工学部理工化学科の新2回生のbiuntriです。普段はゲーム作ったりExcelで遊んだりしています。今年度はいろいろ挑戦してみたいな〜

ebishrimp(49代)

京都大学工学部理工化学科の新2回生のebishrimpです。 どちらかと言うとハードウェアが好きな人です。自宅サーバー立てたり電子工作やったりしてます。

今井俊太朗(49代)

京都大学工学部物理工学科の新2回生の今井俊太朗と申します。パソコンはあまり詳しくないけれどUnityとかそこそこやってました。今はUnityに飽きたのでwebアプリ制作とBlenderの勉強をしてます。

marutam(49代)

京都大学工学部電気電子工学科の新2回生です。お絵描きとかゲーム制作とかしてました。最近何もしてないので頑張りたいです。

chocomini(49代)

京都大学工学部情報学科計算機科学コース新3回生のchocominiです(同期は48代なので自認は48代)。日々大学で勉強をしているかたわら、KMCでイベントに参加したり立て看板の作成を手伝ったりしています。去年のNFでは、機械学習勉強会で三手制限のマルバツゲームのAIを出展していました。あとゲームセンターでmaimaiやCHUNITHMや太鼓の達人をやっています。

wuhu1sland(49代)

同志社大学理工学部数理システム学科新3回生のwuhu1slandです。web開発と気になったおもしろ技術に手を出すことが趣味です。去年度は自作キーボードの設計・制作、OS in 1000 lines(KMC夏合宿)、NOC参加、楕円曲線暗号についての勉強の発表、自作フレームワークなどをしてました。最近はZigやElixirやMoonbitを触っています。プログラミング以外では、同志社SF研に所属したりsoundcloudでbootlegを聴いたりしています。気軽にchannel覗いてください!

iiiishii(48代)

京都大学工学部情報学科数理工学コースの新3回生です。最近は音響系を色々触っています。今年はもう少しコード書きたいですね~。

irom(48代)

京都大学工学部情報学科数理工学コースの新3回生です。Web開発やサーバー運用をやっています。昨年は副会長をやってサークル運営にも携わってました。今年は競技プログラミングも頑張ろうと思っています!

creeamsoda(48代)

京都大学工学部情報学科計算機科学コースの新3回生です。普段はゲーム制作をしていて、学祭にも展示するため徹夜で作業したにも関わらず間に合わせることができず、結局最終日の昼前になってそっと追加するというムーブをかましてしまいました。前日徹夜組の部員にお菓子を差し入れしたところまではカッコ良い先輩ムーブだったのに……。今年は2倍速で活動することで余裕を生み出します。

gunjou(48代)

京都大学工学部情報学科数理工学コース新3回生のgunjouです。機械学習を入り口に、最近はエッジデバイスの活用に興味を持ったり、低レイヤやインフラの勉強を頑張ったりしています。もっともっと作れるものを増やすために、広く深く技術を吸収していきたいと思っています!

daikonn(48代)

京都大学工学部電気電子工学科の新3回生です。VRが面白くて色々やってたらサークル運営してたり体験会を開いたりした事がありました。最近は競プロやAI、ネットワークなど色々触れてみたくなっています!!色々やるぞ!!

Sin(43代)

京都大学工学部地球工学科の新3回生です。お絵描きをしています。ゲーム開発をしており2027年発売予定です。アイドルマスター SideM大好き!2025お絵描きプロジェクト会長で、今年度は講座とかができて満足でした。

remember(46代)

京都大学情報学研究科システム科学コース修士1回生のrememberです。ヨワニンゲンからツヨニンゲンになるため日々研鑽しています。最近はローカルLLMいじったり、AIコンペ参加したり、積みゲーを消化したりしています。就活を目前にして、ツヨニンゲンへの進化を焦る毎日です。

yukun1107(47代)

京都大学大学院情報学研究科知能情報学コースの修士2年です。普段はゲーム制作をメインにイラスト描いたり3DCG作ったりしています。ゲームクリエイターになるために日々奮闘中です。

segre(45代)

京都大学大学院情報学研究科通信情報システムコース修士2年です。KMCでAS59128の運用やネットワーク・サーバーの管理をしています。日常では大阪湾や九州で釣りをしたり、甲子園に野球を見に行ったりアニメを見たりしています。

sashi(45代)

京都大学大学院情報学研究科通信情報システムコースの修士2年です。のんびりすることが好きです。ゲーム開発やってます!

samebat(45代)

京都大学文学研究科国語学国文学専修のsamebatです。2021~2025のDTM練習会を担当していました。昨年はDTMをやってくれている新入生が多く、活気がありました。KMCを京大ミュージッククラブにする会も秘密裏に発足しており、会員募集中です。最近はアニポケやLoLにハマっています。

KMC入部のお誘い

こんにちは! KMC49代の鯛鯛です。
4月から入学される新入生の方、そして新しいサークルをお探しの皆さんにKMCについて知っていただくために、この記事で私たちの活動を紹介します。
この記事で少しでもKMCについて知っていただけると嬉しいです。

KMCとは?

KMCは京大マイコンクラブ(Kyoto university Microcomputer Club)の略称です。
京都大学を中心に活動する京都大学全学公認のコンピューターサークルです。
KMCでは、

  • ゲーム制作
  • DTM
  • イラスト・3DCG制作
  • Webサービス、アプリ開発
  • 電子工作
  • 競技プログラミング
  • 機械学習
  • サーバーいじり

など、コンピューターを中心とした幅広い分野でそれぞれの部員が活動しています。

どんな人がいるの?

大学生からプログラミングを始めた人もいれば、1回生からインタプリタを自作しているような専門性の高い人も在籍しています。プログラミング以外にも、イラストやDTMに注力している人も在籍しています。
京都大学の学生が大多数ですが、京大外の方も数多く在籍しています。
もちろん初心者から開発経験豊富な方まで大歓迎です。

2026年も新勧を実施します!

KMCに興味のある方はぜひ参加してみてください。
情報は公式ツイッターなどで発信していきます。

活動紹介

日々の活動やプロジェクトを一部紹介します。

例会

毎週月曜日と木曜日に例会が行われています。そこでは、今後行われるプロジェクトの紹介などの情報を共有しています。部室とオンライン上で開催されていて、参加は自由です。
例会の後には、希望者が持ち回りで例会講座を行っています。様々な分野にふれたり、刺激を受けたりすることができ、とても楽しいです。

プロジェクト

例会以外の活動内容は個人の自由に基づいており、部員の興味に基づいて集まったメンバーで日々様々なプロジェクトが進行しています。
プロジェクトでの成果物は京都大学の学祭であるNFやコミックマーケットで公開しています。
興味があるプロジェクトにはどんどん飛び込んでいきましょう!

みんゲー(みんなでゲームをつくる)

新入生がチームを組んで、オリジナルゲームを作成するプロジェクトです。成果物はNFで展示し、実際に来場者の方々に遊んでもらえます。
ゲームをつくる大変さや楽しさを味わいながら、他の新入生との交流も深められます!ほとんどの参加者がゲーム制作未経験であり、先輩もサポートしてくれるので、初心者でも安心して参加できます!
昨年度はタイピングゲームやリズムゲーム、シューティングゲームなど様々なゲームが作られました。
※下の画像は昨年度のものです。

お絵描きプロジェクト

Adobeや液タブ、技術書などを扱いながら、おしゃべりありおやつありのゆるいお絵描き会を行っています。OBにはプロのイラストレーターもいらっしゃいます。
お絵描きに対する熱量は人それぞれですが、楽しんでお絵描きをしています。

※下の画像は部員が描いた絵です

DTM練習会

DTM練習会は、パソコンを使った音楽制作を練習する会です。初心者から経験者まで参加でき、楽しくスキルを磨けます。

※下の楽曲は部員が作曲したものです

機械学習勉強会

近年流行している機械学習に対して理解を深め、機械学習を実装してみるという会です。

Blenderを極める会

3DCGを制作できるBlenderというソフトの様々な機能を共有しながら、様々な作品をつくっていく会です。

※下の画像はBlenderを用いて部員が作成したものです

その他

他にも、インフラ勉強会など様々なプロジェクトや季節のイベントが行われました。

KMCの1年

春プロジェクト(4月,5月)

新入生や新しくKMCに興味を持っている方のための体験会や説明会を行います。

体験会

KMCの普段の活動を新入生に体験していただくために、気軽に参加できるテーマ別のイベントを数多く用意しています。

OBOG会(6月)

KMCのOB、OGの方々と交流できる貴重な機会です。

夏のコミックマーケット(8月中旬)

部誌やDTMなどの成果物を毎年夏と冬のコミックマーケットで頒布しています。

夏合宿

部員で集まって開発を進める合宿です。みんゲーの開発を進めていきましょう。

NF(11月)

京都大学の文化祭で、みんゲーで作成したゲームや描いたイラスト、DTMなどのプロジェクトの成果物を展示します。

アドベントカレンダー

毎年12月には部員がクリスマスまでの間リレー形式で記事を投稿する「アドベントカレンダー」を実施しています。2025年度のものはこちら。

冬のコミックマーケット(12月年末)

夏のコミックマーケットと同様に、KMCでの活動を発信する部誌を頒布しています。

春合宿

春休みには春合宿を開催し、現役部員からOBまで幅広い年代が集まって講座を開きます。

入部方法

KMCでは年間を通して部員を募集しています! 現在、学生なら大学に関わらず誰でも入部可能です。 まずは体験入部で、部内チャットから活動の様子をご覧ください!
申込フォームはこちら。

Q&A

Q: 「京大マイコンクラブ」の「マイコン」って何ですか?

A: KMCはもともとKyoto university Microcomputer Clubの略です。 マイコンという言葉は今では死語ですが、1977年の設立以来その名を引き継いで現在に至ります。

Q: 兼サー(複数のサークルに入ること)は可能ですか?

A: 可能です。

Q: プログラミングなど全くしたことが無いのですが、活動に参加できますか?

A: 入部当初は全くプログラミングをしたことが無くても、 数年後には嬉々としてプログラムを書いている人もいます。 初めからプログラムを書ける必要は全くありません。 まずは初心者向けのプロジェクトに参加するなどして上回生から教えてもらいながら力を付けて行くのが良いと思います。 このことはプログラミングだけではなく、音楽制作やイラスト制作でも同じです。

JANOG57ミーティングにKMC部員数名がNOCメンバーとして参加しました!

2026年の2月11日から2月13日にかけて大阪で開催されたJANOG57ミーティングに、KMC部員6名がNOCメンバーとして参加しました。そのうち2名はBackboneチームとServerチームの学生リーダーとして携わりました。この記事では各メンバーの活動を報告します!

JANOGとは

JApan Network Operators' Groupの略で、インターネットにおける技術的事項、および、それにまつわるオペレーションに関する事項を議論、検討、紹介することにより日本のインターネット技術者、および、利用者に貢献することを目的としたグループです。年に2回ミーティングが日本各地で開催されます。今回のJANOG57ミーティングはさくらインターネットさんがホストとなって大阪で開催されました。

トップページ - JANOG57 Meeting in Osaka

JANOG NOCとは

NOCはNetwork Operation Centerの略で、一般的にはネットワークの管理・運用を行う拠点を指します。 JANOG NOCはこれとは少し異なるいわゆる「イベントNOC」と呼ばれるもので、イベント会場のネットワークについて設計から構築、運用、撤収までを行い、来場者にネットワークを提供する役割を担っています。 JANOG57のNOCチームはBackbone、Access Point、Server、Cableの4チームに分かれており、各チームそれぞれ学生もメンバーとして多数参加しています。

JANOG57 NOC 公式ページ

参加したメンバーのコメント

segre

Backboneチームで学生リーダーをしていました、id:segre です。これまで何度かNOCに関わりがありますが、JANOG NOCは初めてでした。

Backboneチームは対外接続・ルーティング・L2までのネットワーク部分を担当しました。これまでのJANOG NOCではBackboneとL2/L3で分かれていたようですが、近しいレイヤのためより密に連携をとる必要があると考えていたこと、今回は対外的なAS運用を行わない予定だったことなどからBackboneとして1つのチームに統一し、人数も10人と少数精鋭のチームを作りました。

JANOG会期前からさくらインターネット様の本社にあるサーバーラックをお借りして今回の3会場分の検証環境を用意していました。3会場に分かれていた都合上、各会場の対外接続に加え、拠点間接続も必要になったことから検証工数が想定以上にかかりましたが、全拠点に十分な検証を行った結果、当日安定したネットワーク運用ができたことは十分な成果だったと感じています。

最後に、Backboneチームメンバーや他チームのメンバーとも交流することができ、皆楽しそうに活動していました。KMCのメンバーも新しいコミュニティに参加し多くのことを学べたようで良い場所を提供できたのではないかと思います。お疲れ様でした!

crashRT

Serverチームの学生リーダーをしていました、id:crashrt です。NOC参加は3回目ですがチームリーダーは初でした。 本番直前にインフルにかかるなど色々ありましたが、無事サービス断なく快適なネットワークを提供することができたのでホッとしています。

ServerチームはDNS、DHCP、監視基盤などを担当するチームです。 割とNOC初参加とかSV初参加とかのメンバーが多いチームではあったんですが、巻き取ることなく、どころか最初思っていたよりも結構リッチな構成にできたのでとても良かったなと思っています。 KMCの後輩3人もメンバーとして参加してくれましたが、色々構築してくれたりJANOGを楽しんだりと良い経験になったみたいで良かったです。何か今後の糧となっていれば何よりです。

今回のNOCの構成や得られた知見などは今後色々なところで公開していく予定です。 個人的にも面白い構成を実現できたのではないかと感じているので、ぜひ見ていただけたらと思います。

wuhu1sland

Serverチームのメンバーとして参加しました。DHCP班でradintさんと一緒にkeaとstorkを使ったDHCPサーバ構築を行いました。具体的な構成としては、さくらのクラウド上でサブネットを分けたActive/Active構成のDHCPサーバ2台 + Storkサーバ1台という形で構築していました。NOCは今回が初参加で、参加以前はネットワーク関係の知識は乏しい状態だったのですが、crashRTさんにDHCP勉強会を開いてもらい、プロトコルレベルの基礎から学ぶ機会をいただことなどを契機に、様々なことを学習できました。

今回のNOCでは、さくらのクラウド上に展開するVMをTerraformとAnsibleで管理していたので、サーバ構築の途中から環境のAnsible化なども行いました。また、NOCチームのネットワーク機器のアドレス管理を行っていたNetboxから、APのアドレスを自動で取得して予約アドレスとしてペーストできるようにyamlを出力するスクリプトを書いたり(https://github.com/janog57-noc/ap_mac_ip_mapping)、stork-serverへの自動ログインとAPIからのリース数情報の取得をしてPrometheus向けにexportするアプリを書いたりしました(https://github.com/janog57-noc/stork-subnet-exporter)。

後者のstork-subent-exporterに関する、Kea DHCPサーバのリース数取得などの話については別記事にまとめる予定です。

randint

Serverチームに参加させていただきました。wuhu1slandさんと一緒にDHCPを担当しました。DHCPは何なのかを一言でざっぱり言うと、Wi-Fiに繋いだデバイスに、ローカルIPアドレスを配る仕組みなのです。クラウド上でKeaというオープンソースのDHCPサーバを動かしました。wuhu1slandさんと分担して構築しましたが、僕はログの出力だったり、負荷試験だったりの周りでした。

NOCを始める前はDHCPについてはあまり何も知らなかったんです。聞いたことあるぐらいだけでした。ネットワーク自体についてもド初心者でした。crashRTさんから教えていただきつつ、ネットで調べながら構築を進めていきました。「行ってみたいけどネットワークはあまり分からないなあ、どうかな」という方は遠慮せず申し込んでみたほうがいいと思います!

安定したDHCPサーバを提供できたことに、「自分の手でこんなものを作れてよかった」と実感しました!JANOG57のような大きなイベントを、単に参加するのではなく、裏側に参加できてよかったです!楽しかったです!

irom

Serverチームのメンバーとして参加しました、id:ir0mです。メトリクス監視の特にフロー情報の収集を担当しました。さくらのクラウド上でAkvoradoというサービスを動かし、ネットワーク機器からフロー情報を受け取ってストレージに保存するサーバーを構築しました。仮想環境で構築したあとAnsibleで本番環境にデプロイしました。ダッシュボードは他のメンバーの方が構築したGrafana上で作成しました。Akvorado専用のプラグインがあったので比較的容易に綺麗なダッシュボードを作成することができました。当日はSlackのアラートやダッシュボードを眺めて各種サーバーやネットワーク機器に異常がないか監視していました。NOCに参加するのは初めてでしたが、Serverチームの他のメンバー、とくに学生リーダーでKMCの先輩でもあるcrashRTさんの助けを借りて、微力ながらも貢献することができて良かったです。JANOGのイベント自体も、100社以上の企業の展示ブースを見て回ったりネットワークにまつわる講演を聞いたりして楽しむことが出来ました!

iiiishii

Cableチームのメンバーとして参加しました、iiiishiiです。Cableチームはその名の通り、会場内のケーブルの配線計画を立て、使用するケーブルを作成し、実際に敷設するといったケーブル周り全般の役割を担うチームです。ケーブルの切り出しや敷設など、チームのみんなとわいわい楽しみながら活動することができました。慣れない場面が多くチームリーダーやメンバーに助けていただいてばかりでしたが、最終的には自分なりにネットワーク提供に貢献できたかな……と感じています。他のメンバーとの交流やイベント参加を通して、技術的にも刺激が多く、非常に実りある時間を過ごすことができました。

GDGoC Kyoto University が発足しました

こんにちは,KMC48代のirom(id:ir0m)です.これはKMC Advent Calendar 2025 - Adventar22日目の記事です.

今月からGDGoC Kyoto University*1というエンジニアコミュニティが発足し,iromはorganizerの1人になりました.本記事ではこの団体の紹介をしようと思います.

GDGoCとは

GDGoCはGoogle Developer Groups on Campusの略で,Googleのテクノロジーに興味のある学生のためのコミュニティです.GDGoC Kyoto Universityはその京都大学の支部として活動しています.京都大学の学生が中心となって運営をしていますが,他大学の学生,社会人,高校生など誰でもイベントに参加することができます.Discordサーバー京大 GDGoC Kyoto Univに入ることでイベント情報をキャッチアップできます!

活動内容

日頃からDiscord上で交流したり,勉強会を開催したりしています.また,GDG主催で3ヶ月ごとに大規模なイベントも開催予定です.イベントの内容としては,Web/App/Cloud/AIなどの技術勉強会,LT会,プロジェクト開発,ハッカソン,交流会,Google Developer系イベントとの連携,などが挙げられます.

初回イベント

12月21日に初回イベントとして,学生AI Coder Meetup in 京都 - Google Developer Group - connpassが開催されました.Google Developer Expertや関西の学生エンジニアの方々が集まり,セッション・LT会・懇親会が行われました.Vibe Codingというホットな話題について,貴重な話をたくさん聞くことができました.

おわりに

発足したばかりで今後どのように発展するか分かりませんが,多様なイベントを通して関西の学生エンジニアと交流でき,Googleのテクノロジーに詳しくなれる有意義なコミュニティになっていくと思います!気になる方はぜひDiscordサーバー京大 GDGoC Kyoto Univに入ってください!

*1:KMCとは関係のない団体です.ただ,同じ京都大学のエンジニアコミュニティなのでirom以外のKMC部員もすでに数名所属しています.

仕様と真面目に向き合う「Pietプログラミング」ガイド

KMC37代のdamaです。 KMC外ではDNEKと名乗っています。

これはKMC Advent Calendar 2025の6日目*1の記事です。

対象読者

  • Pietの正しい仕様や開発環境に興味がある方
  • 使っているPiet開発環境の挙動に疑問を感じている方
  • 一次資料を読むことの大切さを知りたい方

Pietの仕様を知らない方は、とりあえず雰囲気で読むか、以下の解説スライドの16-37ページに目を通すと良いでしょう。

www.slideshare.net

概要

「Piet」はドット絵をソースコードとして扱う難解プログラミング言語です。 ざっくり説明すると「プログラムがドット絵の中を上下左右に移動しながら各点の色の違いに応じてコマンドを実行していく」というものです。

Pietの歴史は約四半世紀*2の長きにわたり、その間にソースコード画像や開発環境がいくつも生み出されていますが、実はその多くが公式の仕様に準拠していません。 また、仕様自体にも実装依存や未定義部分が多く含まれるため、利用する開発環境により体験が大きく変わってきます。

本稿では、私自身がかつて仕様の一部を誤解してIDEを実装してしまった事例を取り上げ、Pietの仕様違反の発生と拡大の構造を分析します。 そして、そのような実態との向き合い方を考え、仕様を意識したPietプログラミングを実践するためのガイドを提示します。

仕様解釈の誤り(私の事例)

誤解の内容

私がかつて誤解していたのは「白ブロック上で行き止まりに突き当たった際の挙動」です。

以下は3x3のソースコードを例に、正しい挙動と誤解に基づく挙動をそれぞれ模した図です。 普通の矢印は移動成功、バツ印は移動失敗を表しています。

正しい挙動(左)と誤解に基づく挙動(右)

つまり、左図のように

  1. 赤から右方向へ直線状に移動する
  2. 行き止まりに突き当たって移動に失敗し、CCが切り替わる
  3. 行き先が変わらずまた移動に失敗し、DPが時計周りに進む
  4. 右上の白からそのまま下方向へ直線状に移動する
  5. 緑に入る(白ブロックから抜け出す)

というのが正しい挙動ですが、右図のように「3の直後、白でないカラーブロック(今回は赤)まで引き返してから移動を再開する(そして青に入る)」と誤って解釈していました。

解釈を誤った原因

この仕様解釈の誤りは、当時の私が仕様を学ぶ際、不完全な和訳と古いデバッガの挙動に依存したことに起因します。 つまり「一次資料(=仕様原文)を読み解く努力を怠った」ことが根本的な原因でした。

まず、私が頼りにしていたPietの仕様原文の和訳ページから「白ブロックの挙動について」という節の訳文を引用します。

白ブロックの挙動について(追記:2008.1.25):    (この辺り訳がちょっと微妙 by訳者)

インタプリタは白ブロック上を一直線に色の着いたブロックに当たるまで進みます。 先に説明した普通のカラーブロックの時のような動き方はしません。

白ブロックを通りすぎて黒ブロックや端に当たった時正確にどうなるのかが元の仕様では不明確でした。 私の解釈を以下に記しておきました。

  • インタプリタは一直線に"滑って"白ブロックの上を通り過ぎる。
  • もし行き止まりにあたったらCCを切り替えるが、インタプリタの行く先は変わらないのでDPを変える。
  • 新しい向きのDPで今いる白codelの上からカラーブロックに到達するか別の行き止まりにぶつかるまで滑る。
  • 白ブロックの上で行き止まりにぶつかる度にCCã‚„DPを切り替えて滑りなおしてみる。 これをカラーブロックに到達するまで繰り返す(その場で)。 白ブロックの上から試してダメだった場合はもと来た道を引き返す。

引用元: DM氏の難解プログラミング言語 - Piet (和訳版)www.kembo.org

訳者自身も「この辺り訳がちょっと微妙」と注記している通り、最後の2行が一義的に解釈しにくい表現になっています。 後ろから2行目の「今いる白codelの上から」は正しく「引き返さない」ように読めますが、最終行の「(その場で)」「もと来た道を引き返す」は「引き返す」ように読めます。

続いて、最終行の原文を引用し、今の私による拙訳も付しておきます。

原文:

  • Each time the interpreter hits a restriction while within the white block, it toggles the CC and steps the DP clockwise, then tries to slide again. This process repeats until the interpreter either enters a coloured block (where execution then continues); or until the interpreter begins retracing its route. If it retraces its route entirely within a white block, there is no way out of the white block and execution should terminate.
  • 引用元: DM's Esoteric Programming Languages - Pietwww.dangermouse.net

    拙訳:

  • インタプリタが白ブロック内部で行き止まりに突き当たる度に、CCを切り替えてからDPを時計回りに進め、それから再度滑って行こうとする。 この手順は、インタプリタがカラーブロックに入る(それから実行が再開する)か、同じ経路を再度辿り始めるまで繰り返される。 もしインタプリタが同じ経路を完全に白ブロック内部だけで再度辿ることになった場合は、白ブロックの外部に出る方法は無く、実行は終了する。
  • このように、原文には「引き返す」解釈を促すような表現は無く、また、同じ経路を再度辿る場合の仕様が明記されています。

    そして、当時はステップ実行機能が便利という理由で主にPietDevというオンラインIDEでデバッグをしていました。 しかし、PietDevが作られたと推測される2006年*3時点では、先述の挙動が未定義でした*4。 PietDevはおそらくその未定義動作を独自に実装した結果、まさに「引き返す」実装になっていました。

    当時の私はデバッガが古い可能性を考慮せず、その挙動に整合する解釈を和訳から選択するだけで満足してしまったため、誤りに気付くことができませんでした。

    仕様解釈の誤りがもたらした影響

    2015年、私が自作のIDE「Pidet」とPietの仕様解説スライドを合わせてKMC部内で発表したところ*5、予想外の反響を受け、部内でPietが流行り始めました。

    また、勉強会や外部イベントでの発表*6に加え、何人かのKMC部員がPidetを参考に様々なPietアプリケーション*7を開発していったため、2017年5月に外部から指摘を受けるまでの間、私を含む誰もがその誤りに気付かないままKMC外にも仕様違反を広める結果になりました。

    2018年以降このPietブームは下火となったものの、「KMC Piet」*8に基づくアプリケーションの一部は修正されないままインターネット上に残り続けています。

    Pietの仕様との向き合い方

    私個人として、当時の私の考慮不足が結果的に周囲へ混乱を招いた点について、反省すべき点が多かったと改めて感じます。 誤解に気付いた当時の私はPidetの当該仕様違反を修正し、翌年には新しいIDEの開発に移行して更なる修正を加えています。

    一方で「OSSライセンス等により明確に免責され、需要も少ないアプリケーションのメンテナンスをする必要は無い」という考え方も尤もであり、他の開発者にまで同様の対応を求めるつもりはありません。 また、その利用者の多くはPietの外見上の難解さやプログラムが動作する様子を見てカジュアルに楽しむのが目的であり、彼らにまで実装の精査を求めるのはナンセンスです。

    したがって「インターネット上の多くのPiet実装が不確かであり、指摘を受ける機会も稀である」という事実を認識し、仕様に忠実なPietプログラミングを行いたければ最終的には自分で判断するしかないという意識を持つのが合理的であると考えます。

    なお、Pietの最新仕様冒頭の注意書きには以下に引用する記述があります。

    I have now added some clarifications to this specification to address some of the questions I have been asked over the years. Hopefully they are sensible and most implementations will already be compliant, but it's possible some do not comply. Caveat emptor.

    引用元: DM's Esoteric Programming Languages - Pietwww.dangermouse.net

    拙訳:

    これまでに寄せられた質問の一部に対応するため、私はこの仕様にいくつかの補足説明を追加しました。それらが理に適っており、ほとんどの実装が既にそれらに準拠していることを願いますが、一部はそうでない可能性もあります。買い手に用心させよ。

    Caveat emptor(買い手に用心させよ)というのは、「商品の品質を確認する責任は購入者にある」という売買法上の原則を表すラテン語の法諺です。 現実の商取引への適用はさておき、無料でオープンソースが基本の難解プログラミング言語の世界ではそう考えておくのが無難なようです。

    仕様重視型Pietプログラミングガイド

    先述のように、Pietをカジュアルに楽しむのであれば、ググって一番上に出てくるものやAIのオススメに従うのも手軽で良いと思います。 しかし、本格的にPietプログラミングに取り組むのであれば、仕様を意識しない限りほぼ確実に罠に嵌まります。

    過去に間違いを犯した私を信じるかの判断は勿論読者に任せられますが、ここでは仕様原文を隅々まで読み込んだ今の私が考える、仕様を重視してPietプログラミングをするための具体的な選択肢を紹介していきます。

    入門資料2選

    最終的に自己判断が必要であるとは言え、初学者が公式の仕様原文を読むのは骨が折れます。 原文は英語で書かれている他、画像をソースコードとして扱うにも関わらず図による説明が一切ありません。

    そこで、内容に大きな問題が無く図解が豊富な入門用の資料を2つ紹介します。 まずは入門でPietの具体的なイメージを掴み、厳密性を原文で補いましょう。

    1つ目は冒頭で挙げたbase64氏によるスライドです。

    www.slideshare.net

    もう読んだ方もいるかもしれませんが、発表用スライドということもあり要点がコンパクトにまとまっていて読みやすいです。

    2つ目はy-mos氏によるブログ記事シリーズです。

    ymos-hobby-programing.hatenablog.com

    5回にわたり、複数の例を図解しながら細部まで丁寧に解説されています。

    IDE 2選

    Pietプログラミングには通常IDE(画像エディタ兼デバッガ)を用いますが、仕様を重視する上でその選択は特に注意が必要です。

    今私が「Piet editor」及び「Piet IDE」というキーワードでそれぞれGoogle検索をしたところ、一番上に表示されたものはそれぞれ別のIDEでありながら、いずれも白ブロック上の挙動が誤っており、しかもその誤り方はそれぞれ異なるものでした。 また、GPT-5.2の一時チャットで「お勧めのPiet開発環境を教えてください。」と尋ねたところ、「エディタ/IDE(画像ベース)」を3つ紹介されましたが、リンク切れが1つと最新仕様が定まった2014年*9以前にインタプリタ部分の更新が止まっているものが2つでした。

    私の知る限り、ある程度実用的かつ仕様に忠実そうなIDEは現在2つしか無いので、それらを紹介します。

    1つ目はBubbler-4氏によるブラウザベースのIDEです。

    github.com

    オンラインのIDEは手軽に使えて便利です。「Export」タブの「Permalink」ボタンで、IDEと描いたソースコード画像をまとめて共有するURLを取得できます。

    2つ目は私がPidetの次に作った「Pietron」です。

    github.com

    ここで紹介しても良いと思える品質に仕上げるため、この記事の執筆と並行して改修作業をしていました。 改修したばかりで新しいバグを埋め込んでいたりしたら申し訳ないです。 デスクトップアプリなので手軽さでは負けますが、現存するIDEの中で私にとっては一番使いやすいUIになっています。

    なお、これら2つの間にも以下のような実装依存部分の差異があります。

    • 整数が多倍長整数 vs 符号付き64ビット整数
    • in(number) コマンドで標準入力が整数にマッチしなかった場合に先頭の空白を消費する vs 消費しない

    これ以上拘りたい方は是非それぞれの実装やPietの仕様原文を精読してみてください。

    インタプリタ2選

    私は画像編集機能が無い普通のインタプリタにはあまり詳しくないのですが、現在主流(?)と思われるものを2つ挙げます。

    1つ目はErik Schoenfelder氏によるnpietです。 エディタも別アプリとして載っていますがIDEではない普通の画像エディタなので、圧倒的に有名であるインタプリタの方だけ紹介します。

    www.bertnase.de

    昔からPietインタプリタのデファクトスタンダードとされており紹介しない訳にはいかないのですが、実はそのまま実行すると白ブロック上で無限ループすることになっても実行が終了しません。 マニュアルに書いてある通り -v11 オプションを付けて実行しましょう。 また、npietのソースコードを読むと mod コマンドがC言語の % で実装されていることがわかりますが、Pietの仕様では「切り下げ除算」を使うことになっているのでこれは仕様違反です。

    2つ目はynn氏によるRust製インタプリタです。

    github.com

    何故これを挙げたかと言うと、最近AtCoderでPietが使えるようになりそのインタプリタとして採用されたからです。

    新ジャッジ運用開始のお知らせ - AtCoder

    私はRust初心者ですが、READMEや実装を読むと仕様を忠実に守ろうとする姿勢が伺えます。 div コマンドに切り下げ除算が使われていないのが少し気になりますが、こちらは仕様に明記されていないので仕様違反ではないはずです。

    また、こちらの in(n) コマンドはREADMEに書かれている通り、より積極的に標準入力を消費します。 先述のIDEを用いてAtCoderに参加する場合は特に注意しましょう。

    ちなみに、AtCoderでは基本的にバイナリファイルを提出できないためPlain PPMというテキストベースの画像フォーマットを使う必要があるのですが、これを一般的な画像フォーマットと相互に変換するUserScriptを公開しているので紹介しておきます。

    dnek.net

    今後の予定

    先ほど公開したPietron 2.0.0のリリースノートにも書いたのですが、PidetとPietronに続き3つ目のIDEを作ろうと思っています。 これ以上作り直す羽目にならないように保守性を重視して開発したいです。 また、今回の調査で改めて手軽さが重要であることを実感したので、利便性を向上させつつも純粋なウェブアプリとして作る予定です。

    この記事と同様にどれくらい完成が遅れるかは不明ですが、興味のある方は以下のいずれかを適当に見ておいてください。

    それでは、各々にとって良きPietライフをお過ごしください。

    *1:カレンダーの枠が空いていたので6日当日に登録して書き始めたところ全然間に合いませんでした。

    *2:Timeline of esoteric programming languages - Esolangには2001年にPietが考案された旨が記載されていますが、ソースが無く定かではありません。なお、公式の仕様ページのアーカイブが残っていることから、遅くとも2002年4月には公開されていたことがわかります。

    *3:オリジナルのPietDevが動作するページは現存しませんが、そのソースコードのフォークに含まれるライセンス文のコピーライト表記から2006年に作られたと類推できます。

    *4:和訳ページの引用部分にも書かれている通り、「白ブロックの挙動について」の説明は2008年1月に追記されました。

    *5:KMCでは毎年春に合宿を開催して部員同士で講座スライドを発表し合っています。

    *6:このブログ内の「Piet」をキーワードに含む記事の検索結果からその様子がわかります。

    *7:新しいIDE、インタプリタ、中間言語による自動生成プログラム等

    *8:仕様違反の発覚以降、今後は正しい仕様に従おうという流れになったものの、これまでの活動と作品がただの勘違いとして片付けられてしまうのは浮かばれないということで、KMC部内ではそれらを古い仕様に準拠した方言であったと捉え、今までのPietを「KMC Piet」、2008年の新仕様に基づくPietを「Piet08」と呼び分けることにしました。

    *9:Wayback Machineのアーカイブで2008年1月以降の公式仕様ページの更新が確認できるのは、2014年5月、2016年1月、2017年7月、2018年9月の計4回ですが、この中で仕様自体に実質的な変更があったのは2014年の1回だけです。このとき、主に mod コマンドに「切り下げ除算」を用いることや各種コマンド実行時のエラーの扱い等が明確化されています。

    C107に『独習KMC vol.23』を販売します

    こんにちは,KMC48代のirom(id:ir0m)です.これはKMC Advent Calendar 2025 - Adventar15日目の記事です.

    京大マイコンクラブはコミックマーケットに毎回出展し部誌を販売しています. 今月末に開催されるC107の2日目では,既刊のAS59128本と独習KMC vol.21に加えて,新刊の独習KMC vol.23を販売します! 今回iromが新刊の編集長を担当したので,仕事内容と記事の紹介をしようと思います.

    ↓C107のお品書きです.参加する方はぜひブースにお越しください!

    編集長の仕事

    編集長の仕事を簡単に紹介します.

    記事執筆の呼びかけ

    10月末から定期的に部内Slackで記事執筆を部員に呼びかけました.

    記事執筆のリマインド

    11月は学祭があることもあり11月末から記事執筆に取り掛かる部員が多いです.期間が空いて記事執筆のことを忘れがちなので,定期的にSlackでメンションしました.

    記事校正

    12月に入ってから校正作業に入りました.markdownやTypstで記事を提出してもらい,それをPDFにしたものをSlackに投げて有志に校正してもらいます.

    組版

    校正作業と同時進行で組版作業を行いました.各記事をまとめて1つのPDFにして,部誌として発注できる形にします.

    発注

    12月中旬の期限ギリギリに表紙絵と本文のPDFが完成したので,出版社に発注しました.学祭が終わってから発注までの期間は2,3週間しかなくハードスケジュールでした.

    謝辞

    部誌の作成には多くの部員が携わってくれました.本当にありがとうございます!せっかくなので,簡単に紹介していきます.

    • 記事執筆者

    iromを除いて6名の部員が記事,26名の部員が自己紹介を執筆してくれました.

    • 46代のmarimoさん

    去年Typstの組版環境を構築してくれており,とても組版がやりやすかったです.Github Actionsで部員の記事をまとめて発注用のPDFを生成してくれます.詳しくは去年のアドベントカレンダーの記事,TypstでC105に出す部誌を組みました - KMC活動ブログを読んでください.

    • 49代のやらわくん

    表紙絵をお願いしました.お絵描き勢で,来年度のお絵描きプロジェクト担当です.急遽お願いしたのですが,とてもカッコいい表紙を描いてくれました!

    • 48代のiiiishii

    発注をお願いしました.

    • 49代のあきのおいもさん,猫屋敷さん

    コミケ当日にブースで販売してくれます.

    記事の中身

    8つの記事から構成されています.各記事の内容について簡単に紹介します.

    Unity初心者が探索アクションゲームを作ってみた

    49代のakkeyくん, furakutaくんがKMCの新入生プロジェクト「みんなでゲームを作ろう」で11月祭に向けてゲーム制作をした体験談を語っています.

    Typstでいろんなグラフを描いてみた

    49代のshooogoくんがTypstでレポート執筆に役立ちそうなグラフを作成した話をしています.

    プライバシー

    49代のrandintくんがプライバシーの概念とプライバシー保護に役立つソフトウェアを紹介しています.

    Kea + Stork で DHCP サーバー構築と監視

    JANOG57のNOCチームのDHCP担当になった49代のwuhu1slandさんがDHCPサーバーを構築した話をしています.

    Docker で体験するネットワーク監視とサーバー監視

    JANOG57のNOCチームのメトリクス監視担当になった48代のiromが監視サーバーを構築した話をしています.

    Google Apps Script で Web スクレイピングをする Slack Slash Command を作る

    48代のcreeamsodaがWebスクレイピングをするSlash Commandを作成した話をしています.

    ゲームにおける実践的なレイマーチングーラスタライズ方式と併用

    45代のsashiさんが自作エンジンでゲームの描画システムを開発した話をしています.

    部員紹介

    27名の部員が自己紹介をしています.部員がどんな活動をしているのかがわかります!

    おわりに

    本記事ではC107で販売する新刊『独習KMC vol.23』を紹介しました.興味を持ってくださった方はC107でKMCのブースにぜひお越しください!