エンジニアと思われるものの備忘録

しがない学生の備忘録です

gVisorのコード読んでみた

gVisorとOCIコンテナランタイムのアーキテクチャを探る 動機 これからGKE上でデプロイする時にもしかしたらランタイムを選択するような時が来るかもしれないので適切に取捨選択できるようにしたい.あと自作コンテナランタイムしたい OCI って何 Open Contai…

【論文読み】Fast key-value stores: An idea whose time has come and gone

http://pages.cs.wisc.edu/~rgrandl/papers/link.pdf 上記の論文を読んだ.これからもちょくちょく論文読んでまとめるみたいなのやっていきたい 問題 現代のWebアプリにおけるIn-memory KVS,要はRedisやMemcachedはアプリケーションからロジックを切り離し…

Vagrantで仮想的なWANみたいなのを作る

研究の検証用環境として以下のような環境をVMのみで一つのホストPC上に構築したかった. Vagrantで一応できたので手順とかをメモしておく. ストーリー それぞれ 192.168.10.100 (Node A) と 172.168.10.100 (Node B) のVMはネットワークのセグメントが異な…

ドラゴンクエストXを支える技術を読んで 〜普通のソフトウェアエンジニアから見た視点〜

「ドラゴンクエストXを支える技術」を読みました www.amazon.co.jp 読んだ感想 非常に面白い本でした.オンラインゲームのプログラミングに関わったことがない人でも参考になる知見が沢山詰まっています. 本書はドラゴンクエストXにおける元テクニカルディ…

【Tensorflow with Keras】 Warning on loading model

妙にハマったのでメモ Kerasでweightを保存してロードしようとした Save model.save_weights("model.hdf5", save_format="h5") Load model.load_weights("model.hdf5") これでロード時にWarinigが出た 2019-03-28 03:56:35.810375: W tensorflow/core/util/t…

【自分用まとめ】Google Developers ML Summit

Google Developers ML Summitに忍び込んできたので一応まとめる Keynote Edge TPU 250画像/sec をシステムで処理してる 60%のコストカットに成功 MLKit ビジネスはわかるけどMLはわからないとかのためにある 機械学習全部はできないけど色々やりた人向け Dis…

Pythonで型検査しようぜ

やりたいこと Pythonのコードを書く際に型注釈と型検査を用いることで,実行前にバグなりそうなエラーを潰す 他の人が読むとき処理を追いやすいコードを書く 型の重要性を知ってもらう 背景 今はPythonでgRPCのapi書いたり, 機械学習のコードをぶん回したり…

Go言語でつくるインタプリタを読み終えて,独自拡張した話

Go言語でつくるインタプリタを漸く読み終わりました.といっても実際には1月末には終わっていて単純に記事にするのを忘れていただけなんです. 実際にコードを書きながら読んでいたのですが,リポジトリのログを遡るとファーストコミットは2018/6/24になって…

2018年振り返り & 2019年で頑張ること & 退職エントリー

振り返りと豊富とお世話になったインターン先の退職エントリーをひとまとめにしました。 2018年 1月 卒業論文で死にかけてた 2月 卒業論文で略 & インターン復帰した 3月 インターンでバリバリ開発してた 4月 同上 & 授業始まった & GoConにLTで参加した 5月…

Goのプログラムで動的アップデートについてのトリビア

この記事は Go3 Advent Calendar 2018 - Qiita の21日目の記事にあたります。 アドベントカレンダーに参加するのは初めてのため、作法なので間違っているところがあったらすいません。 動的アップデート 動的アップデートという言葉をご存知でしょうか?ホッ…

Rustのモジュールシステムが厳格

goは1年半ぐらい結構書いてきて、シンタックスもそこまで複雑ではないので大分慣れてきた気がした。 なので最近はrustをちょくちょく書いてる。 今はgoで書いた8086のディスアセンブラをrustで少しずつ書き直そうと思ってる github.com クローラとかは若干飽…

Golangにおけるプロジェクトのレイアウトについて

僕がGolangを好きな理由はいくつかあるが、主なものは コードが皆フォーマッターによって大体綺麗になる 言語機能が充実しすぎていないので処理が追いやすい(コーディングする時不便に感じることもあるが、チームでの開発においては読まれる方を重視したほう…

Goのプロジェクト内でgRPCで自分で定義したprotoファイルをimportする

自分で作ったprotoファイルを他のprotoファイルから参照する時にハマったのでメモ サンプルプロジェクトの構成 . ├── Makefile ├── team │ └── handler │ └── grpc │ └── team │ ├── team.pb.go │ └── team.proto └── user └── handler └── grpc └── user ├─…

Ubuntu14.04上でglibcをbuildしてリンクする

glibc内のソースをいじりたかったのでその前準備にglibcソースからビルドしてコードにリンクするまでの手順をメモ 環境 vagrant@vagrant-ubuntu-trusty-64:~/libc$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubunt…

Gormにおける多層外部キーの定義の仕方とコードの書き方

最近バイトの方でgormの振る舞いとデータベースのテーブル構造のことでハマったのでそれについてメモっておきます テーブル構造とgoのモデル 最初にあったテーブル構造は上の図のような感じ。 今回は例として地域、地域に存在する書店たち、書店の持つ本をマ…

2018上半期院の授業振り返り

お久しぶりです。 今回は僕が上半期に芝浦工業大学大学院電気電子情報工学専攻で取った授業についてレビューというか感想的なものを書いていこうと思います。 後輩の方々に向けての参考になれば幸いです。 構成はこんな感じで書いていきます。 授業名 概要 …

GAEにデプロイするとき今のバージョンのzapは使っちゃだめ

GAEでgolangのwebサービスをデプロイしようとしたとき github.com unique id発行のために上のライブラリを使っていたんですが、内部でzapを使っていました。 github.com zapは以下のようにgo1.9から追加されたtype aliasを使っています。 package zap import…

自作OS入門の環境をOS Xで整える

動機 「30日でできる!OS自作入門」を読み実装しようと思ったところ、環境がwindows。おまけにアセンブラやビルド環境がWindows故、そのまま流用できませんでした。 そこで少し色々調べた結果、http://bttb.s1.valueserver.jp/wordpress/blog/2017/11/14/mak…

brew updateしたらなんかvimが動かなくなった

vim

ある日 brew update したらvimが dyld: Library not loaded: /usr/local/opt/lua/lib/liblua.5.2.dylib Referenced from: /usr/local/bin/./vim Reason: image not found /usr/local/opt/lua/lib/liblua.5.2.dylib がないと言われた。実際にパスに移動すると…

Contikiにおけるファイル分割してコンパイルの仕方とPROCESSによる並列実行

卒業研究で使ってるWSN用のOS、というより超巨大ライブラリのContikiというものについてメモしておきます。 Why そもそも日本語のドキュメントは勿論、英語でのドキュメントもサンプルを動かしただけとかばっかで深いところに突っ込むにはソースコード読むし…

HighSierraにアプデしたらvimが起動できなかった

macをHigh Sierraにアプデしたんですが、コンソールでvimを起動したらこんなメッセージが dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib Referenced from: /usr/local/bin/vim Reason: im…

VimConf2017に参ってきました

VimConf2017とは vim唯一の国内でのカンファレンス vimにパッチ送ってる人とかプラグイン書いてる人がセッションしてくれる すごい Vimとは 言わずと知れたテキストエディタ ちなみに僕の研究室でvim使ってるのは10人中2人とかでvimconf行くんだーって言った…

開発におけるdockerの利点とかその他諸々

インターン先での開発時はdockerを使って環境を構築することが多いです。 でも最近までdockerがなんたるかをwebで読んでもちんぷんかんぷんだったにも関わらず使ってると便利だなーって思えるようになりました。 でも環境構築するまでは結構苦労がありました…

大学生活+αの振り返り

こんにちは。最近書くネタがなくてどうしようかと思い、でも月一更新はなんとか続けないと今後も続かないと思い、 「そういえば最近1年生や2年生の子にいつからプログラミングやってたかよく聞かれるなー」ってなって自分でもいつからこっち方面に進もうと…

とりあえず機械学習を実践してみる方法

どうも、おばんです。 あ〜そろそろなんか記事書いてまとめておくか〜って思うと大体綺麗に1ヶ月経ってます。 突然なんですが最近一身上の都合(特に深い意味はないです)でpythonで機械学習を使う機会が増えました。 自分ではやろうやろうと思いつつも理論…

2週間ほどのベトナム滞在記

お久しぶりです。学校の留学プログラム、みたいなもので2週間ほどベトナムのハノイに行っていました。 今回はそこでの経験を書き起こしておこうと思います。 そもそもなんで行ったのか そもそもなんで留学なんか行ったの?というお話ですがそれは研究室配属…

アナグラム判定メソッドの実行速度を比較してみた

今回は前回の続きといいますか、似たような問題に対する実装を複数パターンあったのでその速度を比較してみました。 問題 二つの文字列が与えられた時、片方がもう片方の並び替えになっているかどうかを決定するメソッドを書いてください。 前提条件:空白や…

C言語のポインタインクリメントの話

新年あけましておめでとうございます。 今年は特に勉学への時間を費やしたいと思います。 さて、最近は競技プログラミングというか一からプログラミングとコンピュータの仕組みについて改めて勉強しているので今回は そこでふと疑問に思った点について書いて…

SECCON2016に少しだけ参加

土日に開催されたSECCON2016に素人ながら参加したので少しだけ解けた問題について writeupなんて言うほどでもないのでタイトルにはつけてないです Vigenere Vigenere k: ???????????? p: SECCON{???????????????????????????????????} c: LMIG}RPEDOEEWKJIQI…

最近

お久しぶりです。いつ更新しようかなー、明日かなーなんて考えてるうちにいつの間にか前回から2ヶ月近く経ってました。 なんというかネタがなかったわけじゃないんですがいざ書くとなると急にめんどくさくなってきたしまったんです… というわけで今回は(逃…