2019年11月10日日曜日

令和記念手品

突然ですが、令和記念の手品動画をアップロードしました。

2019年11月3日日曜日

Photo Operator

先日、古いノートPCを処分するために中身を確認していたら、当時作っていたクッソ懐かしい画像処理ソフトを見つけました。

そのまま黒歴史としてノートPCとともに闇に葬ってもいいのですが、せっかくなので公開することにしました。

2019年10月27日日曜日

関西Node学園 8時限目に登壇しました

10月25日に関西Node学園 8時限目が開催されたので登壇してきました。

実は今まで東京Node学園への登壇は何度かあるのですが、関西での登壇は初めてだったりします。

2019年10月20日日曜日

BabelとES ModulesとNode.js v12

突然ですが、JavaScriptで↓以下のようなコード↓を考えてみましょう。
for (const x of [1, 2, 3]) {
  console.log(x);
}
これを↓以下のような.babelrcの設定↓で変換してみましょう。
[
  "@babel/preset-env",
  {
    "targets": {
      "node": "8.5.0"
    },
    "useBuiltIns": "usage",
    "corejs": 3,
    "modules": false
  }
]
すると↓こうなります↓。
import "core-js/modules/es.array.iterator";

for (const x of [1, 2, 3]) {
  console.log(x);
}

2019年10月13日日曜日

Node.js v12のES Modules

Node.js v12ではES Modulesの挙動が変わるよ、という話。

2019年10月6日日曜日

Install SSH key action v1.3.0を公開しました

先日公開したGitHub Actionsの神actionInstall SSH Keyの新バージョンを公開しました。

2019年9月29日日曜日

value-schema v2.2.5を公開しました

以前node-adjusterから名称変更したvalue-schemaの最新バージョンがリリースされました。

2019年9月22日日曜日

GitHub Actionsでシェルスクリプトからrsync over SSHしたい

背景はこうです。
  • GitHub上でウェブアプリケーションを開発している
  • GitHub ActionsでCI/CDを設定している
  • 何らかのトリガー(リリースタグの作成等)で、開発環境や本番環境にデプロイしたい
  • デプロイ用シェルスクリプトを自前で用意している
    • シェルスクリプト内でSCPやrsync over SSHなどを実行している
このとき、SSH鍵がGitHub Actions側にないとデプロイができないよね、という話。

2019年9月15日日曜日

粛清しないソート

少し前、ソート業界ではスターリンソートというO(n)のソートではない何かが話題になっていたようです。

繰り返しますが、これはソートではない何かです。

というわけで、O(n)のちゃんとしたソートについて、アルゴリズムの概要と実装例をまとめてみました。

いろいろな制限(主に値の範囲)があるので汎用的なものではありませんが、定義域が特定の値に絞られているという状況はかなりあるので、場合によっては役立つものです。

2019年9月8日日曜日

とあるランサムメール

知人(ITには詳しくない)から「下記のようなメールが先日届きました。ちょっと怖いのだけど、なんだろう?」と相談が来ました。

2019年9月1日日曜日

顧客の要望を聞き入れてはいけない

無駄にキャッチーなタイトルをつけてしまいましたが、先日Yahoo! JAPAN Osakaで開催されたMix Leap Study #49 - ヤフーにおけるものづくり ~ユーザーファーストの極意~で、まさに常日頃考えていたことが発表されていたのでその記録です。

「ユーザーファーストなのに要望を聞き入れるなってどういうこと?」
ごもっとも。以下をお読みください。

ちなみにマーケティングの分野では常識レベルの話なので、「こんなことでドヤ顔するんじゃねーよ」というツッコミは勘弁してください。

2019年8月25日日曜日

i18next-express-middleware v1.8.1がリリースされました

JavaScriptの多言語対応ライブラリi18nextExpress用ミドルウェア、i18next-express-middlewareのv1.8.1がリリースされました。

2019年8月18日日曜日

Gentoo Linux パッケージ修正PRx2

先日、久しぶりにGentoo Linuxにコントリビュートしました。
フォント関連のPullRequestを2つ作成。

1つはSource Han Sans(源ノ角ゴシック)。
パッケージバージョンは1.000と1.004ですが、公式からは数ヶ月前に2.000と2.001がリリースされているのでそれに対応したPullRequestを作成。
誰かが👍をしてくれましたが、まだ取り込まれていません。

1つはIPAモナーフォント
一時配布元のジオシティーズが3月31日に終了したのでインストールできなくなり、ダウンロード先をFreeBSDのミラーに変更したPullRequestを作成。
PullRequestがGentooの流儀に従っていなかったらしく、親切な人が指摘してくれました
その後も丁寧に教えてくれて感謝です。
ちなみにこれもまだ取り込まれていません。
数ヶ月かかることもあるよと言われたので気長に待ちましょう。

2019年8月11日日曜日

KeePassXCの起動時にパスワードを指定する

前回書いたように、パスワード管理にはKeePassXCを使っています。

ただ、今までずっと起動するたびにマスターパスワードを入力していたんですが、それだと毎回だるいので、自動入力できないもんかと調べてみました。

ここで紹介する方法は、Linuxのデスクトップ環境MATEXfce4で確認しています。多分GNOMEでもうごくとおもいます。KDEは知りません。

2019年8月4日日曜日

GitHubでVerifiedマーク

GitHubでこういうマークあるじゃないですか。
ちょっとかっこいいので作ってみることにしました。

2019年7月28日日曜日

ミ♭ファソファシ♭ソファ

先日、難波の某所をフラフラと歩いていたら、思わず (゚Д゚) となる音楽が流れてきました。

ドレミソラシドという歌詞でミ♭ファソファシ♭ソファという音階を歌っていたでござる。

作者は狙っていたのかもしれませんが、違和感がありすぎて曲や歌詞が全く頭に入りませんでした。

ただ移調しているだけならともかく、こういう曲(歌詞)は、ある種の人々は (゚Д゚) という反応をするので気をつけましょう(何を?)

2019年7月21日日曜日

辞書の検索アドオンx2 for Firefox

個人的によく使っている辞書をFirefoxの検索プロバイダーに登録するアドオンを作ってみました。

まだ審査中なので表示できません。審査が終わったら表示されるようになると思います。

2019年7月14日日曜日

多項式の計算アルゴリズム

数学的なプログラムを作っていると、多項式の計算が必要なことがありますよね?
どうやって実装しますか?

あ、ちなみにこれ割と有名なやつなんで、アルゴリズムが好きな人なら大抵知ってるネタです。

2019年7月7日日曜日

ここで難問を出題します。

昔、何かで見た問題を思い出しました。
メンサの入試だったかな。

がんばって解いてみてください。解けたらほめてつかわす。

2019年6月30日日曜日

範囲が重なっているかどうかの判定法

直線上に2つの範囲AとBがあったとき、この2つが少しでも重なっているかどうかを調べたいときってありますよね。ありますよね?

例えば、1:00-2:00のような時間帯の情報があるとして、2つの時間帯AとBが重なっているかどうかを調べたい場合。
Aが1:00-2:00、Bが1:30-2:30だったら重なっている、Bが2:10-2:40なら重なっていない…といった具合です。

重なっている例
       01:00    01:30    02:00    02:30
         |        |        |        |
A        <----------------->        |
B        |        <----------------->
重なっていない例
       01:00    01:30    02:00    02:30
         |        |        |        |
A        <----------------->        |
B        |        |        |  <------->
この「重なっているか否か」を判断する方法について解説します。

これからドヤ顔で解説しますが、別に本邦初公開でも何でもありません。
「そんなもん知っとるわボケ」と思っても優しく見守ってください。

2019年6月23日日曜日

Web APIのパラメーターはキャメルケース?スネークケース?

…という話を先日社内でしました。

https://example.com/api/search?user_id=1
https://example.com/api/search?userId=1

↑どっちを使う?という話です。

個人的には、GET/PUT/POST含めて統一さえされていればどっちでもいいんですが、それで終わってはつまらないのでちょっと語ってみます。

もう一度いいますが、個人的にはぶっちゃけどっちでもいいです

2019年6月16日日曜日

DockerでNode.js + sqlite3の実行環境を作るときの注意

Node.jsで作ったウェブサービスをローカルで動かすためにDocker環境を構築していたときのこと。

サービスを実行したらこんなエラーが出ました。
Error: Please install sqlite3 package manually
いや、ちゃんとpackage.jsondependenciesに入ってるし。

というわけで、今日はこのお話です。

2019年6月9日日曜日

TypeScriptでJSON型情報

先週にひきつづき、今度はJSONで使われるデータの型情報("null"とか"string"とか)を取得してみます。

ほら、ウェブアプリケーションを作るときに使えそうじゃないですか。え?使わない?まあそう言わずに。

2019年6月2日日曜日

TypeScriptでJSON型

ふと、TypeScriptでJSON型というものを作ってみたくなりました。JSONで使われる型のみを集めたやつ。

ほら、ウェブアプリケーションを作るときに使えそうじゃないですか。え?使わない?まあそう言わずに。

2019年5月26日日曜日

アイデアを募集するときは。

組織内で「おまいらのアイデア待ってるぜ!」っていう制度あるじゃないですか。目安箱みたいなやつ。
みなさんの会社でも導入している(していた)かもしれません。

でも、そういう制度ってだいたい失敗するんですよ。
だんだん誰もアイデアを出さなくなって自然消滅というパティーン。

というわけで、前回に引き続き、組織の問題を紐解いていきましょう。

2019年5月19日日曜日

新しい制度を導入するときは。

本日はチームビルティングについて。

規模の大小を問わず、ほとんどの組織には何らかの制度があると思います。
制度を作った人は、がんばって組織や構成員(あなたのこと!)のことを考えているはずです。
でも、その制度に対して「あれ?」と思うことも少なくありません。

そして、実際に制度を運用していく立場になると、なかなかうまくいかないことが多いのも事実です。

これまで失敗から学んだことをつらつらと書きなぐってみます。
制度運用について悩んでいる方はちょっと見てみてください。

2019年5月12日日曜日

令和時代のGo開発

たまにはGoの話題でも。

Goで躓くのはGOPATHと外部モジュールの扱いかなと思ってます。
  • Goのソースは全部GOPATHに入れんとアカンの?
    • プロダクトを複数開発している場合はどうすりゃいいの?
  • 外部モジュールってバージョン指定できないの?
    • 外部モジュールに仕様変更があったらどうすりゃいいの?
今日はこのあたりについて書いてみます。

2019年5月5日日曜日

令和元年+GW

新元号、令和おめでとうございます。「おめでとう」でいいのかわかりませんが。

そして令和最初のゴールデンウィークは10連休。カレンダー通りの10連休の方も、サービス業でほとんど休みが取れなかった方もいるとおもいます。
みなさんいかがお過ごしでしょうか。

…といろいろ無難なことを書いてみましたが、正直ブログのネタがありません

令和のアクセントは「いわ(『明治』と同じ)」なのか「れいわ(『平和』と同じ)」なのかで悩んだり(明確な規定はないようですが、菅義偉内閣官房長官は前者のアクセントで発表されたようです)

実は皇后陛下と誕生日が同じだったり

外に遊びに行こうと思ったら雨が降ってきて、結局予定を取りやめた

どれもブログにするには微妙なネタばかり。

2019年4月28日日曜日

ウェブ屋さんがネット選挙システムを設計してみたよ

先日、知り合いのお医者さんの誕生ぱーりーに行ってきました。
お医者さん6人+ウェブ屋さん(元手品屋さん)というよくわからない構成です。明らかに場違いです。

わりとワイワイやっていたのですが、みんなお医者さんというだけあって医療保険やら選挙やらちょっと真面目な話も入って、そこから今の選挙は非効率だからネットで投票できればいいのにという流れになりました。

ウェブ屋さんとして意見を求められたので、そこで話したことや、ネット選挙システムの難しいところ、自分が設計するならこうする、といったことをまとめてみました。

ちなみに手品屋さんとしての意見は特に求められませんでした。

2019年4月14日日曜日

AWS WAFでハマった話

言わずと知れたクラウドサービスの代表格であるAWSに、AWS WAFというものがあります。
その名の通りWAFのサービスなのですが、これでちょっとハマったことがあるのでここに残しておきます。

2019年4月7日日曜日

手ぶら通勤のススメ

先に言っておきますが、えっちな記事ではありません。
ここ数週間、ほとんど何も持たずに通勤しています。

とても楽なので、みなさんも一度やってみてください。
「いや無理無理」とか言わずに、この記事を読んで試してください。

2019年3月31日日曜日

多倍長整数の基数変換(Karatsuba基数変換法)

前回は多倍長整数の基数変換方法を説明しました。
今回は、もうちょっと高速化できないか考えてみます。

2019年3月24日日曜日

多倍長整数の基数変換(2進数→10進数)

今日は数学のおはなしです。
あらかじめ断っておきますが、数学バリバリの人には何の役にも立ちません。

例えば、2進数の11001を10進数にどうやって変換しますか?

2019年3月17日日曜日

NFSサーバーを立てるときはファイヤーウォールに気をつけよう

タイトルそのまんまです。
サーバーを立てようとしてハマったので備忘録として残しておきます。

2019年3月10日日曜日

2019年3月3日日曜日

タブ+オールマンのすすめ

今回はコーディングスタイルの話です。

2019年2月24日日曜日

ログインが遅くなった

先々週お亡くなりになったPCのストレージを先週SSDに換装して、いざOSのインストール。
メモリが大容量になってストレージも速くなると、やっぱりスピードが全然違いますね。
これが本当に同じマシンかと思うほどです。いや違うんですけど。

ところで、今までなかった問題に直面しました。

2019年2月17日日曜日

スワンプマシン

メインマシンがお亡くなりになって一週間。
マシンを買い換えるかストレージのみ換装するかでしばらく悩みました。

マシンスペック自体に特に不満はなく、メモリも先日4GB→12GBに増設したのでまだ使えます。

ではなぜ悩んでいたかというと、別に難しい理由ではありません。
単にハードウェアに詳しくなく、「買ったものの合わなかったらどうしよう」というだけの話です。

2019年2月10日日曜日

【訃報】メインマシン死亡

タイトルのとおりです。
メインで使っていたHP ProBook 430 G3音を立ててお亡くなりになりました。

2019年2月3日日曜日

毎年恒例のアレ

本日は2月3日。節分です。
節分といえばアレです。アレ。


Get it on Google Play

2019年1月27日日曜日

意外と反響が&新章追加

先日Qiitaに公開した「読みやすいコードを書くために」が意外と好評だったようで、約2週間で500(・∀・)イイネ!!を突破しました👏🎉

2019年1月20日日曜日

MayLily ver2.1.2を公開しました

 分散型ユニークIDジェネレーター、MayLilyの新バージョンを公開しました。

概要とver2.0.0については過去記事を参照。

2019年1月6日日曜日

メモリ増設したよ

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

というわけで、メモリを増設しました。
新年一発目の記事が誰得情報なのはどうかという感じですが、他にこれといったネタもないので。