アルパカログ

Webエンジニア兼マネージャーがプログラミングやマネジメント、読んだ本のまとめを中心に書いてます。

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

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

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」エラーを非表示にする方法を説明します。

もう怒りで疲弊するのはやめよう。自分の感情と上手に付き合う方法

「どうしてこのくらいやってくれないんだ!」これは、こんな風に思ったことがある人に向けて書いた話です。最近ではリモートワークをきっかけに顔を合わせないコミュニケーションが増えて、ついイラッとしてしまうこともあると思います。3つの考え方、(1)期…

第2回Customer Support Tech Meetup イベント開催のお知らせ

前回 好評だった Customer Support Tech Meetup の第2回を開催します! イベント概要は下記 connpass にありますので、興味のある方はぜひご参加ください! mixi.connpass.com 以下、個人的に思う見所など。

GitHub READMEでプロフィールを書く方法

GitHubで自分のアカウント直下 github.com/username に、マークダウン(README)で書いたプロフィールを表示できるようになったみたいです。このエントリでは、GitHubのREADMEにプロフィールを書く方法を紹介します。

Go言語 スライスの初期化と要素追加の注意点

Go言語に限らずポインタが存在する言語では「ポインタなのか?値なのか?」ということに常に気を配る必要があります。さらにスライスになると「中身がポインタなのか?」「容れ物がポインタなのか?」「どちらもポインタなのか?」というように、注意すべき…

ワイヤレス充電器「Anker PowerWave 10 Dual Pad」レビュー

第2世代iPhone SEを含め、最近はワイヤレス充電対応のスマートホンが増えてきています。 「ワイヤレス充電器どれにしようかな?」という方にとって「Anker PowerWave 10 Dual Pad」は1つの選択肢になり得ます。 この記事では、購入したAnkerのワイヤレス(無…

第2回Customer Support Tech Meetup イベント発表企業様募集のお知らせ

以前開催したCustomer Support Tech Meetupの第2回を8月27日(木)に企画しています。 第2回は、第1回から半年経ち、それぞれの取り組みにどんな進捗があったのかということに加え、エンジニアでないCSメンバーが技術を活用している事例もご紹介できればと思っ…

そして、採用は営業である「面接の強化書」まとめ

マネージャーの仕事は育成、評価、採用です。これらのうち私が最も避けてきたのが採用でした。というのも、被育成者、被評価者のような受動的経験を振り返ったときに、一番経験が少なかったのが採用だったからです。今回、経験の少なさをカバーすべく読んだ…

面接なにも分からない人のための「まんがでわかる コンピテンシー面接」まとめ

「まんがでわかる コンピテンシー面接」は面接の基本を学ぶのに最適と言っていい。これを読む前と読んだ後では、面接がまったく違って見えるだろう。このエントリでは、「まんがでわかる コンピテンシー面接」の内容をまとめる。

褒めない・叱らない・教えない「アドラーに学ぶ部下育成の心理学」まとめ

アドラー心理学は、「自己啓発の源流」と呼ばれ(そう言われると胡散臭く感じるが...)、著者によると「人を動かす」や「7つの習慣」には大なり小なりその影響を見つけることができるそうだ。このエントリでは「アドラーに学ぶ部下育成の心理学」の内容をま…

努力の方向を間違えないために「人事の超プロが明かす評価基準」まとめ

会社員も30代に差し掛かると、褒めたり叱ったりしてもらえる機会がぐんと減るなぁと身をもって感じる。人が成長するための「気付き」を得るには、「自分で気付くか」、「人に気付かせてもらうか」の2通りしかない。耳の痛いアドバイスに対しては常にオープン…

プリミティブなデータを扱う際の注意点とステートメント「CODE COMPLETE」まとめ

前回のエントリでは、防御的プログラミング、変数、例外などをまとめた。このエントリでは、「CODE COMPLETE」から数値、浮動小数点数、文字列などプリミティブなデータを扱う際の注意点とステートメントについてまとめる。

防御的プログラミングと例外「CODE COMPLETE」まとめ

前回のエントリでは名付け、継承、凝集度などをまとめた。このエントリでは、「CODE COMPLETE」の防御的プログラミングと例外、変数についてまとめる。

継承はできるだけ避ける。名付けと凝集度「CODE COMPLETE」まとめ

「神は細部に宿る」という言葉があるように、洗練されたコードは細部まで無駄がない。洗練されたコードを書きたい人にとって、「CODE COMPLETE」は古いが色褪せないエッセンスに溢れている。このエントリでは、「CODE COMPLETE」の6章「クラスの作成」と7章…

勉強会「実践クリーンアーキテクチャ」参加レポート

5連休初日に開催されたオンライン勉強会「実践クリーンアーキテクチャ」に参加しました。このエントリでは、個人的に勉強になったポイントをまとめます。

仕事紹介 ミクシィCREで一緒に働いてみませんか?

CRE

CREという言葉は聞き慣れない人もまだまだ多いと思います。しかしここ最近で、CREを設置したり募集したりする企業は増えてきています。このエントリでは、ミクシィCREについてご紹介します。

OpenAPI たった1コマンドでモックサーバー完成!API Sproutの紹介

Web開発の現場では、APIを境界にサーバー側、クライアント側で分担して開発することがよくあります。そんなとき問題になるのが「ダミーのAPIを用意するのが面倒」ということです。このエントリでは、OpenAPI Specから1コマンドでモックAPIサーバーを立ててく…

エンジニア、5人リモート、2週間

完全リモートワークに移行して2週間が経ちました。私のチームはエンジニア5名という小さめのチームですが、割とうまく移行できている気がするので、振り返りを兼ねて取り組んだことなど書いてみたいと思います。

ポケモン剣盾のバトルシミュレーターを自作した

ポケットモンスター シールドを発売以来ずっと遊んでいて、バトルでいろいろ試したいなーと思ったので、2ヶ月くらい可処分時間のほとんどを開発に突っ込んでバトルシミュレーターを自作した。残念ながら、権利まわりがとても怖いのでソースコードやデータは…

Customer Support Tech Meetup 開催レポート

3月25日(水)に、技術を駆使してカスタマーサポートの課題解決事例を紹介する「Customer Support Tech Meetup #1」を開催しました。このエントリでは、発表資料や開催時のツイート、付録資料、ブログをまとめます。

Python デフォルト引数の定義タイミングはハマりやすい

言語を問わず、メソッドの引数にデフォルト値を設定しておく「デフォルト引数」はよく使います。しかしPythonでは、デフォルト引数の定義タイミングはRubyなど他の言語とは異なっており、ハマりポイントとなっています。このエントリでは、Python特有のデフ…

CS課題を技術で解決する「Customer Support Tech Meetup」イベント開催のお知らせ

ミクシィCREがこの1年間、カスタマーサポートの課題にどう向き合い、技術的にアプローチしてきたかを一気にお話しします! mixi.connpass.com 発表概要にもある通り、「CS向け管理ツールのこれから」「AIによる自動分類システム」「人に寄り添ったナレッジ蓄…