2021年7月25日日曜日

Install SSH Keyがいっぱい使われていた

 以前から公開していたInstall SSH Keyですが、「そういえばGitHubのコード検索を使えばどれくらい使われてるかわかるんじゃね?」と思ったので試しにエゴサしてみました。

2021年7月18日日曜日

1年以上前の記事が急にバズった

2019年の12月に、Qiitaで「AmazonのAPI設計方針(The Bezos Mandate)」という記事を書きました。

元々この記事を書こうと思ったのはJSConf JP 2019のセッション「覚醒するアクセシビリティ」を見たのがきっかけで、このブログでも似たような記事を書きました。

その記事がここ数日で急激にLGTMやらストックやらが増えたのでビックリ。多分インフルエンサー的な人が広めてくれたんじゃないかと思いますが、ありがとうございます。

いい記事なので、みなさんもぜひ読んでください。いい記事といっても、発言者のベゾスと一次記事を書いたスティーブ・イエッジがいいだけなんですけど。

2021年7月11日日曜日

TypeScriptで、中身が同じ別の型を区別する

タイトルを見て「ああ、アレのことね」と思った方。はい、アレです。というかURLでネタバレしてます。

アレを知っている人にとっては別に目新しいネタではないと思いますが、先日教えてもらったのでメモとして残しておきます。

2021年7月4日日曜日

UNIXで~がホームディレクトリーを指す理由

 先日のAPIに関する記事で「Unix系OSではチルダはログイン中のユーザーのホームディレクトリーを指す」と書いたんですが、現在技術顧問をしている会社のインターン生から先日その背景を教えてもらったのでメモ。

ギークおじさんにとっては常識的な話かもしれませんが、二十歳そこらのインターン生が調べて教えてくれたことに感動しました。君が産まれる20年くらい前の話だよ。

2021年6月27日日曜日

Goの値レシーバーの使いどころがわからない

Goでクラスっぽいものを実装するときにレシーバーを使うわけですが、これは値レシーバーとポインターレシーバーの2種類があるそうな。

で、何度調べても値レシーバーの使いどころがわからない

2021年6月20日日曜日

Goでソフトウェア開発するときはsrcディレクトリーを作らないほうがいいのかな

コンパイル方式の言語(TypeScriptとかのトランスパイル方式含む)では、プロジェクトのルートディレクトリーの下にsrcとかsourceのようなディレクトリーを作って、その下にソースコードを置く場合も割とあると思います。

前まではGoで開発するときもこのようなディレクトリー構成にしていたんですが、別の場所にあるファイルを参照するときやライブラリーを開発しているときに、参照元から

import "example.com/package-name/src/file"

と書く必要があって、なんかsrcがジャマだなーと思う今日この頃みなさんどうお過ごしでしょうか。

参照パスにsrcが入るのはなんかモヤっとするので最近ではsrcディレクトリーを作らずにプロジェクトルートにメインとなるファイルを入れています。でもやっぱりソースコードは他のファイル(設定ファイルやらリソースファイルやら)とディレクトリーを分けたいという気分です。

多分これはGo固有の話なので、他のコンパイル方式では普通にsrcディレクトリーの下に放り込んでも問題なさそうです。

  • ソースコードはsrc以下に入れる。srcつきで参照しようが特に気しない。
  • srcディレクトリーは作らずにむき出しで入れる。ビルド結果が別ディレクトリーに出力されれば問題ない。
  • その他。src以下に入れてもsrcをつけずに参照する方法を知っている/使っている。

どれだろう。

2021年6月13日日曜日

Linux版ChromiumでGoogleドキュメントの入力がおかしい

以前「Linux版ChromiumでGoogleスライドの表示がおかしい」という記事を書いて、その後のアップデートで直ったんですが、今度は別の問題が出ました。

GoogleドキュメントやスプレッドシートにIMEで「1文字だけ」入力しようとしても、その文字が入力されずに改行だけされます。2文字以上ならちゃんと入力できますし、1文字でもIMEを無効化して直接入力したり、エディターからコピペすれば問題なく入力できます。例によってFirefoxなら問題ないので、多分Chromium側の問題です。

問題を確認したChromiumのバージョンは 91.0.4472.77 です。これもバージョンアップで直るのかしらん。

2021年6月6日日曜日

REST APIの特殊な場合のエンドポイント案

現在とあるウェブアプリケーションを作っているんですが、REST APIで特殊な条件でリソースを絞り込みたい場合があったので、「こうしたらええんちゃう」という考えをまとめてみました。多分特別あたらしいアイデアでもないです。誰かが似たようなことか、もっといいことをすでに書いていると思います。

一応言っておきますが、これはただの案で正解とは限りません。いろいろ試行錯誤した結果、これが個人的にわかりやすい気がしたというだけです。

REST APIの基本的な設計は理解している前提で書きますので、基本設計が不安な方は適当に調べておいてください。

2021年5月30日日曜日

新宿ダンジョンが梅田ダンジョンより高難度だと思う理由

今回はマジでどうでもいい話です。技術も何も関係ありません。

大阪の梅田駅も東京の新宿駅も日本有数のダンジョンとよく言われています。こういう記事を見ると、梅田が一位だそうです。

でも個人的には何度行っても新宿のほうが難しいようにしか思えないんですよね。東京に7年、関西に10年以上住んでいますが、新宿駅のほうが訪れる機会が少なかったことを差っ引いても新宿のほうが難しいと感じています。

その理由は新宿駅の西側のとある場所。うまく説明できませんが新宿駅に何度か行ったことのある人ならわかるはず。

地下なのに吹き抜けで空が見える場所があるじゃないですか。あそこでいつも地上だと勘違いして感覚が狂います。こいつのせいでまともに新宿を攻略できたためしがない・・・最近やっとこいつのせいだと気づきました。

あと、地上への階段をのぼったところにある陸の孤島(バス停)に何度か迷い込んだ気がする。

2021年5月23日日曜日

Apacheの前にNGINXを置くと負荷が下がる理由

以前、さくらのナレッジにいまさら聞けないNode.jsという記事を投稿しました。そこの「C10K問題の解決方法」という項目に

構成によっては、同じウェブサーバー内でApacheの前段にNGINXを配置するだけで負荷が下がることもあります。

と書いたところ「なんで?」という問い合わせがあったので、ちょっと解説します。

単純に考えるとNGINXのプロセスが走る分負荷が上がりそうな気がしますが、どういうからくりがあるのでしょうか。

2021年5月16日日曜日

Sequelizeでレプリケーション設定をURI指定でやりたい

タイトルまんまです。

Sequelizeでは接続オプションとしてURI形式の文字列を指定できるんですが、この方法だとレプリケーションを使えません。

これをなんとかして使えるようにしたいという話です。

2021年5月9日日曜日

Denoifyというものを教えてもらった

Denoifyという、Node.js向けに書いたソースコードをDenoで動くように変換してくれるツールがあります。もちろんあらゆるコードを100%変換できるわけではありませんが。

このツールの存在を1年ほど前に教えてもらいました。

本 人 か ら 。

2021年5月2日日曜日

LinuxでWiFiがプチプチ切れる

タイトルの通り、LinuxでWiFiが割と頻繁に(数分〜数十分に1回程度)瞬断しています。今に始まった話ではなく、1年近く前からこの問題はありました。

環境を簡単にまとめると、

です。

2021年4月25日日曜日

Linux版ChromiumでGoogleスライドの表示が直った

先日の記事の続報です。

結論だけ言うと、Chromiumのバージョンを最新版の90.0.4430.72に上げたら遡らなくなりました。やっぱりChromiumの問題だったんですかね。

あと、スライドだけでなくドキュメントもちゃんと表示されるようになりました。めでたしめでたし。

2021年4月18日日曜日

Linux版ChromiumでGoogleスライドの表示がおかしい

久しぶりにGoogleスライドでプレゼン用のスライドを作ろうと思ったらわけのわからないことになっていました。

まあまずこれを見てくれや。Googleスライドで新規プレゼンテーションを作成して、Chromiumでそのまま開きました。一切加工はしていません。


単に文字が重なっているだけじゃなくて、化けているようにも見えます。

心なしか

遡るッ!

と言っているようにも見えるのは気のせいでしょうか(※気のせいです)

2021年4月11日日曜日

MySQL Workbench for Gentoo

MySQLのGUIツールとして、公式のMySQL Workbench(以下Workbench)を使っている人も多いと思います。Windows/macOS/Linuxに対応していて、何よりMySQLが公式で出しているという安心感がヤバいです。

そんなWorkbenchは以前まではGentoo Linuxの公式リポジトリーにも用意されていたので愛用していたんですが、公式リポジトリーから削除されてしまいました。Python2.7のサポート終了に伴い、3系列に対応しておらずしばらく更新されていなかったためだそうです。

ある日、Workbenchのバージョン8.0.23でPython3に対応したっぽい情報を仕入れました。しかしGentooの公式リポジトリーは音沙汰なし。仕方ないから自分でebuildファイルを作ってインストールして使っていました。

せっかく作ったんだし公式に導入してもらおうと思って先日pull requestを作ろうと思ったところ、いつの間にか公式に復活していました

公式が復活したならもはやオレオレリポジトリーを作る意味はない、ということでWorkbenchに振り回された数カ月間でした。特にオチはありません。

2021年4月4日日曜日

【朗報】Enpassがマジで落ちなくなった

今までこのブログでも何度か紹介してきたパスワード管理ツールのEnpassですが、Linux版では割と頻繁に落ちる不具合がありました。

以前調べたときはlibcurlの非同期名前解決を有効にするとマシになったんですが、それでも時々落ちていました。

そんなEnpassですが、2月ごろにリリースされた6.6.0で全く落ちなくなりました。今までは起動させた状態でしばらく何か作業をしているといつの間にか落ちていることがあったんですが、今では数日間起動させたままでも落ちません。やったね!

あとは日本語の翻訳がまともになれば完璧です。

ちなみに、一時期iOS版とMac版でDropboxの同期ができなくなる不具合がありました。ちょっと焦った。

2021年3月28日日曜日

Install SSH Key v2.3.0を公開しました

先日「近日中にまたバージョンアップ予定」という意味深な終わり方をしたInstall SSH Keyですが、予告通り新バージョンをリリースしました。

今回の変更点は2つです。

2021年3月21日日曜日

LinuxでPIXELA PIX-MT110を使う

以前LinuxでPIXELA PIX-MT100を使うという記事を書いたんですが、その後継記事です。

PIX-MT100の後継モデルとしてPIX-MT110があります。というより前回の記事を書いた時点ですでにMT110は発売されていました。無知って怖い。

今回のMT110は、MT100と違って公式に3キャリア対応を謳っています。前回の記事で書いたとおり、MT100でも実際は3キャリア使えたんですが、公式で謳っているほうが安心できますよね。

ちなみに今回の記事も前回同様Gentoo Linuxの話です。Ubuntuは多分そのまま動きます。試してませんが。

2021年3月14日日曜日

特定のIPアドレスをもつDockerコンテナを見つけたい

まあタイトルの通りなんですが、悪さをしているDockerコンテナのIPアドレスだけわかっているときにコンテナを特定したいときなんかがあると思います。

「docker IPアドレス コンテナ」で検索すると「特定のDockerコンテナのIPアドレスを調べる方法」は割と出てくるんですが、その逆、つまり「特定のIPドレスを持つDockerコンテナを調べる方法」がなかなか出てきませんでした。

というわけで無駄に頑張った。

2021年3月7日日曜日

Install SSH key action v2.2.0を公開しました

Install SSH Keyを更新しました。

半年ぶりくらいの更新ですが、今回の更新で実用性が上がり、使える幅が広がりました。

2021年2月28日日曜日

Gentoo LinuxでEPSON EP-713Aのスキャナーを使う

先日、プリンターを買い替えました。ネットワーク接続ができてスキャナーつきで手頃な価格のEPSON EP-713Aを選択。まあ今時はネットワーク接続できない機種のほうがめずらしいと思いますが。

WindowsとmacOSではプリンターもスキャナーも特に問題なくセットアップできましたが、Linux(Gentoo)ではスキャナーのセットアップに苦労したのでメモ。プリンターは大丈夫でした。

2021年2月21日日曜日

古いnpmでは --prefix が使えない(かも)

本当にただの推測で申し訳ないんですが、babel-plugin-module-extension-resolverのテスト中にタイトルらしき挙動を見つけました。もしかしたらただの勘違いかもしれませんし、あるいはとっくの昔に周知の事実かもしれません。

かなり試行錯誤したので発生条件を詳しく覚えていないんですが、npm install --prefixで問題が発生した気がします。もうどのバージョンで再現するとか検証するのが面倒なので詳細は省きますが、GitHub Actionsでカレントディレクトリー以外の場所で古いnpmを使う場合には、--prefixではなくworking-directoryを使いましょう。

ただの勘違いだったらごめんなさい。

2021年2月14日日曜日

Drone CIでRedisクラスターを使う

ちょっと前から話題になっている(らしい)オープンソースのCIツールDroneを仕事で使っています。

Goで(単なるRedisサーバーではなく)Redisクラスターを使ったコードをテストするために試行錯誤した奮闘記です。絶対もっとスマートな方法があるはずなので、いい方法を知っていたらご一報を。

2021年2月7日日曜日

恵方くん復活

先週、恵方くんが非公開になるという大悲報がありました。Googleから来たお知らせを読んでいなかったこちらが完全に悪いんですけどね。

あわてて対応して再度申請したところ無事復活しましたが、2月2日の節分には間に合いませんでした。。。

ところで節分の日を計算するロジックを修正した恵方くんをリリースしようと思ったんですが、鍵を紛失してしまって新バージョンをリリースできないという間抜けな状態に陥ってしまいました

さてどうしたものか。。。


2021年1月31日日曜日

またこの時期がやってきました

そろそろ節分ですね。

節分といえば例のアプリです。

恵 方 く ん

今年の恵方くんは一味違うぞ!

2021年1月24日日曜日

GolangのDockerコンテナからRedisクラスター用のスロットを作成しようとしたら"Invalid or out of range slot"というエラーが出た件

ラノベのタイトルみたいになってしまいましたが気のせいです。いい要約が思いつかなかっただけです。

要するに、GolangのDockerコンテナからRedisクラスター用のスロットを作成しようとしたら"Invalid or out of range slot"というエラーが出てしまったわけです。

アホらしいオチなので最初の再現手順だけで原因がわかる人もいるでしょうが、思い込みが激しく解決に丸一日かかったので、未来の自分&他のドジっ子のために残しておきます。

2021年1月17日日曜日

go getでGitHub Enterprise Server上のパッケージを取得したら"connection refused"になる

原因を完全に把握できていないので、タイトルは不正確かもしれません。

イントラネットに構築した(つまり外部からアクセスできない)GitHub Enterprise Server上のGolangパッケージを取得しようとしたら"connection refused"メッセージが出ました。

2021年1月10日日曜日

プログラミングスクール上がりでソフトウェアエンジニアになろうとしている君へ

最近はエンジニア採用関連の業務もちょいちょいやっているんですが、つい最近までプログラミングスクールに通っていたと思われる人からの応募が来ることがあります。

コロナ禍のご時世、リモートワークに向いているソフトウェアエンジニアに注目が集まるのはとてもよく理解できるんですが、現実はそんなに甘くないと思ってください。

あるいは「プログラミングスクールを出ればスキルが身につくしリモートワークできて定時に上がれて給料が高いキラキラホワイト大手IT企業に就職できる🎶」と思っているのかもしれませんが、どちらにしても現実は甘くありません。

今回は、ソフトウェアエンジニア採用時にどういうところを見られているのかを採用する側の視点でお話しします。言いたいことが山ほどあるのでちょい長いです

ちなみに今回の内容は、多くのスクール生が目指すであろうウェブ業界を想定しています。IT業界は色々ありますが、プログラミングスクール上がりで基幹系エンジニアになりたい!という人はあまり多くないと思いますので。そのため、以下の文章では特に断りのない限り「エンジニア」を「ウェブ系のソフトウェアエンジニア(フロントエンド / バックエンド)」という意味で使います。

2021年1月3日日曜日

今年の目標

あけましておめでとうございます。2021年もよろしくおねがいします。

というわけでなんとなく今年の目標を立ててみました。