サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
susumuis.hateblo.jp
1ヶ月GCEで遊んだこと 先月クーポンを貰ってからすっかりGoogle Cloud Platformの虜になっています。特にGCEはインスタンスの立ち上げが速く楽なので、なにかやろうとするとき、既存のインスタンスに何かするよりも、新しいインスタンス立てようって気持ちになってGoodですね! さて、今このブログをはてなブログから移行したいと思っています。そして、これまでにやったことをざっとおさらいしますと まずはDebianパッケージ版のWordpressをApache / MySQL / PHP5という標準的な構成で構築しました。 その様子はこちらから:Google Cloud Platform に Google Compute Engine を構築して、Wordpressを動かすまで(その1 - instance に SSHで接続するまで) - susumuis Info 上記では ta
はじめに この記事は、非エンジニアの方にエンジニアの勉強会の様子をわかりやすく紹介しようと試みて書いているため、エンジニアの方から見ると、何を今更かもしれませんがご容赦く下さい。また、この記事では、会と同様、便宜上「サービス」系と「受託開発」系を二分しています。実際は完全分離できず、また、多く偏見が含まれて語れれることではありますが、話を簡単にするためご容赦ください。 エンジニアと勉強会 エンジニアの週末は勉強会で忙しいです。よく他業界の友人から、ワーカホリックとか言われます。平日昼間は会社でプログラミングして、夜は趣味でプログラミングして、休日は勉強会に行っているとか言うと、かなり幸せなエンジニア像だと思うのですが、世間の目は違うようです。今回参加してきた「勉強会」は本質を突いていると思ったので、ここに書こうと思います。 ということでタイトルの「勉強会」に参加してきました。さっきから「勉
ResultSetみたいな巨大なインターフェースを独自で実装使用とすると、あまりのメソッドの量に途方にくれてしまいます。ちなみに僕のMacBookAir 11inch 2010年型 (メモリ4G) では、テキストエディタでひらいてもEclipseがカクカクします。 一部のメソッドを書き換えてその他多くのメソッドは標準のままに、それも、アプリケーション側のコードからはシームレスに行いたい場合、AOPを使うのが簡単です。 JavaでAOPを行いたい場合、AspectJを使うか、Javassistなどのようなバイトコードエンハンスメントライブラリを使用するのが一般的です。 しかし、Java標準APIで用意されているjava.lang.reflect.Proxyを使うこともできます。 詳細はこちらの記事などが参考になります。 「最もシンプルにJavaのAOPを書いてみる→そしてJavaScript
僕は休日によくMacBookAirを持ち歩いて、外でコーディングをします。そういう時、ルノアールを活用される方が多いようですが、どうも自分はカフェで作業が肌に合わず、そこで、電車コーディングを始めました。 ところで、JRには以下のルールがあります。 http://bizmakoto.jp/makoto/articles/1001/09/news006.html 近郊区間内、つまり東京や大阪では、一筆書きにすれば、隣駅までの切符で区間内いくらでも乗れますというルールです。このルールを利用すれば、初乗り料金でかなり長い時間、電車に乗り続けることができます。また、首都圏の中心部を外れれば、景色も楽しめたり、トイレ付きの列車に乗れたりします。 そうして、僕は東京の一筆書きで行ける全線区制覇をしてしまいました。これまでの経験を踏まえて、電車でコーディングする際の情報をここに発信したいと思います。 必
2012年4月4,5日に開催されたJava One Tokyoに参加させて頂いてきました。タイトルは "Moving Java Forward" ということで、Javaはどのように前進しているのでしょうか? 感想 このエントリは最後グダグダになるので、いきなり冒頭から総括します(^^; メインの内容は去年のJavaOne(サンフランシスコ)の報告会として開催されたJJUG CCC 2011 fallで得られた情報とかなりかぶっていました。本場に行けば半年前に情報が得られたわけですね。しかし、Oracle本社からキーパーソンが来日していることはやはり重要なことです。質問の機会もありますし、彼らの熱意を感じることができました。参加者も全国からJava好きの人が集まっているというのが大きいです。さすが祭典です! その他、一般公募セッションやハンズオンなども開催されているので、5000円ほどの参加
JVM上で動くJavaScriptについて調べたので、メモしておきます。 これまでの状況 まずは、Rhinoが有名です。「ライノ」と呼びます。RingoJSやMayaaなど、すでに広く使われています。Java6から標準でJDKにバンドルされています。(ただし、バンドルされたものは若干バージョンが古いです。) Rhinoの他には Apache Aptana Jaxerというサーバサイドでscriptタグを解釈するフレームワークがあります。こちらは、C言語で書かれたSpider Monkeyを利用しています(JNIでしょうか?)。 Spider MonkeyとRhinoはともに、Mozilla傘下で開発がされている姉妹関係にあります。Firefoxで使用されているのはSpider Monkeyの方で、現在のFirefoxでは、TraceMonkey, JagerMonkeyのようにパフォーマン
Android用のWebサイトを作っていてはまったので、報告します。対象はブラウザ上で動くWebアプリの話で、ネイティブアプリではありません。 Googleで検索しても、ネイティブアプリ関連の情報は出てきますがWeb開発の情報が意外とすくなかったので、少しでもお役に立てれば幸いです。 概要 Android標準ブラウザ(Dolphinブラウザなども含む)で、セキュア属性付きのCookieの挙動がiPhoneのブラウザや、PCのChromeなどと異なります。 Cookieやセキュア属性の概要はこちらなどをご参照ください。http://itpro.nikkeibp.co.jp/article/COLUMN/20080221/294407/ PCやiPhoneのブラウザの場合、WebサーバがSet-Cookieレスポンスヘッダを返した場合、例え、そのCookieのセキュア属性が設定されていても、ブ
こんにちは。またまたはまりましたので報告します。このところ連投だなあ(笑) 問題概要 Android端末で毎画面セッションIDが変わるという現象が開発用のローカル環境で発生し、延々と調べてしまいました。 原因は、http://d.hatena.ne.jp/s-ishigami/20110916/p1と同じで、セキュア属性付きのCookieをHTTPで変更できない件によるもので、それが、JSESSIONIDで発生していました。 原因 こういうことのようです。 「JSESSIONIDを保持したCookieをsecure属性にする方法」 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5722&forum=12 hreq(HttpServletRequest) がSSLであれば、Secure属性を付けているようです。 セッションが初
今日ますます重要となってきているプログラミング言語JavaScriptの開発環境として、WebStormやIntelliJ IDEAの評判が良いですが、Eclipseを使わざるを得ない状況ことも多いと思います。今回Eclipseで快適にJavaScript開発を行う環境をどのように構築したらよいか、試行錯誤をしたので、結果を報告します。人によっては違う結果になるかもしれませんが、もしよければ参考にしていただければと思います。 Eclipseプラグインは何を選択するべきか 2011年7月現在、Eclipseプラグインとして、JavaScriptの開発環境を提供しているものは、以下のようにいろいろあります。 JSDT 標準のJavaScript開発環境です。WSTに搭載されているので、J2EE版Eclipseなどをインストールすれば最初についています。印象として、可能なかぎりJava環境のJD
前回のエントリは、ここ最近の自分の取り組みの集大成(大げさw)のつもりで気合を入れて書きました。結果、このブログとしては多めアクセス数、ブックマークをいただいているようで、誠にありがとうございます。*1しかし読み返してみると書き忘れたことが幾つかありました。すでに前エントリは十分長いので、ここに続きを書こうと思います。 ちなみに、仕事のことを公に書いて大丈夫かと時々言われますが、弊社代表が「オープンにして失うものはない」ということをおっしゃっているので、それに従っています。もちろんこのブログは上司も社長も読んでいるので、万が一なにか差し支えがあって怒られたら、その時は全力で修正するでしょう。 それでは書きます。 Mayaaを効果的に使うためのノウハウ iframeを使ってサーバサイドインクルードを偽装する Mayaaを使ったテンプレートで妥協はよくありません。例えばWebサイトでは当たり前
みなさん、日々のお仕事お疲れ様です。僕は、2年ほど前に、所属している会社の主要プロダクトであるのリニューアルに係わりました。その際、Mayaaを採用し、今日までにそれを運用してノウハウが蓄積してきたので、ここに発表しようと思います。 経緯 私たちはコンシューマ向けのビューを多く扱うので、プログラミング工数を要せずデザイナーがダイレクトにデザインをカスタマイズできる仕組みの実現が急務でした。以前はテンプレートにJSPを採用していたため、デザインを作る(HTMLを書く)デザイナーと、プログラムに打ち込むJSPコーダーが必要という状況でした。一方ブログサイトなどでは、CSSレベルでのデザインカスタマイズをサポートしていることは多いですが、それでは自由度に限りが出てしまいます。フルHTMLレベルでのテンプレートエンジンが必要でした。 結果的に、この状況がどのように変化したのかは下記のエントリにも書
今更感のある話題ですが、初心者=僕が、ドハマリして、いろいろ面白い現象に遭遇しました。 内容はいたって基本中の基本のため、仕事でプログラミングしている者としては恥ずかしい限りですが、後に同じようにハマる人がいたときのために、メモを残します。 やろうとしたこと: もともとこんなコードがあって set = new TreeSet(); for (DBの取得結果) { set.add(取得した値); } この後、setをつかって、UIを生成していたのだけど、順番が違うよって指摘を受けた。DBには、よくある、「表示順」のカラムがある。SQLならorder byで取れる。TreeSetの場合はCompatatorを渡せば良い。ということで、こんなHashMapをつくって Map<String, Integer> idToSortOrderMap = new HashMap<String, Integ
JavaでPDFを生成する場合、こういった方法や、http://allabout.co.jp/gm/gc/80691/ こういった方法http://www.atmarkit.co.jp/fjava/javatips/121jspservlet41.html がある。しかし、どちらも低レベル過ぎて、美しいビジネス文書や帳票を出力するにはワープロを作るくらいの気合が必要となる。 手っ取り早いのは、ExcelやWordの文書をApache POI経由で編集し、そいつをPDFにして出力出来れば、美しいPDFが任意のテンプレートで作れるというプランである。 最近のOfficeならPDF出力をできるので、もしMSマンセーな組織なら、Windowsサーバ上でExcelを常駐させて、COMなんちゃらを利用して実現するのが良いと思う。しかし僕はJava屋だ。サーバはLinuxが好きだ。というわけで、今回は、
僕はMayaaが好きです。仕事でもかなり使っています。 今回、スマートフォン(iPhoneおよびAndroid対応)向けECサイトのフロントエンドに、Mayaaを使用しました。そこではまったことを報告します。 metaタグにContentTypeが省略できるようになったため、ドキュメント判別の手段が減ってしまった HTML5では、 <meta charset="UTF-8"> のような書き方が許されるようになりました。 従来は <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> という書き方をしていました。 これで何が問題なのかというと、Mayaa自体がこのContent-Type指定を読んでいてそれによって処理を判別(例えばapplication/xhtml+xmlかどうかなど)もしているので、動作が
釣りのようなタイトルで申し訳ありません。 この話題、人によってそれぞれの意見をもっていると思うので、議論が収束しなくなりがちです。 例: 「私がJavaScriptを初心者用の言語として選んだわけ」(404 Blog Not Found) http://blog.livedoor.jp/dankogai/archives/51005691.html 僕自身の経験に言わせれば、僕がプログラミングに入ったのは、Delphi2.0でした。言語がPascalということで、敬遠されがちの面もありましたが、塚越一雄さんの本が高品質であったため、快適に学習することができました。 ある程度アルゴリズムっぽいものを学ぶ段階で、僕は10進BASICに触れました。ちょっとしたグラフをプロットする機能もあったので、色々なグラフを書いて遊びましたし、一連のソートのアルゴリズムを試したりもしました。自分で乱数を実装し
iPhoneも、Androidも、そもそも自宅ネット環境もない私はもっぱら、携帯でTwitterを使っています。 tmitter(http://tmitter.org/)でタイムラインが取得できなくなってしまったので、GAEの勉強もかねて作ってみました。 package ishigami.twittermail; import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.appengine.api.datastore.DatastoreService; import com.google.appe
すごい人から★がつけられてるのでビビってきています。 JMeterで、受信したHtmlの画像を再リクエストするというオプションがあったので使ってみました。 10秒で300回トップページ表示を行った結果: 初めの20〜30リクエスト: 0.5〜1秒程度(キャッシュがきかなかった?) それ以降: 0.020秒程度(急に早くなった) おそらくキャッシュの効果と思われます。 JMeterはスレッド間でHttpクライアントのキャッシュを共有するようです。 Tomcatは6から非同期IO対応らしいです。 http://www.atmarkit.co.jp/fjava/rensai4/safetomcat_03/safetomcat_03_1.html ok明日はこいつを検証してみます。
しごとがいっぱいあふれてるのに、ブログを書くとか完璧に現実逃避なのですが……。 今日のひがさんのエントリを読んで、appengineとは全然関係ないけど思ったことを書きます。 http://d.hatena.ne.jp/higayasuo/20101109/1289290143 ひがさんのエントリでは、appengine/Javaのスピンアップ問題を解決するために、静的HTMLをレスポンスして、JavaScriptで後から動的なデータを取得するパターンが提案されています。 別にこれ、appengineに限らず最近僕の近辺ではトレンドだなと思っていました。 SEOがあるので、サーバーサイドテンプレートもまだ必要だとは思いますが。 それで、思ったのがプログラマーの仕事についてです。僕が見てきたことを書きます。 むかしはJSPを書くだけのプログラマーがいました。 むかしむかし、ウェブシステムの画
id:t_yanoさんのご指摘により、アプリケーションサーバTomcatの最大スレッド数をあげてみました。 server.xml <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> <Connector 〜省略〜 maxSpareThreads="300" maxThreads="300" minSpareThreads="100" port="8080" redirectPort="8443"/> maxSpareThreads、maxThreads を 75→300 minSpareThreads を 25→100 今回は、10秒間で300リクエスト=30回/秒でテストしました。 エラーが返却されることはなくなりましたが、 よりレスポンスに時間がかかるようになってしまいました。(T_T) ちなみに、最初はmaxSpareT
今Canvasを使った案件に携わっています。が、何かの間違いで、IE8もサポートしなければならなくなり半泣きです。画面レンダリングだけでなく、印刷もサポートしなければなりません。 画面ではドラッグアンドドロップでグリグリ動かすのですが、excanvasではスピードが遅すぎて使い物になりません。この問題については、FlashCanvasがサクサク動くので採用しました。(それでもある程度のチューニングは必要でした) 問題は印刷で、flashcanvasだと、 縦横比が変 周りに変な背景色が付く 解像度が悪い 一方excanvasを使用すると、これらの問題が解決します。つまり 縦横比問題なし 変な背景色なし 解像度が綺麗(ここらへんVMLの強みだなあと思います) ということで、画面でグリグリ動かすのはflashcanvas、印刷するならexcanvasでリリースしました。 ところが、ページ送りが
仕事と家庭の事情のため、時間が取れず、締め切り前夜に4時間(徹夜ですがなにか?)だけ時間が取れて挑戦してみました。 結果は、ぼろぼろでしたorz 4時間でできたのはPAC-MANだけ。 事前にウォーミングアップと、しりとりはレベル3を手動で勝っていて、OAuthとPAC-MANをこの4時間で挑戦しようとしたのだけど、PAC-MANのみで終了という感じです。 そのPAC-MANも…仕様嫁おれって感じ。(xx; 1.5時間くらいでシミュレータはできたけど、敵の動きのアルゴリズムが問題と食い違っていて、仕様読み直して直してを繰り返しでした。最終的に以下のようなコードで何とかレベル1のみクリア。レベル2以降になると、まだどこか、違ってるみたい。 じゃ、コード貼りますね。 技術的にはCanvas使っています。便利ですね。 ちなみに、Chrome5でしかテストしていません。 上記状況(仕様読み間違えて
今、既存プロジェクトにMayaaを導入しようとしています。 なぜMayaaなのか? Wicketを勉強していたのではないのか? いや、いろいろと経緯がありましてね。書くと長くなるので割愛します。 で、既にJSPによって、デザインが組み込まれているのですが、それだとデザインの修正が困難なので、HTMLテンプレートによって超楽にデザイン修正ができるようにしてしまおう作戦です! さて、早速組み込みを始めてみます。 よく見ると、JSPは共通部品ごとに分割されていて、includeしている感になってます。でもこれだと、ブラウザでプレビューしたときに細切れとなってしまうため、HTMLテンプレートとしては微妙ですね。。。 そこで、とりあえずは、目で見える部品については、各ファイルに同じ内容を記述させることにします。どうせデザイナーさんはコピペするでしょうし。 しかし、よくよく見ると JavaScript
昨日は、DEVELOPMENTモードでの実行だったので、今日はDEPLOYMENTモードでやりなおしてみました。 Wicketはデバッグ情報の構築や、詳細なエラーメッセージを表示するDevelopmentモードと、これらを省いてパフォーマンスやセキュリティーを優先するDeploymentモードがあります。 これは、web.xmlに以下のように書くことで切り替えることができます、 <context-param> <param-name>configuration</param-name> <param-value>deployment</param-value> </context-param> 今日は、ついでに、客観的なデータを取るために、Jakarta JMeter (http://jakarta.apache.org/jmeter/)を使用しました。 まずは、JMeterを設定 1秒間
AutoLinkをOffにしてみました。 public class MyApplication extends WiedieApplication { @Override protected void init() { super.init(); getMarkupSettings().setDefaultAfterDisabledLink(""); getMarkupSettings().setDefaultBeforeDisabledLink(""); // getMarkupSettings().setAutomaticLinking(true); <-----コメントアウト mount(new QueryStringUrlCodingStrategy("/index.html", EntryPage.class)); mount(new HtmlBookmarkablePageRe
今日はこれまでのまとめをします。 なお、私の使っているWicketのバージョンは1.3.5です。 1. WicketのAutoLink機能 Wicketでは、通常、デザインを設定するマークアップファイル(HTMLテンプレート)を、クラスパス上に配置します。 ところが、もしそこに画像などへの相対リンクがあると、実行時にそれが表示されなくなってしまいます。 それは、クラスパスへはWebからアクセスできないためです。 クラスパス上にあるリソースをレスポンスするには、リソース・ストリームを使用することができます。 しかし、その場合、すべての画像ファイルに対して、Imageコンポーネントなどを配置する必要があり、とても面倒です。 そこで、WicketにはAutoLinkという機構があります。 <wicket:link> 〜 </wicket:link> で囲うか、Applicationクラスのini
Wicketはメモリをいっぱい消費することは有名ですが、メモリ管理を自動で行ってくれるので、不要になったデータはハードディスクに保存されたり、破棄されたりするので、これは比較的問題なさそうです。 実際のところ、どうなのか、jconsoleで実験してみました。 実験内容: ページ1枚を表示し、ひたすらF5を連打 ※ページの内容がどのようなものなのかは、お見せできないことはご容赦ください。 CSSなどでフルデザイン済みの一覧ページです。パネル3枚くらい使用しています。 10〜15MBの間で推移しています。 サーバに数GBのメモリを積めば問題なさそうですね。 しかし、新たに問題を感じてきたのがCPU負荷です。 以下は、Servletを使った、古いアプリでの実験結果です。 JSPコンパイル時に高い負荷がかかっていますが、F5連打中は負荷らしい負荷がありません。 ※ここで言う負荷とは、APサーバのC
このページを最初にブックマークしてみませんか?
『susumuis.hateblo.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く