サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
世界禁煙デー
blog.physalis.net
iOS13.1のショートカットアプリはNFCタグをトリガーにしてアクションを実行することができるようになりました。SUICAみたいにiPhoneでタッチするだけで簡単にアクションを実行できます。 それらの機種はAppleの記事 (Adding Support for Background Tag Reading) によればiPhone Xs以降とのこと。 さて、今回この機能を使ってぬか床を混ぜたことを簡単に記録できるようにしました。macOSのカレンダー上にぬか床カレンダーを作ります。 ぬか床って毎日混ぜるのがいいんだけど、面倒だし2日に一度、3日に一度、うっかりすると1週間やってませんでしたってことがちょくちょくあります。前回いつ混ぜたのか気になるんですよね。これまでは手書きのカレンダーを作って管理していました。 見事にさぼってますね。 同じことをiOS13のショートカットアプリとNFC
iPhone の実機でテスト環境に接続する2014年1月16日API サーバと通信するタイプの iPhone アプリ開発において、実機を使う必要があったので環境を構築しました。iPhone 実機上のアプリと Vagrant のゲスト OS 上で動作している API サーバを通信させます。 実現したいこと Vagrant のゲスト OS で動いている API サーバに接続する 接続先を簡単に切り替える 配布用と同じ設定でアプリをビルドする アプリや API サーバの環境に応じた設定変更はなるべく避けて、本番環境と同じバイナリをテストできるようにする。アプリと API サーバが HTTPS 接続しているので、別のホスト名を使うとそれ用の証明書を用意したり切り替えたりするのが面倒なのも理由のひとつ。 手順 DNS サーバで本番環境の替わりにテスト環境のホストを解決させることで、テスト環境に接続さ
Jetty の起動速度を改善する2013年4月13日Jetty の起動が遅い! Jetty は起動の速さが売りのひとつですが、構成によっては起動時に次のメッセージをログ出力してしばらく固まります。数秒から十数秒、ググったら 45 秒なんて例もありました。 No Transaction manager found - if your webapp requires one, please configure one このとき Jetty は Servlet 3.0 のアノテーションのついたクラスを探したり ServletContainerInitializer の処理をしていて、WEB-INF/lib 以下の jar ファイル数、クラス数が多ければそれだけ時間がかかります。 解決方法 次の設定で解決します。 web.xml の metadata-complete jetty の webInf
Vagrant + Chef で Java Web アプリケーション開発環境を作る2013年8月09日とあるプロジェクトのために Vagrant + Chef で Java Web アプリケーションの開発環境を作った。 実現すること git clone -> vagrant up -> gradle war により、ゲスト OS でアプリケーションが動く状態にします。 vagrant up 時に chef-solo によりサーバを構成する gradle war で Tomcat にデプロイする (以後同じ方法で再デプロイ) アプリケーション起動時に FlywayDB でマイグレーションする プロジェクトの構成 git リポジトリの構成は以下の通り。 app は Java の Web アプリケーションプロジェクト。server は Vagrantfile と chef のリポジトリ。 開発を
Maven から Gradle への移行2013年5月30日既存の Maven プロジェクトを Gradle に移行してみる。 対象のプロジェクトは shibainu。SpringMVC と spring-data、QueryDSL を使った Web アプリケーションのテンプレートプロジェクト。このような pom.xml を使っている。 Maven でやっているのは主に下記の処理。 ビルド (依存ライブラリの解決、コンパイル、war の作成) Maven プラグイン querydsl-maven-plugin (QueryDSL のメタデータエクスポート) flyway-maven-plugin (Flyway の DB マイグレーション) jetty-maven-plugin (Jetty の起動) これらを Gradle に移行する。 ビルド (依存ライブラリの解決、コンパイル、war
Handlebars.java を使う2013年5月04日Handlebars.java は Handlebars の Java 実装です。 ここでは Template Inheritance 機能とデフォルト HTML エスケープの動きを中心に見てゆきます。 セットアップ方法 Handlebars.java のページが詳しいです。Spring MVC の ViewResolver も提供されています。検証に使ったソースコードも参考になると思います。 Template Inheritance Handlebars.java では Template Inheritance 機能が使えます。親テンプレートで定義された複数のブロックを子テンプレートから上書くことができ、多くのテンプレートエンジンが単一のブロックのみの上書きをサポートしているのに対して、より柔軟なテンプレートを書くことができます。
Gradle を使って Scala REPL を開く2013年6月03日Gradle を使って依存ライブラリをクラスパスに設定した Scala REPL を開く。Gradle タスクで開くことはできる (後述) のだけれど補完が効かないので普通に scala コマンドを使って開く。 scala コマンドで開く (おすすめ) クラスパスを出力をするタスクを定義して、 task classpath << { println(sourceSets.main.runtimeClasspath.asPath) }
Gradle で JsTestDriver を使う2013年6月07日Gradle のタスクで JsTestDriver を実行する。 eriwen/gradle-js-plugin の issue を参考にして、ここでは JsTestDriver.jar を maven central repository からダウンロードして使うように変更してみた。 build.groovy configurations { jsTestDriver } dependencies { jsTestDriver 'com.google.jstestdriver:jstestdriver:1.3.5' } task jstd(type: Exec, description: 'runs JS tests through JsTestDriver') { def firefoxPath = '/Applic
Java テンプレートエンジンの比較2013年5月08日これまでにいくつかの Java 用のテンプレートエンジンを見てきました。今回はそれらを比較します。 対象 JSP (非 JSF) Velocity FreeMarker Handlebars.java Scalate (SSP) 評価軸 評価軸として優先度の高いものから順に以下を考えます。 デフォルト HTML エスケープ レイアウト機能 HTML 以外での利用 デフォルト HTML エスケープ デフォルトで HTML エスケープされない場合、<c:out> や ${escape(...)} など明示的に書くことになりますが、書き忘れてしまう危険性があるのと、なにより書き忘れていないことの確認が大変難しいのが問題です。 デフォルトで HTML エスケープされる場合は、逆にエスケープしない箇所を ${unescape(...)} などと
Gradle で Scala プロジェクトをビルドする2013年5月28日ふと思いたって Gradle で Scala プロジェクトをビルドしてみた。 こんな build.gradle を使う。 apply plugin: 'scala' ext { scalaVersion = '2.10' } repositories { mavenCentral() maven { url 'http://repo.typesafe.com/typesafe/releases/' } } dependencies { compile 'org.scala-lang:scala-library:2.10.1' compile "net.databinder:unfiltered-netty-server_$scalaVersion:0.6.8" } tasks.withType(ScalaCompil
FreeMarker でデフォルト HTML エスケープ2013年5月02日デフォルト HTML エスケープシリーズ。今回は FreeMarker。 デフォルトエスケープの設定 FreeMarker では <#escape> タグで囲った部分を自動でエスケープすることができます。こんな風にファイルの最初と最後にセットしてやればそのファイルではデフォルトでエスケープされます。 <#escape x as x?html> <!DOCTYPE html> <html> ... ${foo.bar} ... </html> </#escape> いちいち <#escape>; で囲むのは面倒ですので TemplateLoader でテンプレートをロードするときに自動でつけるようにします。SpringMVC と組み合わせる場合は以下のようになります。(完全なソースコードは[こちら][1]) Free
Velocity でデフォルト HTML エスケープ2013年5月01日前回 は JSP でのデフォルト HTML エスケープを検証しました。今回は Velocity を見てみます。 デフォルトエスケープの設定 Velocity では ReferenceInsertionEventHandler を使ってデフォルトでの HTML エスケープを実現できます。このクラスは名前の通り参照がテンプレートに挿入される時にフックして値を操作することができます。 コード例です。完全なソースコードはこちらを参照してください。 public class MyRefrenceInsertionEventHandler implements ReferenceInsertionEventHandler { @Override public Object referenceInsert(String refere
xsbt-start-script-plugin (https://github.com/typesafehub/xsbt-start-script-plugin) は main クラスの起動スクリプトを作ってくれる sbt プラグインです。 sbt run を使っても実行することができますが、main クラスが複数あるときにキー入力が必要なのが困るんですよね。 まず設定です。(sbt 0.11.2 で試しました) project/plugins.sbt に下記を追加します。(sbt 0.10.x は別の方法なので注意) resolvers += Classpaths.typesafeResolver addSbtPlugin("com.typesafe.startscript" % "xsbt-start-script-plugin" % "0.5.0") build.sbt に下記を追
Sphinx と Twitter Bootstrap を組み合わせる ちょっとしたドキュメントを Sphinx で書くのがよさそうだと思ったけどデフォルトのテーマがあまりかっこよくないんですよね。そこで今風な Twitter Bootstrap を組み合わせる方法を検索したら、ありました。 https://github.com/ryan-roemer/sphinx-bootstrap-theme 使い方はとても簡単。 git clone して bootstrap ディレクトリを _themes に置く % git clone https://github.com/ryan-roemer/sphinx-bootstrap-theme.git % mkdir _themes % mv sphinx-bootstrap-theme/bootstrap _themes conf.py に書く。(h
このページを最初にブックマークしてみませんか?
『blog.physalis.net』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く