エンジニアはこわくない

好きなように書く

プログラム

golangでcsvファイルを書き出し

golangでcsvを作成したかったので、調べました。 さすがgolangって感じでサクッと出来たので書きたいと思います。

シェルスクリプトで自作コマンドを作成する

仕事をしてるなかで自作のコマンドを作成したくなりました。 調べてみると割りと簡単にシェルスクリプトで自作コマンドを作成できたので そのことについて書きたいと思います。

aws-cliでタブキーを押して補完機能が使えるように

普段AWSを使っていてイチイチAWSコンソールを確認するのが面倒くさいので aws-cliを使っているのですが(aws-cli便利!!) aws-cliに補完機能が適用されていないことに気が付きました。 (ここでいう補完機能というのはtabキーを押して候補が出てくることを…

一度go getしたパッケージを更新(アップデート)する方法

golangを使用していて稀にあるのですが、ローカルにあるパッケージが古い場合があります。 そんなときにgo getしたパッケージを漏れなく全部削除してもう一度最新のパッケージをgo getして・・・なんてことをするのか? と思ったのですが、そんなことはしな…

golangのrangeについて気づいたこと

小ネタですがgolangのrangeについて気づいたことがあったので 書きたいと思います。

golangでのmap初期化に少しハマった話

golangでのmap初期化に少しハマりました。 同じエラーに出会った人もいるかもしれないので、記録しておきます。

golangのversion1.9から標準でvendorディレクトリを除外してくれるようになった

今更かよ・・って感じのタイトルですが笑 go vet ./... | grep -v vendor のようなコマンドを自分のシェルスクリプトから見つけたので 「そういえば1.9から標準でvendorディレクトリを 除外してくれるようになったからgrepしなくていいんだ」 ということに気…

golangでトランザクション管理を少し楽にするラッパー関数

僕はgolang+mysqlを使っているのですが、いかんせんトランザクション管理に困っております。 go-sql-driver/mysqlにはbegin、commit、rollbackというメソッドがありますが まさか一つ一つ手で書く・・・? 力技としてならそれもありかも・・・なんて思って…

自動ビルドしてくれるライブラリ「fresh」がいい感じ

githubをぼけーと見ていると「fresh」という便利なライブラリを見つけたので、 それについて書きたいと思います!

型アサーションを利用して特定のメソッドを実装しているか調べてみよう

golangのインターフェースについて調べていると、型アサーションという機能があることを知りました。 この型アサーションを利用して 「特定のメソッドを実装しているか調べる」 といったことが可能みたいなのでやってみました。

golangでビルドしたバイナリをスタティックリンク (static link)にする

スタティックリンク (static link)って何?って人はこちらをどうぞ。↓ http://wa3.i-3-i.info/word14695.html 今回はgolangでビルドしたバイナリデータをスタティックリンク (static link)にするビルド方法について書こうと思います。 (ぼくは毎回普通にビル…

aws-cliを使ってs3のバケット間同期をしてみる

みなさんのプロジェクトではs3を使用していますか? 画像や音声などをs3で管理しているプロジェクトも多いと思います。 僕がいま所属しているプロジェクトでもs3を使用していて そのときにバケット間同期をする必要があり、aws-cliを使って同期しています。 …

golangでvetコマンドやtestコマンドを実行したときにvendorディレクトリを除外する方法

下記の記事で書いたように、golangでディレクトリ(プロジェクト)をまるごとvetやtestしていると、たまに困ったことが起きるようになりました。 tsujitaku50.hatenablog.com それは 「ディレクトリ(プロジェクト)をまるごとvetやtestしていると、vendorディレ…

golangのmutexはポインタで渡すようにしよう

タイトルの通りなのですが ある時、golangを書いていてvetコマンドを実行したときに警告が表示されました。 その警告を見て「へーそうなんだ」と思ったので今回はそれについて少し書きたいと思います。

golangでディレクトリまるごとgo vet&testしたいとき!

golangを書いているとコード担保のために go testコマンドやgo vetコマンドをしますよね?? 僕はjenkinsで自動テストをしているのですが、そのときにディレクトリ(プロジェクト)まるごと go testコマンドやgo vetコマンドしたいときってどうするんだ? と思…

MySQLをHomebrewでインストールする(Mac版)

新しいMacに変えたのでローカルにMySQLをインストールする必要が出てきました。 そのときにbrewでインストールすると2分くらいでインストールが完了したので、今日はそのことを書きたいと思います。

golangのインターフェースが本当に少しだけ理解できたかもしれない。これがポリモーフィズムなのか?

こんにちは、つじたく(@Tsuji_Taku50)です。 先日こんな記事を書きました。 tsujitaku50.hatenablog.com 今もこの気持は変わってません笑。 やっぱりgolangのインタフェース機能を使いこなせる気がしませんが、少しだけインタフェースの使い所が分かったよ…

golangのlog.Printlnとfmt.Printlnって何が違うんだ?と唐突に思った

こんにちは、つじたく(@Tsuji_Taku50)です。 いつもどおりgolangを書いたり勉強したりしていたのですが、 個人でgolangを書いているとデバック出力のためにfmt.Printlnと使っていました。 ただgolangにはlogパッケージが存在しています。 あれ、そういえば…

IBM WatsonのAPIガイドラインを読んでREADME部分を翻訳してみました

こんにちは、つじたく(@Tsuji_Taku50)です。 Watson Developer Cloud · GitHubを眺めていると、WatsonのApi Guidelinesがリポジトリとしては存在していたので 主にREADMEの部分をGoogle翻訳と自分なりに意訳してみました。 README部分の全ての訳したわけで…

GithubのEarlyAccessプログラムに登録しました

こんにちは、つじたく(@Tsuji_Taku50)です。 面白そうだったのでGithubのEarlyAccessプログラムに参加しました。 EarlyAccessプログラムとは Early Accessリリースでは、GitHub Platformの新機能や機能の初期段階の洞察が得られます。これらは、あなたの方…

golangのインターフェースがイマイチ理解できず泣きそう

こんにちは、つじたく(@Tsuji_Taku50)です。 golangのインターフェースについて自分の理解が及ばず泣きそうです。 使いこなせればめちゃくちゃ便利なんでしょうが、理解できない人にとっては使いどころが分かりません。

IBM Watson Summit 2017が面白かったので少しだけまとめた

こんにちは、つじたく(@Tsuji_Taku50)です。 先日「IBM Watson Summit 2017」というものがあり、LIVE配信動画を見ていて「IBM Watson面白いな〜」と思ったので 少しまとめてみようと思いました。 そのときのツイート↓ IBM Watson Summit 2017のライブ配信…

goxのクロスコンパイルでビルド時にエラーが表示されて少しハマった

こんにちは、つじたく(@Tsuji_Taku50)です。 先日こんな記事を書きました。 tsujitaku50.hatenablog.com このgoxライブラリを使っていると、エラーが表示されてビルド出来ない!なんてことが起こりました。 解決するまでに少し時間がかかったので、今日は…

itamaeを使うにあたって参考になった記事まとめ

こんにちは、つじたく(@Tsuji_Taku50)です。 環境構築のツールとして会社ではAnsibleを使っているのです。 ただ個人で使う場合にはAnsibleはちょっと多機能すぎるかな。。。と思っていました。 こんな多機能じゃなくていいから、もうちょっとシンプルなツ…

AWSCloudFormationでElastic IP(固定IP)付きのEC2インスタンスを作成する

こんにちは、つじたく(@Tsuji_Taku50)です。 AWSCloudFormationでElastic IP(固定IP)付きのEC2インスタンスを作成したので そのサンプルコードを載せようと思います。

Circleci2.0でローカルにインストール可能なので挙動調査してみました

こんにちは、つじたく(@Tsuji_Taku50)です。 circleci2.0になってローカルにcircleciをインストールできるようになりましたね! これでcircleciのビルドを確認するたびにリポジトリにpushする必要がなくなりました! 感激!

GCPを使ったサービス構成図を作成するときには公式アイコンを使うといい

こんにちは、つじたく(@Tsuji_Taku50)です。 先日GCPを使ったサービスを想定して、構成図を考えて発表するということをやってきました。 その際に構成図に使用できるGoogle公式アイコンがあったので紹介します。

全てのgitブランチを取得したいならfor-each-refコマンドが使えるかも

こんにちは、つじたく(@Tsuji_Taku50)です。 gitコマンドを使ってみてfor-each-refコマンドという存在をこの前初めて知って、たまにしか使わないけど 知っておけば便利だなと思ったので紹介したいと思います。

golangでクロスコンパイルするならgoxライブラリを使うと便利!

こんにちは、つじたく(@Tsuji_Taku50)です。 golangはクロスコンパイルできることが魅力の1つですが、 いかんせんコマンドが長くなる&複雑になりがちです。 そこで今回はgolangでクロスコンパイルを簡単にしてくれるライブラリを見つけたので、紹介します…

git logコマンドでログを確認する時には--name-statusオプションを付けたほうが良いかも?

こんにちは、つじたく(@Tsuji_Taku50)です。 git logコマンドでログを確認するときには、--name-statusオプションを付ければ、詳細を見れることに気づいたので それについて紹介したいと思います。