surface0 (さーふぇす)

PHP

PHPによるCRC16-CCITTの実装

Redis Clusterのスロット番号を計算する必要があって作ったものです。Redisのドキュメントに掲載されているコードを参考にしました。
Linux

imapsyncでメールをGoogle WorkspaceのGmailから引っ越しする

先日、GoogleWorkspaceのGmailの多数アカウントのメールデータをConoHaのレンタルサーバー『ConoHa WING』に付属するメールサービスへ移行するという作業をしました。その方法について説明します。
AWS

SQSでBoltJS製Slackアプリの3秒ルールの壁を破る

SlackアプリはSlackからのリクエストに対して3秒以内に応答がない場合は、タイムアウト扱いにされるという仕様があります。これが原因でBoltJS+LambdaでハマったのでSQSで解決した件について。
スポンサーリンク
Docker

Docker Swarm上のWebサービスでIPアクセス制限が効かない原因について

Docker Swarm環境においてクライアントIPを参照したいときの注意点。例えばnginxサービスとかでリバースプロキシ側で特定のクライアントIPを除いてBasic認証を掛けたいのにうまくいかない場合など。
インフラ

Route53のヘルスチェッカーのIPを一括抽出する

AWSのRoute53を使ってHTTP(S)によるヘルスチェックする際に、対象ホストがBasic認証とかIP制限してる場合はヘルスチェッカーのIPだけ素通しさせる必要があります。ヘルスチェックは多数のリージョンに存在するヘルスチェッカーからリクエストが飛んできます。そのIPを一括で取得する方法につい...
Windows

『Linux シェルをここに開く』だとなぜか文字色がおかしくなる件について

Windows 10にUbuntu 20.04を導入したらなぜかエクスプローラーのコンテキストメニューから実行できるLinux シェルをここに開くの場合だけターミナルの文字色がおかしくなる件について対処したメモ。
ハードウェア

HP ENVY x360 13z-ay000(2020年モデル)のSSDを換装した

HP(ヒューレットパッカード)の2in1モバイルPCの『ENVY x360 13z-ay000』のSSDを換装する方法をご紹介します。
Scala

Joda DateTimeをBSON ISODate形でMongoDBに登録したい

Joda DateTimeって最近はもうトレンドじゃない?とにもかくにも、今現在進行形で使っていてMongoDBにISODateとして保存したい。けど流石に公式サポートされてる型じゃないんでCan't find a codec for class org.joda.time.DateTime.って怒...
Linux

SSHでChrootした時にlocalhostが解決できなくなる件

タイトル通りです。例えば /etc/ssh/sshd_config で下記のような設定をしたとします。Match User hoge ChrootDirectory /home/hoge ForceCommand internal-sftp AllowTcpForwarding yesこれはhoge...
ハードウェア

Magic-Ben MAG1 WifiモデルのLTE対応化

先月発売された中華UMPCのMagic-Ben MAG1が先日届きました。16GBメモリ、ストレージ512GBのWifi版です。販売開始の時点ではWifiモデルしか無かったのですが、後になってLTE対応版も発表されました。後出しとかうっそだろ・・・と思ってたのですが、どうやらWifi版にも「SIMス...
サービス

NextcloudをConoHaオブジェクトストレージと連携する

Nextcloudはオンラインストレージのオープンソースウェアです。Webブラウザからはもちろん、WebDAVやスマホアプリ、デスクトップアプリから利用できるので、使い勝手はGoogle DriveやDropboxとほぼ同等です。また、アクセス制御や容量の追加が自由にできるので、会社や団体、個人利用...
Scala

無限リストを使ったFizzBuzz

最近Scalaの勉強を始めたので、FizzBuzzを作ってみました。無限リストを利用し、条件式を追加することなくFizzとBuzz以外にも約数と出力文字列のペアを無数に追加することが可能になっています。
Docker

Webアプリをリバースプロキシで束ねる

下記の図のように、ウェブブラウザからのアクセスを一つのNginxコンテナで待ち受け、各種アプリにリバースプロキシする構成を組み立てる例を紹介します。
Docker

Alpineベースの公式PHPイメージにImagickをインストールする

DockerHubにある公式のPHPイメージにImageMagickのPECL拡張であるImagickをインストールしてみます。FPM版PHP7.1でベースはAlpine Linuxのもの(php:7.1-fpm-alpine)を使った例になります。
ハードウェア

Lenovo YOGA 710のSSDを交換した

久々にハードウェアネタです。先日購入したLenovoのYOGA 710のSSDを128GBから240GBに換装したんで、その記録です。
フロントエンド

ParcelでSASSからNodeパッケージをインポートする

最近話題のモジュールバンドラであるParcelを使ってみてます。そこで.scssファイルから、Nodeモジュールのパッケージに入ってる.scssファイルを読み込もうとしたんですが、そのままではnode_modulesディレクトリにパスが通ってないらしく、読み込めませんでした。それについての対処法。/...
CakePHP

実行前の生SQL文を取得する

プレースホルダを使ったSQLは実行後のクエリログを参照すれば実際に流したSQLの全文が取得できますが、実行前はそうもいきません。さて、こういう時どうするかと考えた結果です。CakePHP3.5 & MySQLで確認。
CakePHP

JSONレスポンスで日本語をエンコードをさせない

PHPのjson_encode()関数はデフォルトでマルチバイトUnicode文字を\uXXXXにエンコードします。$values = [ 'message' => 'わけがわからないよ',];echo json_encode($values); // {"message":"\u308f\u305...
JavaScript

jQueryのカスタムイベントをバニラJSで受け取る

jQueryのtrigger()とかで発火するカスタムイベントを、バニラJSでどうやって受け取るのかというやりかたのメモ。(jQuery3.2.1で検証)
C#

面積平均法(平均画素法、AreaAverage)

代表的な縮小向けアルゴリズムの『面積平均法』を紹介します。