感想 「私はロボットではありません」はワンクリックでなぜ人間を判別できる? 仕組みとその限界を聞いてきた

persol-tech-s.co.jp

 

歪んだ文字の打ち込んだ文字が違うとイラつくし、写真選択は信号機の柱の部分が入るのか入らないのかで間違ったときにイラつくしで好きではなかったが、古いバージョンだから消えていくのかと思っても少しも悲しくならなかった。とても嬉しいことだ。

また、パズルを音声認識で解いたり、外注で解いてしまうのは予想外だった。頭のいい人たちの戦いは凄いわ。

 

 

linuxの共有ライブラリの設定と永続化

共有ライブラリの設定

下記のように環境変数LD_LIBRARY_PATHを使うと、パスを共有ライブラリに追加します。これは再起動すると消えます。

export LD_LIBRARY_PATH=/home/root/lib:$LD_LIBRARY_PATH

永続化の設定

上記を起動時に毎回行うのは面倒なので、永続化する場合は/etc/ld.so.confに追加したいパスを記載する。

 /home/root/lib

キャッシュを更新

Linuxはパス検索時に/etc/ld.so.cacheを参照するので、/etc/ld.so.confを更新したら、ldconfigコマンドで/etc/ld.so.cacheを更新する。

# ldconfig

 備考

Linux上でLD_LIBRARY_PATHで指定したパスは、/etc/ld.so.confのパスよりも優先される。

Chromeのコンソールにphpのログを表示する

Chromeの開発者ツールからphpのログを見る方法があったので記載。

 

下記公式サイトからchromephpのDLとchromeにextensionをインストール。

craig.is

 

phpのソースに下記の記載をすればすぐに使える。

include 'ChromePhp.php';
ChromePhp::log('Hello!');

結構便利

PHPでのrequireとincludeの違い

他の人が作成したPHPを読んだときにrequireがあり、何だこれと思ったので調べた。

公式より 

PHP: require - Manual

PHP: include - Manual

 

どちらもほぼ同じだが失敗した場合の動作が異なる。

require

致命的エラーのE_COMPILE_ERRORが発生する。これが発生するとスクリプトの処理がそこで止まる。

 

include

E_WARNINGが発生する。これは警告なのでそのままスクリプトの処理は継続する。

 

Docker imageとDocker containerとは

Docker overview | Docker Documentation

公式より

 

Docker image

Docker containerを作成するための手順が含まれた読み取り専用のテンプレート

よく、あるiamgeはカスタムされた他のimageをもとに作成されている。

 

Docker container

Docker imageの実行可能なインスタンスである。

hostまたは他のcontainerとは隔離されいる。

環境を自由にいじることができる。

Dockerがどんなものか勉強した

背景

数年前から会社の組み込み機器にもweb化の波が来ていたが、今まではWindows PCにapachephpをインストールして開発していた。あるPCでは動くがあるPCでは動かないなんてこともありました。新製品のタイミングで自分が担当になったのでweb系ではデファクトスタンダードのDockerを導入するために勉強してみました。

 

Dockerとは

アプリケーションの開発、配布、実行を行うためのplatform。

 

何がいいのか

  1. 環境作成がコードで作成できる。
  2. コードなので共有が簡単で、異なるPCに簡単に同じ環境を簡単に再現できる

->環境設定をすっとばして、製品のバックエンド側を他の人もすぐにいじれる、実行できる。嬉しい

あああ

使ってみる

phpapacheを使用するので下記コマンドを実行する。

docker run 8.0.2-apache

 

 すると下記の順で動作する

  1. php 8.0.2とapacheがインストールされたdocker iamgeをDocker HubからDL
  2. このimageでcontainerを起動
  3. containerの中のphp 8.0.2とapacheを起動

ここで http://localhostに接続するとIt worksが表示される。