「PHPカンファレンス2019」に協賛させていただきます

「PHPカンファレンス2019」に、Bronzeスポンサーとして協賛させていただきます。
 
<期間>
2019年12月1日(日)
<会場>
東京都大田区南蒲田1丁目20-20
大田区産業プラザ PiO

<主催>
日本PHPユーザ会

https://phpcon.php.gr.jp/2019/


【コピペOK!】ちょっと使うだけで、なんかいい感じになるデザインcssまとめ

こんにちは。デザイナーのMです。
最近久しぶりにコーディングをすることがあり(日々しろよ)、css3の進化に驚愕しました⚡

今回は “なんかいい感じ” にデザインが捗るcss3をいくつかご紹介したいと思います。
コピペですぐに使えるので、ぜひちょちょっと使ってみて下さい。

なんかいい感じの「シャドウ」

box-shadow: 0px 1px 5px rgba(0,0,0,0.05);

その名の通り、なんかいい感じのシャドウを付けるcssです。
普段から皆さん普通に使われているのだと思いますが、まずは基本としてご紹介します💁🏻‍♂️
ポイントは「うっすら」。シャドウの透過を濃くしたら安っぽくなるので、うっすらふわっとシャドウが見えるを目安に付けるといいと思います。

なんかいい感じの「マーカー」

display: inline;
background: linear-gradient(transparent 60%, rgba(255,255,102,0.5) 60%);

文中の文字を強調させるのに、太字や文字色を使ってたけどなんか面白みが無い、という人におすすめです。マーカーを使うと人肌感といいますか、少し温かみのある表現になる気がします。小学校の頃を思い出します。
カラーコードを変更してお好きな色のマーカーにしちゃいましょう🖍

なんかいい感じの「グラデーション文字」

color: #a6c0fe;
background: linear-gradient(135deg, #a6c0fe 0%, #f68084 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;

グラデーションカラーやフォントとの組み合わせ次第で、とてもオシャレな装飾をすることができます。
非対応ブラウザのために “color” の設定はお忘れなく😎

なんかいい感じの「ぼかし文字」

filter: blur(8px);

ちょこっと隠したいときとか、、に使うのはどうでしょう?
あんまり使うことはないかもしれませんが、続きを読ませたいときやコンテンツを隠して気になるようなデザインにしたいときに使うと相性が良さそうです。ただ、使いすぎはやめましょう😂

なんかいい感じの「めくれ画像」

.mekure {
	display: inline-block;
	position: relative;
}
.mekure:after {
	position: absolute;
	content: "";
	box-shadow: 0 15px 10px rgba(0,0,0, .5);
	transform: rotate(3deg);
	right: 5px;
	left: auto;
	top: auto;
	bottom: 15px;
	z-index: -1;
	width: 50%;
	height: 20%;
}

画像にめくれ風処理をするcssです。
こちらもシャドウは控えめに付けるのがポイントです。アニメーションと併用しても相性が良さそうです。

以上、すぐに使えるデザインcssまとめでした。
今回少ししかご紹介できなかったので、またこのシリーズはやろうと思います🔥


Server-Sent Events に光を

採用機会がなかなかやってこない Server-Sent Events (以下SSE) を使用してみたときのメモです。
想定している環境は nginx + php-fpm です。

SSE を利用すると、サーバーからウェブページにメッセージをプッシュ送信できます。

ここに下手な説明を書くよりも翻訳済みの MDN を見ていただいた方が何万倍も分かりやすいはず。

Server-sent events – Web API | MDN

https://developer.mozilla.org/ja/docs/Web/API/Server-sent_events

SSE API を利用すると、SSE を簡単に扱うことができます。

今回は、オンラインゲームのログテキストっぽいものをサーバーから受信し、ページに表示するページを作成してみます。

ログテキストの内容は架空のものです。

ログっぽいものを表示するページ

SSE 受信の様子

上記で作成した HTML と PHP をブラウザで表示するとこうなります。

やっていること

index.html でやっていることは、「読込」ボタンを押すとサーバーからのメッセージを待機する状態になります。

サーバーからメッセージを受信する度に onmessage イベントが発火し、ログが追加されていきます。

メッセージを待つ間はサーバーとの接続が維持され、10件受信すると接続を解除します。

イベントは “event:%s\n” の形式で色々作れます。

ここでは control、invite、system を イベントとして addEventListener に登録し、ログの色を変えたり接続を切ったりさせています。

はまったこと

地味にはまったのが、nginx で出力がバッファリングされてしまいリアルタイムとは程遠いタイミングでしかメッセージを受信できなかったこと。

その場合は X-Accel-Buffering: no を指定することでバッファリングさせないようにできます。

header(‘X-Accel-Buffering: no’);

MS Edge 非対応がつらい

一方通行ではありますが、非常に簡単に実装できる SSE 。

Web アプリケーション として実装するには MS Edge の非対応がやっぱつらいわ…です。

MS的には WebSocket でいいじゃんってことなんでしょうか。

SSE だけで完結することはなかなかないと思いますが、便利なものは積極的に使いたい。

SSE に光を。

星に電力を (暑いので)


デッサン教室で叩き込まれて未だに役に立ってること

こんにちは、3年目デザイナーのはなです。

私は芸術大学のデザイン科を卒業しているのですが、その前は芸大受験のため画塾に通っており、デッサンや色彩構成、立体構成の勉強をしていました。

特に入試の数ヶ月前からは先生の厳しさが3倍ぐらいになって、描いては怒られ描いては怒られ毎日とにかく怒られて、泣きながら人生を呪ったりしていました。

その後私はデザイン科に進学したため、受験期のように紙に向き合いずっと絵を書くということはなくなったのですが、大学時代やデザイナーになった今でも、画塾で教わったものづくりの基礎の基礎はかなりダイレクトに役に立っています。

今回は、私が教わったことの中で今も大切にしていることをご紹介したいと思います。

描いてる最中は自分を天才だと思って描き、離れて見るときは一番嫌いな奴の絵だと思って見る

これは画塾に通い始めてすぐ、デッサンの基礎を始めたときに言われたことです。

デッサンでは、描く→離れて見る というプロセスを繰り返します。

手元で描いているだけでは作品全体のバランスを見ることができないので、2mか3mほど離れて、自分の絵が全体的に見てどうかを確認する作業が必要なのです。

デッサンを描いてる途中に、自分は駄目だと思いながら描くと、思い切った線を引いたり大胆な構図にチャレンジすることができません。

また、離れて見るときに、「ここは頑張ったところだから…」「ここは時間をかけたから…」などというバイアスがあると、自分の作品に対して正当な評価をくだせません。

作品を見る人は基本自分以外の人なのですから、自分が頑張ったところなど知らないし関係ないのです。

また、嫌いな人に対しては貶せるポイントがないか、あら捜ししがちになってしまいます。

自分の中の「頑張ったからバイアス」を消去して、作ったものに修正すべきポイントがないかあら捜しする、という姿勢はデザインをするときにもとても役に立っています。

自分の作品について説明する

これは主に色彩構成や立体構成の合評で行っていたことです。

色彩構成や立体構成では、抽象的なテーマ(浮遊とか、飛翔とか、清涼感とかなんかそういうのです)と、材料や使用色数の制限が与えられ、テーマとなったものを表現することを行っていました。

その後の合評では、「テーマをどのように解釈したか」「その解釈をどのように表現しようと思ったか」「なぜこの配置や構成にしたか」というのをみんなの前で発表させられます。

どこかに齟齬が合ったり言いよどんでしまうと厳しいツッコミが飛んできます。

「このなぜこの配置にしたの?」と聞かれて、もしそれをなんとなく適当に置いていたらうまく説明できません。

つまり、「自分の作品について説明できる」というのは、「細部に至るまできちんと言葉で説明できるぐらい意思と意図を持ってすべてを配置する」ということなのです。

実際には作品を世に出して、言葉で説明させてもらえる機会なんて殆ど無く、作品展のお客様も、Webサービスの新規ユーザー様も、ほとんどキャプションや説明書を読んでくれません。

ですが、「きちんと自分の作品について説明できるようにものを作る」という訓練によって、細部まで意思を持ってデザインを行うことができるようになりました。

まとめ

他にも言われたことはめちゃくちゃたくさんあります。

それをいつも、デザインを作っていたり、趣味で絵を描いていたりするときにフッと思い出すのです。

その度、怒られたことを思い出して背筋が伸びます。(猫背になってると、いい作品はいい姿勢から!と言われてもいました…)

怒られすぎて人生呪ってたしストレスでめっちゃ太ったけど、なんだかんだ、あ〜画塾行っててよかったな〜と今でも思います。

もう一回受験時代やり直せって言われたら、絶っっっ対、嫌ですけどね!

ちなみに、この記事のトップの画像は、画塾の科目で私が一番好きだったアクリル画で、褒められたやつです。ちゃんと褒められるときは褒められていましたよ…


[Solr] Lucene8.1に同梱されるようになったLukeを使う

はじめに

LukeはLucene用のインデックスブラウザです。SolrはLuceneのインデックスを利用しているので、SolrのインデックスをLukeでブラウズすることができます。
Lukeは従来Luceneから見るとサードパーティのソフトウェアであったので、その時々のLuceneのバージョンに合わせてコンパイルが必要で、さらに近年ではLukeのメンテナンスが追いついていない部分もあり、実際に使うにはいろいろ手間が必要な状態になっていました。

そのLukeがLucene 8.1(Solr 8.1)でLuceneのモジュールとして取り込まれました。 この長い長いチケットを見れば分かるように、様々な方の尽力の賜物です。

Luke の特徴

  • インデックスされている文書の閲覧
  • インデックスされているタームを、頻度順で表示
  • 検索の実行と結果の分析
  • 特定の文書の削除
  • ドキュメントのフィールド構成の変更と再インデックス
  • インデックスの最適化

起動

Luke の起動に必要な lucene-luke.jar は Solr の配布物には含まれていないので Lucene をダウンロードします。 ダウンロードしたら展開して luke/luke.sh を実行します。これだけで良くなったので、以前に比べると断然使いやすくなりました。

tar zxf lucene-8.1.0.tgz
cd lucene-8.1.0
luke/luke.sh

起動直後に開くダイアログで、Solrのインデックスが格納されているディレクトリ指定します。

インデックスブラウザ

Overviewのタブでは、インデックスのフィールド毎に頻度の高い順にタームを表示することができます。

wikipedia-ja を Kuromoji の normal モードで形態素解析した場合
wikipedia-ja を Kuromoji の extended モードで形態素解析した場合

たとえば同じ Wikipedia-ja をインデックスした場合でも、Kuromoji の normal モードを使うか extended モードを使うかでインデックスの内容が大きく異なることが分かります。

extended モードでは未知語が uni-gram に分割されるという特性を反映して、上位の多くを “e”, “t”, “r” などのアルファベット1文字のタームが占めています。normal モードでは “年”, “月”, “日” や数字など1文字のタームに加えて”category”,”リンク”,”外部”,”脚注”などWikipediaで頻出の用語も上位に来ています。

おわりに

上に挙げたような、インデックスの内容を直接参照するような使い方の他にも

  • 特定の文章が期待通りのタームに分割されているか調べる
  • 期待通りの検索結果を得るためのクエリを試行錯誤する
  • Analyzerを切り替えたときの形態素解析結果の違いを調べる

など、開発に役立つ機能が満載です。

使いやすい形で配布されるようになった Luke を活用していきたいと思います。