なんかいろいろ似たようなのはあるんだけど、ncdu がわりと良さそうだった。 https://dev.yorhel.nl/ncdu brew install ncdu で入る。子ディレクトリのファイル容量多いやつを探してくれる。
なんかいろいろ似たようなのはあるんだけど、ncdu がわりと良さそうだった。 https://dev.yorhel.nl/ncdu brew install ncdu で入る。子ディレクトリのファイル容量多いやつを探してくれる。
最近またLinux用の日本語IMEを作っている 本件は mozc の ut がどうこうとかは関係なくて、ふと linux desktop を使おうと昨年末に思いまして、昨年末からちまちまやってます https://github.com/tokuhirom/akaza かな漢字変換って作るの難しいのかなぁ、と思ったので作ってみている。これはまさに Just for Fun でやっている。 わりと普通に自分で常用してる分には困らないかな、というところまできている。 以下は、思ってることの垂れ流しという感じで、まとまってないですが。 「日本語入力を支える技術」という本が 2018年に出ていて、この本の内容を読めば、だいたいエンジン部分は実装できる。Amazon のレビューではこの本よんでも実装できないって書いてあるけど、変換エンジン自体は実装できます。 UI が辛い。けど。 エンジンは、ビタビア
Sep 27 23:41:00 dev3 docker[56810]: 2021-09-27 23:41:00.043 WARN 1 --- [nio-8080-exec-1] o.a.c.util.SessionIdGeneratorBase : Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [140,998] milliseconds. というようなエラーが起きるときがある(VPS などで /dev/random の entropy が十分ではない場合)。 https://newbedev.com/what-exactly-does-djava-security-egd-file-dev-urandom-do-when-containerizing-a-spring-b
MEMBER; added in 8.0.17 (reserved); became nonreserved in 8.0.19
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 からのアクセス
MySQL の X Protocol/X DevAPI 周りについて調査したのをまとめたののメモ MySQL 8 以後では X Protocol がサポートされている(5.7 系では部分的なサポートであり、X Protocol を本格的に利用する場合には 8 を利用することが推奨されているようだ) 通信は従来の MySQL Protocol と異なり、Protocol Buffers Based となっていて、各言語のドライバの実装が簡単になっている(protocol buffers がその言語でサポートされていれば、だが) これにより今後 libmysqlclient に依存せずに各言語のドライバが実装されるようになって運用管理が簡単になるんじゃないかと私は考えています。 実際に、mysql-connector-nodejsは X Protocol のみをサポートしていて、libmysq
[9:43 AM] tokuhirom plack のアプリだと Plack::Middleware::ServerStatus::Lite とかで監視したりしますけど、go だとそういうのってどうやるのが一般的なんでしょうか? [9:47 AM] macopy https://github.com/fukata/golang-stats-api-handler github.com GitHub - fukata/golang-stats-api-handler: Golang cpu, memory, gc, etc information api handler. golang-stats-api-handler - Golang cpu, memory, gc, etc information api handler. [9:47 AM] https://golang.org/pk
memcached の conn_yields が上がっていた場合、conn_yield がでなくなるまで起動時オプションの -R を上げろって主張している人がいます。 https://blog.engineyard.com/2015/fine-tuning-memcached http://cachelot.io/blog/2015/04/20/Speed-up-your-application-by-fine-tuning-Memcached.html 実際問題、結局のところどういう主張なのかわかりづらくて、調べた。 コードを検索すると、1つのコネクションでコマンドを発行しまくっている場合にここに到達するようだ。 https://github.com/memcached/memcached/blob/d9dfbe0e2613b9c20cb3c4fdd3c55d1bf3a8c8bd/me
Ansible Tower の OSS Alternative であるところの Ansible Semaphore を試した。 Ansible を利用してデプロイするのの web ui である。 installation guide 通りにやれば利用可能。 docker run -d --name=mysql -p 127.0.0.1:3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql などとして mysqld を立ち上げておく(もちろん、別に docker じゃなくてもいい)。 https://github.com/ansible-semaphore/semaphore/releases から最新版のバイナリを取得(golang なので single binary)。 semaphore -setup として、起動。セットアップが始まる
pidstat -h -u | sort -nr -k 5,5 | head すれば良い。 sudo yum install -y sysstat してインストール。 簡単に誰が system 消費してるかわかる [tokuhirom@centos-1gb-sgp1-01 ~]$ pidstat -h -u | sort -nr -k 5,5 | head 1462874412 0 27 0.00 0.22 0.00 0.22 0 kswapd0 1462874412 0 19281 0.16 0.09 0.00 0.25 0 cadvisor 1462874412 0 342 0.01 0.02 0.00 0.03 0 systemd-journal 1462874412 0 377 0.00 0.01 0.00 0.01 0 auditd 1462874412 0 262 0.00 0
java command は clone(2) するので、普通に strace してもダメ。 strace -f java ... のように -f オプションをつければ、clone した先も追ってくれるので、トレース可能となる。 ためしに以下のような何もしないプログラムを用意してみる。 public class Hello { public static void main(String[] args) { } } javac Hello.java とした後、strace -o java.log -f java Hello とすると、java.log というファイルが作成され、どのようなシステムコールを JVM が発行しているかがわかる。 ちなみに /usr/bin/perl -e0 した場合と比べると以下のようになり、Java で開発を行うと何もしないプログラムでもたくさんの syste
https://github.com/kazuho/jailing/ kazuhoさんがやってくれました。 ずいぶん前からlinuxでchroot jailを作るのに簡単な方法ないかなーと思ってました。個人的にはsystemd-spawnというのを使ってたのですが、幾らか気に入らない所があったり構築に時間がかかったり、ディスク容量を消費していました。簡単に使えて、ディスク容量を消費しないやつがほしいなーっておもってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、github にある docker とかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から本格的に書き始めてついさっき出来上がりました。速いw 名前はjailing とても小さく、実装コードだと100数十ステップ程です。しかもpe
Last week, I shipped Amon2 and HTTP::Session2 includes security fix. [Must] Update "secret" if you are using HTTP::Session2::ClientStore Amon2::Flavor::* generates the 'secret'. If your are using generated value, You MUST update it. [Recommended] Update each libraries. I recommend to update Amon2, HTTP::Session, HTTP::Session2 to the latest version. [Recommended] Switch HTTP::Session2::ClientStore
Caliper や JMH などを試してみたが、案外あれは使うのが難しかったり、インストールが難しかったり、結果がよみづらかったりする。 Perl 5 に標準添付されているベンチマークフレームワークであるところの Benchmark.pm と同じぐらい気軽な感じで使えるベンチマークフレームワークが Java 8 用にあれば便利なのではないか、と思ったので作ってみた。 https://github.com/tokuhirom/nanobench 先日つくった HTML escape に関するマイクロベンチマークを nanobench を使って書きなおしてみる。 package me.geso.microbenchmarks; import me.geso.nanobench.Benchmark; import org.apache.commons.lang3.StringEscapeUtil
Devel::NYTProf は Perl5 の世界でもっとも人気があるプロファイラである。表示が美麗であるし、ステップごとの処理速度が簡単にわかるのでとても便利だ。 そんな Devel::NYTProf であるが、Starlet/Starman のようなプリフォーク式のサーバーでうごくウェブアプリケーションとくみあわせる場合の方法論として、わかりやすい資料がみあたらなかったのでここに記すものである。 環境変数 NYTPROF を設定する Devel::NYTProf は環境変数で挙動を変えられる。 plack とくみあわせる場合には、以下のようにするとよい。 NYTPROF=sigexit=int:savesrc=0:start=no sigexit=int 通常、Devel::NYTProf は END { } ブロックでデータのファイナライズ処理をおこなうのだが、SIGNAL によっ
去年ぐらいから、Hacker News 100 っていう feed をよんでます(たしか miyagawa さんからおしえてもらったような気がする)。 [https://news.ycombinator.com/](Hacker News) っていうサイトがあって、これは技術情報がたれこまれるサイトとして、なかなかおもしろいんけど、いわば VIP のスレ一覧をみてるようなもんで、どれが面白いんだかさがすのも結構大変というかんじ。 A Cure for Hacker News Overload というこのページにのっているフィードをよむと、だいぶいい。 ここのフィードは、勢いのあるスレをいいかんじに抽出してくれるので、それなりに面白い情報が簡単にひろえるようになってます。 僕はここにのってる newsyc100 というフィードを RSS リーダーで購読しています。タイトルをながめて面白そうな
よく miyagawa さんとかが comaint が云々といっていますが、意外としられていないのが comaint の実態です。 まずは PAUSE の処理フローについて考えてみましょう。 まず minil release とかして tar ball を PAUSE のサーバーにアップロードします。この時、アップロード先は authors/id/M/MO/MOZNION/HTML-Shakan-0.18.tar.gz とかになります。 そうすると PAUSE のインデクサがブンブンと動きだして、META.json の provides セクションまたは .pm を解析して、package とバージョンの情報が抽出され、データベースに登録されます。 この際、新規ネームスペースや、自分がもってるネームスペースならいいのですが、他の人がもってる namespace の場合には UNAUTHOR
brew install valgrind qcachegrindとしてインストール。 valgrind --tool=callgrind ./kiji -e '(-> $n { say($n) })(4)'でプロファイルとって、 qcachegrind callgrind.out.92249とすると こういう風にみれてよい。
http://shanon-tech.blogspot.jp/2013/05/perl.html Perl モジュールの作り方、2013年においては Authoring tool をつかって作るのがよいです。具体的には Minilla でつくるのがオススメであります。 perlbrew なり plenv なりで perl をいれたあとは、 % cpanm Minillaとして Minilla をインストールします。 % minil new Fooとすると、Foo.pm のスケルトンができあがります。作者の名前などは ~/.gitconfig などから自動的にさがしてきますので、設定不要です。 できあがったディレクトリは以下のような形になっています。 Foo ├── Build.PL ├── Changes ├── cpanfile ├── lib │ └── Foo.pm ├── LI
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く