「ワンストップ見積もり本」で見積もりのやり方を学んだ

note.mu 先日の技術書典6で、親方Projectさんが販売されていた本です。 ちょうどこの前、見積もりが全然できておらず目標を達成できなくて怒られたばかりなので、買ったその日に真剣に読みました。 この本は、プロジェクトやタスクにかかる時間・工数をどう…

@kakakakakkuさんのブログメンタリングを卒業しました

1月から3月まで、@kakakakakkuさん(カックさん)のブログメンタリングを受けました。 メリークリスマス!新規ブログメンティを募集しまーす!今回の募集人数は1-3名です.メンタリング開始日は 1/1 (火) です.・ネタをどう探すか?・どう習慣化するか?・ど…

KafkaをDockerの外から叩けないときに確認すべき設定

Dockerで立ち上げたKafkaを、ホスト環境でビルドしたJavaアプリケーションから叩こうとしたのだが、なぜかエラーになって叩けず。 java.lang.IllegalStateException: No entry found for connection 21729123512 よく調べてみると、advertised_listenerの設…

[GitHub] hub pull-requestの宛先がフォーク元のリポジトリにならない場合の対処法

hub.github.com GitHubの公式コマンドラインツールであるhubの存在を知り、最近使い始めている。いろいろな作業がコマンドからできてとても便利なのだが、フォーク元のリポジトリにプルリクエストを送るところで詰まってしまった。フォーク元のリポジトリを …

コマンドラインでCSVをソートする方法まとめ

結合テスト後の結果比較や生データの処理などのために、数MBくらいのCSVを取り扱いたい時がある。なかでも、いろいろな処理を行う前に、たいていtimestamp等で各行をソートする必要があることが多い。エンジニアになる前はExcelを開いて頑張っていたけれど、…

JUnit 5で同じ流れのテストを繰り返すならParameterizedTestを使おう

Javaのテスト環境をJUnit 5にアップデートしてしばらく経った。JUnit 5にはいろいろな新機能があるけれど、中でも便利だと感じたのがParameterizedTestだった。 ParameterizedTestとは ParameterizedTestを使うと、同じ内容のテストを異なる入力値・出力値で…

LT経験値を上げるには「自由研究LT」イベントがおすすめ

engineers.connpass.com 先日、テーマ自由のLT大会「自由研究LT」で登壇してきました。 このイベントですが、単に各自が好きなことを話すだけのものではありません。これはエンジニアのコミュニティが主催する、LTの経験を積むためのイベントなのです。そし…

「オタクが最新技術を追うライトニングトークイベント #3」で最新技術を追った

yumenosora.connpass.com LT枠で参加してきました。今回はとらラボの方3名+一般参加3名のLT会です。 Google Cloud Functions + Go Google Cloud FunctionにGolangが追加されたので、画像処理をする関数を作ったというLTです。さらに、Golang 1.11から導入さ…

【LT】Redashでデータ活用の壁をなくす #toralab_lt

yumenosora.connpass.com RedashについてLTしてきました。もともとは単に仕事として会社にRedashを導入する担当になっただけなのですが、運用するうちにRedashの使い勝手と哲学が好きになりました。このブログで記事を書いたり、Redashにプルリクを出したり…

RedashアラートのRearm Secondsとは何をするものなのか

Redashを使っていて特に便利だと感じるのがアラート機能。うちの会社では、自社サービスの異常値検知のためにアラート機能を多用している。 しかし、アラートの設定画面にある Rearm Seconds という項目は、公式サイトの説明が少なく、どのような動きをする…

GCPのJavaライブラリに見るenumの使い方

今までJavaを書いてきた中で、定数クラスをゼロから設計した経験があまり多くなく、今でもよく迷ってしまう。そこで、実際のコードで定数定義をどのように行っているのかを見てみた。 以下のコードは、Google CloudのJavaライブラリで使われているもの。ソー…

Gitのコマンドを簡単に探せるGit Explorerの使い方 & プルリクエストを送る方法

Git

gitexplorer.com 今朝会社で話題になっていたので見てみたのですが、エンジニア1年目の頃にこのサイトがあれば...!と思うくらい良かったです。 どんなサイト? Gitのコマンドを、よくあるシチュエーション別に簡単に探せるサイトです。 gitコマンドは新人エ…

初めての主催イベント「積み残し解消もくもく会 #01」を開催しました

tsuminokoshi-moku.connpass.com 「積み残し解消もくもく会」を1/27(日)に開催しました。イベントを自分で主催したのはこれが初めてです。 自分がふだん仕事や目の前のタスクに追われ、長期的なタスクや、やりたかったけど時間がなくて放置していたことを積…

Javaの関数型インターフェースとラムダ式・Streamの関係

新しいプロジェクトでJavaのコーディングルールが変わり、ラムダ式やStreamを積極的に使っていく方針になった。それなりに書き方はわかっているつもりでいたが、「今回は関数型インターフェースを多用することになるので、見た目が独特かもしれませんが慣れ…

Docker環境下でKafka Connectを気軽に試す

前回の記事では、Docker Imageを使ってKafkaを立ち上げた。今回は、Kafkaを使うならほぼ確実にお世話になるKafka Connectを試したい。 Kafka Connectとは 前回の記事では、コンソールからコマンドを叩いてTopicに直接メッセージを出し入れしていた。しかし、…

Docker環境でKafkaに気軽に入門する

Kafkaを扱うことになり、なんとかして手軽に触ってみることはできないかと思っていたら、このDocker imageをおすすめされた。 https://hub.docker.com/r/landoop/fast-data-dev KafkaのDocker imageはいろいろあるが、これは必要なサーバが自動で立ち上がる…

cp -RTでディレクトリの中身だけ別のディレクトリにコピーする

先日、Railsチュートリアル用の環境をDockerで整えてみたが、そのときに詰まったのが「ゲスト環境で rails new して生成されたファイルを、ホスト環境との共有ボリュームにコピーする」ところ。ゲスト環境で /myapp (←自分のアプリ名)配下に生成されたファイ…

「Go言語らしくGoコードを実装するための手法と思想」を読んだ感想

昨年末、海外出張の機内で暇つぶしのつもりで読んだのですが、最近Go言語を学び始めた私にとって思った以上に良い本でした。 Go言語というのは他の言語に比べて書き方や文化が独特です。 そのため、他の言語に慣れた身では戸惑うことも多く、「Go言語らしい…

私の成長は、本当に良い成長だったのだろうか?

この記事は、#セイチョウ・ジャーニー Advent Calendar 21日目の記事です。 今年は去年と比べて、幅広いことをやりました。GolangとRuby on Railsを学び始め、LTにも2回登壇しました。いろいろなイベントに行き、また仕事以外のエンジニアコミュニティにも登…

Redash CLIで役立ったコマンド

この記事は、Redash Advent Calendar 2018 18日目です。 データ活用を全社的に推進するために、今年から社内にRedashを導入しました。 幸いにもカスタマーサポートチームにSQLの経験者がいたため、比較的スムーズに普及し、多くのメンバーに毎日よく使ってい…

LTに初めて申し込むときの不安要素とその取り除き方

この記事は、エンジニアの登壇を応援する会 Advent Calendar 2018 11日目です。 LT、それは... 聞くは易し、行うのは難し。 バリバリ登壇するエンジニアに憧れてはいたものの、人前で登壇するなんて無理無理... 今までの自分はそんな風に思っていました。 そ…

Redashでadmin権限のユーザーがデータを見られなくなった

Redash運用中にやらかしたことをシェア。バージョンは4.0.1。 Redashにはdefaultというグループがあらかじめ用意されており、ユーザーを登録すると一度全員がdefaultグループに振り分けられる。 しかしこのグループは権限設定がFull Accessになっているため…

Redashで閲覧権限のみのユーザでもダッシュボードを見られるようにする

redash.io 業務でRedash(v4.0.1)を使い始めたが、今のところなかなか便利なうえ運用も楽なので気に入っている。 ただしwebコンソールでできることがまだまだ限られており、かゆいところに手が届きにくいときもしばしば。 特に権限の設定については、webコン…

builderscon 2018という楽しいお祭りに参加しました

とある方からチケットを譲渡いただけるという幸運にあずかり、土曜日に参加してきました。 buildersconに参加したのは今年が初めてなのですが、他のカンファレンスと違い、お祭りだなあという雰囲気を強く感じました。 特定の技術に絞ったわけではなく、また…

Jenkinsでシェルスクリプトを-eオプションなしで実行したい

最近Jenkinsを使い始めたが、Jenkins上でシェルスクリプトを書くと、特に何も指定していなくても #!/bin/sh -xe として実行されてしまうようだ。 普通であれば、スクリプトの途中であってもエラーが出れば即ビルド失敗となるので助かる仕様だろう。 しかし今…

DjangoのView呼び出しの仕組み ~getメソッドはどう呼ばれるのか

最近仕事でDjangoを使う機会が多くなった。 プログラミングを勉強し始めた頃にDjango Girls Japanのチュートリアルをやったことがあるからまあ大丈夫だろうと思っていたが、すぐにそれだけでは全く歯が立たないと気づいた。業務でDjangoを扱う際は、デフォル…

DjangoでTemplateDoesNotExistと言われたら

別のブログ記事用に、Djangoで簡単なアプリを作った。モデルがなく、単にView関数を呼び出してTemplateを出すだけ。 from django.shortcuts import render from django.views.generic import View # Create your views here. class IndexView(View): def get…

ファイル内の重複行を楽に探すunixコマンド

先日、大量のデータから完全に重複した行を探す処理をする機会があった。そのときはどうすればいいか手間取ってしまったが、コマンドを工夫すればすぐにできる内容だった。 以下の単純なサンプルログtest.txtを例に取る。 {"location_name": "title", "times…

クリックすると一瞬だけ光るボタンを作る

Vue.jsの勉強としてFizzbuzzゲームを作っている。数字を出して答えを4択で選ばせるのだが、選んだときに正解なら緑、不正解なら赤に一瞬だけ光らせたい。 Vue.jsのtransition/animationの項目を読んだが、これは要素を表示/非表示にするときの話で、色を変え…

webpackは何をするものなのか

今までJSフレームワークを扱うときは特に深く考えずにwebpackを見よう見まねで使っていたが、業務で開発プロセスの改善について考えることになり、webpackの役割についてちゃんと理解しなければいけないことになった。 webpackの細かい機能は都度覚えていく…