Masteries

技術的なことや仕事に関することを書いていきます.

Scrapboxに書かれたテキストをいい感じにMarkdownっぽく変換するスクリプト

Scrapbox, 便利ですよね. 私も愛用しています. そんなScrapboxに書いたテキストを, Markdownっぽく変換したい時があると思います. ...これは普通に需要がありそうですね.

Scrapboxに書かれたテキストをいい感じにはてな記法っぽく変換するスクリプト - Masteries

Scrapbox <=> markdownも欲しい

2019/07/16 20:47
b.hatena.ne.jp

というわけで, こういうスクリプトを書きました:

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;

while (my $line = <STDIN>) {
    $line =~ s/^([\s\t]+)/"\t" x (length($1) - 1) . '- '/e;
    print $line;
}

このコードを, 例えば sb2md みたいな名前で保存しておいて, 後はScrapboxに書かれたテキストを適当にドラッグしてコピーして,

$ pbpaste | sb2md | pbcopy

...とかすれば, Markdownっぽく変換されたものがクリップボードに入っているので, 後はよしなにペーストすることができます. よかったですね.

あわせてよみたい

papix.hatenablog.com

Scrapboxに書かれたテキストをいい感じにはてな記法っぽく変換するスクリプト

Scrapbox, 便利ですよね. 私も愛用しています. そんなScrapboxに書いたテキストを, はてな記法っぽく変換したい時があると思います. ...あるんです.

というわけで, こういうスクリプトを書きました:

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;

while (my $line = <STDIN>) {
    $line =~ s/^([\s\t]+)/'-' x length($1) . ' '/e;
    print $line;
}

このコードを, 例えば sb2htn みたいな名前で保存しておいて, 後はScrapboxに書かれたテキストを適当にドラッグしてコピーして,

$ pbpaste | sb2htn | pbcopy

...とかすれば, はてな記法っぽく変換されたものがクリップボードに入っているので, 後はよしなにペーストすることができます. よかったですね.

余談: 正規表現のeオプション

上のコードのポイントは正規表現のeオプションを使っているところで, これは置換後の文字列をPerlのコードとして解釈して, その実行結果で置換してくれる... という挙動をします.

今回の場合, 正規表現が s/^([\s\t]+)/'-' x length($1) . ' '/e なので, ^([\s\t]+) にマッチしたものについて, '-' x length($1) . ' ' をPerlのコードとして実行した結果で置き換えてくれるわけです.

例えば, $line = ' sample'(sampleの前に半角スペース3つ) なら, $1 = ' '(半角スペース3つ) となるので, length($1) = 3となり, '---'' ' を文字列で結合した '--- 'がマッチした文字列と置き換えられる... ということになります.

という感じで, 正規表現にマッチしたものに対して, 任意のPerlコードを実行出来る正規表現のeオプションはかっなり強力です. 「これ正規表現で書き換えるの難しそうだな...」という時も, eオプションを使えばサクッと実現出来たりするので, 脳の片隅で覚えておくと良いかもしれません.

「人を動かす」を読んだ

いつの事だったか, 誰かが推薦していて買ったものの積み続けていた本を読みました. デール・カーネギーの「人を動かす」です.

人を動かす 新装版

人を動かす 新装版

本書は, 「人を動かす」, 「人に好かれる」, 「人を説得する」, 「人を変える」という観点で, うまく他人と接していくための原則(テクニック)を, 実例を盛り込みながら紹介してくれる本です. 内容としては, 以前読んだ「ハーバード流交渉術」と近しい(補足する)内容が多いように思いました. 読中の感想も似ていて, 突拍子のない内容は一切なく, 素朴というか, 手堅いというか, いろいろな意味で当たり前の事で, だからこそ案外意識出来ず, 日頃実施できていない... そういった原則が並んでいる気がします. 面白かったのは, 本を読みながら, 自分自身のこれまでの振る舞いや, 周囲にいた人たちの振る舞いを思い出すシーンがあって, 「無意識にこういう事していたなあ」とか, 「確かに, こういう振る舞いされると, お互いに, いい感じにやっていけたなあ...」といった気付きがありました. そういう意味での説得力もありましたね.

本書では, 「人を動かす」ためのいろいろな原則が紹介されていますが, その中でも印象深かったのは「誤りを指摘しない」でした. 結構, エンジニアという職種のはしくれとして仕事をしていると, 相手の誤りに気付いた時, そこに真っ直ぐにツッコんで正したくなる事が多いです. エンジニアどうしで会話している時などは, それでコミュニケーションがうまくいく時もありますが, 時と場合によってはそのツッコミによって相手が不快感を持ったり, あるいは警戒心を持ったりして, 結果としてそれ以降のコミュニケーションがうまくいかなくなる... という事も時折ありました. これは反省すべき点ですが, 自分自身も間違いを指摘された結果, 意気地になってしまったという経験は何度かあったりしますし.

そういった時の対応策の1つとして, 本書では(相手が明確に間違っていたとしても),

「恐らく私の間違いでしょう。私はよく間違います。一つ事実をよく考えてみましょう」

といった感じで, 相手と一緒に再考を促し, その結果として相手に対して「誤りを気づく手助けをする」のが良い, という事が書かれています. こういったコミュニケーションは, 正直に言えば面倒と思います. とは言え大事な会議(例えば, 部署間/会社間のリーダーが集まって相談や調整をする会議とか)で, 「それは間違っています!」とまっすぐにツッコミを入れて場の空気を凍りつかせるよりは, こういったアプローチで穏便に推めた方がトータルで良い結果になる, ということはありそうと思いました.

最後に, 本書で少しモヤっとしたところを挙げると, 先に「実例を盛り込みながら」各種の原則を紹介している, と述べました. その例が, 一部かなり出来すぎなものがあって, 「本当にそんなにうまくいくか...?」と思ったりした部分がありました. ...まあ, この辺りは, 本書で紹介されている原則が万事うまく有効に効く, という事はなくて, 原則を意識しながら生活したり, 仕事をしていると, 時折うまく"刺さる"場面があり, それを抜粋したものだ... と捉えると, 「確かにそういう事もありそう」という気持ちになるので, 自分自身そこまでの違和感にはなりませんでした.

今現在の自分自身にも活きる原則も多々ありましたが, 本書で紹介されている原則が本当に活きるのは, 今後自分自身チームを率いたり, あるいは今以上に部署間, 会社間のコミュニケーションをする機会が多くなった時ではないかと想像しています. そういった時に改めて本書を読み, その原則を意識出来ると, 意識しないより, うまい立ち振舞いが出来るようになるのではないかな, と思いました. 一方で, 他者とのコミュニケーションをもっと潤滑にしたい! ...と考えているなら, 「人を動かす」, 「人に好かれる」の辺りをつまみ食いするだけでも, 得るものはあるのではないかと思います.

次は, 「戦略思考コンプリートブック」を読んでいます.

GitHub.comでオーガニゼーションごとにメールの通知先を変更する

GitHub.comは個人のメールアドレスを使って登録しているのですが, この状態で会社のオーガニゼーションに所属し, 業務で利用するプライベートリポジトリで作業をすると, 個人のメールアドレスに業務に関するIssueやPull Requestの通知などがメールで届いてしまって, 「微妙では...?」と思っていました.

その最中, 先のcatatsuyさんのツイートを見て, 「マジで!?」と思ったのでやってみました. 備忘録兼ねて手順も乗せておきます.

メールアドレスの追加

GitHub.comの管理画面のEmailsで, 業務で利用するメールアドレスを登録します.

f:id:papix:20190706134356p:plain

しばらくすると, 確認のメールが送られてくるので, 「Verify email address」しましょう.

f:id:papix:20190706134352p:plain

メールアドレスの設定

続いて, GitHub.comのNotificationsで, 先程設定したメールアドレスを特定のオーガニゼーションの通知先として設定します. ページの下の方に, 「Custom routing」という設定項目があるので, ここで設定ができます.

f:id:papix:20190706134341p:plain

先程登録したメールアドレスを選択してあげればOKです.

f:id:papix:20190706134347p:plain

自分の取扱説明書

先日, 前職の同僚(同期入社)であるところの id:shirakiya とランチする機会がありました. 数年ぶりくらいの再会だったのでアレコレ話していたのですが, その時に次のような会話をしました:

「仕事は大変そうだけれど, まだTwitterでもそんなに荒れていないし, まだまだ大丈夫そうだねぇ」

自分自身, Twitterについてはかなり無意識にツイートしているので, それについて深く分析したり, 考察したり, 振り返ったりすることは, これまでほとんど(一切)ありませんでした. しかし, それを第三者が見ると, 「平和そう」とか, 「何か危険そう...?」というのが, 自然と(勝手に?)見えてくるのかな〜と思いました.

そう考えた時に, 前職での経験なども踏まえて, 自分と会社の関係値を数値化(可視化?)しておいて, 定期的に(ブログのエントリや自分自身のツイートなどを使って)ある程度客観的に評価出来るようにしておくと, 今現在の自分自身の様子を正確に把握し, また伝えることができ, また自分自身の次のアクションを検討する際にも役立つのでは? と思いました. ...というわけで, 「自分の取扱説明書」として, 自分と会社の関係値を5段階で表してみることにしました. 基本的にはレベルが上がれば上がるほど, 転職リスクが指数関数的に高まっていくイメージです.

自分の取扱説明書 ─ 会社との関係値の5段階評価

  • Lv1. 盲目期
  • Lv2. 行動期
  • Lv3. 怠惰期
  • Lv4. 幻滅期
  • Lv5. 転職期

盲目期

入社したばかりだったり, あるいは関心の深い新しいプロジェクトへのアサインが決まったりして, とにかく猪突猛進に, ほぼ100%ポジティブな気持ちでやっていけている時期. 良くも悪くも視野が狭まっていて, そのためかネガティブな要素に気づきにくく, 常にポジティブシンキングになっている時期.

行動期

盲目期における気持ちの高ぶりがある程度落ち着いてきて, また視野が広がった結果として, 社内外のいろいろな関係性, 問題点などが見えるようになってくる時期. 行動期は, このようにして気になってきた点に対して, 積極的に行動を取っていける時期でもある. 問題点を認識したこと(存在すること)に対してはネガティブだが, とはいえまだポジティブな気持ちの方が上回って, アクションを起こすために行動する元気が十分にある時期.

怠惰期

何かしらの要因, 例えば行動期に実施したアクションがうまくいかなかったり, 協力を得ることが出来なくなったりして, ポジティブな気持ちよりもネガティブな気持ちが上回ってしまった時期. 業務は普通にこなすが, 「行動期」のような, プラスアルファのアクションを実施することは極めて少なくなる.

幻滅期

怠惰期がいよいよ極まり, 転職一歩手前だが最後の一歩で踏みとどまっている時期. 業務も徐々に投げやりになっていき, Twitterや, あるいはプライベートの飲み会の場では結構荒れたりしている.

転職期

何かしらの要因でもはや最後の一歩も踏みとどまれず, 転職活動を開始する段階. この段階になると, 逆に社内外での発言や行動が非常に穏やかになる(転職活動中に目立ちたくないため).

考察とまとめ

これを書きながら振り返ってみると, 今の自分はだいたいLv2「行動期」の真ん中に近いところ, 数値にすると2.3〜2.4くらいの位置にいるのかな... と思います. はてなに入社して, HTTPS化など大きな仕事を成し遂げて一息ついて, 更にグレードが上ったりして視野が広がった結果, いろいろな課題や問題点が見えてきて, それについてアクションを始めた時期が今... という認識です. 今後, そのアクションの幾つかがうまく次に繋がっていけば, 程よくポジティブにアクションを続けられる今の状態を継続出来そうですし, 逆にそれが様々な要因で頓挫し続ければ, ネガティブな状態が強くなってLv3の倦怠期に近づいていきそう... かもしれませんね.

個人的な考えではあるのですが, 会社というものは異なる特技, バックグラウンドを持った社員が集まって成り立っていることもあって, 組織の中で大なり小なり, 問題や課題を抱えていて然るべきと思っています(少人数であれば問題や課題も生じにくいでしょうし, 加えて解決も容易なのでしょうが...). ...というよりは, 会社において問題や課題がないということは, 逆に言えばこれ以上改善したり改良したりするポイントがない, ということにも繋がるので, それはそれで逆に望ましくないように思っています.

そういった考えを盛り込むと, 問題や課題を認識し始めるLv2「行動期」という段階は, どんな会社に所属したとしてもいずれは到達することになりそうで, そこから考えるとLv1〜Lv3辺りをふわふわと推移している状態が, 自分にとって精神衛生的に問題なく働けている... という事になるのではないかと思いました. 更に言えば, 課題や問題が見つかった上でそれらに対してポジティブに行動していける, Lv2の前半(つまり, 丁度今くらい)が, トータルで見て一番バリューを発揮できる時期(脂が乗っている, 勢いに乗っている, 的な...?)と言えるかもしれません.

自分自身を客観的に眺める... というのは重要と思いつつ, 難しいし指標も作りにくいものだと思うので, まずはこの指標をうまく使えるか(うまく自分の様子を示すものとして使えるか)... について, 定点観測をしていきたいと思っています.