失敗は一時の恥

パッケージソフト開発をしているプログラマが気の赴くままに何かを投稿するブログ.

2018-01-01から1年間の記事一覧

Kotlin/Native を試してみる

概要 Kotlin/Native という,Kotlin のコードをネイティブのバイナリにコンパイルするツールがリリースされたというニュースを目にし,気になったのでちょっとだけ試してみました. Kotlin で書いたネイティブな Hello world! を実行できるようにしてみます…

Awaitility で非同期処理のテストをいい感じに書く

概要 Awaitility という,Java で非同期な処理に対するテストを書く際の便利ライブラリがあったのでその紹介です. マルチスレッドで諸々が背後で動いているときに,テストが期待する状態になるのを待つコードをいい感じに実装できるというもので,Usage の…

アンチウイルスソフトと同居した PostgreSQL の奇行

概要 仕事で PostgreSQL を使っているのですが,奇妙な動作をすることが稀にあります. 奇妙な動作といっても,PostgreSQL 自体の不具合というではなく,アンチウイルスソフトとの競合で発生している事象だと思われる類のものです. 稀に発生すると,問題の…

計算の概念

計算の概念 過去に作成した,数学において「計算」というものをどう定式化するか?といった紹介をする資料を SlideShare にアップロードしたので,ここにもリンクを貼ってみます. 計算の概念 - SlideShare (Mac の LaTeX で作成した PDF なのですが,オンラ…

マルチスレッド下で SimpleDateFormat をおかしくしてみる

概要 Java の SimpleDateFormat クラスはスレッドセーフでないことで知られていると思いますが,実際にマルチスレッド下で使ったらどうなるのかを試してみました. 実際に試すと,エラーになることもなくメチャクチャな値が得られるという悲惨な結果となりま…

Ruby で ZooKeeper の四文字コマンドを呼ぶ

Ruby で ZooKeeper の四文字コマンドを呼ぶ About Ruby で ZooKeeper の四文字コマンドを呼ぶ方法の備忘録. 単に TCP ソケットで入出力するだけです. やり方 TCPSocket を開いて,四文字を送信して出力を読み出します. require 'socket' socket = TCPSock…

Automator でスキャン画像を PDF にする

Automator でスキャン画像を PDF にする 概要 macOS の Automator を使って, スキャンした複数ページの文書を PDF にして連結する方法の備忘録です. Automator のワークフローを作る Automator のワークフローを作ります. フローの内容は,次のようになり…

Docker コンテナからホストにアクセスする

Docker コンテナからホストにアクセスする 概要 Docker コンテナからホスト (macOS) にアクセスする方法を探していたら, host.docker.internal という名前を使えばよいということが公式リファレンスに書いてありました. 試してみるといとも簡単にアクセス…

Java で空の JSON を作る

Java で空の JSON を作る 概要 Java でテストのために空の JSON {} を作ろうとしてちょっと悩んだのでその備忘録. 空の JSON が必要なら,単純に "{}" と書けばいいじゃないかとも思いますが,何かしらのオブジェクトを ObjectMapper を介してシリアライズ…

ZooKeeper の管理コマンド

ZooKeeper の管理コマンド 概要 Apache ZooKeeper には,稼働状況などを取得するための管理コマンドがあります. この管理コマンドでどのようなことができるのか試してみたいと思います. 管理コマンド 管理コマンドの内容は,ZooKeeper Administrator's Gui…

ZooKeeper の動的再構成

ZooKeeper 3.5 の動的再構成 概要 Apache ZooKeeper 3.5 では,Dynamic Reconfiguration という機能が追加されています. この機能を使うと,いままでは適用に再起動を要していた設定変更を,再起動なしで即時反映させることができるようになります. この記…

Docker swarm チュートリアル

Docker swarm チュートリアル この記事について Docker swarm を公式ドキュメントのチュートリアルに沿って試してみた内容をまとめています. 使うもの Set up に書いてある通り, Docker が動く互いにネットワーク接続できるマシン (仮想でもよい) が 3 台…

Hello Selenium!

Hello Selenium! この記事について Web ブラウザを操作するテスト自動化ツールである Selenium を,初めて触ってみて試した内容を紹介します. プログラミング言語は Ruby を使っています. 最終的に下の gif アニメのように「検索エンジンに特定をキーワー…

MySQL 備忘録

最近,DB による getGeneratedKeys の挙動の差 を調べるために, ほぼ初めて (?) MySQL を使用しました. これはその際に使ったコマンド等の備忘録です. MySQL の起動とクライアントからの接続 Docker を使って MySQL を起動します. Docker Hub にある公式…

DB による getGeneratedKeys の挙動の差

DB による getGeneratedKeys の挙動の差 Java で DB に書き込みを行ったあと,Statement#getGeneratedKeys() によって返される結果が DB 毎に違うのか調べてみました 調べた結果,実際に DB 毎に違いがあるようでした. 調査概要 DB は PostgreSQL と MySQL …

codewars で遊んでみた codewars で遊んでみた codewars きっかけ Qiita に投稿されていた紹介記事 を読んで面白そうだと思った. サービスの内容 プログラミングの問題を解いてランクアップを目指していく. 問題は「型 (Kata)」などと呼ばれているようで,…

ZooKeeper に触ってみよう

ZooKeeper に触ってみよう ZooKeeper という,分散アプリケーション協調サービスがあります. どんなことができるのか,簡単に ZooKeeper に触れてみましょう. この記事では ZooKeeper についての簡単な紹介と, 実際に ZooKeeper を起動して,簡単なコマン…