脳みその中身

Inside of My Brain

脳みその中身 - Inside of My Brain

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 が読めねーよ!ボケ!入ってないんじゃね?

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

…でみつけたページがコレ↓
MacOSXでwkpdfを使ってみた | IT Office Nishimiyahara
「wkpdfはsystemのrubyを使え」っちうことだ!と断言してます。

ただこれは、Mavericks な情報ではないので、もーちと探すと…

Support for Mac OS 10.9 Mavericks · Issue #45 · plessl/wkpdf · GitHub

↓ここから Mavericks 用の RubyCocoa 落としてきてやってみたっつー人がいる。
RubyCocoa – Browse /RubyCocoa/1.1.0 at SourceForge.net
結果 NGだと。

すると、おっさんその1が…

  1. Install RubyCocoa
  2. sudo /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem install wkpdf
  3. Edit the first line of /Library/Ruby/Gems/1.8/gems/wkpdf-0.6.11-universal-darwin/bin/wkpdf to point to/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
  4. Use /Library/Ruby/Gems/1.8/gems/wkpdf-0.6.11-universal-darwin/bin/wkpdf

という解決策を提示して「うまくいった!」というヤツも出てきた。
でもさ、Mavericks の システムの Ruby のバージョンって…

$ ruby -v
ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13]

なんだよなー…まいっか。…で、動いた。

直接 /Library/Ruby/Gems/1.8/gems/wkpdf-0.6.11-universal-darwin/bin/wkpdf を指定して使う分にはかえって良いかも。
wkpdf だけ フルパスで明示的にシステムの 1.8 使うっちうことで。

/Library/Ruby/Gems/1.8/gems/wkpdf-0.6.11-universal-darwin/bin/wkpdf --source 'http://foo.com/' --output '/private/var/folders/hs/w0gjf27167q2y39xls1m8nsm0000gn/T/S10/140801_111827_bison.pdf'

とかクソ長くなるけど、スクリプトに埋めるからこれでいいや!

参考URL

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

情報の豪雨

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

検索の為の記憶

「あとで必要になるかもしれない」「有益な情報満載のサイトだから」そういって『お気に入りにブックマーク』というのを覚えたのは90年代初頭。
Evernote や はてな を使って蓄積したり整理したり。
強迫観念的だね。
「忘れちゃ大変!」とか思うのね。ググって1発でみつけたページなのに。
そのうち「なくなっちゃ大変!」とページのキャッシュコピーをストアし出した。
必要になったときに検索できるように。
便利な手段を乗り換え乗り換えしながら。
今度は「どこに何を記憶させたか」を記憶させないと。

そもそも本物の脳みそって

でもね。
忘れるじゃない?
本物の脳みそは。

そうコンピュータだのITだのって人間の脳みそに見立てた機械なんだからさ。
本物は忘れる。
いや、待ってくれ。コンピュータは、忘れないから素晴らしい?
コンピュータって何するもの?
記憶?思考?発想?作業?仕事?
これらの中で、人間がするエリアのもので代表的なのは…発想、そして思考。

ねえ、ものを考えるのにどれだけの材料が必要?

システムの本当の役割

僕らは、コンピュータに日頃僕らがしている仕事をさせるためにコーディングする。
上手にサルに仕事をさせられるように仕込む。
でも、それってそれ自体には価値はないよね?
それのお陰で浮いた時間で人間が脳みそを使って何かを生み出さないと。
できあがったシステムがあるから、ふだんと違う景色で情報を見ることができて、ドラスティックなアイデアが湧いた…とかまでいってはじめて意味がある。

何が言いたいのかというと…
本末転倒じゃないのかな?ってこと。
思考や発想の為の脳みその空き領域を、記憶し続けるという作業のために逼迫されてしまうことってさ。
やっぱ本末転倒な感じがする。

フローの変更

「これって大事かも」「あとできっと必要になる気がする」
そんなとき、たまには、サヨナラしてみよう。
名前もメアドやケータイも聞かないで。
もう意図的に「サヨナラする」というプロセスを明示的に入れていかないと、僕ら、もう末期なのかもしれない。

そう。思ったんだ。
知りたがりも大概にしろ!って。

やってみたら分かったこと(結論)

だから少し前からそうしてみている。
メモらなきゃ!って思ったとき…その多くの場合、いったんサヨナラを呟いて⌘W。

そしてほんの短い間でわかったこと。
・いったん忘れても良い情報が存在する(縁があればまた出会える)
・むしろ忘れるべき情報が存在する(検討段階では必要な情報は、フェーズが変わって 実行段階になると不要どころか邪魔になる)
・情報を記憶蓄積しているつもりで忘れてたってこと。(Evernoteには溜まっていくけど脳には出会った記憶すら残らない)
・覚えるためには、それ相応の手間と時間が必要だってこと。(手間なくメモると間違いなく忘れる)
・歳をとると「覚えるための手間や時間」の効率がやたら悪くなるってこと。
・逆に歳をとって良かったのは、たいがいの情報「は脳内で予見できるもの」と大差がないってこと。
・その情報がなければこんな発想や思考出来なかった!なんて情報は記憶しようとしなくても覚えているということ(すこぶる効率が良い)
・そしてその情報によって脳内で起きた化学反応こそが大切であり、その情報それ自体には何の価値もないこと。
・メモるなら、自分の脳内の化学反応の方

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エントリのコメントで降臨してくださった新居さんの有益なアドバイスで解決しました。)

では、以下にその経緯を…。
――――――――――――――――――
まずは… lsof で httpd 関連プロセスと使用ポートを確認。

$ sudo lsof -i | grep httpd
Password:
httpd       271           root    4u  IPv6 0xxxxxxxxxxxxxxxxx      0t0    TCP *:ddi-tcp-1 (LISTEN)
httpd       271           root    5u  IPv4 0xyyyyyyyyyyyyyyyy      0t0    TCP *:* (CLOSED)
httpd       289           _www    5u  IPv4 0xyyyyyyyyyyyyyyyy      0t0    TCP *:* (CLOSED)
httpd       610           _www    4u  IPv6 0xxxxxxxxxxxxxxxxx      0t0    TCP *:ddi-tcp-1 (LISTEN)
httpd       610           _www    5u  IPv4 0xyyyyyyyyyyyyyyyy      0t0    TCP *:* (CLOSED)
httpd       611           _www    4u  IPv6 0xxxxxxxxxxxxxxxxx      0t0    TCP *:ddi-tcp-1 (LISTEN)
httpd       611           _www    5u  IPv4 0xyyyyyyyyyyyyyyyy      0t0    TCP *:* (CLOSED)
httpd       612           _www    4u  IPv6 0xxxxxxxxxxxxxxxxx      0t0    TCP *:ddi-tcp-1 (LISTEN)
httpd       612           _www    5u  IPv4 0xyyyyyyyyyyyyyyyy      0t0    TCP *:* (CLOSED)
httpd       613           _www    4u  IPv6 0xxxxxxxxxxxxxxxxx      0t0    TCP *:ddi-tcp-1 (LISTEN)
httpd       613           _www    5u  IPv4 0xyyyyyyyyyyyyyyyy      0t0    TCP *:* (CLOSED)
httpd       614           _www    4u  IPv6 0xxxxxxxxxxxxxxxxx      0t0    TCP *:ddi-tcp-1 (LISTEN)
httpd       614           _www    5u  IPv4 0xyyyyyyyyyyyyyyyy      0t0    TCP *:* (CLOSED)

(一部 伏せ字)

_www がやたらいますが、僕の環境では、FileMaker Server 系のプロセスは、bison(今のログインユーザ = 自分)が稼働実行するように設定していますので、_www のところは bison となるプロセスでなければおかしいわけです。つまりこれらは、FileMaker Server の Apache ではないということ。
とりあえず、こいつらを片っ端から殺します。
Activity Monitor.app で、httpd がらみでフィルタした結果とほぼ同じプロセスのはずですので、そっちから終了させてもいいでしょう。

再度、sudo lsof -i | grep httpd を見ると、全てのプロセスが消えたことが確認できました。
――――――――――――――――――
新居さんのブログエントリ『FileMaker Server 13とOS X ServerのWeb | Blog by msyk』によると、

FMSのhttpdのスタート、ストップ、そして設定の反映は、次のようなコマンドを打ち込みます。

sudo touch /Library/FileMaker\ Server/HTTPServer/start
sudo touch /Library/FileMaker\ Server/HTTPServer/stop
sudo touch /Library/FileMaker\ Server/HTTPServer/graceful

とのことなので…

$ cd /Library/FileMaker\ Server/HTTPServer/
$ sudo touch stop
$ sudo touch start

してみましたが、相変わらず http://localhost/ でアクセスできず。
――――――――――――――――――
次回からログイン時に load しないように、launchd のリストで unable にしとこう…と、
httpd な plist を検索。

  • /System/Library/LaunchDaemons/org.apache.httpd.plist
    /Library/LaunchDaemons/com.filemaker.httpd/start.plist
    /Library/LaunchDaemons/com.filemaker.httpd/stop.plist
    /Library/LaunchDaemons/com.filemaker.httpd/gracful.plist
  • それっぽいのは、1行目。
    ※ こいつは、/usr/sbin/httpd -D FOREGROUND を叩いてたみたいです。
    (他は FileMaker 系)

    $ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

    を実行。
    ――――――――――――――――――
    ここで、新居さん降臨。

    $ /usr/sbin/apachectl configtest
    httpd: Could not reliably determine the server's fully qualified domain name, using bisonSSD.local for ServerName
    Syntax OK

    を試したあと、「 HTTPServerの下のlogsにログは残っていないのかな?」と宣う。

    あーそっか…と
    /Library/FileMaker Server/HTTPServer/logs/
    で、最も更新時期の新しいエラーログ “ httpdctl.err”
    を見てみると…

    Syntax error on line 56 of /Library/FileMaker Server/HTTPServer/conf/extra/httpd-ssl.conf:
    SSLPassPhraseDialog: file ‘/usr/bin/fmsgetpasskey’ does not exist

    のオンパレード…(;´∀`)

    “/usr/bin/fmsgetpasskey” というファイルは確かに存在していません。
    Mavericks で FileMaker Server 13 がつつがなく動いてる MacBook Air の同階層を覗いてみると…当該ファイルは確かに存在しているのですが、どうやら Symbolic Link の模様。
    ということで… 実体ファイル: /Library/FileMaker Server/Database Server/bin/fmsgetpasskey から /usr/bin/fmsgetpasskey という Symbolic Link を作りました。

    そして改めて、

    $ sudo touch /Library/FileMaker\ Server/HTTPServer/stop
    $ sudo touch /Library/FileMaker\ Server/HTTPServer/start

    FileMaker Server の Apache が無事動き、http://localhost にアクセスできました。
    ――――――――――――――――――
    こう考えてみると、fmsgetpasskey という認証鍵ファイルがみつからないという立派な “認証エラー” ですから、やたらと出ていた認証エラーも首肯できます。

    教訓:ログ見ろバカ。
    新居さん、ありがとうございましたん。m(_”_)m

    …にしても、OS のアップデート(アップグレード)で Symbolick Link が消えるとか…どなの?ありなの?
    q( ゚д゚)pブーブーブー

    mixi プレミアム会員 解約方法(最新)

    mixi ついぞ入ってないからプレミアム登録してたの忘れてた。登録時のえびす顔・解約時の閻魔顔…解約画面がなかなか出てこない。なんとか解約完了したので、プレミアム登録解約したい方は、キャプチャをごらん下さい。(2014/03/30 20:02:45現在の方法)

    何故か「登録する」を選ぶ…(解約したいのに…です。故意?

    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 でソート順フィールドを見せずにソートされた値一覧を作る方法

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

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

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

    ソート順フィールドの値が表示されず、かつ、正しいソートで並んだ値一覧

    ソート順フィールドの値が表示されず、かつ、正しいソートで並んだ値一覧

    このニーズは、BOM(Byte Order Mark)をソート順の数分だけ繰り返したものを、表示させたいフィールドの頭に付けた値が入るような計算フィールドを作成し、その計算フィールドを、値一覧の2番目のフィールドとして定義してやることで解決します。

    ※ 先日(2013/12/21)の FM-Tokyo の LT 、先週(2013/12/28)の FM関西などで言及したものです。

    サンプルファイル と、具体的な手順をアニメGIFにしたものを置いておきます。(下の画像をクリックすると、Animation GIF が開かれ、手順が動画で見られます)

    サンプルファイルのカスタム関数ふたつを自分のソリューションファイルにコピペします

    サンプルファイルのカスタム関数ふたつを自分のソリューションファイルにコピペします

    ご自分のソリューションファイルの、値一覧用テーブルにソート用の計算フィールドを作成します。

    ご自分のソリューションファイルの、値一覧用テーブルにソート用の計算フィールドを作成します。

    ご自分のソリューションファイルに値一覧を定義します。

    ご自分のソリューションファイルに値一覧を定義します。

    値一覧をセットしたいフィールドのあるレイアウトで、そのフィールドに値一覧をセットします。

    値一覧をセットしたいフィールドのあるレイアウトで、そのフィールドに値一覧をセットします。

     

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

    譬えば…

    ↑この投稿をブログに埋め込む…手順を例にとると…

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

    テキストエリアをコピーしてペースト…
    ↓こんな感じになりますた。

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

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

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

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

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

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

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

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

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

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

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

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