キチログ

Keep it simple, stupid.

Helmの光と闇

https://helm.sh/ Helm使ってとある実装をしたので、メリットとデメリットを整理しておきたい。 Pros - 光 動的にパラメーターを埋め込める KubernetesはManifestと呼ばれるyamlファイルを記述することで、コンテナの状態を宣言的に管理することができる。 …

GKEがEKSより優れている点をまとめる

最近EKSもGKEも触ってみた中で感じたGKEの優位性について書き留めておく。 逆はどうなのかという点、EKSが優っているメリットは今の所特に思いつかない。 GCP vs AWSというクラウドベンダーの比較の観点からすると、それぞれの分野で甲乙出てくるだろうが、…

DDDでモデリングをするときに知っておくべき構成要素

保守性に欠けたコードを読むのは骨が折れるし、変更を加えて何が起こるかわからないコードには恐怖と不安が付いて回るから、モデリングを頑張りたい。 そんなところで、今回はドメインのモデリングをする上で最低限理解しておかなければならない登場キャラク…

GoのSplit関数を使うときの注意 Field関数との挙動の違い

文字列をスペースや,や.をデリミタとして分割してスライスに入れたいこと、あると思います。 そんな時によく使われる標準パッケージの関数として、 Split Fields があるかと思います。 (Fields は空白文字をデリミタとして使用します。それ以外を指定したい…

GoのSliceのCapacity Allocationを効率よくやるために

GoのSliceを使う時にどのタイミングでCapacityが際割り当てされるかを調べます。 package main import ( "fmtが" ) func main() { const max int = 1000000 var lc int slc := make([]int, 0, 0) for i := 0; i < max; i++ { slc = append(slc, i) if lc < c…

GolangにおけるGenericsについて考えながらGoらしさについて考えてみる

tl;dr Go 2 Draft が発表され、その中にはgenericsの機能追加が検討されています。この機会にジェネリクスとは何かについて考えてみたい。 以前はJavaを書いていて、当時使いながら便利だなあと感じていた。 けど、いわば抽象化テクニックであるgenericsを多…

Mercari Tech Conf 2018 に参加して見てきたテックカンパニーのマイクロサービス

だい2回めとなる、Mercari Tech Conf 2018 が昨日の木曜に開催され、平日にも関わらず500人くらい来てました。 ちなみに去年は300人って言ってた。 だいぶいい刺激をいただいたので、せっかくなので記事にします。 tl;dr テックカンパニーとしての熱量がすご…

Protocol Buffer と Message Pack の違いとベンチマークを比較

TL;DR 恥ずかしながらProtocol BufferとMessage Pack触ったことない..。 ので、実際に触ってみて、自分なりにみて考えるみるのが目的。 コードはこちら https://github.com/uqichi/go-protobuf-msgpack Protocol Buffer と Message Pack の違い Protocol Buf…

MySQL5.7のインデックスを操作する方法

MySQL5.7のインデックス操作をメモ。 既存のテーブルにインデックスを追加する場合Syntax(書き方)が2通りあります。 CRUDのSyntax ALTER TABLEのSyntax カラムの変更などがあるときはALTER文で、インデックスの編集のみの場合はそれぞれのsyntaxで書けばい…

Github Pagesにカスタムドメインを追加する

必要なこと やるべきことは、三つ。 ドメインの取得 Github Pagesに取得したドメインを追加 DNSレコードの設定 https://help.github.com/articles/using-a-custom-domain-with-github-pages/ を読みつつ進めていく。 ドメインを取得する 王道のお名前.comで…

エンジニアブログ作るならGithub Pages x Hugoがおすすめ

そろそろ自分のブログを作るか。全然技術ブログなど書いてないけど。ということで、作ってみました。 TL;DR Hugoを使って、Githubにブログをホスティングし公開しました。 やってるうちに色々メリットなど気づいたので、エンジニアさんがブログを開設するな…

HomebrewでGolangのバージョンを最新にアップグレード

brew upgradeしたときの最新が古い brew upgrade go しても、現在の1.9.2が最新なんだと。ほう Fomulaをアップデート formulae.brew.sh 上のgoのformulaページ見るとStableが1.10になっている。ちゃんとなってるやん。 ということは自分のローカルのFormula…

Vimを使ってapiaryのapibファイルを快適に編集できるようにする

今回はじめてapiaryを使ってAPIドキュメントの作成をやっています。 API Blueprint 記法を学びながらわりと快適に作業していたのですが、問題発生。 発生した問題 途中からapiraryのオンラインエディタのvalidationが遅すぎて死んだ apiaryの一時的な接続問…

gvm使ってCircleCIでGoのバージョン固定

目的 バージョンが勝手に変わると、アプリケーション動作の保障ができないので、任意のバージョンのgoをインスコして使う 対象環境 ビルド環境 (CircleCI) 実行環境 (AWS EC2) 今回ビルド環境と実行環境を分ける予定であるため、その両方への作業が必要です…

AWS EC2にansibleでmysqlインストール

golangのAPIサーバー構築のためにmysql使いたいからansibleでやってみるかってノリだけなので、簡易的にやります。 ansibleのaの字くらいでやります。nsibleは後で学ぶ。 このへんみながら http://qiita.com/bboobbaa/items/c5466369d744a29dc6e9 http://qii…

Vim歴2年の自分の成長止まりを憂う

vim使い始めて2年くらい経つけど、結構クセついてきてしまいたまに焦りがきます。 例えば、diw -> i とやり慣れてる人が、 ciwに移行するのって意識して努力しないと変わらない。 以下は、僕自身が習得しなければならない、より便利な機能をリスト化してみま…

インタフェースと抽象クラスどっち使ったらいいんだ?

どういうケースでどちらを使うかとか知りたかった。 まず結論からいうと多様な議論があるようだった。 だからこれを読んだかたは鵜呑みにせずにいっしょに考えてもらいたい。 インタフェースと抽象クラス 結論、インタフェースって? クラスの型(仕様)を定義…

LVM作成してスナップショット機能を検証する

LVM作成してスナップショット機能を検証する 環境 VMWare, CentOs6 参考 検証内容 ゴール LVM snapshot機能の確認 プロセス CentOSのVMに5GBのHDDを2つ追加する 追加した2台のHDDを、LVMを利用して2GBと6GBの論理ボリュームを作成する LVMスナップショット機…

Bonding構築

参考 [VMWare] VMWareのVMのNICの増設方法(CentOSの場合) - eji著 意外と知らない?NICを冗長化するボンディング(bonding) - うさぎ文学日記 CentOS/NICの冗長化(bonding設定) - maruko2 Note. http://open-groove.net/linux/linux-bonding-fail-over-…

RAID5構築

参考 CentOSでソフトウェアRAIDの構築 - maruko2 Note. 環境 VMWare, CentOS6 目標 SCSI ハードディスクを 3個増設し、その 3個のディスクを使ってRAID アレイを構築する 手順 仮想HDD追加 VMWare work stationにて、 SCSI ハードディスクを 3個増設する。 …

Redisコマンドライン引数

コマンドラインインタフェース — redis 2.0.3 documentation こぴぺめも Redis コマンドラインインタフェース redis-cli コマンドは、Redisコマンドを引数として渡して、インタラクティブな操作なしでサーバに送信することができるようになっています: $ /pa…

ERROR! The server quit without updating PID file の対処

http://unix-like.dyndns-web.com/?p=242 OSX Lion, Homebrewで入れたmysqlが起動しない夜 - ワインのばか いろいろ調べていろいろやってみた。 PIDファイルは直接の原因ではなく別の要因で起動に失敗しているようだ。 /usr/local/var/mysqlのownerが_mysql…

NodeアプリケーションをAmazon EC2にデプロイ

Node(Express) × MongoDB(Mongoose)アプリケーションをAWS EC2にデプロイして公開します。 AWS EC2 セットアップ このへんはぱぱっとメモしておきます。 AWSアカウント登録(http://aws.amazon.com/jp/) 最小サイズのAmazon EC2 Micro Instanceの使用は、1…

NodeでRSS情報をfbいいね順に取得する

nodeで何か実装する際は、使えそうなapiがないか調べてみるとよい。 たとえば今回、facebookいいねを取得したかったので以下のように検索してみたらでてきた。 $ npm search facebook | grep like 何件かでてきたので、使えそうなもんがあれば使おう。 使用…

Nodeを使ってcron処理してみる

調べてみたらOSがもっているcronを使わずにnodeだけで定期処理できそうなのでいまからやってみます。 参考URL http://dev.classmethod.jp/server-side/cron/ http://memo.yomukaku.net/entries/HxtZxeG 使用するnpm node-cron time 環境 構成 . ├── cron.js …

mongoDB使ってみる

@author Yukichi Tamura @date 2014.7.17 いまやってるプロジェクトで、なにかしらストレージ使う必要性がでてきたので、mongoDB使ってみます。 いままでmysqlとredisしか使った事がないですが、今回やりたいことがRSSで取得した記事情報(jsonオブジェクト)…

ゼロからのNodeJS Expressアプリケーション構築

「はじめてのNode.js」を参考に進める。 参考書は3.0.3だが、最新のExpress4を使う。 Node環境 Node と npm homebrewを入れている場合は $ brew install node nodeとともにnpmもインストールされる。 グローバルに管理されるnodeモジュールの場所は、/usr/lo…

EclipseでJavadoc生成

めも。EclipseでJavadoc生成 Project > Generate Javadoc javadocコマンドの指定 > next >next 追加のjavadocオプション(UTF-8の場合) -encoding UTF-8 -charset UTF-8 完了 docフォルダのindex.html

MacでApache+PHPの環境を構築する

MacでApache+PHPの環境を構築する方法。 参考URL http://qiita.com/is0me/items/72fcb5d8ac2c8f1c6247 http://stackoverflow.com/questions/10873295/error-message-forbidden-you-dont-have-permission-to-access-on-this-server http://yoshifumisato.jeez…

Eclipseの外観を変更する

Eclipseはデフォルトでの外観が真っ白です。 目が疲れるので、変えましょう。メモ。・エディタのテーマ ・UIのテーマをそれぞれ変更(暗く)します。 エディタをダークにする!! Help > Eclipse Marketplace 「Eclipse Moonrise UI Theme」を検索、install 再…