Sparrow が起動しなくなった時について
うちの Macbook は容量がギリギリのため、電池切れなどで容量がないまま終了した場合などに Sparrow が起動できなくなる場合がある。 対処としては Sparrow のディレクトリにある各アカウントの data.db ディレクトリと message.db を削除すればよいらしい。(理由はよく調べてない)
$ cd Library/Application\ Support/Sparrow $ rm -rf data.db messages.db
これで Sparrow を起動すると取得しなおして動くようになる。
zsh なら下記一つのコマンドでいける
$ rm -rf ~/Library/Application\ Support/Sparrow/*.sparrowdb/(data.db|messages.db)
Intellij IDEA でクラスを作る際に自作のテンプレートを使う
使用バージョン
Intellij IDEA 14.1.3
内容
競技プログラミングなどでファイル生成時に標準入力用ライブラリなどを最初から入れておきたい場合があります。
Intellij IDEA の場合はどうするか。
- テンプレートを用意する
- クラス生成時に用意したテンプレートを選択する
Prefereces を開いて Editor > File and Code Template を開いて Templates のタブを選択。 Class を選択してコピー。なかを自由に書き換えます。
生成したテンプレートはたぶん New > Java Class を選択した際に Kind で選択できるはずです。
他のテンプレートをみると include とか使えるようなので共通で使う部分などは inlude で作っていろんなプロコン用のテンプレートをそれぞれ作るとかできるのではないかと思います。
以上。
参考
Spring boot 日記
Q. EnableAutoConfiguration って? A. どうも設定が必要なパラメータを予めデフォルト値を持った設定群をフレームワークで持ってるっぽいのでそれを使うようにするアノテーションらしい。 自分のアプリケーションでのみ使う設定はその設定のプロパティとか Configuration アノテーションが付いたクラスとかで上書きするとかそういうやつっぽい。 Q. WebSocket 使うには? A. EnableWebSocketMessageBroker アノテーションが付いた Configuration アノテーションのクラスを作って AbstractWebSocketMessageBrokerConfigurer クラスを継承して endpoint を追加すれば良い感じっぽい。 import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer; import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker; import org.springframework.web.socket.config.annotation.StompEndpointRegistry; @Configuration @EnableWebSocketMessageBroker public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/"); } } Q. socket.io がクライアントになってる場合は? A. さらっと探したけど java 実装の socket.io サーバが無いので無理臭い。自分で実装する必要がありそう。
Spring Boot で複数の Filter を定義する
例えば下記のように @Bean アノテーションを複数書くことによって複数のフィルタを追加できる。
@Configuration public class WebConfig extends WebMvcConfigurerAdapter { @Bean public Filter filter() { return new SomeServletFilter(); } @Bean public Filter filter2() { return new SomeServletFilter2(); } }
また、おそらく上記の書き方では上から順番にフィルタが追加されるが、フィルタの登録順を決めてしまいたい場合は下記のように FilterRegistrationBean の setOrder() を用いる。
@Bean public FilterRegistrationBean filter() { FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new SomeServletFilter()); bean.setOrder(2); // 数字が大きいほうが後に呼ばれる return bean; } @Bean public FilterRegistrationBean filter2() { FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new SomeServletFilter2()); bean.setOrder(1); // 数字が小さいほうが先に呼ばれる return bean; }
他にも Configuring boot servlet context and filters | Level Up Lunch などによると何かしらの初期化時に ServletContext に addFilter() すればよいらしいがうまく行かなかったのでここでは割愛する。
2016/08/05 追記
これらの設定はおそらく Spring Boot は関係なくて Spring Framework の DI の設定らしい。
Spring のコードはちゃんと読んでないけど、おそらく Spring 側の Autowired 時に同じ型のものが複数定義されていた場合に取得する方法( List
参考文献
Configuring boot servlet context and filters | Level Up Lunch
Convert an existing application to Spring Boot - Spring Boot Reference Guide
Spring Boot で組み込みサーブレットコンテナを変更する
Spring Boot で 1.2.3 をそのまま起動した場合は Tomcat 8 が起動する。
s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http) o.apache.catalina.core.StandardService : Starting service Tomcat org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.0.20 ... s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
他には下記の表のものを使えるとのこと。
Servlet Containers - Spring Boot Reference Guide
この組み込みサーブレットコンテナを tomcat -> jetty や tomcat -> undertow に変更する。
tomcat -> jetty
参照ページ: Use Jetty instead of Tomcat - Spring Boot Reference Guide
tomcat を外して jetty を追加する設定を記述する。下記は Gradle での記述例。(参照ページではバージョンが付いてるが手元では 1.2.3 を使っていたので念のため外してる)
configurations { compile.exclude module: "spring-boot-starter-tomcat" } dependencies { compile("org.springframework.boot:spring-boot-starter-web") compile("org.springframework.boot:spring-boot-starter-jetty") // ... }
gradle の bootRun を実行するとどこかしらに下記のようなログが出力されて jetty が起動してることがわかる。
org.eclipse.jetty.server.Server : jetty-9.2.9.v20150224 ... .s.b.c.e.j.JettyEmbeddedServletContainer : Jetty started on port(s) 8080 (http/1.1)
tomcat -> undertow
参照ページ: Use Undertow instead of Tomcat - Spring Boot Reference Guide
tomcat を外して undertow を追加する設定を記述する。下記は Gradle での記述例。(参照ページではバージョンが付いてるが手元では 1.2.3 を使っていたので念のため外してる)
configurations { compile.exclude module: "spring-boot-starter-tomcat" } dependencies { compile("org.springframework.boot:spring-boot-starter-web") compile("org.springframework.boot:spring-boot-starter-undertow") // ... }
gradle で bootRun を実行するとどこかしらに下記のようなログが出てきて undertow が起動してることがわかる。tomcat や jetty のようにどこかしらにバージョン情報は出てこない。( XNIO のバージョンは出てくる)
b.c.e.u.UndertowEmbeddedServletContainer : Undertow started on port(s) 8080 (http)
Spring Boot 軽く触ってみた感想日記
そもそも Spring Framework 使ったこと無い人なのでまあそこも含めての疑問と理解してる途中の内容とかメモ。
Q. Spring Boot って? A. Spring Framework 使ったアプリを組み込みサーバ上で動かすみたいな仕組みの総称みたいな理解 Q. 組み込みサーバでそのまま本番で使える? A. そのまま使ってもよさそう。 runnable jar とかにして動かすっぽい。 Q. どうやって始めたら? A. Intellij IDEA でプラグイン入れてポチポチやってたらとりあえず動くだけ動いた(ページが見られるとは言ってない) Q. URL のルーティングどうやるの? A. Controller アノテーションのメソッドに RequestMapping アノテーションを付けたメソッドを作るとよいらしい。(下記例を参照) @Controller @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @RequestMapping("/") String home() { return "index"; } } Q. EnableAutoConfiguration アノテーションって? A. わからん Q. Cookie に自分で書き込んだ情報を使って認証とかしたい場合は? A. シングルサインオン的な実装でいいらしい(別途何か書く) 雑に書くと、普通の Servlet フィルタな感じで実装して EnableWebMvcSecurity な Configuration で HttpSecurity に addFilter したら動いた Q. setCookie したい A. RequestMapping アノテーションの付いたメソッドの引き数に HttpServletResponse の型のものを追加するとそれでできる様子 @RequestMapping("/") String home(HttpServletResponse response) { response.addCookie(new Cookie("somecookiename", "somecookievalue")); }
参考文献
spring-security-core - Spring Security(Spring Boot)で、PreAuthentication - Qiita
cocos2d-js Transition 一覧( CCTransition 編)
Transition 全体一覧
一覧
ココでは下記のリストにある transition の gif を貼る。
CCTransition.js に定義
- cc.TransitionSceneOriented
- cc.TransitionRotoZoom
- cc.TransitionJumpZoom
- cc.TransitionMoveInL
- cc.TransitionMoveInR
- cc.TransitionMoveInT
- cc.TransitionMoveInB
- cc.TransitionSlideInL
- cc.TransitionSlideInR
- cc.TransitionSlideInB
- cc.TransitionSlideInT
- cc.TransitionShrinkGro
- cc.TransitionFlipX
- cc.TransitionFlipY
- cc.TransitionFlipAngular
- cc.TransitionZoomFlipX
- cc.TransitionZoomFlipY
- cc.TransitionZoomFlipAngular
- cc.TransitionFade
- cc.TransitionCrossFade
- cc.TransitionTurnOffTiles
- cc.TransitionSplitCols
- cc.TransitionSplitRows
- cc.TransitionFadeTR
- cc.TransitionFadeBL
- cc.TransitionFadeUp
- cc.TransitionFadeDown
動作確認環境
- cocos2d-js v3.5
- firefox