ゆるふわエンジニアのブログ

行ったこと、調べたこと等をつらつらと書いていくかもしれません。

スマホをPixel 3に乗り換えた話

スマホ
ZenFone A500KL-WH32 SIMフリー
から
Pixel 3 128 GB、Clearly White、ロックフリー
に乗り換えて約1か月経過したので、一緒に購入したアクセサリ、使用してみての感想などを書いていきます。

本記事の内容です。

購入時期

2018/12中旬

Pixel 3に乗り換えた理由

ZenFone 5Zを購入するかPixel 3を購入するかで悩んでいましたが、次の事が決め手となり、Pixel 3の購入を決めました。

  • OSサポートが最低でも3年間は行われる
  • OSサポート期間中、充分に戦えるスペック
  • Googleが販売しているスマートフォンなので不要なアプリが入っていない
  • 防水対応
  • 日本国内に修理業者が存在する

一言で言ってしまうと「将来性があったため」ですね。
ちなみに、修理業者は下記です。
www.icracked.jp

一緒に購入したアクセサリ

フィルム

ガラスフィルムの方が外部からの衝撃から画面を守ってくれるとのことだったので、ガラスフィルムを購入しました。
購入した商品は下記です。
https://www.amazon.co.jp/Google-ガラスフィルム-0-33mm-液晶保護ガラス-クリアタイプ/dp/B07KF8CDBQ
他には、購入当時に住んでいた名古屋(大須)の企業だったからというのもあります。
地元企業の応援は大事。
後述するケースとの干渉もありませんでした。

ケース

ケースは下記のものを購入しました。
www.spigen.co.jp
選んだ理由は下記の通りです。

  • Pixel 3本来のデザインを生かすことのできるクリアタイプのケースが欲しかった
  • 衝撃吸収性が高いと評判だった

実際使ってみた感想は下記の通りです。

  • Pixel 3本来のデザインを生かすことができる
  • ケースを装着しても全体のサイズ、重量が気にならない

満足しています。

使用感

大体、下記の通りです。

  1. バッテリーの減りが想像よりもはやい
  2. ものすごくサクサク動作する
  3. 片手で操作するのによいサイズ
  4. 不要なアプリが入っていない関係で、最初に不要なアプリをアンインストールする作業が不要なので楽
  5. カメラの画質が綺麗、今まで写真を撮ることに興味が無かったけど写真を撮ることが楽しくなるくらい綺麗

「バッテリーの減りが想像よりもはやい」についてはGoogle公式Twitterアカウントからのリプライで教えていただいたページ
support.google.com
を元に設定をいじってみたら長持ちするようになりました。
こういったところのサポートがあるのは嬉しいですね。

SONYのウォークマン(NW-A55HN)を購入した話、注意点等

使用している音楽プレイヤーをSONYのNW-A55HNに買い替えてから約1か月経過したので、一緒に購入したアクセサリ、使用してみての感想、注意点などを書いていきます。

本記事の内容です。

購入日

2018/12/16

NW-A55HNを購入した理由

理由は下記の通りです。

  1. ノイズキャンセリング機能搭載の音楽プレイヤーが欲しかったから
  2. ノイズキャンセリング機能対応のイヤホンが欲しかったから
  3. Sシリーズが欲しかったがデザインがショボくなっていたから
  4. 既にNW-A55を利用している人の評価が良かったから
  5. SDカードでストレージを拡張できる仕様だったから

3については、ここ10年程ずっとSシリーズを好んで使用してきたんですが、どうしてこうなった感があり残念です。

一緒に購入したアクセサリ

フィルム

ガラスフィルムの方が外部からの衝撃から画面を守ってくれるとのことだったので、ガラスフィルムを購入しました。
購入した商品は下記です。
www.pg-a.co.jp
何故A30用を購入したのかというと、当時、家電屋店頭にA50用のガラスフィルムが無かったのと、店員さんが「A30シリーズとA50シリーズは画面サイズが同じなので問題ない」と言っていたので、これを購入しました。
実際のところサイズがピッタリだったので問題無かったです。
あと、タッチ操作にも特に影響は出ないので使っていて気にならないですね。
後述するケースとの干渉もありませんでした。

シリコンケース

柔らかいケースを探していたらSONY純正のシリコンケースが販売されていたため、下記商品を購入しました。
色は本体がムーンリットブルーなので、併せてブルーを選択しました。
www.sony.jp
実際に装着してみるとボタンが押しにくくなるといったことはなく、むしろ、シリコンがいい感じに滑り止めの役割を果たしてくれていて良い感じです。

使用感

操作性

基本的にタッチパネルでの操作なので、スマートフォンを操作するように操作できて快適です。
ただ、下記の点は引っ掛かります。

  1. 電源をオンにする時に電源ボタンを長押ししなければいけない
  2. 電源をオンにしてから操作可能になるまでの時間が長い(ざっくり計測したところ23~24秒掛かる)
  3. 電源をオフにする時の操作が面倒くさい(電源ボタン長押し→ダイアログの「OK」タップ)

1と3は好意的に考えると誤操作を防ぐためにこういった仕様にしているのだと思いますが、2はちょっといただけないです。

バッテリーの持ち

Sシリーズと比べると短いですが、特に気にならないです。

文句無しに良いです。
イヤホンも自分の耳だと、付属品で満足できました。

付属イヤホン

音は良いです。
が、イヤホンのケーブルがY字型な関係で首の後ろを通すことができないのは個人的につらいです。
(前にケーブルをぶら下げる形だと、上着を着ている時にいろいろと引っ掛かりストレスになる。)
あと、長さを調節するためのスライダーが付いていないのもつらいですね。

購入直後に見つかったバグのような現象と対処法

現象

本体ソフトウェアがver 1.00の時、Amazonで購入したMP3曲の長さの表示が曲選択画面と曲再生画面で異なるという現象が発生しました。
どうやら、再生画面のみ正しく表示されないみたいです。
(実際の現象は下記の画像を参照。)
f:id:j_levia:20190117171832j:plain:w200
f:id:j_levia:20190117171841j:plain:w200

対処法

下記ページを参考にソフトウェアのアップデートを行ってください。
私の場合、「Music Center for PC」は使いづらかったので使用しない方法でアップデートを行っています。
www.sony.jp

その他

過去のウォークマンに付属していたUSB Type-A ⇔ WM-PORTのケーブルは使えるの?

問題無く使えます。
「WM-PORTとはなんぞや?」という方は、下記ページを参照してみてください。
faq.support.sony.jp

特定のワードが内容に含まれているファイルが指定したディレクトリ以下に存在しているかを検索する方法(Linux)

特定のワードが内容に含まれているファイルが指定したディレクトリ以下に存在しているかを検索する方法を紹介します。

本記事の内容です。

対象読者

特定のワードが含まれているファイルを検索したい方。

本記事の内容を試した環境

OS: Ubuntu 18.04

多分、どのディストリビューションでも動作すると思います。

検索する方法

下記のコマンドを実行します。

  • <検索したい文字列>
  • <検索対象フォルダのパス>

の部分は、それぞれ任意の値に変更してください。

grep <検索したい文字列> -rl <検索対象ディレクトリのパス>

例を挙げると

grep "hoge" -rl /var/lib

を実行すると、/var/libディレクトリ以下の"hoge"というワードが含まれているファイルが検索されコンソールに表示されます。

Tomcat for JavaでDockerコンテナ上のTomcatを指定する方法

Tomcat for JavaでDockerコンテナ上のTomcatを指定して使用する方法を説明していきます。

j-levia.hatenablog.jp
の「何故Dockerイメージおよびコンテナを使わないのか?」で書いた内容へのアンサー的な内容です。

本記事の内容です。

本記事の内容は何が嬉しいのか?

デバッグ用に使用するTomcatをいちいちインストールする必要が無くなります。
また、Tomcatが不要になった時はDockerコンテナおよびイメージを削除するだけでよくなるので、開発環境が汚されることも無くなります。

対象読者

Visual Studio Code(VS Code)の拡張機能であるTomcat for JavaでDockerコンテナ上のTomcatを指定して使用したい方。

本記事の内容を試した環境

ホストOS: Ubuntu 18.04
Docker: 18.09.1-rc1, build bca0068
VS Code: ver 1.30.2
Tomcat for Java: ver 0.11.1

上記環境はVirtualBox上に構築しています。

Tomcat環境構築

1. Docker環境の権限変更

Tomcat for JavaTomcatディレクトリを指定する際にアクセスできるよう、下記コマンドで

にアクセス権限を付与します。

sudo chmod 755 /var/lib/docker
sudo chmod 755 /var/lib/docker/volumes

ちなみに、元の設定に戻したい場合は下記のコマンドを実行することで戻すことができます。(権限変更前がデフォルト状態の場合。)

sudo chmod 711 /var/lib/docker
sudo chmod 700 /var/lib/docker/volumes

2. Docker Volumeの作成

下記コマンドで使用するDocker Volumeを作成します。
今回はTomcat9を使用するので
Tomcat9
という名前で作成します。

docker volume create tomcat9

作成後は

docker volume ls

を実行し、リストにtomcat9が表示されることを確認してください。

3. Tomcatコンテナ、Volume、シンボリックリンクを作成するスクリプトファイル作成

任意のディレクトリで
run-tomcat9-jre8.sh
というファイルを作成し、中に下記のコードを貼り付けて保存します。

#!/bin/bash
# Declare variables.
CreateServerDir="${HOME}/server/tomcat"
UseVolumeName="tomcat9"
TomcatMajorVer=9
JreMajorVer=8
VolumeDir="/var/lib/docker/volumes/${UseVolumeName}/_data"
CreateSymbolicLink="${CreateServerDir}/${TomcatMajorVer}"
UseImage="tomcat:${TomcatMajorVer}-jre${JreMajorVer}"
ContainerName="tomcat${TomcatMajorVer}-jre${JreMajorVer}"

# Stop and remove docker container.
docker stop $ContainerName
docker rm $ContainerName

# Create and run docker container.
docker run -p 18080:8080 -d --rm --name $ContainerName -v $UseVolumeName:/usr/local/tomcat $UseImage

# Create symbolic link.
mkdir -p $CreateServerDir
rm $CreateSymbolicLink
ln -sf $VolumeDir $CreateSymbolicLink

# Change permission of docker volume directory for allow access.
sudo chmod 777 -R $VolumeDir

Tomcatディレクトリへのシンボリックリンク作成場所を変更したい場合はCreateServerDir変数の中身を、
使用するDocker Volumeを変更したい場合はUseVolumeName変数の中身を、
他バージョンのTomcatを使用したい場合はTomcatMajorVer変数およびJreMajorVer変数の中身をそれぞれ変更してお使いください。
なんなら上記コードを元に自由に改良してください。

最後にDocker Volumeディレクトリの権限を全ユーザに対して読み取り、書き込み、実行可に設定していますが、開発環境でかつ使い捨ての環境なので、このような設定にしています。
あくまでもPublicになっていないPrivateな開発環境でのみ許されることなので、Publicな(インターネット上で公開されている)環境でこのような権限の設定は行わないでください。

4. 作成したスクリプトファイル実行

下記のコマンドで作成したスクリプトファイルを実行します。

sh run-tomcat9-jre8.sh 

Tomcat for JavaでDockerコンテナ上のTomcatを使用

1. Tomcat for JavaTomcatコンテナ内のTomcatを指定および追加

Visual Studio Code(VS Code)を起動し、デバッグに使用するTomcatサーバを追加します。
Tomcat for Java自体の使い方については本記事では説明しません。
公式情報を参照ください。
marketplace.visualstudio.com

Tomcatディレクトリを選択する時、
$HOME/server/tomcat/9
もしくは
/var/lib/docker/volumes/tomcat9/_data
のどちらかのディレクトリを選択してください。

2. 追加したTomcatサーバの名前を変更

追加したTomcatサーバの名前はデフォルトだと一目で何かを判断できないような名前になっているので、
サーバ名を右クリック→Rename(日本語環境だと「名前を変更?」)→画面上部に表示されたテキストボックスに設定する名前を入力しEnter
で、お好きな名前に変更してください。

これで、VS Code + TomcatでWebアプリのデバッグが行えるようになります。

Ubuntu18.04にTomcat9をインストールする方法

Ubuntu18.04にTomcat9をインストールする方法を備忘録として残しておきます。

本記事の内容です。

対象読者

Ubuntu18.04にTomcat9をインストールしたい方。
多分、他バージョンのUbuntuおよびTomcatの組み合わせでも参考にはなると思います。

本記事の内容を試した環境

OS: Ubuntu 18.04
Tomcat: 9.0.14

上記環境はVirtualBox上で構築しています。

Tomcatインストール

一般的と思われる方法および設定でインストールします。

インストール用のスクリプトファイル作成

任意のディレクトリで
install-tomcat9.sh
というファイルを作成し、中に下記のコードを貼り付けて保存します。

#!/bin/bash
# Declare variables.
TomcatMajorVersion=9
TomcatVersionFull="${TomcatMajorVersion}.0.14"
TomcatDirectory="apache-tomcat-${TomcatVersionFull}"
TomcatInstaller="${TomcatDirectory}.tar.gz"

# Uninstall tomcat.
rm -Rf /opt/$TomcatDirectory
rm /etc/systemd/system/tomcat.service
rm -Rf ./$TomcatDirectory
rm $TomcatInstaller

# Add tomcat user.
useradd -M tomcat

# Tomcat download and deploy.
wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/tomcat/tomcat-$TomcatMajorVersion/v$TomcatVersionFull/bin/$TomcatInstaller
tar -xzvf ./${TomcatInstaller}
rm $TomcatInstaller
mv ./$TomcatDirectory /opt
chown -R tomcat:tomcat /opt/$TomcatDirectory

# Service create and registration.
cat << EOS > /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat $TomcatMajorVersion
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/$TomcatDirectory/tomcat.pid
RemainAfterExit=yes

ExecStart=/opt/$TomcatDirectory/bin/startup.sh
ExecStop=/opt/$TomcatDirectory/bin/shutdown.sh
ExecReStart=/opt/$TomcatDirectory/bin/shutdown.sh;/opt/$TomcatDirectory/bin/startup.sh

[Install]
WantedBy=multi-user.target
EOS

# Change tomcat.service's permission.
chmod 755 /etc/systemd/system/tomcat.service

# Setting tomcat service auto start.
systemctl enable tomcat

# Start tomcat service.
systemctl start tomcat

スクリプトファイルを実行しインストール

下記のコマンドで作成したスクリプトファイルを実行し、Tomcatをインストールします。
この時、ログインしているユーザにsudo実行権限を与えていないとエラーになりますので注意してください。

sudo sh install-tomcat9.sh

他バージョンのTomcatをインストールする場合

下記の変数宣言にて記述しているバージョン情報を変更すると、他バージョンのインストールにも対応できると思います。
ただし、複数バージョンのTomcatをインストールすることは考慮していませんので、注意してください。

# Declare valiables.
TomcatMajorVersion=9
TomcatVersionFull="${TomcatMajorVersion}.0.14"

参考にさせていただいたページ

weblabo.oscasierra.net

何故Dockerイメージおよびコンテナを使わないのか?

Visual Studio Code(VS Code)の拡張機能であるTomcat for JavaからDockerコンテナ上のTomcatフォルダを指定する方法がわからなかったからです。
どなたかご存知の方は教えていただけると嬉しいです。

Ubuntu18.04 on VirtualBox上でWeb系の開発環境を構築する方法

Visual Studio以外の開発環境をUbuntu 18.04上に移したので、その中で行った作業を備忘録として残しておきます。
本記事の内容は

の開発環境がメインのターゲットとなっています。
他に何か追加した際は、都度本記事を編集していく予定です。

本記事の内容です。

VirtualBoxを使用してUbuntu18.04の仮想環境作成

割り当てたリソース

CPU: 2コア
メモリ: 4GB
ストレージ: 50GB (可変サイズ)

上記以外はすべて初期状態のままです。

CPUのコア数を変更できない場合

BIOSの設定を開き、Intel Virtualization Technologyを有効(Enabled)に設定します。
f:id:j_levia:20190109152931j:plain
Intel Virtualization Technology Enabled

Ubuntuインストール

設定について、キーボードの設定は使用しているPCのキーボードに合わせます。
後はお好みで。

ウィンドウサイズを自動調整させる

下記の動画を参考にGuest Additionsをインストールします。
www.youtube.com

VS Code環境構築

ソースコードはすべてVS Codeで書くので、VS Codeの環境を構築します。

インストール

公式ページからインストーラをダウンロードしてインストールします。
code.visualstudio.com
Ubuntuソフトウェアアプリからインストールすると日本語入力が行えないので、Ubuntuソフトウェアアプリからはインストールしないよう要注意です。

拡張機能追加

お好みでどうぞ。
何を追加したらよいかわからない方は、下記の記事を参考にしてみてください。(宣伝)
j-levia.hatenablog.jp

Git client(GitKraken)インストール

公式ページからインストーラをダウンロードしてインストールします。
www.gitkraken.com
UbuntuソフトウェアアプリからインストールするとGitHubアカウントでログインできない等、正常に動作しない部分があるのでUbuntuソフトウェアアプリからはインストールしないよう要注意です。

Docker環境構築

インストール

下記コードを元にスクリプトファイル(*.sh)を作成し、shコマンドで実行します。

#!/bin/sh
# install docker
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable test edge"
sudo apt-get update
sudo apt-get install -y docker-ce

# Enable Docker operation without administrator authority
sudo groupadd docker
sudo gpasswd -a $USER docker

OS再起動

上記で説明した下記コードの内容を適用するためにOSを再起動します。

# Enable Docker operation without administrator authority
sudo groupadd docker
sudo gpasswd -a $USER docker

.NET Core開発環境構築

.NET Core SDKインストール

下記コードを元にスクリプトファイル(*.sh)を作成し、shコマンドで実行します。

#!/bin/sh
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo add-apt-repository universe
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-sdk-2.2
rm packages-microsoft-prod.deb

Java開発環境構築

AdoptOpenJDKインストール

下記コードを元にスクリプトファイル(*.sh)を作成し、shコマンドで実行します。
今回はバージョン8のJDKをインストールしています。

#!/bin/sh
wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u192-b12/OpenJDK8U-jdk_x64_linux$
tar -xf OpenJDK8U-jdk_x64_linux_hotspot_8u192b12.tar.gz
rm OpenJDK8U-jdk_x64_linux_hotspot_8u192b12.tar.gz
echo 'export PATH=$PWD/jdk8u192-b12/bin:$PATH' >> .profile
echo 'execution source .profile command.'

スクリプトファイルの実行が終わったら、下記コマンドを実行し環境変数の設定を適用させます。

source .profile

Gradleインストール

下記コードを元にスクリプトファイル(*.sh)を作成し、shコマンドで実行します。
今回は2019/01/10時点での最新バージョンのGradleをインストールしています。

#!/bin/sh
sudo add-apt-repository ppa:cwchien/gradle
sudo apt-get update
sudo apt-get install -y gradle

参考にさせていただいたページ

How Install VirtualBox Guest Additions on Ubuntu 18.04 Guest / virtual machine - YouTube
Install .NET Core SDK on Linux Ubuntu 18.04 x64 | .NET
Installation | AdoptOpenJDK - Open source, prebuilt OpenJDK binaries
Ubuntu に最新のgradleをインストールする - Qiita

Visual Studio Codeで使用している拡張機能メモ

新しく開発環境を構築した際にVS Codeに追加した拡張機能を備忘録として残しておきます。
Web関係がメインです。
その他、使用する拡張機能の増減があったら、都度編集していきます。

本記事の内容です。

HTML

HTML Snippets

HTML Snippets - Visual Studio Marketplace

CSS

IntelliSense for CSS class names in HTML

IntelliSense for CSS class names in HTML - Visual Studio Marketplace

JavaScript

ESLint

ESLint - Visual Studio Marketplace

Node.js Extension Pack

Node.js Extension Pack - Visual Studio Marketplace

Node.js Modules Intellisense

Node.js Modules Intellisense - Visual Studio Marketplace

Vue.js Extension Pack

Vue.js Extension Pack - Visual Studio Marketplace

VueHelper

VueHelper - Visual Studio Marketplace

React Extension Pack

React Extension Pack - Visual Studio Marketplace

ES7 React/Redux/GraphQL/React-Native snippets

ES7 React/Redux/GraphQL/React-Native snippets - Visual Studio Marketplace

Browser Debug

Debugger for Chrome

Debugger for Chrome - Visual Studio Marketplace

.NET

.NET Core Extension Pack

.NET Core Extension Pack - Visual Studio Marketplace

Java

Java Extension Pack

Java Extension Pack - Visual Studio Marketplace

Tomcat

Tomcat for Java

Tomcat for Java - Visual Studio Marketplace

Git

Git Extension Pack

Git Extension Pack - Visual Studio Marketplace

Docker

Docker

Docker - Visual Studio Marketplace

Server

Live Server

Live Server - Visual Studio Marketplace

Markdown

Auto-Open Markdown Preview

Auto-Open Markdown Preview - Visual Studio Marketplace

Markdown Extension Pack

Markdown Extension Pack - Visual Studio Marketplace

Japanese

VSNotes

VSNotes - Visual Studio Marketplace

テキスト校正くん

テキスト校正くん - Visual Studio Marketplace

Japanese Word Handler

Japanese Word Handler - Visual Studio Marketplace