SWEet

A Software Engineer Is Eating Technologies

入社して2年が経ったけど転職・・・しません

CyberAgent に入社して2年が経ちました。今日から3年目です。 入社してからは CIU というインフラ横断の組織で開発を主にしていました (入社した時はまだ SIA って組織名でしたけどね) 入社してから何をしてたか AKE というコンテナ基盤を改修、ユーザさんの…

Custom Controller の開発で使えそうなコード集 #Kubernetes2 Advent Calendar 2020 16日目

この記事は Kubernetes2 Advent Calendar 2020qiita.com の16日目の記事です。 Custom Controller で よく使う、使えそう なコードの断片をラフに紹介してみようと思います。 想定する環境 Kubebuilder v2 go 1.14 今回実装した CRD の example apiVersion: …

入社しました

4月に渋谷の某企業に就職しました。 別に会社名隠したところですぐバレそうですが、なんか社名のっけたくなかっただけです。 会社どうですか 人格者かつ技術力高い人が多いのでストレスフリーです。 あと会社の文化的なものによるのかビジネスの観点もしっか…

プログラミングを教えて欲しい人たちへ

最近「プログラミングを教えて欲しい」と言われることが多くなりました。 一々LINEやFacebookで長文書くのも面倒なのでここに僕の回答を書いておきます。 手取り足取り教えるのは無理 これは申し訳ないけど自分のことで手一杯なので有償無償問わず, つきっき…

Envoy ビルドメモ

妙に詰まったのでメモ 環境 GCE: Ubuntu 16.04 Goインストール済み 手順 justiceboi.github.io まず, clang-9 + llvm を入れる(7.0以上が条件らしい) 依存パッケージインストール { sudo apt-get update sudo apt-get upgrade sudo apt-get install \ libtoo…

Kubernetes The Hard Way におけるNodeを跨いだPod間のパケットフロー

何をするのか github.com Kubernetesの構築は各種クラウドベンダによるサービスによって非常に簡易化されている. 自前のサーバにKubernetesをデプロイする場合もkubeadmのようなツールによって必要なバイナリを全て手でインストールするというような手間を取…

About etcd and NoSQL

はじめに 本記事は adventar.org における19日目の記事になります. Previous ICCV2019 Best paper SinGANのできる事できない事[実践編] - Qiita Next @Shagamii による記事 となっていますのでよろしければこちらもどうぞ. さて, 今回は昨今多く世に出てきて…

GoのURL decodeするときの注意

TL;DR Goの net/url のURL構造体が持つ String() 関数は自動でエスケープされるから気をつけよう コードと意味 http://hoge.com/hoge.jpg%3Fversion%3Dv1 みたいなURLを http://hoge.com と /hoge.jpg~~ のようにFQDNとパスで分けて パスのエスケープをデコ…

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行くんだーって言った…