UT Startup Gymというグループに参加しています。UT Startup Gymウェブサービスをスタートアップするための勉強会で、今は第3期目を迎えています。
第1期、第2期といくつかのサービスがスタートアップしました。私も第2期にちょっとだけ参加させていただいたのですが、どこかプロジェクトに参加するわけでもなく勉強会だけ参加していた感じです。今期は私も何か作ってみたくて参加しています。
そういうわけで、まずは、ウェブサービスを作るための勉強です。UT Startup Gymでは毎週初心者のための勉強会をやっています。昨日は PHP でかんたん Twitter アプリをつくるでした。
私は第2期にも参加していたのでTA的に参加です。https://api.twitter.com/1/statuses/user_timeline.json?screen_name=appresso_dstnというURLでappresso_dstnのユーザータイムラインが取得できます。このままだとJSON形式ですので、htmlで見やすい形に整形したものを表示するPHPのプログラムを作るというのが目標です。
勉強会は初心者のひともたくさんいるし、環境から作っていくという感じでなかなか大変でしたが、大体の人がプログラムを動かすところまで出来たので大成功です。
勉強会が終わった後でも、数人が残ってプログラムを更に発展させるということをやっていて、とても活気を感じられました。
そのプログラムを発展させる例なのですが、このままではユーザー名が固定なのでテキストボックスからユーザー名を入力してJavaScriptで動的に表示を切り替えるということをやりました。
残っていた人は私も含めてみんなHTML、JavaScriptの素人ばかりでした。最初は動的に切り替えるというのが難しそうだったので、Submitボタンを押したらリロードしてユーザーのタイムラインを切り替えるということをやりました。
そして、ここからが大変です。今度はJavaScriptでタイムラインの中身を取得して動的に切り替えます。
これにはAJAXという技術が必要だということが分かっているのですが、どうやればいいのかわかりません。XMLHttpRequest というのを使えばAJAXを実現できるということも分かっているのですが、面倒くさそうだし、難しそうです。
そこでjQueryというAJAXを簡単に実現するライブラリがあるので、jQueryを使ってみました。
結論から言うと、とても簡単に実現できました。PHPでタイムラインを表示する部分だけを別のプログラムに分離して、jQueryをつかって挿入するだけです。
<div id="timeline"/>

という要素の中にタイムラインを挿入したければ、JavaScriptで
$("#timeline").load("timeline.php", {username: "appresso_dstn"});

という呼び出しをするだけです。
これで動的にページが更新されたときには一同感動しました。これなら自分たちでもやれる!という実感を持つことが出来ました。
いまさらですが、jQueryはとても便利なライブラリです。UT Startup Gymでやるプロジェクトの中でも積極的に使っていこうと思います。

※ 今回のプログラムの全体は後日アップしようと思います。

近頃更新が止まっているアプレッソ開発チームのブログですが、先ほど久々の更新をしました。

今回は弊社開発部のルーキー”てるー”が「Project Lambda」の勉強会の担当をしてくれたので、てるーの記事を代理で投稿しました。

Project Lambda(JSR335)はJava 8で採用されるようです。
Project Lambdaではどうやらラムダは無名クラスのシンタックスシュガーとして実装されるようで、クロージャーではないのですね。クロージャーを入れようとすると大幅な仕様変更を伴うことになるのでしょう。Javaはもう枯れた技術としてこれはもう仕方がないことなのでしょうね。
まあそれでもラムダの導入はいくらかのメリットがあるのでこれはこれで楽しみではあります。

それはさておき、アプレッソ開発チームのブログ初登場のてるーの今後の活躍に期待したいと思います。

先日、dstn技術者交流会というイベントが会社で行われました。
アプレッソの製品であるDataSpiderやその周辺の技術についてパートナーさまの主に技術者の方と交流する会です。
交流会の様子はこちらを見てくださいね→http://dstn.appresso.com/dstn/modules/d3blog/details.php?bid=19

私もdstn技術者交流会でDataSpiderとHadoopの連携についてプレゼンをしました。
デモを交えたプレゼンだったのですが、本番でデモが動かなくなってしまってとても焦りました。
結局、デモは見せられないし、私自身もあたふたしてしまって、まったくダメなプレゼンになってしまいました…

近頃はデモしたり、プレゼンしたりする機会が増えてきたので、もっとプレゼンを鍛えないといけないなと思いました。

dstnというのは、DataSpider Technical Networkの略で、フォーラムを中心としたDataSpiderのユーザーコミュニケーションです。
去年発足したこのdstnですが、もっと活性化させよう!ということで、開発のメンバーも参加して盛り上げを図っています。
盛り上げの一環として、私もブログを書きました。「DataSpiderのHadoop連携とAsakusa Framework」と題して、先日プレスリリースした、「Asakusa Framework™」が「DataSpiderR Servista」と連携という記事の技術解説を行なっています。

今後も月に1回くらいのペースでこちらのほうに寄稿しようと思いますので、そちらもよろしくお願いします。

今年で10年目になる一連のLLイベント。今年はLL Decadeという名前で開催されました。
今年はやはりこの10年を振り返るような話題が多かったです。
今年の目玉は何と言ってもLT。今年は例年の公募から運営が選んで厳選されたメンバーを選出したそうでどのLTも見応えのあるものでした。

私自身はAppressoに入社してからはJavaやC#ばかり書いていたのでLLからは遠ざかっていましたが、イベントに参加してみてLLのコミュニティはやはり楽しいなと感じましたので、これからはもう少し積極的に関わっていきたいなと思いました。

今年はもう一つ面白い企画として「君ならどう書く Online」という聴衆参加型の企画があったので参加してみました。

http://ll.jus.or.jp/2012/doukaku-online.html

私はraccというRuby製のyaccクローンで参戦しました。
以下がそのコードです。yaccのようなパーサージェネレータは初めて使ってみたのですが、この課題をパーサーで作るのは難しいですね。時間が足らずまだまだ改善の余地がありますがなんとか動くものを作ることができました。


  1. トークンを文字単位で区切らなければならずマッチする構文がほかの構文の一部になっていたりしていたのでその場合の扱いが分からなかったです。例えば、macアドレスはipv6アドレスの一部分として出てくることがあります。結局アクションの中で処理したのですがこの辺は改良の余地がありますね。

  2. エラーの回避のやり方が分かりませんでしたのでその他の扱いができませんでした。一行毎パースしてエラー時にrescueで処理させました。これも構文規則の中にかけるようなので改良できそうです。



Javaでは文字列比較は==ではなくequals()メソッドを使えと言われます。これは、==は参照比較なのに対して、equals()は文字列の内容の比較だからです。
C#では、Equals()メソッドは内容の比較でReferenceEquals()が参照の比較になります。
そして==は内容を比較します。

C#では、Equals()よりも==を使えということをよく言われます。
これは、Equals()は引数にobject型を受け取るため、stringと比較できない型(例えばint型)でも引数に渡すことができてしまうからです。もちろん、実行時にはエラーになるわけですが、せっかくの静的な型付言語なので、静的に型チェックをしてほしいところです。

私もC#で文字列の比較には==を使っているのですが、不可解な不具合に悩まされました。

私はここ1年半くらいsilverlightで開発しています。実はDataSpiderのクラウド対応ということで従来DataSpider Studioと呼ばれていた開発環境のクライアント部をブラウザ上で利用出来るようにsilverlightで実装しています。(もうすぐリリース出来ると思いますが、公式の発表はアプレッソのホームページでご確認下さい。)

1年半まえ(2009年の10月くらいから開発を開始していました。)は参考になりそうな和書は、「Silverlightで開発するデータ駆動アプリケーション」くらいだったのですが、去年くらいに結構な量のsilverlight関連の書籍が出版されていました。

去年はsilverlight 4や開発環境のVisual Studio 2010がリリースされたりとsilverlight周辺は結構盛り上がっていたように感じます。それが書籍の増加にも反映されていたようです。

ところが去年の暮れにはマイクロソフトが戦略変更をしてHTML5を推してきたり(マイクロソフトが戦略変更。HTML5が唯一のクロスプラットフォーム、SilverlightはWindows Phone 7のプラットフォームに)してブラウザ上のRIAプラットフォームとしてのsilverlightの立場が危ぶまれてきているようです。

ただ、こちらの記事(HTML5とSilverlight 5、マイクロソフトは両者をどう差別化しようとしているのか?)にあるように、真のリッチクライアントとしてはまだsilverlightでなければ出来ないことは多くあります。
DataSpiderも当時からflashなどの競合技術があるなかsilverlightを選択したのはそのパフォーマンスと豊富なGUIコンポーネントが魅力的だったからです。いまでもDataSpiderのようなリッチなGUIを実現しようと思ったら、silverlight以外の選択肢はないと思っています。

アプレッソ開発部では一緒に働ける仲間を募集しています。

プログラマだけではなく、QAエンジニアなども募集しています。

くわしくは↓

http://www.green-japan.com/company/1008.html

私は開発の人間なのでプログラマの募集について書きます。

アプレッソはいわゆるパッケージベンダーでパッケージソフトウェアをつくっています。
このパッケージベンダーのソフトウェア技術者というのは実は日本のソフトウェア業界ではマイノリティなのではないかと思っています。
日本のソフトウエア業界の大きな部分はSIに占められているのではないかと思います。それと最近ではWeb系の開発などですね。(SIでもフロントエンドにWebが使われることが多いのですが、ここではそれもSIに含めて述べます)
特に専業のパッケージベンダーとしてやっている会社というのは日本では数が限られているのではないかと思います。
そのなかで同じパッケージベンダーからの転職という人は滅多にありません。
アプレッソに転職される方のほとんどはSIをやっていて会社からの転職です。
また、パッケージベンダーでのソフトウェア開発はSIやWeb系の開発とは大きく異なる部分があります。
そのあたりの事情を少し書こうと思います。

アプレッソ開発部のyouchanです。

ということで、アプレッソの開発部の1メンバーとして、ブログを書こうと思います。
個人ブログもはてなダイアリーにあるのですが、最近更新が滞っています。
あと、このブログも個人として発信していますので、会社の公式な見解ではありません。
あくまで個人として所属を明らかにしつつ会社に迷惑の掛からないように個人的な意見を書いていこうと思っています。

このページのトップヘ

見出し画像
×