くんすとの備忘録

IT系技術メモ

移転しました。

15秒後に自動的にリダイレクトします。

「合同勉強会 in 大都会岡山 -2017 Winter-」でシェル芸勉強会をしてきました。

2017/12/23(土)に岡山で行われた「合同勉強会 in 大都会岡山 -2017 Winter-」にて、県外ゲスト枠としてシェル芸のセッション(20分)をしてきました。

gbdaitokai.connpass.com

togetter.com

www.slideshare.net

セッションの様子

今回は岡山の合同勉強会ということもあり、シェル芸人らしき人がまったくいない中のセッションとなりました。

冒頭でアンケートを取ったのですが、参加者約80名のうち「シェル芸」という単語を知っている人がそもそも1/3程度という状況…… が! 解けてる方も数名いらっしゃって、岡山のパワーを感じました。

出題中はみなさん非常に集中されてる様子で、真剣さが伝わってきてました。

開始前は無茶苦茶緊張していたのですが、無事に盛り上がっていただけて安心しました。ありがとうございました!

問題と解答例

スライドにも書いてありますが、ブログの方にも書き写しておきます。よろしければ練習にお使い下さい。

問1: シェル上で計算

問題

次の数字の列を、足し算してください。

$ echo 2 5 9 8 1 3 7 4
2 5 9 8 1 3 7 4

解答例

$ echo 2 5 9 8 1 3 7 4 | tr ' ' '+' | bc
$ echo 2 5 9 8 1 3 7 4 | awk '{for(i=1;i<=NF;i++){a+=$i}}END{print a}'
$ echo 2 5 9 8 1 3 7 4 | tr ' ' '\n' | awk '{a+=$1}END{print a}'

問2: 文字列の変換

問題

「pen-pineapple-apple-pen」を「PenPineappleApplePen」に変換して下さい。

$ echo pen-pineapple-apple-pen
pen-pineapple-apple-pen

解答例

$ echo pen-pineapple-apple-pen | sed -r 's/(^|-)(.)/\U\2/g'
$ echo pen-pineapple-apple-pen | tr '-' '\n' | while read L; do echo -n ${L^}; done; echo

問3: 「大都会岡山へようこそ」問題

問題

$ echo 大都会岡山へようこそ

から、以下のような出力を生成してください。

大都会岡山へようこそ
都会岡山へようこそ大
会岡山へようこそ大都
岡山へようこそ大都会
山へようこそ大都会岡
へようこそ大都会岡山
ようこそ大都会岡山へ
うこそ大都会岡山へよ
こそ大都会岡山へよう
そ大都会岡山へようこ

解答例

$ echo 大都会岡山へようこそ | sed 's/.*/&&&&&&&&&&&/g' | sed -r 's/(.{10})./\1\n/g'
$ echo 大都会岡山へようこそ | sed -r ':a;p;s/(.)(.*)/\2\1/;/^そ/!ba'
$ echo 大都会岡山へようこそ | perl -nle 'print "$_$_\n"x10' | awk '$0=substr($0,NR,10)'

まとめ

  • 岡山の方へ
    • シェル芸勉強会はフルリモートで参加できますので、ぜひ気軽に参加してみてください。
    • 初参加なのにもかかわらず1問でも解けるのは凄いので自慢しまくってください!
  • ハンズオン形式や、Twitterを活用して双方向になるような感じは、やはり新鮮さがあるようです。他の勉強会でもそういうのが増えてくると楽しいかもですねっ!

えっ!? ちょっ!? まじすか……

fcitxで「正しくfcitxに接続できません。」エラーが発生したときの対応

環境

  • ASUS Chromebook Flip C100PA のcrouton環境

現象

  • fcitx-diagnose すると出力結果の中に「正しくfcitxに接続できません。」というメッセージが含まれる。
  • fcitxを起動しようとしても Connection Error が出て起動できない。

原因

dbus-launch コマンドがないことが原因っぽい。

対応

dbus-lanch コマンドをインストールする。 (パッケージは dbus-x11 )

$ sudo apt install dbus-x11

参考URL

rxvt-unicodeでシェルをログイシェルとして起動する方法

環境

  • ASUS Chromebook Flip C100PA のcrouton環境
$ uname -a
Linux localhost 3.14.0 #1 SMP PREEMPT Tue Oct 31 22:00:25 PDT 2017 armv7l armv7l armv7l GNU/Linux
$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

設定

デフォルトの状態ではurxvtはログインシェルとして起動せず、 .profile.bash_profile が読まれない。 ~/.Xdefault に設定を記述することにより、ログインシェルとしてターミナルを起動することができる。

~/.Xdefault

urxvt*loginShell:  true

いじょ。

参考URL

rxvt-unicodeでシェルをログイシェルとして起動する方法

環境

  • ASUS Chromebook Flip C100PA のcrouton環境
$ uname -a
Linux localhost 3.14.0 #1 SMP PREEMPT Tue Oct 31 22:00:25 PDT 2017 armv7l armv7l armv7l GNU/Linux
$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

設定

デフォルトの状態ではurxvtはログインシェルとして起動せず、 .profile.bash_profile が読まれない。 ~/.Xdefault に設定を記述することにより、ログインシェルとしてターミナルを起動することができる。

~/.Xdefault

urxvt*loginShell:  true

いじょ。

参考URL

標準出力を他のターミナルに繋げて遊ぼう

複数のターミナルを開き、tyyを接続して遊びましょう。

あそんだ環境

  • WSL(Ubuntu 16.04.2)

遊ぼう!

※スクリーンショットを撮りやすくするためにtmuxを使っていますが、別ウィンドウにしてもちゃんと遊べます。

1. それぞれのttyの確認

$ tty

f:id:kunst1080:20171101233000p:plain

使用しているttyは

  • 左側: /dev/pts/0
  • 右側: /dev/pts/1

ですねっ♪

2. 左側のターミナルの標準出力を右側のターミナルに接続

$ exec 1> /dev/pts/1

3. なんかコマンド叩いてみます。

$ toilet UNKO

f:id:kunst1080:20171101233017p:plain

流します。

$ clear

f:id:kunst1080:20171101233028p:plain

楽しいですね!(o・∇・o)

終わりだよ~

【走り書き】Chromebook購入したよメモ

ASUSのChromebook「ASUS Chromebook Flip C100PA」(メモリ4GB、USキーボード)を購入しました。 おねだんは34,000ポッキリ!

https://www.amazon.co.jp/gp/product/B016PG6QAK/www.amazon.co.jp

自分のツイート

覚書き

  • 初回起動時に言語を聞かれる。US版を買っても日本語で使える。
  • 初期状態では、ターミナル(chrosh)から shell を打てない。開発者モードをONにする必要がある。
  • 開発者モードをON

設定メモ

トラックパッド

  • スクロールは逆方向

キーボ=ド

  • 「検索」を「ctrl」に
  • 「ctrl」の右を「検索」に
  • 「キーボードの最上段をファクションキーとして使用する」をON

bluetooth

  • デフォルトはONになってる。自分は使ってないので切った。

「第31回シェル芸勉強会 大阪サテライト」レポート

10/07(土)に東京で行われた「jus共催 第31回朝からだと疲れるから午後からでええじゃろシェル芸勉強会」について、今回も大阪でサテライトしました!

イベント情報

東京(本家)

usptomo.doorkeeper.jp

今回も、大阪(私達)と、福岡でサテライト会場がありました。

大阪サテライト

atnd.org

福岡サテライト

atnd.org

大阪サテライトレポート

参加者

今回もさくらインターネット様から会場をお借りしできました。 募集期間が短かったり他のイベントと被ったりで、今回の参加者は8名。初めましての方は1名でした。若者が増えるで、結構うれしかったりしますw
今回は前回の教訓を活かして机を囲んで、相談……とまではいけませんでしたが、難しい問題で少しアイデアを出し合う感じのはできたかなあという感じです。

会場のようす

午後

今回はパズル回ということで、ゴリゴリ系の問題が多かった感じです。

次回、恐ろしいですね……!(wktk

LTのようす

東京

大阪

今回もYoutubeで配信していただけました! 録画はコチラ ↓ 

くんすと(@kunst1080) 「rmコマンドチキンレース!」


以前のサイゼリヤミートアップで話題(https://twitter.com/kunst1080/status/912293867596111872)になった「rmコマンドチキンレース」の解説と実演です!\

いずれ単独イベントやりたいですね。

日柳 光久(@mikkun_jp) さん 「JavaScript製シューティングゲームをフルスクラッチで作ってみた / JavaScript Shooter Game from Scratch」


パフォーマンスなどを考慮して、ピュアJavaScriptでゲームを作りました、というお話でした。

完成品はコチラで遊べます→https://mikkun.github.io/evade-and-destroy/

たいちょー(@xztaityozx_001) さん 「ダブルシンク難読化シェル芸」


読みにくいのか読みにくくないのかよくわからなくなってきます……(発表は超面白かったですw

発表に出てきたツールはコチラです→https://github.com/xztaityozx/shellhuffman

so(@3socha) さん 「サイゼリヤで学ぶシェル芸」


先日のサイゼリヤミートアップで得られた知見ですね。ぼくのPCは、改善前の方のシェル芸でフリーズしかけました。

いるやん(@Iruyan_Zak) さん 「sed 's/.*/sed計算機/'」


sedで計算機を作ってシェル芸の問題を解いたということで、そのソースの解説でした。「sedで計算機を作って」っていう時点で既にヤバイですw

サンプルコードはコチラ→https://wandbox.org/permlink/uF77pCn8QdhpfkcA


その他

LT超募集してます。ジャンルは不問ですのでお気軽に!シェル芸関係なくても大丈夫でっす!

まとめ

上田会長、東京・福岡・大阪の皆様、お疲れ様でした。
さくらインターネット様、今回も会場を使わせていただきましてありがとうございました!

次回もできればまたよろしくお願いします!!