Posted by & filed under 製品.


アリエルの開発環境ってNotesのそれに似ているそうです。基本的にデータは全て、文書と呼ばれる単位で保存されます。RDBMSで言えば、テーブルの一レコードが一文書に相当します。それらの文書をアプリケーションって呼ばれる単位で格納しています。また、RDBMS的に言えばアプリケーションはテーブルに相当する概念らしいです。偉い人からは、厳密に言えばその説明は間違っている、って怒られそうですが…。
Notesの開発者にならもう少し厳密にマッピングできるように説明できるそうですが、Notesの開発者は希少種になりつつあるそうなので、それは触れてはいけないそうです。極めて単純化してしまえば、Notesも一覧画面と文書のCRUDが簡単に作れるシステムでしかないですよね。ちなみに、RDBMSもCRUDが簡単に作れるシステムの一つらしいです。

CRUDが簡単に作れるシステム、って言われても何ができるかよく分からないですよね。私も分かりません。RDBMSで何ができるのかもあまり想像ができません。でも、これで業務用のアプリケーションのかなりの部分ができちゃうそうです。
Screen Shot 2013-04-03 at 3.02.03 PMCTOの昔話につきあうと、CTOがLotusにいた頃のバグ管理システムはNotesのデータベースを使って行っていたそうです。一つのイシューが一つのNotesの文書に対応していて、各文書の特定のフィールドの値によって状態を管理して、一覧に表示していたそうです。gitlabのような製品の簡易なイシュー管理機能であればすぐに作れるようなものらしいです。そして、アリエルの開発環境でもそれは同じらしいです。Aqua Designerとか呼ばれている製品でアプリケーションを開発します。いろんな部品をぺたぺた貼って、プロパティを設定して開発するらしいです。よくある製品みたいですね。びじねすろじっく?ビジネスロジックはサーバーサイドJavaScriptで記述できるらしいです。あっ、アリエルの人って何人かはJavaScriptの本を書いたりしているらしいですが、みんなJavaScriptは嫌いだって言っています。秘密ですよ。

上のものを実際に実行環境で動かしたものがこれ。
Screen Shot 2013-04-03 at 3.14.09 PM

 

 

 


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under 勉強会.


「Sencha Touch はハマることが多い。ハマりから抜け出すには、、、ソース嫁!」

先週の金曜日、Sencha Touch 2 のソースコード読書会第 1 回目を開催しました。上記の言葉は、会の冒頭で LT をして頂いた高岡さんの言葉です。(いつも私の無茶ぶりを引き受けて頂いて、本当にありがとうございます _o_)

Sencha Touch を使ったアプリの開発は、一般的な Web アプリの開発とは違う作法が要求されます。そもそも HTML は書かないですし、独自のクラスシステムやイベントシステムに従ってコードを書くので JavaScript を書いている感覚もそれほどありません。だから、、、ハマります。何度もハマって痛い思いをしたあげく辿り着いた結論は、ライブラリのソースコードをしっかり読むことでした。

Sencha のフレームワーク上で効率良く開発するには、ソースコードの理解が必要

そんな想いからソースコードの読書会を思いついたところ、賛同してくれるエンジニアの方が多かったので、この度企画させて頂きました。素敵な会場を提供して下さったアスキー・メディアワークス様、どうもありがとうございました。

また、アスキー・メディアワークス様のご好意で、当日の読書会の模様を中継して頂きました。録画があるので、ご興味のある方はぜひどうぞ。

<p><em>There is embedded content here that you cannot see. Please <a href="/wp/?p=3139">open the post in a web browser</a> to see this.</em></p>

読書会で利用した資料は、以下のサイトにアップしています。

http://www.anatomyofsencha.com/touch/2-2/index.html#!/guide/meetup1

anatomyofsencha

初めての読書会で手探りな部分が多かったのですが、和気あいあいと進めることができました。全員で一緒にコードを読み解いて行く感じで、私自身も勉強になりましたし、とても楽しかったです。参加者の方にも好評で、主催者としては、ほっとしました。

今回は、フレームワークの仕組みを作るために利用されているユーティリティ関数を読んだのですが、車輪の再発明をしていたことに気づかれた方が多かったことが印象的でした。かくいう私も、あるユーティリティ関数を使えば済むところを、似たようなコードを自前で書いていたことに気づいたり。。また、参加者の方の実装で苦労した話が聞けたりと、いろいろな発見のあった読書会でした。

まるで放課後の雑談のようだったソースコード読書会、第 2 回もやります!ゴールデンウィーク明け頃に開催する予定なので、興味のある方は、ぜひ Japan Sencha User Group へのご参加お願いします。


関連文書:

Posted by & filed under 製品.


アリエルって何の会社?」の記事で、アリエルは会社ができる以前からグループウェアばっかり作っている、って言うことが分かってもらえたと思います。グループウェアって、昔はそれ自体で価値があったのかも知れませんが、今はコモディティ化して特に目新しい機能はないです。他の製品と比較しても○×表がどれくらい埋まるか、って言うことで、ユーザからしてみればどれも似たようなものでしょ、と認識しているとおもいます。私の理解では、強いて言えば、その製品のUIが好きか嫌いか、と言う違いしかありません。

ホームページを見ていると、開発環境のようなことを謳っています。グループウェアについては一般的なことなので一度でも使ったことがある人なら分かると思うんですが、開発環境についてはアリエルで働いている私でもこのページの内容は漠然としていてよく分かりません。勉強不足でごめんなさい。
アリエルはLotusの出身者達が作った会社らしいですが、Notesは単なるグループウェアだけじゃなくって、クライアント・サーバ環境での開発環境の雄だったそうです。CTOに言わせると、インターネットに乗り損ねた時代遅れのシステムらしいです。大量の非定型的な文書群をデータベースにため込んで利用できるようにするシステムらしいです。非定型な文書を登録したり閲覧したり、一覧するための仕組みを作り込めるので、開発環境って呼ぶらしいです。
以前、CTOに「インターネットに乗り損ねたってどういうことですか?」って聞いたことがあります。WebとしてNotesのデータベースを操作できるように開発するのはものすごく大変だっていうことでした。アリエルの製品は最初からWebを意識してそれをベースに開発したので、Notesと同じことがとっても簡単に作れて、Webからのアクセスに最適化されているんだよって、私にも分かるように教えてくれました。でも、よくよく考えてみると、煙に巻かれただけのような気もします。
それからNotesにあった問題点を解消しているのも、導入の決め手になっているんだよ、って教えてもらえました。でも、その問題点は諸刃の剣なので何が正しくて何が間違っているかは一概には言えないって、遠い目線をして語ってくれました。

アリエルの製品は、開発環境・フレームワークとそれを実行するための環境の二つがあります。前回紹介したグループウェアの機能はすべて、このフレームワーク上に作られています。グループウェア的な機能ぐらいであればアリエルのフレームワークで作れるって言うことらしいです。会社の偉い人が、「アリエルのグループウェアは、それ自体が価値を提供するだけじゃなくって、フレームワークのショーケースなんだよ」っておっしゃってました。

長くなってきたので、このフレームワークや開発環境がどういうものなのか、って言うお話しは次回にします。


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under 製品.


アリエルって技術が高そうだってよく言われますが、それと同じくらい何をやっている会社か分からないって言われます。技術的に高いかどうかは自分たちでは判断できませんが、何をやっている会社か分からないっていうのはそうだな〜、って感じます。会社のホームページを見ていてもよく分かりませんよね。

アリエルは昔はマルチスケジューラって言うP2Pで動作するスケジュールソフトを作っていました。本当はグループウェアだそうです。でも、最近はスケジューラって思っている人が多いみたいです。名前から連想するとスケジュールソフトですよね。グループウェアだって言っているは、スケジュールを複数の人で共有できるからだそうです。アメリカじゃグループウェアの定義はちょっと違うみたいなんですが、日本だと実質、グループウェアはスケジュール共有ソフトみたいな感じらしいです。
このソフトは無料で配布していて、ビジネスとしてはやっていないらしいです。実は内緒なんですが、社内でもマルチスケジューラのことを知らない人がいるらしいです。

ビジネスとしては何をやっているの?と言うと、アリエルのホームページにあるArielAirOne Enterpriseって言う製品を作っています。製品名、長いですね。でも、安心してください。社内でこの名前で呼んでいる人なんていません。社内では、「アクア」って読んでいるみたいです。開発コードネームだそうです。
この製品もグループウェアの一種です。アリエルってグループウェアが好きなんですね。創業メンバーの人たちも、Lotusって言う会社でNotes/Dominoに関係していたそうで、それらはグループウェアの老舗らしいです。つくづく、グループウェアが好きな人の集まりなんですね。

製品名にEnterpriseってついているように、この製品のターゲットはエンタープライズらしいです。数千人規模の会社がメインターゲットらしいです。こちらの製品は小さな会社はあまりターゲットとしていないので、知らない人は知らないんだろうと思います。

この製品はグループウェアの機能に数千人規模の会社で必要となるような管理機能がついているようなものです。グループウェアの基本機能って、スケジュールとか掲示板機能とか、タスク管理とか、グループウェア内のメール機能とか、いろいろあります。一般でいるグループウェアの基本機能は全て備えているらしいです。
あっ、グループウェアって情報を集約するためのポータルって言う機能があるらしいです。ちっちゃな窓が一画面に沢山なならんで、いろんな一覧とかスケジュールとか、よく分からないグラフとか絵とかがならんでいるものです。

ここまでは普通のグループウェアとしての機能です。グループウェアとしては普通の機能なのでつまらないですね。ただ、この製品はグループウェアとしての機能だけじゃなくって、もっと面白い機能を秘めています。それを次に説明しますね。


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under 開発.


桜が満開ですね。先週、京都を旅行したのですが、清水寺の桜がとても奇麗でした。という訳で、今回は Sencha.io の話をします。

Problem:

できるだけ短い開発期間でアプリをリリースしたいが、サーバーサイドのプログラミングが苦手、もしくは、毎回同じようなサーバーサイドのコードを書くのが面倒。

Solution:

BaaS の利用を検討してみましょう。BaaS は Backend as a Service の略で、アプリのサーバーサイドで実装する機能を API として提供してくれるサービスです。

アプリのバックエンドで必要な機能は、だいたい似ています。ユーザー登録、ログイン認証、データの保存、通知 etc。これらの機能を、アプリを作る度に毎回用意するのは面倒ですし、しっかりと実装するにはそれなりのスキルが必要です。短い開発期間でアプリをリリースしたいときに、サーバーサイドの準備が足かせになるケースは多いでしょう。そこで役に立つのが BaaS です。現在、BaaS を提供する事業者は複数存在しますが、Sencha Touch のアプリを作るなら Sencha 社が運営する BaaS「Sencha.io」がおすすめです。

Sencha.io:
http://www.sencha.com/products/io

Sencha.io はまだβ版ですが、徐々に実用レベルに近づいてきたように思います。先日発表された HTML5 is Ready App Contest で 1 位に輝いた Sencha Touch アプリ「JDI」は、バックエンドに Sencha.io を利用して、ユーザーの認証とデータの永続化を行っています。JDI のソースコードは GitHub に公開されているので、興味のある方はぜひ覗いてみて下さい。

JDI:
http://jdi.abysscorp.org
(PC の場合、Google Chrome もしくは Safari で利用できます)

JDI(ソースコード):
https://github.com/simonbrunel/jdi

Sencha.io の利用方法

まずは最新版の Sencha Cmd をインストールします。Sencha Cmd のバージョン 3.1 から、Sencha.io と連携できるようになりました。

Download Sencha Cmd:
http://www.sencha.com/products/sencha-cmd/download

続いて、Sencha.io のユーザー登録を行います。ページ下部の「Register here.」から登録ページへ。

Sencha.io ログインページ
https://manage.sencha.io/#!/login

ログインすると、アプリを管理するダッシュボードが表示されます。

io1

簡単なアプリを作成して Sencha.io にデプロイしてみます。Sencha Touch の SDK を配置したディレクトリに移動し generate コマンドを使ってアプリを生成します。

Hello という名称のアプリが作成されました。このアプリをそのまま Sencha.io にデプロイします。まずは生成したアプリのディレクトリに移動して、production ビルドを行います。

build/Hello/production ディレクトリ以下に、リリース用アプリのファイル一式が生成されました。今度は Sencha.io に Hello アプリを作成します。コンソールから以下のコマンドを実行します。

Sencha.io に接続し、アプリが作成されました。ここで生成された AppId は、アプリから Sencha.io の BaaS を利用する際に必要になります。

続いて、アプリのソースコードをアップロードします。build/Hello/production ディレクトリに出力されたアプリの一式を app.zip という名前で圧縮します。

以下のコマンドを実行して、作成した app.zip を sencha.io にアップロードします。

ファイルをアップロードしただけでは、アプリは公開されません。最後に、アップロードしたアプリをデプロイします。

これで、アプリがインターネット上に公開されました。

以下のコマンドを実行してアプリの一覧を表示します。

Hello アプリの appId や URL(http://b4va2vk0.senchafy.com) が分かりますね。この URLを開くと、デプロイした Hello アプリが表示されます。

io2

アプリの URL は CNAME を使って自前で持っているドメインに割り当てることができます。詳しくはドキュメントを参照して下さい。私も試してみて、お名前.com で取得したドメインを Sencha.io のアプリに割り当てることができました。

ここまでだと単純な PaaS ですよね。もちろんそういった用途で Sencha.io を使うのも有用ですが、今回は BaaS として提供されている認証機能を使ってみます。

Sencha.io の BaaS を利用するために Sencha.io SDK をダウンロードします。ダッシュボードにあるリンクから SDK をダウンロードして下さい。先ほど作成した Hello アプリのディレクトリ直下に io というディレクトリを作って、ダウンロードした SDK をコピーします。

app.js にある Ext.Loader に io ディレクトリへのパスを追加します(*1)。

また Sencha Cmd でビルドする際に io ディレクトリのコードを参照できるよう .sencha/app ディレクトリにある sencha.cfg という Sencha Cmd の設定ファイルにある app.classpath を更新します。

続いて Ext.application の io オプションに、先ほど作成した sencha.io アプリの appId を定義します(*1)。また controllers オプションに Ext.io.Controller を追加します(*2)。

以下のコマンドを実行して、Member という名称の認証グループを作成します。

作成した認証グループ Member と Hello アプリを関連づけるため、以下のコマンドを実行します。

これで準備は完了です。ページを表示してみましょう。ユーザーの登録と認証機能がアプリに備わりました。

io3

右上の「register」ボタンを押して、新しくユーザーを登録してみます。フォームに、メールアドレスとパスワードを入力します。パスワードは「アルファベット」+「数字」を組み合わせる必要があるので注意して下さい。

io4

登録後、認証が行われ、view/Main.js で記述した画面が表示されます。今度は、ログアウト機能を追加しましょう。Sencha.io の SDK には、ログアウトボタンが用意されています。view/Main.js を以下のように変更します。

ログアウトボタンを利用するために requires で「Ext.io.ux.AuthButton」クラスを宣言します(*1)。titlebar コンポーネントに items オプションを追加し(*2)、sioAuthButton コンポーネントを追加します(*3)。

ページを再読み込みすると、画面左上にログアウトボタンが表示されます。ログアウトボタンを押すと、ログアウト処理が実行され、ログインページに戻ります。これでユーザー登録、ログイン、ログアウトといった機能が実装できました。

io5

Discussion:

ほんの一部ですが、Sencha.io の機能をご紹介しました。Sencha.io を利用すれば、サーバサイドのプログラムを準備する手間なく、実用的なアプリを作成できます。少し前の Sencha.io は、アプリを Web ページからアップロードしなければならないなど未完成な印象がありましたが、Sencha Cmd との連携でかなり快適に使えるようになってきました。Sencha.io 以外にも BaaS はありますが、Sencha Touch アプリとスムーズに融合できる点は Sencha.io ならではの魅力でしょう。もしサーバーサイドの実装に負担を感じているのであれば、ぜひ Sencha.io を試してみてはいかがでしょうか(※但し、まだ正式リリースされていないので注意が必要です)。

ところで、実は、アリエルでも BaaS の開発プロジェクトが進行中です。そう遠くない将来、Sencha Touch アプリのバックエンドにアリエルの BaaS が利用できる、なんていう日が訪れるかもしれません。β版として公開できるようになれば、ぜひ、ありえるえりあで紹介したいと思います。

See Also:

Sencha.io ドキュメント:
http://docs.sencha.io/current/index.html

Sencha.io Support in Sencha Cmd:
http://www.sencha.com/blog/sencha-io-support-in-sencha-cmd


関連文書:

Posted by & filed under 勉強会.


Hello, ありえるたん

最近、英語学習はいかがですか?私はあまりうまくいってません。うまくいかなくなると、徐々に距離ができておっくうになりがちです。また調子の良いときに再開しようと思っていませんか。いまこのブログをたまたま見た方は幸運です。まさにその機会が訪れているんです。

勉強会名に Python と付いていますが、あまり意識せずにいろんな人に参加してもらいたいです。Python に興味をもつ参加者が多いと共通の話題として Python を取り上げることもあるでしょうが、それに限定するようなことはありません。

みなさんの話したいことを英語で話す機会の1つになると嬉しいです。

開催概要

  • 日程: 2013-3-18 (月) 19:00 – 21:00
  • 場所: アリエル・ネットワーク 会議室 (虎ノ門36森ビル 7階 ←引っ越しました!)
  • 登録はこちらから: http://connpass.com/event/1972/
  • ハッシュタグ: #pyhack_en

関連文書:

Posted by & filed under 勉強会.


先週、Japan Sencha User Group の勉強会があり、「Sencha Touch パーフェクトガイドの執筆作業が教えてくれたこと」というテーマでお話しました。

以下、発表資料です。

一番伝えたかったのは「ソースコードを読むこと」の効果です。腹筋コロコロの話はおまけです。


関連文書:

Posted by & filed under いろいろ.


先日、と言うか、月曜日に注文した炎のKindleがやって来ました。やって来たのは火曜ですが…。本当は8.9インチのほうが欲しかったのですが、おもちゃに2万5千円は高すぎます。そもそも、Androidとか嫌いだし…。

[続きを読む…]


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under .


上司や同僚が執筆に参加した Python3 に特化したプログラミング本です。

ちょっと長くなったのと、コードスニペットが書きやすいので別ブログに感想を書きました。世の中にはこわいことがたくさんありますが、Python サポーターズもその中の1つです。

パーフェクトPython
技術評論社の紹介ページ


関連文書: