なかっちゃんtech blog

勉強会とか日々の勉強の記録

YAPC::Japan::Oneline 2022 参加したり回答者で登場しました

ということで

yapcjapan.org

の懇親会、クイズ企画の回答者として参加させていただきました!!

ご飯とお酒が美味しすぎて飲酒コーディングでいい気持ちでコードが書けましたし、youtubeで配信されている緊張もなく(それでいいのか?)ワイワイできました。

僕のコード書けてなさはyoutubeでのちほどアーカイブがでるのでいいとして、Discordで挙げられていたコードをいくつか見ていこうかなと思います~

一問目

gist.github.com

これがわかりやすいなぁと思いながら見ていました。

if ($input =~ /\A(.+?)(\d)) {
// $1= 元号
// $2 = 年
}

これよこれ。ちなみに僕は

@input = split /\A(.+?)(\d)年/ $ARGV[0]
 

的なことがしたかった。あー、これしなくてもいいのかと思い出した。(参加する前にコード書いておけと言われると刺されて死ぬ)

二問目

gist.github.com

なんで飲酒崩壊ライブコーディング中にこれが出てくるんだと思ったw。配信終了後に裏側で解説を聞いて理解できた。すげーまじで。

思ったこと

最初にお声がけ頂いたときはちゃんと書けるかどうかすごく心配だったんですが、書ける書けないよりも、「みんながガヤガヤしながら楽しくコードを書く」っていうのをできたのでいいのかなと思っています。(書けたほうがいい、それはそう)「わかんね~」とか「なんで~」とか言ってるのめちゃくちゃ配信されるんだなぁとか思いつつも、入学式のコンテンツ的にはわからないから落ち込むんじゃなくてヘラヘラしてる姿ってのを見せられてすごくいいということにしておこうと思います。いいイベントだったなぁ。関係者の皆様、いろいろありがとうございました!!!!

お酒とかご飯が美味しかった

最高最高!!!

トーク系の感想は気が向いたら書きます。

久しぶりのYAPCは非常に楽しかったです。 ではでは

LTの説明をするLTスライドを作った

自粛のなか 楽しいことをしたいなって思った.

あと,研究室で週一オンラインミーティングが開催されることになった.

どさくさに紛れてLT文化を根付けないかなということを思いついたので,

今日のミーティングでLTとは?LTをしようと思って資料を作った.

speakerdeck.com

とはいえ,言い出しっぺなので自分のLT資料も作った.

speakerdeck.com

あまりにもB4とお話をする機会が少なすぎる.というわけでお互いをしるようにしたいなって思った.

自粛期間だからいい感じにできるかなって思ってやり始めてみる.

Mac のセットアップについて

この記事は僕個人のMacのセットアップの備忘録と,研究室のB4にむけて「こんなソフト便利だよ!」っていう宣伝です.どこまでするかはおまかせします.とはいえ,高いお金を払ってMacを買ってるので,使いこなせるに越したことはありません.ぜひぜひ,自分だけのMacを作り上げてください.

ちなみに有料ソフトも入れております.僕は気づいたら課金していますが,みなさん,自分のお財布と相談してください.別に課金してって言ってるわけじゃないです.僕が異常なので無視してください.

有料には有料と記載

ちなみに,ちょこちょこした設定は,下記のブログから欲しい物だけ適用したらいいと思います.いらんものはべつにやらなくてもいいので. Macのオススメ初期セットアップ(Mojave) - Qiita

文字入力編

Google日本語入力 or ATOK

Google 日本語入力 – Google ATOK.com | ジャストシステム 有料

好きなものを使えばいいと思っているが,挙げるならこの 2つかなぁ.(ATOK使ったことないけど) 研究室生活では句読点をカンマ,ピリオドに変えるのを忘れずに!

使ってると研究独自のワードもスラスラでるようになります.

Terminal

めちゃめちゃ使います.デフォルトのターミナルよりも良いソフトがあるので,これ入れちゃってください.いろいろ便利です.

iTerm2

iTerm2 - macOS Terminal Replacement

なにが便利かというと,タブとか,画面分割が便利です.まじで神.他にもいろいろな機能があるので,ぜひぜひどうぞ. MacのターミナルアプリはiTerm2で決まり!!オススメの設定と基本的な機能まとめ – Webrandum

ちなみに僕は痛Terminalを作りました.  iTerm2でSSHログイン先別にプロファイルを自動的に切替えて事故防止する方法 | Developers.IO

f:id:kaoru1615:20200405220122p:plain
teminal

Office

研究室生活では不可欠です.大学で入れましょう.

Latex

美文書作成入門付属のインストーラ

最新の版が研究室にあります.見てみてください. 改訂版が出たら先生に言って,買ってもらうことを推奨

日本語でLatexのバイブルと言ってもいい.奥山先生のインストーラーでLatexを入れたら問題はないって基本的に思っていいです.そこら編の無料のLatexとは安心感が違う. PATH: /Applications/TeXLive/Library/texlive/2017/bin/x86_64-darwin

エディター

ここはこだわりましょう.これを使う!っていう感じで一個決めておくとよいです.これからたくさんの文字を打ちます.そのときに自分にあうソフトウェアで効率よくやっていきましょう.以下,おすすめです.

プログラミング

「CotEditor」をMac App Storeで Visual Studio Code – コード エディター | Microsoft Azure

Markdown

「Bear - プライベートメモ」をMac App Storeで 僕はとりあえずこれを入れました.すこし課金するとiPadと同期して作業できるので.

ぶっちゃけ,vscodeとかでもMarkdownかけるので,そっちでもいいと思う.

Latex用エディター

Texpad · Smoothest way to write LaTeX TeXShop - TeX Wiki

Texpadが課金装備です.僕はもう戻れません.無理です. ちなみにMacのデフォルトはTexShopです.まずはTexShopでいいと思う.

Twitterクライアント

いるなら入れてください.僕は夜フクロウを入れてみました.あとはdeckかなぁ

夜フクロウ

「夜フクロウ」をMac App Storeで 極力ブラウザではなくアプリで動かしたい.まあ有名どこだと思うので,使ってる.

Tweetdeck

TweetDeck Windows は多くがこれ使ってるイメージ.僕も夜フクロウが違うなって思ったらこれに戻る感じ.

メール

研究室では,結構な量でメールのやり取りがあります.そして,何よりも,フォルダ分けしましょう.混乱します.

Macの「メール」で受信するメールをルールを使用して管理する - Apple サポート

その他

Onedrive for Business

大学のアドレスはOffice 365なわけですが,もれなくOnedrive が1TBついています.有効活用しましょう. macOS で OneDrive for Business を利用する - らくがきちょう

Alfred(無償版も有料版もある)

Splotlightのようなイメージをしてもらったらいいかなって思う.それの高機能版. 無料版でも十分にやれるかなって思います.もし興味があったら課金したら?って感じです.(僕は来月にでも課金予定です. Alfred - Productivity App for macOS Alfredを使いこなせてない君に!【Alfredの使い方完全版】 - Qiita

Karabiner Elements

Karabiner-Elements キーコンフィグを変えるソフトウェア.Mac日本語配列は優秀な並びしてるからいらんか.

BetterSnap Tools(有料)

Windowsでいう,画面の端にウインドを持ってきたら画面の半分になったり,有料だけど,あるとちょっと便利って感じです.

ウイルス対策ソフト

大学で入れれるウイルスバスターでも,ノートンでもesetでもお好きなものを使ってください.

開発環境の作り方

別途記事を書く.

IPv6 only な環境でUbutnuを使う

IPv6なネットワークで行きていく

IPv4がない,本当に純粋なIPv6環境でインターネットにつなぐことになった際に詰まったことがあったので,それらを書いていきます.

前提

ネットワークに接続するのはUbuntu16.04です.

あとアドレスはRAでふってきますが,上流の都合でDNSの情報はふってきません.あとでGoogleのPublic DNSを設定します.

やること1 DNSの設定

所々の都合でGoogleのPublic DNSを使うことに,アドレスわからんから調べてみるとこんなページが

developers.google.com

おっ あるやんけ,これ使おう. しかもアドレスが 2001:4860:4860::8888 とわかりやすいなーと思った. しかし,その下に何やらあった.

You can configure Google Public DNS addresses for either IPv4 or IPv6 connections, or both. For IPv6-only networks with a NAT64 gateway using the 64:ff9b::/96 prefix, you can use Google Public DNS64 instead of Google Public DNS IPv6 addresses, providing connectivity to IPv4-only services without any other configuration.

ふむ,IPv6 onluならNAT64を使うか,DNS64を使ってくれとのこと.「NAT64ってあれでしょ,v6をv4でどうこうするんでしょ? よくわからん」という状態.寄り道勉強楽しいんだけど,軽く本を読む程度にして,DNS64を使うことにした.

developers.google.com

というわけで,設定は 2001:4860:4860::6464 にしました.

やること2 リポジトリの変更

名前解決もできるようになったので,”次はapt updateだ!”といういつものノリで,コマンド叩いたけどまず "jp.archive.ubuntu.com"と通信できない.

"あれれ?"となったのでレコードの確認

$ dig jp.archive.ubuntu.com AAAA

; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> jp.archive.ubuntu.com AAAA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40735
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;jp.archive.ubuntu.com.     IN  AAAA

;; ANSWER SECTION:
jp.archive.ubuntu.com.  589 IN  CNAME   ubuntutym.u-toyama.ac.jp.
ubuntutym.u-toyama.ac.jp. 7189  IN  CNAME   ubuntutym3.u-toyama.ac.jp.

;; Query time: 18 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sat Jan 26 23:53:10 JST 2019
;; MSG SIZE  rcvd: 113

なるほどなぁ AAAAレコード返ってきてないやん.

ぐぐってみるとこの記事を発見

ayacky.hatenablog.com

jaistのサーバに変更した.

これで全部うまくいくとおもった.

しかし, archive.ubuntulinux.com はどのミラーサーバもIPv4にしか対応していなかった.

んー なかなか厳しいですねぇ

とりあえず,タイムアウトまで待った.

まとめ

普段,使うものなのに,いろいろ詰まった. というわけで,IPv6 Only環境を想定した.各プログラミング言語フレームワークのサイトと,OSのリポジトリ対応状況を調べてみようと思います.

どこかでTLのネタにしよう

# 備忘録

ytooyama.hatenadiary.jp

www.vultr.com

ネットワークとプログラミングの話

この記事は 琉大情報工学科(知能情報コース) Advent Calendar の11日目です.

自己紹介

そこら辺の人も参加していいよということだったので,参加しました.

twittergithubを載せておきますね.

twitter.com

github.com

九州の学生です.

普段はネットワークの研究を主にやってます.あとはバイトでセキュリティと,フロントエンドをやったりしてました.

コミュニティ的なところで行くと,Perl入学式のメンターなどやったりしてます.(あんまいけてないけど)

こんな自称フルスタックエンジニア(笑)な僕が,普段はプログラミングをいっぱいしてであろう皆さん(勝手なイメージ)に少し,ネットワークのお話をしてみたいと思います.

もちろん講義みたいな話ではなく,ネットワークやインフラとプログラミングの調和みたいな話をしたいと思います.

ちなみにこんな流れで書くことになりました.  アナグラくんとはかれこれ2年くらい?の仲になってます??(あんま覚えてないや 3年?

ネットワークを知ると,どんなことがうれしいの?

まずは何が嬉しいかという話をします.

インターネットは今やつながるのが当たり前で社会基盤として存在しています.特に今の大学生の年齢だと,あるのが当たり前だと思います.僕もそうです.

ただ,ちゃんとわかっているかと言われれば,きっとそうではないと思います.

当たり前にあるし,IT=プログラミングみたいな風潮もあり,高校生まででネットワークしたいって人はまあまずいないんじゃないかな.

ただ,ある程度わかると,すごく楽しい.

そして,ニュースになるようなレベルの障害発生時はやることそっちのけで,自分で「普段のネットワークと比べてここがおかしいから,原因はこれか?」みたいなことができます.

大規模な接続障害、Googleが謝罪 「ネットワークの誤設定」原因

これを覚えていますか? 去年の8月に起こったゴタゴタになります.

ツイッターでは「Githubが繋がらないから仕事ができない」や「slackが死んだので仕事できない」みたいなツイートがよく見受けられました.

せっかく仕事できないので,エンジニアらしく原因追求しましょう.

そうすると「ツイッターではOCNが死んでる」という情報を得て終わりなんですが,実際にgithubにパケットを送って経路を確かめたりできます.

原因がわかるとすごい楽しい.まさに世界レベルでのデバック大会.

そんな世界だと僕は思っています.

ちなみに,ネットワークばっかりやるとどのプログラミング言語でweb appを書こうとTCPレベルでは,どの言語も変わらないぜ!!って思ってしまう.

アプリケーション側でどれだけ高速化の処理を行おうと,ネットワークが遅ければ,意味ないしな.

ここからさきはインフラとネットワークと意味を厳密に区別せずに話をします.なのでわかる方には違和感あるかもですが,ご了承ください.

どっちもいるの??

じゃあプログラミングとネットワークをどっちもやるのかという話になります.

実際のところ,どっちもできるひとはかなり少ないです.片方ならプロという方はいっぱいいるのが現状です.

そしてPaaSやSaaS,FaaSの出現でさらにネットワークを意識しなくてもよい機会が多くなっています.

じゃあネットワークわかんなくても,WebサービスをPaaSに乗せればサービス提供できるじゃん!と思うんではないでしょうか.

まあ実際そうなっていってるんじゃないかなぁと思います.

しかし,そんな中,インフラとプログラミングの両方を必要とするような仕事も出てきています.

今日はそんな2刀流な分野の紹介をしたいと思います.

前置きが長くなったけど,ここから本題 2つほどご紹介したいと思います.

Infrastructure as code

これはインフラをコード化する(そのまま)ことを言います.

これによってあるサーバの設定など(IaaSレベル)を冪等性がある状態を,「コード」を通して再現することができます.

これはネットワークというよりは,インフラよりな話にはなります.

しかし,「インフラ+プログラミング」をする分野になっています.

SRE

「Site Reliability Engineering」の略です.

Googleが提唱したシステム管理とサービス運用の方法論になります.

可用性の確保、レイテンシの低減、パフォーマンスの管理、作業の効率化、変更管理、モニタリング、障害対応、キャパシティ管理という管理業務に加えてソフトウェア開発を行う部隊になります.メルカリさんとかもあった気がします.

こちらも「インフラ+プログラミング」です.

まとめ

今,ご紹介したように,時代の進化とともに,なにか一つの分野だけというよりは複数分野を組み合わせた職業も出てきています.

そんなものに少しでも興味を持っていただけば嬉しいです.

ただ,知らないと興味を持つこともないので,この記事が誰かの興味を少しでも広げることができればいいなと思います.

ツイッターとか貼ってるのでよければフォローください.