FileMaker でソート順フィールドを見せずにソートされた値一覧を作る方法(老眼モード問題)

老眼モード問題

FileMaker でソート順フィールドを見せずにソートされた値一覧を作る方法(応用)で触れられているように、FileMaker Go 14.0.1(現行)では以下の条件で値一覧が開いたときに頭の文字が切れる現象が確認されました。

※ 不具合が、文字サイズ変更設定した iOSデバイス上での FileMaker Go においてのみ再現することから、老眼モード問題 と通称することとします。

Read More

アニメGIFを見直す(GifGrabber)

GifGrabber – Mac操作をアニメGIFにするアプリ

え???と思ったあなたへ。そうです。Mac の操作を動画キャプチャーするのは、ScreenFlow 一択です。できることも多いし、分かりやすい。

今回は、ScreenFlow で作った動画を、アニメGIFに変換するのに良さ気なアプリはあるますのん?という話だったはず。

じゃあ、なんで「Mac操作を…」なんて言い出したのか。

Mac App Store で “GIF” で検索したらさ…、面白いおっさんのアイコンのアプリがあるじゃないの…と。

面白い眼鏡のおっさん

これが(その後試したいくつかのアプリと比べて)分かりやすく、シンプルだったので、ご紹介することにしたのです。

Read More

アニメGIFを見直す(EZGIF.COM)

Facebook のニュースフィードでアニメGIFが自動再生されるようになってから半年近く過ぎたねと。Facebook 投稿の手段として、案外アニメGIF使えるんじゃないの?と。

じゃあ、実際にどんなアプリでどんな風にするのが賢いの?ということで、今日一日潰して分かったことをまとめときます。

僕の都合としては…

ScreenFlow を使って、Mac や iOS デバイス(iPhone/iPad)の「◯◯のやり方」の動画を撮って作った動画があって、それをアニメGIFにコンバートできればいいかな…と思ってググり始めたの。

昔から、Webで動画アップロードしてそれをアニメGIFに変換するようなWebサイトあったじゃん?そゆのでOKだと思ったわけさ。

すると、軒並み潰れてるのね。そか、やっぱりアニGIFでもねーだろいまさら…な風潮だったのね。ま、僕だって、今回まで10年以上アニGIFに興味なかったし。

EZGIF.COM

EZGIF.COM

EZGIF.COM

Read More

アニメGIFを見直す(前段)

もう20年も前から、アニメGIF(GIFアニメ、アニGIF)は存在するが、Fecebook が今年(2015)5月に、ニュースフィードでのアニメGIFの自動再生に対応した。

Facebook、GIFのサポートを開始―ウェブ上のGIFがニュースフィードで再生される | TechCrunch Japan

animated GIF

世の中は動画が溢れている。いまさらアニメGIFでもなかろう…という向きもいらしゃるだろう。

ところが、こと Facebook のような SNS との連携となると別なのである。

Read More

FileMaker でソート順フィールドを見せずにソートされた値一覧を作る方法(応用)

はじめに

「FileMaker でソート順フィールドを見せずにソートされた値一覧を作る方法(基本)」というエントリで言及した手法には、ソートされるレコード数が100を越えないこと…という制限があります。
※ テキストフィールドの索引は最初の100文字という FileMaker の仕様上の制限に因ります。

その対策案としてこのエントリをアップします。

なお、「なにがうれしいのか?」「目的は?」といったことについては、「FileMaker でソート順フィールドを見せずにソートされた値一覧を作る方法(基本)」をご覧下さい。

基本の考え方

上記の基本編での解法の考え方は…

(値一覧に表示される)ソートしたいフィールドの頭に、「見えない(けれど存在する)文字」を(ソート順フィールドの値で指定された個数分)つけるように設定されたフィールドを、値一覧設定の [2番目のフィールド]として指定し、([2番目のフィールドの値のみを表示] にチェックをつけて)2番目のフィールドでソートしてやることで、任意のソート順フィールドの値で指定された順番で、値一覧をソート表示する

…というものです。

値一覧の設定

Read More

BiND for WebLIFE というアプリ

BiND for WebLIFE(長いので、以後、BiND と呼ぶ)というアプリケーションがある。Mac 版 Windows 版 の両方がリリースされている。
バージョンは版を重ね、2014/10/02 現在 BiND for WebLIFE 7 が販売されている。

いわゆる、Webサイト作成ツールである。
HTML だの CSS だのがわからなくても、(用意されているテンプレートによって)ある程度そこそこのサイトが手軽に作成できる。

サイトコンテンツ…つまり、伝えたいことはあるもののサイトを作成するのに必要とされる小難しい HTML/CSS/FTP などの知識がない…という方にピッタリのツールである。

かくいう僕も、(予算的な問題から)それで事足りる場合のみ、顧問先に BiND を勧めることもある。

コンセプトは良いのよ。
目の付け所はね。
しかし、コンセプトモデルの域を脱していない。

(バージョンアップに伴う良化は一部認められるものの、予期せぬデアクティベーション問題や、コピペが不安定・マウスでの選択中にエリア外にマウスがでるだけで選択が解除される…などの致命的な問題は改善が見られない。

BiND の悪口を言うのももういい加減飽きたので、かつて、僕が Facebook に投稿した BiND 関連のポスト画像の一部(2012 – 2013年分)を以下にまとめる。
※ 各々の画像のクリックで、Facebook の 当該ポストが開く。
※ 今年になってからの分は事情により割愛。


 

2012/04/18 投稿

2012/04/18

 


Read More

wkpdf on Mavericks

ココで言及したように、wkpdf を使って、指定した URL のレンダリングイメージを出力させるっつーのをよく使うですよ。

んで、今更ながらメインマシンを Mavericks にアップデートしたわけ。
したっけ、使えなくなったん。

結論として、色々と複合的な問題が介在したわけですが、根源的な問題は…

Cannot load RubyCocoa library
wkpdf requires that RubyCocoa is installed, which is shipped by default since
Mac OS X 10.5. If you use Mac OS X 10.4, you have to install RubyCocoa
yourself from http://rubycocoa.sourceforge.net/HomePage

という話。

RubyCocoa library が読めねーよ!ボケ!入ってないんじゃね?

とおっしゃってるので、調べてみた。

Read More

ときには また逢う約束もせずに情報にサヨナラしてみよう

情報の豪雨

スゴい勢いで降る雨を “rain cats and dogs” というらしいが、目一杯蛇口を捻ったシャワーのよう恐ろしい量の情報が降り注いでいる。
八月の夕立ならすぐに止むだろうし、都会のゲリラ豪雨のなら電車で2ー3駅も移動すれば逃れることができるだろうが、そうはいかない。
友人とよく “wikiの旅” なんてふざけるけれど、調べ物で WikiPedia に行くと、芋づる式の知識欲に身体が乗っ取られる。

Read More

Mavericks に上書きアップデートで、FileMaker Server 13 の Webサーバが起動しなくなった件

表題通りです。
以下時系列に…。
メインマシン(Mac Pro 2009 Early)を Mountain Lion から Mavericks にアップデートしました。
山ライオンのときには問題なく動いていた FileMaker Server 13 の Webサーバが動作していません
※ Database Server や Admin Console は無事

おまけに、認証エラーが出ています。(FileMaker のクライアントでは、ID/Password も間違えなく入力され、かつ、何のエラーもなくアクセスできています)
wpid-140704-0002-2014-07-4-13-04.png

で、Facebook で実況&グチ
https://www.facebook.com/stbison/posts/10203949157307430

(結局は、上記の FBエントリのコメントで降臨してくださった新居さんの有益なアドバイスで解決しました。)

では、以下にその経緯を…。

Read More

How To Register DNS Server in NetworkSolutions.com

networksolutions.com で、ドメインの DNS を変更しようとすると、does not exist とか叱られました。
随分前ですが、登録した憶えがあるのですが…。
まあしようがないので、再度登録しようとすったもんだしたときの覚え書きです。
※ 自分が Networksolutions.com で管理しているドメイン外の DNS は登録できません

1. Click “MANAGE ACCOUNT”

“MANAGE ACCOUNT” をクリック

https://www.networksolutions.com/ に行く

2. Log in

ログイン情報を入力してログイン

3. Click “My Domain Names”

“My Products & Services” タブが選択されていることを確認し、

“My Domain Names” をクリック

4. Click “Manage Name Servers”

ページ下部の “Manage Name Servers” をクリック

5. Enter the name server you want to create or edit and click GO

“Enter the name server you want to create or edit” の下にあるテキストエリアに追加もしくは修正したいネームサーバ名を入力し、Goボタンをクリック

※ その下 “Select from the options below to manage your name servers” の下にあるリストが現在登録されているネームサーバ

6. Enter the IP address for your new name server, once this is entered click GO

テキストエリアに当該ネームサーバの IPアドレスを入力して、Goボタンをクリック

7. Click “Save Changes”

確認して、”Save Changes” をクリック

FileMaker でソート順フィールドを見せずにソートされた値一覧を作る方法(基本)

— 2015/06/16 09:41:05 追記—

このエントリは、「FileMaker でソート順フィールドを見せずにソートされた値一覧を作る方法(基本)」です。

この方法ですと、ソートされるレコードの数が100を越えた場合(テキストフィールドの索引は最初の100文字という FileMaker の仕様上の制限のため)破綻します。

この問題の対策済みの方法を「FileMaker でソート順フィールドを見せずにソートされた値一覧を作る方法(応用)」にアップしました。
あわせてご覧下さい。

— 2015/06/16 09:41:05 追記おわり —

すでに、バージョン 13 だというのに、FileMaker において値一覧だけは洗練されないままです。
値一覧の候補値を動的に扱うためには、[フィールドの値を使用] を選ばざるを得ませんが、値一覧として表示させたときのソート順(並び順)をコントロールするためには、2番目のフィールド(ソート順フィールド) を表示させないことは、FileMaker 標準のオプションではありません。

ソートされた値一覧の標準例

標準の値一覧(ソート順フィールド値が表示されしまっている)

Read More

Facebook の埋め込み投稿(Embed Post)の方法

譬えば…
https://www.facebook.com/permalink.php?story_fbid=354403968024992&id=176894945775896
↑この投稿をブログに埋め込む…手順を例にとると…

EmbedFacebookPost
『公開』(地球儀アイコン)に設定されているポスト(やノートなど)で、上図のように『埋め込み投稿』を選択。
すると、下図のような画面になるので…

Read More

Dictionary関数が必要な理由(FileMaker)

表題:Dictionary関数が必要な理由…を、竹内氏@スプラッシュ 的に言うならば…
Dictionary関数を使うと何がうれしいの?…ちうよーな話です。

FileMaker において、D.R.Y. なメソッドを考える上で、「複数のテーブルやファイルをまたいで、複数の値を受け渡ししたい」と思うことはよくあります。
(とくに、ver 6 以前の名残でやたらとファイルが多い…というようなケースではなおのことです)

以下に、条件を整理し、このようなケースで適切な手法を考えます。

グローバルフィールドは使いたくない

D.R.Y. な手法を考えるとなると、なるべくテーブルに余計なフィールドを追加したくはありませんね。

グローバル変数は使えない

一見「グローバル変数で良いんじゃね?」と思いがちですが、以下の理由でグローバル変数は使えません。
・グローバル変数は、ファイルを超えての受け渡しはできません
・現時点でグローバル変数は、現実には希にですが受け渡しに失敗することがあります

『スクリプト引数』と『スクリプトの結果』を使う

ファイルを越えて、受け渡しができる変数(のようなもの)で、
このような場合の万能選手は、『スクリプト引数』と『スクリプトの結果』 です。
※ 『スクリプト引数やスクリプトの結果』というのは、長いので以下、スクリプト引数と言います

スクリプト引数は「ひとつの値だけ」しか持たせられない

さて、スクリプト引数を使うとしても、これらには、ひとつの値しか持たせることができません
どうするか…
Read More

iPad mini に 050 Plus で電話機能を追加する方法(登録編)

iPad mini 64GB Wi-Fi Cellular を購入したのだけれど、電話機能を持たせたい。

iPad のような 元々電話機能の無い iOS デバイスに電話機能を持たせたい…という場合に、現在のところもっとも有効な方法は、NTT Communications の 050 Plus 。

…ということで、頭っから登録で填まったので、メモ。

公式サイトhttp://050plus.com/pc/index.html )をうろうろしてみると…
カンタンお申し込み なる赤いタブが踊っていて、「さあクリックしろ!」と誘うのだが、出てくるのは…

現実にクリックできるところで、関係ありそうなのは… Read More

Alfred で Weblio 翻訳

米国の医療ドラマ “Dr. House” が好きな僕は、ここのところ、Facebook のゲーム “HOUSE M.D. Critical Cases” にややはまっているわけです。
毎回、やたら頭の良い総合診療医 Dr. House が、自分のチームを使って、患者の病気の原因と治療法を探し出すのがこのドラマのスジなのですが、ハウスは、ひねくれたイヤミで可愛くない嫌われ者なので、その台詞のやりとりが面白いわけです。
いつも、会議をしては、考えられる病名をたくさん挙げて、その後、捜査(患者宅など)/ 血液検査 / MRI を重ね、リストから「可能性の低い病気を排除していく」というパターンで、毎回、変わり映えしないわけですが、とにかく、台詞が面白いのと、一種の判じ物のような部分が醍醐味なわけです。

ゲームの方もなかなか良い出来で、どうようのパターンで話を進めていくのですが、これまた、台詞が大切なわけですよ。
ところが、ただでさえ英語なので、(日本語に比べて)理解の速度がとろくなる上に、出てくる単語のほとんどが、医療専門用語ですし、スラングもよくでてきますので、辞書を引かなければ全く話しについて行けません。

Chrome の別ウィンドウで、Weblio 英和和英 のサイトを開いておいて、いちいち調べながら、ゲームを進めることになります。
…で、この「別ウィンドウを選択して、検索文字列を入れて、また元のゲームウィンドウに帰ってくる」という作業がイラっとするわけです。

Alfred で なんとかなるべ…とやってみました。

「こんな操作性なら楽チンかな」と思うパターンは…

  1. 分からない単語発見
  2. Alfred の窓を出すショートカット押下
  3. 辞書で調べたいので “dic”とタイプした後にスペースを入れて、調べたい単語を入力して⏎
  4. 新しいタブに当該単語の Weblio ページが開く

では、レシピを… Read More

Playing for Change

『世界を音楽でつなごう』…この手の運動はよくみかける。

色んなお題目があるわけだが、その趣旨にさほどの違いは無いと思う。要は、結果としての音楽が、我々ひとりひとりの心のバイブレーションに合うかどうかだけ。

そういう意味で、playingforchange.com の音は正統派なんだろう。
正統派といっても、面白みが無いという意味では無い。
力を感じる。体温や体臭も含んだ命を感じる。

能書きはこれくらいにして、とりあえず、以下からいくつかダウンロードして聞いてみたらわかる。
有料っつったって、$9.9 くらいだし、タダでダウンロードできるものも多い。

playingforchange.com (DIGITAL DOWNLOADS)

Mac Pro メモリ増設計画 (64GB)

メインマシンの Mac Pro (Early 2009 8-core) の Apple Care が今月末で切れるので、

  • メモリを最大に増設
  • メモリハードテスト(試練編)

を実行することに…

まずはメモリ増設の話を記事にしておきます。

メモリ増設

Apple 自体は、Mac Pro (Early 2009 8-core) の最大搭載可能メモリは、4GB x 8 スロットで、32GB としているようです。
Mac Pro (Early 2009) – 技術仕様

しかし、実際には、8GB x 8 スロット で、64GB です。
最大搭載可能容量まで増設するので、8スロットすべてに同じメモリを挿すことで、ややこしいトラブルは避けられるとも言えます。

※ 16GB x 6 で 96GB という話もありますが、ある種の特別なメモリを2つのプロセッサに 3つずつ つけて…というもので、何より使えるメモリが高額なので今回は触れていません。

メモリ選定

メモリの規格は… Read More

ノエル・ギャラガーのMステ出演でのコメントの訳について悪意が過ぎるので…

Mステに出演したOASISのノエル・ギャラガーさん「日本の歌番組はクソだし狂っている。AKB48という粗製濫造アイドルにはビックリした」

という話が Facebookでシェアされてて、誤訳を通り越した悪意訳を修正したコメントをメモ。
(今ちょいとググったら同好の士がすでに何人か居るよーなので別にエントリにするまでも…とも思ったが、ま、せっかく書いたし、FBのコメントに書いたことは後で追っかけにくいし…ちうことで…)

Read More

Webサイトにメアドのテキストを含まないメールリンクを作成する方法

SPAM業者 もしくは、名簿屋 (メールアドレス収集業者) のクローラ対策を考えると、Webサイトにメアドをテキストで記載することは憚られます。

WordPress などの Blog や CMS を使っている人の多くは、送信フォームを使うことで、対策していることと思います。
送信フォームは、記載必須の項目を明示したい場合などたいへん有効に働くものですが、逆に、以下のような使いにくさもあります。

  • 送信者が送信した内容を別途メモしておくなり、当該フォームに、送信内容を送信者に同報するような仕組みがないと、送信者にとって「何を送信したのか」は送信者の記憶にしかない
  • メールアカウントソフトで一括管理できない

また、CMS や Blog ならいいのですが、、静的サイトでのメールフォームの設置は面倒であることも事実です。

そこで、『対策済みのリンクを生成するサイト』を使うという方法のご紹介を…。

Email Obfuscator

アクセスすると、下図のような画面になりますので、必要事項を入力して、下欄のテキストエリアに生成される HTMLコードをコピーし、リンクを表示したいHTMLファイルのリンクを表示したい箇所にペーストするだけでOKです。
SPAMクローラ対策済みリンク生成サイト
拙サイトの右サイドバー上部の “Contact” “email to bison” という文字列がそれです。

ScreenFlow で作った「それっぽい動画」

ScreenFlow は、今まで主に、インストラクションムービー(手順説明動画) などを作成するために使っていましたが、これって結構いろんなコトができることを再発見!

…ということで、

「ササミの筋取り」を説明した20秒ちょっとの動画を、懐かしい東芝のテレビで映しているように見える動画 (via ScreenFlow)

を作ってみました。

素材

  • 自分で撮った『ササミの筋取り』の動画 (23秒程度)
  • 昔のテレビのスイッチ音 (ON / OFF)
    TurnOffTV.aiff
  • 昔のテレビ(TOSHIBA製) の画像

Read More

wkpdf — URLからPDFを作成

FileMakerのソリューションで、コマンドラインによって、指定のURLからPDFを作成…という機能を実装する要望があったため、wkpdfをインストールした。

wkpdf の特徴

  • HTMLレンダリングに WebKit を使用
  • JavaScript も効くので、Safari の表示とほぼ近いレンダリング結果になる
  • –username –password オプションを指定することで、Basic認証などにも対応
  • 当然、出力結果のPDFファイルは、画像ではないので、テキスト検索が効く
  • サムネイルとしては使いにくい
    ※ 画像ファイル形式での出力不可/サイズ指定切り出し不可

Install

MacRuby

wkpdf は MacRuby を使用する。

  1. MacRuby の公式ダウンロードページから、Latest Stable Release の standalone binary installer のパッケージをダウンロードする。
    ※  2012/03/21 現在、MacRuby 0.10
  2. 解凍してできるインストーラパッケージをダブルクリックして指示に従いインストールする。

Read More

Alfred Extensions (有料版のみ) の使い方

アプリケーションランチャとして Alfred を使っている方は多いと思います。

そうした使い方だけなら、Free版の Alfred で充分ですが、有料の Power pack を購入することで、いくつかの機能が追加されます。

使い出すと手放せない Power pack の機能は、File System Navigation と

今回取り上げる Extensions and Custom Commands です。

今回は、例として、アプリケーションをアンインストールするアプリケーション AppCleaner に、アンインストールしたいアプリケーションを渡す方法を説明します。

Read More

Mac で様々な動画を見たいときにはこのあたりのCodec入れとけ!

標準で QuickTime が対応するコーデックは、Internet上の動画の半分も対応できていません。

もちろん、「この動画プレイヤーアプリケーションでは再生できる」というケースはありますが「Codec に合わせて、再生するプレイヤーを変える」というのは、あまりスマートではありませんし、できるかぎり、「これを入れておけば」Mac全体として (QuickTime Player でも、QuickTime に依存するアプリケーション上 でも…) 動画再生が可能になるように QuickTime Component の形が望まれるわけです。

ということで、拙ブログ『脳みその中身』でも何度か Mac で使える 動画再生用の QuickTimeコンポーネント について取り上げてきました。

現段階での動画再生用 無料 Codecまとめ的なものは以下の四つです。

それぞれ、Libraryフォルダ下QuickTimeフォルダ( /Library/QuickTime or  ~/Library/QuickTime ) に QuickTimeコンポーネントを入れたり、Applications フォルダ ( /Applications )にアプリを入れたり、Internetプラグインフォルダ (/Library/Internet Plug-Ins )をプラグインを入れたりします。

Read More

Dropbox のベータ版で4.5GB分の無料スペース獲得方法 (期間限定)

Dropboxに「iPhone ( or Android携帯 or デジカメ or デジカメで使用しているSDカードなどのメモリカード ) などを Mac/PC にUSBで接続したら、自動的に、カメラロール内の写真や動画が、Dropbox/Camera Uploads フォルダに取り込まれて、Dropboxサーバに U/L されるという機能」が、ベータ版 (1.3.x) から追加されました。

この機能のフィードバックを得るために、現在、下記URLから取得できる Dropbox の Forumバージョン(ベータ版) をインストールして、上記機能を使うことで、2012/02/22 現在、無料のスペースが、4.5 5  5 GB までを上限に獲得できるというキャンペーンが行われています。
http://forums.dropbox.com/topic.php?id=54396

このキャンペーンで、一旦取得した領域は、permanently だそうです。
ただし、500MB ごとに、増加分合計 4.5 5  5 GB までということなので、
4GBを越えるクソデカイ動画で一挙に…というわけにはいきませんでした。
500MB 程度の動画をiPhoneで撮影しちゃー 同期するのを繰り返すことになります。

段取りとしては… Read More

オッサンの得意技

人は誰も『貯○池』を持っている

「腹が立つ」と「怒る」の間の『堪忍袋』のようなものがそれであり、
(今現在の己の能力や状況では) 解の出ない問題に直面したとき、いったん棚上げにする『棚』がそれである。
電気回路における『コンデンサ』のような『貯○池』は、人間が社会生活を営む上で、欠くべからざる機能であると言える。 Read More

松本人志とわかりにくい映画『さや侍』(ネタバレ極力なし)

『さや侍』を観た。

松本人志監督の最新作である。
松本人志は、自らを天才と名乗る。
その行為は、とくに日本人の気質にはそぐわない。

彼の作る笑いは、その多くがアドリブである。
お題をひとつ決めて、やりとりしていく中に、他の誰にも置けない位置に、思いも付かない至極のピースをバシバシと置く。
天才はひらめきとセットで語られる。
たしかに「ひらめく」のだろうと思う。

松本人志は、「笑いの理屈」を解明し説明可能にしたいと思い続けているらしい。
かつて、故 桂枝雀が「緊張と緩和」というヒントを呈して以来、そのことを考え続けているのだと言う。

「ひらめき」と「理屈」は相反するように聞こえる。
彼は、再現性のある「理屈」として「笑い」を留め置きたいのだと思う。
もしかしてそれは、「笑いに値しない薄っぺらな戯れ言が笑いと認められていること」に対する猛烈な怒りなのかもしれない。 Read More

乞食でしょうか?クレーマーでしょうか?

20分ばかり前の @kura_kj8_luv さんの Tweet

@masason 『津波』の影響でsoftbank商品が『流失』し解約に行きました。しかし本体支払いが済んでおらず全額支払いが済むまで続くと言われました。『津波』で使用できなくなり、解約せざる終えないのに支払いが続くなんて考えられません!この対応には大変憤りを覚えました!

…で、またわけのわからないことに、これをRTする人が何人も…

津波のせいで流失したのは、確かに、@kura_kj8_luv さんのせいではありませんが、同時に @masason さんのせいでもありません。

『津波』のせいです。

Softbank としては、実に当たり前の対応です。

Softbankの対応に『考えられません!』『大変憤りを覚えます!』…てのは筋が違います。

クレーマーでもなく、乞食でもないのであれば、脳みそを通して Tweet しましょう。

輪番停電 (計画停電) データ Google fusion tables

いまさらですが、Google fusion tables に作ってみました。

計画停電 2011/03/14 (2011/03/13 21:40版)

携帯カンニング事件について思う

再発防止…会場で、携帯が使えなくすればすむので、必要なだけジャマーを設置する…以上解決。

マスコミの加熱…バカなのか、わざとなのか…

『「頭の良い協力者」の知り合いがいなくても、できるカンニング法』
という一点が、従来のカンニングと違うだけのこと。

それ以外は、「新手」でもなんでもない。

マスコミは、よほど、世論誘導の方向性に関するイニシアチブを持ち続けたいのですねぇ。
一般社会とネット社会の常識のずれ…なんて言ってますが、常識なんて、立場や個性によって「ずれるもの」です。
車社会になって、「交通ルール」や「交通道徳」が必要になったように、ネット社会でのリテラシーを持たずには生活できなくなってきているのは自明です。

「携帯で撮影した画像をOCRでテキスト化して、Yahoo知恵袋に投稿したにちがいない」とかぬかしていた自称専門家がテレビに出ていました。 Read More

FileMaker で Google Apps (Gmail) の PermanentLink を取得するカスタム関数

自分用に、Google Apps の個々のメールの PermanentLink を取得する FileMaker の カスタム関数を作りました。

理屈は、別記事:Google Apps (Gmail) で PermanentLink を取得する方法 の通りです。

※ shvaOption については、
Gmail’s SHVA Parameter
Gmailで日本語を検索した際の不具合
あたりを参照してください。

Google Apps (Gmail) で PermanentLink を取得する方法

Google Apps や Gmail で個々のメッセージを表示しているときの URL の一部は、状況に応じて変化します。

受信箱にあるメッセージの場合 — #inbox
ラベル経由の場合 — #label
検索の結果経由の場合 — #search
など…

とは言え、受信箱内のメールをアーカイブした場合も、 受信箱にあったときと同じ URL で当該メールは表示されるようになっているはずです。
( 僕の記憶があっていれば、以前は、アーカイブされたメールは、受信箱にあったときの URL では表示できなかったと思いますが、いつからか、仕様が変わったようです ) Read More

ペルソナの決め方と調査のあり方

商業プロジェクトの初期段階で、「ペルソナ (想定ユーザ) をどうするか」という話に よくなります。
ペルソナ (想定ユーザ)
アドホックなペルソナ ( 調査やデータなしに「こんな感じじゃね?」と推察した仮のペルソナ ) にすべてを託すことは危険ですし、「だからちゃんと調査してデータに基づいたペルソナを決めるべき」という指南書は数多く見受けられます。
そして、これらの意見に対して、僕自身、異を唱えるつもりは全くありません。

「調査の必要がない」つまり「調査しなくても結果は明かである」というケースであっても、(後述する) 調査の結果見えてくる潜在特性の発見 などの重要性を考えれば、調査に基づいた 本来の意味のペルソナ が重要なことは明白です。

それでも僕は、まず、アドホックなペルソナを無視して始めたプロジェクトは失敗すると断言できます。 Read More

FileMaker Dictionary 関数

FileMaker Dictionary Functions
以下の blockquote部分は上記出典ページの段落、直後の日本語は内容の拙訳です。
拙訳への具体的な「ちげーよバカ!」な突っ込みは大歓迎です。
※ 万一のトラブルは、出典サイトはもちろん、(たとえそれが僕の拙訳のせいだとしても) 一切関知しませんのであしからず。

素晴らしいカスタム関数を発表してくれた sixfriedrice.com の Jesse Antunes / Geoff Coffey に感謝します。 Read More

マルチプルパラメータのスクリプトへの受け渡し – 応用編

Passing Multiple Parameters to Scripts – Advanced

以下の blockquote部分は上記出典ページの段落、直後の日本語は内容の拙訳です。
拙訳への具体的な「ちげーよバカ!」な突っ込みは大歓迎です。
※ 万一のトラブルは、出典サイトはもちろん、(たとえそれが僕の拙訳のせいだとしても) 一切関知しませんのであしからず。

素晴らしいカスタム関数を発表してくれた sixfriedrice.com の Jesse Antunes / Geoff Coffey に感謝します。


Wouldn’t it be nice if whenever you need a parameter you could just ask for it by name? Lets say that you have a create order script and you want to pass the script the name, street and zip code of the customer. If you were stuck with just the regular old FileMaker functions there ain’t no way that’s happening. But after you are done with this post, you will be able to get the name of your customer with the simple function: GetParameter( “customerName” ).

もし、パラメータを使いたいときはいつでも名前で呼び出せるとしたら、いい感じじゃないですか?
受注スクリプトがあったとしましょう。
そして、そのスクリプトに対して、顧客の名前/住所/郵便番号を受け渡したいとします。
もし、あなたが、FileMakerに元々ある関数で立ち往生しているばかりだとしたら、これはどうにもできません。
しかし、この post の内容をやっつけた後だとしたなら、シンプルな関数で、顧客の名前をとりだすことができるでしょう:
GetParameter (“customerName” )

Alright, since your interest is hopefully already piqued, I’m just going to go ahead and tell you the functions right away. There are three of them. I know that sounds like a lot but if you give me a chance to explain myself, trust me your going to love it and once you get used to them you’ll never go back.

さて、もう十分興味を刺激することはできたでしょうから、その関数の話の中身にさっさと移りましょう。
3つあります。
こう言うと大変そうでしょ?
でも、まあだまされたと思って説明を聞いてくださいな。
あまりに気に入ってしまって、これなしの世界に戻れなくなりますから。

These different functions are probably a little bit confusing right now so lets go through them one by one.

たぶん、これらの別々の関数を見て、ちょこっと脳みそがこんがらがっちゃったでしょうから、ひとつひとつ説明していくことにしましょう。

This custom function is your bread and butter. You use it every time you want to pass a parameter to another script. name is the name of the parameter your are passing and value is the actual text that you want to send over. So for instance if you were sending the name of your customer to a script you would use:

これが基本です。
別のスクリプトにパラメータを受け渡したいときには、これを使います。
name というのは、受け渡したいパラメータの名前で、value は受け渡したい値そのものです。
したがって、仮に、顧客の名前をスクリプトに渡したい場合はこうなります。

If you want to pass multiple parameters to our order creation script would just string this custom function together using the ampersand like so:

もし、受注システムに対して、複数のパラメータを受け渡したいのなら、& (アンパサンド) を使って以下のように繋げて書けばいいわけです。

How it works: PassParameter() turns the name, value pairs that you pass in into a special format so that they are easy to manage. It basically puts two special characters in front of the name, between the name and value, and after the value. Basically if you were to say PassParameter( “customerName” ; “joe blow” ), this function turns your text into:

実際の動き方:
PassParameter ( ) は、name/value のペアを、処理しやすいように特殊なフォーマットに変換します。
要は、name の前と、name と value の間と、value の後に、2文字の特殊な文字を追加するわけです。
つまり、
PassParameter( “customerName” ; “joe blow” )
と書いたら、返ってくるのは…

or in the case of multiple parameters as above it would look like this:

先述の複数のパラメータ例の場合は、以下のような感じになります。

This construct of name and value pairs is what we refer to as a dictionary. This becomes important because our next function operates on a dictionary. You’ll notice in the actual definition of the function PassParameter() that I do a couple of substitutions. I use this process to escape the different characters that I use in my delimiters so that my scripts won’t break when you send in those same characters. Don’t worry though, when I get them back out I remove any extra characters that I added.

この name/value のペア構造を dictionary として参照させているわけです。
これは大変大切なことです。
次の関数は、この dictionary を操作する関数です。
PassParameter ( ) の定義式を見れば、二度ほど substitute をしていることがわかりますね。
このプロセスは、デリミタ(区切り記号) として使っているのと同じ文字列をパラメータの内部で使っても、スクリプトが破綻しないように、別の文字列にエスケープするためのものです。
余計な文字列は最終的には除去されますから、ご心配なく。

The dict parameter in this custom function is, yup you guessed it, short for dictionary. The second parameter, ‘name’, is just the name of a value that you would like to get out of the dictionary. So if you were to execute the following code:

このカスタム関数内の dict という引数は、(はい!もうわかりましたね!)、dictionary の略ですね。
2番目の引数の name は、dictionary から取り出したい値の名前です。
ですから、もし以下のコードを実行すると…

It would return “Joe Blow”. On it’s own this DictGet function doesn’t seem that useful but it is the workhorse of the three functions.

How it Works: DictGet() actually works as a basic text parser. It takes the name that you pass in and turns it into the format you would expect in the dictionary. If the name passed in is “customerName”, then it would be turned into “<:customerName:=”. The we take that weird looking text and search for it in the dictionary. If we find the weird string in the dictionary, then we return the value for it (”joe blow”, otherwise we return an empty string (””). Pretty neat huh?

“Joe Blow” が返ります。
DictGet 関数は、これ自身のみではさほど役に立つとは思えないでしょう。
しかし、DictGet 関数は、くだんの3つの関数の間で馬車馬のように働いてくれるのです。

実際の動き方:
DictGet ( ) は、基本的なテキストパーサとして働きます。
name を受け取ると、dictionary に対して、よき案配のフォーマットに変換します。
渡された name が “customerName” だとすると、
“<:customerName:=”
と変換されます。
そしてこの妙ちくりんなテキストを、dictionary の中で探します。
dictionaryの中に このへんてこテキストを見つけた場合、”joe blow” という値を返すわけです
(見つからなければ、空値 “” が返されます)
なかなかイケてるでしょ?

This is the function you would use whenever you are trying to access data that was passed in using the PassParameter() function. It’s is specifically designed to operate on a script parameter that contains a dictionary. It actually just pulls the value of the name you give it, out of the script parameter using the DictGet() function. Very Simple…. not a whole lot going on here.
Now that you have a pretty good understanding you are pretty much ready to enter into the world of named parameters. Once you get used to using these little gems, I am positive that you will never be able to go back to plain old vanilla script parameters ever again. There are a couple more benefits to using these functions such as using named values in your script results, nesting parameters and accessing multiple occurrences that I will probably get into a later date. For now… I hope these functions help make FileMaker Development a little easier for you.

PassParameter ( ) 関数を使って受け渡されたデータにアクセスしたいときに使います。
dictionary を内包するスクリプト引数を操作するため専用に作成しました。
DictGet ( ) 関数を使って、スクリプト引数から、与えられた name にひもづく値を引き出すわけです。
すごくシンプル。なんちうこたない。
さて、なかなかいい感じで理解できたなら、named parameter の世界に入る準備はいい感じでOK ということです。
いったん、これらのちょっとしたテクを使うのに慣れると、もう、あの古式ゆかしいペラッペラに薄っぺらな標準のスクリプト引数に二度と戻る気はさらさらなくなることでしょう。
これらの関数を使うことで、他にも、二三の恩恵に浴することができます。
スクリプトの結果から 名前で値を引っ張りだしたりとか、入れ子のパラメータからとか、後日言及する複数のオカレンスへのアクセスとか…ね。
とりあえず、これらの関数が、あなたの FileMakerでのデータベース開発を少しでもラクチンにすることを願います。

More About Dictionaries: If you would like to get a little more in-depth into these functions there is a second post that adds functionality to this idea here:FileMaker Dictionary Functions.

NOTE: We had a couple of good comments from some of our early release readers. Genx who blogs on FileMakerMagazine.com added that he thought it would be much more visually appealing and easier to use XML style tags. I can’t remember the exact reason why I didn’t go this route… I am pretty sure it was because I wanted to have two delimiters at each break point in the name/value pair. He did convince us to change the names of the functions from our more nondescript names ( #() #P() ) we started with so that it would be easily understood what each one did. Another useful tip came from Fitch ofpre1.com, who pointed out that another similar name/value pair implementation can be seen in Back Magic from SeedCode.com

dictionary 関連のより詳しい話:
これらの関数についてもっと詳しく知りたい場合、下記の second post で、ここのアイデアの機能追加発展版な記事が読めますぜ。
FileMaker Dictionary Functions

日本語 拙訳

Note:初期版読者からの 良きコメントが、ふたつみっつありました。
FileMakerMagazine.com の blog をやっている Genx からは…
XMLスタイルタグを使えば、もっと見た目で分かりやすくて訴求力のある感じになるんじゃね?…と。
今となってはなんでそのルートに行かなかったのかを思い出せないのですが… おそらくは、たぶん name/value ペアのブレークポイント毎に、2文字のデリミタを差し込みたかったんだと思われます。
また彼がそうしろというのがもっともなので、最初 #() #P() とかいう何なんだかわからない記述にしていたこれらのカスタム関数の名前を、何をするものなのか分かるような名前に変えることにしました。

もうひとつのナイスコメントは、pre1.com の Fitch でもって…
似て非なる name/value ペアの実装方法を指摘してくれました。
Back Magic from SeedCode.comで見られます。


  1. FileMaker – マルチプルスクリプトパラメータの受け渡し
  2. マルチプルパラメータのスクリプトへの受け渡し – 応用編 (このエントリ)
  3. FileMaker Dictionary 関数

FileMaker – マルチプルスクリプトパラメータの受け渡し

FileMaker – Passing Multiple Script Parameters
以下の blockquote部分は上記出典ページの段落、直後の日本語は内容の拙訳です。
拙訳への具体的な「ちげーよバカ!」な突っ込みは大歓迎です。
※ 万一のトラブルは、出典サイトはもちろん、(たとえそれが僕の拙訳のせいだとしても) 一切関知しませんのであしからず。

素晴らしいカスタム関数を発表してくれた sixfriedrice.com の Jesse Antunes / Geoff Coffey に感謝します。


I can think of hundreds of times when I found myself pounding my head against the desk because I had to define yet another global field just to pass a simple value from one script to another. Like you, I myself hate to have lots of cruft clogging up my databases. Luckily, FileMaker 7+ gave us the wonderful addition of script parameters to help relieve this plight. Sometimes, even this isn’t enough and that’s where passing multiple parameters takes over.

あるスクリプトから別のスクリプトに対して、単純な値を渡すためだけに、グローバルフィールドをもうひとつ定義しなければならなくなって…「あーもー!」てなもんで、机に頭を打ちつけていた…あの光景を何百回も思い出すのことあります。
あなたたちと同じで、わたしもデータベース開発作業の足を引っ張るたくさんのあれやこれやに辟易していました。
幸運にも、FileMaker 7 以降では、こんな状況を少しは楽にしてくれる スクリプト引数なるものが追加されたわけですが、複数の引数を受け渡したいとかいうことになると、そんなもんじゃ足りなくなることもよくあります。

Whenever a script is chosen in a perform script step, Filemaker shows a box for an optional script parameter. You can type in whatever your programming heart desires or you can click the edit button and take advantage of Filemaker’s many built-in functions to construct a parameter. Many times, when presented with this option you probably find yourself thinking . . . Boy, I wish I had space for a bunch of different parameters. Well with the use of that tiny edit button, a couple of Filemaker’s functions and a little bit of ingenuity this actually ends up being doable. To pass multiple parameters in filemaker we are basically going to make a ¶ delimited list and then crowbar individual parameters out using the MiddleValues().

スクリプト実行が選択されたときはいつでも、オプショナルなスクリプト引数のためのボックスが表示されます。
あなたのプログラミング魂の赴くままに入力することも、編集ボタンを押して、ビルトインの関数を利用して引数を組み立てることもできます。
そのとき何度もこう思ったはずです。
「にいちゃんよー、一連のパラメータを書く場所がなんとかならんかねー。そのちっぽけな編集ボタンを使って、いくらかの FileMakerの関数を使ったひと工夫でよー。」
FileMakerにおいて、複数の引数を受け渡すには、基本的に、改行区切りリストにぶちこんで、個々の引数を MiddleValues ( ) を使って無理矢理引っ張りだすことになるわけです。

Ok, let’s say we are trying to create a new line item for an order we are going to fulfill for 3 iPhones at a price of $499. We don’t want to have to put the part number (iPhone), the description (”The coolest phone I have ever seen. Wow, it’s also really cheap!”) the quantity(3) and the price($499) in a bunch of different globals to pass our script, so we will just send them in using the script parameter. To do this, select the perform script step and pick the script you are going to call. Then hit the edit button next to the “Optional Script Parameter” box. Filemaker’s trusty old calculation window will pop up and you’re ready to roll. All you have to do is make the parameters you would like to pass into a list like so:

では、たとえば今、499ドルの 3つの iPhone 用に 新しい項目 を作りたいとしましょう。

部品番号 (iPhone) とか、説明 (”The coolest phone I have ever seen. Wow, it’s also really cheap!”) とか、数量 (3)とか、価格 ($499)とかを、スクリプト引き渡しのために一連の別個のグローバルにいちいち入力したかないので、スクリプト引数を使って受け渡したいというわけです。

そのために、スクリプトステップを実行を選択して、実行するスクリプトを指定して、オプションのスクリプトパラメータの横にある編集ボタンをクリックします。
FileMaker の古式ゆかしい計算ウィンドウがポップアップしたら準備完了です。
やんなきゃいけないことは、受け渡したい引数を作ることです。

こんな感じで…

Hit Ok and you are done with your parameter passing. Now comes the part where you pop the values you want from the script parameter. To do this we are just going to simply use the MiddleValues() function. The complete signature of Middlevalues() is:

OKをたたいて引数受け渡しは完了。
さて、お次ぎは、お好みの値を、スクリプト引数から引っ張りだすわけです。
これには、シンプルに MiddleValues ( ) 関数を使うことになります。
この場合の 完全な MiddleValues ( ) の書式は…

Note: Thanks to David Richards (from the comments) and Genx (from FMForums.com for pointing out that you can simplify these calcs using GetValue instead of MiddleValues. We needed FileMaker 7 support for this particular setup, but if you can live with 8+ only, they’re absolutely right. GetValue does not include the trailing ¶ so you can avoid all the mumbo jumbo about cleaning that up.

Note: David Richards (コメント欄から) と Genx (FMForums.com から) に感謝します。
これらの計算式は、MiddleValues の代わりに、GetValue を使うことでシンプルになることを指摘してくれてありがとう。
私たちは、この特有のセットアップで FileMaker 7 をサポートしなくちゃならないけど (だから MiddleValues で行くわけだけど)、8以降のみなら、彼らは完全に正しいわけです。
GetValue だったら、改行を引きずることもないから、余計なジュゲムジュゲム的記述を削除できるね。

The sole purpose of this function is taking a list of ¶ separated values, exactly like we created in the previous step, and select the values you specify from it. For instance, let’s say we are in the script we called in the first step and we want to get the quantity out of the script parameter. All we would need to do is execute the following bit of code:

この関数の唯一の目的は、(前のステップでやったように) 改行区切りリストを得ることと、そのリストから指定した値を取得することです。
たとえば、最初のステップで呼び出したスクリプトのなかにいて、スクリプト引数から 数量を取り出したいとしましょう。
下記のちょろっとしたコードを実行するだけです。

This step tells Filemaker to start from the third value in the script parameter and return one value which is effectively just saying give me the third value in the list. If you want the fourth value, the price, just change the number 3 to a 4. The one will always stay the same because you wouldn’t really want to get more then one value out of the script parameter at a time. It wouldn’t really make sense in a typical script.

We have the value out, we still aren’t quite finished. The MiddleValues function doesn’t get ride of the annoying ¶ that we tacked on the end of our parameters so to delete it we have to add the following code:

このステップは、FileMaker に スクリプト引数の 3番目の値から 一行取得するということです。
(実際には、リストの3番目をよこせと言ってるのと同じ)
もし、4番目の価格の値が欲しいなら、3を4に変えるだけのことです。
一度に複数の値をスクリプト引数から取り出したいことはないでしょうから、一行取得というのはいつも同じです。
典型的なスクリプトではあんまり役にはたたないかもしれません。

値を取り出せはしましたが、まだ終わりではありません。
MiddleValue 関数は、パラメータ全体をつなぐ改行を引きずったままなので、改行を削除するためには、以下のコードを追加してやらなければなりません。

This code is a little confusing but it is basically saying if we have a ¶ on the end of our parameter take it off.

Now that you have seen how we plan on getting the values out, you are probably thinking to yourself… What happens if I pass a ¶ in the middle of one of my parameters. This isn’t exactly out of the realm of possibility and it would clearly break your code. For instance if you changed the description on the iphone to read:

このコードは、頭が少しこんがらがるかもしれませんが、要は、パラメータの最後に改行があれば、それを削除しろと言っているだけのものです。

さて、値を取り出そうとする方法を見てきたわけですが、おそらくこう思っていらっしゃるでしょう。
「パラメータの中に改行を含む値を持ちたい場合はどうなるん?」
それはあり得ない領域の話ではありませんし、そうなれば明らかにアウトです。
たとえば、iPhone の説明をこう変えたとしましょう。:

Unfortunately, Filemaker will mush (concatenate for you technical types) everything together and create the following list:

残念ながら、FileMaker は、すべてを一緒に (数珠つなぎで) まぜこぜにして、以下のようなリストを吐き出すでしょう。

Now, everything has been shifted down one because of that extra ¶ and we can no longer get the price, quantity nor description that we expect. To take care of this we have to escape the ¶ so that it turns it into just a symbol rather then turning it into a new line in your text. To implement this change we will have to change how we create our list. I know I lied to you, you weren’t quite done with creating your parameter list. Here is the function you will need:

こうなると、すべては、邪魔な改行のせいで一段下がってしまいます。
価格も数量も、期待される形での説明も取得できなくなります。
このことの面倒をみるには、改行をどうにかエスケープさせて、テキストを改行させるためだけのシンボルと扱うようにしなければなりません。
この変更を実装するためには、リストの作成方法を変更しなければなりません。
はい、嘘ついてました。パラメータリストの作成はまったく終わっていませんでした。
以下が、必要な関数です。

Using our new code we would rewrite our last list to:

新しいコードをつかうには、先述のリストも書き換える必要があります:

Not only does this list look a heck of a lot cooler, but it is more functional and a LOT easier to read. OK, we have a custom function to add parameters to a list, we should probably create one to get all that information out so we don’t have to type that horrible blob of code ever again:

これでむちゃくちゃかっちょいーだけでなく、より機能的で、ものすごく読みやすくなったわけです。
さあ、パラメータを追加するカスタム関数もあります。
あのゾッとするコードの一塊をもうタイプしなくてすむようなすべての情報を一緒にしたヤツを作る必要があります:

Before you go off and pass around parameters all willy nilly, there is one final warning when using this style of parameter passing. To demonstrate it, Let’s go back to our iPhone example. Say that you don’t want to include the quantity just yet, but you still want to send over the price and description. If you tried the following:

さてパラメータを受け渡しまくり始めるには、まだ早いです。
このパラメータ受け渡しスタイルを使うには、否応無しに、最後の警告をひとつしなければなりません。
デモを行うために、例の iPhone の例に立ち返りましょう。
数量を含めることは必要ないけれど、価格と説明の受け渡しは必要だとしましょう。
もし以下のようにやってみると…

The $499 will go into the quantity field because your script that creates the line item thinks that the quantity is the third value, but because the quatity isn’t there the price has shifted up into the third position. To alleviate this problem you just need to make sure that you ALWAYS pass all the parameters to a script, even if one is empty. So your parameter list should look like this:

スクリプト的には、数量は3番目の値だと思っているわけですから、$499 は、数量フィールドに入ってしまいますが、実は、数量はそこではなく、その3番目の位置には、繰り上がって価格が来ることになります。
この問題を軽減するには、(たとえ空っぽの値があったとしても)「いつどんなときも」すべてのパラメータをスクリプトに受け渡すことが条件になります。
したがって、パラメータリストはこうなります:

Hopefully, many of you find this quite useful and it will help you build more powerful and less cluttered databases. For those who would like a more technically advanced way of passing parameters, where you can actually associate each parameter with a name, such as qty = 2, then check back soon for another article.

願わくば、みなさんが、よりパワフルでよりすっきりしたデータベースを作る上で助けになり、有益であると思っていただければよいのですが。
それぞれのパラメータを name と結びつけた (たとえば、gty = 2 みたいに) もっと技術的に進歩的なパラメータ受け渡し方法をお望みの向きには、別記事で。


  1. FileMaker – マルチプルスクリプトパラメータの受け渡し (このエントリ)
  2. マルチプルパラメータのスクリプトへの受け渡し – 応用編
  3. FileMaker Dictionary 関数

PassParameter 関連カスタム関数 のいいかげんな和訳をしてみるYO!

先日の FileMakerカンファレンス 2010 で、ユーザーグループのよろず相談コーナーを何時間か担当しました。

僕の最初の担当時間は、午後一で、メイン会場の階に、ちゃんとした場所が確保できず、サブ会場の階の「迷子以外だれがこんなとこ来るねん」な場所でした。

案の定、「すみません、ココへ行きたいんですけど…」な人々相手に、立番おまわりさんな状況で、一時間ほど過ごしたわけですが、人生、悪いことばかりではなく、すこぶる良いことがありました。

それは、有賀さんと今泉さんに、PassParameter などの Dictionary Function の話を聞けたことです。

上述の通り、「暇すぎて死にそう」な1時間に、たまたま僕と同じ時間帯に、よろず相談コーナーに座っていたのがお二人で、
することもないので、いろいろと四方山話のうちに、このすばらしいカスタム関数について伺いました。

いたく感動した僕は、いただいた 超有益なカスタム関数の情報を、ガメているのもなんだし(生来のしゃべりたがり屋の性惰ゆえというのが実のところですが) と、FileMakerがらみの人に会う度に、その話をしたわけです。
もちろん、出典 URL もその度にメールしました。

しかし…こちらと同じテンションで、よろこんでくれる人が非常に少ないわけです。

理由の一部には、おそらく当該Blogエントリが(割りと軽〜い語り口の)英語であることも問題なのではないかと思うに至りました。

ちうことで、使い勝手のあるすばらしいカスタム関数を発表してくれた six.fried.rice の Jesse Antunes タソに ありがとうの意味を込めて、いいかげんこの上ない日本語に訳してみる気になったのでつ。

以下の順番で読み進めれば、分かりやすいと思われます。

  1. FileMaker – マルチプルスクリプトパラメータの受け渡し
  2. マルチプルパラメータのスクリプトへの受け渡し – 応用編
  3. FileMaker Dictionary 関数

CSVファイルを出力して FTPアップロードするまでを FileMaker のスクリプトで行う方法 (Mac OS X)

某クライアント (不動産業) の案件で、『CSV を 吐き出して、FTPで (あらかじめ規定された) Webサーバ上のフォルダ にアップロードする』というものがありました。

そのクライアントは、社内業務に FileMaker を使っているので、FileMaker (Mac OS X) のスクリプトで実行したいわけです。

条件は、以下の通り。

  1. CSVファイルの文字コードは、UTF-8 / 改行コードは、LF。
  2. CSVファイル名は、YYYYMMDDhhmmss_テーブル識別子.csv の形式。
  3. CSV出力と同時にFTPアップロードする。
  4. FTPユーザ名/パスワードなどのFTP関連情報は、FileMakerアクセスからは隠す。
  5. Macを少しだけ使えるスタッフが、Macで、FTPサーバアドレス/FTPユーザ名/パスワードなどのFTP関連情報 をいつでも修正できるように。

1 は、普通にCSV(UTF-8)書き出し後に (Mac OS X での出力なので 改行コードが CR なので LF に修正するために)

$ perl -p -e ‘s/\r/\n/g’ < CR.txt > LF.txt

とやってやればOKですし、なんなら、XML FMPRESULT 指定で…という方法もあります。

2 は、
テーブル識別子を $tableid というグローバル変数に格納しておいて、

Let ( [

$YYMMDD = GetAsText ( Year ( Get ( 日付 ) ) * 10000 + Month ( Get ( 日付 ) ) * 100 + Day ( Get ( 日付 ) ) ) ;
$hhmmss = Right (
“000000” & GetAsText ( Hour ( Get ( 時刻 ) ) ) * 10000 + Minute ( Get ( 時刻 ) ) * 100 + Seconds ( Get ( 時刻 ) ) ;
6
) // Right
] ;
$YYMMDD & $hhmmss & “_” & $tableid & “.csv”
) // Let

とかやってやればOKでしょう。

3 も、4 の条件がなければ、シェルコマンドを do shell script な AppleScript ではじいてやればOKのはずなのですが、この場合、AppleScript内に、FTPユーザ名/パスワードなどの情報を書き込むことになります。
では、FTP情報を埋め込んだ AppleScript をアプリケーション形式で保存しておいて、それを叩いてやれば良さそうなものですが、
5 の条件でいう『Macを少しだけ使えるスタッフ』には、AppleScript の編集は、少し荷が重すぎるようです。

…で、「どうやって、FTPアップロードすべ?」と悩んでいたわけです。

Automator Acriotn : Upload to FTP を使った Automatorフロー例いっそのこと、Transmit 4 などの FTPクライアントソフトの AppleScript 機能を使って…という『一応の解』が出ていたわけですが…ふと「Automator でどーよ!?」と思いました。

「Automator なら Automator のフロー側に FTPユーザ名/パスワードなどをリテラルで格納すれば、FTP関連情報をFileMaker アクセスからは隠せるし、Automatorのワークフローの修正なら、『Macを少しだけ使えるスタッフ』にも修正可能!」探したところ、Upload to FTPという Automator Action がありました。

これを使って、CSV書き出し用フォルダに、フォルダアクション として設定!
(直接、フォルダアクションを設定したフォルダに書き出してダメ。詳しくは、下記の追記参照)

追記 (2013/05/24 15:35:31)
書くのが遅くなってしまいましたが…
FileMaker のファイル書き出し先をフォルダアクションの設定されたフォルダ(以下、アクションフォルダと言う)にしてしまうとダメでした。

とくにループ処理で何度も当該フォルダに『五月雨式に』書き出す…というような処理の場合、「さっきアンタがヤレって言ったことを今まだやってる最中でしょ!」と拗ねはります。あげく、エラーも出さずに黙ったまま処理を止めはります。

解決方法は…

  1. テンポラリフォルダの中身をクリアする
  2. ループでもなんでもいいから FileMaker からの書き出しは、テンポラリフォルダに行う
  3. アクションフォルダの中身をクリア
  4. テンポラリフォルダからアクションフォルダに、さっき書き出したファイルを移動

という順番での処理であれば、アクションフォルダに入るときに、対象ファイルが配列で渡されますので、処理が止まりません。

ブログエディタさがし – ecto –

ブログエディタなるものを物色。

Macjournal は、一時期メモとして使い倒したけれど、ブログエディタとして使ったことはないし、クセが強いのであんまその気にならない。
今までは、「ブラウザ上で書けばいいじゃん」な気分でいたのだけれど、そら便利なら使わない方がもったいない気もしてきたのです。
ということで、評判の良さ気なブログエディタを探して、使ってみようと思いました。

ecto

ずいぶんと評判が良いみたい。
画像のドラッグ&ドロップに対応というのが良い。

さっそく ecto 3 をダウンロードしてインストール。

まず、勝手に設定ウィザード的な窓が開く。

使っているブログシステムを選んで、ブログのURLを入力すると自動でアクセスポイントを探してくれる。
101119174439.jpg

あとは、アドミン権限のあるアカウント情報を入力するだけ。
101119174547.jpg

できたできた…と新規エントリを作成しようとしてみたら、WYSIWYGエディタの ulタグの挙動がおかしい。

ectoScreenSnapz001.jpg

てな感じで複数の行を選択して、101119175309.jpg ←こんなリスト化するボタンを押すと、

101119175844.jpg

と、↑こんなんなっちゃいます。

ulタグは結構使いますから、これでは話になりませんので、ecto 断念。

post

Mac mini Server に FileMaker Server 11 をインストール (Mac OS X Server 10.6 の初期設定)

Snow Leopard Server 搭載 Mac mini を買ってきて電源を入れた直後の画面から、FileMaker Server をインストールする前までの設定を、(冗長に過ぎるかと言うほど) 豊富なスクリーンキャプチャ画像で、流れるように説明……w

注意!:最初からインターネットサーバとして設定したいという場合もあるでしょうが、今回は、逆引きの権限委譲がなされていないプロバイダの固定IPサービスを使用している環境ですので、プライマリ DNS名は、.private を使用しています

また、今のところ、これが一番シンプルでわかりやすいのでは…という設定について述べていますが、諸条件が違えば、そらこの方法では不適当になる場合ももちろんあるでしょう。
Net上に あまり情報がなかったので、記事にしましたが、あくまで、自分メモ程度の情報です。

参考になさる場合、at your own risk でお願いします。

また、間違いなどがあれば、コメント欄ででもご指摘下さい。
今後、間違いや補足情報は、分かり次第、随時 修正していくつもりです。

1) [続ける]をクリック。 Read More

Mac mini Server に FileMaker Server 11 をインストール (序章)

Snow Leopard Server (Mac OS X 10.6 Server) 搭載 Mac mini に、FileMaker Server 11 を載っけて、使おうとやってみた。

適当に設定してみたが、なんだか安定しない。
「そんじゃ、クライアント版の Snow Leopard を載せ換えて、そっちでやろう」と思ったのだが、クライアント版の Snow Leopard は、 Snow Leopard Server 搭載 Mac mini にインストールすることができない。

※ もちろん、直接、Mac mini でインストールすることもできないし、他の Mac で、外部HDにインストールして、そのHDを Mac mini に接続しても、暗黒カーテンが降りてくる例のカーネルパニックな画面になって、起動できない。

しょうがないので、Mac OS X Server 10.6 Snow Leopard を再インストールすること数度。
ことごとく、安定しなかったのだが、下記の参考ドキュメントを読みまくったり、エロい人 エライ人 に聞いたり、Apple の XServer系サポートの人 に聞いたり…して、数度のクリーンインストールを繰り返した結果、なんとなく、「こーゆーのが一番シンプルなんじゃね?」というものに、とりあえず行き着いたので、まとめてみたりしようかと…。 Read More

Mac OS X v10.6.4 Update を適用して Flash Player のバージョンが…

Mac OS X v10.6.4 Update がリリースされました。

一般情報 Mac OS X v10.6.4 アップデート

10.6.4 アップデートは、Mac OS X Snow Leopard をお使いのすべてのユーザに推奨されます。このアップデートには、Safari 5 およびお使いの Mac の安定性、互換性、およびセキュリティを強化するオペレーティングシステムの全般的な修正が含まれており、以下の問題の修正も含まれています:

  • キーボードやトラックパッドが反応しなくなる原因となる問題を解決
  • Adobe Creative Suite 3 の一部のアプリケーションが起動しなくなる原因となる可能性がある問題を解決
  • SMB ファイルサーバ上のファイルのコピー、名称変更、および削除時に起きる問題を解決
  • VPN 接続の信頼性を向上
  • DVD プレーヤーで、標準品質デインターレースを使用した再生時に起きる問題を解決
  • iPhoto または Aperture で、フルスクリーン表示での写真編集時に起きる問題を解決
  • 一部の点字ディスプレイとの互換性を向上

このアップデートについて詳しくは、次の Web サイトをご覧ください:
http://support.apple.com/kb/HT4150?viewlocale=ja_JP

このアップデートのセキュリティ内容については、次の Web サイトをご覧ください:
http://support.apple.com/kb/HT1222?viewlocale=ja_JP

この Update には、セキュリティ・アップデートが含まれますので、Snow Leopard (10.6.x) ユーザ全員が対象となるようです。
※ Mac OS X Leopard (10.5.x) ユーザにも、セキュリティ・アップデートがリリースされているようです。

で、これで、Flash Player のバージョンには、最新版(10.1.53.64)よりも古いバージョン(10.0.45.2)が含まれているんだけど、まあ、普通に最新版が入っている場合、置き換えたりしないよ…な情報がありましたが、僕の環境では、みごと置き換わりました。w

ということで、Flash Player のバージョンの確認とインストールの方法 は…

1. ここさ行って、インストールされている Flash Player の バージョンを確認。

2. 最新バージョンより、インストールされているバージョンが古い場合は、3へ。

3.ダウンロードサイト Player Download Center が「複数のリダイレクトがどうちゃらこうちゃら…」となって、ページが表示できない場合は、Adobe Flash Player Support Center の方が早いかも…とおもったけど、結局 と同じURLに飛ばされるみたいです。

4. あとは、Get the latest version なリンクをクリックして、指示にしたがいませう。

=====================================

《JailBreak な方々へ》

ちなみに、Mac OS X のソフトウェア・アップデートを確認すると、同時に、iTunes 9.2 も Update リストアップされます。
これが、迂闊に上げていいものなのかどーなのか、僕的には、様子見中な感じでございます。(一応、念のため情報待ち)
もちろん、ECID / SHSH あたりのバックアップがまだな人は、さっさとやっておきましょう。
参考リンク:[iPhone] Umbrellaの使い方 (ECID SHSH 強制保存方法)Apple Voice さんち

USB転送の効かなくなった GoodReader でUSB転送を有効にする方法

GoodReaderGoodReader で、USB転送が効かなくなったとお嘆きの貴兄へ
※ JailBreak 必須 (インストールされている前提:OpenSSH / SBSettings )

脱獄ファンクラブのみなさまご機嫌いかがでしょうか。しりすえもんじ です(嘘

Appleさんの「あんまり便利なアプリは、あぷるの都合で認可しません作戦」により、あんなに使いやすかった GoodReader も、USB転送が効かなくなりました。
これが効かないと、クソデカイPDFとか Wifi転送中にエラーになるんだよねー…なご意見もおありかと思われます。
…ということで、ごにょごにょしてみました。

結論として、当該 plistで、USB転送を Trueにしてやるだけで、最新版(改悪版) GoodReader の USB転送が効くようになります。

JailBreak 済みで、すでに、OpenSSH と SBSettings がインストールされたいることを前提に手順を説明します。 Read More

0xE8000065 iPhone Error

今朝、iPhone 3GS を Mac に接続すると、突然、『不明なエラーが発生したため、iTunes はこの iPhone に接続できませんでした (0xE8000065) 。』と言われて認識できなくなりました。

0xE8000065errorJailbreak に起因するトラブルかとも思いましたが、すでに接続済みの もう1台の iPhone (iPhone 3G) は問題なく認識されています。
僕の iPhone は2台とも Jailbreak 済みなので、原因がすなわち Jailbreak に直接起因するわけでもなさそうです。

ググった結果、Windowsの Intel P55チップセットの問題に言及する情報しか出てきません。
どう考えても、はずしているので、再度、英語ベースで検索。

iTunes could not connect to this iPhone because an unknown error occurred (0xE8000065)

というエントリには…

So if you’re running into this “0xE8000065″ error with iTunes and your iPhone (also some people report problems on their iPod Touch…) try the following to troubleshoot:

* Change the USB port the iPhone is connected to the computer with
* Let the iPhone charge sufficiently before trying to access it through iTunes
* Turn the iPhone on and off

If it’s persistant, you could even try resetting the PMU/SMC controller on the Mac.

とありましたが、もちろん、USB周りの物理的な接続は既に試したうえでしたし、満充電に近い状態でのエラーでしたので、これもはずしてるなーと思ったとき、当該エントリのコメント欄に以下の情報を見つけました。

Actually this is a bug between iphone and iphoto.
To get it to work proper you must click into your mac / then iphoto library, then right click show package info.
Then scroll down and drag the ipod photo cache onto your desktop.
Once that is done sync your iphone and it will rewrite that ipod photo cache , the sync will go through and the file is good.
After that delete the ipod photo cache that you placed on your desktop and all is well

ビンゴ!

意訳:
実のところ、これは iPhone と iPhoto 間のバグなんだよねー。
正しく動作させるには、Macで、iPhoto Library に行って、右クリックで [パッケージの内容を表示]  を選んで、中の iPod Photo Cache (フォルダ) をデスクトップに出す。
それから、iPhone を Sync させると、iPod Photo Cache が作成され直すから、あとは、さっき取り出したデスクトップの iPod Photo Cache を削除しておしまい。

saykana コマンド

Macユーザにとって、Terminal.app で、

say hello

などと打つと、”hello” と音声が返ってくることは知られていますが、これらはあくまで英語が対象。

カナを対象にしたUNIXアプリ saykana が存在することを初めて知りました。

SayKana – Mac用音声合成プログラム

基本的にはターミナルから実行します。

基本は、かなの文字列を引数に指定するだけです。すぐにスピーカーから合成音声が流れます。
$ saykana こんにちわ

空白を含む文字列の場合は””で囲みます。
$ saykana “こんにちわ さようなら”

オプション

-v m1
声の種類を変えることができます。 デフォルトは女声ですが、m1を指定すると男声になります。
$ saykana -v m1 こんにちわ

-o file
音を出す代わりに、.aiffファイルに保存します。
$ saykana -o sample.aiff ファイルに、しゅつ’りょくします。

-s speed
話速を変更するときに指定します。speedには50-300の値を指定します。標準は100です。
$ saykana -s 90 ゆっくりしていってね?

-h
使用方法を表示します。
$ saykana -h

-f file
発声内容をファイルで指定することができます。複数行に対応します。 fileに – を指定したときは、標準入力となりますので、パイプやリダイレクトを使用することができます。
$ saykana -f in.txt
$ echo リダイレクト | saykana -f –

-o オプションでファイルに書き出すのも使える場面はあると思う。
とか感心していたら、

saykanjiコマンドを定義して漢字仮名混じり文を読み上げる

というのも発見。
mecab を使って、バックエンドで日本語解析をするという話。
ついでに…と、saykanjiコマンドの定義まで話は続いているので、興味のある方はやってみるといいかも。

# でも、助詞の「は」をちゃんと「wa」と発音してくれるのだろうか?
# そのあたりがうまくいくなら、実用レベルかもしれませんね。

………………………………………………………………………………………………

2010/05/11 03:08:01 追記

SayKotoeri 開発者の HemusAran さん(のbot) から

@stbison 漢字も読めるSayKotoeri/SayKotoeri2、およびGUIアプリのVoiceunderも是非使ってみてください! sites.google.com

と、Twitter で Mention いただきました。

SayKotoeri2 というのもあるのですね。
こちらは、まんま普通に利用可能です。
「助詞の「は」をちゃんと「wa」と発音してくれるのだろうか? 」という僕の素朴な疑問も難なく解決。
※ ただし、顔文字などで使われる記号の類が対象テキストに含まれるとエラーになったりはします。