MTのコードにはこのあたりを考慮していないものが多すぎる。権限(Association)を割り当ててからユーザーのパーミッション(Permission)を更新する処理など、あちこちに投げっぱなしのコードがある。数万件のレコードを管理画面操作で更新する等。
複数のレコードを纏めてINSERT、UPDATEするなどの処理をループで回さなければならなかったり、速度面の問題であったり、あの忌まわしいMT::Meta::Proxy::save 問題であったり、そういうところにもっと目を向けて真摯に取り組まないと未来はないよ。
my @entries = MT->model( 'entry' )->load( undef, { sort => 'id', direction => 'descend' } );
my $driver = MT::Object->driver;
$driver->begin_work;
eval {
for my $obj ( @entries ) {
print $obj->id . "\n";
# if ( $obj->id < 800 ) {
# die; # ここでdieした時、すべてのレコードは更新されない
# }
$obj->excerpt( 'Hello World.' ); # 概要欄に値をセット
$obj->save or die $obj->errstr;
}
};
if( $@ ) {
$driver->rollback;
die $@;
}
$driver->commit;
]]>
私のブログを読む方には紹介するまでもないですが、一応。
記念講演会ですが、同時通訳を聞きながらメモをとりましたので共有します。追いついていない所、私の知識が追いついていないなどで誤っているところがあるとは思います。ですので、これは私が単に感じたこと、私自身が単に願っていることなのかもしれません。内容は抜粋です。
WWW誕生の話は書籍「Webの創成 ― World Wide Webはいかにして生まれどこに向かうのか」でも読むことができます。
※このテキストは非公式のものであり、誤りが含まれることがあります。
(抜粋テキストここから)
私はこういう場で講演をするたびにまた一年が経過したな、と感じます。 25週年、28周年のときもそうでした。
我々は継続してきました。これからも停滞させない。 Webのない世界は考えられないところまできたと思います。 しかし、インターネットと言えども必ずしも永続すると考える訳にはいきません。
今日は皆さんに、レイヤーという話をしたいと思います。 例えばWifi、物理レイヤー=接続、有線無線に関わらず繋ぐことができます。
1969年、皆さんは何をしていましたか? 最初のパケットがネットワークを通過した時 コンピューターとコンピューターが繋がった(TCP/IP)。
今はクラウドの時代。データを投げ込めばやってくれる。 プラットフォームとは、基盤。
パケットを送れば向こうに任せてしまう、というところが素晴らしいアイデアであった。インターネットは差別がない(期待も込めて)。どんなアプリケーションでも。
期待も込めて、というのは競合排他のために回線を絞るとかするとかがなければ。
そして「ニュートラリティ」。 政治利用の問題も。アメリカなどで最近起こっていること。
インターネットはワンプラットフォームです。
1989年、CERNでプログラマをしていました。CRENは面白い場所です。色々な国の人達が集まっていて。物理学者も多いです。私もそうでした。
私はCERNでプログラミングをしていました。
みんなそれぞれ慣れたやり方があり、様々なOSも存在していた。私はWWWを任されていたわけではなありませんでした。
16ヶ月勤務して後に、これは必要だ。異なるコンピュータ、異なるOS、ドキュメントをどうすれば共有できるのか、それが実現できるのか。ハイパーテキストシステムが欲しかった。繋がってはいるのです。でも、いちいち聞かなきゃならないのです。OSも違うし使い方も違う。
もちろんネットワークはあったのだけど、どうやってログインするのか? 私はこれをWWWを開発する「言い訳」にしていました。すると、上司がやってみたらどうか、と。
NEXTがあったんです。スティーブジョブズが作った格好いいマシンがあったんですよ。NEXTを覚えている方いらっしゃいますか?
NEXTが格好良かった。いろんな格好良いものが詰まっていた。
すぐに電子メールが使える、開発機能が最初からあった。インターフェイスビルダー。プロダクト名を聞いてくるので「WWW」と入力した。少しハッキングしたんですが、うまく動きました。
NEXT自体は結局うまく行かなかったのですが、開発機、今ならOS Xを走らせて、開発する。当時からNEXTにはそれがあったのです。
このプロジェクトは「曖昧だけど面白い」という評価を受けました。
私は、誰かが何か面白いプロジェクトをやっていて、それが面白いと思ったら、やらせてあげてはどうかと思います。
WWWを閲覧するだけでなく、エディタも作りました。リンクを作る。
CERNのネットワークにはポートナンバーがありました。私は274(私の両親の電話番号)をポートナンバーにしてプロジェクトを始めました。色んな人が色んなポートナンバーでプロジェクトをやっていました。
それは1989年のことでした。 1994年に私はMITに移り、W3Cを作り、やがて慶應が参加しました。
今や、Webを使っている人は50%。28年の間にはいろんなことがありました。
さて、道行く人に訪ねたら、例えばFacebook、それがWeb。
SNSも一つのレイヤーです。本来のwebはオープンなのですが、FacebookもTwitterも集中型、Googleもそう。巨大なセンター、データベース、集中、集約化されている。分散化が良いところでエキサイティングだったのに。
Facebookの友達とか、Linked Inの同僚も、そうですよね? Facebookの友達とTwitterのフォローは同じじゃないですよね。SNSは分散型ではない。
オープンなwebを維持しつつ、SNSではない、オルタナティブなプロジェクト、MITでもやっていますが。
昔はフロッピーディスクさえあればそこにデータがあることがわかった、自由だった。でも今は違う。どこに個人情報があるかわからない。
ネガティブに聞こえるかもしれませんが、間違った方向に疑問を呈することは間違ってはいないと思います。
インターネットレイヤーとwebの間に国が介入してくる。例えば英国。半年間、誰が何をクリックしたか。私が「癌」を調べたら、誰かがそれを知っている。例えば保険に入れないかもしれない。スパイ活動、ブロッキングなど。
個人情報の悪用、マネタイジングに利用しているかもしれない。
Twitterはもはやニュートラルなメディアではないですよね。リツイートという機能がありますよね。拡散する。アイデアをネットワーク上で拡散する。でも、ネガティブなツイートのほうが10倍だという。
人間とテクノロジーがつながっている。ノードは、人ですよね。新しいSNSを作るのであれば、人と人をつなぐもの。Twitterも、もっとデータを見ていって欲しいですよね。差別的な発言、悪意のほうが拡散しやすいのではないか。選挙戦のときもフェイクニュースとか。Webが収入につながるかもしれない、だからクリックを稼ぐために過激な発言をするとか。広告システムは人をトレーニングしている。まったく商用の目的で動いている。アメリカの総選挙で起こったこと。クリックしてほしいからTweetする。お金に動かされている。GoogleのAd、Facebook広告。ターゲット広告は確かに有効です。 ケンブリッジによると、人々を32のターゲットに分けてグループ化したのだそうです。ターゲット毎に有効な広告を配信した。これは倫理的なのでしょうか? 人によって伝えることが違う。ターゲット広告はまったく違うことを違う人に言うことができる。これは正しいことなんでしょうか?
私は、webの全体像に可視性がないことが懸念でした。全体のシステムの安定性。
多角的な物の見方をしましょう。単に急行列車に乗るだけではだめなんです。速く速く進もうというだけではだめ。スピードだけではだめ。どんな情報が使えるのか。今やWikipediaには情報が溢れています。
Webサイエンスが面白いのはマイクロスコープ、ある人が何かをクリックして何かを買う。 オンラインが暴力的になること、意地悪な人、どういったパラメーターでこれを変えていけるのか。AをBに変える。
Twitterは警告を出して、誤っていないか、悪意がないかを見ることはできないのか。そういう方向もありではないのでしょうか。インテリジェンスを使ってシステムを見ていくべきではないかと思います。 SNSによって起こっているディスカッションが人類のために役立っているのか。
しかし、私は前向きに楽観的に考えていきたい。
Web上に国境はありません。
皆さんには次のレイヤーのことを考えていただきたいのです。
ネットの中立性、スパイ行為と戦う、webをオープンにし続けるために取り組まなければなりません。
ロンドンオリンピックに出た時、何を話そうかと思ったのですが、私は(ここだけ日本語で)「これは、すべての人のためのものです」と言いました。
私の話は以上です。
(抜粋テキストここまで)
その、ロンドンオリンピックの動画はこちらに。写っているのはNEXTのようです。
リーダーというのは、楽観的かつ悲観的に振る舞うものなんだな、と。いずれにしても、WWWがあるおかげで今の自分や会社が存在するということに感謝。
]]>画像は12月の全社会議で、社員たちに問うた問題です。この件はまた後で。
2012年からこうして新年のご挨拶をブログに書いているわけですが、去年(2016年)は「基本に立ち戻り“仕事力”を見直す一年に」と言ってますね。本を書きたいと言ってたんですけど果たせず終い。それでも「仕事を教える」ことがゴールだったので、そこはこれまで以上にできたかなと思います。定期的な社内勉強会の開催もそうですし、新入社員への個別のレクチャー、マネージャーへのマネジメントに対する指導など。成果がでるまでにはまだ時間がかかりそうではありますが、継続していきたいと思います。
2016年を振り返るとPowerCMSクラウドのリリース(リリースは2015年12月ですが実質は2016年スタート)、執行役員制および事業部制の導入、会社のウェブサイトを新しくしたことなどのトピックはありましたが、目に見えるアウトプットが少ない1年になってしまいました。ここは真摯に反省をして、2017年は改めていきたいと思います。
この2年間、社員に言い続けてきたことがあります。我々のビジネスの本質は顧客接点にあり、その接点を増やす努力を続けていけば必ず成果は出る。よって重点課題は「顧客接点を増やす」であると。でも、そこに計画性とかアイデアが足りなかったように思います。正確に言うと「計画」を阻害するトラブルや突発的な仕事に引っ張られてしまい、計画が絵に描いた餅に終わってしまうということの繰り返しだったように思います。もちろんその原因の多くは「力不足」にあるわけで、昨年の「仕事力を見直す」というのがそれを解消するために必要なことであることは間違いありません。
それでも、スタッフ個々の力が向上するのを待っていては時間がかかりすぎる。10年以上1人管理職でやってきたわけだから、どうしても任せたリーダーが頼りなく見えるときもある。でも、任せたら思い切って任せ切ることをしないと先に進めない。そして、顧客接点を増やすための仕組みを自分が率先して作る。重要なのは顧客接点を増やすのはあくまでも現場のスタッフで、自分はその仕組みを作るという点です。これ、ビジネスの原点なのです。
自分たちの強みを見直せば、製品を生み出し、リリースすることが得意なのに、去年はそこが停滞してしまった。この「創って(開発)、作って(生産)、売る(販売)」というのは、過去にも何度か紹介した書籍「V字回復の経営―2年で会社を変えられますか」に書かれている言葉ですが、こういうベーシックなところで手を抜くと企業は成長できないどころか衰退してしまう。
こういうことを考えていると、昔、中学生の頃の担任に指摘されたことが今更ながらに思い出しました。俺って、形にするところまでは早いのに、仕上げんのが遅いんだと。今、80%がた形になっているプロダクトがいくつかあります。こいつらについて、最後のひと押しをちゃんと手を抜かずにやりきって、世に問うこと。そのために自分のリソースを注力させる。これを果たすためには、すでに書いた通り「任せたら思い切って任せ切ること」を徹底することです。
冒頭の画像は12月の全社会議で、社員たちに問うた問題です。その後の飲み会なんかで正解は言いましたけどね。
この会議では、社員が先日書いていた全社会議のレポートにも引用されていますが、下町ロケットの中の一節を引用して話をしました。
アルファサード全社会議 2016冬 in Osaka | PowerCMS ブログ
俺はな、仕事っていうのは、二階建ての家みたいなもんだと思う。一階部分は、飯を食うためだ。必要な金を稼ぎ、生活していくために働く。だけど、それだけじゃあ窮屈だ。だから仕事には夢がなきゃならないと思う。それが二階部分だ。夢だけ追っかけても飯は食っていけないし、飯だけ食えても夢がなきゃつまらない。
2017年、私は二階におります。一階ですか? ウチには優秀なリーダーがおりますから。
本年もどうぞよろしくお願い致します。
]]>Movable Type Advent Calendar は2012年から参加していて毎年最終日を担当させていただいています。過去の記事はこちら。
今年は何を取り上げようかと思っていましたが、丁寧に記事を書くモチベーションと時間が足りず、とはいえ負けるのも(誰に?)悔しいので、以前から気になっているMTの箇所にパッチを当てて再構築のスピードを速める実験をしてみました。
少しだけもったいつけて前振りを。静的サイトジェネレーター Advent Calendarで Movable Typeの中の人である長内さんが記事を書かれていますね。そう、MTは静的ファイルを吐き出すことのできるCMSです(ダイナミックパブリッシングも可能、部分的ファイナミックパブリッシングも可能、もちろんダイナミック処理ではキャッシュの仕組みを備えています)。
今年は第2回CMSプロレス 多言語サイトタイトルマッチ - CMS SUNDAYにお呼ばれして、チームMT(一人だけど)として参加、見事に勝利してきました。Movable Type以外の参加CMSはDrupal、concrete5、TYPO3、WordPress。Movable Typeだけが異質だと思いませんか?
PHP、Perlの違いはまぁ置いておいて、ダイナミックとスタティック(静的サイト)だと、文化が違うというか話がかみ合わないんです。同じく中の人の澤さんに「勘所がわからん!」とか言ってますね。
そう、動的、ダイナミックなCMSが「高速ですよ」っていったらみんなキャッシュの話。静的ファイルジェネレーターでキャッシュって、あるとしたらCDNやwebサーバーチューニングとかの話です。もちろんダイナミックも持ってるからキャッシュの話ついていけるけど、URLリライト系の話も盛り上がるみたいなんですよねあっちの文化では。てことで勘所あんまりわかりませんでした前半は。
静的ファイルジェネレーターで「高速」ってのは一般にはいわゆるパブリッシュ(再構築)の話ですよね。Movable Typeの再構築はしばしば待ち時間が嫌だとかそういう話になります。ただ、エンタープライズCMSの世界では、そこあんまり話題にならないんですよね。CMS操作の重さより、公開サイトの遅さや負荷とかそっちを気にされます。ま、そういうのも含め(使われているサイトの規模や用途も含め)て文化の違いとしか表現しようがありません。ま、なんとか勝ててよかったです。
今年、ある案件で公開側のサイトのダイナミック処理の速度が思ったように出ずに調査していた時に、テンプレートのコンパイルキャッシュが非効率な処理になっているケースを発見しました。以下の記事にその顛末をまとめています。
その時に「あれ? 静的ファイルの再構築処理の際の MTタグ(MTML)のコンパイルってどうなってんだっけ? って見たんです。どうもキャッシュされている気配がない。
で、少し手を入れてみたんですがうまく行かず、途中のファイルをFogBugzに投げてそこで止まってました。
MT::Builder の compile てのは、乱暴にひと言で言えば、テンプレートのMTタグをパースしてコンパイルして{tokens}を組み立てているところです。そのあと、テンプレートはコンテキストに沿ってビルドされます。MTはSQLの実行結果やビルドしたブロックやモジュールなどはマメにキャッシュしていますが、このコンパイル結果をキャッシュしていません。以下、見てもらえますか!? そう、MTタグを正規表現でパースしているんですよ、ここ。
while ( $text
=~ m!(<\$?(MT:?)((?:<[^>]+?>|"(?:<[^>]+?>|.)*?"|'(?:<[^>]+?>|.)*?'|.)+?)([-]?)[\$/]?>)!gis
)
{
ご存知の通り(知らない人も多いでしょうけど)、Movable Typeでは、再構築処理を行う際に1つのCGIへのリクエストあたり40記事ファイルずつ再構築を行い、リダイレクトを繰り返してすべてのファイルを再構築します。この40という数字は環境変数で変えることができます。
つまり、1リクエストでの再構築処理で同じテンプレートが少なくとも40回パースされるわけです。こいつを一回で済ませてしまえば。
12a13
> use Data::Dumper;
32a34
> my $is_tmpl;
34a37,39
> if ( $ctx->id ) {
> $is_tmpl = $ctx->id;
> }
73a79,88
>
> my $cache_key;
> my $chached_state;
> if ( $is_tmpl && $text ) {
> $cache_key = 'compiled-cache-' . MT::Util::perl_sha1_digest_hex( $text );
> if ( $opt ) {
> $cache_key .= '.' . MT::Util::perl_sha1_digest_hex( Dumper $opt );
> }
> $chached_state = MT->request( $cache_key );
> }
82a98,101
>
> if (! $chached_state )
> {
>
291a311,316
>
> } else {
> $state = $chached_state->{ state };
> $depth = $chached_state->{ depth };
> $errors = $chached_state->{ errors };
> }
306c331,338
<
---
> if ( $cache_key ) {
> if (! $chached_state ) {
> $chached_state = { depth => $depth,
> state => $state,
> errors => $errors };
> MT->request( $cache_key, $chached_state );
> }
> }
マシンスペックの高い環境では、EntriesPerRebuildの値を大きくするほどその効果が顕著になり処理も速くなります。
このブログをエクスポートして、最新版のMT6.32にテーマ Rainier 1.22 を入れた環境を用意して計測しました。「デフォルト、すべてのファイルの再構築計測結果(ケース1)」と、「記事アーカイブのみ、EntriesPerRebuildに1000を指定した場合(ケース2)」各5回の計測結果はこちら。
計測ケース | ケース1 | ケース2 | ||
---|---|---|---|---|
Builder.pm | オリジナルBuilder.pm | 改良Builder.pm | オリジナルBuilder.pm | 改良Builder.pm |
1回目 | 331 | 243 | 216 | 155 |
2回目 | 302 | 254 | 270 | 170 |
3回目 | 285 | 234 | 211 | 180 |
4回目 | 301 | 255 | 189 | 155 |
5回目 | 281 | 245 | 170 | 155 |
合計(秒) | 1500 | 1231 | 1056 | 815 |
結果 | 約18%高速 | 約22%高速 |
あまり時間もなかったので、今日のところはこれまでです。引き続き以下のような部分を検討して実装できれば2017年、MTの再構築はもっと速くなることでしょう!
それでは、メリークリスマス、そして、良いお年をお迎えください!
]]>米大統領選挙、僅差で最後まで読めませんでしたね。普段政治のこと書いたりしないですけど(政治と野球の話はオンラインでしない主義)、今日は Web Accessibility Advent Calendar 2016 の23日目の記事です。
Accessibility Advent Calendar といえば、sukoyakarizumuさんによるこんな記事がありました。
私は ColorTester の作成者なので、本題の前に少しだけ ColoerTester について触れさせていただきます。特にこのページで結果のバラツキについてネガティブな書き方をされているわけではないのですが、ColorTesterの色の比較メソッドは W3Cのページにある計算式のそのまま、ほぼコピペです。
Xojoという開発ツールで作成しています
Function GetL (C As Color) As Double
Dim R,G,B As Double
R = C.Red / 255
G = C.Green / 255
B = C.Blue / 255
If R <= 0.03928 Then
R = R / 12.92
Else
R = ( ( R + 0.055 ) / 1.055 ) ^ 2.4
End If
If G <= 0.03928 Then
G = G / 12.92
Else
G = ( ( G + 0.055 ) / 1.055 ) ^ 2.4
End If
If B <= 0.03928 Then
B = B / 12.92
Else
B = ( ( B + 0.055 ) / 1.055 ) ^ 2.4
End If
Dim L As Double
L = 0.2126 * R + 0.7152 * G + 0.0722 * B
Return L
End Function
なので、テキストフィールドに値を入れて計算している以上は正しい結果を返していると思っているのですが、ピッカーから色を拾う場合に正確な値が拾えす、誤差がでることがあります(これはmacとWindowsでも少々異なるかもしれません)。(久しぶりにコードを見て確認したのですが)、ColorTesterのピッカーは、マウスポインタ周辺の小さなキャプチャを生成して、そこから色を拾っています。実はあまり知られていない(ように思う)のですが、ColorTesterでは「OS標準のカラーピッカーを使う」という設定が選択できます。スポイトアイコンをクリックする「ひと手間」が余分にかかるのですが、より正確に色を拾いたい場合、こちらの設定も試してみてください。
また、画像をドラッグ&ドロップで放り込む簡易チェック機能もあります。このロジックについてご興味のある方は下記の記事で紹介しています。
さて、ようやく本題に戻ります。米大統領選挙、まだ記憶に新しく、次期大統領の発言もニュースを賑わしていますね。
この記事では、米大統領選挙の速報サイトのデザインにおける色問題について取り上げます。 米大統領選挙の速報サイトについては、以下のページに様々なデザインが紹介されていますが、冒頭で紹介した画像もその一つです。
上記のページでも触れられている通り、色分け、色の濃淡もしくは大きさなどでどちらが優勢かが視覚的直感的に理解しやすいと紹介されています。
色分けされた地図は視覚的でわかりやすいので、ついやってしまいがちなパターンですが、次に示すようにグレースケール状態にすると民主、共和党優勢、同数あたりの区別が困難になってしまいます。
考えておかなければならないのは、色弱(色覚異常とも表現されます)の人や弱視の人のことだけではありません。いまどきモノクロ?、みたいな意見は kindle が一蹴してくれましたし、例えばこの速報を見ながら会議を行っている時、モノクロ印刷した紙資料で配布されても何がなんだかわからないですよね?
このような画像は、JIS X8341-3の7.1.4.1(WCAG 2.0 の1.4.1) に適合していないことになります(適合レベルは「A」)。上部の更新時間や「当選 優勢」などの画像内の文字のコントラスト比が不足しているという別の問題もあります。
これを適合させるためには、以下のような方法があります。文字を併用する、パターンを変えるなど。
このような配慮がなされない理由として、全体的に「デザインが"うるさく"」なってしまう点が挙げられます。以下の例は、色に加えてアルファベット1文字を追加し、若干全体のコントラストを上げています(文字の大きさも当選か優勢で分けています)。
モノクロになっても理解できますね?
この「デザインが"うるさく"」なってしまう問題を回避するには、例えば文字併記版と文字のない版を切り替えられるようにする、表組みでマークアップしたテーブルを地図の下に表記する、などの方法があると思います。いずれにしても画像の alt属性に各州の結果をずらずらベタ書きで格納するのは現実的ではありませんから、マークアップしたテーブルを併記するのが良いと思います。国内で次の選挙の際にでも、このあたりに配慮された表現が見られると嬉しいですね。
このような表現になりがちなもののパターンを覚えてしまいましょう。何事も「ツボ」が大事です。非アクセシブルなものになりがちなものには以下のようなものがあります。
こいつらが出てきたら、「来やがったな!」 と思って確認する習慣を持ちましょう。
※この記事は嘘八百、根拠のない、フィクションです。実在のいかなる会社、団体、個人とも関係はありません。
via APIやサイトから情報を収集してブログアップするプログラム - みんなのお仕事相談所 [ID:497]
検索エンジンのエンジニアをしている知人(Aという)の話です。キュレーションサイト、まとめ系サイトで質の低い(web上の情報の寄せ集め、正しくない情報や著作権に配慮されていないサイトの)ページが上位表示されているという噂がネット上に散見されるようになり、社内でもさすがにこれは問題ではないかという話しがずいぶん前から上がっていたとのこと。
どうやらクラウドソーシングで安価なコストでコピペまがいの記事を大量に生産するような方法でSEOを行っているらしいというところまでは認識しており、そのエンジニアは偽名を使ってクラウドソーシングから応募してみたのだそう。マニュアルに沿って原稿を書き、チャットツールでやりとりをし、採用されるといくばくかのお金を得られるのだという。
試しにやってみようかと思ったのだが、かかる労力とお金の見合わなさに萎えたのだそうだが、マニュアルを読んでいて、これ、自動化できんじゃね と思い、試しに書いてみたのだそうな。こういうの書くのはPHPに限るんだと。
これで、記事が大量生産できるようになった。一人の生産量があまりに多いのは怪しいので、アカウントをたくさん作ることにした。今度はアカウントの管理、受発注の管理が面倒になってきた。
※この記事は嘘八百、根拠のない、フィクションです。実在のいかなる会社、団体、個人とも関係はありません。(2回目)
で、これもbotを作ればええんやとすぐに気づいた。今時のクラウドソーシングはご丁寧にAPIが用意されている。チャットツールにしても然り。
こうして、たくさんのアカウントで仕事を分散して受注し、記事を自動生成してお金を稼ぐ仕組みができあがったらしい。ただ、それをやっているうちに何だか馬鹿馬鹿しくなったのだそう。だって、自分でキュレーションメディアを立ち上げたらもっと儲かるんだから。でも、Aは自分で責任を負うのは苦手だと普段から言っているタイプで、自分ではそういうのは気乗りしないのだと言っていた。
一方その頃、キュレーションメディアを運営するベンチャーに勤める別のエンジニア(Bという)に聞いた話し。Bの会社は大量の記事を作成するためにクラウドソーシングを利用しているのだそうだが、これがまた面倒臭いことをやってるなと。なので、クラウドソーシングのAPIを利用して募集から採用、やりとりまでを自動化するプログラムを作ることを提案したのだそう。なんて事はない、あの(どのだよw)大量の発注はbotがおこなっていたのである。
※この記事は嘘八百、根拠のない、フィクションです。実在のいかなる会社、団体、個人とも関係はありません。(3回目)
あるとき、AとBが偶然IT系の勉強会の後の懇親会という名の飲み会で意気投合したのだそう。技術力はあるが責任を負いたくないAと、キュレーションサイトの裏側を知るB。二人が出した結論はこうである。
やれやれ、こうやって世の中は回っていたのか。AもBも現在では相当の資産家であるらしい。
※この記事は嘘八百、根拠のない、フィクションです。実在のいかなる会社、団体、個人とも関係はありません。(4回目) ←もうええわ!!
ま、仮にこんなことがあっても別に驚かんよな、とか思った次第です。さ、仕事しようぜ。
]]>#!/bin/bash
lftp -u usrname,password -p 21 example.ftp.azurewebsites.windows.net << EOF
cd /site/archives
mirror
bye
EOF
find . -f>../files.txt
sed -i -e 's/^[^\/]*$//g' ../files.txt
sed -i -e '/^$/d' ../files.txt
sed -i -e 's/^/rm /g' ../files.txt
commands=`cat ../files.txt`
lftp -u usrname,password -p 21 example.ftp.azurewebsites.windows.net << EOF
cd /site/archives
${commands}
bye
EOF
rm ../files.txt
いきなり経営者目線からサラリーマン目線とか言わんとって欲しいですが :-p 、事業部長もチームリーダーも会社の中で働いてることに変わりはないわけなので「会社の中でどう生きるか」について考えることが無駄になる事はないでしょう。
人はどんな場所にいても
社会を動かす仕事ができるはずだ。
考えよう
「会社にいるからできないこと」じゃなく
「会社にいるからこそできること」を。
使われる人生じゃない。
この本を読んだのは経営者になってから10年以上経過してからですから、違う立場で読んだ事は間違いないですが、サラリーマン時代を振り返って(精一杯やりきってから会社を始めたとずっと思っていましたが)、別に会社にいてもできなかったことじゃないというか、今の自分ならもう少しなんとか道はあったんじゃないかなぁとか思ったりします。いるかいないかわからないですが、うちの会社辞めて独立したいと思っている人がいるとしたら、考えきって、やりっきて、会社で可能性を追求してからやってみなよって言いたい。ま、一度読んで考えてみなよ、と言いたい。
ま、そんなに読書嫌がんなよ、ってことで漫画をひとつ。 経理部門にでもいない限り会社員やってると会計とか数字について考える事ってあんまりないんですよね。会計をかじると何で経営者がそんなに数字にうるさいのかが理解できるかと思います。また、ビジネスモデルってもんをいろいろ考えることで、頭をやわらかくできる効果も見込めるかも。あと、自社の決算書を見て、良い、悪いを自分なりに判断できることも大切です。
ま、なにぶん漫画ですから、一度読んでみたまへ。※
※とはいえ、それなりに難しいテーマを無理やり漫画にしてるので、斜め読みだと理解できない代物です。
もひとつ漫画。価格や差別化戦略について考える題材に。私が読んだのは漫画じゃない方ですけどね(100円のコーラを1000円で売る方法3 )。Amazonのレビューはあんまり高くないな。ま、あくまでも初心者向けですが、マーケティングとか考えた事ないって人がはじめて考えるきっかけにはいいのではないかと思います。
でね、これ敢えてシリースの「3」にしたの、テーマが会計ソフト、webサービスが題材になっているからです。身近なテーマの方が頭に入りやすいものね。
ビジネス書でも何でもないじゃん! なんだけど。ドラマ化されたし、見たって人はそれでもいいんだけどね。中小企業で働くってことを考える教材としてはええんちゃうかな。
俺はな、仕事っていうのは、二階建ての家みたいなもんだと思う。一階部分は、飯を食うためだ。必要な金を稼ぎ、生活していくために働く。だけど、それだけじゃあ窮屈だ。だから仕事には夢がなきゃならないと思う。それが二階部分だ。夢だけ追っかけても飯は食っていけないし、飯だけ食えても夢がなきゃつまらない。
青臭い小説やドラマのセリフである事に違いはないんだけど、日々の仕事に追われて新しい製品やサービスの開発が後回しになっちゃいけないよってことだ。これは我々の様な会社にぴったりの表現ではないか。
セミナーで松尾さんに教えてもらった本です。
全社会議なんかの発表を見てて、プレゼンの場とかあんまりない人に何か勉強させる機会ないかなぁとか思ってるわけなんですが。
ただ、この本にはプレゼンの具体的なテクニックはまったく書いてありません。「わかりやすさとはどういうことか」「読者を引き込むための工夫」「企画におけるポジショニングの定め方」など、ビジネスに必要な要素を漫画を題材に解説している本、と思った方が良いです。
プレゼンの具体的な話は他に読んだ本があったけど、今手元にないや。あとで追記するかも。
追記。思い出した。TEDの動画はわりとどれも面白くて、よく見る機会があるんだけど、ストーリーとして洗練されていてよく練習されているような印象を受けます。CSS Niteなんかでも鷹野さん結構厳しくて(僕は我が道行っちゃうんですけど)、プレゼンは聴衆の時間を奪っているということを意識するのが大切だと思わされます。
私も13年前に1人で会社を始めた口ですが、最初から会社を作ろうと思うのと、自然発展的に法人化をする違いについて少し書いておきたくなりました。
きっかけは、100万円ちょっとの請求書が3週間遅れで届いたこと。お小言言うつもりもあんまりないんですけどねw
尚、私のこと知ってる人には言うまでもないですが、クライアントワーク、いわゆる受託のシステム開発やクリエイティブ系の仕事の話です。
節税のための法人化ってのもあるのでしょうけど「取引条件に必要だから」「信用が得られるから」ということでの法人化であれば考えておかないことがあります。「信用と責任はセット」ですから、どういう責任を法人化によって自分は負うのだということを考えておくべきでしょう。以下はその一例です。
今回のことで言いたいことをひとことで、というとこの一文になります。 月商が200万円とすると(2〜4人くらい?)600万円、少なくとも2ヶ月分とすると400万円。
このくらいの商いをしていると「納期2ヶ月、300万円」みたいな仕事がボチボチ相談くるようになるんじゃないかと思います。月商の1.5倍ですからこれはそれなりに大商いですよね。以前にどこかのセミナーでも話しましたけど、納品後一括検収、一括振り込みでの仕事の場合、余力は月に50万円分しかありません。この仕事を受けると自然に小さな仕事を断るか外注するかくらいの選択肢しかなくなるわけです。
固定費だけならともかく、小さな仕事の外注費も月単位で出て行きます。そうなれば「納期2ヶ月、300万円」を受けるためにはその間の固定費を支払えるだけのキャッシュが必要になります。もちろん、「納期2ヶ月、300万円」を受けずに手元資金とのバランスをとって小商いに徹するのも「あり」です。その場合はキャッシュの「出」「入り」を注意深く見ていかなければなりません。それがいわゆる「資金繰り」で、そこの苦労を背負わずにもっと積極的な受注、成長をしていきたいのであれば、やはり月商の2-3倍程度のキャッシュを用意しておくということになります。利益が出れば法人税も必要ですし(はじめて大きめの利益が出た時に愕然とするんですよねだいたい)。
フリーランスから法人化し、受注規模に対して1人増え、2人増えというケースに「採用計画」があるでしょうか? どちらかといえば「仕事が増えて人が足りない」ということに追われて規模を拡大しようとしていませんか? 私が感じていることで危惧していることは、「終わり方を考えて中小企業を始める人はあまりいない」ことです。会社を将来どうしていきたいのか、働く人になにを求め、彼ら彼女らがどのようなキャリアをこれから積んでいってもらうのか、彼ら彼女らの将来ビジョンは何で、それにどのように答えていくのか。そのプランがないままに人を増やしていくと、気づいた時に数年経ってしまって、「さて、俺たちはどこへ行こうとしているんだ?」ということになりかねないです。
クリエイティブ職で著名なデザイナーの個人事務所なんかの場合、その人の看板が会社のすべてですからわりとはっきりしています。その人から技を学んで将来は独立ってやつですね。これも一つのキャリアプランですから、「お前、いつまでもここにいないでそろそろ独立考えろよ」っての。これも一つの将来ビジョンの示し方です。働く人もそれ分かっているんなら、ハッピーな雇用関係の形ですよね。有名なコンサルタントの個人事務所や著名なカメラマンの個人事務所なんかもこれに近い。アシスタントのような形で経験を積んだら、独立を考えなければ上がつっかえてますからね。カメラマンやデザイナーなんて、年齢積んだって仕事続けられますし。
そういう意味では、成長プランのない中小企業は高度成長期以降の、ポジションが足りない問題のもっと極端な奴がやってきます。上が引退せず、会社が大きくならなければ、下の人にポジションは生まれないしキャリアも積めないですからね。
自分のポジションの1つ上の組織単位で(*)の業務改善のためにやるべきこと・共有したいこと。
*1つ上の組織単位 てのはメンバーはチーム、リーダーは事業部、事業部長は会社視点で、ということメンバーは1冊、リーダーは2冊、事業部長は3冊、マネジメント、経営やリーダーシップ、コミュニケーション、プロジェクト管理、ソフトウェア開発でも良いですが書籍等を読んで、会議で共有したいこと、感じたことなどを入れてください。購入は自分磨き手当でいいと思うけど、他の人にも共有したいものや高額な書籍やセミナー受講なんかは事業部費申請してくれても構いません。
自分の持ち時間の範囲で上記以外の内容を加えることはまったく問題ありません。
当社の組織ですが、チームは4、5名くらいの単位で「ディレクション」「制作」「ソフトウェア」「クラウド」の4チーム。2チームが一つの事業部となり、「webインテグレーション」「ソフトウェアソリューション」の2事業部制。
と、いうことで何を選択してくるか楽しみではあるんですけど、一応何冊か課題図書みたいなんを上げてみるものいいかな、と思って記事を書きます。
以前参加した、このセミナー会場で購入。小さな会社を経営するということについて、12の分野に分解して説明しています。「商売が成り立つこと」という本当にベーシックな部分について学ぶことで、特に「ビジネスのバランスの取り方」について学べます。事業部長といわず、営業マンにもお勧めできる書籍です。
原価管理のところをよく読んでほしいと思う。当社のビジネスモデルととてもよく似ているので考えるきっかけによいと思う。メーカーと、オーダーメイドのカスタマイズのバランスの取り方、見積もりの精度を上げること、パッケージビジネスと受託のバランスの取り方など、参考にできる部分がとても多い。
「マネジメント」によって組織はこんなに変わるのか、やり方次第で利益があがることについての気づきを得てほしい。
決して値上げを前提にするためではなく、価格の決め方や見積もりの仕方についてのヒントになります。「良いものをできるだけ安く」提供するのは商売の原点のようなものですが、必ずしも自分たちが何らかの犠牲を払ってまで値下げを行う必要はありません。
「粗利」「利益」というとても根本的なことを今一度理解すること、価格、値段のメカニズムを知ることで新サービスや製品、もしくは受託の見積もりの立て方を考える良いきっかけになると思う。
こちらについても以前、こんな記事を書いた。
帯の台詞が中々いいところをついているのでご紹介したい。ね、このひと言が全てを語っているような気がする。ビジョンがないから目先の仕事に言い訳し、大切なことを後回しにしてしまうのです。そして、ビジョンを描いたら忙しくなくなるか、といえばそんなことはないわけですが、大切なことは、忙しくても本来やるべき仕事を後回しにしなくなるということです。そして、忙しくても平気になるのです。 我々のように特にクライアントワーク、受託の広告(Web)制作事業やソフトウェア事業をやっていると、お客様第一の錦の御旗の元に、目先のお客様の依頼事項を言い訳にして自分の大きな目標、それは仕事であっても個人のスキルアップでも何でもいいのですが、そういうのが後回しになってくる。口をついて出るのは「忙しい」「時間があったらやりたい」です。忙しいから絵(ビジョン)が描けないのではなく、描けないから忙しいだけだ
ね、耳が痛いでしょ? どうして変革が必要なのか、なぜ走りながら考えることができないのか、考えるきっかけになれば。
元マイクロソフトの方が書かれた本です。当社のような小さな組織では、マネジメント専任ってのは中々に難しくて、社長である私自身ですらいまだにプレイングマネージャーです。プレイングマネージャーの苦労はすごくわかる。自分の仕事の成果を出しながらチームや部下の成果も出させないといけない。この本ではこれからの中間管理職に必要なのは「ハブ型リーダーシップ」であると説いています。話を聞き、状況を観察すること。
日常業務で手一杯→ コミュニケーションは後回し→ 職場の空気が停滞する→ 仕事が思わぬところでストップしたり、部下とのトラブルが生じたりする→ ますます業務が増える
あーこれもありがちですね。あんたの悩みは決してあんたに特有の事情じゃない。いますぐ悪循環から脱して、好循環を作るべきです。
日々のコミュニケーションをパターン化する、習慣化する、仕組み化する、マルチタスク化する→ 部下やメンバーが自立して動く→ 上司や他部門にも情報が行き渡り、協力を得られる→ 中間管理職である、あなた自身の負担が減る→ チームで成果を上げられる→ 余裕のできたあなたが、より大きな仕事に着手できる
経営パワーの危機―会社再建の企業変革ドラマ (日経ビジネス人文庫)と同じ著者による別の本。この本については以前、こんな記事を書いた。
この本には自分が読んでも痛いと感じる言葉が並んでいます。
しかし社員が社長と一緒になって考えてくれるなどというのは幻想にすぎない 。社長こそが新しい考え方を模索し 、それを提示し 、そして社長が自ら行動しなければ 、何も起きないのだ 。
組織カルチャ ーの変化は必ず 、組織内で起きる 「事件 」 (大きな出来事 )を触媒にして進展する 。事件を避け 、なるべく静かに 、無難にことを進めようとする経営者や管理職では 、その組織文化を変えることはできない 。
リーダーシップということについて、今一度考えるきっかけになれば。
]]>CMSの導入をどの部門が主導で行うかって実は結構バラバラです。代表的なものは次のような部門となります。
その他にメディア系企業では編集部とかネット専業企業の場合はそのものweb部門がある企業なんかもあります。
上記の5つの顧客ポジションのうち、最後の「経営者自身に対するプレゼン」ですが、これを行うかどうかは「どの市場を相手にビジネスを展開するか」という戦略と密接に絡んできます。ちなみにアルファサードでは経営者自身にプレゼンを行うことはほぼ皆無、実質ありません。これは、ライセンス料の値付けが関係しています。
当社のCMSは上記の価格です。これにオプションや初期構築などのSI、ケースに応じてインフラなどの構築コストが追加されます。
CMSの場合、CMSを導入すればすぐにサイトの更新ができるようになるわけではありません。例外としては、CMSにあらかじめ用意されたテーマを使ってサクッとサイトを立ち上げるケースでしょう。WordPressなどはこのあたりに強みがあります。一方でPowerCMSの場合、用意されたテーマでサイトをそのまま運用し始めるようなケースは稀で、オリジナルのデザインのサイトをベースにガッツリつくり込むタイプのサイトが多いです。有償の商用CMSですから、このライセンスコストと初期構築のバランスをクライアントは意識されます。この、コスト感覚からいえば、私の経験値から「CMSのライセンス料金は、全体コストの20%が上限」という数字が感覚としては合っているように思います。つまり、Professional版なら初期構築の総予算300万円、Enterpriseなら初期構築の総予算450万円、Advancedなら900万円。
この規模の予算を用意する(できる)クライアントのweb担当者は、まずもって経営者ではありません。地方のサイト制作では経営者が直接ハンドリングする場合もあるでしょうが、そのケースで予算300万円を超えるケースは少ないと思います。よって、PowerCMSはライセンス金額の設定によって経営者が直接決定に関与する規模の案件、クライアントではなく、経営者以外の誰かが決定者である規模以上のクライアントをターゲットにビジネスしているということになります。必然的に東京が主戦場になります。
一方で、当社のようなメーカーの場合、直接エンドユーザーにプレゼンしない場合もあります。いわゆるCMSを提案する立場の以下のようなお客様んい対するプレゼンが必要なケースなどです。
テーマが広範囲に渡りすぎるので、このケースは一旦別の機会にゆずることにします。ここで検討するのは下記の4部門です。
そこそこの規模の会社でサラリーマン経験がある方はおわかりだと思うのですが、いわゆる総務企画、広報といったバックオフィス担当、直接お金やモノを生み出さない部門の人は、一般に社内ではあまり力が強くありません。普通に考えればわかると思いますが、例えばトップセールス、お客様に支持されるために営業に接待に駆けずり回ってしかも成果を上げている部門の人やヒット商品を作るために商品を作っている人からすると「直接収益に貢献している自分たちがあって会社が成り立ってんだ」という思いがどうしてもあります。お客様の都合で予定が変わることなんかもざらですし、数字が悪ければ容赦なく社内の突き上げや上司からの叱責が飛んでくるわけです。そんな毎日の忙しさの中で総務部門の人がですよ?「すいません、今度CMSというのを導入して皆様にもほーむぺーじを活用してですねぇ、webでの情報発信をお手伝いいただくことになりました」なんて気軽に言えるわけないじゃないですか。どう言えたらいいと思います? それは、以下のようなセリフですよね。
「すいません、今度CMSというのを導入して皆様にもほーむぺーじを活用してですねぇ、webでの情報発信をお手伝いいただくことになったのですが、皆様にほーむぺーじのチェックいただいていたこれまでの手順は何も変わりませんし、Wordで社内報の原稿お願いするときあるじゃないですか、あんな感じで時々お願いするだけですので。あとは我々が頑張ってやることになりましたので」
くらいに留めたいわけです。ただでさえ気を遣うんですよ。営業部の山田さん(仮)や製造部の田中さん(仮)にお願いするのって。
なので、いわゆる間接部門、バックオフィス担当者へのプレゼンでは、圧倒的に「ワークフロー重視、現場に負担をかけずに運用を良くする提案が響く」わけです。
「みなさんの画面はこんな感じで多機能ですけど、コンテンツ投入担当者の画面はこんな風になります。シンプルですよね。権限を設定するとできない機能が画面から消えちゃうので、こんなシンプルな画面になるんですね。」
くらいは見せてあげる必要はあるでしょう。
また、承認フローだけじゃなくて、サイトの確認フェイズで直接部門の皆さんに負担をかけない工夫も考えてあげなければなりません。
という運用をしていたとします。CMSになっても、これが変わらないのであれば、社内でイチイチ説明する必要すらありません。これ、すごく喜ばれます。
情報システムの方はそれはもう諸々詳しいです。他の製品のことも良く知ってる。多機能をそのままアピールしても情報処理能力が高いから消化できる。日々色々な社内のネットワークやシステムの課題に対処していくのが仕事ですからね。多機能のアピールがそのままできます。正直楽しいですよね、プレゼンしてても。
ところが、意外や意外、採用ポイントは社内ネットワークやセキュリティポリシーだったりすることが意外と多いわけですよ。DMZがどうとかVPNがどうとか、ネットワークなどのセキュリティに引っ張られたりする。なので、「スタティックにファイルを吐き出せる」Movable Type や PowerCMS はそれだけで有利だったりするんですよね。だから CMSプロレスとかで競合だったPHP+動的前提のCMSに対してはそれだけで優位性が出るときも多いわけです。ここ、実はすごく大きな優位性だったりするんですわね。
PowerCMS の Copy2Public プラグインや PowerSyncがなんで売れるのか。これ、顧客のネットワーク&サーバー構成を変える必要がないからなのですね。合わせられる強みです。ここは、企画広報部門に対する強みにも繋がります。運用ルールを変えなくていいからですね。
また、個人情報の取り扱いに責任を負わされるのもこの部門だったりします。フォームなどのコンバージョンに関連する機能を提供するのもCMSには求められますから、このあたりに対する答えも用意しておく必要があります。Salesforceと連携するソリューションなどは、選択肢を示すという点でも有用なアピールポイントになります。
旬ですね。今この分野がいろいろ熱いですが、例えばこのあたりの市場に対して自社だけででソリューションを提供するのは中々に辛いものがあります。例えば PowerCMS でも簡単なアクセス解析の機能を提供していますが、 Google Analytics などの高機能で普及しているソリューションと同等の機能を自社で開発するのは実際に割に合いません。であれば、そのあたりの競争力の高い別のソリューションと「つなぎ込める」懐の広さ、拡張性の高さがアピールポイントになります。PowerCMSでは、Google Analytics、Salesforce、FacebookやTwitterなどと連携するソリューションがありますし、REST APIなどを通じて他のソリューションと連携する機能も豊富に用意されています。開発も簡単にできる。ここをアピールすることが響きます。
情シス部門や、企画広報部門、マーケティング部門と真逆で、ここへのアピールはとにかく「シンプルで負担が増えないこと」です。管理画面のボタンは少なければ少ない方がいい。多機能なソフトウェアが導入されて学習コストを負担するなんて、実際ごめんです。CMSプロレスで示したのはまさにこれです。多機能をアピールすると、学習コストへの抵抗と仕事が増えることに対する警戒心が生まれますし、そもそも消化できないです。「理系の情報処理能力」「文系の感覚的・直感的な好き嫌い」とかいうと反論きそうではありますが、情報が消化しきれなことを意識しなければなりません。
CMSプロレスで工夫したあたりは以下の記事に纏めていますので、こちらも参考にしてください。
書ききれなかったので、後日続きを書きます。
]]>私が参加するのは主にIT/web系のイベントで、主催するのは比較的小規模なセミナーなどで、展示はほぼないのですが(あってもMacやPC、モニター、パネルくらい)、それでも週末にそこそこの規模のイベントが控えているので(主催ではなくスポンサー/出演者の立場ですが)書いておきたい、考えておきたいと思いました。
展示などを伴わないイベントでも、人が集まるからにはリスクというものが存在します。何もなければそれに越したことはないし、トラブルがあるのはむしろレアなケースであることは前提なのですが、考えておかないといけないケースはいくつかあると思います。
これらの「事」に遭遇した時、どうするか。プロが運営するイベントであれば当然のように事前に取り決め共有しているであろう問題ですが、コミュニティが主催するイベントなどはそもそも責任が曖昧です。イベント保険のようなものもあるわけですが、主催がコミュニティなどで法人でない場合に契約が成立するのかなど、そのあたりも調べておくのも良いかもしれません。トラブル時の連絡ルートや誰が最終判断をするかなどの取り決めも必要でしょう。
いちばん大切なのは、有料イベント/無料イベントに関わらず開催者は「参加者の人生の一部を預かる」という気持ちを持つことだと思いますが、精神論だけでは片付けず、そのあたりのノウハウやTODOリストの共有などがなされれば良いと思いました。
イベントが楽しい場でありますように。悲しい事故や不快なできごとが起こりませんように。そのためには備えあれば憂い無し、だとつくづく思います。
]]>結果的にいくつかのCMSと同点だったのですが、最終的には審査員の評価に重点を置いていただき、無事勝利を収めることができました! (前半に行われたクイズの点を加味すると同点だったのですが、クイズの結果相当酷かったというか、私はCMSマニアではないので他のCMSのことあんまり興味なくて知らんのです...)
さて、勝利したから書くわけではないのですが、今回、自分のデモンストレーションも他のCMSのデモンストレーションも見ていて、どこが勝敗のポイントになったのか自分なりに分析した結果が興味深かったので書いておこうと思います。
多言語サイトに対する機能がデフォルトで充実しているのは間違いなく concrete5、Typo3、Drupal の3つだったと思います。管理画面にデフォルトでその機能があり、対応言語数もとても多い。3者ともその部分をデモに取り入れて画面を見せていました。ここで考えておかなければならないことは「多言語に関する設定を行うのは管理者(Administrator)であり、運用者は目にすることのない画面」であることです。多機能であり且つ管理者向け機能であるがゆえに、サイト運用者には難しすぎます。そもそもサイト運用者が目にする必要のない画面なのですが、これを見せてしまった。
ちなみに、審査員の2/3は非エンジニアです。エンジニアにターゲットを絞ったデモを行うよりも、非エンジニア目線のほうが有利に働く場だったのです。
各競技のポイントは、以下の審査員によって採点されます。
WordPressの場合は、複数のプラグインソリューションがあるという紹介だったと思います。プラグインの多さは言わずもがなWordPressの強みであることに間違いはないのですが、どこをアピールするのかが今ひとつはっきりと絞り込めていなかったように思います。
一方で、私がとった戦略は「多機能」アピールをしないことでした。PowerCMSでなく、PowerCMSの入っていない純粋? なMTで、しかもダッシュボードを極端にシンプルにして臨みました。運用者の目に飛び込んでくる大きなボタンは何と2つだけです。多機能の真逆、Less is Moreですね。
今回のCMSのうち、Movable Type(PowerCMS) だけが静的ファイルパブリッシュを基本としたCMSです。「基本」と書いたのは、MTはダイナミック・パブリッシングもサポートしていて、動的生成もできるのですが、DynamicMTMLというその中間(ファイルの一部を動的処理する)形式もサポートしていて、動的サイトではこちらを使うことが(当社では)多いため、基本ファイルを生成する運用がほぼ100%。こうなると、CMSの設定でURLの見せ方を変えるような文化がそもそもありません。パブリッシュ後静的生成されたファイルを別のサーバーに転送(同期)して運用するようなケースも多く、国ごとに配信するサーバーを分けて別のサブドメインで運用するなんてことも普通にできます。ファイルを吐き出した後のURLの設定はwebサーバー(Apache、IISやnginx)の仕事になるため、CMSでできることは限られています。もちろんファイルを吐き出すパスについては自由に設定でき、いわゆるMTのアーカイブマッピングはなかなかに柔軟で強力なのですが、正直このテーマで盛り上がる他のCMSの感覚が理解できず、ここは何か逆に不利なシチュエーションだな、と思っていました。
なので、結局は文化の違いとファイルを吐けるメリットのみ強調して、特に機能のアピールはせず。まぁ、これも運用者にはわりとどうでも良い話なのかもしれません。
ただ、大事なことなので繰り返し言いますが、この設定画面も「管理者(Administrator)であり、運用者は目にすることのない画面」なのですね。この画面を見せても少なくとも運用者アピールにはなりません。
今回、要件を満たすために、当日の朝ギリギリまで作り込んでいました。当日、時間の関係で(変に盛り上がってしまった?関係で)、サイト運用者による実際のページ作成・更新が行えなかったのは残念ですが、すべての要件通りにきちんと動作するように作り込みつつ、細かい部分を画面だけでなく、プラグインによって要件通りに動作させる部分について相当作り込みました。標準機能ではPowerCMSも入っておらず「多機能」の逆ではありましたが、反対にシンプルな画面に必要な機能をコンパクトに凝縮させました。
ウェブページ編集画面のカスタマイズポイントは主にこの5つ。
5の部分については、mt_entry_status_en/mt_entry_status_tw というカラムを追加して、値の有無でファイル書き出しの制御を行いつつ、各言語の一覧表示を制御するテンプレート・タグ(フィルタ)を作成しました。ただ、このあたりの裏側の仕組み(テンプレート・タグ)は、これも「管理者(Administrator、もしくはDesigner)であり、運用者は目にすることのない画面」ですから、あまりアピールせず、管理画面のチェックボックス実装のみさらっとアピールすることに。
<MTPages status_filter="$lang">
各言語の公開フラグ付きページの一覧
</MTPages>
デモで見せようと思っていたのは2点。Microsoft Translator API を使ったリアルタイム機械翻訳と、翻訳データCSVファイルからの翻訳フレーズ一括登録>パブリッシュ>サイトの多言語化完了(5秒でサイトが多言語に変わる)の2点です。
Microsoft Translator API を使ったリアルタイム機械翻訳については、concrete5が数日前にプレスリリースを出していたのを見ていて、敢えて準備していきました。ここだけは、ま、狙ったところですね。CSVの件も機械翻訳の件も Drupal、Typo3、concrete5あたりからお話はありましたが、実際に動かしてみせたのは Movable Typeチームのみ。実際に動くことの説得力が効いたのは間違いないと思います。
その他、MT Studio(開発ツール)やPowerCMSを使ったカスタム・マスタ(テーブル)を作成するデモも行いましたが、何を実際に動作させてみせるかについては事前にある程度絞りこんでシナリオを作成しておきました。
もう一点(追記)、アイテム挿入の際の altテキストを各言語のものにするところも見せました。細かい所ですが、画像の代替テキストも多言語対応、という部分で敢えて他の陣営が触れなかった部分も作り込んでおいたあたりも細かなアピールに繋がったのかもしれません。
途中の質疑応答で最終で見せようと思っていたMT Studio(開発ツール)やPowerCMSを使ったカスタム・マスタ(テーブル)を作成するデモを見せてしまったので、最後はmacOSのデスクトップアプリからブログを実際に更新するデモ、CMSに登録済のアイテム(画像)をデスクトップアプリでリアルタイム編集するデモを行いました。ここだけアドリブですね。他は計画どおりです。最後は MTDataAPIDebuggerも紹介してデバッグツールもあること、1週間程度あれば投稿用アプリも作成できる可能性があることを自信持って言い切りました。
ひとつだけ、アドリブでネタを仕込みました。concrete5 のデモの際に、ドロップダウンで表示される対応言語数の多さ(スワヒリ語とか余計なこと言ったのはお詫びします :-p )にヒントを得て、いつぞやのエイプリルフールに作成したプラグインをインストールしてテンプレートにタグを一つ追加、アルファサードの経営理念を大阪弁に変換するデモを入れました。実はこれが一番ウケたのだったりして...
これは流石にジョークプラグインではありますが、こんなことも実現できるんだよってアピールには繋がったのかもしれません。あとは会場の空気を変える効果も。ホンマになんでもやりよんな! こいつ と思わせることに繋げられたことは間違いないでしょう。
ひとことでいうと、これを自分でなくてもできるように、という発想から作ったのが PowerCMS なのです。確かにコストはかかりますが、コストをかけることで、ノウハウと時間を買えるということを理解していただけたらと思います。
※これ、今回MTの実装としてはよくできたと思うので、コミュニティの勉強会の材料にしたいと思っています。どなたか企画してくれませんかね(チラッ
]]>参加中です。WordPressさんのお隣です。なんか前半は文化の違いで空気に馴染めず難しかったですけど。
]]>CMSプロレスとは?
- 同じ仕様のサイトを複数のCMSで構築して競うエンターテイメント性の高いイベント
- 第一線の開発者達がどのように実装したのかを解説つきで観戦
- CMSの体育祭!
よくわからないという方はこちらをご覧ください!
昨年のCMSプロレスの開催レポートはこちら
※昨年は、各CMSの代表チームが同じ仕様のウェブサイトを制限時間内に構築するライブコーディングイベントと銘打っていましたが、今回は、事前に構築したウェブサイトをもとにしたプレゼンバトルです
ちなみに「俺たちにテストさせろスペシャル」ってイベントのサブタイトルは私のアイデアなんですぜ!
受付で「インターネットの歴史(History of the Internet)」の巻物いただきました!
今日は、パネルディスカッションに出させてもらうほか、関連会社のラボさんと一緒に進めている僕のブログ(つまりこのブログ)のリーダーアプリを実際に触ってもらうという企画もあります。
アプリ「Junnama Online」は Movable Type の Data APIを活用したブログのリーダーアプリ(iOS版)で、現在 Test Fright中です。
さて、結果は如何に?
]]>