社長BLOG
11月23日 発火ソン Vol.7開催
毎月開催しているハッカソンイベント、今月は11月23日金曜日夜20:30から開催。
祝日の開催だ。
週末の仕事を少し早めに切り上げ、自分の成長や楽しみのためにハックする会。
仲間と一緒に開発や創作に没頭したいひとなら、誰でも参加可能。
詳細と申し込みはFacebookから。
http://www.facebook.com/events/223903317741065/
発火ソンと同時開催で、土曜日の朝から現地で鍋をゆる~く計画している。
こちらもご参加あれ。
OpenPNEテストの近代化
- 2012-11-16 (金)
- 社長BLOG
もともとガラケー用から始まっているOpenPNE。
そもそもガラケーは近代的なテストに向かず、泥臭い手動テストばかりしていた。
当時はそれが必要だった。
でも今は違う。貧弱バラバラなガラケーのブラウザから、
携帯用のブラウザはiOS SafariかAndroid Chromeに統一された。JavaScriptも使えるようになった。
OpenPNEもコードサイズが数万行増えている。
新技術の取り込みについては保守的なOpenPNEでも、コジャレたAJAX UIなんていうのも使うようになった。
いよいよ近代化しないと、テストの沼に足を取られ始めた。
まずプラグインから
進歩レベルで言えば、まだまだ石器時代。いまようやく石斧から鉄斧になったぐらいだが、ここから近代化するよ。
OpenPNE3.8用に開発しているプラグインについて、はじめから近代的テストを導入することにした。
チームの熟練度が上がってきたら、OpenPNE本体にも適用する。
※phpMatsuri2012 @ryuzeeさんの発表は刺激になりました!とても勉強になった。
Model拡張のテスト
メンバーのプロフィールや設定を読み書きする部分など、Model部分への拡張はsymfony1.4 のlimeでテストする。
すでにテストケースは存在するが、定常的に運用する形になっていないので、これをCIと連動させるところまでやる。
JSON APIのテスト
OpenPNE3.8からほとんどの操作をJSON API経由で実現するようにしている。APIのテストは比較的やりやすい。
近代化はここから進める。テストをなるべく書きやすくするため、あえてsymfonyを使わず、記述、確認が簡単なJavaScriptベースのQUnitを使っている。(これやると、反対にCI作るのが大変になるんだけどね。)
UI のテスト
AJAXをガンガン使っているUIは、手動テストになりやすいんだけど、ここもなるべくQUnitを使ってテストするようにしている。
UIコンポーネントだけをテストするために、本物のJSON APIは使わず、APIのモックをMockJaxで作って擬似通信したことにしている。
ブラウザーテスト
OpenPNEにはSeleniumベースのブラウザテストが有るのだが、やや古いし設計でまずい部分がある。これも再構築したい。
ただ手順的には、上3つの単体テストの整備が終わってから取り掛かるというのが正しい道だろう。
ということで、しばらく後回しにする。
Moomでマルチモニタいらず
- 2012-11-11 (日)
- 社長BLOG
MOOMはMac用のウインドウ整理アプリ。
とにかくむちゃくちゃ便利。すべてのマックユーザーに使って欲しいアプリだ。
ウインドウをコントロールするためのいろいろな機能がある。
自分が便利に使っているところだけ共有する。
スナップスティック
Windows7に搭載された、画面の端っこにドラッグすると画面ピッタリに拡大していくれる機能のこと。
(Windows7の最大の進歩はこのスナップスティックだと思う)
カスタム最大化
ウインドウの最大化ボタンの下にマウスオーバーで出てくる。
単純に大きくするだけじゃなく、左右半分に最大化したり、上下半分に最大化したりできる。
スナップスティックをドラッグなしで実現する機能。
キーボードショートカット
Moomのおかげでマルチモニタいらずになりつつある最大の機能が、キーボードショートカットだ。
ウインドウの配置をキーボードショートカットに覚えこませることができる。
自分の場合はCTRL+1〜5までをそれぞれのウインドウに割り当てている。
キーを押すごとに各ウインドウが画面一杯に現れる。
便利なのでお試しあれ。以下は自分の場合のセッティング。
普段使うアプリを画面いっぱいに呼び出せるようになっている。
キモはCTRL+2のチャットエリアか。
iMessageとSkypeはそんなに場所をとらないので、ひとつの画面に2つウインドウを並べて表示している。
これを使った日常の操作方法は、ムービーでも使わないとわからないと思うんだけど、それはこの記事に反響があったら、、ということで。
とにかく便利。マルチモニタよりも便利。
人間の目は同時に一箇所しか見られるようにできていないので、画面の切替さえ早ければ、理論的にはマルチモニタはいらんのだ。
Moomは、それが実現しそうなアプリだと思う。
MOOMはMac用のウインドウ整理アプリ。
OpenPNE Ver2の開発移管についてのコメント
- 2012-11-08 (木)
- 社長BLOG
OpenPNE Ver2の今後の開発を引き受けてくれる、OpenPNE 2 CEプロジェクトへのメッセージ
OpenPNEは、2005年に手嶋屋の社内開発のソフトウエアをオープンソース化したところから始まりました。
多くの組織に利用され今日まで発展しています。現在手嶋屋ではOpenPNE3に注力して開発を続けています。このたびOpenPNE 2 CEプロジェクトにOpenPNE2の開発を移管して、今後の開発を引き受けていただけることになりました。
OpenPNE 2 CEプロジェクトの取り組みで、今後も発展していくことは大変嬉しいです。OpenPNE 2 CEプロジェクトによって、今後もOpenPNEがさらに発展することを期待しています。
OpenPNE2については、手嶋屋による新規開発は終了している。
手嶋屋が商用で稼働しているお客さま向けの、SNSのメンテナンスのみを行なっている状態だ。
小さな会社なので、いくつもソースコードを確保することが難しい。現在はOpenPNE3とその周辺のプラグインに集中している。
手軽にインストールでき、簡単に動作、SNSとしてのひと通りの機能が備わっているOpenPNE2。
「自分たちにもオリジナルのSNSを運営することができる」という夢を実現する、大変素晴らしいソフトウエアだ。
まだまだ多くの利用者があるので、OpenPNE 2 CEプロジェクトの手により、今後も発展していくことは本当に嬉しい。
OpenPNEを拡張する4つの方向
- 2012-11-07 (水)
- 社長BLOG
OpenPNEがミドルウエアになったら、拡張するプラグインは4つの方向性に進んでいく事になる。
デザインテーマ
OpenPNEのデザインを変更するためのスキンテーマ。BootstrapをベースのCSSとして使う計画。
ユーザー機能
SNSに参加するユーザーが使う機能。組織によって変わる。
企業なら報告ツールや、タスク管理、Q&A、などグループウエア的な機能になる。
エンターテイメントなら、日記やチャット、メッセージボックスなどがメインになる。
認証・データ連携
誰をSNSにログインさせるか?を決めるのが認証プラグインの役割。
Facebookアカウントを持っていればOK、会社のLDAPやGoogleアカウントでログインさせる。
既存のメンバープロフィールや、所属部署をコミュニティやグループにマッピングする機能も必要になる。
コミュニティ管理
最後はコミュニティ自体を手軽に管理するための機能。
データ分析をするためのデータエクスポート。
各種レポーティングツール。
荒らし防止のための、NGワードフィルタリング
メンバー同士を自動的にフレンドリンクさせる、コミュニティ操作機能など。
ホワイトボードをCamiApp対応にするためのマーカー
- 2012-11-07 (水)
- 社長BLOG
社内用に作ったもののおすそわけ。
ダウンロードはこちらから CamiAppMarker.pdf
CamiAppとは、コクヨが出している紙のメモを電子化するアプリ。
余白を取り除いたり、傾きの補正をかけてくれたりする。
このアプリ対応のノートや、専用のホワイトボードをコクヨは販売している。
実は既存のホワイトボードでも、四隅に四角いマーカーさえつけてしまえば、CamiApp対応のホワイトボードにすることができる。
このホワイトボードは、たまたま120cm x 90cmのサイズだったのでCamiApp対応のホワイトボードとサイズがぴったりだった。
■こんな写真を
■こんな風に補正してくれる
OpenPNEのサイズを小さくしている
- 2012-11-07 (水)
- 社長BLOG
※正式&詳しくはOpenPNE本線側で共有する。
OpenPNE3.8から、OpenPNE自体のサイズを小さくしている。
これまで(Ver3.6まで)OpenPNEといえば、OpenPNE本体と、日記やメッセージなどのプラグインも含めた全体を指していた。
図のようにOpenPNE3.8では、CORE+認証+スキンをOpenPNEと呼び、プラグインは別配布とすることにした。
SNSの使われ方が多様化しているのに、いつまでもmixiのような全部入りSNSをSNSと呼ぶのに違和感が出てきたから。
Ver3.8現在は、認証とスキンがない状態で、OpenPNEは動作できない。
次世代のOpenPNE(4.0)では、スキンと認証も取り外して動作するように改善する。
以後はプレーンなOpenPNE本体のことを、「OpenPNE」と呼ぶことにする。
日記もない、掲示板もないOpenPNEは、単体では、ソーシャル・ネットワークのミドルウエアという立ち位置になる。
オフィス現場は、執務からコラボレーションへ
- 2012-11-06 (火)
- 社長BLOG
※早稲田オフィスのレイアウトをフロアプランナーというソフトを使って作った。
WordPressを作っているAutomattic社は現代最強の分散型企業。
うちに遊びに来てくれている安川さんの会社も、シリコンバレーに一人、沖縄に一人、東京に一人の3人の超分散型企業だ。
手嶋屋も先月早稲田に引っ越した。場所は広くなったし、念願の会議室は手に入ったしで、
かなり働きやすくなったと思う。(家賃はちょこっと上がったが、、、)
移転にあたっては、分散型企業時代に求められるオフィス現場、というのをかなり意識した。
執務=>コラボレーション
現場には執務空間よりも、コラボレーション空間の重要性が増す。
SNSのお陰で、オンライン上で会社運営ができるようになったので、わざわざ同じオフィスに集まって仕事をする必要が薄れてきている。
また、人それぞれ作業に集中できる空間は違う。
静かな方がいい、やかましいほうがいい、家族と近いほうがいい、家族から離れたほうが集中できる。
電話が鳴る方がいい、鳴らないほうがいい、暑いほうがいい、寒い方がいい、人それぞれだ。
人が求める空間を、オフィス現場が完璧に提供するのは効率が悪い。
家で働いたり、自分にあった、カフェやコワーキングスペース、図書室などを見つけたほうがいいだろう。
これから、執務はオフィス現場の外にシフトしていく。
相対的に、オフィス現場に求められるのは、複数人で共同作業をするためのコラボレーションになる。
お客さんと大事な話をするために、気密性の高い空間がほしい。
でかいホワイトボードを使って、みんなとアイデア出しや問題解決をしたい。
また、分散環境ではSkypeやテレコンを使って、リモートで打ち合わせをすることがある。
この時、どうしても声がでかくなってしまうので、気密性の高い部屋は必要だ。
(前のオフィスではこれが結構苦労した。)
コラボレーション用途では、チームが一定期間カンヅメになって、
結果を出す打ち合わせをする。なんていうのもあってもいいかも。
早稲田オフィスには、会議室を2つ作った。
ひとつは気密性の高い会議室。スカイプ会議、密談、面接、個人面談などで利用できる。
2つ目は、気軽に使えるホワイトボード付きのブース型。ブレインストーミングや進捗管理に向いている。
その他にも、自分の机は、簡単な打ち合わせができるようにしたし、執務席の間に小さなテーブルを置いた。
また、埼玉のふじみ野にログハウスがあるので、そこをカンヅメ空間として活用してみたい。
今後のオフィス現場に求められるのは、仲間やお客さん、人と人とが集まってするコラボレーションだ。
執務空間は少なめに、コラボレーションするための仕掛けはふんだんに。
手嶋屋もオンライン化、分散化するに伴ってオフィス現場の仕掛けを改善していきたい。
福岡にやってきた
- 2012-11-02 (金)
- 社長BLOG
久しぶりの福岡。
手嶋屋もささやかながら協賛させてもらっている、phpMatsuriに参加するため。
大野さんと一緒の飛行機で話し合いながら。
PHPのエッジな部分はほとんど追いかけられてないので、短い時間だけど勉強になった。
phpMatsuriは久しぶりにエンジニアと再会する場であり、二日間仕事を忘れてハックする場でもある。
自分にとってはとても貴重なイベントだ。
分散型企業になりつつある手嶋屋が、離れていてもちゃんと動くか?のテストも兼ねて。
去年のPHP祭りでハックした作品は、boundioのデモンストレーションとして活用できた。
今年のハックでも何かのサービスのタネを考えてみたい。
一つ考えているテーマは、LINEやcommu、ChatWorkなど、
最近流行っているHTTP?スマートフォン?ベースのチャットツールのOSSクローンの作成。
分断化が進みすぎているので、クローズドなツールは捨てて、OSSで普及するプロトコルや実装を考えたいなと。
スピードアップのために、Nodeに走ったり、Websocket触ったりできそうなので、面白そう。
もう一つのテーマは、
「自分を怒ってくれる」「目標に届くように自分を指導してくれる」
このあたりを、最近ホワっと考えている。
社内SNSの難しさ
- 2012-10-29 (月)
- 社長BLOG
社内SNSの導入の難しさを表したイメージだ。
「社内の全員がSNS好きなわけじゃないんだから、世間のSNSに比べて大変だよ」
ということ。
世間のSNSは、SNSが好きな人達が自主的に入っている。途中で肌に合わなくなった人はやめる。
だからSNSの参加者は、だいたいみんなSNSコミュニケーションが好きな人達なのだ。
会社はこうは行かない。スタッフは仕事に関連するからその会社組織に所属している。SNSが好きかキライかは関係なく。
必然的に、世間のSNSよりも、SNSの参加者がSNS好きである可能性は低くなる。
これが社内SNSの難しさの根本原因なんだな。