読者です 読者をやめる 読者になる 読者になる

やまろぐはてな

yamanokuの技術メモ。Qiitaは怖くて書けない。

ScopedCSSを使って思ったこと

CSS scoped css Vue-loader PostCSS ECSS CSS設計

Scoped CSS | Introduction

今個人的にVueを使ってアレコレ試しててVueコンポーネントを使うためにVue-loaderを導入しており、中でtempleteとstyleとscriptを一気に記述できるんだけど、styleで使えるscoped-cssECSSの設計思想にうまく合いそうだなと思う。

ecss.io

理由としては1つのコンポーネントに対して、必ず独自のクラス付けをして他のコンポーネントには上書きが起きないようにするみたいな考え方なので。

ECSS、とにかく長生きさせるためには誇大化してもしょうがないみたいなスタンスだけど、webpackとかでjs内に全部ひとまとめに出来たりするのがあれば、その辺についても深く考えなくてもいいかもしれないとか浅はかながらに思っています。

今はVue-loader使ってるけどPostCSSとかで使ってみてもいいかもしれない。(こっちはやったことないので憶測で言ってます)

www.npmjs.com

実例

<style>
/* 共通のスタイル */
</style>

<style scoped>
/* 特定のコンポーネント用スタイル */
</style>

ビルド後のイメージ

f:id:cardboarder:20161113235320p:plain

これをビルドすると

f:id:cardboarder:20161113235340p:plain

こんな感じになる。VueなんでIEとかは厳しいのかと思います(IE無視していいなら別に大丈夫かと)

Jadeのprettyはアテにならなかった話(と今更ですがPugについて)

経緯

Jadeは通常何もせずコンパイルするとこうなる

f:id:cardboarder:20160923211302p:plain

そこでgulpとかのオプションでこう設定するとインデント維持して見やすくなる

var jade = require("gulp-jade");
 .pipe(jade({
   pretty: '\t',
 }))

f:id:cardboarder:20160923211622p:plain

だいたいはこれでよい。

ただコーディングガイドラインで「インデント除去してください」みたいな指示が来た時困る。

問題点

prettyに関する情報が少ないのでひとまず勘で「\t」としているところを「\v」にしてみた。

f:id:cardboarder:20160923211942p:plain

ブラウザでパッとみた感じは良さそう。だが、

f:id:cardboarder:20160923212036p:plain

ソースは文字化けしとるやないかい。

対応策

良さ気な情報ないしJadeのオプションに頼るのはもうやめよう。そうだnpmだ。

www.npmjs.com

var gulp = require('gulp');
var jade = require("gulp-jade");
var outdent = require("gulp-outdent");
gulp.task('jade', function(){
  gulp.src('*.jade')
    .pipe(jade({
      pretty: '\t'
    }))
    .pipe(outdent())
    .pipe(gulp.dest("/"));
});

f:id:cardboarder:20160923213706p:plain

これでOKでしょ。npmパッケージで柔軟に対応できる男になりたい

Pug

f:id:cardboarder:20160923215134p:plain

上記インデントの件とは別ですが、Jadeが既存の商標と衝突してたみたいでPugに改名していたそうです(最近知った)

去年の12月…

github.com

Jade特に考えずに使うならそのままでいいけど、ほどよいタイミングでPugに乗り換えましょう。拡張子以外書き方はだいたい今まで通り。

こちらからは以上です

f:id:cardboarder:20160923215509p:plain

HTML5 Conference 2016 行ってきたよ

events.html5j.org

自分のまとめです。


Reactの最新動向とベストプラクティス

@koba

speakerdeck.com

この内容の通りです。https://getstorybook.io/とかhttps://storybooks.io/は視覚的に確認できるのがめっちゃ便利だと思いました。

あと会場内でのReact体験者 - React業務経験者 = だいぶ少ない印象でした。


webのグラフィックス2016

WebGL事例 - @mattari_panda

www.slideshare.net

コロプラの中の人。今回はサイトで使うWebGL(というかThree.js)の紹介。簡単なものから導入してみるのはよいことですね。

WebGLパフォーマンス - @emadurandal

https://www.icloud.com/keynote/09q5bI7F3WA9tdK17J6BIt4hg#HTML5%E3%82%AB%E3%83%B3%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9WebGL%E9%80%9F%E5%BA%A6%E6%9C%80%E9%81%A9%E5%8C%96

パフォーマンスを測る方法など。CPU側とGPU側でボトルネックになり得る箇所があるかもなのでそこを履き違えないようにという感じ。

CPU側(Javascript部分とか)は描画処理以外でもネックになりえている可能性があるので調査は割としやすいかもだけど、自分はGPU側はあまり知り得てないので使うときには軽く触れておくといいかもしれない。

あとThree.jsなどのライブラリには内部にWebGL命令が書かれているので最適化は難しいが、チューニングの仕方を知ったりやノウハウを集めていく(Stackoverflowとかで)やり方がよい。

他資料は以下より参照 https://www.icloud.com/keynote/000hhaE2RGqEe9gdi1evUinqA#GLSL%E6%9C%80%E9%81%A9%E5%8C%96%E3%81%B8%E3%81%AE%E9%81%93


Material Design for Web

@taquo

Google Developer Relations所属。プレゼンというか間のとり方上手いなという印象だった。

様々なデバイスへの対応

歴史

4,5年前

GmailAndroid Gmail、Mobile Web Gmail 実はデザインはすべてバラバラ

2011

Project kennedy - ユーザー体験を統一化しようプロジェクト 黒帯メニュー部分がプロジェクトの集大成

Holo フレームワークが登場 ↓ デスクトップとAndroidで違う…

2014

Material Design誕生 異なるプラットフォームでアクセスしても平等なアクセスが出来る ↓ Googleサイト、アプリ以外にも様々なサードパーティでも利用できるように マルチデバイス・クロスブラウザ問題の解消をすすめる

  • Tangible Surface (物質的なデザイン) → デジタルな紙で表現
  • Print Like Design (印刷物デザイン) → グリッド計算 1dp → 約8px
  • Meaningful Motion(意味のあるモーション) → 現実世界の動きに準ずる

アプリケーションコストを下げられるのではないだろうか?

Use Case

Framework

  • PolymerPaper Elements
  • Angular Material
  • Material Design Light

Layouts

  • ai frameworks
  • Device metrics
  • Resizer

Fonts

Icons

  • Material Icons

Summary

design.google.com

デザインフレームワークに縛られてほしくない

Anouncement

コミュニティ(Slack) http://design-jp.herokuapp.com


協働のためのデザイン思考の再構築

@yhassy

デザイナー エンジニア 各自のコミュニケーションが永遠の課題

デザインとコードの同時進行が最近の動き 「デザイナーはコード書くべき、ビジネスを知るべきだ!」ニーズ

ツールで解決

Sympli

パターンを考える

UI構築のスピードアップ

一定以上の品質担保

  • ある程度のパターン言語を作るべき
  • ユーザーが最低限満足するツールを作るため
  • あらゆる状況に対応できるように汎用性のあるもの

パターン言語

ATOMIC DESIGN

デザインの最小要素とは何か?

MATERIAL DESIGN

Bootstarp

フォースプラットフォーム、すべてで同じ体験をする

自社スタイルガイド、パターン言語をつくる

例:MailChimp

  • 利用者ニーズに最適化するUI
  • 製品・サービスに合う名称

そもそもの大きな問題

デザイナー… 全体構成から詳細部分をつくる → 部品から作れない

エンジニア… パーツ単位から全体のサービス → 一貫性がないと二度手間

プロトタイプツール

invision

考え方を合わせるアプローチ

スタイルガイドの作成など ← ただし必ずうまくいく訳ではない

今考えられる解消の仕方

エンジニア

ドメイン駆動設計 DDD(言葉のズレの解消)

ドメインモデルーーーーーユーザーの目的

デザイナー

オブジェクト指向UX

ユーザー像 → シナリオ → オブジェクト化

コンテンツモデル(例)

レビュー

  • タイトル
  • 本文
  • 概要
  • 日付
  • アイテム --- 名前、概要、価格、発売日、メディア、ブランド
  • タグ
  • 評価
  • 筆者

オブジェクトで考えよう、言葉を合わせよう

いったいどういうコンテンツを設計しようとしているのか?

JOB TO BE DONE

イノベーションのジレンマ

JOB

どの製品・サービスでもお客様に「仕事を与えられている」という考え

ユーザー属性は違う…でも同じ目的がある(20代女性、40代男性でも自分の写真を「知人に共有させたい」)

Facebookの写真機能は知人と一緒に見て楽しむ

ユーザーの動機、求められる結果を突き詰める

  • 状況 … レストランで"食べ物"がきた時
  • 動機 … 美味しそうな"写真"が撮りたい
  • 結果 … いい"場所"を知っていると思われたい・"お店"に来て欲しい…願望

ユーザーインタビュー, 仮設検証

こんな機能はどうだ?こう使って欲しい

ユーザーの求めている結果に対して詰めてゆく!


AtomSublime Text、WebStorm に Visual Studio Code、四大エディター真夏の大決戦!

Sublime Text派なんですが、推しの人がそこまで推しておらずいいかげんにしろって感じだよ(怒る)。WebStormは有料だからすごかった。

Atom

中島 滋 ledsun

マルチプラットフォーム

ユーザー数 100万人 1500万ダウンロード

標準機能

カスタマイズ方法

  • エディタ設定
  • snippet
  • パッケージ4600以上
  • テーマ1500以上

パッケージの例

atom-beautify

  • コードフォーマッター

hyperclick

  • 関数・変数定義へのジャンプ
  • 言語毎のサブパッケージ ex:js-hyperclick

やっててよかった話

1 マークダウンで書きたい

  • markdown-preview(標準機能)
  • 標準機能(ctrl+shift+m)

2 Railsアプリケーションの修正、slim記法をやるとき

3 html文章を組む時全角半角が混ざっている時

  • japan-util
  • 選択範囲を修正

Sublime Text

こもりまさあき

基本概念

必要最低限の機能だけが搭載されたテキストエディタ

いまどきのGUIエディタの大本

何気にかゆいところに手が届くもの

拡張性の高さ

今はいろんなエディタにも対応されているが…

言語や技術にも素早い対応

今はいろんなエディタにも対応されているが…

WebStorm

山本裕介 @yusuke

  • JetBrains製のIDE
  • 拡張・カスタマイズ不要
  • 有料 ¥5,940~

機能例

  • Github Isuue検索できる
  • ブランチ作成できる
  • コミットのブランチをする
  • color Pick

Visual Studio Code

井上章 Microsoft エバンジェリスト

機能

ルート起点でcode .で起動

terminal起動してコンパイラーを走らせられる

Nodeや.NET/ASP.NETほかウェブブラウザでの環境でもデバッグできる

Visual Studio Code Extensions | Visual Studio Marketplace


個人的なこととしてはプロスマブラーの人が来ていたり、@Stocker_jpの中の人が目の前の席に座っていたのですげーってなりました。

twitter.com

色々他にもセクションはあったと思うのでそこらへんのまとめは他の人にまかせる。というか普通にセッションスライドまとめとか公式で作って欲しい。

こちらからは以上になります。

モーダルでyoutube動画流すことへの所感

jQuery UI JavaScript

f:id:cardboarder:20160824232953p:plain

結論

から述べるとこうした方がいいと思います。

  • PC時はモーダルで表示して流す
  • SP、タブレットは埋め込みプレイヤーで流す

理由

モーダルで表示するそもそもの目的は縮小されたものを拡大したり別レイヤーで表示することであり、スマートフォンなどでの携帯端末では画面領域が小さいし、別レイヤーがサイト設計とあっているのかを検討するとやる必要をそこまで感じない。

加えて携帯端末で動画を再生するのも結局は埋め込みの部分を再生するわけで。専用プレイヤーが表示されるのでモーダル表示→youtube再生→プレイヤー起動のような回りくどい動作になってしまい面倒。だとしたら最初から動画プレイヤー(もしくはyoutubeアプリ)を素直に起動させたほうがいいと思う。

そもそも無理にサイト内でyoutube動画を流す理由はあるのかというのが気になる。あり得ることならそもそもコンテンツとしてすぐ見れない位置に配置するならわかるけれども、いきなり頭に動画読み込むのとかあると正直参る。呼び出しが重いんだよ。

餅は餅屋の方式でyoutube動画はyoutubeサイトへリンク貼っとく方が素直なのでは?と正直感じるところはあるのだが各位その辺はどうだろうか。

(というか動画というコンテンツはこの先どこまで通用するのか)

やり方

簡単です

  1. UA判定でモバイル端末時はモーダル部分をid指定でもして非表示にする
  2. バイル端末時は逆に埋め込み箇所だけを表示させる
  3. おわり

有用そうなプラグインに関して

sorgalla.com

色々あるけどこれ一択じゃないかなとは思う。MITで深く考えないで使うなら。

以上、相変わらずiframeと仲良くなれない人でした。こちらからは以上です

サイトをリニューアルしたい話(計画)

サイト運用 リニューアル Webデザイン 品質管理

f:id:cardboarder:20160820202155p:plain

計画としてではあるのですが、自分のポートフォリオサイトをリニューアルしたいなという話です。

リニューアルについて

現状把握

とはいっても内容を全てを新しくするとかそういうわけではなくて、色々分散している内容をどうまとめようかみたいなところの話です。ちなみに内容はこんな感じ。

個人的に見せたいなと思っているものは

それで、更新頻度が高いものをなるべく目につくようにしたいなと思っており、

  • ブログ
  • tumblr
  • 制作実績, github
  • 過去の制作実績
  • その他SNSアカウント

みたいな優先順位はつけたいなと思っています。そう考えるといっそのことwordpressで 運用したほうが管理云々は早い気はするんですが、静的サイトと共に育ってきた身としてはいままで通りhtml手書きおじさんのままで居たい(もちろん色々テンプレートとかは使うと思います)。

でもブログはwordpressのままで行くかなと思います(もしくは静的サイトジェネレーターを使うか)。ここの技術ブログは結局日常のほうと合体するかもしれません(前ははてなに引っ越そうかと思っていましたが)。

分散型の運用

今までのやり方としては自サイトをベースとして各コンテンツにリンクさせるという分散型に近いやり方をとっていました。

自サイトにアクセスしてくれたら、各コンテンツにはリンクできるようにしているが、逆パターンは自サイトへの誘導のみなのが多いので、それぞれでも行き来ができるようにしたいけどSNSだとその辺は難しそう。なのでこれまで通り自サイトのみに誘導する形で良さそう。

運用面では、ここまで分散させてはいましたが割と並列的にやれてるのかなとは思っています。ですがせっかく整理する予定なので、もうちょっと分かりやすくしたいなとも思っています。

コンテンツ管理の整理

そういう訳で今一度コンテンツ管理を整理してみます。

  • 自己紹介、下記コンテンツへのリンク ... 自サイト
  • ブログ関係 ... wordpress(ほかCMS
  • コーディング ... github
  • デザイン・イラスト ... tumblr
  • SNS関連 ... 通常通り。但し自サイトのみの誘導リンクだけ。

こんな感じですかね。一応自サイトとブログはイコール紐付ける可能性が高いです。更新頻度があるブログがサイトみたいなのが見栄えは良さそうなので。

ちょっと怖いのはどこかしらのサーバーが落ちた時に見れなくなる問題ってのがあり、せっかく人に教えたのにここは見れたけどこっちは見れないって時ですかね。でも全部でその対応をとるのも頭の良いやり方ではなさそうなので、そこはしょうがないという感じにしたいです。

ていうか何で今更みたいな話

最近仕事の方で同業務職の募集をかけていて、選考する中で意見を出す時(最終決定権は上の方なので)色々とポートフォリオサイトをもつ人のを見てきて、そういや自分のってどういうふうにしていたかなと感じたのがきっかけです。

最初は自サイトのみで運用すればいいでしょとか思っていましたが、SNSが台頭してきて更新頻度もそうですし、そもそもの住民の数みたいなのも変わってきて、自分というものを発信する場が変わってきており、そのままほったらかしにしていたみたいなノリがあります。

世の中には分散型メディアなるものがあるようで、SNS上で発信して自サイトをもたないというやり方もあるそうです。

medium.com

しかしながらカスタマイズ性やサーバー内での設定ほか細かなことをやりたい欲もあるめんどくさい性分ですし、自分の名刺をまさかSNSアカウントで出すのは個人的にはどうかなというのもあるので自分のドメインを持って自サイトはもちたいです。(ただドメイン名は変更するかも)

進捗について

実は手の方も少し動かしています。タスクランナーのほうでカタカタと。(以下長めです)

あくまでまだ仮なので少しずつ詰めていきたいなと思います。こちらからは以上です