2020-01-01から1年間の記事一覧
MariaDBではデフォルトの文字コードがutf8となっていますが、これでは日本語を上手く扱うことができません。 そのため、utf8mb4に変更する必要があります。この記事では、その方法を説明します。 現状の文字コードを確認 以下のSQL文で確認できます。 MariaD…
MySQLでレコードをコピーする方法を説明します。 レコードを複製する方法 (主キーを設定していない場合) まずは、テーブルに主キーが設定されていない場合です。 以下のようなpersonテーブルを考えます。 ID NAME AGE 001 山本 25 002 田中 23 003 鈴木 30 …
コードの整形方法 PHPのコードの整形は、ターミナルから以下のコマンドを打つだけでできます。 vendor/bin/php-cs-fixer fix . --rules=@PSR2 第2引数の.は対象とするディレクトリを表しているので、特定のファイルやディレクトリだけ修正の対象にしたい場合…
Macでmovをmp4に変換しようと思って調べると、期間限定 or 容量制限ありで無料といったアプリばかりでてきます。 そこで、ターミナルからffmpegというコマンドを使って変換を行う方法を紹介します。 インストール方法 brewコマンドでffmpegをインストールし…
MySQLなどのようなRDB(Relational DataBase)にはインデックスというものがあります。 この記事では、インデックスについて説明します。 インデックスとは 一言で言えば、インデックスとは索引のようなものです。(英語のindex自体が索引という意味です。) 例…
Pythonで文字コードを指定してファイルの内容を読み込むには、以下のように記述します。 path = "{ファイルのパス}" with open(path, "r", encoding="utf-8") as f: content = f.read() 組み込み関数のopen()については以下のドキュメントに書かれています。…
エラーの内容 以下のような、文字列を出力させるだけのプログラムを動かすと、エラーになりました。 # coding:utf-8 print("あ") エラーの内容は以下のような感じです。 Traceback (most recent call last): File "print.py", line 3, in <module> print("\u3042") U</module>…
以下のコマンドを実行すると、Webサイトの内容を読み込むことができます。 from bs4 import BeautifulSoup from urllib.request import urlopen url = "{読み込みたいWebサイトのURLをここに記述}" html = urlopen(url) soup = BeautifulSoup(html, 'html.pa…
あまり使う機会はないですが、これまでのコミットログを全て消すには、以下のコマンドを実行します。 rm -rf .git git init git add {コミットに含めたいファイル} git commit -m "{コミットメッセージ}"
pcf(pivotal cloud foundry)にphpのコードをデプロイする方法を説明します。 使用するbuildpackについて phpのコードをデプロイする場合、manifest.ymlに記述するbuildpackはphp_buildpackを指定します。 このbuildpackについてはドキュメントに詳細が書かれ…
phpの設定ファイルについて説明します。 php.ini phpの全体的な動作を設定するファイルです。たとえば文字コードなどを設定しています。 phpをインストールした段階で配置されるのが普通で、パスを確認するには以下を実行します。 php --ini ちなみにサーバ…
phpのコードがLinux上で動く仕組みを説明します。 Webサーバーの機能 まず、通常のhtmlファイルがサーバーで表示される仕組みを考えてみます。 サーバーを立てただけでは、当然ですがWebサーバーとしては機能しません。 ブラウザでサーバーのIPアドレスを打…
Docker Swarmとは、複数のコンテナを管理するためのツールのことです。 いわゆるコンテナオーケストレーションツールで、Kubernetesなどが主流なようですが、Docker SwarmはDockerの標準機能で使えるので手頃というメリットがあります。 簡単に図にすると以…
Spring Bootの@Componentはシングルトンです。つまりインスタンスが1つしか存在しません。 @Componentだけでなく、@Controllerや@Serviceも同じです。 これを簡単なコードを書いてテストしてみました。 実験1 まずは、以下のようなコントローラークラスを実…
オブジェクト指向プログラミングで用いられる「SOLID原則」について説明します。 1. 単一責任の原則(Single responsibility principle) 1つのクラスは1つの機能だけ持つ、という原則です。 例えば、あるクラスがGetterとSetterに加え、DBにデータを保存す…
Linuxでホスト名やIPアドレスを確認する方法を説明します。 ホスト名を確認する hostname 直感的な名前のコマンドです。 IPアドレスを確認する ifconfig こちらは結果の見方が少し複雑です。 以下のサイトなどを参考にするとわかりやすいかなと思います。 if…
Java8から追加されたStreamという機能があります。 これは、ListなどのCollectionに対し、mapやfilterなどの中間操作を行い、collectなどの終端操作を行うというものです。 以下、使い方を説明します。 Listの各要素に同じ処理を行う まずは、数字のリストの…
Javaのパッケージとライブラリについて説明します。 パッケージとは パッケージというのは、Javaのクラスをまとめて分類するための仕組みです。 Javaのプログラムは以下のように先頭にimport文があるのが一般的ですが、 import (パッケージ名).(クラス名) (…
SpringでHTTP通信をする際に使える、RestTemplateの使い方を説明します。 リクエストを行う方法 リクエストパラメータもリクエストボディーもなしでGETする場合 RestTemplate restTemplate = new RestTemplate(); String url = "http://sample.co.jp/test"; …
Javaでは「Slf4j」というライブラリを使うと非常に簡単にログ出力ができます。 この記事ではSlf4jの使い方を説明します。 Slf4jの使い方 build.gradleの設定 まずは、build.gradleのdependenciesのところに以下を追加します。 dependencies { compileOnly 'o…
Slf4jを使って出力したログの内容を検証する方法を説明します。 なお、Sl4fjについては、以下の記事で説明しています。 http://lavapies9.com/2020/04/16/2020-04-16-101635/ テスト対象のクラス テスト対象のクラスは以下とします。 import lombok.extern.s…
Lombokを使うと、ゲッターやセッター、コンストラクタなどを一々書かなくても、クラスにアノテーションを付与するだけでこれらを使うことができるようになります。 これらをまとめて付与してくれる2種類のアノテーションについて説明します。 @Dataについて …
リモートのブランチをローカルに取り込むには、以下のようにします。 $ git checkout -b (ブランチ名) origin/(ブランチ名) エラーが出た場合の対処法 以下のようなエラーが出ることがあります。 fatal: 'origin/(ブランチ名)' is not a commit and a branch…
Gitでコミットするブランチを間違えた際に、正しいブランチにコミットを付け替える方法を説明します。 1. ログを確認し、コミットIDを確認する $ git log 2. 正しいブランチに移動 $ git checkout (ブランチ名) 3. 1で確認したコミットを付け足す git cherry…
エラーの内容 普段InteliJ IDEAでJavaを使って開発をしているのですが(ビルドツールはGradle)、 Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'. のようなエラーが出ることがあります。 解決方法 IntelliJ IDEAの上部のバーで In…
パイプで無関係な2つのコマンドを繋いでいて、1つめのコマンドでエラーが発生したときの挙動を調べました。 $ expr 2 / 1 || echo a 2 # エラーを発生させる $ expr 2 / 0 || echo a expr: division by zero a その結果、1つめのコマンドが正常に実行されれ…
文字列に変数を埋め込む方法を説明します。 方法1 "{animal}が{num}匹います".format(animal="カピバラ", num=3) 'カピバラが3匹います' 「カピバラ」の部分は文字列ではなく変数にしても動きます。 方法2 方法1をさらに簡略化した記法です。 "{0}が{1}匹い…
Gmailのアカウントからメールを送るPythonのスクリプトは以下の通りです。 なお、Pythonは3系を使用しています。 # coding:utf-8 import smtplib from email.mime.text import MIMEText from email.utils import formatdate FROM_ADDRESS = "Gmailのアドレス…
youtubeの動画は削除されたり、アップロードしているアカウントが凍結されて視聴できなくなったりする場合があります。 YouTube APIを使い、動画がこのような状態でないか調べる方法を説明します。 APIキーの取得 今回の方法では、Youtube Data APIというAPI…