タグ

ブックマーク / tagomoris.hatenablog.com (16)

  • Gradle経由でのテスト実行時、コンソールに失敗したテストケースの情報を出力する - たごもりすメモ

    `./gradlew test`とか`./gradlew build`とかしたときに失敗したテストの情報はこの`index.html`を見てね! っていうのがめんどくさくて、なんでデフォルトで失敗したテストの情報を出してくれないんだっけ、と思っている人、主に俺の問題を解決する。 ていうかデフォルトでそうしてくれればCIサービスの設定時にテスト結果の保存とかを個別にやらないと何が失敗したかもわかんなくなってて困る、みたいな状態にならなくてすむのにね。 調べてたら「とにかくコンソールに全部出したい!」みたいなのがいっぱいひっかかるけどそうじゃないんだよなー、そういうのはtoo muchなんだよ。 で、これ。 stackoverflow.com のうち一番下の回答(TestLoggingを使う)が簡単に調整できそうだったので、手元プロジェクトで以下のようにした。Kotlin DSL使ってるんで`

    Gradle経由でのテスト実行時、コンソールに失敗したテストケースの情報を出力する - たごもりすメモ
    nilab
    nilab 2023/01/26
    Gradle経由でのテスト実行時、コンソールに失敗したテストケースの情報を出力する - たごもりすメモ
  • RPCメソッド一覧から見るhiveserverとhiveserver2の違い (と、ついでにPresto) - たごもりすメモ

    手元でいいかげんhiveserver2に移行しようと思いまして、移行するためには shib をhiveserver2に対応させなきゃならん、ということになるわけです。 で、実装する前にどうせ調べるから、ということでhiveserverとhivesever2は何が違うのかをRPC APIメソッドの一覧から見てみようと思いました。カジュアル! hiveserver 古きよきhiveserverはThriftで接続してAPIを叩きます。*.thrift ファイルがやたら多いのが気になりますが、えいやとコード生成してしまえば結構わかりやすいコードが(どの言語でも)生成されますね。 メソッドの一覧を出してみるとこんな感じ。 execute(query) fetchOne() fetchN(numRows) fetchAll() getSchema() getThriftSchema() getClu

    RPCメソッド一覧から見るhiveserverとhiveserver2の違い (と、ついでにPresto) - たごもりすメモ
    nilab
    nilab 2022/10/07
    RPCメソッド一覧から見るhiveserverとhiveserver2の違い (と、ついでにPresto) - たごもりすメモ
  • hiveserver2 使いはじめのハマりどころの話 - たごもりすメモ

    いくつかメモる。盛大にハマった。 metastore hiveserverとmetastore serverとhiveserver2で設定分けられないんだけど、というケース。単に以下の設定があればなんとなく動く。 <property> <name>hive.metastore.uris</name> <value>thrift://hiveserver.local:9083</value> </property> これがあれば hiveserver も hiveserver2 も metastore server をなんとなく参照してくれるようになるし、metastore serverも起動してくれるようになる。っぽい。 hiveserver2ポート変更 hive.server2.thrift.port を hive-site.xml で指定するか、環境変数で HIVE_SERVER2_T

    hiveserver2 使いはじめのハマりどころの話 - たごもりすメモ
    nilab
    nilab 2022/10/07
    hiveserver2 使いはじめのハマりどころの話 - たごもりすメモ
  • HiveでLOAD粒度を自由に変更可能にするパーティション構成 - たごもりすメモ

    ひとことで言うと「通常必要なパーティション階層の更に下にもうひとつパーティションを掘っておけ」だけ。 普通のパーティション設計 仮にWebサーバのアクセスログを投入するためのテーブル accesslog があるとする。このテーブルを、まずサービス名 service カラムでパーティショニングし、さらに日毎にパーティショニングするとしよう。データは外部でタブ区切りにparseしておき、それを毎日LOADする。 このようなテーブルになる。 CREATE TABLE accesslog ( rhost STRING, time STRING, method STRING, path STRING, status SMALLINT, bytes BIGINT, referer STRING, useragent STRING ) PARTITIONED BY (service STRING, yy

    HiveでLOAD粒度を自由に変更可能にするパーティション構成 - たごもりすメモ
    nilab
    nilab 2021/04/19
    「ひとことで言うと「通常必要なパーティション階層の更に下にもうひとつパーティションを掘っておけ」だけ」
  • Hive UDFを自分で追加するときの注意点メモ - たごもりすメモ

    メモ。CDH3u2 (hive-0.7.1-cdh3u2) での話。 (1/23 HiveServerについていくつか追記した) Hiveで自分でつくった関数(User Defined Function: UDF)を使いたい! と思い艱難辛苦を乗り越えJavaのコードを書きjarにまとめたとする。書くまでの話はWikiの該当ページなどを熟読するのがよろしい。 で、じゃあどうやってHive起動時に読み込めばいいの、という話。 add jarコマンド hiveコマンドを起動するマシンの適当なディレクトリにjarファイルを置き、そのディレクトリをカレントディレクトリとしてhiveを起動して以下のコマンドを実行する。 hive> add jar udfclass.jar; hive> create temporary function myfunc as 'my.package.udf.Class

    Hive UDFを自分で追加するときの注意点メモ - たごもりすメモ
    nilab
    nilab 2020/08/20
    「Hiveで自分でつくった関数(User Defined Function: UDF)を使いたい! と思い艱難辛苦を乗り越えJavaのコードを書きjarにまとめたとする」
  • はじめてのmaven central 公開 - たごもりすメモ

    前置き:このエントリはJavaおよびJava周辺の*1開発環境に全く縁の無い人間が、可能な限り依存ソフトウェアを少なく手順をシンプルに保ったままやろうとしたものであり、知識・経験のある人にとっては全く最適な手段でなかろうことをお断りします。 先日のエントリ で書いたとおり woothee 1.0.0 をリリースした。Perl, Ruby, Node.js および PHP などはそれぞれの言語毎のモジュールリポジトリに登録されている。 が、Javaについては自分が Maven Central の勝手がわからず、されてると便利だよなーとは思いつつ放置していた。 が、なんと @making さんからMaven Central登録用の pull requestがきた 。きてしまった。これで最大の問題(xmlを書く)はおおむね解決されてしまったので、覚悟を決めて登録作業をすることにした。 せっかくや

    はじめてのmaven central 公開 - たごもりすメモ
    nilab
    nilab 2020/02/10
    「誰がどのパッケージを登録できるのか、みたいな権限はOSSRH JIRAで申請して変更してもらう。ので、まずそのJIRAのアカウントを作る必要がある」
  • mysql2-cs-bind released! - たごもりすメモ

    前に RubyMySQLに繋ぐためのruby-mysqlmysql2 - tagomorisのメモ置き場 というエントリで書いたとおり、いまおそらく最もよく使われそうな mysql2 という ruby用のmysqlドライバにはprepared statementを扱うためのAPIがない。MySQLではprepared statementを使っても使わなくても速度に影響は無いらしい(後のtweet参照)し、O/R Mapperを経由しての使用がメインだから不要、という判断なのだろう。 (p19)MySQLの場合: PreparedStatementプール機能の利用有無は、性能にまったく影響しません・パラメータのバインド機構の利用有無は、性能にまったく影響しません / Microsoft PowerPoint - URL 2012-04-18 11:49:15 via Hatena しかし

    nilab
    nilab 2019/12/02
    「自分はO/R Mapperを使わない書き方をすることが非常に多く、そういうケースで自分で値をエスケープしながらSQLに埋め込んでいくのは非常に嫌だ。なんというかDB2で育った自分の本能が拒否する」
  • 小中規模のIT系企業における技術的選択と雇用戦略に関する雑感 - たごもりすメモ

    でっかい主語で入ったが、要するに2月にあちこち会社巡りをしたときに感じたことについてつらつら書こう、というのが目的。 特定の会社について書いてもしょうがないので、あれこれ*1回ったうちから少なくとも2〜3ケースで該当するなあ、と思ったことについて書く。特定の1社のみに該当する事項はこのエントリにはひとつも出てきません。 またエントリの主旨からして超上から目線になりますが、どうかご容赦ください。 これから成長が格化するのでインフラを支えられる人材がほしい 正直に言ってこれが一番多かったパターン。スタートアップ的にサービスを作ってきたがその一方でデプロイや監視などの運用まわりが後手後手になっており、そのあたりを支えられる人物がほしい。 話としてはわかるのだが、気になったのは、これを聞くとき、詳しい内容を突っ込んでみると、どうも実際にはそう困ってはいない、というケースがほとんどだったように思え

    小中規模のIT系企業における技術的選択と雇用戦略に関する雑感 - たごもりすメモ
    nilab
    nilab 2015/05/11
    小中規模のIT系企業における技術的選択と雇用戦略に関する雑感 - たごもりすメモ
  • 社内ITシステムを構築・運用するのに最重要な3つのポイント - たごもりすメモ

    自社で使用するシステムを開発する、とする。 このとき迂闊にやっていると、気付いたら過去に構築したシステムのメンテナンスにばかり時間をとられ、新しいコードがぜんぜん書けていない、という状況に陥ることがある。 こうなると地獄だ。新規の興味深いコードを書くなんてとんでもない、という状態になる。メンテナンスコストを下げるためのコードすら書けなくて永遠に悲惨な撤退戦を繰り返すことになる。絶対に避けなくてはならない。 ということで、自分が心掛けていることをざっと書く。 全く手を入れずに動き続ける状態を最初に作る もちろんシステムというものは生き物なので、ある程度のメンテナンスコストが必要になる。特に会社というものは生き物なのでシステム周囲の環境は常に変化する可能性がある。データ連携している別のシステムの仕様が変われば、当然そのデータを利用する側も対応しなければならない*1。 ということで、システムには

    社内ITシステムを構築・運用するのに最重要な3つのポイント - たごもりすメモ
    nilab
    nilab 2015/02/08
    社内ITシステムを構築・運用するのに最重要な3つのポイント - たごもりすメモ
  • 退職します - たごもりすメモ

    先にまとめ 現在の勤務先を退職することにしました。日が最終出社日です。 次はまだ決まっていません。というか、どことも具体的な話はまだしていない、という段階です。面白そうな職場はどこにあるかなと探している段階ですので、魅力的なところに心当たりがある方はぜひご連絡ください。色々な人と話ができるといいなあと思っています。 現職について 11月半ばくらいまでは転職はまったく考えていませんでした。が、その頃の世間の技術的な流れなどを見ていて、ちょっと技術的に異なることをやろうかなあ、と考えたのが直接的な理由です。今後どうするかを考えたとき、せっかくなら働く環境なども変えてしまった方がこれからの人生が刺激の多いものになりそうだということで、現職を退職することを決めました。 やりたいことを変えるだけなら社内でやればいいだろう、という話を会社側からはされましたし、もっともなことでもあるのですが、同時に前

    退職します - たごもりすメモ
    nilab
    nilab 2015/02/08
    退職します - たごもりすメモ
  • LINE選抜で isucon4 予選に参加してPerlのコードをごりごり書いた - たごもりすメモ

    みなさんtagomorisはPerlなんて書いてねーだろと思うかもしれませんが、意外にちょっとは書くんですよという話……じゃなくて、それはどうでもよくて、今年も ISUCON の季節ですね、という話。 詳しくはこちらをどうぞ。 LINE選抜で isucon4 予選に参加してきました。暫定スコア「51192」を出すためにやったこと - blog.nomadscafe.jp では済まないので、自分の視点からの話も。 準備 上述エントリのとおり、準備自体はほぼ去年のISUCON3戦のものを持ち込む形。結果的にほとんど問題なかったと思う。 設計 10時になってからの開始後、サーバ側のセットアップと初期ベンチ実行および結果確認は@kazeburo、コードのバージョン管理まわり等は@sugyanにおまかせしてひと足はやめに詳細が公開されたレギュレーションとアプリケーションコードを読む側に回った。 そ

    LINE選抜で isucon4 予選に参加してPerlのコードをごりごり書いた - たごもりすメモ
    nilab
    nilab 2014/09/30
    LINE選抜で isucon4 予選に参加してPerlのコードをごりごり書いた - tagomorisのメモ置き場
  • 業務とオープンソース活動の話 (日本OSS奨励賞 受賞報告にかえて) - たごもりすメモ

    先日書いたエントリでも触れたけど、日OSS奨励賞、というものをいただくことになりました。ご推薦いただいた方がいるということで、当にありがとうございます。 「第9回 日OSS貢献者賞・日OSS奨励賞」受賞者を選定 | 日OSS推進フォーラム で、せっかくの機会だし、普段思っていることを書いておこうと思う。この内容はほとんど将来の自分に対する自戒だ。アレな内容になることを申し上げておきます。先日に引き続いてアレですが、まあせっかくの機会なんですよ。ねえ。 ちなみに、ちょー長くなりました。あっはっは。 業務としてのオープンソース活動 自分はフルタイムのオープンソースコミッタではない。オープンソース活動に貢献すること、などという文言は自分の業務内容にはひと言も含まれていないし、自分が所属する部署の目標にも無い。自分の業務はあくまで自社サービスに貢献すること、自社サービスの開発および運用を

    業務とオープンソース活動の話 (日本OSS奨励賞 受賞報告にかえて) - たごもりすメモ
    nilab
    nilab 2014/02/28
    業務とオープンソース活動の話 (日本OSS奨励賞 受賞報告にかえて) - たごもりすメモ
  • 4年前、おれがSIerの片隅で、何者でもなかった頃 - たごもりすメモ

    今からちょうど4年前の2010年2月、某巨大SIerの片隅でExcelPowerPointばかりを眺めて過ごしていた頃、おれは仕事でも仕事以外でもコードなんかまったく書いていなかったし、GitHubのアカウントも持ってなかった。毎日見積書とWBSと納品書と請求書と、Excel方眼紙の詳細設計書と格闘してた。 当時おれは30歳だった。一度はプログラマとして生きるのは自分には無理だと思って入社したSIerで数年やってて、そこそこ成功した数年を送っているとは思っていたけど、でもやっぱり、そんな毎日に飽きていた。 技術力を重視とか言いながらプロパー社員にコードを書かせようとしない会社の方針にも、svnもgitも閉じられててガチガチに監視されたネットワークに繋がせておいてオープンソースがどうのと言う文化にも、手順や履歴を重視とか言いながらロクにバージョン管理システムを使おうとしない一部の同僚にも、

    4年前、おれがSIerの片隅で、何者でもなかった頃 - たごもりすメモ
    nilab
    nilab 2014/02/25
    4年前、おれがSIerの片隅で、何者でもなかった頃 - たごもりすメモ
  • fluentd のベンチマークとってみたよ! - たごもりすメモ

    入出力プラグインをrubyで書けるのがじつにいい感じの fluentd がいい感じに見える。 fluent/fluentd · GitHub ので使えるかどうか、使えるとしたらどれくらいのノードを用意すればいいのかについて考えるため、とりあえずベンチマークをとってみた。 結論 以下非常に長くなるので結論だけ書くと、大変使える感じ。現状だとほとんど何も考えずにデータ中継させても秒間1万メッセージ、100Mbpsくらいまでは処理できる。効率よくなるよう流す側も考えてやれば 300Mbps を超えるデータの転送に成功した。だいぶいい感じ。 なおこれは in_scribe および out_scribe を使用した場合で、開発者 @frsyuki によるとMessagePackでのデータ転送の場合はこの倍くらい出るらしい。 もちろんこれは右から左に流しただけなので現実にタグによるルーティングだとかロ

    fluentd のベンチマークとってみたよ! - たごもりすメモ
    nilab
    nilab 2012/10/31
    fluentd のベンチマークとってみたよ! - tagomorisのメモ置き場
  • Perlでコマンドラインオプションの解析に Getopt::Long を使う時、絶対に忘れてはいけない引数 - たごもりすメモ

    Perlでコマンドラインオプションをparseしようと思うと組込みモジュールとしては Getopt::Std と Getopt::Long がある。が、long style option *1 つまり --option-name のようなオプションを解釈してくれるのは Getopt::Long だけだ。なので普通はこちらを使おう。 ただし 絶対にデフォルト、つまり以下のようにして使ってはいけない。 use Getopt::Long; my (@primary, @secondary, $silent); GetOptions( "server-primary|p=s" => \@primary, "server-secondary|s=s" => \@secondary, "silent|S" => \$silent ); これダメ! 絶対ダメ! 死ぬ! 最初に結論を書く 必ず以下のように

    Perlでコマンドラインオプションの解析に Getopt::Long を使う時、絶対に忘れてはいけない引数 - たごもりすメモ
    nilab
    nilab 2012/09/22
    Perlでコマンドラインオプションの解析に Getopt::Long を使う時、絶対に忘れてはいけない引数 - tagomorisのメモ置き場
  • iPhone4が便座にダイブしたがゲル漬け25時間で生還した件 - たごもりすメモ

    去る8月20日金曜日の正午過ぎ、突如自分のiPhone4が大便器にダイブしました。 あまり綺麗な話ではないので詳細は省きますが洗浄ボタンを押したあとで便器内に物件は残っておらず*1、あまり汚れはしなかったもののドバドバ流れる水に数秒間さらされるという酷い状況にiPhone4はあえなく沈黙。電源を落とす画面がちらちら明滅したあとのことでした。あまりのショックに記憶が定かではないのですが、かなりデカい声で「ああああああああああああ」とか叫んでいたような気がします。隣のブースの人はどう思ったでしょうね。 応急処置 (12時31分) で、数秒で救出はしたものの洗面台でいちおう洗ったこともあり画面は完全に沈黙。物理スイッチがないしバッテリも外せないしで、画面が暗いだけなのか電源が落ちてるのかもよくわからん。 ここでどうすべきかTwitterから群集の英知が得られたところによると「米びつに入れるんだ!

    iPhone4が便座にダイブしたがゲル漬け25時間で生還した件 - たごもりすメモ
    nilab
    nilab 2010/08/24
    iPhone4が便座にダイブしたがゲル漬け25時間で生還した件 - tagomorisのメモ置き場
  • 1