Macにインストールしているユーティリティ系のツール

はじめに

個人的に便利だと思うアプリケーション(主にGUI)を列挙していきます. 適宜更新予定です.

使っているアプリ

  • Alfred・・・アプリケーションランチャー
  • BetterTouchTool・・・トラックパッドの設定
  • Karabiner-Elements・・・キーバインドの設定
  • HyperSwitch・・・アプリケーションスイッチャー(若干不安定?)
  • Amethyst・・・タイル型ウィンドウマネージャー(若干不安定?)
  • SwitchKey・・・アプリケーションを切り替えた時に入力ソースを切り替えてくれる
  • Skitch・・・画像編集
  • iTerm2・・・ターミナルエミュレータ

気になっているアプリ

Monterey 12.6 The "git" command requires the command line developer tools.が何回も出てくる

突然The "git" command requires the command line developer tools.と出てくるようになった.

環境

TL;DR;

イムリーに情報があった.

qiita.com

参考文献内のソース forums.unrealengine.com

解決前の状態と解決法

解決前の状態(Installを押して完了しても何回も出てくる)

解決前にgitコマンドを叩いたときの出力.

Backtrace:
  0   -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in DVTFoundation)
  1   _DVTAssertionHandler (in DVTFoundation)
  2   _DVTAssertionFailureHandler (in DVTFoundation)
  3   -[DVTPlugIn plugInManager] (in DVTFoundation)
  4   -[DVTExtension _fireExtensionFaultAssertingOnError:error:] (in DVTFoundation)
  5   __80-[DVTExtension _valueForKey:inParameterData:usingSchema:assertingOnError:error:]_block_invoke (in DVTFoundation)
  6   _dispatch_client_callout (in libdispatch.dylib)
  7   _dispatch_lane_barrier_sync_invoke_and_complete (in libdispatch.dylib)
  8   DVTDispatchBarrierSync (in DVTFoundation)
  9   -[DVTDispatchLock performLockedBlock:] (in DVTFoundation)
 10   -[DVTExtension _valueForKey:inParameterData:usingSchema:assertingOnError:error:] (in DVTFoundation)
 11   -[DVTExtension valueForKey:] (in DVTFoundation)
 12   _IDEInitializeOnePlugInAndPrerequisites (in IDEFoundation)
 13   _IDEInitializePlugIns (in IDEFoundation)
 14   IDEInitialize (in IDEFoundation)
 15   -[Xcode3CommandLineBuildTool run] (in Xcode3Core)
 16   XcodeBuildMain (in libxcodebuildLoader.dylib)
 17   start (in dyld)
sh: line 1:  3561 Abort trap: 6           /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -find git 2> /dev/null
git: error: sh -c '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -find git 2> /dev/null' failed with exit code 34304: (null) (errno=Invalid argument)
xcode-select: Failed to locate 'git', requesting installation of command line developer tools.

解決策として,Qiitaにならって以下を実行した.

$ xcodebuild -runFirstLaunch
Install Started
1%.........20.........40.........60.........80........Install Succeeded

すると,問題なく動いた.

【読了】0ベース思考 スティーヴン・レヴィット (著), スティーヴン・ダブナー (著), 櫻井 祐子

0ベース思考 スティーヴン・レヴィット (著), スティーヴン・ダブナー (著), 櫻井 祐子

読んだ理由

話し合いなどでゼロベースでということも聞く機会が増えてきた気がする. その辺りも踏まえて,事例を知りたかったため.

感想など

知らないと言えることが武器になることがある.

複雑で困難な大問題を簡単な小問題の集合と考えることが有効であることもある. 小問題は意外と誰も手をつけていなかったり,簡単だったりするから. それでいて,大問題を解決するためのキーになることもあるから.

見かけ上(建前)同じような人でも,本質が異なる場合,異なるインセンティブに反応することがある. 仮説や検証から,このような仕組みを作ったり気付けたりする人は,すごいなと思う.

まとめ

結構破天荒な事例が紹介されているので,いくら結果が良くても,現実問題どこまで適用できるかはわからない. しかし,合理的に考え,結果について真摯に受け入れることができる組織なら,このような思考を取り入れることでさらに進化できると思われる.

【読了】やってはいけない50の習慣 (きずな出版)

読んだ要因

久しぶりにブックオフに行って,チラッとみていたら気になった. 一般的に,できる人がしている100選みたいなのが多いなかで,逆にやってはいけないことにフォーカスしているのが目についた.

感想など雑に

気になったワードなどについて述べる. 書籍の中のテーマとは完全に一致しない.

序論

はじめに習慣について述べられている. 確かに,うわべだけで雄弁を語ったところで,実際に行動が伴っていなければ意味がないし, 日々の行動の詰め合わせである習慣がどうなのか,考えることは非常に重要である.

考え方について

自己肯定感 この手の本でありがちな,自己否定しない,マイナスの言葉を使わないなど. 鉄板でありながら,読むたびにハッとするということはできてないということの表れなのかもしれない.

自信は自分でつくる 自信がない人ほど自分を認められない(自己評価が高い)というのは,当てはまることも多そう.

時間術

計画を立てたら一期通貫

一般的には作業の出戻りを防ぐためにもタスク分解などが重要で,見通しを立てることが多い. そもそも全くわからんので,手探りというときはどうすればと思うのだが,多分その辺りの検証も含めて, 計画に盛り込む必要があるとうことなのだろう.

時間の使い方,仕事の仕方

基本的には自分が得意なことするべきことだけをすれば良いということが書いてある.

  • 優先順位をつける
  • 詰め込み過ぎは良くない.
  • 苦手なことは得意な人に任せる
  • 無駄な努力は極力しない
  • 人ではなく数字と戦う

これは,良いと思うが結構抽象的で, - どの優先順位が高いのかわからない - するべき努力とは?

それを考えるのが重要だとは思うが...

最近周りの人がすごいと思う機会が増えてきた

まあ,タイトルの通りなのですが,最近周りの人がすごいです(実際にすごいかどうかは置いておいて,当方が勝手にすごいと思っているだけです).

当方は,工学系の大学にいたということから,世間で言う理系扱いということになっています. ただ,実際問題,理系って言っても論理的な思考が得意というわけでもなく,数字が好きでもない,なんならどちらも苦手と言っても過言ではないような感じの理系とは一体?というような生き方をしてきました.

そんな中で,ご縁があって職業プログラマとして働くことになったのですが,まず周りがすごい. 先輩社員がすごいのは良いとして,同期もすごい...

これまで,今まで井の中の蛙だったんだと痛烈に思い知らされました.

すごいというのは,曖昧な表現なので何がすごいのか列挙します.

  1. 自分らしさを持っている(強み,オリジナリティ)
  2. 要領の良さ(飲み込みが早く,初めてのこともシュッとやる.いつもやってることももちろんシュッとできる)
  3. 正確な記憶力(数字,予定,モジュール,サービス構成,設定など正確に覚えていることで意味があること)
  4. メタ認知力(不明瞭な情報から本質を見抜く)

↑この辺りがすごいと思うことが多いです. メタ認知的ところは,当方も多少なりできると思っていたのですが,本物を見るとレベルが違いました...

全部持ってる人は多分つよつよですし,訓練で何とかなるものなのか怪しいものもあります.

この中で,後天的に身につけやすい順番は,1-> 4-> 2->3 とかでしょうか. すくなからず,せめて1.を身につけないことには,何も始まらないと思います.

当方は怪しさ満点なので,まず自分らしさを追求することを頑張ってみたいです.

次の記事は自分らしさにすると思います.

言語能力の高さと技術の習得速度の関係について

今日,ぼーっと考えていた.強いエンジニアと自分は何が違うのだろうと.

そして,以前Qiitaで読んだ記事のことを思い出していた.

qiita.com

そして,その中でめちゃめちゃ共感したのが, 「読解能力が異常に高い」 です.

私は,まだ実務経験などほぼ皆無の状態ですが,それでも周りの新卒1年目の方でめちゃ強い人がいます. その方は,外国出身ですがまず,日本語がめちゃうまいです.ほぼネイティブなんじゃないかっていうぐらいです. もちろん英語もできます. たいして,当方は母国語である日本語すらあやしく,英語をはじめとする外国語もなかなか身につかないという人です.

ここは,やはり違いが気になります(生まれ持ったスキルで片付けるというのも違う気がします).

一般的に考えて,英語と日本語は100%相互に変換できるとは限りません. しかしながら,それはあくまで文法の違いであるわけで,同じ人類である以上,伝えたいことなどは共通であることがほとんどです. 当方は伝えたいことが英語で出てきません.そう言った中,日本語でこういうことを伝えたいんだけどと,DeepLに投げると,ほとんどの場合そうそうそんな感じとなります.ちょっと待てと,日本語でこういうこと伝えたいんだけどと言ってテキストに起こすのに何分経ってるとなるわけです(←つまり,母国語で伝えたいことがすぐに伝えられてないじゃん).じゃあ,この言語化というところを鍛えれば,英語できるようになるのでは?と仮説を立てることができます.

とりあえず今週の目標は,日本語で良いからとにかく言語化することに注力していきたいと考えます..

ちなみにこれ以外の項目も,確かに感が強いです. - ゴールが明確 - 深堀できる(本質を見抜ける) 的なところ(ちょっとパラフレーズにしてみました)は,強い人あるあるだと思います.

ゴールが不明瞭だと,道中もふらつきかねないですし,自分が進んでいるのかというスピード感も分かりません. なんとなくググって,うわべだけでこうやれば解決できるとかで解決しても,次にちょっと違う例が出てきた時に対応できないかもしれません.

この辺りは,才能で片付けるのではなく,努力である程度カバーできると思います.

記事の最後のほうに書いてありましたが, 頑張っている人は夢中になっている人に勝てないとあります. 実際これは当てはまることが多いと思います.やっぱり,夢中になっている人は,頑張っている人とは違います.

自分はどっちなんだろう,周りが凄すぎて追いつこうと頑張ってる人になっているのではないか?そんな気がしてしまいます. 夢中になるためには,何が必要なのかもう一度考え直したいそんな今日この頃です.

今後の目標

読解力向上

  • 上の記事でも書かれてますが,ドキュメントやログなどをちゃんと読む(当方は,よく,たくさん文字があって思考停止しがち).
  • 別の記事だとインプットの深さと紹介されてる いわゆる強いエンジニアは何が強いのか - Qiita
  • 1 から10まで読んでも別に良いと思うが,要点を逃さず拾う能力を上げていきたい

アウトプットの仕方について

ブログを何のために書くのか,何をどのように書くのかがまとめられている. 2019年のスライドだが,2022年現在でも非常に役に立つ.

www.slideshare.net

私は言語化能力も含めて,まだまだである.世間では,知識を詰め込んでアウトプットしない便秘状態と呼ばれるらしい状態に私は陥っていると感じている. 本書く人ってめちゃ凄すぎない?って思うような感じです.私なら,10年ぐらいかかって,内容が薄っぺらい本を出しかねないなと思ってます.

このスライドの内容も含めて,改めてブログを書く意味について考えてみる.

  • 言語化能力の向上
  • 業務だと会話だけでなく,チャットなどのテキストベースでのやりとりも増える.この時,最短で必要な事項を伝える必要がある.私の場合は,会話だとうまくいくんだが,いざチャットでやりとりしようと思うと難しいんだよねという状態がある.振り返ると会話であれば,多少変なことを言ってもすぐに,フィードバックがあり(何のこと?とか聞き直される),コミュニケーションは進んでいく.たいして,テキストベースになるとこのフィードバックがワンテンポ遅れる事になり,とたんにうまくコミュニケーションがとれなくなる.これは,テキストだとうまくコミュニケーション取れないというわけではなく,分かりずらいだけで単純に会話でもうまくいっていないことが示唆される.この辺り言語によるコミュニケーション時に,起承転結,主語述語の捩れなどを考え,よりスマートに伝えていく必要がある. その練習も兼ねている.この文章も,既に読み返すと酷いことになっている.
  • タイピング練習
  • これは,単純にタイピングの練習である.世の中には,タイピングゲームなどが存在しているがやはり普段入力するテキストとは少なからず異なる.また,文章を考えながら入力を行うというのは,普通のタイピングゲームではないと思われる.そのため,ブログを書くというのは,より現場に近い感覚が得られると考えられる.

後半は本当にタイピング練習になっている.