サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
dev.ariel-networks.com
井上 誠一郎 アリエルネットワークCTO ワークスアプリケーションズ エグゼクティブフェロー 社長が脱RDBと言い出して困りましたが、 開き直って楽しんでいる話 自己紹介 書籍 「パーフェクトJava 第1版/第2版」 「パーフェクトJavaScript」 「実践JS サーバサイドJavaScript入門」 「P2P教科書」 「15時間でわかるJava集中講座」(監修) 井上誠一郎 自己紹介(続) 1990年代後半 Lotus Notes開発 2000年代前半 P2Pアプリ開発 2000年代後半 Webアプリ開発(RDB脳化が進行) 2010年代前半 脱RDB(今ここ) 今日のトピック RDBを使わずに 業務アプリを作れそうに思えてきた経験談 RDBなしのほうが良い ...とまでは言いません。念のため 今日話さないトピック NoSQL実装の個々の比較 CAP定理とかその周辺の話 本プレゼン
1週間経っていますが、JJUG CCC 2015 Springの講演資料を公開します。 「社長が脱RDBと言い出して困りましたが、開き直って楽しんでいる話」 追記(2015/5/25): PDF版も置きます。 JJUG_CCC_2015_inoue.pdf # 「ありえるえりあ」の環境がひどすぎて、ファイルひとつアップロードするのもひと苦労です。なんでそんなひどいことになっているのか、外部の人には想像もできないでしょうが。
UI のバグ報告などで、複雑な再現手順やちょっと気になるといった操作感を文章で伝えるのは難しいものです。そんなとき、スクリーンキャストを録画して、Trac 上で再生できれば便利ですね。 Trac Hacks を調べたところ、MovieMacro というプラグインがあったのでそれを紹介します。このプラグインは、Trac のチケットや wiki に動画共有サイトのプレイヤーを埋め込んだり、添付した動画ファイルを再生したりするためのマクロ (wiki 記法) を提供します。PyPI からもインストールできます。 https://pypi.python.org/pypi/TracMovieMacro バージョン 0.3 の時点では、以下の動画共有サイトからプレイヤーを埋め込めます。 YouTube MetaCafe Vimeo 例えば、YouTube の動画を埋め込むときは以下のように記述します。
先日、社内勉強会でベンダーロックインではない Adaptive bitrate streaming 方式として MPEG-DASH (以下DASH) について紹介しました。 社内ストリーミング勉強会 私自身、名前だけ知っていたものの、まだ先の話だろうと考えていました。勉強会向けにちょっと調べたらOS/ブラウザベンダーの足並みが揃いつつあります。まさに勉強会で一番勉強するのは発表者ですね。先の話どころか、いまいまの話でした。 Google: Chrome23+、Android 4.4 KitKat Mozilla: Firefox31+ (Partial Support、MP4 が未対応?)、DASH Adaptive Streaming for HTML 5 Video Microsoft: IE11+、Building a simple MPEG-DASH streaming playe
先日、社内でストリーミングの技術背景について勉強会をしました。 HTTP ストリーミングや HTML5 が身近なものとなり、スマートデバイスの普及によって古いブラウザを気にせずそれらの技術を享受できるようになりました。その動向の背景には、規格戦争があり、標準化や互換性やベンダーロックインがあり、直接的に技術とは関係ないエコシステムに翻弄されたりもします。そして、そういったものに振り回されるのは、体系的にいまの状況を把握できていないからだという自身の反省からまとめたものです。 たぶんこの資料は、これからストリーミング機能の開発を任せられた新人プログラマーが、どこを調べれば良いか、何ができて何ができないかを把握するのには適しています。足りない点も多々あるように思いますが、その先は自分で調べてください。また、このスライドを公開後に年月が経ってから見ると内容が古くなって適切ではない可能性が高いので
パーフェクトJava第2版と同時発売になりましたが、監修をつとめた15時間でわかるJava集中講座を出版しました(技術評論社のページ))。 同時発売になったのは偶然で、本当は「15時間でわかるJava集中講座」のほうが先に発売する予定でした。色々あったのだろうと察してください。 どちらもJavaの本で同時発売ですが、棲み分け可能な本だと思っています。 昨日書いたように、「パーフェクトJava第2版」は、読者として一定の経験者を想定しています。Javaでなくてもいいので、なんらかの命令型言語の経験を想定しています。と言っても、if文とwhile文がなんとなく分かればいい程度ですが。 「15時間でわかるJava集中講座」は、元々、ワークスアプリケーションズ社の新卒研修のコンテンツが元になっている本です。このため、読者にプログラミングの経験を想定していません。 監修者なので客観的な評価ではないで
JavaOne2014に参加するためサンフランシスコに行ってきました。 過去のレポート記事(関連記事をたどるトップ記事)のリンクは下記になります。 JavaOne2010 JavaOne2012 JavaOne2013 JavaOne参加は、ここ5年で4度目です。毎回サンフランシスコの同じような場所を徘徊するので街の様子も慣れたものです。あまり馴染みのない東京のどこかの駅より、サンフランシスコのほうが土地勘があるぐらいです。 過去3回は自分でホテルも飛行機も予約していましたが、今回は金の力を使ってツアーで行きました。すべて手配してくれます。サンフランシスコ空港から市内へ行くのに、自分で電車に乗る必要がありません。考えてみると最近はそんな海外渡航が多い気がします。1年に1回ぐらいは自分ですべて手配して、現地の移動も公共機関を使わないと、自分がダメ人間になりそうです。 ホテルはユニオンスクエア
フロントエンドの最適化手法の1つにJavaScriptやCSSのファイルを1つに結合するというのがあるので、ついでにJavaScriptとCSSを1つファイルにまとめてみました。 非標準ですが大抵のJavaScriptエンジンの実装では<!–が1行コメントになることを利用してJavaScriptとCSSを切り替えてます。確認したとこIE8、Firefox33、Chrome37では意図通りに動作しました。IE11ではMIMEタイプが違うといわれてCSSが適用されませんでした。 思いつきなんで効果の程は知りません。
先日 アリエルの開発を支える Trac プラグイン を書きましたが、今日は課題/バグ管理システムの Trac 本体について書きます。 Trac は Edgewall Software が開発した Web ベースの課題管理システムです。修正 BSD ライセンス、オープンソースとして提供されています。いまはどうなっているか分かりませんが、サイト上では Edgewall Software 自身も Trac のコンサルや商用サポートを行っているように書かれています。また、 edgewall.org is a place where a community of software developers collaborate on creating exciting open source software based on the Python programming language. とあるの
アリエルの開発は、いわゆる チケット駆動開発 に分類されるわけですが、課題/バグ管理システムに Trac を使っています。最近の Trac 自体の開発は活発とは言えないし、Apache Bloodhound も出てきたりしていて、その未来がどうなるのか懐疑的なところもありますが、懸命に保守してくれる開発者もいるので、まだまだ数年は安心して使えるように思います。 そんな Trac は minimalistic な基本方針により、足りない機能をプラグインで拡張するのが一般的です。このプラグインという過去の遺産が Trac を課題管理システムとして有力な候補の1つに押し上げているとも言えます。Trac のプラグインは TracHacks で探してそのリポジトリからインストールできます。プラグインを PyPI からインストールできるように trac.plugins の名前空間を使う 方法もあります
先月、Python3 でコーディングする機会がありました。初めて Python3 専用のツールを作ってみたのですが、作ってるうちに楽しくなってきて誰かに伝えたいと思い立ってその勢いで社内勉強会を開催しました。 社内にもいくつか Python 製ツールはありますが、サポート対象に RHEL5.x があるため、未だに 2.4 で保守を続けています。そんなうっぷんを晴らすべく「ほら! 2.4 では使えなかった構文や標準ライブラリが使い放題だよ。」と感動を伝えたはずなのに、同僚の Rubyist から「何て後ろ向きな楽しさ …」と言われてしまいました。Ruby の新しいバージョンをどんどん使えば良い的な雰囲気はうらやましいです (それはそれでメンテの苦労もあるでしょうけれど) 。 コーディングの話題へ移る前の、パッケージングの話題を盛り過ぎたのか、時間が足らなくて実際のコードを見ながらのお話が半分
最近社内のドキュメントは殆どSphinxで書いてます。しかしどうも検索の精度が悪い、特に複合語がヒットしないと言われたので改善してみました。Sphinxのバージョンはv1.2.2です。 まずはドキュメントに全文検索機能を追加する こんな方法で追加しました。 sphinx-quickstartでドキュメント作成 conf.pyに全文検索の設定を追加 python html_search_language = 'ja' html_search_options = {'type':'default'} # build server using type:mecab
Nashornの字句解析のソースを見るとnashorn.lexer.xmlliteralsというのがあります。 XMLリテラル?…XML?…!? E4X!E4Xじゃないか! 試してみました。 https://gist.github.com/tuchida/9796167 nashorn.lexer.xmlliteralsなし $ jdk1.8.0/bin/javac E4X.java && jdk1.8.0/bin/java E4X E4X: null javax.script.ScriptException: <eval>:1:0 Expected an operand but found < <xml>xml</xml> ^ in <eval> at line number 1 at column number 0
先週Java8がリリースされましたが、さっそく社内での開発でも使うことになりそうです。 というわけで、Java8の目玉機能であるラムダ式とストリームAPIについて、社内勉強会を開催しました。 普段の社内勉強会よりも参加者数が多くて、みんなの関心の高さが伺えますね。
先日の記事に宮川さんからつっこみが入りました。 http://d.hatena.ne.jp/miyakawa_taku/20140315/1394902012 ありがたいことです。やはり情報というのはどんどん公開すべきです。 リンク先を読まない人のために書いておくと、自分が書いた「Java8のラムダ式は(関数型インターフェースの)オブジェクトを生成しない」は間違いで、仕様上は「Evaluation of a lambda expression produces an instance of a functional interface」です、というつっこみです。 この記述は知りませんでした。 「an instance of a functional interface」をオブジェクトと言い換えていいかは多少迷います。オブジェクトという用語の定義次第だからです。個人的には、参照のとれる実体を
※本記事は最後まで読まないと誤解されかねない内容を含むため、Web広告に敵愾心を抱いてる方、プライバシやくざの方などは閲覧をご遠慮ください http://hatenablog.com/js Hatena.Diary.setupTrackとかHatena.Diary.trackEventNowとかあるのにnavigator.doNotTrackを見てないのが気になりました。 別にこのことを批判したいわけではありません。ぱっと見た感じ表示しているURLやreferrerなどの一般的なサーバーのアクセスログに記録される情報だったり、表示にかかった時間やスクリプトエラーなどのセンシティブでない情報を記録してるだけに見えます。Do Not Trackがこの手のものまで禁止してるかも知りません。 ただ今回の件ではてなブックマークボタンのトラッキングの件にふれてる人が見当たらなかったので一言いっておきた
Java8のリリースが近づいています。Java8と言うとラムダ式のほうが有名ですが、多くの人がブログに書きそうなので、地味なDate/Time API(JSR-310)のほうを説明します。 ひとつだけラムダ式について言及しておくと、「ラムダ式は(関数型インターフェースの)オブジェクトを生成する」と説明している文章があったら、その文章は怪しいので疑いの目で読んでください。実際にはラムダ式はオブジェクト生成のコードにはならないからです(InvokeDynamicの呼び出しコードになります)。 後日つっこみを受けました。詳しくは別記事を参照してください。 さて、Date/Time API(JSR-310)の話です。 Javaの新しい日時処理(日付処理および時刻処理)のAPIです。結構、複雑です。過剰設計という批判もあるようです。自分自身、まだそこまでの判断はできません。自分が言えるのは、日時処理
アリエルってJavaの会社だよね。でもね、Javaだけの会社じゃないんだよ。大部分のコードはJavaで書かれているのは事実だけど、それだけじゃないんだよ。ツールとか製品の周辺部分はRubyだったり、Pythonだったりするんだよ。まだ、一部Perlが残っているんだけど、Perlはだんだん駆逐されていっているんだよ。テスト関係のコードは、とってもRubyで書かれているんだよ。 昔からあるプロダクトはJavaなんだけど、新し目の製品は実はJavaじゃないんだよ。Goなんだよ。なんでGoにしたのかは、 1.1がでて、安定していそうだから コンパイルが速いのでコードを書いてデバッグするまでのサイクルが短くできるから それでいて実行速度が速いから 最低限必要そうなライブラリは揃っているから 文法的なところとか、その割り切りが、一部の人にフィットしたから マイナー路線 並列性とか、なんとか 無理やり7
Server-Sent Eventsを使うとサーバーからクライアントにデータをPUSHすることができます。使い方はこの辺を参考にしてください。 node.js + expressでサーバー側を実装するとこんな感じになると思います。 app.get('/event', function(req, res) { res.type('text/event-stream'); res.write('data: ' + data + '\n\n'); });
採用のためのインタビュー記事が@ITに載りました。 兼務しているワークスアプリケーションズのゲストフェローの立場でインタビューを受けましたが、アリエルとしても通用する内容のつもりです。 タイトルの「エンタープライズ領域こそ面白い」は少し過剰な表現で、真意は「エンタープライズ領域も面白い」です。 記事のために敢えて極端に振った表現をしました。エンタープライズという用語が、つまらないものだと思われすぎている気がするからです。実際のところ、サービスが企業向けだろうと一般ユーザ向けだろうと、基盤となる部分できちんと技術的なことができる職場であれば、どちらも同じぐらいに面白く、どちらも同じぐらい良い経験が積めると思います。作った技術の上で提供されるサービスが誰を向いているかは、単純に人それぞれの嗜好や価値観であって、その時々の直感で選べばよいかと思います。 むしろ技術者の経験として大きな違いを生むの
川野さんがアリエルをさりました。まあ、彼がどこで何をしようがいいですが、昨日は川野さんの最終出社日。無事、みんなの投票で決まったプレゼント『アジャストパワーウエイトベスト10KG、通称、防弾チョッキ』を渡すことができました。川野さんも喜んでくれたようです。 プレゼントを開け、早速着替えてみた川野さん そのままトレーニングを始める川野さん ひとしきりトレーニングに励んだ後、川野さんからもプレゼントがありました。まさかりを片手にお菓子を渡そうとするも、怖がられてしまい渡せない川野さん。最終的にとまるんるんに切りかかっていました。 感情を爆発させる川野さん おまけ
JavaOne 2013 サンフランシスコ報告会 Tokyoで「Java EE のアップデート」の発表をしてきました。 使った発表資料を公開します。 最近はs5でプレゼンファイルを作るのが常態化しています。Emacsだけで作れて楽だからです。しかしs5の見栄えには満足していません。きれいなテーマを探しましたが見つからなかったので、結局、いつもの見栄えのプレゼンでした。 テキストで書けて、HTMLもしくはPDFで出力できて、それなりに見栄えが良いプレゼン作成ツールがあれば乗り換えたいものです。 ダウンロード版(HTMLファイルをWebブラウザで開いてください): javaone2013.tar.gz
月曜日(2013年9月23日)に聞いた技術セッションのレポートを書きます。 Java Caching (JSR 107): The State of the Union [CON10175] 事前予約していませんでしたが、当日の朝、飛び入りで参加しました。裏番組に人気の”The Road to Lambda”があったせいか、会場はそこそこ空いていました。 スピーカはOracle社の人とTerracotta社のふたりでした。 12年かかって、ようやくJava Caching(JCache)のAPIが標準化されそうです。スペックのリリース予定日は2013年12月12日です。 スペックや参照実装はGitHubから取得できます。JCacheのオープンソース参照実装としてはEhcacheが有名です。 キャッシュはいわば一種のKVSなので、JCacheのAPIは、原則、コレクションフレームワークのMa
JavaOne2013に参加するためサンフランシスコに行ってきました。JavaOne参加は今年で3度目です。そのレポート記事です。 去年のレポートはJavaOne2012@サンフランシスコ レポートを見てください(関連記事もたどれます)。 3年前のレポートはJavaOne/Oracle OpenWorldレポート – ラリーエリソン編 –から関連記事をたどってください。 今年のJavaOneもOracle OpenWorldと同時開催です。同時開催と言うと聞こえはいいですが、実態は、メインとなるOracle OpenWorldの片隅でJavaOneがついでに開催させてもらっている雰囲気です。今年のOracle OpenWorldの登録人数は6万人近いと公式発表がありました。JavaOneの登録人数は公式発表がありません。噂で人数を聞きましたが、信憑性が不明なのでここには書きません。イベント
先週、社内で WebRTC の勉強会がありました。WebRTC は Web ブラウザを使ってリアルタイムコミュニケーション(RTC)することを目指したプロジェクトまたは API のことです。W3C によって仕様の標準化が進められています。詳しくはプロジェクトサイトを参照して下さい。 WebRTC: http://www.webrtc.org/ 勉強会で紹介されたコードを試してみて、「Sencha Touch のカスタムコンポーネントにすると面白いのでは!」と思い、早速作ってみました。ただ、肝心のコミュニケーション部分の API はまだラップしていません。。今のところ、デバイスのカメラやマイクからストリームデータを取得する API をラップしただけです。今後、追加していきたいと思います。 Usage – 単純に、デバイスのカメラと繋いでページに出力する場合
それでは「フォトレポート」アプリの作成を始めましょう。 デザイナーの起動 Smart FrameworkのアプリケーションはWebベースの開発ツール「Designer(デザイナー)」を利用して作成します。Designerは次の手順で起動します。 1. Smart FrameworkのWebデータベースにログインします。 2. 左上の「menu」->「テナント管理・運用」->「アプリ管理」から「スキーマ管理」を選択して、スキーマ管理画面に遷移します。 3. ツールバーの「アプリ連携」から「Designerを開く」を選択して下さい。 4. 新しいウィンドウでDesignerページが開きます。 プロジェクトの作成 アプリケーションは「プロジェクト」と呼ばれる単位で管理します。プロジェクトはDesignerから次の手順で作成します。 1. 画面左上にある「新規プロジェクト」アイコンをクリックして、
今年のゴールデンウィークにIBM Impact2013に初参加しました。3ヶ月以上も経過しています。今ごろ報告ブログを書きます。 公式情報は下記URLからたどれます。もっとも、このURLでは来年Impact2014に置き換わってImpact2013の情報が探せなくなりそうです。 http://www.ibm.com/impact IBMのサイトは昔から「変わらないURL」に対する意識が低いので困ります。ティム・バーナーズ=リー言うところのクールURI(“Cool URIs don’t change”)のかけらもありません。意識と言うより、使っているシステムのせいかもしれませんが。と言うのも、IBMサイトで裏にNotesを使っている場合のURLの醜さは救いようがないからです。上記URLの先は裏がNotesでは無さそうなので、少しマシなようです。 IBMの反クールURIの件は10年ぐらい前から
開発部の栗田です。End-to-Endテストの効率化をテーマにプレゼンを行いましたので概要を紹介させて頂きます。 繰り返しのテストを自動化してくれるSelenium WebDriver。(以下WebDriverと呼びます) 過去長い時間マニュアルテストをしていた私には、夢の様なツールで大好きです。 スモークテストを自動化して、随分助けて頂きました。 しかし確認作業を全部自動化出来るかというと、実はそうでは無いようです。値の検証は得意で動作テストは概ね自動化できそうですが、「見た目の不具合(レイアウトバグ)」を見つけるのは苦手だと思います。 レイアウト確認をマニュアルで行おうとすると、確認に至るまでの操作もマニュアルで行う事になります。そうなると、動作確認を自動化するするメリットが減ってしまいそうです。 そんな苦手分野を克服する方法の紹介です。 <目的は時間の削減、自動化は方法、半自動でも時
技術評論社から「コーディングを支える技術」を献本してもらったので読みました。 著者の西尾さんはサイボウズラボの数少ない生き残り著名人です。たぶんお会いしたことはないと思います。もしかしたら西尾さんが今ほど有名になる前にどこかで会っているかもしれませんが。 最近のサイボウズラボはどんなものかとWebサイトを見たら、新着情報も不明で、かつCopyright表記も2011年で止まっていました。でも中の人が元気そうなのでいいのでしょう。IBM社の基礎研の人によると、IBM基礎研の人数はIBM全体の社員の約0.1%だそうです。個人的に、IT業界全般で0.1%ぐらいは俗世間から離れた研究をしていいと思います。0.1%ぐらいの人たちは、役に立つとか役に立たないとかそんなつまらない俗世から離れてよいのです。業界の健全性のために必要なコストです。 本の感想に戻ります。 とにかくまず読みやすいです。すらすら読
次のページ
このページを最初にブックマークしてみませんか?
『ありえるえりあ | 上から読んでも下から読んでも・・・』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く