Blogブログ

Archives

「宮崎に住むエンジニアさんに20の質問」に回答してみる

宮崎IT関連勉強会 Advent Calendar 2019 12日目の記事で、@koogawaさん が用意してくれた「宮崎に住むエンジニアさんに20の質問」に回答しています。 Q1: 名前orハンドルネームを教えてください(よければ由来も教えてください!) 名前はShota Nara。屋号はSHNRです。10年以上前になりますが、初めて自分のウェブサイトを作った時に取ったドメインをそのまま使ってます。 Q2: 宮崎ご出身ですか? 北九州です!「福岡」とはあえて言いません。(神戸出身者ならわかってくれるはず) Q3: 宮崎の好きなところは?(場所や食べ物などなんでも) 波が素晴らしい。野菜肉魚が美味い。道が広くて空いてる。家賃が安い。意外と首都圏へのアクセスが良い。気候がよい。子育てしやすい。福岡・LA・沖縄とそれぞれ6~8年ほど生活していたのですが、宮崎が一番住みやすいと感じています。 Q4: 宮崎に住んで不便に感じることはありますか? 福岡がもうちょい近かったらなと思います。もし新幹線が通るとめちゃくちゃ嬉しいです。無いと思うけど。 Q5: 欲しい技術書はいつもどこで買っていますか? 大体Amazon。たまーに街の本屋で。 Q6. プログラミング以外の趣味や特技があれば教えてください サーフィンです。大切な家族の理解、それにこの環境のお陰で、仕事前にサーフィンという理想の生活を実現出来ています。最近はSUPに乗ることも多く、SUP8割ショート2割位です。死ぬまで続けてポックリ逝きたいです。 Q7: よければエンジニア歴を教えてください 丁度10年です。学生時代に靴の並行輸入をしていたのですが、その時自社ECを構築したのがきっかけでした。その後ECサイト開発・運用の会社と受託開発の会社で勤務し、今に至ります。 Q8: 好きな言語はなんですか? 基本的に言語の好き嫌いは無いタイプですが、書くのが楽しいのはJavascriptです。特にSPA開発が好みです。CSS+HTMLのコーディング作業もアドレナリン出ます。PHPもよく使います。そして最近Pythonで開発する機会もあるのですが、知識が増えていく過程がとても楽しいです。 Q9: 苦手な言語はありますか? 特に無いです。 Q10: 普段はどこで働いていますか?(オフィス、自宅、コワーキングスペース等) 自宅の一室を事務所にしています。自宅最高。 Q11: 勉強会やセミナーなどには参加してますか? TEGEHOGEによく参加しています。 Q12: 普段やられている技術関連の情報収集方法があれば教えてください Twitter、メルマガ。中嶋聡さんのメルマガを愛読しています。 Q13: 好きなエディタを教えて下さい Sublime text, VSCode. Q14: お気に入りのコード管理ツール、プロジェクト管理ツールがあれば教えて下さい(Git, Backlog, Bitbucket など) ソース管理はGitHub. プロジェクト管理はBacklog。 Q15: […]

AutoML Vision を試す

AutoML Vision を試してみた。 AutoML Vision とは? Googleの提供している、機械学習を利用した画像認識がブラウザ上のUIで非常に簡単に行えるアプリケーション。 ちなみに、これとは別にCloud Vision APIというAPIもある。こちらは既存のモデルを利用してラベル付けなどを行う。 AutoML Visionでは、自前でモデルを作ることが前提となる。 ただモデルを作ると言っても、手順は非常にシンプル。 1.Google Cloud Strageに画像をアップロード。 2.画像とラベルを紐付けしたCSVを作成してアップロード 3.CSVを利用してAutoML Visionにデータセットを学習させる これだけ。 今回はウェットスーツのフルスーツ・スプリングを見分ける事ができるのか、テストしてみることにする。 事前準備 まずは以下のクイックスタートで、パケットの用意やアカウント課金の設定などをやっておくと楽。 ※ クイックスタート https://cloud.google.com/vision/automl/docs/quickstart?hl=ja バケット作成 Cloud Storage バケットの作成 ブラウザで利用できるシェルウィンドウ、Cloud shellを使う。 # これで、以降の ${PROJECT} にはプロジェクト名が入る。 PROJECT=$(gcloud config get-value project) && BUCKET=”${PROJECT}-vcm” # バケットの作成 gsutil mb -p ${PROJECT} -c regional -l us-central1 gs://${BUCKET} アカウント権限を追加。 AutoML […]

LAMP on Docker

Dockerを久々触ったのでおさらい。 今回作成したいのは以下のLAMP環境。 ディレクトリ構成 各設定ファイルの作成 下準備 プロジェクトのルートに移動し、各ディレクトリを作成。 docker-compose.yml web: volumeで、cachedオプションを付けること。これがないとMacだとかなりもっさりする。 それとPMA_HOSTはup後に取れるようなので、一旦仮で。 なお、DBをMariaDBにしたい場合はこちら。 web/Dockerfile apache のphp 7.2で指定。モジュールは都度追加。※ついかしたらbuildが必要。多分。 ※追記 apache-phpでのエラーログ出力のため、エラーログをechoする記述を追加 web/base.conf ~/html/配下でディレクトリを切れば、サブドメイン化出来るように。 web/php.ini ※追記 apache-phpはエラーログ出力の為、[global]以下を追記必要。 db/Dockerfile db/my.cnf こちらはMariaDB ver. Build ここまで出来たらビルドする。 成功したら、up。 psで確認してみる。 Test 表示されるかテスト。~/html/www/にファイルを作る。 適当に書いたファイルが、http://www.localhost:8080/ で表示されればOK! Log in 立ち上げた仮想サーバーへログイン。 ログインして、※pwはdocker-composeに記載 ここでホスト名を確認。 ここで得たホスト名を、docker-composeに書きphpmyadminを再ビルド。 するとphpmyadminへアクセス出来る。 http://localhost:8888/index.php

s3+cloudFront+LambdaでBasic認証

タイトル通り、s3+cloudFront+LambdaでBasic認証を設定したのでそのログ。 なおソース管理はGithubで、Pushでs3へ自動デプロイも行う。 s3+cloudFront+LambdaでBasic認証 参考: https://medium.com/crunchtimer/aws-s3-cloudfront-lambda-edge%E3%81%A7%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%83%AC%E3%82%B9basic%E8%AA%8D%E8%A8%BC-be7d416ed82c https://qiita.com/coinlockerbaby/items/ce228975d6b13b103517 s3 https://s3.console.aws.amazon.com/s3/home バケット新規作成 基本的に、設定はデフォルトでOK。 名前とリージョン バケット名 – 任意 リージョン – アジア・パシフィック オプションの設定 デフォルト通り。次へ。 アクセス許可の設定 Block all public access にチェックを入れる。 ※多分デフォルトで入っている。 以上で、作成完了。 Static website hostingを有効にする S3の一覧から、作成したパケットを選択する。 「プロパティ」タブの、Static website hostingを有効化する。 そして以下の設定を行う。 「このバケットを使用してウェブサイトをホストする」を選択。 インデックスドキュメント – index.html エラードキュメント – error.html この時点でindx.htmlをアップすると、確認可能となる。 以上で一旦S3は完了。 CloudFront https://console.aws.amazon.com/cloudfront/home Create Distribution Create Distribution する。 WEBの、Get startを選択。 以下、設定。 Origin […]

Vueで検索エンジンAlgoliaの実装

goolge site search, yahoo site searchが廃止になったことで、注目を浴びだしたのが全文検索可能なSAAS。 その一つであるAlgoliaを使ってみる。 what Algolia? https://www.algolia.com/ 検索のみを提供するサービス。 APIは豊富にある。 検索対象とするキーの設定なども容易。 利用例は多く、近いところだとvue。 https://vuejs.org/ 個人であれば無料で月10万コールまで利用出来る。 データの更新なども上限はある。 https://www.algolia.com/pricing/ アカウント作成 無料で作成出来る。 最初にチュートリアルがあり、検索対象カラムの指定や条件の編集方法などが簡単に学べる。 https://www.algolia.com/apps/ARUFSHIXOF/api-keys/all サンプルプロジェクト作成 ライブラリが用意されているvueで実装。 インストール vue init webpack vue_algolia cd vue_algolia npm install npm install algoliasearch –save データの追加 日本語も念の為追加してみる algoliaのダッシュボードから追加。 indicesという項目から進む。 Add recordでjson形式で追加が可能。 試しに、日本語も追加してみる。 https://www.algolia.com/apps/ARUFSHIXOF/explorer/browse/getstarted_actors ビルド~デプロイ cloudfrontに上げてみた。 日本語も問題なく検索できる! http://dukpd3il98sac.cloudfront.net

circular object array

new Array() で作成した要素を複数の変数に代入した場合、代入先の要素全てで変更を追跡してしまう。

Laravel 5.7 findOrFailの404表示

Laravel 5.7でのエラー表示、 /Exceptions/Handler.php のrender()内で$this->isHttpException($exception) === falseとなっていたのでこうした。 use Illuminate\Database\Eloquent\ModelNotFoundException; class Handler extends ExceptionHandler { */ public function render($request, Exception $exception) { // findOrFailで返るnot foundは $this->isHttpException($exception) === false となるのでここで捕捉 if ($exception instanceof ModelNotFoundException){ // ここで処理 }

DockerでLAMP環境構築~cakephp3のインストールまで

これまでMAMPで開発していたプロジェクトをDocker化したので、その備忘録です。 作ったものは下に置いています。 https://github.com/shnr/docker_lamp_2 Dockerコンテナ作成 今回作成する環境 php 7.1 mysql 5.6 cakephp3.4 phpmyadmin ディレクトリ構成 どのようにでも出来そうですが、下の記事がわかりやすかったので参考にさせてもらいました。 https://qiita.com/ciloholic/items/c9bbb604d8338551b5dc ├── db │   ├── Dockerfile │   ├── my.cnf │   └── mysql_data ├── docker-compose.yml ├── html │   └── www └── web ├── Dockerfile ├── base.conf └── php.ini 各設定ファイルの作成 下準備 プロジェクトのルートに移動し、各ディレクトリを作成します。 $ cd ~/Dev/proj/docker $ mkdir db $ mkdir web $ mkdir html […]

複数のgitアカウントでSSH接続

複数アカウントを持っている場合の、SSH接続メモ。 秘密鍵の作成 デフォルトのid_rsaはメインアカウントで利用中の前提。 サブアカウント用の秘密鍵を作成する。 $ cd ~./ssh $ ssh-keygen -t rsa -C ‘some comment’ -f id_rsa_sub これをコピーして、 $ pbcopy < ~/.ssh/id_rsa_sub.pub SSH keys の New SSH key に追加する。 そのまま貼り付ければOK。 接続テストしてみる。 ssh -i ~/.ssh/id_rsa_sub -T git@github.com OK。 次に、少し設定ファイルを弄る。 $ vim ~/.ssh/config Host github.com HostName github.com User git Port 22 IdentityFile ~/.ssh/id_rsa TCPKeepAlive yes IdentitiesOnly yes Host […]

Lets Encryptの導入

Lets Encryptについて 参考:https://ssl.sakura.ad.jp/column/free-or-paid/ 無料でも問題ないのか? 同じSSL証明書である以上、強度は同等らしい。 何故無料で運営できているのか? Lets Encryptは寄付により運用できている。 無料であることのデメリットは? フィッシングサイトなどで悪用される場合がある。このため永久的に暗号化を保証できるか微妙ではある。 90日で更新が必要。なので自動化が必要になる。 寄付なので、サービス終了が起こり得るリスクがある。 導入手順 これに従って行う。 https://letsencrypt.jp/usage/ mod_sslの確認 このコマンドで、 # httpd -M この表示があればOK. ssl_module (shared) 443ポートの確認 iptableで開放されているか確認。 iptables -L httpsの表示があればOK。 ACCEPT tcp — anywhere anywhere tcp dpt:https Certbot クライアント準備 Epelを有効に yum install epel-release certbot-autoをインストール # wget https://dl.eff.org/certbot-auto # chmod a+x certbot-auto # ./certbot-auto ./certbot-auto を実行することで、必要なパッケージがダウンロードされる。 その後自動的に対話式で証明書作成が始まる。 virtualhost設定を取得してドメインリストが表示されるので、該当のものを選択してEnter. […]

12313