下級エンジニアの綴

新しく発見したことを綴っていこうと思っています。夢はでっかく上級エンジニアになることです。

goのginを使ってjsonでパラメータを返すサーバーを立ててみた

go

やんてらです。今回はgoの話になります。 goのフレームワークは何が良いのか分からなかったのでネットで調べたところginが良さげだったので採用してみました。 本題 レストランの一覧を返すjson用のapiサーバを立てていきます。前回と変わらずdokcerで作って…

mysqlのクエリが詰まったので解消したメモ

どうもやんてらです。今回はmysqlでクエリが詰まりすぎて何もできなくなったのでそれを解消したメモになります。 クエリが詰まるとCPU使用率がどんどん高くなっていきました(99.8%ぐらいまで上がっていたのでほんと危なかったです笑 show processlist を使用…

rubyのbundleでgemfileのパスでハマったのでメモ

どうもやんてらです。bundleを行う時にGemfileが上手く読み込めなかったので、その時周りの方に教えて頂いたメモになります。 このような感じでGemfileを置いてて、 root@dda622750a80:/app# ls -al Gemfile -rw-rw-r-- 1 1001 1001 3901 Nov 16 09:38 Gemfi…

dockerを使ってgoの環境を立ち上げる流れを作ってみたのでそのメモ

お久しぶりです。久々の更新ですみません。 今回はgo作業する時、dockerを使って開発したいなーと思って作成したそのメモになります。 自分は docker fo mac を使用しています。 フォルダ構成 |- docker | |- go | |- Dockerfile |- docker-compose.yml |- m…

モブプロを初めて1ヶ月立ったので感じた事のまとめ

どうもやんてらです。私が開発チームのリーダーになって2ヶ月くらいになりました。 以前書いた記事から1ヶ月くらいたったので、久々の更新です。 今回はチームでモブプログラミングを初めて大体1ヶ月ほどたって感じた事を書いていきます。 はじめはモブプロ…

カイゼン・ジャーニーを読みながらマネジメントっぽい事を始めて2週間ぐらいたったので感じた事をメモ

最近チームのリーダーの人が抜けて急遽自分が代わりにマネジメントっぽい事を始めたので気づいた事をメモ。 今までスクラムを意識してやっていたのですが、どうもチームで作業している感が無くて改めて今までの開発フローを見直しました。 (ほとんどカイゼン…

rubyのcountについてメモ

countを使わなくて失敗したので戒めを含めメモ。 Active Recordのデータ(配列)に対して sizeを使えば配列を全てオンメモリで扱って、結果を返す。 countはを使えばdbに投げて結果を返してくれる。 ↑のことはわかっていたけど、物理的な部分を理解しているつ…

railsのparamsについて調べたのでメモ

今回はparamsのメソッドについてハマったので色々調べたメモです。 railsのバージョンは4.1.8でrubyのversionは2.1.5です(古いバージョンで辛い・・・ 内容 作成した成果物を一覧で表示する処理を書いており、スクロールを行うと自動で次の成果物を表示する…

destroy_allの挙動が思ったのと違ったのでメモ。

railsでまとめてデータを削除したいときにdestroy_allを使用していたのですが、実際に動いているsql文を見て想定と違ったので調べたのでメモ。 内容としては 数十万件のレコードを舐める時に1000件単位で削除を行おうと思ってコードを書いており、1000件のオ…

ssh先のサーバでrailsサーバを立ち上げるシェルを書いたのはいいけど、sshをkillするとrailsのプロセスが残ったままになったのでメモ

今回ハマった点ですが、タイトルの名の通りssh先のサーバでrailsサーバを立てるシェルを書いたのでが、ctrl + c で抜けるとsshはkillされてrailsのプロセスがssh先のサーバで残ったままだったので、解決方法を模索したメモになります。 ssh hostname 'rails …

LINE DEVELOPER DAY 2017に行って来ました

Line Developer Day に行って来ました 昨年も参加したのですが、ブログに書くのは今年が初めてになります。 受付 午前のセッション Opening Session The Technologies in Clova LUNCH TIME 午後のセッション Gateboxのこれまでとこれから Paying back techni…

linux(centos)の公開鍵を置いているサーバーにsshが出来なくて嵌まったのでメモ。

今回は公開鍵を置いているサーバーにsshが出来なくて嵌まって調べたメモになります。 状況 .sshフォルダの権限は700で所有者はログインユーザー authorized_keysの権限は600で所有者はログインユーザー 公開鍵と秘密鍵は対になっている タイポもしていない …

Rspecでインスタンスメソッドのテストに苦労したのでメモ

今回はRspecでメソッドのテストをしたかったのですが、メソッド内で定義しているメソッド先の処理のテストは記述したくなかったので、それを解決したメモになります。 rubyのコード # 今回テストしたかったのはTest1のexecuteメソッドになります Class Test1…

docker-composeでRAILS_ENVを切り替えて実行する方法を調べたのでメモ

今回はrspecを実行したいけど、わざわざdockerのコンテナの中に入って実行するのはイケてないと思い、調べたそのメモになります。 docker-compose exec test bash RAILS_ENV=test_docker rake db:migrate:reset RAILS_ENV=test_docker rspec ↑のコマンドを叩…

railsのhash#tryでちょっと躓いたのでメモ

railsでhashにtryをかけているとエラーが出たので、その時に調べた内容をメモ。(一度先輩に教えてもらった気がするのですが完全に忘れてましたorz 本題 この書き方だとhashにkeyが存在する時は問題無いのですが、 { name: 'yantera' }.try(:fetch, :name) # …

rubyの特異メソッドのprivateについて気になったから調べたのでメモ

特異メソッドでprivateなメソッドを呼ぶ方法 sendを使う privateの特異メソッド、privateのインスタンスメソッドを関係なく呼べる 最終手段な感じがするので、あまり推奨できないと思った class A def self.hoge A.new.send(:fuga) end def self.aaa A.send(…

rubyの多次元hashで指定したkeyを削除する時、ActiveSupportのexceptを使うと便利だったのでメモ

require 'active_support' h = { a: 1, b: 2, c: 3, d: { e: 4, f: { g: 5 }}} p h.except(:a) // {:b=>2, :c=>3, :d=>{:e=>4, :f=>{:g=>5}} p h // {:a=>1, :b=>2, :c=>3, :d=>{:e=>4, :f=>{:g=>5}}} p h[:d].except!(:f) // {:e=>4} p h // {:a=>1, :b=>2,…

go初心者が無名関数のクロージャについて学んだのでメモ

go

スターティングGo言語という本を読んでいるのですが、これは面白そうだなと思った機能があったのでメモ クロージャとしての無名関数 クロージャーから参照されたローカル変数は関数内のローカル変数とは別物になりクロージャの変数になる クロージャが何らか…

builderscon2017に行って来ました

buildersconとは 4日 初めてのMySQLチューニング -データベースは怖くない! ランチセッション 横山三国志に「うむ」は何コマある?〜マンガ全文検索システムの構築 Goで実装する軽量マークアップ言語パーサー RDBアンチパターン リファクタリング LT 5日 こ…

re:dashユーザ追加でハマったのでメモ

re:dashをdockerで立てて運用した時に新規ユーザーを作成しようとしましたが、少し時間がかかったので手順をまとめました。 GUIで行う場合はメールサーバを立てないとメールが送られてこないので、ユーザーを作成しても仮パスワードが送られてきません。 な…

rubyのeachメソッドについて少し調べてみた

結論を先に述べるとよくわからなかったです。 とりあえず、調べた内容を残しておきました。 hoge = [{0=> 'aaaa'}, {1=> 'bbb'}, {2=> 'ccc'}] hoge.each.with_index do |a, index| p a.object_id, hoge[index].object_id end p hoge 69822855751840 6982285…

とりあえず、コメント書いとけば良いと思っているエンジニアを減らしたい

どうもやんてらです。 今回は技術的な記事ではなくて個人的に思っていることを書いていこうと思っています。 (内容は愚痴になりますので不愉快だと思われる方はブラウザバックをお願いします。) 今回取り上げた内容は「コメント」です。 ソースコードの中に…

rubyのnilを0にしたいときに調べたのでメモ

数値を扱っているときにnilを使いたくないので、調べたらいい感じに行けそうだったのでメモ。 nil.nil? # true nil.to_i # 0 nil.to_i.nil? # false nil.to_s # "" nil.to_s.nil? # false nil.to_s.empty # true rubyって面白いですね。

Wunderlistに設定しているタスクを毎日(平日限定)slackに通知する流れを作ってみた

slackにタスクを毎日通知してくれるいい感じのツールが見つからなかったので、自作してみました。 必要なもの 手順 node.jsのインストール wunderlineのインストール rubyのインストール 実際のコード cronに登録 結果 気になってるところ 参考リンク 必要な…

linuxのfind -mtimeの挙動で失敗したのでメモ

今回はlinuxのfindコマンドのmtimeオプションで失敗したのでメモするために書きました。 今回失敗したこととしては、ファイルの削除cronを回しているときにfindコマンドを使って-mtimeオプションで時間を指定して削除処理をおこなっていました。 しかし、消…

resqueのworkerがoverviewで表示されるのにサーバ側ではプロセスが存在しないから調べてみた

resqueのoverviewでよく分からないworkerが存在していたので、killしようと奮闘していた話です。 ドキュメント残すついでに書いてみました。 発見時 サーバでプロセスを確認 ps aux | grep resque おらんやん!! なんやこのプロセス・・・・ 調べてもよく分…

nginxのアップロードモジュールを使ってみた

大容量のファイルを扱うことがあったので、どうしようかなと調べているとnginxに便利なモジュールがあったので紹介します!! 入れてみて感じたメリット 細かいことはあまりわかっていませんが、1Gのメモリしか積んでいないマシンに1.5Gほどのファイルをアッ…