アルパカログ

Webエンジニアでマネージャーな人がプログラミングやマネジメントの話題を中心に書いているブログです。

shell コマンドを任意の引数で実行するxargsの便利な使い方

bashやzshなどのシェルにおいて、xargsコマンドは知ってると便利だけど知らない人にとってはよくわからないコマンドです。このエントリでは、普段私がよく使うxargsコマンドの使い方を紹介します。

過去エントリ加筆修正のお知らせ

過去に書いた3本のエントリを大幅に加筆修正しました。

React FirebaseでGoogleログインを実装する方法(Authentication)

ReactアプリにGoogleログインを実装したいときは、Firebase AuthenticationとFirebase SDKを使うと簡単です。むしろ、Firebase AuthenticationやGCPコンソールでのOAuthクライアントの設定の方でハマりがちかもしれません。このエントリでは、ReactアプリにG…

マネジメント関連エントリ加筆修正のお知らせ

過去に書いたマネジメント関連の下記4本のエントリを大幅に加筆修正しました。

shell 重複を除外する・重複を見つける(uniq)

bashやzshなどのシェルで行の重複を除外したり、重複を見つけるにはuniqコマンド(unique)を使います。

Firebase HostingでReactアプリをデプロイする方法

Firebase Hostingを使うと、Reactアプリを簡単に公開することができます。このエントリでは、Reactアプリが作成済みであることを前提に、Firebase Hostingへのデプロイ方法を紹介します。

shell 連続する整数を作る(seq)

このエントリでは連続する整数を作るシェルのseqコマンドの使い方を紹介します。

リモートワークでも雑談したい!試した2通りの方法のメリット・デメリット

リモートワークになってから、通勤のストレスから解放され、通勤に使っていた時間が自由に使えるようになりました。一方で、リモートワークで失われたものもあります。このエントリでは、リモートワークのチームで試してみた2通りの雑談方法を、それぞれのメ…

Mac キーボードのリピート設定を最速にしよう

Macのキーボード設定では、キーを押しっぱなしにした際のリピートの感度を設定することができます。デフォルトと最速設定では速さが全然違います。最速にするとキビキビ動くので、全然違いますよ。

Google Analytics 任意のURLパラメータをカスタムディメンションに送信する

Google Analyticsにはutm_sourceなど、トラフィックを表すutm_パラメータがあります。しかし、これらを使うとURLパラメータが長くなり、見栄えが悪くなってしまいます。そこで、このエントリでは?f=tのように独自で定義した任意のURLパラメータをカスタムデ…

Git git-completionでコマンドやブランチ名を補完する方法(zsh)

Gitコマンドは普段何度もタイプするので、効率アップのために補完を使うのがおすすめです。このエントリでは、zshでGitのサブコマンドやブランチ名を補完するgit-completionの設定方法を紹介します。

「あいつらは何もわかってない」の危うさ

「あいつらは何もわかってない」こんなセリフを、誰しも一度は言ったことがあるはずだ。でもこの考えは結構危険だ。何が危険なのか、書いてみたいと思う。

AWS 2段AssumeRoleするためのTerraform設定とCLIによる確認方法(ロールの連鎖)

AWSで、例えばあるユーザーからあるロールへAssumeRoleし、さらに別のAWSアカウントのロールへクロスアカウントでAssumeRoleしたいということがあります。このようなケースでは、AssumeRoleを2段で行う必要があります。このエントリでは、2段AssumeRoleする…

Docker ポリシー変更まとめ(2020年11月)

2020年11月1日にDockerのポリシーが変更されます。ポリシーの変更点は2つで、1つは非アクティブなイメージの保持期間、もう1つはイメージのpull回数制限です。このエントリでは、2020年11月1日に変更されるDockerポリシーの要点をまとめます。

小さなチームのマネジメントと組織拡大。あるいは仕事の意義について

私がマネジメントする小さなチームは、これまで何度か組織拡大に向けて試行錯誤してきた。そんなマネージャーの立場から、ともすればチームが無機物になっていくようにも見える組織拡大について、最近考えていることを述べてみたい。

Customer Support Tech Meetup #2 開催レポート

8月27日(木)に、CSの課題をCREが技術で解決するイベント、Customer Support Tech Meetupの第2回を開催しました。事前準備から当日の司会まで関わってみて、イベントの様子をまとめます。このエントリでは、Twitterでの反応を取り上げつつ、当日伝えきれなか…

BUFFALO WSR-A2533DHP3 接続台数によってWi-Fiに繋がらない問題の原因

バッファローのルーター「WSR-A2533DHP3」を使っていて、Wi-Fiに接続している機器がある台数を超えたあたりでインターネットに繋がらなくなるということが起きました。このエントリでは、WSR-A2533DHP3において接続台数によってWi-Fiに繋がらない場合の原因…

Git 図解でわかるコミットのIDと修正(amend)

Gitが初めての人にとって、Gitにおけるコミットを理解するのは少し難しいです。コミットを理解すれば、Pushしたときになぜエラーが起こるのかわかるようになります。このエントリでは図を多用しながら、Gitにおける「コミット」と「コミットの修正」について…

成長とは、主観というレンズを自ら壊すこと

人は誰しも、自身の価値観や過去の経験というレンズを通して物事を見ています。だから、例えば、コップ半分の水を見て「まだ半分ある」と思うか「もう半分しかない」と思うかは人それぞれです。人の成長とは、このレンズを壊してアップデートすることではな…

Elixir DoS脆弱性になり得るAtom枯渇と対策(Atom Exhaustion)

Erlang/Elixirにおいて、Atomを使うことはよくあります。このエントリでは、DoS脆弱性になり得るAtom枯渇(Atom Exhaustion)とその対策について説明します。

心理的安全性はやるべきことをやってから

心理的安全性という言葉が登場してから、この言葉は人や組織のマネジメントの文脈で頻繁に使われるようになった。当時、マネージャーになったばかりだった自分は、「マネジメントとは心理的安全性を高めることと見つけたり!」と思い込み、ひとり突っ走った…

「コーヒー。」と「コーヒーください。」この先生きのこるには

「コーヒー。」と「コーヒーください。」で値段の違うカフェがあります。ユニークでいいですよね、こういうの。でも考えてみたら、差額は何に対してでしょう?たぶん、これと同じことが仕事でも言えるんじゃないかと思って、そんな話をしてみたいと思います。

HTMLに画像データを埋め込む「Data URIスキーム」の使い方

HTMLで画像を表示したいときはタグのsrc属性に画像のソースURLを指定するのが一般的です。しかしData URIスキームを使えば、src属性に画像そのもの(バイナリ)を埋め込むことができます。このエントリでは、Data URIスキームを使ってタグのsrc属性に画像バ…

Qi対応完全ワイヤレスイヤホン「Anker Soundcore Liberty Air 2」レビュー

完全ワイヤレスイヤホンは最近ではデザインや性能、価格帯のいろんなバリエーションから選べるようになってきました。しかし完全ワイヤレスイヤホンの中でも、ワイヤレス充電が可能な商品は実はあまり多くありません。このエントリでは、完全ワイヤレスでQi…

Elixir エラーハンドリング構文try~catchとtry~rescueの違い

エラーハンドリング構文と言えばJavaScriptでは try~catch, Rubyでは begin~rescue, Pythonでは try~except があります。そう、多くの言語でエラーハンドリング構文は1つです。しかしElixirには2種類のエラーハンドリング構文があります(!?)。いったいどんな…

InfluxDB データのダウンサンプリング設定方法(CQ/RP)

時系列データを保存していくと、いつかはストレージがいっぱいになってしまいます。InfluxDBでは、一定期間が過ぎたときにデータの解像度を落として(ダウンサンプリング)保持することができます。このエントリでは、ダウンサンプリングしてデータを保持する…

Nature Remoで家電の操作を自動化する方法

Nature Remoや小型版のNature Remo miniを使えば家電の操作を自動化することができます。例えば「室温が29度になったら自動でエアコンをONにする」や「帰宅前にエアコンをONにする」というようなことです。このエントリでは、エアコンと温度センサーを例に自…

Go言語 配列とスライスの宣言方法(array/slice)

Go言語(Golang)には固定長の配列(array)と、可変長のスライス(slice)があります。このエントリでは配列とスライスの宣言方法についてまとめています。

Googleスプレッドシートで関数の結果を複数行まとめて反映する(ARRAYFORMULA)

GoogleスプレッドシートでVLOOKUP関数など、関数の結果を複数行に渡ってまとめて反映したいことがあります。そこで便利なのが「ARRAYFORMULA関数」です。このエントリでは、関数の結果をまとめて一気に反映する「ARRAYFORMULA関数」の使い方を説明します。

VLOOKUP関数でエラーを非表示にする方法(Excel/Googleスプレッドシート)

Googleスプレッドシートやエクセル(Excel)でVLOOKUP関数を使うことはよくあります。しかしVLOOKUP関数では、検索キーが存在しないとき「#N/A」というエラーになってしまいます。今回は「IFERROR関数」を使って「#N/A」エラーを非表示にする方法を説明します。