ITの最近の記事

スキーマレスURLについて

スキーマレスURLとは?

スキーマレスURLとは、スキーマ(スキーム)の無い(レス)URLの事です。

そもそもスキーマとは??

スキーマは、schemeと書きます。http、https、ftp、sshなど、プロトコルをURLの先頭で指定する事です。

HTMLでは、<a href="http://example.com">とURLを記述しますが、ここのhttpやhttpsの事です。これを省略する(記述しない)記法をスキーマレスURLと言います。

URLのhttpやhttpsって省略できるの?!

できます!

具体的には以下のように書きます。 スキーマレスURLの記法のポイントは、URLの先頭を//(ダブルスラッシュ・スラッシュ2つ)で始めることです。 実際に自分で書いてアクセスしてみて下さい。リンクは有効です。

<a href="//example.com">example.com</a>

疑問!スキーマを指定しなかった場合は、httpになる?httpsになる?

httpになるか、httpsになるかは、現在表示しているページがhttpかhttpsかに寄ります。現在のページのプロトコルを踏襲(引き継ぎ)します。つまり、httpのページならhttp、httpsのページならhttpsでアクセスします。

疑問!それに何のメリットがあるの?

httpsとhttpのプロトコルが混じるのが防げます!

httpsのページにhttpが混じると問題なの?

httpsのページ内で、httpの通信を行うと、ブラウザが安全ではないと警告します。例えば、HTMLのページはhttpsで暗号化していても、JSやCSSや画像でhttpの通信を行った場合は、情報が漏れる可能性があります。単純なところでは、Cookieが閲覧可能な状態で送受信されます。

SEO上も不利に働くかもしれません。

macOS 26 Tahoeは非常にバギーです。(不具合が多い)

auひかりでは問題がないのに、Nuro光に繋ぐと、特定のドメインだけに繋がらなくなります。(githubなど)

原因はどうやら、DNSにあるようです。

「システム設定」→「Wi-Fi」から、利用するWi-FIの「詳細...」をクリックすると、下図のようなダイアログが開きます。DNSサーバーに8.8.8.8を追加することで接続ができるようになります。

image.png

Bitcoinのビルド

Bitcoinのソースコードをダウンロードする

git clone https://github.com/bitcoin/bitcoin.git

bitcoind のビルド

autogen.shconfigure は初期設定です。 make でビルドします。 make check でビルドをチェックします。


./autogen.sh
./configure --without-gui
make -j4
make check

--without-guiは、QTで作成されたウォレットアプリの作成をしないオプションです。 -j4は、ジョブ数を4つに増やすオプションです。この数字は、一般的にCPUのコア数に対して2倍が良いと言われています。 問題なければ src ディレクトリに bitcoind が作成されています。 src/bitcoind --version

SELinuxを設定した後、PHPからメールが送れない。 /var/log/maillogを確認すると、以下のようなエラーが出ているはず。

Mar 3 18:11:59 php postfix/sendmail[2237]: fatal: setrlimit: Permission denied

以下のコマンドでSELinuxの設定を確認できます。

sudo getsebool httpd_can_sendmail
httpd_can_sendmail --> off

以下のコマンドで、offからonに変更します。

sudo setsebool -P httpd_can_sendmail on

Eclipseで入力補完(コンテンツ・アシスト)が効かなくなった場合の対処方法は、環境設定から、PHP → Editor → Content Assist → Enable auto Activation を有効化する。

環境設定→PHP→Editor→Content Assist→Enable auto Activation

MacPortsだと全てのバージョンのMySQLを実行できます。

/opt/local/etc/mysql8/macports-default.cnfskip-networking が設定されているからです。

これは、TCP/IPによる通信ではなく、UNIXドメインソケット(ファイルシステムを使ったプロセス間通信)を利用しているからです。

これは、.sockファイルのパスを変えることで、複数バージョンの起動を可能にする手法です。

TCP/IPでは待ち受けポート(リスニングポート)番号は重複できません。(当然!)

逆に言うと、ポート番号を変えれば複数バージョンの起動も可能ですし、同一バージョンを複数起動する事も可能です!

JavaScriptのクロスオリジン

CORS - Cross-Origin Resource Sharing

クロスオリジンとは、異なるドメイン間でJavaScriptなどのAjaxを行う方法です。

JavaScript側の設定

スクリプトの読み込みを行うタグで crossorigin="anonymous" を付ける。

<script src="http://example.com/js/ajax.js" crossorigin="anonymous"></script>
サーバー側の設定

JavaScriptファイルの送信ヘッダーに Access-Control-Allow-Origin ヘッダーを付加します。

<?php header("Access-Control-Allow-Origin: *"); ?>

Eclipseのデフォルト設定では、タブを入力すると自動的にスペースに変換されてしまいます。この設定を解除するのは、知らないと中々難しいのです。

検索エリアから「tab」を含む設定を探し、まさしくこれだろうと思いますが、これは違います。

検索エリアに「formatter」と入力して、PHP > Code Style > Formatter を選択し、下図の「show...」ボタンをクリックします。

下図の「Tab policy」を「Space」から「Tab」に変更します。

NodeJS で、プログラムを修正する度に一々プロセスを再起動するのは非常に面倒くさいです。そこで便利なのがnodemonです。

nodemonは以下でインストールします。-gはグローバルオプションです。

sudo npm install -g nodemon

使い方は、node の代わりに、nodemon を使うだけです。

nodemon test.js

ファイルの修正を監視して、ファイルが修正されたら自動的に修正をリロードします。

FreeBSD で Puppeteer

FreeBSD で Puppeteer を使うと

UnhandledPromiseRejectionWarning: Error: Unsupported platform: freebsd

というエラーが出ます。なぜ FreeBSD がサポートされていないのか分かりませんが、Chromiumpkg からインストールすることで解決できます。

sudo pkg install chromium

Chrome がインストールされているパスは、Puppeteer に明示的に指定する必要があります。

(async () => {
const browser = await puppeteer.launch({
executablePath: '/usr/local/bin/chrome',
});

詳しくは Puppeteerissue に掲載されています。

https://github.com/puppeteer/puppeteer/issues/1049#issuecomment-381846813

このアーカイブについて

このページには、過去に書かれた記事のうちITカテゴリに属しているものが含まれています。

次のカテゴリはtestです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。