ElasticMQのDockerコンテナ起動時にキューを自動作成する

以前ElasticMQ用のDockerfileを作り、Dockerコンテナで動くようにした。 www.tomcky.net ElasticMQは設定ファイルを準備することで、起動時にキューを自動作成できる。 github.com ドキュメントのとおりに custom.conf を作成して Dockerfile と同じディレク…

口内炎が痛すぎて残りライフゼロです

口内炎。 なんなんですかね、アレ。 あの辛さはどうしようもないですよね。 昨日の夜と今日の昼はハヤシライスだったのですが、美味しいのに辛い、辛いのに美味しい、けどやっぱり辛い。 ただ辛い。 からいじゃない。 つらい。 つらたん。 ミーティング中も…

引っ越しました

引越ししました。 ここ10年で7回目の引越しです。 「うわっ...私の引越し回数、多すぎ...? 」 というわけで、もうこれで最後にしたいです。引越し辛い。 前回こうだったからこうしようと思ってても、毎回何かしら困ったことが起こるんだよな。。 引越しは終…

【Symfony】バリデーション制約 UniqueEntity の基本的な使い方とエラーメッセージについて

symfony.com UniqueEntity の fields オプションを使うと指定したフィールドにユニーク制約をつけることができる。 App\Entity\Author: constraints: - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: fields: email fields オプションは省略…

PHPのprintfとsprintfの違い

PHP

【Symfony】DoctrineのQueryBuilderでWHERE句のAND・OR組み合わせ

select('p') ->from('AppBundle:Product', 'p') ->join('p.category', 'c') ->where('c.name like :categoryName') ->andW…

scpコマンドでローカル・リモート間のファイルコピー

使うとき、たまに忘れる。 ローカルファイルをリモートへコピー カレントディレクトリの foo.txt をリモートへコピーする。 -P オプションでポートを指定。 リモートの指定は ユーザー名@ホスト名(もしくはIPアドレス):コピー先ディレクトリ 。 $ scp -P 2…

明日から技術Tipsの投稿再開します

体調も回復してきたので、明日からまた投稿再開しようかと。 と、言っても大した記事はあげてないし、これからも滅多にあげることはないのですが。。 小さい積み重ねだと思うので、無理なく、日常の範囲で投稿していけると良いなと思います。 あ。昨日の記事…

本日はお休み

体調優れず。 プライベートも忙しく。 おしごと以外は極力睡眠に充てたい今日このごろ。 なので投稿お休みします。 という投稿。 なんか連続投稿が途切れると、途端に書かなくなってしまいそうなので。 ストックを清書する気力もない( ゚∀゚)アハハ

SymfonyアプリケーションからElasticMQに接続する

前回の続き。 www.tomcky.net 設定を書き換える app/config/config.yml の設定はダミーで良いので書き換えておく。 aws: version: 'latest' region: 'region-dummy' credentials: key: 'key-dummy' secret: 'secret-dummy' QueueUrlを書き換える 前回 aws-cl…

Amazon SQS互換のインターフェースを提供するElasticMQを使ってみる(とりあえずAWS CLIで接続確認するまで)

Amazon SQSを使うときに悩むのがローカルでの開発環境をどうするか。 ElasticMQはAmazon SQSと同様のインターフェースを提供してくれる、スタンドアロンなメッセージキューイングシステム。 github.com これを使ってローカルに閉じた環境でAmazon SQSの利用…

SymfonyでAmazon SQSを使う(新規プロジェクト作成からメッセージ送信まで)

Symfony 3.3系プロジェクトを作成 $ composer create-project symfony/framework-standard-edition my_project "3.3.*" AWS SDKインストール $ cd my_project/ $ composer req aws/aws-sdk-php aws/aws-sdk-php-symfony app/AppKernel.php に追記

【Vue.js】子コンポーネントから親コンポーネントのメソッドを叩く

以前、親コンポーネントから子コンポーネントのメソッドを叩く方法を書いた。 www.tomcky.net で、つい最近、「あれ、逆に子コンポーネントから親コンポーネントのメソッドを叩くにはどうしたらいいんだっけ?」ってなったんだけど、よくよく思い出すと、こ…

【Symfony】Requestオブジェクトからリクエストパラメータを取得する

Requestオブジェクトに触れる機会は多く、様々な情報を取得することができる。 ここではリクエストパラメータに関する扱いをまとめる。 (導入)Requestオブジェクトを扱う Symfonyのコントローラではアクションの引数とすることで、簡単に Request オブジェ…

コスパ抜群なドンキの4Kテレビ(第3弾)を買ったのでレビュー書いておく

2018/5/30追記 2018/5/30現在、すでに第4弾が出ていて、こちらはHDR対応・新たに55V型と60V型が追加されていてかなり良さそう。 絶対買いだろコレ。。くそー、もう少し待っておけば良かった!!笑 ドン・キホーテの50V型4K液晶テレビ。 本体価格54,800円で、…

br要素を使わずにCSSだけで改行する方法

CSS

::befor や ::after といった疑似要素の content に \a を入れることで改行できる。 コード例 .foo::after { content: '\a'; white-space: pre; } サンプル codepen.io 解説 content: '\a' について \a というのは改行を表している。 改行(厳密に言うとLF)…

【Symfony】動的にバリデーションを追加する方法

addEventListener を使うことで動的にバリデーションを追加することができる。 createFormBuilder や createForm にエンティティを渡していない、もしくはエンティティにないプロパティに対してバリデーションをかけたい場合や、特定の条件を満たす場合にの…

ExpressアプリケーションをHerokuにデプロイする

前回からの続き。 www.tomcky.net Herokuで動かすにあたって、 index.js のポート指定箇所を修正する。 const express = require('express') const basicAuth = require('basic-auth-connect'); const app = express() app.use(basicAuth('username', 'passw…

Expressで構築したWebアプリケーションでBasic認証する

前回作ったやつにBasic認証をかける。 tomcky.hatenadiary.jp basic-auth-connect をインストールする。 $ npm install basic-auth-connect --save index.js を以下のように修正する。 const express = require('express') const basicAuth = require('basic…

Node.jsのフレームワークExpressで「Hello world」

プロジェクト用のディレクトリ作成。 $ mkdir my-app $ cd my-app npm init で package.json を生成。 $ npm init expressのインストール。 $ npm install express --save index.js の作成。 const express = require('express') const app = express() app.…

【Ethereum】Go Ethereumのインストール

Gethをインストールする · Ethereum入門 Ethereumはブロックチェーンをベースに、特別な管理者のいないP2Pシステム上で、様々な分散アプリケーション(Dapp : Decentralized Application)を開発するための基盤を提供するプラットフォーム。 そのEthereum上…

【Vue.js】親コンポーネントから子コンポーネントのメソッドを叩く

ref を使って子コンポーネントに対して参照IDを割り当てる。 jp.vuejs.org <template> <div id="app"> <FooComponent ref="foo"/> </div> </template> <script> // ... methods: { // 子コンポーネントであるFooComponentのメソッドfugaを叩く this.$refs.foo.fuga(); } </script>

【JavaScript】jQueryを使わずに属性操作系の処理を書く

HTML <div id="main" class="foo"> <a href="#piyo" class="piyo">PIYO</a> <input type="text" name="name" size="40" class="hoge"> </div> JavaScript // 指定要素について特定の名前の属性値を取得 document.querySelector('#main').getAttribute('class'); // foo document.querySelector('.piyo').getAttribute('href'); // #piyo // 属性追加…

【JavaScript】jQueryを使わずにclass属性を操作する処理を書く

例えば、 <div id="main" class="foo bar"> </div> こんな感じのHTMLに対して処理を書くとき。 // クラスを追加 document.getElementById('main').classList.add('piyo'); // document.querySelector('.foo').classList.add('piyo'); でも同じ処理になる // 以下同様 // クラスを削除 document.get…

【JavaScript】jQueryを使わずに要素取得系の処理を書く

// 指定したIDに合致する要素を取得 // $('#id')[0]; と同値 document.getElementById('id'); // 指定したセレクタに合致する要素を取得 // $('.class')[0]; と同値 document.querySelector('.class'); // html要素を取得 document.documentElement; // body…

良い感じにCSS書くために"rscss"という考え方がちょうど良かったので訳しつつまとめとく

CSS

BEMやらSMACSSやら、CSS設計のアイディアは色々あるのだけど、どうにも複雑で。。 そんなときにrscss(Reasonable System for CSS)を見つけたんだけど、これがちょうどいい感じで、縛りもきつくなくて導入しやすかった。 ので、改めてドキュメントを訳しつ…

Vimのファイルエクスプローラーはnetrwで十分ではないか

Vim

Vimでファイルエクスプローラーを実現しようと思ったときにNERDTreeなどのプラグインを導入したりするが、Vimには標準でnetrwというプラグインが付属している。 プロジェクトルートに移動して vim . とするとカレントディレクトリが開かれファイルの一覧を確…

【Vim】関数の定義元にジャンプするためにctagsをサクッと導入してパッと試してみる

Vim

MacならHomebrewでインストールできる。 $ brew install ctags プロジェクトルートに cd して以下のコマンドを実行。 $ ctags -R しばらく待てば tags ファイルが作成されて準備完了。 クラスや関数を呼び出している箇所で Ctrl + ] とすると、定義元にジャ…

【CSS】グリッドレイアウトで全体的に中央に寄せつつ最後の行の子要素だけ左寄せにする方法

CSS

パッと思い浮かぶのはFlexboxを使う方法なのだが、これがFlexboxだと、CSSだけでの実現はなかなか難しそう。 もし、これをCSSのみで実現しようと思うとGrid Layoutを使うのが一番簡単な気がしている。 developer.mozilla.org サンプルは以下(CodePenのサイ…

【HTML5】a要素の中にdiv要素などのブロックレベル要素は使ってよいのか

先日、以下の記事でa要素の中にdiv要素を使った例を載せた。 tomcky.hatenadiary.jp 実際、これは構造として正しいのだろうか。 結論から言えば、HTML5であれば問題ない。 W3Cのa要素についての説明(英語)。 4.6 Text-level semantics — HTML5 こっちはMDN…