Arch Linux を ThinkPad X1 Carbon 2017 にインストール
平日の仕事終わりに、普段使っている ThinkPad X1 Carbon で下調べもなく Arch Linux インストールバトルを始めたら敗北した(パーティション飛ばしたところで挫折)ので、ちゃんとやろうというメモです。
このページに従って、都度都度決めることをメモしていきます。
実際にやってみた編も書くかも?
1 Pre-installation
1.1 Set the keyboard layout
キーボードは英字配列なので変更なし
1.2 Verify the boot mode
UEFI Boot ができそうなことを確認
1.3 Connect to the Internet
ThinkPad X1 Carbon は本体には Ethernet ポートは無いので無線でつなぐ。
ネットワーク周りのツールが Arch Linux では何種類かあるけど、 netctl を使うべきか NetworkManager を使うべきか迷う。
けどとりあえずインストールするときは netctl しか使えないので、それを使う。
# cp /etc/netctl/examples/wireless-wpa /etc/netctl/ # vim /etc/netctl/wireless-wpa # netctl start wireless-wpa
↑ すでにインターフェースが上がっていると start
に失敗するみたいなので、
# ip link set wlan0 down
する。
1.4 Update the system clock
やる。
1.5 Partition the disks
パーティショニングはまぁまぁ悩む。
パーティションテーブルは GPT を使うことに決定。
UEFI Boot をしたいので、EFI用のパーティションは要る。
systemd-boot を使うときは /boot 領域と兼用が推奨とのこと。
せっかく UEFI Boot ができるので systemd-boot してみる。
容量はどうやら512MiB あればいいらしい。でもいろいろ考えると550MiBで作っとけば安全と書いてある。絶対に FAT32 でフォーマットする。
それ以外のパーティションはどうしようか。
ハイバーネートさせるための SWAP領域は、 SWAPファイルを利用することにする。
/home を分けると、システムを壊したりなんだりで再インストールするときに
データはそのままということができそうなので分けることにする。
ということで、パーティショニングは以下に決定。
- /dev/sda1 : /boot ... 550 MiB ( 絶対FAT32 )
- /dev/sda2 : / ... 64 GiB
- /dev/sda3 : /home ... それ以外。
1.6 Format the partitions
僕の ThinkPad X1 Carbon 2017 は SATA の SSD が起動ドライブになるので、
フォーマットは少し悩む。
ちょっと調べたところ、 ext4 で TRIM などを適切に実施すれば問題なさそうなので、
/
と /home
は ext4 でいく。/boot
は絶対 FAT32
1.7 Mount the file systems
/mnt -> /dev/sda2 /mnt/boot -> /dev/sda1 /mnt/home -> /dev/sda3
これで。
2 Installation
2.1 Select the mirrors
/etc/pacman.d/mirrorlist
を編集して、日本のミラーを上の方に持ってきておく。
2.2 Install the base packages
やる。
3 Configure the system
以下、基本的には仰せのままに。
3.1 Fstab 3.2 Chroot 3.3 Time zone 3.4 Locale 3.5 Network configuration 3.6 Initramfs 3.7 Root password
3.8 Boot loader
Boot loader には systemd-boot を使ってみたいと思っている。
この記事を参考にインストールすれば良さそう。
4 Reboot
普通にやる。 だめだったら boot USB でbootして試行錯誤(涙
5 Post-installation
General recommendations - ArchWiki
ここを参考に色々やる。
ということでやってみる。
builderscon 2017 に参加しました!
8/3(金)~5(土) に開催された builderscon tokyo 2017 に参加しました。
会社のスポンサー枠のチケットを利用させて頂き、初めての参加でした。 会社には大感謝です。
builderscon とは?
buildersconは「知らなかった、を聞く」をテーマとした技術を愛する全てのギーク達のお祭りです。 buildersconではトークに関して技術的な制約はありません、特定のプログラミング言語や技術スタックによるくくりも設けません。 引用:builderscon - Discover Something New
という、技術のさまざまな話題を扱うカンファレンスです。 YAPC Asia という Perl その他のカンファレンスの運営スタッフの方が運営されているとの事。
当記事以外にも沢山の方が参加エントリーを書いているのでそちらもご覧下さい。
Feedback - Blogs: builderscon tokyo 2017 - builderscon
感想(結論を先に)
builderscon は初参加でしたが、さまざまな分野・レイヤーのセッションがあり、 とても楽しめました。
さらに、イベントホールで提供されるコーヒーやジュース、ランチセッションの お弁当など飲食物がどれも美味しかったのが印象的でした。 豪華な朝食も提供されていたらしいのですが残念ながら朝食には間に合わなかったので 次回は絶対に早起きして朝食も食べたい!
また、他のエンジニアの方の努力の成果を聞いていろいろと高まったので、 業務に使えそうなもの/そうでないもの区別なく、幅広い分野の技術と触れ合って 楽しめたらいいなと思います。
このブログも放置気味なので活用していきたい気持ちです。
今年はスポンサー枠での参加でしたが、次回はチケットを買って参加したいなと 思いました。個人スポンサー特典の大切りしゃもじ?がチョー魅力的でした。
まとめると、
とても楽しく刺激的でまた行きたいと思ったのでまた参加します!
よろしくお願いいたします。
以下、参加セッションメモ覚書き
0日目(前夜祭)
確か内容拡散ダメだったので書けないですが、さまざまな会社のプロダクトのヤバイ話やスゴイ話を聞けました! 「わかるわかるー!!」や、「スゴーい!!!」って感じでした。
1日目
初めてのMySQLチューニング -データベースは怖くない!-
- 資料など
builderscon.io - mySQL チューニングの話
- my.cnf 編
- デフォルトダメ!ゼッタイ!
- mysqltuner を使うといろいろ警告してくれる github.com
- テーブル毎にファイルを分ける
- ファイルアクセスが速くなる?
⇒ my.cnf に設定を書く & ダンプ・リストア
- 仕組み的に速くならないのでは?という指摘あり。
- ファイルアクセスが速くなる?
⇒ my.cnf に設定を書く & ダンプ・リストア
- 仮説・診断・設定・計測 が大切
- チューニングは継続!
-
- ちゃんとレプリケーション昨日を使った冗長構成にしようねという話。
リストアするときは zcat hoge.gz | mysql —init-command=’set sql_log_bin=0;’ とかするバイナリログが出力されないので良いです。 #builderscon #buildersconD
— ITOH Hiroyuki (@i_rethi) 2017年8月4日
- ちゃんとレプリケーション昨日を使った冗長構成にしようねという話。
不要レコードは設計⇒退避⇒削除
- mysql5.6 以上からは GTID が使える!
マイクロチームでの高速な新規開発を支える開発・分析基盤
資料など
builderscon.io開発スピードが速いとモック作っても意味ないことも
- やる・やらないのきりわけが明確だとぶれないし必要最低限のものを最短の期間で作る事に近づく
- 要件を見直して理由含めて明確にする事が大事
- Infrastructure as Code を極力実施
- CircleCI便利 早い
- マイクロサービスやりすぎ良くないらしい
- 細かく分けすぎると大変になる。
- 可視化は redash 、redshift にデータをぶっこんでいる。
- エンジニアではない方がRe:dashで SQL書いて実行してガシガシ分析している
- スゴイ
- エンジニアではない方がRe:dashで SQL書いて実行してガシガシ分析している
- iOSだとpush通知の許諾がされにくいが Android だと許諾率がよい
- アプリやデバイスからのログの入り口 ⇒ AWS:kinesis
- データで確信が持てない施策は極力許さない
- ペルソナを想定した仮説検証より、ログから取れる数字を使った仮説検証
- ペルソナは宝くじのようなもの、ログから取れる数字は統計的な値として使える。
- ペルソナを想定した仮説検証より、ログから取れる数字を使った仮説検証
- 開発段階で最小限に機能を絞る
- 新機能はABテストをやって、リテンションに効果のあるもの「だけ」残す
↑リテンションは、アプリを再度使ってくれる事
- 新機能はABテストをやって、リテンションに効果のあるもの「だけ」残す
- ユーザーが少ない段階では、母数が少なくても有効な分析だけを実施
- むやみにさまざまな分析を行わず、手法の特製を知った上でやる
Haskellを使おう
資料など
builderscon.io
Kubernetesのクラスタ1つに開発と本番運用に必要な環境を詰め込んだらコスパが良くなった話
資料など
builderscon.io初心者向け
- 開発者の労力含めて安くなる話
- 開発・本番・運用すべてk8sで実装
- 設定をテンプレート化して外部から変数など取り込めるようにする ⇒ ksonnet
- Ingress ← これが面白い感じだった。
- GitHub は無償で Organization が作れて OAuth2 のプロバイダとして利用できる
- nginx がアクセスを全部受けていろいろルーティングする 良しなにやってくれる
- Q&A
2日目
ここまで出来るmruby
- 資料など
builderscon.io - 軽い
- mruby-cli で cli コマンドが使える
- 組み込み先にファイルシステムがない場合もあるのでmrbgem はコンパイルされて 1バイナリに組み込まれる
- mruby の開発は ruby or C
- mruby-mrbgem-template
- mruby 開発を色々便利に書ける
- mruby で LL のもう一歩先へ
- mruby と自分のソースコードを一緒にガシガシデバッグしていく
- gdb をつかう ctag とか gtag をちゃんと書いてねー
- SEGV
- mruby やる前は諦めてたが、mruby やったら解決できる!
- 社内で開発するOSSあると良さそう!
- mrbgem されていないライブラリがたくさんあって著名なコントリビュータになれる!
- FastCertificate
- 負荷制御の自動化
- LOLIPOP のコンテナサービス
- コンテナが定期的に再起動
- 良くもならないし悪くもならないのはメリット
- コンテナが定期的に再起動
- madam 便利かも json で ipvsadm の設定を入れられる
- middleware + mruby = 強い!
小さく始めて育てるコンパイラ
- 資料など
builderscon.io - 言語の処理系を作った事がある人が会場に沢山いて皆さんスゴイ
- 自分は電卓もまともに作った事が無い感じだったので、高度すぎました…
- ソースコードの解釈とかスゴイ難しそうだけど面白そうだなーと思いました。
- まずは電卓作るところからはじめてみようかな…
OSSで始めるセキュリティログ収集
資料など builderscon.io
セキュリティリスク・侵入への気づき方は外部からの指摘は多い
- 操作ログどうする?
- audit が良さそう
- audit はどう取るか?
- osquery 使うと監査ログ取れるし、これサーバーだけでなくMacとか社用PCに入れても良いのではと思いました。
- ログイン履歴から多要素認証できるの良さそう
- 守りつつも運用負荷を軽くしたり多様性を広げる形のセキュリティすごい
- セキュリティ担当者に聴きに来てほしい感じだった。
OSS貢献超入門
- 資料など builderscon.io
- まずは好きなリポジトリをウォッチ
- ライセンスとかOSSの決まりごとはパッチとかイシュー投げてから考えようぜ!
- ソースコードやドキュメントを追いかけることをやっていく。
- マイナス検索
- Qiita とか StackOverFlow 抜かしてみる
- 正直ボク(講師)にしか参考にならなかったけどすごく参考になる本
- 「熱血アセンブラ入門」
Amazon CAPTCHA - わからなくても読み進めてみることが大事。
- 時間を見つけて読むことが大事。
- 「熱血アセンブラ入門」
- リポジトリをウォッチしていく
- マイナス検索
- contribute の仕方は contribute xxx でググる!またはcontributeページを読む
docker-compose を使ってpythonの実行環境を作るメモ
しばらく更新していなかったので使い方を忘れていますが、 作業メモの投稿です。
はじめに
下記の内容は執筆時点のものです。 内容に謝りや勘違いが含まれる可能性が高いので、まさかりお待ちしております。 語尾がだ・である調ですが、作業メモということでご容赦いただければと思います。
前提環境
- OS: Ubuntu 16.04
- Docker: 17.03.0-ce
- docker-compose: 1.11.2
やりたかったこと
- Python の実行環境をコンテナに押し込みたかった。
- virtualenv とか pyenv とかを導入するのが面倒だった。
やったこと
下記の docker-compose.yml と Dockerfile を用意した。
- docker-compose.yml
version: "2" services: python: build: . volumes: - "./:/usr/src/app" ports: - "8500:5000" command: [python, hello-flask.py]
- Dockerfile
FROM python:3.6-onbuild
- hello-flask.py は flask クイックスタート のサンプルソース↓
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run(host='0.0.0.0')
使い方
- コンテナを立てっぱなしにする時
docker-compose up -d --force-recreate --build
- コンテナ内で作業したい時 or ソースコードを編集しながら動作確認やデバッグをしたい時
docker-compose run -p 5000:5000 python /bin/bash
便利だったこと
python:X.X.-onbuild
- python 公式イメージのうち、
onbuild
というやつを使うとrequirements.txt
を読み込んで依存ライブラリをコンテナ何にインストールしてくれて、さらに Dockerfile と同じディレクトリのファイルをコンテナ内(/usr/src/app)にコピーしてくれる(神)
何で困ったのか
公式イメージの ONBUILD の命令を実行するためには docker-compose ファイルに image
コンテキストとして記述するのではダメっぽい(imege なので build 不要って言われる) ので、1行 Dockerfile を作って build
コンテキストに記述することで build 可能になり、ONBUILD の命令が実行されるようになった。
参考
画面遷移図とblockdiag
画面遷移図作ってみた話
ご無沙汰しております.
以前の記事
起床時間ログアプリ構想 - Con_HumiのDEV_LOG
で書いた起床時間ログアプリの構想を実現すべく,
とりあえずで画面遷移図のような物を作ってみました.
とりあえず,こんなかんじかな?
ホーム画面に「起きた!」ボタンがあって,
それを押すと現在時刻を登録する雰囲気です.
ただ,ログイン失敗画面はポップアップにしたほうがいい気もします.
blockdiag使ってみた話
上の画像の作成には,blockdiag
ブロック図生成ツール blockdiag — blockdiag 1.0 ドキュメント
というツールを使いました.
Pythonで作られたツールで,pipで一発.
ホットに開発されてる感じで,
ブロック図の他にシーケンス図やアクティビティ図,
ネットワーク図も生成できるみたいです.
プログラムライクに書けるのがいい感じです.
使い方をもっと覚えればいろいろ出来そうかなと思います.
興味があったら使ってみてください.
MacBookProにCordovaの開発環境をインストール
先日,起床時間の記録アプリの構想を書きましたが,
やっぱり自分宛てメールで起床時間を記録していくのはとても不便なので,
アプリを開発してみようと思います.
開発環境整備で時間を取られる人の話
で,今の携帯電話はAndroidなので,Androidアプリを開発してもいいと思うのですが,
せっかくMacBookを使っているので,iOSにも対応したハイブリッドアプリを
やってみたいなと思いました.
(←いつも開発環境整備に時間がかかって肝心のコードがなかなか書き始まらない)
就活の時に自己アピールでMonaca IDEを使って開発した記憶があるので,
今回もMonacaを使ってもいいのですが,なんとなく自分のPC内に開発環境を
整備したかったので,そのインストールを行ったメモです.
Monaca - HTML5ハイブリッドアプリ開発プラットフォーム
Cordovaを選んだ話
Monacaで使ったPhoneGapというスマホの機能にアクセスする
ライブラリのオープンソース版であるCordovaを使った開発環境を導入しようと思います.
(昨年中に僕がMonacaを使った時はPhoneGapだったような気がするんですが,
今見たらMonacaでもCordovaを使っているのですね.)
Apache Cordova
↑これですね
いんすとろーる
Cordovaの開発環境をMacに構築する - 生きるか死ぬか、人生を賭けたアプリ開発日記
take5さんの記事を参考にさせていただき作業しました.
ありがとうございます!
大前提として,HomeBrewと言うMacOSのパッケージマネージャ的な何かが必要です.
なくても出来ると思いますが,何かと便利なのでインストールしておきましょう.
take5さんの記事にしたがって作業すればインストールできます.
Evernoteに保存しておこう!
iOSでエミュレートしてみました.
$ cordova emulate android --device
を実行すると,実機でデバッグ出来ます.
僕はGenymotionというAndroidシステムのエミュレータを使っているのですが,
実機と同じようにAndroidSDKに認識されるので,これで動きます.
すごーい.
マスタリングTCP/IP買ってもうた
楽天で期間限定ポイントが1500ポイントくらいあったので,
何か買わなきゃということで,マスタリングTCP/IPを買ってみました.
- 作者: 竹下隆史,村山公保,荒井透,苅田幸雄
- 出版社/メーカー: オーム社
- 発売日: 2012/02/25
- メディア: 単行本(ソフトカバー)
- 購入: 4人 クリック: 34回
- この商品を含むブログ (35件) を見る
入門編なので,本当に基本的なことが多いのですが,
図が多くてわかりやすい解説で,読み進めやすいです.
まだ少ししか読めていませんが,春休みを使って読破したいと思います.
積み本が増えてる......勉強しなきゃ....
起床時間ログアプリ構想
朝早く起きたい
4月から会社員としての新生活を控えているわけで,
そしたら早く起きないといけないです.いや,早く起きたい!
いまの生活を振り返ると,10時過ぎに毎日起床していて,
寝るのは12時だったり1時だったり2時だったり.
睡眠時間を計算すると,7〜10時間は睡眠をしているはずです.
でも昼間眠かったりします.
朝早くから授業があって8時ころに起きた日のほうが眠くない気もして,
もしかして寝過ぎが原因で眠いのかな?と思ったりします.
睡眠時間のログを取ろう
まず,どうしたら早く起きれるかなと思った時に,
4月から同期になる方が起床時間の記録を取って公開しているのを思い出し,
自分もやってみたくなりました.
で,一昨日あたりから毎朝の起床時間のログを撮っています.
メモで!
ログを取るアプリを作りたい
今のところ毎日の起床時間を自分宛てにメールしたりメモに書いたりして
記録しているのですが,................面倒くさい!
というわけで,ぽちっとボタンを押すだけで,
起床時間を記録してくれるアプリが欲しいなーと思ったわけです.
睡眠ログを取るサービスはすでにあって
とかとか.
ですが,データを自分でCSVか何かで引っ張って弄りたいのですが,
どうやらそういう機能は無さそう.
で,せっかくWEBアプリ勉強しようとしているので,
どうせだったら作ってみようかなと考えています.
仕様とか
アプリの事を妄想します.
* ぽちっとボタンを押すと,起床(できたら就寝)時間をデータベースに登録
* 起床時間をグラフ表示!
こんなもんでしょうか?
Monaca+バックエンドサービスを弄ったことがあるので,
それを使おうか,自分で一から作ろうか迷っています.
もし自分で一からやるなら,ちょうど少しかじっているPython+djangoとかでやってみたいなーとか.
以上,アプリ妄想でした.