「第33回シェル芸勉強会 大阪サテライト」レポート
01/27(土)に東京で行われた「jus共催 第33回めでたいシェル芸勉強会」について、今回も大阪でサテライトしました!
※レポート、ちょっと省力化してます
イベント情報
東京(本家)
大阪サテライト
福岡サテライト
イベントのようす
まとめ
問題・解答例・東京LT・togetterなどは本家の方にまとまっています。
jus共催 第33回めでたいシェル芸勉強会の報告 | 上田ブログ
大阪サテライトレポート
参加者
今回はフェンリルさんに会場をお願いしました。
OSCと被ってしまったため来られない方もいらっしゃり、今回の参加者は8名で、初めましての方は1名でした。
LTのようす
今回もYoutubeで配信していただけました! 録画はコチラ↓
MSR(@msr386) さん 「Amazon Dash Hack」
so(@3socha) さん 「Contributions Graph芸」
くんすと(@kunst1080) 「Dockerを使ったクライアントハイパーバイザー」
※作成中のため、今回はスライドの公開は無しです
小原 一哉(@KoharaKazuya) さん 「macOS 濁点問題にシェル芸で挑んだ話」
まとめ
お疲れ様でした! 次回もよろしくお願いします!
Java でa == 1 && a == 2 && a == 3やってみた
==
じゃなくて、equals
ならできる……
public class Main { public static void main(String[] args) { MyInt a = new MyInt(1); if (a.equals(1) && a.equals(2) && a.equals(3)) { System.out.println("true"); } else { System.out.println("false"); } } } class MyInt { int i; public MyInt(int i) { this.i = i; } @Override public boolean equals(Object i) { return (int)i == this.i++; } }
$ javac Main.java $ java Main true
GNU Coreutilsをdockerでビルドする
昨日、GNU Coreutilsをビルドする手順を紹介しましたが、環境を汚したくないのでdocker化しました。
使い方
リポジトリのチェックアウト
$ git clone --recursive https://github.com/kunst1080/docker-build-coreutils $ cd docker-build-coreutils $ ./cleanup-submodule.sh
※./cleanup-submodule.sh
は絶対パスで指定されているサブモジュールのパスを相対パスに再設定するためのスクリプトです。これをやらないと、dockerコンテナ内でビルドできません。
dockerコンテナのビルド
$ ./docker-build.sh
./bootstrap
, ./configure
, make
の実行
$ ./bootstrap.sh $ ./configure.sh $ ./make.sh
リポジトリの coreutils/src
ディレクトリの中にビルド後のバイナリが出来上がって〼
GNU Coreutilsを自分でビルドする
ls
や rm
など、GNU Coreutilsのコマンドを改造したいと思ったことはありませんか?
そういうときは、自分でGNU Coreutilsをビルとする必要があります。やってみましょう。
GNU CoreutilsのソースはGitHubにミラーが上がっているので、それをcloneしてビルドするだけです。
検証環境
- Ubuntu 16.04 LTS
手順
必要なコマンド・ライブラリのインストール
ビルドの際、 ./bootstrap
や ./configure
を実行したときに必要なコマンド・ライブラリがあるかどうかチェックされます。
セットアップ直後の状態で試してみると、以下のコマンド・ライブラリが足りないとメッセージが表示されました。
./bootstrap
時- autoconf
- automake
- autopoint
- bison
- gettext
- git
- gperf
- makeinfo ← パッケージはtexinfo
- patch
- rsync
- xz ← パッケージはxz-utils
./configure
時- gcc
- g++
make
に必要- make
全て合わせて、以下のようなコマンドでインストールしておきます。
$ apt install --no-install-recommends \ autoconf \ automake \ autopoint \ bison \ gettext \ git \ gperf \ texinfo \ patch \ rsync \ xz-utils \ gcc \ g++ \ make
- ※
--no-install-recommends
オプションはお好みで。 - ※こんなに神経質にやらなくても、半分くらいは
apt install build-essential
で入る。
リポジトリの取得
GitHubからcloneします。サブモジュール付きなので注意。
$ git clone --recursive https://github.com/coreutils/coreutils.git
ビルド設定
makeの準備をします。
cloneしたディレクトリに移動して
$ cd coreutils
bootstrap
を叩き
$ ./bootstrap
./configure
します。
$ ./configure
make
全体をビルドする場合
$ make
これで全てのソースがコンパイルされ、 src
ディレクトリに実行可能ファイルが作成されます。
特定のコマンドだけビルドする場合
……はできないよう1で、一度上記の手順で make
する必要があります。
rm
コマンドだけを再度ビルドしたい場合は以下のようにします。
$ make src/rm
必要なソースだけがコンパイルされ、 src
ディレクトリに実行可能ファイルが作成されます。
セルフネグレクト寸前の中年男性が自炊・中食・外食のリアルなコストを比較してみた
限界オタクのみなさまこんにちは。
「自炊と中食と外食と、実際それぞれいくらくらいかかるの?」と日頃疑問に思うことは多いと思います。 ネットで検索してみても、外食のパターンでは朝食まで外食になっていたり、外食費が1500円とかになっていて「いやいや流石にそれはねぇよ…」ってなることが多いのではないでしょうか?
自分は普段から自炊・中食・外食をそれぞれやっているので、ここではその際の数字をもとに各パターンごとの食費を計算し、よりリアルな自炊・中食・外食での食費を示したいと思います。
※記事の最後に表がありますので、結果だけ見たいという方は最後までスクロールしちゃってください。
前提
- 筆者は一人暮らしの中年男性
- 近所に業務用スーパーはなく、ライフで買い物をしています
- 少食
- 酒と煙草はやりません
朝食・昼食・夕食のパターンと食費
朝食
朝食は基本的に、食パンにチーズを載せて食べます。
食パン
- 食パン 1枚: 18円 (6枚切り 108円)
- チーズ 1枚: 26円 (6枚入り 156円)
- 牛乳 200ml: 33円 (900ml 150円)
→ 合計: 77円
昼食
昼食は、外食(コンビニ含む)のパターンと、お弁当を作ってくるパターンがあります。
外食(コンビニ含む)
お店や買うものによって変動しますが、よく食べるものを代表としてざっくり計算します。
- なか卯で食べる場合
- 牛丼ミニ+サラダ・味噌汁セット: 510円
- うどんミニ+サラダ・豚汁セット: 470円
- コンビニで買う場合
- パスタサラダと肉まん: 500円
→ だいたい: 500円
お弁当
- ご飯1食分: 43円 (3kg 1 = 20合 = 46食 2000円)
- 冷凍食品 肉系 * 4: 107円 (6個入り 160円)
- 冷凍食品 野菜 * 2: 53円 (6個入り 160円)
→ 合計: 203円
夕食
夕食は、自炊・中食・外食のパターンがあります。
自炊
調理方法は無視して材料費を出します
- ご飯1食分: 43円 (昼食と同じ)
- 肉: 128円 (100g 160円のものを80g)
- 野菜: 67円 (200円分くらい買って3回に分けて使う)
- 小物: 33円 (納豆/しらす/豆腐/etc)
→ 合計: 271円
中食
お惣菜を2品くらい買って帰ります
- ご飯1食分: 43円 (昼食と同じ)
- メイン惣菜: 216円 (肉とか)
- サブ惣菜: 108円 (野菜とか)
→ 合計: 367円
外食
お昼の外食と同じなので省略
集計
各パターンの食費が出揃いましたので、表にまとめます。
朝パターン | 昼パターン | 夜パターン | 朝食 | 昼食 | 夕食 | 1日 | 1ヶ月 |
---|---|---|---|---|---|---|---|
食パン | 外食 | 外食 | 77 | 500 | 500 | 1,077 | 33,387 |
中食 | 77 | 500 | 367 | 944 | 29,264 | ||
自炊 | 77 | 500 | 271 | 848 | 26,288 | ||
弁当 | 外食 | 77 | 203 | 500 | 780 | 24,180 | |
中食 | 77 | 203 | 367 | 647 | 20,057 | ||
自炊 | 77 | 203 | 271 | 551 | 17,081 |
だいたいこんな感じになりました。 実際はこの他にコーヒーやおやつをかったり、自炊する場合は調味料を買い足したりしてもうちょい増えると思いますが。
生活見直しのご参考になればと。
-
お米は5kgや10kgで買う方が安いが、使いきらないと虫が湧く。自炊のモチベーションが上下しやすいオッサンは3kgが妥当。↩
【雑メモ】CoreOSのDockerコンテナからstartx(成功したとは言いがたい)
環境
- 本体: TOSHIBA dynabook R730 (PR730BAAN3BA51)
- OS: CoreOS Stable
$ uname -a Linux 48a93ce4bbe9 4.14.11-coreos #1 SMP Fri Jan 5 11:00:14 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
メモ
最近、Dockerコンテナから startx
して直接ホストのディスプレイを叩くというやつをやってます。
- GitHub - kunst1080/docker-x11-base: Running X Window System over a Docker.
- GitHub - kunst1080/docker-x11-wm: Running X Window System over a Docker.
- GitHub - kunst1080/docker-desktop: My GUI environment on Docker.
これを使うと、X Window SystemをまるごとDockerコンテナに閉じ込めつつネイティブと同じ(だと思う)パフォーマンスでGUI環境を使うことができます。
※この記事も、その環境上で書いてます。
Ubuntu Server 17.04ではうまくいったのでCoreOSに移行してきたのですが……
どうやらディスプレイをうまく認識してくれないようです。
(デュアルディスプレイにしているが、片方でしか表示できなくなってしまった…)
xrandr
の結果はこんな感じ。
Ubuntuのときは LVDS1
(内蔵モニタ) と HDMI1
(外付けモニタ) が認識されていたのに、CoreOSにすると Screen 0
だけになってしまってエラーも出ている。
$ xrandr xrandr: Failed to get size of gamma for output default Screen 0: minimum 640 x 480, current 1600 x 1200, maximum 1600 x 1200 default connected 1600x1200+0+0 0mm x 0mm 1600x1200 0.00* 1280x1024 0.00 1024x768 0.00 800x600 0.00 640x480 0.00
startxのログに怪しいログが出ていて、intelグラフィックドライバがカーネルに組み込まれてない関係の問題の予感がします。
modprobe: FATAL: Module i915 not found in directory /lib/modules/4.14.11-coreos modprobe: FATAL: Module fbcon not found in directory /lib/modules/4.14.11-coreos intel: waited 2020 ms for i915.ko driver to load modprobe: FATAL: Module i915 not found in directory /lib/modules/4.14.11-coreos
とりあえず状況をメモ。
さてさてここからどうするか……
参考になりそう
夕方追記
……めんどいのでubuntu serverにしよ
— くんすと (@kunst1080) 2018年1月8日
j4-dmenu-desktopのフォントを変更する方法
j4-dmenu-desktopの--dmenu
オプションで、dmenuの起動オプションを指定できるらしい。
たとえば、
- フォント名: MigMix 1P
- フォントサイズ: 12
の場合は以下のように指定するとうまくいった。
j4-dmenu-desktop --dmenu="dmenu -fn 'MigMix 1P-12'"