タグ

ブックマーク / blog.64p.org (27)

  • JDK9 で入るという新しい HttpClient を試してみた - tokuhirom's blog

    jdk9 で HTTP/2 に対応した新しい HttpClient が提供される。これは待望の新機能である。 Java には標準で java.net.httpurlconnection という http client が付属しているが、低機能で、とてもじゃないが実用には耐えない。 そこで Apache HttpClient がデファクトスタンダードっぽくなっているのだが、これまたあまり使いやすくはない。。wirelog が見づらいし。。 OkHttp というクライアントライブラリもあり、これは使いやすいが、なんか apache httpclient 信者の人に導入を阻まれがち。 そんな中で、HTTP/2 に対応した http client が jdk9 ではついてくるということで、ドキュメントを読んだり、jshell で動かしたりして遊んでみた。 [12:43 PM] tokuhirom

    invent
    invent 2016/09/11
  • 俺がレビューコメントでよくつけるやつ - tokuhirom's blog

    的にメンバーは良いコードを書くという前提で暮らしています。 良いと思います。テストがあるともっと良いと思います。 変更が軽微で、まあテストなくてもいいけど、あったほうがより良いよねえ、という時に使う 動いてるんならいいと思います 処理が複雑なので、実際に動かしてみないとうまく動くかどうかコードをパッと見ただけだったらよくわからないけど、動いてるんならちゃんと動いてるんだろうな、という気がするときに使います。 lgtm シフトキーをオスのもめんどくさいなって時には小文字で書きます。 コメントが無いとあとでなんだかわからなくなっちゃうかも? ちょっと複雑な処理なのにコメントないときとか wiki へのリンクを貼ってくだされ~ 仕様がちょっと複雑だったり、後から経緯おえないと死ぬな、という時に言います 日語でOK 英語でコメントついてるけど、コメントの内容が端折り過ぎで説明不足なときにいい

    invent
    invent 2016/08/04
  • 検索結果は 200 OK を返す - tokuhirom's blog

    検索結果が0件なときに「存在しない」のだから404を返そうとするコードをたまに見るんだけど、これは 200 OK でやったほうが良い。 処理自体が成功したかどうかを返すのに HTTP status code を使った方がよろしい。

    invent
    invent 2014/12/25
    検索結果は 200 OK を返す - http://t.co/V823qlWv2j
  • json に値を直接書く話 - tokuhirom's blog

    昔の JSON は Object か Array しかルートに書けなかったけど RFC 7159 では true/false/null/number/string を書けるようになってて便利だっておじいちゃんが言ってました。 https://tools.ietf.org/html/rfc4627 https://tools.ietf.org/html/rfc7159

    invent
    invent 2014/12/14
  • AngularJS 嫌いな人が多い昨今について - tokuhirom's blog

    最近 AngularJS 嫌いという言説が多いですが、そういうことを仰る方々は主に先鋭的な JSer のように思います。 ただ、僕なんかの場合には、ユーザー向けの画面の構築などには AngularJS を使って書くことは最近はほとんどなく、JS を書くといえばもっぱら管理画面です。 管理画面の JS を書くにあたっては AngularJS way にのっかってやると非常に楽ですよね。管理画面を書いたりする上では vue-js とかで頑張って書くと見通しが悪くなったりしますし、こった動きなどは必要ないというところで angular.js ワリといいなと思っています。 もっといいものがあれば移りたいですが、コストをかけずに作りやすい管理画面を作るという意味ではやはり AngularJS にまだメリットがあるなあ、と思っています。 2.0 が出た時にこまるというのもありますが、実際は angul

    invent
    invent 2014/11/21
    AngularJS 嫌いな人が多い昨今について - http://t.co/V823qlWv2j via @feedly
  • Google guava と Java 8 - tokuhirom's blog

    Google guava は Java 7 で使っていると便利なのだが、Java 8 の世界では使わないほうがよいように思う。 Java 7 の世界で独自で関数型プログラミングしようとした結果、読みにくいコードになっている面がある Java 8 ととの機能の重複が多い バイナリ互換性を失うような変更が行われるため、後々困ることがある 自分のコードで guava に依存していると、ライブラリが要求している guava のバージョンにあわせられなくてつむことがある guava なにげに色々詰め込みすぎてるのでバイナリサイズがわりとでかい guava にある機能で java 8 にないものはわりとほとんど apache commons で代用できる。 そんな感じです。重要なのはバイナリ互換性まわりで、なにかとクラス削ったりしてくるのではまりがちですね!

    invent
    invent 2014/11/21
    Google guava と Java 8 - http://t.co/V823qlWv2j via @feedly
  • [java] SecureRandom のアルゴリズムの選択について - tokuhirom's blog

    前提 Java SE 8 + Linux 前提です。 Java で暗号的に安全な乱数をえる Java で暗号的に安全な乱数を得るには SecureRandom クラスを利用します。 SecureRandom ではいくつかの乱数生成アルゴリズムをサポートしています。 各プラットフォームでもっとも安全な SecureRandom の実装は ${JAVA_HOME}/jre/lib/security/java.security の securerandom.strongAlgorithms という項目に書いてあります。 SecureRandom#getInstanceStrong() で取得できるのはこれです。 インスタンスの取得方法 new SecureRandom() でデフォルト実装が得られます OSXlinux では NativeBlocking です(SHA1PRNGの場合もある

    invent
    invent 2014/10/09
    SecureRandom のアルゴリズムの選択について - http://t.co/RBxZp7Ot5Q
  • LL から Java に移行した人がはまりがちなこと - tokuhirom's blog

    こんにちは。Java 初心者です。 Java 初心者、得に LL から Java に来た人にありがちな問題について社内向けに書いたものをオープンアンドシェアさせていただきます。 前提として、我々は Java 8 でガンガン攻めているということをご承知おきください。 また、自分がこの数ヶ月で「うわー。こうしとくべきだったのかー」と気づいたやつをドヤ顔で語っているということにもご注意ください。 【追記】 対象は中規模 B2C の場合です(中規模というのは facebook より小さいという程度の意味です) 例外を握りつぶさないようにしよう Eclipse が生成する以下のようなコードをそのまま残しているケース。 これは言うまでもなく良くないですね。デバッグが困難になります。 try { } catch (IOException e) { e.printStackTrace(); } Perl

    invent
    invent 2014/10/01
    LL から Java に移行した人がはまりがちなこと - http://t.co/pma7gjxetK via @instapaper
  • Harriet ー テストのときつかうにデーモンの取扱を簡単にするためのフレームワーク - tokuhirom's blog

    https://github.com/tokuhirom/Harriet/https://metacpan.org/module/TOKUHIROM/Harriet-0.01/lib/Harriet.pmテストのときにつかう mysqld, memcached, stf, groonga あたりのデーモンを、.t 単位で起動していては遅くてかなわない。かといって、あらかじめ起動させておくというのも。。 というわけで prove のプラグインとしてよしなにする、みたいなのをがんばってかく、というような試みがおこなわれてきたわけですが、どうもめんどくさい。 なんか適当にやったらうまくうごく、っていうかんじのカジュアルなツールがほしいな、なんておもったりするわけですよ そこで、Harriet ってのをつくってみました。 なんかこう、t/harriet/mysqld.pl っていうファイル名でこん

    invent
    invent 2014/05/17
    Harriet ー テストのときつかうにデーモンの取扱を簡単にするためのフレームワーク - http://t.co/RBxZp7xq3Q
  • 海外の最新技術情報を得るには Hacker News 100 を読もう - tokuhirom's blog

    去年ぐらいから、Hacker News 100 っていう feed をよんでます(たしか miyagawa さんからおしえてもらったような気がする)。 [https://news.ycombinator.com/](Hacker News) っていうサイトがあって、これは技術情報がたれこまれるサイトとして、なかなかおもしろいんけど、いわば VIP のスレ一覧をみてるようなもんで、どれが面白いんだかさがすのも結構大変というかんじ。 A Cure for Hacker News Overload というこのページにのっているフィードをよむと、だいぶいい。 ここのフィードは、勢いのあるスレをいいかんじに抽出してくれるので、それなりに面白い情報が簡単にひろえるようになってます。 僕はここにのってる newsyc100 というフィードを RSS リーダーで購読しています。タイトルをながめて面白そうな

    invent
    invent 2014/02/20
    海外の最新技術情報を得るには Hacker News 100 を読もう - http://t.co/RBxZp7Ot5Q
  • Carton 1.0 時代の Web アプリケーション開発フロー - tokuhirom's blog

    Carton 1.0 がでたところで、Web アプリケーション開発のフローを一度見直しておきたい、そんな人も多いでしょう。 そんな方のために僕のやりかたをまとめました。各社、議論の叩き台にしていただければよろしいかと存じます。 もっとも重要なことは、、 Carton を使うときに、僕が最重要だと思うことは、できるだけ番環境と開発環境の環境をそろえるということです。CPAN モジュールが番と開発でバージョンちがうから挙動がちがってた!! なんてのは時間の無駄ですし、よくないことですからね。 ですから、各開発環境と番環境をできるだけそろえることを意識していきたいとおもいます。 DarkPAN は使ってない そんなに DarkPAN 的なのを使うほど、DarkPAN 的なオレオレモジュールがないので、git submodule で管理しています。 【201308061241update】

    invent
    invent 2013/08/06
    Carton 1.0 時代の Web アプリケーション開発フロー - http://t.co/pma7gjxetK
  • Future Perl - YAPC::NA 2013 に参加して - tokuhirom's blog

    YAPC::NA 2013 に参加してきました。その中でも印象にのこったことを取り急 ぎアップしておきます。 今回は日からは @yusukebe と @xaicron と TPF の President である Karen が参加していたようです。 僕は今回がはじめての US だったので、いろいろと困惑することもありました が、旅行記などには興味がないという人も多いでしょうし、書くのがめんどく さいですし、たぶん xaicron が書くと、ほとんど内容がかぶるので割愛させ ていただきます。 デニーズのシェイクに興奮する yusukebe と xaicron エントリーでは YAPC::NA で僕が感じたこと、技術的に Perl Community が どこに向いているか、といったあたりのことについて述べていきたいとおもい ます。 今年は Perl 25 周年ですので、これまでの Per

    invent
    invent 2013/06/08
    Future Perl - YAPC::NA 2013 に参加して - tokuhirom's blog.
  • ソースコードのコメントに wiki へのリンクや、ファイル共有サーバーの path をどんどん書こう - tokuhirom's blog

    なぜか書かない人がおおいけど、かいておくとなにかと便利なので、かいておいたほうがいいです。 元の仕様とかかいてある wiki のページへのリンクなど、どんどんコメントにかこう。

    invent
    invent 2013/05/24
    ソースコードのコメントに wiki へのリンクや、ファイル共有サーバーの path をどんどん書こう - tokuhirom's blog.
  • tmux で画面の外に |----------------- ってでまくるときの対策 - tokuhirom's blog

    tmux a -dでいいと typester さんにおしえてもらいました。 killall tmux などの残虐な手段もおしえられましたが、人道的な解決に成功いたしました。

    invent
    invent 2013/04/27
    tmux で画面の外に |----------------- ってでまくるときの対策 - tokuhirom's blog.
  • LTをはじめてやる君へ - tokuhirom's blog

    LT というのは メインのトークは大変なので、簡単に発表できる場をもうけよう5分なのですべっても大丈夫マイナーなネタをしゃべってもゆるされるようになんか一発ネタとかも発表できる場をもうけようなどの目的をもって設置されるものです。それほど気負う必要はないし、その日のうちに思いついてやったりする場合もあります(とくに海外では、飛び込みはあたりまえにあるといいます)。 ただ、一方で5分と話す時間がみじかくなっているので、話しなれていない場合には 自己紹介は手短にスライドの文字は大きくゆっくりしゃべるよく練習するの4点に気をつけましょう。 発表になれてない人ほど自己紹介を長くしがちですが、聴衆はあなたの生い立ちに興味はありません。名前、所属程度をいえば十分です。発表が、あなたのバックグラウンドをしらないと伝わらないものならば、かるく説明する必要はありますが、それでも30秒程度におさめる方がいいでし

    invent
    invent 2012/09/04
    LTをはじめてやる君へ - tokuhirom's blog.
  • LTをはじめてやる君へ - tokuhirom's blog.

    LT というのは メインのトークは大変なので、簡単に発表できる場をもうけよう 5分なのですべっても大丈夫 マイナーなネタをしゃべってもゆるされるように なんか一発ネタとかも発表できる場をもうけよう などの目的をもって設置されるものです。それほど気負う必要はないし、その日のうちに思いついてやったりする場合もあります(とくに海外では、飛び込みはあたりまえにあるといいます)。ただ、一方で5分と話す時間がみじかくなっているので、話しなれていない場合には 自己紹介は手短に スライドの文字は大きく ゆっくりしゃべる よく練習する の4点に気をつけましょう。発表になれてない人ほど自己紹介を長くしがちですが、聴衆はあなたの生い立ちに興味はありません。名前、所属程度をいえば十分です。発表が、あなたのバックグラウンドをしらないと伝わらないものならば、かるく説明する必要はありますが、それでも30秒程度におさめる

    invent
    invent 2012/09/04
    LTをはじめてやる君へ - tokuhirom's blog. -
  • 複数ホストに ssh しながら tail -F するときにはこうしたらどう? - tokuhirom's blog

    いろいろ方法があるとおもうのですが、以下のようなシェルスクリプトですませるのはどうでしょうか? #!/bin/bash function kill_children { # jobs -l | perl -ne 'print "kill $1\n" if /^\S+?\s+(\d+)/' | sh; pkill -P $$; wait; } trap "kill_children" EXIT HOSTS="192.168.1.1 192.168.1.2" for host in $HOSTS do ssh $host tail -F /service/foo/log/main/current & done wait ちょっと箇条書きで解説すると以下のようなことをおこなっています。 & でバックグラウンドジョブをはしらせるwait でそれらの終了を待つtrap 〜 EXIT は atexit

    invent
    invent 2012/08/24
    複数ホストに ssh しながら tail -F するときにはこうしたらどう? - tokuhirom's blog.
  • MVCは死んだ!!!!!1111 時代は TCTO だ!! - tokuhirom's blog

    モデルとかビューとかウェブアプリケーションの文脈では不適切な抽象化なので T(テンプレートエンジン) C(コントローラ) T(手続き) O(O/R Mapper) とよぶといいです。

    invent
    invent 2012/07/12
    余計にわかりにくいぞこれ。 MVCは死んだ!!!!!1111 時代は TCTO だ!!
  • nana という tora 言語処理系をだしていた話 - tokuhirom's blog

    https://metacpan.org/module/nana tora を perl5 の上でうごかす処理系である nana をだしておきました。 perl5 でうごいているので perl5 の関数もなんとなくよんだりできます。 import_perl("LWP::UserAgent") my $ua = LWP::UserAgent.new() my $res = $ua.get('http://utf-8.jp/') say($res.content())こんなかんじで書けますね。お気楽です。 CPAN にアップしてあるので cpanm nana でパツイチはいります。

    invent
    invent 2012/05/21
    nana という tora 言語処理系をだしていた話
  • YAPC::Asia 雑感 - tokuhirom's blog

    LT は「5分間ならだれでもはなせるよね」っていう来敷居のひくい場所ですプレゼンは「なにをつたえたいのか」を明確にすることが一番大事です。たごもさんや kazeburo さんもかいていたけども「なぜそうしたのか」が明確なプレゼンはおもしろいです中規模な方がすぐやくだつ人がおおい(DeNA の規模の事例はほとんどのサイトにはあてはまらない) 大規模だとそういうのもあるのか、へー。 みたいなのはあるし話としてはおもしろいんだけど。「伝えたいことがある」ならプレゼンした方がいいLT の自己紹介は所属と名前をいうぐらいで十分ですLT とかやるときは、友達とか同僚とかに一度みせてからああいう大舞台で発表すれば失敗がすくないです初心者のひとは、これでもかというぐらい練習してからやったほうがいいです。 スライドなしでもいいたいことを全部いいきれる、ぐらいまでどんなトラブルがあるかわからないしand m

    invent
    invent 2011/10/16