XPS13 (9360) + budgie-remix + touchpad 設定

昨日これを書いたんだけど↓

bufferings.hatenablog.com

結局こんな感じにして、だいぶ快適になった。

$ cat /etc/X11/xorg.conf.d/70-synaptics.conf
Section "InputClass"
  Identifier "touchpad catchall"
  Driver "synaptics"
  MatchIsTouchpad "on"
  MatchDevicePath "/dev/input/event*"

  # 押す強さっぽいけど正直変更してもあまり分からない
  Option "FingerLow" "50"
  Option "FingerHigh" "80"

  # スクロール。マイナスだとナチュラルスクロール
  Option "VertScrollDelta" "-20"
  Option "HorizScrollDelta" "-20"
  Option "VertEdgeScroll" "0"

  # カーソルのスピード
  # Minを0、Maxを1にしたらMaxがInfになってしまったからMaxはMinの何倍みたいな計算してるっぽい雰囲気
  Option "MinSpeed" "1"
  Option "MaxSpeed" "3"
  Option "AccelFactor" "0.3"

  # 僕はタップを使わないのでオフに
  Option "TapButton1" "0"
  Option "TapButton2" "0"
  Option "TapButton3" "0"

  # 手のひら誤検出を防ぐ
  Option "PalmDetect" "1"
  Option "PalmMinWidth" "1"
  Option "PalmMinZ" "200"

  # 滑りぐあい。でもぎこちない感じある
  Option "CoastingSpeed" "40"
  Option "CoastingFriction" "50"

  # これだけ動いたら動かそうとしてると判断される
  # 10とかにしてると動きが四角くなるから0にした
  Option "HorizHysteresis" "0"
  Option "VertHysteresis" "0"

  # 右クリック領域をなくした
  Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
EndSection

人差し指でカーソルを移動したあとに、親指でクリックするのに慣れてるんだけど、親指が触れるときにカーソルがちょこっと動くのがなくなればいいなぁ。

Macだとそういうときカーソルが微動だにしないのすごい。てか、何にもいじらなくてもすごく気持ちがいい動作になってるのすごい(語彙。

「家族サービス」って言葉にピンとこない

週末に家族でお出かけしたり、子どもと遊んだりしてる。と、たまに「家族サービス大変ですね」って言ってもらったりするんだけど、ピンとこない。

「家族サービス」って言葉を聞くと「父親は仕事がメインだから、本当はやらなくてもいいことなんだけど、サービスでやってて偉いね」みたいに感じるんだけど、そんな気持ちがない。

僕の場合は、むしろ家族が僕に対してサービスで遊んでくれていると言ってもいいくらい。なんだもんね。

あぁ、そうか「家族がサービス大変ですね」ならピンとくるや。

そんだけ。

XPS 13 (9360) に Ubuntu Budgie (bugie-remix) 16.10 を入れたメモ

f:id:bufferings:20170305132950p:plain

去年の年末に、そろそろMac Book Airを買い換えたいなーと思って、なんとなく次はUbuntuがいいかなと思って、なんとなくDellのXPS13がいいかなと思って、でも、日本ではUbuntu版は販売してなかったので、買ってからUbuntuに入れ替えたメモ。デュアルブートじゃなくて、Ubuntuだけにした。

あ、壊れたりするかもだし、やるときは自己責任でやってね。

最初に感想

特に何もしなくても動いた。Touchpadの操作感が全然慣れないので調整していきたい。

XPS13

キーボードはUS配列で注文した。

www.dell.com

Ubuntu Budgie

なんとなくUbuntu Budgie(budgie-remix)というのを選んでみた。16.04もあるけど、なんとなく16.10にしといた。

budgie-remix.org

やったこと

準備

この辺を参考にして

dual boot - Dell XPS 13 9360 Dualboot Windows 10 and Ubuntu 16.04 - Ask Ubuntu

  • WindowsのリカバリーUSBスティックを作成
  • budgie-remixの起動USBスティックを作成
  • biosを更新

再起動してDELLのロゴが出てる間にF2を押してbios設定を開く

  • Secure BootをDisabledに
  • SATA OperationをAHCIに
  • 起動の順番をUSBを一番最初に

インストール

USBからbudgie-remixをインストールして更新しとく

$ sudo apt upadate
$ sudo apt dist-upgrade

日本語入力の設定(Mozc)

ここを参考にして

Ubuntu Budgie - Ubuntu となかまたち

$ sudo apt install fcitx-mozc
$ im-config -n fcitx
$ reboot

Fcitx ConfigurationのInput MethodでMozcを追加。

AppIndicator Appletは表示させないことにした。たまにメニュー表示でフリーズしたので。それと、一度表示させると外すこともできなかったので、最初から表示設定しないことにした。

あとは好みで

Touchpadの調整の準備

まず最初に、touchpadのデバイスが2つ認識されてて、synclientコマンドでゴニョゴニョしたりするのが反映されないので、使ってない方のデバイスを停止しておく。

この辺参考にした

Synaptics タッチパッド - ArchWiki

$ sudo apt-get install xinput
$ xinput
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ DLL075B:01 06CB:76AF Touchpad             id=11   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=15   [slave  pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                 id=5    [slave  keyboard (3)]
    ↳ Power Button                                id=6    [slave  keyboard (3)]
    ↳ Video Bus                                   id=7    [slave  keyboard (3)]
    ↳ Power Button                                id=8    [slave  keyboard (3)]
    ↳ Sleep Button                                id=9    [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                        id=10   [slave  keyboard (3)]
    ↳ Intel Virtual Button driver                 id=12   [slave  keyboard (3)]
    ↳ Intel HID events                            id=13   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard                id=14   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                            id=16   [slave  keyboard (3)]

この"SynPS/2 Synaptics TouchPad"を止めたい。

$ sudo vi /etc/modprobe.d/blacklist-touchpad.conf 
blacklist psmouse
$ sudo update-initramfs -u
$ reboot

止まった!

$ xinput
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ DLL075B:01 06CB:76AF Touchpad             id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                 id=5    [slave  keyboard (3)]
    ↳ Power Button                                id=6    [slave  keyboard (3)]
    ↳ Video Bus                                   id=7    [slave  keyboard (3)]
    ↳ Power Button                                id=8    [slave  keyboard (3)]
    ↳ Sleep Button                                id=9    [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                        id=10   [slave  keyboard (3)]
    ↳ Intel Virtual Button driver                 id=12   [slave  keyboard (3)]
    ↳ Intel HID events                            id=13   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard                id=14   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                            id=15   [slave  keyboard (3)]

Touchpadの調整

xinput とか synclient コマンドでごにょごにょすればリアルタイムに変更が反映される。で、好みの設定が見つかったらこんな風に保存すると永続化される。

$ sudo mkdir /etc/X11/xorg.conf.d
$ sudo vi /etc/X11/xorg.conf.d/70-synaptics.conf
Section "InputClass"
  Identifier "touchpad catchall"
  Driver "synaptics"
  MatchIsTouchpad "on"
  MatchDevicePath "/dev/input/event*"
  Option "FingerLow" "50"
  Option "FingerHigh" "80"
  Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
  Option "VertScrollDelta" "-20"
  Option "HorizScrollDelta" "-20"
  Option "CoastingSpeed" "40"
  Option "CoastingFriction" "50"
  Option "MinSpeed" "1"
  Option "MaxSpeed" "3"
  Option "AccelFactor" "0.3"
  Option "VertHysteresis" "0"
  Option "HorizHysteresis" "0"
  Option "PalmDetect" "1"
  Option "PalmMinWidth" "1"
  Option "PalmMinZ" "200"
EndSection

右クリックのエリアをなくしたり

  Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"

スクロールを逆にしたり。

  Option "VertScrollDelta" "-20"
  Option "HorizScrollDelta" "-20"

でも、親指でクリックするときにカーソルがずれるのと、手のひらでタッチしてしまって入力中にカーソルがジャンブするのがつらいので、なんとかしたい。

Caps Lock を Ctrl にしたい

ここを参考にしてXKBOPTIONSをセットしといた。

CapsLockをCtrlにするまとめ - Λlisue's blog

$ sudo vi /etc/default/keyboard
# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps"

BACKSPACE="guess"
$ sudo dpkg-reconfigure -phigh console-setup
$ reboot

画面タッチをオフにしたい

別にコード書くのに必要ないから、オフにしたいなーと思ったらBIOSの設定にあった。

Fnキーをデフォルトにしたい

Fnロックキーがあった。

ゲストアクセスは切りたい

$ sudo vi /usr/share/lightdm/lightdm.conf.d/50-no-guest.conf 
[SeatDefaults]
allow-guest=false

ログイン画面の解像度を変えたい

lightdm - Wrong Login Screen Resolution - Ask Ubuntu

$ sudo vi /etc/lightdm/lightdm.conf
[SeatDefaults]
display-setup-script=xrandr --output eDP-1 --mode 1920x1080

viで矢印がABCDになる

$ vi ~/.vimrc 
set nocompatible
set backspace=indent,eol,start

という感じ

touchpadの設定は、自分の好みが見つかったらまたメモしておこう。

追記:結構良くなった

bufferings.hatenablog.com

Spring Bootでおさえておくべき4つのこと

同僚から「Spring Bootのこと教えてー」って声かけてもらったので、社内勉強会でこぢんまりと喋ってきた。

Spring Bootのコンセプト

Springがコードレベルの、Spring Bootがアプリレベルの、Spring Cloudがサービスレベルの、みんながやることやっとくよ。な感じ。

ってつぶやいたらまきさんから

って教えてもらったのでスライドを紹介しときました!あざます!

Spring Bootでおさえておくべき3つのこと

最初はどこまでがSpringでどこからがSpring Bootなのか分かってなくて「めっちゃ色々あって魔法みたいでよく分かんない・・・(ヽ´ω`)」ってなってたけど。最近、Spring Bootってこうかなと思うのが、(1)親pom、(2)auto configuration、(3)maven plugin、の3つ。

(1) 親pom

Mavenで最初にアプリの依存関係設定したことある人だったら分かると思うけど面倒くさい。のを、親pomとして定義してくれてるので使いたいstarterを選ぶだけ。そして、平和が訪れたヽ(=´▽`=)ノ

この辺

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-starters/spring-boot-starter-parent

依存関係自体はこの辺

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-dependencies

(2) auto configuration

こいつが魔法の元。

この辺

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure

の中の例えばThymeleafだったらこんな感じになってて

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration.java#L69

...
@ConditionalOnClass(TemplateMode.class)
...
public class ThymeleafAutoConfiguration {
...

ThymeleafのTemplateModeっていうクラスがクラスパスにあれば、この設定が有効になる。そういうわけで、Thymeleafのjarを依存関係に入れておくだけで、Thymeleafの設定が有効になるのである。魔法である。

「そのjarを含めてるってことは使いたいってことだよね?ってことはみんながするような基本的な設定はしとくね。」という感じ。

(3) Spring Boot Maven Plugin

Spring Bootのアプリは通常、全部の依存ライブラリを含んだいわゆる"fat jar"という実行可能jarに固める。で、そのjarを実行すると、組み込みTomcatとかが起動してアプリが動き始める。そういうスタイル。

その実行可能jarを作ってくれたりする便利なやつがSpring Boot Maven Plugin。

この辺

http://docs.spring.io/spring-boot/docs/current/maven-plugin/usage.html

開発中はSTSとかから起動して動作確認しても良いし、mavenを使ってこんな風に起動することもできる

./mvnw spring-boot:run

jarに固めたいときは、こうやったらいい

./mvnw clean package

で、そのjarから実行したいときは、こんな感じ

java -jar app.jar

Springチカラ

ということで、Spring Bootに関しては大きく分けてその3つをまずは押さえておきたいかなって話をした。で、それ以外はSpringチカラの話。なのでこの本をおすすめしておいた。

books.rakuten.co.jp

そんな感じ。

12-Factor App

実行可能jarの話が出てきたので12-Factor Appに触れておいた。 12-Factor Appは、クラウドプラットフォームを念頭において、どんな風にアプリケーションを作ると良いかという方針を、Herokuの中の人が書いたもの。

僕の中では、外から設定を与える、というのが大きかったんよなぁ。→ 開発環境用の設定を持ったjarとか、本番環境用の設定を持ったjarとか、そういうふうに環境ごとにjarを作るんじゃなくて、jarはひとつだけで、環境によって異なる設定は外から与えてあげようよ、というのん。

The Twelve-Factor App (日本語訳)

Cloud Native App

Pivotalは、その12-Factor Appをさらに押し進めて、DevOpsやCI、Microservicesなども含めて全体としてどのようにアプリケーションを作ると良いかという方針のCloud Native Applicationというものを推奨している。

pivotal.io

補足しておいたのは「PivotalがSpringを引っ張っているのではなく、SpringがPivotalを引っ張っているのだ」ってSpring Oneで言ってたよってこと。

僕とSpring Cloud

僕はこんな風に考えてるんだよー。というのも伝えておいた。

bufferings.hatenablog.com

(4) Spring Bootでおさえておくべきこと4つ目

にして最も大事なことは・・・

Pivotalのまきさん!

まきさんの発信してくれる情報をキャッチすべし。って伝えておいた。

今日話した中で間違いなくここが一番重要。

JSUG

それと、JSUGに参加すべし。ということでついこないだあったやつのスライド、まきさんのとたださんのを伝えておいた。すごくいい資料。

実例で学ぶ、明日から使えるSpring Boot Tips #jsug

Spring for Spring Boot // Speaker Deck

社内の詳しい人

社内だと、藤井さんとTommyさんがめっちゃ詳しいよ!って伝えておいた。

楽天トラベルとSpring(Spring Day 2016)

あとは

そういう話をして

最後にひとつお願いがある!

もし色々と挑戦したら、その試行錯誤を僕にも共有してほしい!めっちゃ面白そうだし!

って伝えて締めくくった。良い日だった。

若い人のエネルギーを利用して成長

ふと、書いとこうと思ったのであった。

20代前半:特に何も考えてなかった期

バイトの先輩に誘われてプログラミングを始めて、特に何にも考えずにコード書いてた。

20代後半:自分の理想を追いかけてた期

色んなことを勉強して、それをどんどん試してた。先輩に見守られていることには気づいてなかった。

30代前半:相手に自分の理想を押し付けてた期

仕事を任されるようになって、自分と同じ考え方やスキルを相手に求めてイライラしてた。

30代後半:みんな違ってて良いよね期←いまここ

相手と自分は違ってて、相手には自分にはない良さがたくさんあるんだなって気づいた。

書いときたかったこと

若い人を分かったふうな言葉で諭したりせずに、彼らが猛烈なエネルギーで前進していくのを見ながら、色々学んで成長していきたい。

(そ、そろそろ、JavaとかDC/OSの話とか書こうと思ってるんだからねっ!)

雑用上司

僕はWebサービス開発会社のエンジニアなんだけども。

雑用は新人にお願いするんじゃなくて、上司がやると良さそう。だよなって思ってる。

会議の設定とか、飲み会の幹事とか、会議の資料作りとか、そういうの。

そうすると、良さそうのは。

  • 上司は新人より組織に関して色んなことができるので、無駄なものをなくしたり、効率化したりできそう。
  • 本当に必要なものだけが残って、で「それを自分がやるのは時間がもったいない!誰かを雇ったとしても結局その方が得だ!」ってなるとプログラムを書くために入社した人じゃなくて、誰かそういうことをやる人を雇うことができそう。
  • 「出世したら雑用は部下にやらせよう!」じゃなくて「遂に雑用ができるまで偉くなったか!」ってなると雑用が尊いものになりそう。

雑用から学ぶ?

よく「雑用から学ぶのだ!」って話を聞くんだけど、そんな遠回しなことせずに「こういう場合はこうするんだよ」って仕事の中で教えてあげれば良いよね。

新人には、雑用とかより先にさっさとコードを1万行書いて欲しいなーって思います。

今の僕の上司たち

は、雑用を自分たちの中でやろうとしてくれてて「エンジニアにそんなことやらせられない!他に自分に何かできることがあったら何でも言って!」って言ってくれるので、頑張ってスキルアップしようと思うのでした。

そういえば、去年の忘年会のコーディネーションを一番がんばってたのってうちの部署で一番偉い人だったわw

P.S. XPS13にUbuntu入った!細かい調整していこっと。

SpringOne2016で喋ったのんのYoutubeビデオが公開されてました(∩´∀`)∩ワーイ

DDDとCQRSとSpring Cloudで、進化してくようなアーキテクチャを作ってくのが良さそう!ってお話。Ignite Talkっていうスタイルの発表で、15秒に1スライド自動でめくられて5分間喋るす。スライド20枚分ね。

圧倒的に英語でのアドリブチカラがないので、泣きながら全力暗記で臨んだものの、何度か頭が真っ白になってますw。ほんとはもっとかっこよくきめたかったので、すごい悔しかったの覚えてるけど、おかげで頭の整理もできたし、英語も少し上手になったし、何人かと喋ることもできたし、やって良かったなー。

youtu.be

↓これ、その当時かいたの

bufferings.hatenablog.com