tokuhirom's 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 が GA となった。これが我々の生活にどのような変化をもたらすのかについて考える。 従来の gRPC の課題 gRPC は google が公開している RPC 方式であり、java, golang などの言語で利用可能になっている。 gRPC は protocol buffers over HTTP/2 を基本としているため、通信が multiplexing されるし、schema 定義がきっちりされるのでクライアント側とのコミュニケーションがしやすい。 一方、protocol buffers はbinary であるためにbinaryの取扱が苦手な Browser JavaScript からのアクセスが難しいという問題があった。 grpc-gateway grpc-gateway という実装があって、これを利用すれば Browser JavaScript からのアクセス
目的 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/graalvm-1.0.0-rc1/Contents/Home/bin/native-ima
本文書について 本文書では Perl における Data::UUID での UUID 生成について議論する。 特に、Linux 環境に於ける Data::UUID->new->create_str の挙動について考察する。 Data::UUID について Data::UUID は Alexander Golomshtok 氏が開発したモジュールで、メンテナンスされなくなった結果として、現在は rjbs 氏がパッチの適用などの消極的なメンテナンスを実施している。 このモジュールは以下の文言からドキュメントが開始されている。 This module provides a framework for generating v3 UUIDs しかし、期待に反して、実際にはほとんどのユーザーは v1 UUID を生成している。 Data::UUID->new->create_str を利用するのが一
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 これは不便なので pr を出した。 https://github.com/kazeburo/DBIx-Sunny/pull/10
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 val params = jsonObject( "withTit
android で kotlin が話題なので、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/kotlinc Hello.kt -o hello [tokuhirom@dev2 kot
Furl は、XS モジュールへの依存を排除するために IO::Socket::SSL のロードを実行時に行っております。 結果として SSL を利用したアクセスのうち、初回のアクセス時は若干の遅延が生じます。 use IO::Socket::SSL には 0.05sec〜0.1sec 程度かかります。 通常は問題がありませんが、timeout を0.1secなどに設定していると、モジュールのロードだけで timeout sec を消費してしまう可能性があります。 HTTPS で通信する場合には use IO::Socket::SSL しておくことを推奨します。 なお、この動作は仕様です。
現時点では karabiner が sierra だと使えない。 karabiner elements 使えば、キーのスワップはできるが、cmd 単体押した場合に英数にする、みたいなことは karabiner elements ではできない。 karabiner elements + cmdえいかなでできるかなと思いきや、karabiner elements と cmd えいかなは食合せが悪いっぽい。 僕はギョームでは realforce を使っているので、key の swap も必須なのであった。。 というわけで困っていて、ctrl+shift+; と ctrl+shift+j で切り替えていたのだが、karabiner elements の fork 版を使えばお望みの機能は使えるということをバーの常連の人に聞いたので、利用するようしたら、sierra 以前と同等の入力環境を得ることが
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;
基本的にメンバーは良いコードを書くという前提で暮らしています。 良いと思います。テストがあるともっと良いと思います。 変更が軽微で、まあテストなくてもいいけど、あったほうがより良いよねえ、という時に使う 動いてるんならいいと思います 処理が複雑なので、実際に動かしてみないとうまく動くかどうかコードをパッと見ただけだったらよくわからないけど、動いてるんならちゃんと動いてるんだろうな、という気がするときに使います。 lgtm シフトキーをオスのもめんどくさいなって時には小文字で書きます。 コメントが無いとあとでなんだかわからなくなっちゃうかも? ちょっと複雑な処理なのにコメントないときとか wiki へのリンクを貼ってくだされ~ 仕様がちょっと複雑だったり、後から経緯おえないと死ぬな、という時に言います 日本語でOK 英語でコメントついてるけど、コメントの内容が端折り過ぎで説明不足なときにいい
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
https://github.com/kazuho/jailing/ kazuhoさんがやってくれました。 ずいぶん前からlinuxでchroot jailを作るのに簡単な方法ないかなーと思ってました。個人的にはsystemd-spawnというのを使ってたのですが、幾らか気に入らない所があったり構築に時間がかかったり、ディスク容量を消費していました。簡単に使えて、ディスク容量を消費しないやつがほしいなーっておもってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、github にある docker とかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から本格的に書き始めてついさっき出来上がりました。速いw 名前はjailing とても小さく、実装コードだと100数十ステップ程です。しかもpe
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 このような状
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く