[技術][展示]Cybozu Day 2018に行ってきました

少し前に「Cybozu Day 2018」に行ってきました。

Cybozu Day 2018

Cybozuさんの製品を使用しているわけではないのですが
日経BPさんからのメールを見てて、目についたのがきっかけ。

タレントの真鍋かをりさんやお笑い芸人の
南海キャンディーズ 山ちゃんのトークセッションが
あるとのことで、面白そうだなーと思い、足を運びました。

Cybozu Day 2018 今回のテーマ

公式サイトにもありますが

『楽しいは正義』

ということで、展示や講演の内容も
働き方ということにフォーカスしたのがほとんどでした。

聴講したセッション

1.基調講演
 Cybozu 青野社長
 慶応大 前野教授
 タレントの眞鍋かをりさん

2.クラウド開発がシステム開発をもっと楽しく、もっと自由に
 AWS Japan 長崎社長
 Cybozu 青野社長

3.特別講演
 Cybozu 青野社長
 南海キャンディーズ 山里亮太さん

この中で、基調講演と特別講演について、公聴した感想を。
※ 2については、技術的要素が強いので、割愛

基調講演

Cybozu 青野社長、慶応大 前野教授
タレントの眞鍋かをりさんによる、トークセッション。

働き方 と 幸福(学) についての内容でした。

始めは、青野社長のお話。
「働き方」という部分にフォーカスしての
自社の実例を挙げながらの多岐に渡る内容でした。
中でも面白いな。と思ったのが

「仕事の生産性を上げるためには幸福度を上げること」
「公平は幸せではない」
働き方改革は働かせ方改革になっている」

これ、話を聞きながらフムフムって感じでした。

青野社長もおっしゃておりましたが、仮にですが
残業をしてでもたくさん働きたい人がいた場合、残業時間を
減らしてもらいたいから、周りに合わせて残業せずに帰って
もらった場合、その人は幸せなのか?といえば
必ずしもそうでないのかなと。

昨今の働き方改革ということでの
・労働時間の縮小ということで「残業を減らす」
・自由な働き方の推進での「リモートワーク」「テレワーク」
 という施策。

間違ってはいないと思いますが、ケースバイケースであり
100人いれば100のやり方があるのではとも感じました。

そういう意味でも、今やっている施策は

働き方改革は働かせ方改革になっている」

ということは妙にしっくりきました。

残業を例に挙げますが、会社で仕事をしなくても
絶対的な仕事量は変わらないので、カフェとかでやる・・・
というのでは本末転倒ですし。

まとめとして話されていた

「自分に合った働き方ができれば幸福度が増す。
 生産性ではなく幸福度を増やすことが真の働き方改革ではないか」

というのは、確かになぁ。とこれまた納得でした。

その後は、前野教授、眞鍋かをりさんを招いて、幸福学についてのお話。

前野教授曰く、幸福学は哲学的で抽象的なものであったが
今では科学的に「幸福とは?」ということがわかってきている
とのことでした。

幸福学では、「幸福な人の状態」は以下、3つの状態に
左右されるとのことでした。

1.環境
2.健康
3.心

その中でも、『心』については4つの因子があるとのことでした。

1.やってみよう因子:自
 夢・目標、強み(自己肯定感)、ワクワク感
 1日に1回ワクワク感を持つ人は、5%程度
 幸せな人は1.3倍生産性が高い

2.ありがとう因子:他
 感謝、利他、多様なつながり(多様性)
 感謝するほうが幸せ度があがる

3.なんとかなる因子:自
 楽観性、前向き
 日本人は悲観的な民族である

4.ありのままに因子:自
 人の目を気にしない(他人を気にしすぎないこと)
 ⇒自分らしさを出せること

この4つの因子のバランスが取れている状態が
幸福度が高いとのことです。
もし、夢や目標をたくさん持っていても、感謝の気持ちを
持つことをできていなければ、達成できたとしても
満足感がないのでは?と。

中でも「他」の要素が強い「ありがとう因子」に重点を
置くことが大切とも話されていました。
感謝する方が、感謝される方より、幸せ度が高いという
研究結果があるそうです。

また、周りとのつながり方に関しても話しておりました。

「多様なつながり」ということで、少なく深くというのも
大切ですが、広く浅くというつながりを
持っておくことも大切とおっしゃっておりました。
⇒これは、面白いなぁと思いました。

まとめてして

自分自身が最近幸せを感じないなーと思ったら
上に上げた3つの要素と4つの因子の状態を見直してみればいい

とのことでした。

特別講演

Cybozu 青野社長と南海キャンディーズ 山里亮太さんによる
トークセッション

山里さんは最初から
「ためになることは言いません」
と言ってましたが、実際はためになることばかりでした。

働き方、というよりは
「人との付き合い方」であったり
「自分自身の立ち位置(役割)の見つけ方」といった
どちらかというとメンタル的な部分の話が大半でした。

特に面白いなと思ったのが 嫌いな人との向き合い方。

「嫌な人のことを思い出して、妄想上で成仏させる」
 ↓
「その時のエネルギーを原動力とし、動く(前を向く)力に変える」

という部分。

嫌な人のことを思い出して、妄想上で成仏させる

 嫌な人のことを怒り続けていると自分の時間が奪われるし
 疲れてしまう。そうなれば、余計に嫌な気分になってしまう。
 だったら、妄想上で自己解決して、終わりに(スッキリ)しようと
 いう考え方。

 青野社長に「復讐というガソリン!」と突っ込まれてました(笑)

 これ、言葉にするのは簡単ですが、実際にやろうとするのは
 大変なのでは?と個人的には感じました。
 成仏させたとしても、顔を合わせたりすると、また
 「嫌だな」と再燃してしまうんじゃないかなと。

 少なくとも、私自身はそこまで割り切ることができず
 引きずってしまうと思うので。

その時のエネルギーを原動力とし、動く(前を向く)力に変える

 嫌な人のことを自己解決した上で
 「その相手がいたからこそ今の自分がある」
 と逆に感謝の気持ちを持つ。
 感謝の気持ちを持つことができるから
 前向きに進むことができる。

 これは純粋にすごいな。と思いました。
 嫌な人のことを「感謝」するってものすごい
 パワーを使うと思います。

これらのことができるからこそ、新しい人がどんどん
でてくる芸人の世界でも未だ、第一線で活躍を
されているのだと感じずにはいられませんでした。

この2点、意識して実践してみようかなと思いました。

まとめ

Cybozu Day、初めての参加でした。

「働き方」という観点ではなるほど!と思うことが
結構ありました。
私自身はフリーランスなので会社(組織)での
働き方とはちょっと違うところもあります。

ただ、自分にあった働き方を模索するという部分や
「働く」上で避けられない相手(お客さん、同僚・仲間など)との
向き合い方といった根幹の部分は同じだと思います。

突き詰めればそれこそが
「働き方改革」の本質なのかなと感じました。
残業を減らすとかリモートワークやテレワークは
あくまでも手段だと思いますし。

初めてのCybozu Day。
いろいろな角度から「働き方」について考える時間となり
とても有意義な時間を過ごすことができました。

来年も参加したいなと思いました。

[技術]Wordcamp Tokyo 2016に行ってきました

気がついたら1ヶ月以上も前の出来事ですが
9月の17日、Wordpress のイベントである
「Wordcamp Tokyo 2016」に行ってきました。

Wordcamp Tokyoとは

Wordcamp Tokyoは、年に1回開催されており
Wordpressに関連した技術や様々な情報を
いろいろなジャンルスピーカーの方がセッション形式で
お話して頂くWordpress関連の大きなイベントです。

より詳しい内容については、以下のリンクを
参照ください。

Wordcamp Tokyo 2016

聴講したセッション

私が実際に聴講したセッションのうち気になったもの
興味深いなぁと感じたものについて書いてみます。

WordPress REST APIについて

APIとは「Application Program Interface」の略称です。

簡単に言えば、外部のシステムから特定の機能(プログラム)を
呼び出すための手続きを定義したインタフェース群となります。
Wikipediaのリンク:APIとは

例をあげれば、Facebookへ外部のリンクをシェアするという行為。
あまり意識してはいないかもですが、これもFacebookに対して
リンクをシェアして投稿するというFacebook側が提供している
APIが実行されることにより、自分のフィードに投稿が
行われている形になっています。

このAPIがWordpressにおいても提供されているという紹介でした。

これを使えば、Wordpressで書いた記事をWordpressが載っている
サーバではなく、別のサーバのシステムで記事を表示できたりと
Wordpressを使う幅が広がるなと感じました。

どう使うかは別として、少し触ってみようかなと思います。

Webページの表示速度の考え方について

Webページの表示高速化について聞きました。

ネットの回線が3G回線、LTE(4G)と発達したことにより
表示速度は随分早くなりました。

私、たまに、LTEの通信料制限で3G相当の速度に
なってしまうことがあるのですが、あまりの遅さに
スマホで検索をするのをやめてしまうくらいです。
※ 当時はそれでも早いと思っていたのだから不思議です

話を戻しますと、このページの表示速度ですが
世界標準基準値は

表示開始時間:0.5秒以内
→ページが表示され始めた時間
表示完了時間:2
→ユーザが操作可能になった時間

だそうで…
この結果に驚きを隠せませんでした。。。
ちなみに、日本国内の様々なWebサイトで
この基準をクリアしているところはないそうです。

この表示速度、そこまで重要視される1番の理由は

表示が遅いサイトは2度とアクセスされることがない

からだそうです。
確かに自分に置き換えて考えるとそうだなぁと思います。
表示が遅いと、もう見なくていいかなと思いますし。

上記、いろいろと書きましたが、このセッションで
お話された方はこんな興味深いことも話してました。

WebページあたりのHTMLファイルのサイズが
200KBを超えるとLTEでは3秒以内での表示はできない。
そのため、高速化をさせるためには
「どれだけ早くできるか」
ではなく
「どれだけ遅くなるのを許せるのか」
という風に切り替える必要がある。

※HTML(Hyper Text Markup Language)の略で
 Webページを表示するのに使用されている言語です

200KB。。。
スマホやデジカメで撮った写真を
1枚表示しようとしただけで余裕でオーバーしてしまいます。

この話を受け、ページの表示速度の改善(パフォーマンス)と
コンテンツの内容の充実は相反するものなのだと
感じずにはいられませんでした。

AMPによる検索の高速化について

AMPとは「Accelerated Mobile Pages」の略称です。

これは、Googleさんのプロジェクトの1つで
モバイル向けのWebページの表示速度を早くしてくれるものです。

これをモバイル向けのWebページに対応すると
Googleで検索した場合に、検索結果ページの上位に
優先的に表示が行われる形になります。
(Googleの検索順位には関係しない)

セッション内でデモを見せていただきましたが
表示がとても早くて驚いたのを覚えています。
また、それだけではなく、検索結果ページ上で
カルーセル表示(スライドショー表示)され
スワイプ動作により、別の記事を見ることが
できたりもしていました。
※ 画像がないので、説明しづらいのですが・・・・
※ 写真を取ればよかった。。。

Googleの検索順位とは無関係とはいえ
AMPに対応していると検索ページの上位に
表示されるので、Webサイトへの誘導をするには
有効な手段の1つだと感じました。

また、1つ前に書いたセッション内容にも
関連してきますが、ページの表示が早いので
Webページに訪れてくれた方が、表示が
遅いといった理由で見ることを断念することを
防ぐことができるのかなと感じました。

Webページのアクセシビリティについて

WordPressというよりは
Webサイト全般的な内容になるのですが

「Webページのアクセシビリティ」

について話を聞きました。

アクセシビリティ(accessibility)とは高齢者・障害者を含む誰もが
様々な製品や建物やサービスなどを支障なく利用できるかどうか
あるいはその度合いを表す言葉です。
Webアクセシビリティとは、主に高齢者や障害者など身体に障害や
不自由のあるWeb利用者に配慮したホームページなどの
Webサービスを提供し、アクセスした誰もが容易に情報を
共有できる状態にあることをいいます。

参照:日本WEBアクセシビリティ協会

このWebページのアクセシビリティ、まだ私が
会社員として働いていた数年前になるのですが
ある企業と連携して、Webページのアクセシビリティを
診断するというサービス(もうなくなりましたが)を
作ったということもあり、言葉を聞くと興味を
惹かれてしまいます。

セッションの内容では、以下の内容を話されていました。
・アクセシビリティの規格について
日本のWebアクセシビリティはJIS規格として
「JIS X 8341:2016」というものがあります。

それとは別にW3Cと呼ばれる国際的な営利団体が
定めている基準「WCAG2.0」というものもあります。
※ W3C(World Wide Web Consortium)の略です

数年前までは、JIS規格は国際基準から考えると
内容的にもレベル的にも遅れていたのですが
話を聞いた2016年時点では、WCAG2.0 と同等に
なったとのことでした。
日本においても、Webアクセシビリティが
重要視されているのだと思わずにいられません。

・どんな方向けに必要なのか
それでは、このWebアクセシビリティ
どのような方向けに必要なのでしょうか。

上記のサービスを作っていた頃は、障害を持たれた方が
Webページを見やすくなるようにということで
ターゲットは「障害を持たれた方」に重きがおかれて
いたように感じました。

しかし、PCだけではなく、スマホやタブレットといった
様々なマルチデバイスでのWebの閲覧が容易になり
モバイルフレンドリーやモバイルファーストと言われる
現在においては、障害を持たれた方だけではなく
セッションの中でも話されておりましたが

すべての人のためにWebサイトを見やすくする。
そのことを目的として、Webアクセシビリティを
適用することが大切

これについては私も納得でした。
たまに、すごく見にくいなぁと思うページを
見かけると「う~ん」と思ってしまいます。

その反面、どちらかというと作る側に近いところに
いるので、そのあたりのことを気にかけていかなくては
ならないなぁとも感じました。
Web制作は専門ではないので大したことはできませんが…

・どのように対策すればいいのか
では、どのように対策すればよいのか。
セッション内ではいくつか例を挙げて説明されてました。

Web制作に関わる技術的なところは割愛させていただくとして
簡単に列挙します。

○読みやすさ(文字編)
 ・行間を1.5文字以上あける
 ・ページの横スクロールはさせない
 ・均等割り付けは行わない
  ※ Wordのフォント設定にある文字間の設定の1つです

○読みやすさ(コンテンツ編)
 ・空スペースに気を付ける
  文字間の不必要な空白のことです
 ・別ページに誘導するためのボタンのサイズを大きめにする
 ・一般的でない用語や略号は説明を入れる
 ・ページのコントラスト比に気を付ける
  コントラスト比もW3Cの規格で規定されています
 ・点滅する文字はできるだけ控える
  使用する場合は、5秒以内で停止するようにする

といったことを挙げておりました。
WCAG2.0のガイドラインを見るともっと細かなことが
書かれています。
興味のある方は、以下リンクを見てみるといいと思います。
WCAG2.0ガイドライン

まとめ

いろいろなセッションを聞いてきました。

WordPressに関わるセッションだけかと思っていたのですが
そんなことはなく、ページの高速化、難しいのでここには
書いていませんがページのセキュリティのことだったりと
Webサイトに関わることもあったりと楽しいひと時でした。

来年も予定をつけて参加したいと思います。

[技術]PHPをソースからインストールした環境に後からモジュールを追加する方法

PHPロゴ

Linux系サーバ上でWebのシステムをPHPを使って構築する場合
Webサーバ(Apacheなど) + PHP + DB(MySQLなど)という
環境で作るのが一般的だと思います。

そのうちPHPモジュールをインストールするには
yumrpmapt-getのようなパッケージインストール
コマンドを使って行う方法とソースファイルから自前で
コンパイルしてインストールを行うという2つの方法があります。

どちらでインストールしても差異はないのですが
共にメリット/デメリットがあります。

方法 メリット デメリット
コマンド使用 インストールが容易
環境に依存する
カスタマイズが大変
手動 カスタマイズが容易
環境に依存しない
インストールが難しい

このうち、カスタマイズ性ですが、コマンドで行った場合は
PHPパッケージ内の拡張モジュールも含め、全てのものが
対象となり、不要なものまでインストールされてしまいます。

手動で行った場合はPHPモジュールのコンパイル時に
必要なオプションを指定することができるため
必要最低限のものだけインストールすることができます。
 参考:指定可能なオプション(一部)

しかし 必要最低限のものだけ であるために
後から機能を追加/変更するとなった場合には
その機能をPHPに新たに組み込む必要がでてきます。
 ※ DBをMySQL→PostgresSQLに変えたい
   SSH(https://~)対応したいなどなど

新たに追加するには、再コンパイルを行い
拡張モジュールを追加したPHPモジュールを
作り直さなければなりません。

PHPを作り直すことになるため、機能追加により
モジュールがうまく生成できない又は壊れてしまう
というリスクが発生します。

そういった再コンパイルをせずにPHPに機能追加を
行うのに便利なのが phpize というコマンド。

これはPHPを再コンパイルすることなく
拡張モジュールだけを作成できるコマンドです。

なので
 1.phpizeで拡張モジュールだけを作成
 2.PHPの設定ファイル変更
 3.Webサーバ再起動で設定反映
をするだけで機能追加を行うことができます。

やり方

PHP に curl.so という拡張モジュール追加を
例としてやり方を説明します。
注)パスはそれぞれの環境に読み替えてください

1.PHPソースファイルにある extension フォルダの
 配下にある curl フォルダに移動

cd /usr/local/src/php/extension/curl

2.phpize コマンドを実行し、configure ファイルを作成

phpize

3.configure を実行し、Makeファイルを作成
 [–with-curl] オプションは curl を作成する際に
 必要となるため追加します
 ※ 他の機能の場合は、各モジュールそれぞれ固有の
   オプションをつける必要があります

./configure --with-curl

4.Makeを実行し、モジュール作成

make

5.作成したモジュールをインストール

make install

これで curl.so が作成完了です。
作成後のファイルの場所は php-config コマンドの
extension_dir の設定箇所に依存します。

/usr/local/php/lib/extensions/no-debug-non-zts-20100525

php-config の内容を変更していなければ
上記のようなパスに配置されます。
※ extensions 以下のフォルダ名は環境により変わります

6.作成したモジュールを読み込むため、php.iniを編集
php.ini ファイル内の Dynamic Extenshions のあたりに

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions :
;;;;;;;;;;;;;;;;;;;;;;
 ・
 ・
;extension=php_xsl.dll

extension=curl.so ★
 ・
 ・

★の行を追加します。

7.Webサーバ(Apache)を再起動

service httpd restart

又は

apachectrl restart

 ※ 環境により、apache2ctrlの場合もあります
又は

/etc/rc.d/init.d/httpd restart

 ※ Apache を自前でインストールした場合は
   このような方法になるかと思います。
   ただし、OS/Apacheのバージョンによっては
   上記コマンドが使えない場合があります。

まとめ

 手動でPHPをインストールした後、機能追加を行う際
 phpize コマンドを使用することで再作成のリスクを
 負うことなく、PHPの拡張を行うことができます。

 PHPでWebシステムを作る人は知っておくと
 便利なコマンドの1つかもしれません。
 (私自身もつい最近まで知りませんでした。。。)