FileMakerカンファレンス2日目(30日)に行って来ましたのでそのメモ的なもの
1,ExecuteSQLについて
基本的な使い方や注意点などを丁寧に説明してくれていました。
バインド変数といえば言いのか第1引数(query)内に「where fieldA=? or fieldB=?」とか
に対する第4引数の個数がマッチしなくても無視するだけとか凄いなって思った。
パフォーマンスに関してはやはりレコード総数の多いテーブルをjoinで使ったりしたり
selectの結果の対象レコード数が多い場合は重いらしい。まぁそうでしょう。
自分が使うとしたらGroupe by とか使いそう。あとは、例えば顧客管理に対する検索で
関連テーブルAとBの内容に対する割と複雑なandやor検索をSQLで処理して顧客管理の
idだけ取得して関連レコード移動使って従来の検索手段の代替にするとかかな。
2,バックアップストラテジー
FileMakerServer冗長化についてのセッションでした
メインサーバーの電源ぶっこぬいて待機系に移行するデモ失敗したのは残念でしたね。
3,命名規則についてのセッション
これは、思っていたのとちょっと(かなり?)違くて、え?ってなりました。
でも名前をドメイン(もしくはカテゴリ)_意味を表す名称_補足情報ていう名前にするのは
賛成かな。
4,医療現場(在宅医療)でのFileMakerの活用
このセッションではクライアント端末側はリモートデスクトップを利用したシンクラ
イアントな使い方の事例紹介でした。確かにこの方法はFileMakerServerとリモート
デスクトップサーバーとの間で処理してクライアント側には結果の差分更新分のみ
送信されるので外からのアクセスにおいてパフォーマンスとセキュリティ等良いバランス
がとれているように思えました。何より開発がFileMakerのみで済むのがいいですね。
5,医療現場(継続医療)でのFileMakerの活用
このセッションではカスタムWeb公開の事例でした。
パフォーマンスを維持するために検索結果等対象レコード数を極力必要最小限になるよう
工夫したり、Ajaxで随時更新にしてトラフィックを小さくする努力をされているようです。
自分は長らく既存ソリューションの延長上の開発しかしてないので、レイアウトがやぼったく
今回のカンファレンスで沢山見かけたWebっぽいレイアウトに非常に危機感を覚えました。
ヤバイ、取り残されてる!って感じ。勉強しなきゃ......
2012年12月5日水曜日
2012年11月29日木曜日
FileMakerカンファレンス1日目行ってきた
FileMakerカンファレンス1日目(29日)に行って来ましたのでそのメモ的なもの
1,オープニング・セッション
NDA事項が含まれるため記載できません。
2,FileMaker Ver12のオブジェクトフィールドについて
FileMaker Ver12からオブジェクトフィールドがぱうわーうっぷしました。
・実体データを指定したPATHに保存や暗号化して保存などがオプションで
選択できるようになって、FileMakerファイルの容量を軽く出来るようになった。
※従来の参照PATHのみ保存と似ているが違う。
・レイアウト上のオブジェクトフィールドの表示オプションでインタラクティブ~を
チェックしておくと保存しているPDFや音楽、動画ファイルを直接再生できる。
FileMaker社の方がスピーカーだったのですが、資料のページ送りが早くてメモ
しきれない、話がカミカミで聞き取りづらいなどちょっと残念でした。
3,FileMakerGoとWeb連携的な
iOS上で動くFileMakerランタイムアプリFileMakerGoでFileMakerソリューションを
開発する際にUIの一部をWebViewerを使ってHTML5やJavaScriptを利用して少し
インタラクティブにしましょう的な内容。
WebViewer上で入力した内容をソースを取得する関数やfmpプロトコルを使って
FileMakerにフィードバックすれば連携出来るよね!という内容。
4,FileMakerServerを活かすためのインフラ設定
FileMakerServer Ver12から64bit対応なので64bitでマルチコアなサーバーを
使うと良いですよという話。32bitOSだとキャッシュに割り当てられる上限が
800MBだが64bitOSだと積んでいるメモリの50%まで割り当てられる。
割り当てるメモリの容量はAdminConsoleの使用状況でキャッシュヒット率を
見て調整しましょう。
折角それぞれのセッションでメモ取ってたのに今は手元にないのでざっくり記憶を
元にブログ書いてる残念な自分......
1,オープニング・セッション
NDA事項が含まれるため記載できません。
2,FileMaker Ver12のオブジェクトフィールドについて
FileMaker Ver12からオブジェクトフィールドがぱうわーうっぷしました。
・実体データを指定したPATHに保存や暗号化して保存などがオプションで
選択できるようになって、FileMakerファイルの容量を軽く出来るようになった。
※従来の参照PATHのみ保存と似ているが違う。
・レイアウト上のオブジェクトフィールドの表示オプションでインタラクティブ~を
チェックしておくと保存しているPDFや音楽、動画ファイルを直接再生できる。
FileMaker社の方がスピーカーだったのですが、資料のページ送りが早くてメモ
しきれない、話がカミカミで聞き取りづらいなどちょっと残念でした。
3,FileMakerGoとWeb連携的な
iOS上で動くFileMakerランタイムアプリFileMakerGoでFileMakerソリューションを
開発する際にUIの一部をWebViewerを使ってHTML5やJavaScriptを利用して少し
インタラクティブにしましょう的な内容。
WebViewer上で入力した内容をソースを取得する関数やfmpプロトコルを使って
FileMakerにフィードバックすれば連携出来るよね!という内容。
4,FileMakerServerを活かすためのインフラ設定
FileMakerServer Ver12から64bit対応なので64bitでマルチコアなサーバーを
使うと良いですよという話。32bitOSだとキャッシュに割り当てられる上限が
800MBだが64bitOSだと積んでいるメモリの50%まで割り当てられる。
割り当てるメモリの容量はAdminConsoleの使用状況でキャッシュヒット率を
見て調整しましょう。
折角それぞれのセッションでメモ取ってたのに今は手元にないのでざっくり記憶を
元にブログ書いてる残念な自分......
2012年10月24日水曜日
FM-Tokyoに行きました。
この間、10月のFileMaker オフラインミーティングに参加しました。
1,カスタムWeb勉強会
・Githubに沢山カスタムWeb用のライブラリありますよ。
・FMCakeMIX for CakePHP2.x
・Web公開エンジンに負荷の少ない死活管理をしましょう。
など。開始前の準備時間?にPerlのMojolicious::Liteで簡単な検索だけのものを見せる。
※もちろんカスタムWeb公開ですよ。DBはFileMakerですよ。
2,オフラインミーティング
・ツールを組み合わせてiPhoneでの見栄えの良い名刺管理
・UUIDについて
・レスポンシブWebデザインについて
・などなど
1,カスタムWeb勉強会
・Githubに沢山カスタムWeb用のライブラリありますよ。
・FMCakeMIX for CakePHP2.x
・Web公開エンジンに負荷の少ない死活管理をしましょう。
など。開始前の準備時間?にPerlのMojolicious::Liteで簡単な検索だけのものを見せる。
※もちろんカスタムWeb公開ですよ。DBはFileMakerですよ。
2,オフラインミーティング
・ツールを組み合わせてiPhoneでの見栄えの良い名刺管理
・UUIDについて
・レスポンシブWebデザインについて
・などなど
2012年1月8日日曜日
FileMakerとRubyのSinatra
Sinatraのチュートリアルを少し触って、これなら簡単にFileMakerと接続出来るんじゃない?
と思ったのでやってみました。
gihyo.jp:第9回 SinatraとSequel・Hamlで掲示板アプリを作る
http://gihyo.jp/dev/serial/01/ruby/0009
が自分がチュートリアル(以下、見本)としてやってみみたもので、これのmodel部分をFileMakerに
置換えました。
※FileMakerやRuby、Sinatraそのものの細かい説明は省きます。
最終的な階層は以下(見本のファイルも混在してます)
---
---
FileMaker部分
・bbsテーブルの作成、カラムは見本のapp/model/comment.rb内で定義しているクラス
Commentsを真似て定義。但し、posted_dateはFileMaker側ではtimestamp型で作成時に自動で
現在のタイムスタンプが入るよう設定。
Ruby部分
・app/model/comment.rbにFileMakerとの接続クラス追加
---以下をcomment.rbに追加---
・hamlを編集(追加)
---app/view/fmbbs.haml
※HamlはPythonのようにインデントが文法になってるので注意!
・app/start.rbを編集
---app/start.rbを以下のように変更---
・rfm(lardawge-rfm)をインストールするの忘れずに!
$ sudo gem install lardawge-rfm
GitHub:https://github.com/lardawge/rfm
これでstart.rbのある位置をカレントにして
$ ruby -rubygems start.rb
これで
http://localhost:4567/fmbbs
で試せます。簡単ですね!
今回、自分がつまずいた所は、
1,rfm経由でFileMakerにレコード作成(多分編集も同じ)でtimestamp型のカラムに値を
設定するための方法が分からなかった。※DateTime型だとエラーになる、整形してもエラー
になる。なんでや!
→読み込みは出来るので、FileMaker側で作成時自動で値設定にした。
2,投稿済みデータの降順ソートがうまくいかない!
→lardawge-rfmでは降順の指定が"desc"ではなく、"descend"だった。
Railsでやるほどじゃないけどちょっと簡単にFileMakerとWebアプリつなぎたいとか、これで
どうでしょうか? 2012/10/24 編集:コード断片をGithubのGistからの読み込みに変えました。
と思ったのでやってみました。
gihyo.jp:第9回 SinatraとSequel・Hamlで掲示板アプリを作る
http://gihyo.jp/dev/serial/01/ruby/0009
が自分がチュートリアル(以下、見本)としてやってみみたもので、これのmodel部分をFileMakerに
置換えました。
※FileMakerやRuby、Sinatraそのものの細かい説明は省きます。
最終的な階層は以下(見本のファイルも混在してます)
---
app/ start.rb model/ comment.rb view / layout.haml index.haml fmbbs.haml style.sass
---
FileMaker部分
・bbsテーブルの作成、カラムは見本のapp/model/comment.rb内で定義しているクラス
Commentsを真似て定義。但し、posted_dateはFileMaker側ではtimestamp型で作成時に自動で
現在のタイムスタンプが入るよう設定。
Ruby部分
・app/model/comment.rbにFileMakerとの接続クラス追加
---以下をcomment.rbに追加---
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rfm' | |
class FMServer | |
def initialize() | |
@FM_CONFIG = { | |
:host => "FileMakerServerの接続先IP", | |
:account_name => "FileMakerFileのログインアカウント", | |
:password => "FileMakerFileのログインパスワード", | |
:database => "FileMakerFileの名前", | |
:ssl => false, | |
:root_cert => false, | |
} | |
@fm = Rfm::Server.new(@FM_CONFIG) | |
end | |
def listAll(lay,sortCond) | |
return @fm[@FM_CONFIG[:database]][lay].all(sortCond) | |
end | |
def create(lay,obj) | |
@fm[@FM_CONFIG[:database]][lay].create(obj) | |
end | |
end |
・hamlを編集(追加)
---app/view/fmbbs.haml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%form{:method=>"POST",:action => '/fmcomment'} | |
%input{:type=>"hidden",:name=>"_method",:value=>"PUT"} | |
%table | |
%tr | |
%td 名前 | |
%td | |
%input{:type=>"text",:name=>"name"} | |
%tr | |
%td タイトル | |
%td | |
%input{:type=>"text",:name=>"title"} | |
%tr | |
%td 内容 | |
%td | |
%textarea{:name=>"message",:cols=>60,:rows=>8} | |
%tr | |
%td | |
%td | |
%input{:type=>"submit"} | |
- @comments.each do |comment| | |
.comment | |
%h2= h comment.title | |
.info | |
%span.name== by #{h comment.name} | |
%span.date== (#{timestamp_text(comment.posted_date)}) | |
.message | |
== #{formatted_text(comment.message)} |
※HamlはPythonのようにインデントが文法になってるので注意!
・app/start.rbを編集
---app/start.rbを以下のように変更---
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#/usr/bin/ruby | |
require 'rubygems' | |
require 'sinatra' | |
require 'model/comment.rb' | |
require 'sass' | |
helpers do | |
include Rack::Utils;alias_method :h, :escape_html | |
#追加 | |
def timestamp_text(date) | |
date.strftime("%Y/%m/%d %H:%M:%S") | |
end | |
#追加 | |
def formatted_text(text) | |
Rack::Utils.escape_html(text).gsub(/\n/," | |
") | |
end | |
end | |
get '/style.css' do | |
content_type 'text/css',:charset => 'utf-8' | |
sass :style | |
end | |
get '/' do | |
@comments = Comments.order_by(:posted_date.desc) | |
haml :index | |
end | |
put '/comment' do | |
Comments.create({ | |
:name => request[:name], | |
:title => request[:title], | |
:message => request[:message], | |
:posted_date => Time.now, | |
}) | |
redirect '/' | |
end | |
#追加 | |
get '/fmbbs' do | |
fm = FMServer.new | |
@comments = fm.listAll("bbs",{:sort_field => "posted_date",:sort_order => 'descend'}) | |
haml :fmbbs | |
end | |
#追加 | |
put '/fmcomment' do | |
fm = FMServer.new | |
obj = { | |
:name => request[:name], | |
:title => request[:title], | |
:message => request[:message], | |
#posted_dateは含めない | |
} | |
fm.create("bbs",obj) | |
redirect '/fmbbs' | |
end |
・rfm(lardawge-rfm)をインストールするの忘れずに!
$ sudo gem install lardawge-rfm
GitHub:https://github.com/lardawge/rfm
これでstart.rbのある位置をカレントにして
$ ruby -rubygems start.rb
これで
http://localhost:4567/fmbbs
で試せます。簡単ですね!
今回、自分がつまずいた所は、
1,rfm経由でFileMakerにレコード作成(多分編集も同じ)でtimestamp型のカラムに値を
設定するための方法が分からなかった。※DateTime型だとエラーになる、整形してもエラー
になる。なんでや!
→読み込みは出来るので、FileMaker側で作成時自動で値設定にした。
2,投稿済みデータの降順ソートがうまくいかない!
→lardawge-rfmでは降順の指定が"desc"ではなく、"descend"だった。
Railsでやるほどじゃないけどちょっと簡単にFileMakerとWebアプリつなぎたいとか、これで
どうでしょうか? 2012/10/24 編集:コード断片をGithubのGistからの読み込みに変えました。
登録:
投稿 (Atom)