タグ

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

  • ivy が最近は良いらしい - tokuhirom's blog

    Blog Search ivy が最近は良いらしい https://twitter.com/typester/status/1089932791150592001 最近はhelmやめてivyつかってますよ! とのこと。僕も変えてみた。 Created: 2019-01-29T08:02:01 Updated: 2019-01-29T08:02:01

  • gRPC-WEB がもたらす我々の生活への変化 - tokuhirom's blog

    gRPC-WEB がもたらす我々の生活への変化 gRPC-WEB が GA となった。これが我々の生活にどのような変化をもたらすのかについて考える。 従来の gRPC の課題 gRPCgoogle が公開している RPC 方式であり、java, golang などの言語で利用可能になっている。 gRPC は protocol buffers over HTTP/2 を基としているため、通信が multiplexing されるし、schema 定義がきっちりされるのでクライアント側とのコミュニケーションがしやすい。 一方、protocol buffers はbinary であるためにbinaryの取扱が苦手な Browser JavaScript からのアクセスが難しいという問題があった。 grpc-gateway grpc-gateway という実装があって、これを利用すれば Br

  • tokuhirom's blog

    GraalVM の native-image で HelloWorld してみる 目的 https://medium.com/graalvm/instant-netty-startup-using-graalvm-native-image-generation-ed6f14ff7692 によると、graalvm を利用すると Java Application の起動が圧倒的に高速になるようだ。実際にどの程度高速化されるのかを Hello World Application を手元で実行してみることにより体感する。 実験 $ javac Hello.java $ java Hello Hello $ time java Hello Hello java Hello 0.08s user 0.02s system 102% cpu 0.097 total $ ~/Downloads/graal

  • tokuhirom's blog

    Host の canonical name を取得するワンライナー python -c "import socket; import sys; print(socket.getaddrinfo(sys.argv[1], 0, socket.AF_INET, 0, socket.IPPROTO_TCP, socket.AI_CANONNAME)[0][3])" YOUR_HOST_NAME

  • tokuhirom's blog

    Perl Web application に於ける Data::UUID の利用について 文書について 文書では Perl における Data::UUID での UUID 生成について議論する。 特に、Linux 環境に於ける Data::UUID->new->create_str の挙動について考察する。 Data::UUID について Data::UUIDAlexander Golomshtok 氏が開発したモジュールで、メンテナンスされなくなった結果として、現在は rjbs 氏がパッチの適用などの消極的なメンテナンスを実施している。 このモジュールは以下の文言からドキュメントが開始されている。 This module provides a framework for generating v3 UUIDs しかし、期待に反して、実際にはほとんどのユーザーは v1 UUID

    Sixeight
    Sixeight 2017/11/27
  • tokuhirom's blog

    DBIx::Sunny と DBIx::Class の組み合わせでコメント自動挿入機能が微妙なことになっていたのを直した https://github.com/kazeburo/DBIx-Sunny/issues/8 DBIx::Sunny は自動的にクエリ呼び出し元の位置をコメントに入れる機能がある。 しかし、DBIx::Class は Try::Tiny, Context::Preserve の内側でクエリ生成を行うため、Try::Tiny が呼び出し元として記録されてしまう。 つまり、以下のようなクエリが発行されてしまう。 SELECT /* /Users/tokuhirom/.plenv/versions/5.26.0-RC1/lib/perl5/site_perl/5.26.0/Try/Tiny.pm line 99 */ me.id, me.e FROM foo me これは不

  • tokuhirom's blog

    [python] IDEA で `if __name__=='__main__':` って簡単に入力したい main って入力して補完すれば、java でいう psvm みたいなことができるとのこと。 "main"+Enterでいけると思いますよ。 — かしゅーなっつ (@kashew_nuts) August 22, 2017

    Sixeight
    Sixeight 2017/08/24
  • tokuhirom's blog

    osx の notification を kotlin で呼びたい osascript で呼ぶのがいいかな。apple script の escape 方法はよくわからないので JavaScript で書くことにして、 JSON で serialize して渡すのが良さそう。 fun sendNotification(message: String, title: String=message, subtitle: String=message, soundName: String = "Frog") { // https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/DisplayNotifications.html

  • tokuhirom's blog

    kotlin で native code を生成 kotlin native を楽しみたい androidkotlin が話題なので、kotlin native を試してみました。 kotlin native を利用すると、kotlin のコードをネイティブコードにコンパイルできます。 https://github.com/JetBrains/kotlin-native git clone [email protected]:JetBrains/kotlin-native.git しておいて ./gradlew dependencies:update ./gradlew dist す。Hello.kt を作成する。 fun main(args : Array<String>) { println("Hello, world") } 以下のように、コンパイルする。 ./dist/bin

    Sixeight
    Sixeight 2017/05/19
  • tokuhirom's blog

    Furl の timeout と SSL Furl は、XS モジュールへの依存を排除するために IO::Socket::SSL のロードを実行時に行っております。 結果として SSL を利用したアクセスのうち、初回のアクセス時は若干の遅延が生じます。 use IO::Socket::SSL には 0.05sec〜0.1sec 程度かかります。 通常は問題がありませんが、timeout を0.1secなどに設定していると、モジュールのロードだけで timeout sec を消費してしまう可能性があります。 HTTPS で通信する場合には use IO::Socket::SSL しておくことを推奨します。 なお、この動作は仕様です。

  • tokuhirom's blog

    Sierra で key のスワップしながら cmd 単体だと英数にしたりする方法 現時点では karabiner が sierra だと使えない。 karabiner elements 使えば、キーのスワップはできるが、cmd 単体押した場合に英数にする、みたいなことは karabiner elements ではできない。 karabiner elements + cmdえいかなでできるかなと思いきや、karabiner elements と cmd えいかなは合せが悪いっぽい。 僕はギョームでは realforce を使っているので、key の swap も必須なのであった。。 というわけで困っていて、ctrl+shift+; と ctrl+shift+j で切り替えていたのだが、karabiner elements の fork 版を使えばお望みの機能は使えるということをバーの常連

    Sixeight
    Sixeight 2017/04/27
  • pidstat で見れるような数字を perl で取ってみる - tokuhirom's blog

    pid ファイルを読んで procfs からバーンと取って集計とるようなやつを書いてみた。 1secごとに60回データを取って、平均を取るみたいなのを子プロセス含めてバーンとヤる感じをやってみた。 書きながらオーバーヘッドがどうかな〜とか考え始めちゃって、結局こういうの、go で書いたほうが良いなということを感じる。 use strict; use warnings; use v5.10.0; use Getopt::Long; use Pod::Usage; use warnings FATAL => 'recursion'; { package ProcStat::Stat; use File::Basename qw/basename/; use List::Util qw/sum0/; sub new { my $class = shift; bless { }, $class;

    Sixeight
    Sixeight 2017/03/13
  • MySQLでタイムゾーンがどう設定されているか確認したい - tokuhirom's blog

    mysql> select @@system_time_zone, @@session.time_zone; +--------------------+---------------------+ | @@system_time_zone | @@session.time_zone | +--------------------+---------------------+ | UTC | SYSTEM | +--------------------+---------------------+ 1 row in set (0.00 sec) で。

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

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

    Sixeight
    Sixeight 2016/08/05
  • «を入力する方法» - tokuhirom's blog

    Sixeight
    Sixeight 2015/10/24
  • Ubuntu の build-essentials 的なことを yum でやりたいときの方法 - tokuhirom's blog

    Ubuntu だと、開発関連のツールキットを一気にするには以下のようにすればよろしい。 apt-get install build-essentials これとおなじことを CentOS でやるには、以下のようにすればよいようです。 # yum groupinstall "Development Tools" # yum install kernel-devel kernel-headers 参考文献: Installing build-essentials in CentOS (make, gcc, gdb)

  • Java の AST を解析できる javaparser がアツい!!! - tokuhirom's blog

    https://github.com/javaparser/javaparser javaparser は Java をパースして AST にしてくれるライブラリである。 この手のライブラリは数多あるのだが、ほとんどのものが Java 1.5 ぐらいでメンテナンスが止まっている。 実際このライブラリもメンテナンスが止まっていたのだが、Java 1.8 対応版とし開発が再開されたものだ。 このライブラリはパーサーライブラリであるから、文字列をパースして AST を構築してくれるというものになっている。 実際どのような AST が構築されるのかが気になるところなので、構築された AST をダンプできるツールを groovy で書いた。 #!/usr/bin/env groovy @Grab('com.github.javaparser:javaparser-core:2.1.0') impor

    Sixeight
    Sixeight 2015/05/21
    Java の AST を解析できる javaparser がアツい!!!
  • Linux 上で5秒で chroot jail を使えるコマンド「jailing」が凄い! - tokuhirom's blog

    https://github.com/kazuho/jailing/ kazuhoさんがやってくれました。 ずいぶん前からlinuxでchroot jailを作るのに簡単な方法ないかなーと思ってました。個人的にはsystemd-spawnというのを使ってたのですが、幾らか気に入らない所があったり構築に時間がかかったり、ディスク容量を消費していました。簡単に使えて、ディスク容量を消費しないやつがほしいなーっておもってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、github にある docker とかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から格的に書き始めてついさっき出来上がりました。速いw 名前はjailing とても小さく、実装コードだと100数十ステップ程です。しかもpe

    Sixeight
    Sixeight 2015/05/14
  • jetty で vhost でいい感じにアプリケーション動かしていく - tokuhirom's blog

    jetty で vhost 使う方法みたいな話が、意外と情報ない。 例えば、web 画面と admin 画面があるようなサイトで、実際には vhost を利用して運用したいという場合、一般的な ide や servlet container の想定では PATH_INFO でアプリケーションを切り替えて頑張る、みたいなのが多いのだが、こういったアプローチはあまり現代的ではないと思う。 named vhost でやりたいよ!! 最近、以下のような構造のでアプリケーションを構築している。 - pom.xml + common ← jar - pom.xml + admin ← war - pom.xml - src/main/webapp/WEB-INF/web.xml + web ← war - pom.xml - src/main/webapp/WEB-INF/web.xml このような状

    Sixeight
    Sixeight 2015/04/11
    jetty で vhost でいい感じにアプリケーション動かしていく
  • Xslate の mark_raw は template に書かない - tokuhirom's blog

    Xslate の mark_rawtemplate 側では使わずに、Controller ないし Model で使って欲しい。 ある文字列が、HTML として処理すべきものかどうかは、サーバー側で判断すべき事案であって、マークアップエンジニアが判断すべき事項ではないから、というのが大きい。 「タグがうまく入力できないんですけど」というディレクターからの起票によって、それをマークアップエンジニアがなんとなく TT の | html はずして XSS 大発生! というような事態は、昭和の時代には多発していたという。 そのような惨事を我々は繰り返すべきではない。 歴史に学ばなくてはならない。

    Sixeight
    Sixeight 2015/03/21
    Xslate の mark_raw は template に書かない