Visual Studio Codeで改行をCRLFで保存してしまう。LFに変える方法。
Visual Studio Code(VS Code)で改行コードを LF で保存したのに、気づいたら CRLF になってることがあります。
理由は、デフォルトの改行設定が CRLF で、どこかの編集のタイミングで CRLF で保存してしまってるから。
プログラミングで CRLF はきつい。デフォルト設定を変更します。
続きを読む1024byte = 1kB は不正解って知ってますか? プログラマ・SEが使う単位について
1024byte=1KBは○。1024byte=1kBは✕。1000byte=1kBは○。1024byte=1KiBは○。
説明できるほど分かっていたのは1024byte=1KBと1024byte=1KiB の2つだけ。
1000byte=1kBは『その計算もある』程度の理解。
エンジニア目線では理解不能な単位の話。
続きを読む素朴な疑問。2進数で"-1"はなぜ1が並ぶのか?意外とつまずくマイナス表現。
2進数 "11111111" は10進数では "255" ではあるんですが、プログラマー用の電卓では "-1" が出てびっくりすることがあります。
2進数整数のマイナス表現は意外とつまづくところです。でもこれから説明するものだけ理解できれば大丈夫。
続きを読むLinux systemctl, サービスの自動起動 / 解除を行なう
Redhat系Linuxのsystemdはサービス(アプリケーション)の起動・停止・再起動をコントロールするものです。
systemdの管理コマンドsystemctlでサービス(アプリケーション)の自動起動 / 解除 設定を行ないます。
自動起動はOSが起動したときに連動して起動させること。
続きを読むusb80236.sys が DRIVER_IRQL_NOT_LESS_OR_EQUALって何?
パソコンを使ってるとブルースクリーン・エラーは一番出会いたくない。いきなり画面いっぱいが青くなり英語だけが表示されるやつ。
Windows 10 で出たエラーコードが DRIVER_IRQL_NOT_LESS_OR_EQUAL。usb80236.sys が原因らしい。
パッと見なんのこっちゃ分からない。
続きを読むPHP8, エラー、警告、通知の変更のまとめ。レベル格上げが主な変更点。
PHP8では、それまで警告で済んでいたものがエラーになるものが多くあります。
(エラー例外をスローする。)
個々の変更点では説明されてたんですが、まとまったものがありませんでした。やっと見つけたので、エラー、警告、通知の変更点のレジュメをご紹介します。
続きを読むユーザーCPU時間とシステムCPU時間って何がちがう?(プログラムが独り占めするひととき)
プログラムはCPUを好きなタイミングで使うことはなく処理待ちしているのが普通です。
CPU時間はプログラムが処理するためにやっと掴んだCPUを占有する時間の累計。そのCPUを『だれが』使うかでユーザーCPU時間とシステムCPU時間に分かれます。
かんたんに分かりやすく、関係とちがいを説明します。
続きを読むMariaDB, インストール直後にやるべき作業。初期設定は常識です。
MariaDBには、インストール後にやっておくべき初期設定がふたつあります。設定ファイルの編集とmysql_secure_installationコマンドの実行。
rootパスワード設定や、だれでも使える匿名ユーザーの削除などのセキュリティ対策をします。
続きを読むPHP8, 関数のパラメータの型を守らないとエラーになる。戻り値も。
PHP8では、内部関数のパラメータの型が厳格になりました。(戻り値も。)
厳格とは、『今までは適当でも動かしてたけど、これからはエラーを返すよ?』ということ。
PHP8はデータの厳格化がポイントなのでその一環。
曖昧さを許さないプログラミングをしていた人にとっては当たり前の話です。
続きを読むwebpack5, node-sassはNode.jsのバージョンに影響される
webpackのプラグインnode-sassは、Node.jsのバージョンに大きく影響されます。
node-sassのバージョンとNode.jsのバージョンは対応表があるほど。
でも、エラー内容からはそれが想像できません。これを解決するのに2時間かかった。
続きを読む補数(ほすう)って何?なんで使うの?実は小学校から使ってる。習わないけど。
コンピュータの基礎知識では補数(ほすう)が出てきます。ここでつまずいて嫌になる人もいるくらい。
『つまずくなら式を覚えてしまえ』でスルーしてもいいですが、メカニズムを分かってないとすぐに忘れます。
『試験以外で使ったことないからいい』という意見を否定しませんが。
続きを読むPHP composer, パッケージのインストールでバージョンを指定するいろいろな方法。
PHPのcomposerはパッケージを管理するコマンドツールです。
パッケージにはバージョンが付いており、インストールやアップデート時に特定のバージョンを指定することができます。
また、番号だけでなくGitHubなどのブランチを指定する方法もあり、安定版、開発版など開発フェーズも指定できます。
続きを読むUnity Hubでプロジェクトを開けない。原因はライセンスのMACアドレスにあり!
Unity Hubで作成したプロジェクトを開こうとすると、Editorの初期画面が出るだけで終了。
Unity Hubは『Unityは既にリストに含まれています。』が表示され再起動。
何度やっても負のループ。いや、そこで終わり?何もできないんだけど?
続きを読むWebサイト表示の流れをざっくりとまとめた。HTML,CSSからSPA,SSR,SSGまで。
SPA, SSR, プリレンダリング(SSG), React, Vue.js, Next.js, Nuxt.js。
正直、いまのWebの技術はいろんなことが多すぎて、すべてを理解できません。似てることも多いし。
こういうときは、しっかり基本に立ち返ります。そうすれば振り回されないし学習が速くなる。
続きを読むwebpack4 -> 5 移行ガイドを読んでその通りにやってみる。
webpackを4から5へアップデートしましたが、移行ガイドを読まずに自力でできてしまったので、改めて移行ガイドを読んでみます。
抜けがないか確認のため。設定の細かいカスタマイズをしてる人は一読する価値あり。基本設定で済ませていれば、そこまで必要はなかったかな?
続きを読むPHP, パスワードのハッシュはpassword_hash()を使おう!
文字列のハッシュ化は、md5(), sha1()を使うのをやめてpassword_hash()を使いましょうという話です。
(ハッシュは文字列を解読しづらくする難読化のこと。)
公式ドキュメントもそう言っているのに気づきました。
(けっこう遅いけど。)
続きを読むnvm, Node.jsバージョンをユーザー・ディレクトリごとに管理する
Node.jsの環境を作るのにNode.jsのバージョン管理ツールは必須で、かんたんにNode.jsのバージョンを切り替えできないとキツイです。
nvmはユーザー、ディレクトリごとに切り替えできます。
direnvが使えるなら一番のオススメです。
続きを読むPHP8, create_function()の廃止。無名関数を使おう!
非推奨になっていたcreate_function()がPHP8で廃止されました。無名関数を知っている人にはどうでもいいことですが、ソースコードに残っていると致命的なエラーになって動きません。
何を今さらな情報ですが、もしまだ使っているようなら辞めましょうという話です。
続きを読むVirtualBox 6.1.28 は Windows 10 で仮想マシンが起動できない。
仮想環境で有名な Oracle VM VirtualBox ですが、バージョン6.1.28 は Windows10で起動できません。
Call to NEMR0InitVMPart2 failed らしい。ざっくりいうと、仮想マシンの起動で失敗する。
答えを先にいうと、バージョンを下げようという話です。
続きを読むPHP composer, globalのホームパスはどこ?パッケージのインストール先を知りたい
PHPのcomposerは、一般的にはソースコードのルートディレクトリ、プロジェクトのルートディレクトリがホームになります。
(composer.jsonを置く。)
でもcomposerにはもうひとつ、globalというOSユーザーごとにルートディレクトリが用意されています。そこの場所がややこしい。
続きを読むPHP, urlencode() は rawurlencode() に変えるべき?
PHPには、URLのエンコード / デコードの関数が2種類あります。urlencode() / urldecode() と rawurlencode() / rawurldecode()。
使う目的は同じなんですが、じゃあどっちを使うの? という話です。
続きを読むWindows10, 速くエクスプローラーを操作するならキーボードを使う
Windowsでフォルダやファイルを探して開くのに使うエクスプローラー。パソコンをはじめて使う人が初日に使う基本的なWindowsアプリです。
これをマウスで操作する人は多いですがキーボードのほうが速い。慣れるとマウスが鬱陶しくなるほど。
キーボードショートカットが苦手な人は最初にエクスプローラーで覚えるといいです。
続きを読むWordPress, セキュア処理で使うnonce関数のちがい(CSRF対策)
nonceはWordPressのセキュリティ機能のひとつで、ワンタイムパスワードみたいなものです。
そのnonceまわりの処理の関数で、ドキュメントと違う実装をしても正常に動くことがあるので、ソースコードから調べました。
よく分かってなかった関数の使い分けがはっきりしたのが一番の収穫です。
続きを読むCentOS7, スワップ領域の作成と削除。意外とOS管理で使う。
メモリが足りなくなったときに、HDD(SSD)の一部をメモリとして使うスワップがあります。
メモリを増設すればいいので不要だと思われがちですが、暫定措置として結構使う。
そのスワップ領域をCentOS7で作成します。いらなくなることもあるので、ついでに削除の方法も。
続きを読むLinux firewall-cmd, ファイアウォールのポートを開け閉めする
Redhat系Linuxにはfirewalldというファイアウォールのサービスが標準であります。それを細かく設定するコマンドがfirewall-cmdで、ポートを開けたり閉めたりします。
サービス名(アプリケーション名)とポート番号で設定する方法があります。
続きを読むPHP composer, パッケージを本番環境と開発環境に分離する。
PHPのcomposerはパッケージを管理するコマンドツールです。
composerには開発環境でしか使わないパッケージはインストールを分けることで、本番環境構築では除外できるようになっています。
今回は、開発環境用のパッケージの扱い方、開発環境用、本番用の展開の仕方を学びます。
続きを読む『ビューポートが設定されていません』を直す。モバイルユーザービリティの適正化。
Google Search Consoleのモバイルユーザービリティのエラー『ビューポートが設定されていません』を直します。
ビューポートはモバイル(スマホ)でサイトが表示されている実際の領域のこと。
かんたんです。HTMLにmetaタグを追加するだけです。
続きを読むPHP8, union型, 変数や関数の型を複数宣言できる。
PHP8から、or(または)の意味を持つパイプライン(|)を使って、型宣言を複数指定できるようになりました。
union型は複数宣言の型の名称で、'union' という型の記述はできません。
同じように特定の型を表さないmixedとはそこはちがう。
続きを読むPHP, JSONで日本語を使う方法。Unicodeのエスケープを辞めればOK。
json_encode()を使ってPHPの配列やオブジェクトをjsonに変換しますが、UTF-8などのUnicodeの場合、json結果の日本語がUnicodeのままになります。
それを、日本語で表示するようにします。
かんたんです。説明は3分もかかりません。
続きを読むPHP8, Nullsafe, オブジェクトのnullチェックを省略するプロパティ・メソッド参照
PHPはメジャーアップデートで8が登場しました。そこで追加されたのがNullsafe演算子(?->)。
『?』とクラスオブジェエクトのメソッドやプロパティを参照する『->』を足したもの。
Null合体演算子を使いながらメソッドやプロパティを見る使ってるイメージだと分かりやすい。
続きを読む