背景
- ちまたでは
awk
を使って番号を決めてgrub2-
で解決する方法が出回っている
やりかた
$ grubby --info=ALL
でそれっぽいやつを探して grubby --set-default /boot/vmlinuz-4.2.0-1.fc23.x86_64
とかで変更できるようです
awk
を使って番号を決めてgrub2-
で解決する方法が出回っている
$ grubby --info=ALL
でそれっぽいやつを探して grubby --set-default /boot/vmlinuz-4.2.0-1.fc23.x86_64
とかで変更できるようです
/usr/include
が要らなかったので消した
TL;DR
$ clang --sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk
mac osがCatalinaになり、 /usr/include
からついにヘッダファイルが消えた。
(Mojave時はdmgを使うことで移植できたがそれも無くなった)
そのため、 自分でインストールしたCコンパイラを使う場合は、(例えばclangの場合)clangのオプションを使って指定する必要がある。
以前の /usr/include
相当は /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk
以下にあるので、これをパスに加えました。
これでbrewでいれたllvm/clangも動いて便利
という訳でWantedlyのサマーインターンに行っていました。驚くべきことにPerlはメインで動いてないです。
ちょっと前に「本採用の逆求人だと思って行ったらインターンの逆求人だった」サポーターズの逆求人イベントに行ったのですが、そこで id:izumin5210さんとid:yjmkzkさんとお話する機会があり、サーバーサイド側でやっていることが面白そうだったので応募するぞ!!! となりました。応募後は一度リモートで面談をして、そこで決定という感じです。
あの回のサポーターズのイベントにいたid:sosodemonaiくんやid:sathoeku先生もインターンにいたので、なかなかおもしろかったです
golangは書いてないのでなぜOKだったのかはよくわからないですが「おもしろPerl沖縄県民採用」みたいな感はあった
はてななどのインターネットコンテンツをよく見る僕にとっては
などというイメージがありました。
実際に3週間体験してみると、上2つに関しては現在は大丈夫かなぁという気がしています。 意識高そうなのは社風がクレバーに行こうみたいな感じだったので、ビジネスサイドの人などはそう思っているような雰囲気を感じました。とはいえエンジニアとしてやっていきするにはかなり良い環境じゃん...!!という感じを受けました。行ってみると違うね。
エンジニアの皆さんは、なんかこうエンジニアだったので非常に安心しました。おしゃれな人が多かったので「これが白金台か…」となっていました。都会って怖いね。
Wantedlyのインターンは就業形なので人々はよしなにチームにアサインされます。 僕はWantedllyPeopleのバックエンド(サーバーサイド)でエイッとしていました。
Peopleは様々なマイクロサービスで構築されており、主にrailsとgolangが頑張っています。
rails側もちょっと触りましたが、rails側は主にid:sosodemonaiくんが触っており、僕はひたすらgolangの方のあるマイクロサービスに関わっていました。 マイクロサービスは様々なものがあるのですが、僕はpeopleの通知をよしなにするマイクロサービスをエイっとやってバーンとしていました。メインはgolangで、たまにrailsやrubyのライブラリにPRを出すなどの生活をしていた世界観です。あとは社会人必須のスプレッドシートも書きました。
メンターは id:izumin5210さんで、隣の席でHHKBとMagic Trackpadを使い、vimとAlfredを凄まじい勢いで使役していたので「これがプロか....!!」となっていました。
チームには他にid:qnighyさんや@Altechさんもいて、凄まじい人間が多かったです。id:qnighyさんはPRのレビューが「教科書かな...」という感じで書いていて、隣で見ていてすごかったです。よくわからないですが、たまに踊っているらしいです。
なおid:izumin5210さんには、「僕が日に日に(id:anatofuzの)ディスプレイの上の仮面ライダーを増やしていく行為を目撃する」、「プロティンを無限に飲む人と、玄米茶を一日4Lは飲む僕に挟まれる」などの体験を提供することになってしまい、非常に申し訳なく今は思っています....。次からは玄米茶は一日2Lくらいに止めようと....
出社しました pic.twitter.com/qUd7ug55Kq
— 八雲アナグラ (@AnaTofuZ) 2019年8月29日
午前中の業務です pic.twitter.com/ID9Y1DQ0A0
— 八雲アナグラ (@AnaTofuZ) 2019年8月29日
午後の業務です pic.twitter.com/F4rgmpoByb
— 八雲アナグラ (@AnaTofuZ) 2019年8月30日
インターンです pic.twitter.com/UWUuubgqEM
— 八雲アナグラ (@AnaTofuZ) 2019年9月4日
👆これらが近場のセブンで買った仮面ライダーです
基本的に僕はPerlMongerなのでPerlを書きたいのですが、残念ながらWantedlyにはPlackアプリケーションはありませんでした。切ない。
ですが特定のテストでsed的な使われ方をしているのが1件あるらしいので、実質Perl企業でした。
という訳で僕も業務中に git add
しない程度の脱法Perlを着服していました。
トータルで5件くらい書いていましたが、うち1件を書いていたところメンターのid:izumin5210さんに検挙される事案が発生しました。
「こうやって日々メンターの目を盗んでPerlを書いてるわけですね」
— 八雲アナグラ (@AnaTofuZ) 2019年8月30日
ぼく「はい...」
別にRubyとGolangがメインの企業でPerlを書いたからと行って市中引き回しとか、白金台の高級住宅街でピンポンダッシュをさせられるなどの怒られは特に無かったので安心ですね。
個人的にはワンライナーでシュッとPerlを書くと落ち着く感があり非常に心理的に良かったです。 なおPerlを初週は業務中にPerlを書かなかったので、日曜日にPerlのライブラリにPRを送っていました。
初週は「CrazyPerlBoy」とジョジョに出てきそう、もしくは浦沢直樹が風呂敷を広げて回収しなかった漫画のタイトルみたいな呼ばれ方をしていましたが、最終週には「Perl太郎」と呼ばれるに至りました。 やはり本名で呼ばれない。
インターン中は基本的にgolangを書いていました。僕にとってgolangは処理系を多少読んだことがあるのと、Tour Of Goを多少やったことがある程度だったので、ちゃんと書いたのは初めての体験でした。
3週間くらい書いて、3割くらいはPerlに似ているのではないかと気づいたので、実質Perlを書いていました。
とはいえ静的言語を触るのは久々(C言語も静的だけど..!!)なので、「循環参照を起こして破滅」、「ポインタを使うのか実態をいれるのか焦る」、「ひたすら同じインタスタンスを連れ回す」、「エラーチェックを忘れる」、「便利パッケージの存在を知らずすべて気合で実装してしまう」などの破滅ポイントを一通り体験してきました。
作業が「破滅!!!!!!」となると、どこからともなく id:izumin5210 さんがシュッとPRにコメントしたり、ペアプロをしてもらい、最終的にはプロジェクトで使っている処理をある程度ならすっとかけたのでよさみがありました。かなり勉強させていただきました、ありがとうございます。vscodeのペアプロ機能便利ですね。
他にはslackに雑に質問を書いたら皆さんから早く反応していただいて、そういう面でも良かったです。なお社内用語としては、「いい話」「なるほど」「たしかに」などはやはり使われていましたが、頻繁に「かわいそう」というワードも使われていました。
なおwantedly社内の会議室にはだいたいapple tvが置かれていて、人々がシュッと画面をうつしていたのが印象的でした。ただ会議室によっては異常に寒いところや、「なぜか日を追うごとに椅子が増えていく会議室」などがあり、都会って怖いなと思いました。
触れた技術としては名前だけ聞いたことがあった「gRPC」や「gRPC-gateway」、例のマイクロサービスなどをモリモリ触ったので実際にサービスを展開しているコードきっかけに、技術に触れる事ができて非常に面白かったです。
後は個人的にlldbやgdbを使っている影響で、ひたすらdlvを使っていましたが、たまにdlvが使えないケースがあり、そういうケースでもGitHubだけでコードを追ってしまう人々を見て、すごいな...などと思ったりもしていました。僕もそうなりたいですね。
インターン期間中は社の方に取っていただいた渋谷のマンスリーマンションに滞在していました。コインランドリーも徒歩一分だったので非常に便利でした。
毎日山手線で通勤していたのですが、時間を間違えるとそこそこ人がいるので人間って怖い....シムシティしたい....と思っていました。ちなみに初めてiphone walletにいれたSuicaを使ったのですが、非常に便利でした。我々がほしいのはおサイフケータイだったのだ...。
PRがmergeされたら、帰宅ルートの道玄坂HUBに行くのを気持ちとして頑張っていたので、2週目はわりとHUBに行っていた気がする。よくわからないですが3回通ったらメイヤーになりました。どうでもいいですが、朝の渋谷は通勤するリーマンが多いのに夜の渋谷はおもしろ人間が多いですね…。定期的にメルトダウンしている人間と、敗戦処理(リバースしたものを処理する人)を見た気がします。都会怖い...
東京に居たのでPerlコミュニティの人々と飲んだり、ちょうど東京にいたid:kaoru1615くんと飲んだり、id:mackee_wさんにビルコンに連れて行ってもらいました。ありがとうございました。
あとは秋葉原のとらのあなで薄い本を見ていたら沖縄太郎さんとエンカウントし、そのままジャンク品を漁る->メイドバーに連れて行かれる->ラズパイを購入するという謎の行いをしていました。なんだったんだ。
ランチですが、やはり社が白金台なので単価は高めです。 インターン生同士で交流をするイベントで、「白金台のちょっといいランチ」マップを貰ったのですが、行こうとしていた店が休みだったり、単価が2000円スタートだったりと、色々と都会って怖いなという案件がありました。
とはいえ目黒まで行けばある程度は安いのと、日によっては社でまかないランチ(paypayやkyash、クレカなどで払うと食べれる)などがあったので、生存していく事は出来るぞという感じでした。
仕事の進め方ですが、僕はバイト先のid:yasslabと趣味のTwitterの影響で、「とりあえず思考の過程を人々が見れる場所に書いておく」という癖があるので、issueやPRのコメント数が100を超えるものが普通に発生してしまい、wantedllyの僕が見たリポジトリの中では異常な行いをしているものを量産しました。「issueとPRが実質Twitter」と言われました
特に最初のタスクの際は、Golangの先頭が大文字だとコメントを書けというルールを矯正するLinterからの怒られが異常に発生したこともあり、トータルでコメント数が300いって笑顔みたいになっていました。
結果として id:izumin5210さんから、「どこでサポートしたらいいのかわかりやすい」と言われたので良かったかな...と思っています。
一週間目はgolangに慣れてなかったのもあり、不必要にAPIを生やしまくった結果、「使わないから削除しようね...」となり、最終的に定義したinterfaceが満たすべき関数の数が「10 -> 4」くらいに減少したので、YAGNI守っていこうね...となりました。
2週目以降はgolangにも慣れてきたので、色々とエイッとするスピードが多少向上しました。 また社にも慣れてきたので
などと言い出す日もありました。楽しかったですね。
何故かインターンの前にアイコンがプリントされている服を2点発注していたので、それを定期的に着ていったのですが、社内での交流会みたいなタイミングで認識されやすくなるので便利でした。顔写真がアイコンじゃないのでアイコンに自分を近づけると体験として良い。
あとはランチが単価も高ければカロリーも高いので、整腸剤を持参しておいてよかった...という感じです。ハンバーガーとか焼き肉とかが周囲にあるので、午後の業務は整腸剤が無いとぽよぽよしてしまう気がする。
ちなみに水は社にウォーターサーバーがあるのですが、かなり水を飲む太郎なので前半は紅茶、後半は玄米茶をひたすら持っていきました。特に玄米茶は1日3本は買っていたので、白金台のセブンの玄米茶の売上に貢献したと思います。支払いはSuicaでしていました。文明ですね。
まだmergeされてない・別リポジトリのPRもいくつかありますが、mergeされた中ではこんな感じでした。
携わっていたpeopleアプリは最終日の前日にインストールしました。
他にはこんな感じです。
Perl太郎が自首した pic.twitter.com/t38A8r3HWy
— 矢島一樹 / 人生暇つぶし (@yjmkzk) 2019年9月6日
最終日の金曜日がYEPP(Year end pool party)という納会がある関係で、「インターンの打ち上げと修了式を前日の木曜日にするという時空の歪み」を体験しました。
インターンの打ち上げ時では、それぞれのメンターさんから担当の学生に手紙が読み上げられるという感動体験がありましたが、僕だけ「Perl太郎と呼ばれる」というコンテンツがありました。評価としては「楽しそうに仕事している」「スプレッドシートをまとめるなど仕事ができる」「コードを書く筋力がある」と言っていただいた反面、「コンピュータサイエンス的な知識をコードに落とし込むのが弱そう」と言われたので、やっていくぞという気持ちです。
👆はインターンの打ち上げででるいい感じのケーキです。(ちなみに人の写真です) Rubyを食べようとするGopherくんです。 なお、このGopherくんは結果として僕が食べたので、「Perlの人間がgolangを食べるというコンプライアンス的に問題のありそうな行い」をしてしまったので心配。
なお金曜日の最終出社日は、セキュリティカードを返却したにも関わらず、社にキャリーケースを忘れるなどをし、id:izumin5210さんに鍵を開けてもらうなどの行いをしました。生活をちゃんとやっていきたいですね。
人生においては3度目のインターンなのですが、2週間以上のインターンに関しては前科があるので、「3週間最後までいれるかな…」と不安がっていましたが、「スケジュールが合えば延長していく?」と言われたり、無事完走できたりしたので良かったですね。ちょっとは成長したかな....。
あとはインターン中にAWSの例の障害が発生したりしていたので面白かったです。
という訳で皆さんありがとうございました!!!
カンパのご協力ありがとうございました!!!
目標金額を達成していましたので一旦停止致します!!!
皆さんありがとうございました!!!!!!!!!!!!
こんにちは id:anatofuzです。
8月の7-9日の三日間にラドビアのリガでPerlConというPerlの国際カンファレンスが開催されます。
PerlCon 2019 | The European Perl Conference in Riga, Latvia
学生のうちに海外カンファレンスには行ったほうが良いという話を聞いており、 以前YAPC::Tokyoで登壇した「レガシーPerlビルド」をベースにPerlCon用にCfPを書いた結果、プロポーザルが通ったのでリガで登壇する予定です。
ですが、ラドビアへの交通費が予想以上にかかってしまい、行くことは可能ですが、今後の大学生活で利用したい資金(下宿先の家賃、生活費などなど)に支障が出てしまう事が考えられます。アルバイトや奨学金などである程度は貯金がありますが、今度無茶な予算の配分になりそうというのが見込まれます。
完全に個人的な事情で申し訳ないのですが、リガ行きの資金をいくらかカンパにて援助していただけると非常に助かります!
勝手なお願いで恐縮ですが、できればご協力をお願いします。
申し訳ないですが口座振込 or LINE Payでの送金でお願いします。 (kyashなどでは現金化する事が難しく、宿泊費などの支払いで支障をきたす可能性がある為です)
送っていただきたい口座及びLINE Payなどは、個別にお知らせ致しますので、DMかメールなどで連絡をお願いします。
(メールアドレス anatofuz@gmail.com
)
mac osのスクリーンショットは、 defaults write com.apple.screencapture type
のあとに使う形式をいれることで、作成する形式を変換することができます。
なので下のようなシェルスクリプトをzshrcの中に書いておきます。
screenshot-type () { if [ $# -ne 1 ] then echo "require bmp,gif,jpg,pdf,png,tiff" return 1 else defaults write com.apple.screencapture type $1 fi }
これは、入力がbmp, gif, jpg, pdf, png, tiffであることを仮定し、入力をスクリーンショットが出力する形式として設定します。
とはいえ、常にjpgやpdfを想定している通り打つのはできないので、補完も書いておきます。
#compdef screenshot-type function _screenshot-type { _values 'type' 'jpg' 'png' 'pdf' 'bmp' 'gif' 'tiff' }
これを _screenshot-type
などの名前で $fpath
が通っている場所においておきます。
そうすると、zshで screensho-type
と入力してtabを打つと、形式が保管されて便利です
みなさん cdしていますか? 私はしています。
ところで普段からzshを使ってcdをすると、補完とかを使ってそこそこ快適にできますが、それでも「普段使うあのディレクトリにパット移動したい…」 などのケースが出てくると思います。
大体この際に対応は、zshにpecoとfast_cdあたりを組み合わせて行う運用ですが、 この場合は fast_cdが覚えているディレクトリ数が少ないため 頑張って移動しようとしても、候補のディレクトリが4つとかいう悲しい状態になります。
ということで、zshを書いていきましょう。 まずは、移動したディレクトリを覚える設定を書きます
export dirfile="$HOME/.dirfile" function cd { builtin cd "$@" echo $PWD >>| $dirfile }
zshのcdのhookを使えという声もありますが、まずは無難にcdしたら $dirfile
に設定しているファイルに、ディレクトリパスを追記していきます。
ちなみに、このファイルを活用すると、コマンド一発で直前のディレクトリに移動するものを書けます。
function hd { cd $(cat $dirfile | tail -1) }
こうしておくと、複数端末を開いてエイヤする際にかなり便利です。
ちなみに $dirfile
にゴミがたまってきたら、次のコマンドでuniqにします
function dirfileuniq { local new_dirfile=$(cat $dirfile | sort -rn | uniq) echo $new_dirfile >| $dirfile }
はい。そしてディレクトリの移動ですが、どこかの記事で見たpecoの活用術の設定を活用します。
function peco-dir-jmp { which peco z > /dev/null if [ $? -ne 0 ]; then echo "Please install peco and z" return (1) fi local res=$(cat $dirfile | sort -rn | uniq | peco) if [ -n "$res" ]; then BUFFER+="cd $res" zle accept-line else return 1 fi } zle -N peco-dir-jmp bindkey '^[pz' peco-dir-jmp
こうしておくと、 Ctrl-pzでよしなにディレクトリ移動が可能となります。 便利でしたね。現場からは以上です
今まではshでも使えるexportを使っていて
export PATH="$HOME/hoge/bin:$HOME"
なよくあるPATHを通す書き方で書いていましたが、最近はもっぱらzshの構文を利用して
path=("$HOME/hoge/bin" $path)
みたいに書く方法を使っています。 fpathの場合は
fpath=($HOME/hige/bin/ $HOME/.zsh/bin/ $fpath)
みたいに数行に渡って書いています。 特にexportと性能がどうこうはないのですが、なんとなく変数設定している感じが出るので、最近はこれで書いています。