職務経歴書を書いて公開した
転職活動しているわけではないけど書いてみたくなったので書いた。書いたものはこちら→職務経歴書
書いた理由
- これまでの経験を振り返って自分の立ち位置を明確にしたかった(たいして長いキャリアでもないが)
- オンライン(TwitterやBlog)で自分を知った人への自己開示
- 自分に興味を持ってもらえると嬉しい
- プロフィールページ的役割
書くときに参考にした情報
書くときに意識したこと
とにかくシンプルにする
少しエモさを含める
- キャリアが浅いと職務経験の列挙だけでは情報不足
- 自分は何ができて、何がしたい人なのか、どんなキャリアを目指しているのか伝わらない
- 自分が大事にしていることや、挑戦したいことも軽く書いておく(自分はあまり採用を強く意識してないので現状実践できてないけど)
- 読んでいる人も退屈しないかも
- キャリアが浅いと職務経験の列挙だけでは情報不足
日本語にする
- Githubで公開するし、意識が高まって英語で書いてみたくもなりがち
- でも実際のところ読者のほとんどは日本語ネイティブだと思うので英語で書く意味がない(英語版もあるに越したことはないと思う)
誰でもアクセス可能であるということ
- 職務経歴書の性質上、分かる人が見れば個人を特定可能なレベルの情報公開になる
- でも、(ある程度内容を選んだ)職務経歴書を公開できないのは何か自分のキャリアに負い目を感じていたりオンライン上の人格と現実の個人を結び付けられると困るような何かをしているからでは?とも思っている
- 直近の職歴の部分を細かく書きすぎると自分の思いもよらないところで迷惑だったりするかもしれないのでそこは注意
技術メモもそうだけど、公開可能な形にアウトプットしておくことで客観的に見れる部分が多くなると思う。アウトプット大事。
Appleサインイン画面で403エラーが発生したのでブラウザのCookieを削除したらエラーが解消した
環境
事象
- サインイン - Apple(日本)にアクセスしたら403エラーが返ってきた
- 403 Forbidden nginx on developer.apple.co… - Apple CommunityによるとCookieを削除すると解消されるらしいので全て削除した
- 削除後に再度アクセスするとエラーが解消されていた
原因
kakasiとnkf
【問題と解答】jus共催 第37回シェル芸bot生きてるかどうか分からないけどシェル芸bot向けシェル芸勉強会 | 上田ブログのQ7を読んでいていて、kakasi
は入力と出力の文字コードを指定できるのかーと思ったので書いた。
環境
nkf
による変換は必要?
kakasi
の利用例をみると下記のようにnkf
を前処理と後処理に使っているものが多いnkf
でEUC-JPに変換した後にkakasi
を通して平仮名に変換しUTF-8に戻して標準出力する場合はこんな感じ
$ echo 漢字 | nkf -e | kakasi -JH | nkf -w かんじ
$ echo 漢字 | kakasi -i utf-8 -JH かんじ
- 出力の文字コードを明示的に指定することもできる
$ echo 漢字 | kakasi -i utf-8 -o jis -JH $+$s$8
kakasi
のオプション
- では
nkf
を使う例が多い(気がする)のはなぜなのか?- オプションがあまり知られていない?
man
コマンドで詳細を確認するKANJI CODING CONVERSIONより
Unfortunately, several coding systems are used in Japan and JIS x0208 standard are changed at 1983. Therefore, KAKASI can automatically distinguish the coding system and coding revision and then use the same output coding system if the document does not include JIS x0201 KATAKANA. If JIS x0201 KATAKANA is included or you wish to change kanji coding system, you may use the next options.
上記によるとJIS x0201のカタカナ(JIS x0208から見た半角カナ)が含まれていない限りは自動的に文字コードの識別が可能とのこと
- しかし自分の環境ではあまり上手く識別されなかった
-
もしも指定されない場合には入力から判断しようとします。 KAKASIは入力をためこんで統計的に処理する方法がとれないので、 最初の漢字らしい文字をもって判断します。
自動的に識別した場合は入力の文字コードで出力する
- もちろん明示的にオプションで入出力の文字コードを指定することも可能
C言語のビルドプロセスから理解する"./configure", "make" ,"make install"
Kakasiのインストールをしていて、 そういえば./configure
, make
,make install
って何しているのかちゃんと分かってないなあと思ったので調べたことをまとめた。
C言語本格入門 ~基礎知識からコンピュータの本質までを参考にさせて頂きました。
前提知識
C言語のソースコードはそのままでは実行できない
[種田元樹 (2018) . C言語本格入門 ~基礎知識からコンピュータの本質まで 技術評論社 図1-7より引用]
ビルドとは何か
C言語の移植性
Cランタイムとlibc
- C言語のソースコードを実行する環境の差異を吸収する
- CランタイムはC言語で書かれたプログラムを実行するための情報を持つファイル
- libcはC言語で書かれたプログラムを実行するためのライブラリ
- 実行ファイル=機械語のファイル+Cランタイム+libc
Q&A
Q. ./configure
すると何が起こるのか?
- 実行環境の情報を元にMakefileを作成する
Q. なぜ ./configure
する必要があるのか?
- C言語の移植性はCランタイムやlibcによって担保されているから
Q. make
すると何が起こるのか?
- ソースコードのビルドが行われる
Q. なぜmake
する必要があるのか?
- ソースコードの実行ファイルを生成しないとプログラムを実行できないから
Q. make install
すると何が起こるのか?
- makeで生成された実行ファイルをインストールする (指定のディレクトリにコピー)
Q. なぜmake install
する必要があるのか?
- 対象の実行ファイルを呼び出しやすくするため
参考
peeコマンドについて混乱したので調べた(シェルスクリプト)
環境
混乱
- 【問題と解答】jus共催 第37回シェル芸bot生きてるかどうか分からないけどシェル芸bot向けシェル芸勉強会 | 上田ブログのQ8の解答を読んでいて混乱した
$ matsuya | pee cat "grep -o ." rev んどうーレカニミ ミニカレーうどん ミ ニ カ レ ー う ど ん
- シェルスクリプトって
pee cat "grep -o ." rev
みたいにコマンドを並べられるんだっけ? - そもそも
pee
を初めて見た。pee
とは?
pee
tee
の出力先がパイプになったコマンド。パイプだからt→pなのかも。
SYNOPSIS pee [--[no-]ignore-sigpipe] [--[no-]ignore-write-errors] [["command"...]]
tee
はこんな感じで引数に複数のファイルを指定できる。
$ echo foo | tee bar.txt baz.txt $ cat bar.txt foo $ cat baz.txt foo
- つまり
pee
も引数として複数のコマンドを指定できる...?
$ echo foo | pee cat cat cat foo foo foo
- おお、やはり。
- ということで最初のワンライナーを見返してみる。これは
pee
の引数のコマンドに共通の標準入力を与えているものなのか。
$ matsuya | pee cat "grep -o ." rev
オプション付きコマンドの場合
"grep -o ."
のダブルクォートはもしかするとコマンドにオプションを付けるときに必要なのかも...?- 試しに下記を実行してみる
$ echo foo | pee cat cat "cat -n" foo foo 1 foo
- 最後の
cat
だけ行番号付きで出力された。 - やっぱりコマンドにオプションを指定するときはダブルクォートで囲ってあげる必要があるということみたい。
- 考えてみれば、シェルスクリプトでは半角スペースが引数の区切りとして解釈されてしまうし仕方ない。
出力順
pee
の引数に指定されたコマンドは先頭から順に終了するとは限らない。- 実際、最初に示した例では
rev
→cat
→"grep -o ."
の順に標準出力に書き込まれている。 - 何度か試すと時々順序が入れ替わる様子が観察できたので固定の出力が得られることは期待できないみたい。
pee
を親とした子プロセスがforkされて個々のコマンドが並行(コンカレント)に実行されているから...だと思う (違っていたらすまん)
xcode-select --installに失敗した
xcode-select --install
に失敗したのでXcode Command Line ToolsをApple公式サイトからダウンロードして解決したというお話。
環境
事象
gsedをsedとして呼び出せるようにしようと思いオプション付きでインストール実行。
$ brew install gnu-sed --with-default-names Error: The following formula gnu-sed cannot be installed as binary package and must be built from source. Install the Command Line Tools: xcode-select --install
なぜか失敗した。このオプションはソースコードのビルドが必要なことがエラーと何か関係していそうではある。
とりあえず指示されたコマンドを実行してみる。
$ xcode-select --install xcode-select: note: install requested for command line developer tools
すると以下の内容のポップアップウィンドウが表示されてダウンロードに失敗した。
xcode このソフトウェアは、現在ソフトウェア・アップデート・サーバから入手できないため、インストールできません。
解決策
- Xcode Command Line ToolsはApple公式サイトからも取得することが出来る。
- More Downloads for Apple Developersで
Command Line Tools
と検索 - 自分の環境のOSとXcodeのバージョンの組み合わせに一致するものを選択してダウンロード後にインストール。
インストール成功後に再度コマンドを実行する。
$ brew install gnu-sed --with-default-names ==> Downloading https://ftp.gnu.org/gnu/sed/sed-4.5.tar.xz ######################################################################## 100.0% ==> ./configure --prefix=/usr/local/Cellar/gnu-sed/4.5 ==> make install 🍺 /usr/local/Cellar/gnu-sed/4.5: 10 files, 528.5KB, built in 2 minutes 18 seconds
今度は成功。めでたい。
原因不明
$ xcode-select --install
が失敗する理由はよく分からない...