by shigemk2

当面は技術的なことしか書かない

BrainfuckのJITコンパイラを作る(x86限定)

こちらを参考に作りました。

https://github.com/mason-/cmpimpl/blob/master/python2/bf2jit.py

実装は、ほぼ7shiさんに協力を仰ぎまくりました。

やっていることは、

  1. Windows API関数を呼び出し、メモリを確保する
  2. メモリにx86アセンブリを書き込む
  3. 書き込んだx86アセンブリを実行する

という流れです。

  var func = ffi.ForeignFunction(buf, "void", ["pointer", "pointer", "pointer"]);
  var mem = new Buffer(30000);
  mem.fill(0, 0, 30000);

  var dl = new ffi.DynamicLibrary("msvcrt", ffi.RTLD_NOW);
  var getchar = dl.get("getchar");
  var putchar = dl.get("putchar");
  func(mem, putchar, getchar);

var dlからの流れは、ffi/lib/library.js の45行目を参考にしています。 というのも、関数のポインタを直接参照するプロパティやらメソッドが存在しないため。

Foreign function interface - Wikipedia

大学で生き残る程度のEmacs入門 @emaxser #comb_mu

Emacs

Emacsを使っている人は少ない 大学教員がEmacsを使うのを強要する Emacsハラスメント 大学側は容認

随時勉強せよ

C-s 文字列置換 正規表現 Emacs Server

mark-whole-buffer

helm.el anything.elのfork インターフェイス pecoとか考えたらいいんじゃねえか

yagist.el gistに一括投稿 quickrun.el 実行してくれる

全部知ってる

ライブラリ開発者のためのおいしいナゲットの揚げ方 #comb_mu

@azyobuzin

サクラエディタ

nuget

ワンクリックでライブラリをダウンロードできるアレ

.NETでできている

プラットフォームごとに分けられている

どれが使われるのか

点数化して一番良さそうなものを選んでくれる

Protable Class Library

プラットフォームをまたげる

配点される 単一プラットフォーム

NuGet.VersionUtility.GetProfileCompatibility private メソッド

PCL

NuGetCalc(ぬげっとと読む)

素人DTMerが5日間クソ曲を作り続けてわかったこと #comb_mu

@uruchan1997

最近DTMやってる コンピュータ部部長

素人DTMer

深夜の真剣DTM60分一本勝負を5日間やった

シンセパッド BPM110かつ鍵盤楽器 森を意識 ミュゼット ハードコア・テクノ

Soundfont

音源のパッケージ

BellPackとDrumPack

パッケージを入れて音を鳴らせる

素材を引っ張ってくる

高品質かつ超豊富

銅鑼とか歌舞伎とか拳銃とか

Soundfont Player(フリー)

sfz Timidity++

Roland SC-8850 ASIA Drumset RailAirGuns ClavionaMusette

使いやすいので使ってください

Haxe vs Unicode #comb_mu

へっくす

ActionScriptとかOCamlみたいな言語にコミットしてる

Adobe JavaScriptなどがターゲット

文字列が問題

環境依存のコード

Encoding Formsの違い Indexの数え方の違い

ターゲットごとの仕様も違う 内部エンコードとかインデックスとか

hexe.Utf8 byCodePointを提供する

haxe.Utf16は未実装

UCS-2に今更対応してる

Unifill

UnifillネイティブのStringを環境に依存せずに使える

ランク6の俺がパズドラについて語る #comb_mu

昨日ランク7になった

今も結構流行っている

パズドラのルート解析アルゴリズム

5x6に6種類のドロップ

コンボをいっぱいつくる

コンボをいっぱい作ることが出来るルート

C++とC#

先行研究は全然参考にならない

パズルの実装 コンボ処理

Union-findを使う

ルートを保持するデータ構造

解析アルゴリズム

8方向ではなく4方向で解析 全検索は無理

山登り方法もどき

5-7が微妙 ビームサーチ

並列処理を組み合わせて実行した結果

色々と工夫したが、ほとんど無意味

最後の進捗 #comb_mu

最近の進捗です

スクフェスのRankは155です

進捗どうですか

だめです。

夏休みの課題 文化祭のゲーム img.azyobzi.net 脱線

TOML

GitHubのCEOが作った言語で読みやすいけどパースしにくい

INIっぽい

XElementに変換 LINQ to XMLに乗っかる

JsonReaderWriterFactory互換

DynamicToml

DynamicJSON

Parseqの使い方が分かった

あなたと情報系大学, 今すぐダウンロード #comb_mu

初LT

趣味は関数型プログラミング

興味のあるものはVim

本題

情報系大学って何するの

  • CS
  • コンピュータ・グラフィックス
  • 組み込みや電気
  • 数学(離散 数値計算 確率統計)
  • プログラミング

微積からの発展

大学でプログラミングするぞ

Emacsハラスメントがあるかと思えばそんなことはなく C#をメモ帳でプログラミング

学生の平均レベルは期待できない 中高からプログラミングやってる奴はほとんどいない

Twitterみてるとそうでもない 情報系大学に行かないといけないわけでもない

大学は教育機関ではなく研究期間

図書館に本を買ってもらう ソフトウェアの無料アクセス 日経Linux読み放題 教員とコネを作るとか

美味しい

大学生活で気をつけること 何よりもまず宗教勧誘 というかVim

とっておいたほうがよいもの

基本情報や応用情報の資格

質疑

図書館は10冊くらい買ってもらった

The Zen of Python #comb_mu

Pythonで機械学習やってる

Zen

全のZen

Pythonを書くときに気をつけること

綺麗に書く はっきり書く(暗黙の型変換はng) むずかしいよりは簡単なほうがいい 複雑であるよりは難解であるほうがいい

問題を細かく分解できるもののほうが、問題を解くのが難しいよりもよい

ひらべったい方がいい(ネストは浅いほうがいい) 読みやすい方がいい

Cだとはろーわーるどするのに4行かかるのが、Pythonだと1行

説明するのが難しいならそれは悪いコードである 簡単に説明できるならばそれはうまく実装されている

特別といってルールを破ってはならない(Pythonは他の言語に比べて規約が厳しい)

たったひとつの冴えたやり方があるはず。

救済とコミュニティ #comb_mu

中高生向けの話

SFC B1

プログラミングやものづくりはつらいので、どうしたらよいか

宗教をつくる

某エディタではなく、コミュニティで代用できる 代表 目的 仲間を揃えればコミュニティがつくれる

事例

唐揚げパーティ→クリエイティブな人が集まる クイズ研究会→縦のつながりが出来る→優秀な後輩が集まる CombConf→コミュニティが出来上がった

救済するために

無料or安価 承認を与える がんばる

よいコミュニティをつくるう

人を集める なぜやるか 継続させるか

なぜ どうやってを考えると良い

はじめようPRML #comb_mu

ボレロ村上とは関係がない

PRMLの話

PRMLガール

パターン認識ってなに

肉が置いてあって鍋がおいてある→視覚 甘い匂いがする→嗅覚

からの、すき焼き

マシンにやってもらうのはAIなのでは?

jsonを吐き出してほしいとする

人工知能

そのまま人間にやらせるようにマシンにやらせる

パーセプトロン

大学へいこう #comb_mu

オープンキャンパスの話

オープンキャンパスとは、大学へ遊びに行くことである

筑波大学オープンキャンパス

8/24 8/31

情報科学類

申込期限は8/5 もう遅いよ

どうしても行きたい人は、情報科学類から申し込んでおくといいよ、まだやってるから

裏話

理系地区でやるのはうちだけ

夏休み最終日を開ける必要がある

ブース 計算機室体験

コンピュータに触ったことのない人メインで

主にU-22が盛り上がるLT大会でLTをやりました #comb_mu

comb meet up! - connpassに行ってきました。場所はD社です。

「主にU-22が盛り上がるLT大会」なので、中高生、大学生がメインのLT大会でした。

みんなすごくレベル高く、技術的に分からない箇所がちょくちょくありました。

有名高校のコンピュータ部部長とか、Twitterなどで結構有名な人とか、有名企業のエンジニアとか、参加者のレベルは本当に高かったと思います。

彼らがこれからの未来を背負っていくんだなと思う反面、自分ももっとがんばらないといけないなという小並感を得られました。

しゃべりました

僕は「現代の若者に社会の恐ろしさを伝える大人枠」でしゃべりました。

子供の頃からPC弄ったりコードを書いたりしている人たちの前で技術的な話をしてもうわぁってなりそうなので、とりあえず自分のエンジニアとしてのキャリアをしゃべることにしました。

僕の専攻は国際関係学で、プログラミングをちゃんと勉強するようになったのは大学を卒業してからです。23歳でしょうか。他のエンジニアと比べると圧倒的に遅いです。そんな状態から独学で勉強して、殆ど運で友人が経営している会社に入り、そのあと転職を重ね、とりあえず自分一人を養うほどの技術力は得ることは出来ました。

ちょまど氏もLTで仰っていましたが、子供の頃からコードを書いたりPCを弄ったりしている人からしたら、僕の話はあまり参考にならないかもしれません。

ただ、あのLTで伝えたかったのは、例えばひょんなことから無職で社会に放り出されたとき、事故でコードを書けない体になってしまったときなど、いろいろなものを失ってしまったときに、自分に何が残っているか考えることです。

それが友達であったり、恋人だったり、自分の頭と体であったり、家族であったり、根性であったり、運であったり、いろいろだとは思いますが、あまり諦めてはいけないのだと思います。

お前誰だよからの脱却と反省

ブログの継続日数が1000日になったので感想を書く - by shigemk2

こちらのエントリにも書きましたが、自分の技術力も知名度もまだまだなので、最近は自分の知名度をどうやって上げるかを意識しています。意識するだけではなく、LTをやる場があれば積極的に出るようにしています。

今回のLTも自分の宣伝も兼ねています。

でも、素顔だけ晒したところであんまりインパクトは強くないだろうということで、とりあえずTwitterアイコンのコスプレをしてLTをやってみることにしました。

その感想ですが、

  • とりあえず出オチ感は出せました
  • 視界がおそろしく悪いのでブログを書くときもいつも異常にtypoとかやばかったです
  • しゃべる前からお面をかぶるとすごく気持ち悪がられます
  • というか、登壇のときも結構引かれました
  • 水が全く飲めないのは意外となんとかなるものです

とりあえず、お面をかぶるのはしゃべるときだけにします。

LT自体の感想

持ち時間は5分ですが、時間を図りながらしゃべったので、キッチリ5分でしゃべることができました。これは毎月の社内LTの賜物だと思います。

あとほぼアニメやゲームの画像だけでLTを構成してみましたが、案外通じるものです。

さらに宣伝

LL DiverでLTします。 内容はNode.jsでBrainfuckのJITコンパイラを実装した話です。

http://ll.jus.or.jp/2014/program

空席があるかどうかはわかりませんが、よろしければ聞いてみてください。

よろしくお願いいたします。