CSSフレームワークの使いやすさについて「えっ。そこがそんなに大事だったの?」と思った話

はじめに

CSSフレームワークを指定して画面デザインを行ってもらったときに、驚いたことがあったのでメモ。

起きたこと

Bulmaを使って画面デザインを頼んだところ、進捗が思わしくなかったのです。
で、チームのメンバーから「Semantic UIに変えてみたら?」と提案があり変更したら、進捗が劇的に改善されました。

そこで私はびっくりです。
何がそんなに違うか分からなかったためです。

ヒアリングして分かったこと

「使いやすさの違いはどこにあるのです?」と、画面デザインをしている人にヒアリングしました。
曰く「コピー&ペーストのし易さが違う」と。

どういうことなのかもう少し聞いたところ…。
Semantic UIは、Button | Semantic UIの左側から要素を簡単に選んで、コード例のページに遷移できる。
これが大きかったらしいです。
BulmaはDocumentation | Bulma: Free, open source, & modern CSS framework based on Flexboxからドリルダウンしていく必要があり、確かにちょっと使いにくいとは思います。

軽くヒアリングしたので言わなかった理由もあるのだと想像していますが、予想外の理由でした。

@Betaが付与されているクラス使用時の警告を抑止したい

はじめに

GitHub - google/guava: Google core libraries for Javaのクラスに@Betaが付与されているものがあります。
@Betaが付与されているクラスを使用すると警告がでます。
「抑止したいなー」と思ったのですが、抑止方法探すのに5分ぐらい掛ったので、将来の自分のためにメモ。

抑止方法

クラスの使用箇所に以下のように記載すると抑止できます。

@SuppressWarnings("UnstableApiUsage")

以下のページに記載されておりました。
stackoverflow.com

さいごに

Guavaの公式ページで見つけられると本当はよかったんですけどね。
アプリケーションの挙動に影響を与える部分でもないし、公式ページのどこに載っているかは気にしないことにします。

Bulmaをカスタマイズ前提でちょっと触ってみる

はじめに

Bulma*1というCSSフレームワークがあります。
カスタマイズ前提でちょっと触ってみました。

環境

  • Windows 10 Pro
  • Node.js v11.15.0
  • Bulma 0.7.4
  • node-sass 4.12.0

カスタマイズの基本について理解する

Customizeから始める

Customizeから一つ選んで始めることにします。
今回はWith node-sassを選びました。

bulma-startから始めるのもありなのですが今回は勉強目的なので、一から作っていくっぽさがあるCustomizeから選びました。

6. Add your own Bulma stylesを理解する

With node-sassの手順1~5までは特筆することはありません。
そのままやっていきます。

問題は6. Add your own Bulma stylesです。
ここがカスタマイズを行う手順なのですが、3. Create a Sass fileのSass fileと6. Add your own Bulma stylesのSass fileが全く違うため、真面目に読解する必要があります。

以下に6. Add your own Bulma stylesのSass fileを引用します。

@charset "utf-8";

// Import a Google Font
@import url('https://fonts.googleapis.com/css?family=Nunito:400,700');

// Set your brand colors
$purple: #8A4D76;
$pink: #FA7C91;
$brown: #757763;
$beige-light: #D0D1CD;
$beige-lighter: #EFF0EB;

// Update Bulma's global variables
$family-sans-serif: "Nunito", sans-serif;
$grey-dark: $brown;
$grey-light: $beige-light;
$primary: $purple;
$link: $pink;
$widescreen-enabled: false;
$fullhd-enabled: false;

// Update some of Bulma's component variables
$body-background-color: $beige-lighter;
$control-border-width: 2px;
$input-border-color: transparent;
$input-shadow: none;

// Import only what you need from Bulma
@import "../node_modules/bulma/sass/utilities/_all.sass";
@import "../node_modules/bulma/sass/base/_all.sass";
@import "../node_modules/bulma/sass/elements/button.sass";
@import "../node_modules/bulma/sass/elements/container.sass";
@import "../node_modules/bulma/sass/elements/form.sass";
@import "../node_modules/bulma/sass/elements/title.sass";
@import "../node_modules/bulma/sass/components/navbar.sass";
@import "../node_modules/bulma/sass/layout/hero.sass";
@import "../node_modules/bulma/sass/layout/section.sass";

以下のカスタマイズをしているため、3. Create a Sass fileと比べて6. Add your own Bulma stylesのSass fileは長くなってます。

  • Variablesで解説されている変数の定義(Sass fileのコメントの"Set your brand colors, Update Bulma's global variables", "Update some of Bulma's component variables"の部分)
    (ちなみにコメントの"Import a Google Font"の部分は、Nunitoフォントを使うための布石)
  • Bulmaに含まれるCSSのうち使う部分だけの取り込み(Sass fileのコメントの"Import only what you need from Bulma"の部分)

Variablesで解説されている変数の定義だけしたい場合

@import で"../node_modules/bulma/bulma.sass"を読み込むSass fileにすればOKです。
以下に例を示します。

@charset "utf-8";
$family-sans-serif: Helvetica, "Arial", "Hiragino Kaku Gothic ProN",'ヒラギノ角ゴ ProN W3', Meiryo, "メイリオ", sans-serif;
@import "../node_modules/bulma/bulma.sass";

' `import "../node_modules/bulma/bulma.sass"; 'を、変数の定義より後に記載するのが注意点です。
Sassの仕様上はあたりまえなのですが、私は知らなくてハマってました。

さいごに

これで、あとはVariablesのページを理解すれば、カスタマイズが可能になりました。
私はまだ理解していませんが、そんなに数多くないしどうにかカスタマイズできるようになる…、かな?

*1:Bulmaが何なのかは、CSSフレームワーク BULMA チュートリアル① - Qiitaにわかりやすく説明されています。理解するための記事としてお勧めです。

Javaのライセンス変更に関するメモ

はじめに

私が人にJavaのライセンスを説明するときに使うためのメモです。

Javaのライセンス変更について良い感じの解説ページがある

全般的な話

以下が一番わかりやすいです。
togetter.com

JVMで動作するアプリを利用する視点での話

この案内をそのまま適用できる組織も多いのではないでしょうか。
ipc.kyokyo-u.ac.jp

その他の資料

TogetterのOpenJDKソムリエタグを見るとよいです。
OpenJDKの様々なビルドを試すうちにソムリエと呼ばれ始めた@yamadamn*1という方がみえます。
その方がまとめた発言(または「まとめ」の主体となっているもの)につけられているタグです。
togetter.com

Docker for Windows上で、GitLabを動かしたい

はじめに

GitLab Docker images | GitLabの通りやるとDocker for Windows上でGitLabを動かせませんでした。
動かし方を閃くまでちょっと時間が掛ったためメモ。

環境

  • WIndows 10 Pro 1809
  • Docker for Windows(Docker Desktop Community 2.0.0.3)
  • GitlLab CE 11.10.1-ce.0

名前付きボリュームを使えば動かせます

名前付きボリュームを使用するdocker-compose.ymlの例を以下に示します。

version: "2.2"
services:
  gitlab:
    image: 'gitlab/gitlab-ce:11.10.1-ce.0'
    restart: always
    hostname: 'localhost'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://localhost'
    ports:
      - '10080:80'
      - '10443:443'
      - '10022:22'
    volumes:
      - 'gitlab-log:/var/log/gitlab'
      - 'gitlab-config:/etc/gitlab'
      - 'gitlab-data:/var/opt/gitlab'
volumes:
  gitlab-log:
  gitlab-config:
  gitlab-data:

GitLab Docker images | GitLabのdocker-compose.ymlはホストのディレクトリをマウントしているため、Windowsがホストだと、パーミッション設定で失敗して起動してこないのです。

名前付きボリュームの中を見るのはちょっと面倒

以下のいずれかの方法を使用することになります。

ホストLinux(ハイパーバイザ型の軽量Linux)のルートディレクトリをマウントする

Dockerでデータボリュームを使ってみる|crz33の「管理ボリュームはどこにあるのか?」に具体的な方法が記載されています。

余談ですがGit for Windowsに同梱のGit BASHではうまくできませんでした。PowerShellを使いましょう。

見たいボリュームを1個1個マウントする

例えば、以下のようになります。

docker run --name mount_test -v practiceofgitlab_gitlab-log:/gitlab_gitlab-log -it alpine:latest sh

Gitlabの使い方を知るのにはいい書籍がある

GitLab実践ガイド impress top gearシリーズがお勧めです。
この書籍がなかったら、GitlLabがどういうものか理解するのに私は多大な時間を要したでしょう。
GitLab実践ガイド impress top gearシリーズ

さいごに

Docker for Windowsを使っているとこういうちょっとしたことで苦労しがちです。
しかしながら、Windowsへの愛ゆえこれからもDocker for Windowsでどうにかできるときは頑張っていきたい所存。

DockerでSubversionを動かしたい

はじめに

DockerでSubversionを動かしたいと思ったのですが、公式Dockerイメージが存在しません。
Alpine Linuxをベースイメージとして動かそうと決めたものの、動かすのにいくつか調べることがあったため、メモ。

環境

  • ホスト
    • Xubuntu 18.04
    • Docker version 18.09.2
  • Dockerコンテナ内
    • Alpine Linux 3.9.3
    • apache2 2.4.39-r0
    • apache2-utils 2.4.39-r0
    • apache2-webdav 2.4.39-r0
    • mod_dav_svn 1.11.1-r0
    • subversion 1.11.1-r0

調査して分かったこと

apache2の設定ファイルの所在

/etc/apache2/配下に存在します。
lsで確認すると以下の通り。

/etc/apache2 # ls -la /etc/apache2/
total 112
drwxr-xr-x    3 root     root          4096 Apr 29 11:58 .
drwxr-xr-x    1 root     root          4096 Apr 29 12:03 ..
drwxr-xr-x    2 root     root          4096 Apr 29 12:01 conf.d
-rw-r--r--    1 root     root         17836 Apr  3 15:53 httpd.conf
-rw-r--r--    1 root     root         13077 Apr  3 15:53 magic
-rw-r--r--    1 root     root         60847 Apr  3 15:53 mime.types
/etc/apache2 # ls -la /etc/apache2/conf.d/
total 40
drwxr-xr-x    2 root     root          4096 Apr 29 12:01 .
drwxr-xr-x    3 root     root          4096 Apr 29 11:58 ..
-rw-r--r--    1 root     root          1893 Apr  3 15:53 dav.conf
-rw-r--r--    1 root     root          2221 Apr  3 15:53 default.conf
-rw-r--r--    1 root     root          1191 Apr  3 15:53 info.conf
-rw-r--r--    1 root     root          5078 Apr  3 15:53 languages.conf
-rw-r--r--    1 root     root          4452 Apr  3 15:53 mpm.conf
-rw-r--r--    1 root     root           732 Apr  3 15:53 userdir.conf

mod_dav_svnを入れてもsubversionの設定は入らないから自分で書く必要がある

/etc/apache2/conf.d/の配下をgrepしたのですが、設定は見つからず。

以下を参考に作成します。

subversionリポジトリは/usr/bin/svnadminで作成する必要がある

デフォルトで作成されていないので/usr/bin/svnadminで作成する必要があります。
起動時に作る場合、以下が参考になります。

さいごに

Alpine Linux + apache2 + Subversionの組み合わせで解説しているページをうまく見つけられず、調べるの地味に面倒でした。
どれか一つでも詳しいと楽だったんでしょうけどね。

LIFEBOOK SHシリーズ LIFEBOOK WS1/C2(2018年7月モデル カスタムメイドモデル)が結構お気に入り

はじめに

私はプライベートで富士通LIFEBOOK WS1/C2(2018年7月モデル カスタムメイドモデル)を使っています。
プライベートで同機種を使っている人に中々遭遇せず寂しいので、「結構良いよ」ということを世に伝えようと思って本エントリを書くことにしました。

複数の要素がそこそこ高性能で使いやすい

ノートパソコンを選ぶ際、私は以下の要素をチェックします。

  • CPU
  • メモリ
  • ストレージ
  • 大きさ
  • 解像度
  • 重さとバッテリーでの稼働時間のバランス
  • キーボードの打ちやすさ
  • ポインティングデバイス

失礼を承知で書くのですが、個々の要素については本機種より優れている機種が存在します。
しかしながら、本機種はバランスが素晴らしいと思います。

(唯一無二とまでは言わないが)とんがっている部分もいくつかある

キーボードが打ちやすい

家電店でデモ機を触ったときは「イマイチかなぁ…」と思ったのですが、実機は結構打鍵しやすいです。
Webサイト*1によると、キーストロークは約1.2mm なのですが、その浅さを感じさせない適度な打鍵感があります。

…もう一台の愛機であるThink Pad X230には打鍵感、ちょっと劣りますけどね。

ディスプレイが高解像度

13.3インチなのに、2560×1440を選択可能です。
プログラムを書く上で大変便利です。

バッテリーでの稼働時間すごく長い!しかも自分で交換可能!

6セルバッテリーでPCMark 8 Workを7時間31分*2実行可能とのこと。
実際使っていてバッテリーで困ることはありません。
DVDドライブを外してつける増設バッテリーも買ったのですが、今のところ出番ないです。

また、バッテリー交換可能できる機種は近年少なく、魅力の一つとなっています。

専用ケースがかっこいい

黒をベースとして赤が差し色になっている専用ケース*3がかっこいいのです。
派手さはないのですが、「機能性をメインにしつつ、可能な範囲でかっこよくしてみました」みたいなデザインがツボです。

さいごに

本機種に対して愛を語っている人が少ないので語ってみました。
「買ってみようかなー」と思っている人の背中を押せれば幸いです。