【近況】2020-08-01

こういう雑多なのも良いかなと思って書いてます。 今後も書くかもしれないし、書かないかもしれない。 転職して1ヶ月経った DXな会社に転職して無事1ヶ月が経ちました。 相変わらずフルリモートです。が、今度は福岡 - 東京と、物理的にもリモート不可避な状…

ZEIT Nowでサイトつくってはてなブログの独自ドメインをやめた

独自ドメイン使ってたのはやめにして、https://t.co/b35biita3Y で取り急ぎページ作った上で、now.json にはてなブログのデフォルトドメインの各記事にリダイレクトするような設定を書いた— tomcky (@tomcky_san) March 21, 2020 Now、デフォルトでSSLで無料…

【Laravel】外部キー制約エラーが出たと思ったらこんな間違いしてた

Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails えー、なんで。。って思ってたらマイグレーションでこんなコードを書いてました。。 foreign('foo_id')->references('id')->on('foos') ->foreign(…

【jQuery】input要素のname属性値にブラケット[]が使われているとき

<input type="text" name="foo[]"> こんな感じの要素をjQueryでセレクタ指定したいとき、 $('input[name=foo[]]') ではダメ。 ダブルクォーテーションで囲うか、 $('input[name="foo[]"]') バックスラッシュを2つをブラケット [] の前に付ける。 $('input[name=foo\\[\\]]')

【Twig】dateフィルターにnullを渡すとどうなるか

現在日付が返ってきます。 {{ null|date("Y/m/d") }} {# 今日の日付が結果として返ってくる #} もし null だったときに空文字が表示されることを期待するなら、以下のようにしましょう。 {{ hoge_date is empty ? "" : hoge_date|date("m/d/Y") }} {# hoge_d…

【Twig】ゼロ埋め数値のゼロ取りたいならtrim使うといい

twig.symfony.com デフォルトでは空白が取り除かれるが、削除したい文字を引数に渡すことができる。 これを使えばゼロ埋め数値のゼロを取り除くことも簡単。 {{ '003210'|trim('0', 'left') }} {# 結果:3210 #} ここで注意したいのは第二引数に 'left' を渡…

TILやってるのでリポジトリのリンク貼っとく

github.com "Today I Learned" ですね。今日学んだこと。 ブログに書こうと思うと綺麗に書こうとか心理的ハードルが上がりがちなんだけど、そのせいで外向けアウトプットがゼロになってしまうのは嫌だなー、というところで始めた。 適当に書いたものも積極的…

最低限の設定でAmazon ECS(+EC2)なNginxを立ち上げる

AWS

aws.amazon.com いまECSを使うならEC2インスタンスをホストとせずFargateを使うのが基本になりそう。 ここではFargateではなくEC2インスタンスを使う方法で進めます。 ちなみにECSは「Elastic Container Service」の略ですが、ひと昔前は「EC2 Container Ser…

Serverless Frameworkを使ってTypeScriptなAWS Lambdaをセットアップ

AWS

マネジメントコンソール上でコードを書いていくのは辛い。 zipに固めてaws-cliでアップロードっていう方法もあるけれども、今回はServerless Frameworkを使います。 serverless.com github.com $ npm --version 6.10.3 $ npm install -g serverless ... ... …

【レビュー】ソニーのヘッドホンWH-1000XM3のノイズキャンセリング性能が凄すぎた

半年くらいソニーのノイズキャンセリングヘッドホンWH-1000XM3を使ってます。 ソニー SONY ワイヤレスノイズキャンセリングヘッドホン WH-1000XM3 B : LDAC/Bluetooth/ハイレゾ 最大30時間連続再生 密閉型 マイク付 2018年モデル ブラック出版社/メーカー: …

【本】「100%集中法」読んだ

100%集中法作者: 藤野敬介出版社/メーカー: フォレスト出版発売日: 2019/01/20メディア: 単行本(ソフトカバー)この商品を含むブログを見る SNSやスマホの通知がどれだけ集中力を阻害するかっていうお話が書いてあって、もうホントそれはすごいわかるという…

【MySQL】実行された全てのクエリを出力する「一般クエリログ」について

更新系・参照系問わずすべてのログが記録される。 ユーザーの接続・切断情報も記録される。 有効にするとすぐにログが肥大化するため、基本的にデバッグなどのときのみ有効にすると良い。 MySQL 5.6.3以降ではデフォルトでパスワードは平文で保存されること…

【入門・初心者向け】AnsibleでMariaDB(MySQL)をインストールして起動するところまで

こちらの続きです。 www.tomcky.net 簡単なプレイブックを作成して、実行するところまでやってみました。 今回はもう少し実践寄りで、MariaDBをインストールして起動するところまでの最低限を、Ansibleを使ってやってみます。 ロール(Role)を利用する 前回…

POSTリクエストを飛ばすとXML形式のレスポンスを返してくれるAPIダミーサーバーをNginxで立てる

こんなケースがあるかどうかわかりませんが、たまたま必要になったので構築ログを書いておきます。 EC2(Amazon Linux 2)を使います。 Nginxのインストールから起動まで # amazon-linux-extras install nginx1.12 -y # systemctl start nginx # systemctl e…

【MySQL入門】mysqldumpをほんの少し理解する

本記事はMySQL5.6を想定しており、他のバージョンの場合ではオプション使用時の動作が異なる可能性があります。 MySQLのバックアップ方法としてよく目にするのがmysqldumpを使ったバックアップです。 例えば全データベースのバックアップを取りたい場合は、…

MySQLストレージエンジンの確認方法

テーブルごとに使用されているストレージエンジンを確認する方法です。 方法その1。 mysql> use information_schema; mysql> select table_name, engine from tables where table_schema = 'DB_NAME'; 方法その2。 mysql> use DB_NAME; mysql> show table st…

【入門・初心者向け】Ansibleはじめました〜簡単なPlaybookの実行まで

EC2(Amazon Linux 2)上でやってみました。 Ansibleインストール EPELレポジトリを有効にして、Ansibleをインストールします。 $ sudo yum --enablerepo=epel install ansible $ sudo yum install ansible $ ansible --version # 確認 Ansible実行テスト ロ…

GraphQLBundleを使って初めてのGraphQLサーバーを実装してみる

Symfony Advent Calendar 2018 16日目の記事です。 GraphQLはFacebookが開発しているAPIへの問い合わせで使われるクエリ言語です。 ここでは GraphQLBundle を利用して簡単なGraphQLサーバーを実装する方法について書きます。 そもそもGraphQLって何?という…

Rustでcatコマンドを書く

catと言っても簡易的なもので、与えられた引数のファイルの中身を表示するだけで、オプションとかそんなものはありません。 Rustの勉強用に書いてみました。 というわけで早速コード。 use std::env; use std::fs::File; use std::io::{BufReader, BufRead};…

【めも】Browsersyncでサーバーを起動するまで

browsersync.io プロジェクト用ディレクトリで作業する。 $ npm init # 全てEnterでOK $ npm install -D browser-sync package.json の修正。 { ... "scripts": { ... "start": "browser-sync start --server --files='./*.html, ./*.css'" } } 以下のコマン…

MacのターミナルからFinder開いたりアプリケーション起動したり

Mac

open コマンド使いましょ。 $ open . これでカレントディレクトリをFinderで開ける。 ちなみに、URLを指定すればブラウザでページを開けるし、 $ open https://www.tomcky.net -a オプション使ってアプリケーション起動しつつ、ファイル指定するとそのファイ…

今更ながら "Index column size too large. The maximum column size is 767 bytes." に遭遇した

Symfony、というかDoctrineでmigrateしたら、うっかり以下のようなエラーに遭遇。 Index column size too large. The maximum column size is 767 bytes. utf8mb4だと、varchar(255)とかインデックス張ると767バイト超えてしまって失敗してしまうっていうや…

【PHP】nullと文字列結合演算子

PHP

ふと、こんな感じの記述を見つけて、これNGじゃないのかー、ってなった。

【CSS】Sticky Footer(スティッキーフッター)の実装

CSS

常にページ最下部に固定するようなフッターを実現したい。 このとき、ページ内の要素が画面の高さを越えるときは、フッターは画面外となり、スクロールしなければ表示されないようにしたい。 このようなフッターは「Sticky Footer(スティッキーフッター)」…

【PHP】ある文字列から指定した文字までの部分文字列を取得する

PHP

Amazon SQSを使って得た知見をまとめておく

AWS

Amazon SQS(Simple Query Service)を使う機会があったので、その過程で得た知見をざっとまとめておく。 キューURL キューを作成するとURLが発行される。 SQSのAPIを使用するときは、このURLをエンドポイントとして、操作対象のキューを指定できる。 なお、…

ドンキ4Kを少しでも活かしたかったのでAmazon Fire TV 4K/HDRを買ったよ

3月に買ったドンキ4Kテレビ。 www.tomcky.net せっかくの4Kテレビを少しでも活かしたい。 ということで、Amazon Fire TV 4K/HDR(以下「Fire TV」)を購入。 結論から言うと大満足で買ってよかったと思えるデバイスだった。 Fire TVでできること テレビに接…

【Docker】docker cpでホスト-コンテナ間でファイルをコピーする

コンテナのログをホストに持ってきて中身を見たい。 そんなときは docker cp でホスト-コンテナ間でファイルのコピーができる。 docker cp | Docker Documentation コンテナからホストへのコピー。 $ docker cp [container-id]:/path/to/file.log ./file.log…

homebrew-phpがdeprecatedになったのでphp71-*がインストールできない

PHP

おしごとでやってるPHPのプロジェクトでいつも通りの作業をこなしていたら、突然 pcntl がないぞ的なエラーが。 えー、この前の brew update とか brew upgrade とかが原因かー?と思いながら、 brew install php71-pcntl と見つからないと言われる。 ちょっ…

よく使う git diff メモ

Git

基本 git diff とだけやると、ステージ前の変更と最新のコミットとの差分が確認できる。 $ git diff 変更のあるファイル名だけを表示する --name-only を付けると、変更内容は表示せず、変更のあるファイル名だけを表示できる。 $ git diff --name-only 特定…