スキップしてメイン コンテンツに移動

投稿

Java 3Dの開発環境の構築 (2020年3月版)

Java 3D 大昔に作ったJava3Dのアプリケーションを復活させようと悪戦苦闘しているのですが、 最近(といっても2012年)にJava3DはOpenGLベースに移行して、細々と開発が続いていることがわかりました。 https://gouessej.wordpress.com/2012/08/01/java-3d-est-de-retour-java-3d-is-back/ https://jogamp.org/wiki/index.php/Java3D_FAQ (参考) いまだに残っているoracleのページのJava 3Dのバージョンは1.5.1です。 筆者はWindows 10環境ではインストール試していません。 https://www.oracle.com/technetwork/java/javase/tech/index-jsp-138252.html Java 3Dの開発環境の構築 https://jogamp.org/deployment/java3d/  のダウンロードページからjarなどを落としてもよかったのですが、mavenでプロジェクト管理しているので、多少古いバージョンの1.6.0.1をpom.xmlに追記して対応しました。 https://mvnrepository.com/artifact/com.massisframework.j3d/java3d-core https://mvnrepository.com/artifact/com.massisframework.j3d/vecmath <!-- https://mvnrepository.com/artifact/com.massisframework.j3d/vecmath --> <dependency> <groupid>com.massisframework.j3d</groupid> <artifactid>vecmath</artifactid> <version>1.6.0.1</version> </dependency> <!-- https://mvnrepository.c...

MySQLでトランザクションを長時間掴んだままのプロセスを強制終了させる方法

下記のようなコマンドで実行できます。{}で囲った部分は実際の運用に応じて値をあてこんでください。 mysql -u{user} -p{password} -e "SELECT CONCAT('kill ', pl.id, ';') FROM information_schema.processlist AS pl INNER JOIN information_schema.innodb_trx AS trx ON trx.trx_mysql_thread_id = pl.id WHERE pl.time > {time_to_kill};" |sed -e '1,1d' | mysql -u{user} -p{pass} 上記のコマンドの簡単な解説です。 information_schemaのprocesslistテーブルとトランザクションを管理しているinnodb_trxテーブルをjoinして、{time_to_kill}秒以上実行されているプロセスを特定し、特定したプロセスをkillするsqlコマンドを生成 mysql -u{user} -p{password} -e "SELECT CONCAT('kill ', pl.id, ';') FROM information_schema.processlist AS pl INNER JOIN information_schema.innodb_trx AS trx ON trx.trx_mysql_thread_id = pl.id WHERE pl.time > {time_to_kill};" 生成された行の1行目はヘッダーなので削除(sedコマンドを使って、1行目から1行目までを削除)。 sed -e '1,1d' 最後の部分で、生成されたsqlをmysqlに流し込んで実行させる。

Symfonyフレームワークで設定されているroutingの一覧を取得する方法

Symfonyフレームワークで設定されているroutingの一覧を取得するには、下記のコマンドを実行すればOKです。 php bin/console debug:router 下記の情報が取得できます。 Name: routing名。 Method: 受け入れ可能なHTTPのメソッド。GET/POSTやANYなどが表示される。 Scheme: https、http、ANY。 Host: 普通はANY Path: URLパス。

PHPでCurlを使ってファイルをダウンロード

PHPでcurlを使ってネットワーク上からファイルをダウンロードするサンプルコードです。 用途に応じてカスタマイズして使ってみてください。 Curlの実行クラス(メモリ上に展開とファイルに直接ダウンロードするメソッド) <?php namespace Util\Net; class Curl { // 引数の$optionsで設定をカスタマイズ可能 public static function request($url, $options): CurlResponse { return self::execCrul($url, $options + [ CURLOPT_HEADER => false, CURLOPT_RETURNTRANSFER => true, // 例: 5回までリダイレクト許可 CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 5, // 例: タイムアウト3秒 CURLOPT_TIMEOUT => 3, CURLOPT_CONNECTTIMEOUT=> 3, // 例: sslのエラーを無視 (安全性下がるのでよくない) CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false, ]); } // curlの実行結果を直接ファイルにダウンロードする public static function downloadAsFile($url, $storePath, $options): CurlResponse { $fp = fopen($storePath, 'w+'); ...

Amazon Product Advertising API 5.0のJavaのサンプルコード

Amazon Product Advertising APIがjsonベースの5.0に移行することが発表されました。 Amazonが提供しているSDKを利用していない場合は、APIのリクエストのインターフェースがXMLからJSONに変わるので、コードの書き換えは結構面倒です。 Amazonの公式ページ でもSDKを使用しないバージョンのサンプルコードが公開されていますが、ApacheのHttpComponentsのライブラリとjsonのライブラリが依存関係に含まれていたので、とにかくAPIを動かしてみたい人向けに 標準のJDKだけで動作するサンプルコードを書きました。 (ただし実運用ではJacksonやGSONなど、何らかのjsonライブラリは必須です。) package com.dukesoftware.amazon; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; // Java8で動くように、あえてvarなどのJava8では使えないJava機能は未使用 // スクラッチパッドを使うと便利 // https://webservices.amazon.co.jp/paapi5/scratchpad/ public class AmazonProductAdvertisingApiV5 { public static void main(String[] args) { // request生成部分はJacksonやGSONなどのライブラリを使用するのが現実的 String jsonRequest = "{" ...

Oracle (sun時代含む) 提供の古いJavaライブラリのありか

古いJava 3Dのプログラムを動かすために、Java 3Dのインストーラーを探していたところ、OracleのArchiveページからダウンロードできることを発見。 https://www.oracle.com/java/technologies/java-archive-downloads-java-client-downloads.html 2019/09/16現在の情報です。

Javascriptで動作するHTMLエディター

Web画面上でHTMLを編集するために、Javascript実装のHTMLエディタが必要になることがあると思います(例えばWordpressやBloggerのエディタのようなものです)。 様々なエディタがありますが、 Code Mirror というエディタは高機能で便利です。下記のような機能があります。 100以上の言語をサポート 強力なxmlタグ補完機能 コード折り畳み機能 Vim、Emacsなどと同じキーバインディングのサポート 検索・置換機能 括弧、タグのマッチング機能 たくさんのアドオン