匿名クラスについて
public static WebSocket<JsonNode> ws(){ final String username = session("username"); return new WebSocket<JsonNode>(){ @Override public void onReady(final WebSocket.In<JsonNode> in, final WebSocket.Out<JsonNode> out){ try{ WebSocketActor.join(username, in, out); }catch(Exception e){ Logger.error("Can't connect WebSocket"); e.printStackTrace(); } } }; }
この例のnew ~ };
の部分。
WebSocket
Enumについて
Enumはクラス?
Enumは内部的にはクラスとのこと。
public enum Macross{ Sheryl, Ranka, Alto }
って定義すると
public class Macross extends java.lang.Enum{ public static final Macross Sheryl public static final Macross Ranka public static final Macross Alto public static final Macross[] values(); public static final Macross valueOf(java.lang.String); }
みたいなクラスができるイメージ。
メソッドの定義
public enum Macross { SHERYL; public String sing(){ return "northern cross"; } }
mainメソッドからこんな感じで使える。ちなみにこれSingletonにもなっておるよ。
public class Main { public static void main(String[] args) { Macross mayn = Macross.SHERYL; System.out.println(mayn.sing()); } }
SpikaをさくらVPSのLAMPに配置する話
Spikaというナイスなオープンソースのアプリを見つけた。
Spikaについては以下が詳しい。
■世界初 メッセンジャーアプリ「Spika」を完全オープンソースで公開、フロントからバックエンドまで提供 【増田 @maskin】
超簡単に言うと、オープンソースの「LINE」である。
サーバはLAMPで、クライアントはiOSにもAnoroidにも対応している。
iOSでサーバと通信してやんややんやするアプリを作ろうと思っている私にとっては、とっても先生になってくれそうなアプリである。
これは期待アゲ!!!!!
ということで、GitHubからサーバのソースとiOSのソース落として、チュートリアルの通りVagrantとVirtualBoxを入れてローカルのVMにLAMP作ってそこに配置してみた。
こいつ・・・動くぞ!
XcodeでiOSのエミュレータ起動してアプリ動かしてみた。
こいつ・・・動くぞ!
ということで、動いたが、これじゃ外出先とかでiPhone実機で動かせねーなと思って、思い立ったので、さくらのVPS借りてそこにLAMP作ってそこにサーバ側配置することにした。
そしてそれはもうハマった。
3日くらい奮闘して無事動かせるようになったので、私が躓いたところだけ、いや、私が言いたいところだけピックップしてここに書きます。
同じように困った方がいたとして、もし参考になれば幸いでございます。
つまづいた点
・ドキュメントルートの違い
CentOSのApacheのドキュメントルートは
/var/www/html
Spika先生のUbuntuのApacheのドキュメントルートは
/var/www
これ最初知らなかったッス。(話にならない
Spika先生のチュートリアルでは、GitHubからSpika-Serverというディレクトリを/var/wwwの直下に落としてくる。
この状態でやんややんややって最後http://localhost:8080/wwwroot/installerというアドレスにアクセスして動かしていく。
素直な僕は、チュートリアルの通りGitHubからSpika-Serverというディレクトリを/var/wwwの直下に落としてくる。
だがCentOSのドキュメントルートは/var/www/htmlである。
そう、残念なのだ。
http://XXX.XXX.XXX.XXX/wwwroot/installer(XXX.XXX.XXX.XXXはさくらVPSのアドレス)にいくらアクセスしても動かねえ。
ということで調べに調べてドキュメントルートが残念なことに気づき、改めて/var/www/htmlの直下にDLしてやんややんやしてみた。
こいつ・・・動くぞ!
ということで無事動いた。
そのときのアドレスはhttp://XXX.XXX.XXX.XXX/Spika-Server/wwwroot/installerである。
Spika先生のは/Spika-Serverっていうのが不要みたいだけど、なんか設定チラ見した限り、なんかディレクトリ間でリンク貼ったりしてくれてるのかな?
私は気にしないことにした。
超つまづいたのはこの辺でした。
初心者乙、素人乙。
でも気にしなきゃいけないことは多かったんですよ。
Xcode用の.gitignore
Xcode触るたびに見えないファイルが変更されてコミットしてね軍団に入ってしまうのが煩わしいのでググったところ以下のブログを発見。
Xcodeプロジェクト用の.gitignoreを作成する
ここを参考に設定。
*.xcodeproj/* !*.xcodeproj/project.pbxproj !*.xcworkspace/contents.xcworkspacedata .DS_Store
んで、もいっこ
UserInterfaceState.xcuserstate
がきちんと無視されなかったので、調べたところ以下のブログを発見。
UserInterfaceState.xcuserstateが.gitignoreで無視されない件
これを参考に、無事回避。
$ git rm --cached TwitterApp.xcodeproj/project.xcworkspace/xcuserdata/chama.xcuserdatad/UserInterfaceState.xcuserstate $ git commit -m "remove cache"
基本っぽいので忘れないようメモメモ。
2014.02.22追記
TwitterApp.xcodeproj/xcuserdata/chama.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
っていう感じでブレークポイント置いた情報とかが残ってしまうので、
iOS開発でGitを利用する際のTips
これを参考に、
xcuserdata/
っていうのもignoreに入れることにした。
Xcodeの設定を書いてあるファイルだから、プロジェクトのVer管理とは関係ないんだなこれが。
はてなブログにどうやってコード載せるんや?
String strHoge = "捕鯨";
おおーできた。
編集モードをはてな記法モードにして、スーパーpre記法という記法を使えばいいのね。
参考
ソースコードを色付けして記述する(シンタックス・ハイライト)
追記
githubのGistという仕組みもなかなか良さげ。