このすみノート

Webエンジニアが技術や趣味を書くブログです。

2020-01-01から1年間の記事一覧

MojaveのSafari 14で、input type="file"のアップロードボタンが反応しない件

macOS MojaveのSafari 14にて、<input type="file" ~~>ボタンが反応しないケースに遭遇しました。 なぜ発生するのか? 調査した限りでは、Safari 14におけるバグのようです。 Safari 14.0.1 File Selection button not working I have a standard web form which has a file select…

Wi-Fiのチャネル設定を変えたら電子レンジの干渉が減り、無線LANの通信が改善した

Wi-Fiには大きくわけて5GHz帯と2.4GHz帯があるのですが、我が家は一部の通信機器が5GHz帯に対応していないという事情があり、2.4GHz帯を使用しています。 ただ、自宅の光回線差込口がキッチン付近にあることも相まって、長らく電子レンジ使用時のWi-Fiノイズ…

正規表現における括弧の3つの役割

現在は「詳説 正規表現」を読んでいる途中なのですが、その中で気になっているのが括弧です。 正規表現における括弧では、主に3つの役割があります。 選択(|で連結すれば、正規表現の中で「または」を表現できる) グループ化(量指定子の繰り返し指定を、…

ノーブレークスペース、正規表現の先読みと後読みなど - 今週のトピックと覚えたこと

ノーブレークスペース 正規表現の先読みと後読み あなたのPCデスクが見てみたい 技術書典の「刺され!技術書アワード」 さいごに ノーブレークスペース コンピュータには、ノーブレークスペースという種類のスペースがあるらしい。 コンピュータにおいて、ノ…

Linuxの初期RAMディスクについて

Liuxが起動するまでの流れは、ざっくり次のような流れになっています。 電源投入 BIOS/UEFIの起動 ブートローダ(GRUB,GRUB2..) カーネル(vmlinuz)とinitramfs(初期RAMディスク)の読み込み カーネルの実行 initramfs(初期RAMディスク)の実行 initの実…

『Failed to get D-Bus connection: Operation not permitted』で、CentOS 7のdockerでPostgreSQLの起動が失敗した件

さきほどの話ですが、PostgreSQLのコマンドを確認したかったので、PostgreSQLをインストールしました。 ちょうどLinuxコマンドの動作確認用に、手元でCent OS 7のDockerを起動していたので、そこにインストールして起動します。 イメージとしては、こんな感…

PostgreSQLのXID周回問について学んだ

PostgreSQLの勉強をしているのですが、XID周回問題について知りました。 どのような問題か気になり調査したので、その際の技術メモです。 ちなみに、『詳解PostgreSQL[10/11対応]―現場で役立つ新機能と実践知識』というgihyo.jpの特集記事が、わかりやすか…

OSS-DB Silverが、PostgreSQLの学習に良さそうだと気づいた

新しい技術書を探そうと思って、本屋をさまよっていたのですが、たまたまOSS-DB Silverの問題集に気づきました。 RDBMSとSQLの基本知識は有しているつもりだったので、試しに立ち読みで問題集を数問解いてみたのですが、意外と発見もありそうだったので購入…

Linuxコマンドにおけるmoreとlessの違い

moreとlessは、どちらもLinuxにおいてファイルの中身を表示(確認)するコマンドです。 今までは、違いを意識することはなかったのですが、たまたまLPICの問題で出たので調べました。 moreとlessの違い 末尾まで行くと自動的にプロンプトへ戻るのがmore、戻…

自己組織化によるチームの自律的な成長を目指そう - エラスティックリーダーシップ

「エラスティックリーダーシップ(ELASTIC LEADERSHIP) - 自己組織化チームの育て方」は、IT系の専門書で有名なO'Reillyより出版された、リーダーシップをテーマにした書籍です。 エラスティックリーダーシップ ―自己組織化チームの育て方作者:Roy Osherove発…

はてなブログの独自ドメインは、名前解決やHTTPS化をどのような技術で実現しているのか

私が今書いているブログは、はてなブログの独自ドメインを採用しています。 本ブログのドメインは、『www.konosumi.net』です。 何気なく使っているはてなブログの独自ドメインですが、内部的な仕組みが少し気になったので、調査ついでに概要をまとめてみま…

プログラマーのためのコンピュータ入門が、コンピュータ周辺の基礎知識を身につけるのに良かったので、全力でオススメしたい

秋葉原の書泉ブックタワーに寄ったときに、たまたま見かけた『プログラマーのためのコンピュータ入門』が気になり、購入しました。 プログラマーのためのコンピュータ入門: 内部ではどう動いているか作者:Lepton発売日: 2020/06/15メディア: 単行本 帰宅後さ…

家にaiboがやってきたので、aiboプラグラミングでは何ができるのか調べてみた

我が家にaiboがやってきました。 コロナ禍で家にいることが非常に多く、人と会うことも少ないため、我が家ではコミュニケーション不足の解消に役立ってます。 普通にaiboと触れ合うだけでも満足はしているのですが、aiboにはデベロッパープログラムがあり、A…

ローマ字の『づ』は『DU』ではなく、ヘボン式や訓令式で『ZU』と書くのが一般的らしい

ソーシャルゲームのハンドル名を変更して、ローマ字にしようと思い立ちました。 実はそのハンドル名には、『づ』が含まれています。 『づ』というのは迷いものでして、ローマ字では複数の書き方があります。 当初、パソコンにおける『づ』の入力は『DU』なの…

Visual Studio CodeからVSCodiumにエディタを乗り換えてみた

エディタとしてメジャーなVisual Studio Codeですが、長らく愛用しており、このブログもVisual Studio Codeで書いてます。 viのプラグインを入れるとvimmerの私でも使えるため、満足感は高いです。 とくにエディタを乗り換える予定はなかったのですが、ふとV…

機械学習を演習するために、DockerでJupyter Notebookを起動するまで - 技術メモ

お妃様シリーズの「Pythonで機械学習入門」を本格的に読み始めたので、さっそく環境構築から始めました。 Pythonで機械学習入門: 深層学習から敵対的生成ネットワークまで作者:真之, 大関発売日: 2019/05/31メディア: 単行本 本書ではAnacondaをインストール…

若手開発者を育成するための、リメイクという選択肢・日本ファルコム - ゲームの企画書3

『ゲームの企画書3』を読みました。 すべての章が面白かったですが、『ワニワニパニック』『パワプロ』『みんゴル』など誰もが知っているゲームが並ぶなか、私が特に興味を抱いたのは日本ファルコム(イース、英雄伝説など)です。 ゲームの企画書(3) 「ゲー…

C++でint型同士の演算結果をlong longで受け取っても、オーバーフローで正しい値にならない場合がある - ABC 162 D - RGB Triplets

緊急事態宣言に伴う自粛期間中なので、昨日は家にこもってAtCoder(競技プログラミング)の過去問を練習していました。 昨日は「ABC 162 D - RGB Triplets」を解いていたのですが、なぜかtestcase_17とtestcase_18だけACにならず、長時間悩みました。 結論から…

PerlのHTML::TagParserを使ったHTML解析

前回の記事に引き続きPerlです。 今回はURLから取得したHTMLのパースを行いました。 www.konosumi.net Perlの開発環境準備 まずは開発環境を準備します。 「-it /bin/bash」で、起動したDockerコンテナーの中に入ります。 docker run -v $(pwd):/work -it --…

Perlを復習しながら、HTTP(S)クライアントとJSONパースからのCSVファイル出力を書いた

「退屈なことはPythonにやらせよう」的な作業があったのですが、せっかくなのでPerlでやることにしました。 なぜPerlを選んだのかと言うと、しばらくPerlから遠ざかっていたこともあり、久しぶりに書きたくなったからです。 やりたいことはWeb APIからJSONを…

PHP中級者を目指すを書くための情報収集とYYPHPの活用

本記事は技術書典5が開催された2018年に書いたため、少し古い可能性があります。 技術書典5で「PHP中級者を目指す 〜言語を使いこなすための本〜」を書いた「このすみ」と申します。 執筆こそ1人で黙々と書いたものの、途中でYYPHPも活用しつつ本書は完成ま…

漸進的型付けというプログラミング言語

世の中には、静的型付けと動的型付けのプログラミング言語の他に、漸進的型付けというプログラミング言語があります。 オライリーの『プログラミングTypeScript』を読んでいたら登場したので、記事にしてみることにしました。 静的型付けのプログラミング言…

MySQLのWHERE狙いのキー(インデックス)と、ORDER BY狙いのキーによるSQLの高速化

少し昔の話ですが、『YAPC::Asia Tokyo 2014』のイベントに参加したとき、『Where狙いのキー、order by狙いのキー』という発表を聞きました。 当時の私はデータベースのインデックスについての知識が皆無だったので、発表を聞いた際は衝撃を受けたことを覚え…

MySQLやPostgreSQLにおけるNULLは、不明な値であり計算に使うと結果がNULLになってしまうことがある

私はプログラミング言語におけるNULLは、「何もない値」または「何も示していない値」という定義で理解しています。 ところがSQLにおけるNULLでは、この単純な理解が通用しないことを知りました。 先に結論を言ってしまうと、「NULLとは不明な値のことである…

MySQLのINFORMATION_SCHEMA.TABLESにおけるテーブルの行数(レコード数)は、概算値だから正確とは限らない

SQLのパフォーマンスをテストするために、試験用にテーブルを作って大量のレコードを入れました。 その時に試験をやり直そうと思い、テーブルをリセットする局面があったのですが。 ふと疑問に思い、「DELETE FROM テーブル名」と「TRANCATE TABLE テーブル…

JavaScriptのES2019の変更点と新機能のガイド

@flaviocopesさんのサイトで、ES2019のガイドが公開されています。 flaviocopes.com ひととおり目を通したので、自分なりに解釈した要約を書きます。 Array.prototype.flat() flat()は、配列内の配列を平坦に整えた、新しい配列を生成します。 引数で深さを…

シェルスクリプト内のエラーで実行を停止する「-e」と、実行コマンドを出力する「-x」オプションを使ったシェルスクリプトの開発

「ソフトウェアデザイン2020年1月号」を読んでいるのですが、その中に次の一節がありました。 GitLab のCI に関する部分は.gitlab-ci.yml に書き、単独でも実行できる内容はシェルにまとめて、scriptで呼び出すのがお勧めです。 そうすると、.gitlab-ci.yml…