7839

雑草魂エンジニアブログ

2020-01-01から1年間の記事一覧

【Rails】DB を使わずに、jsonファイルで簡易ユーザー管理機能を実装する

ある Rails アプリケーションにおいて、下図のように、1つの DB を複数のアプリケーションが参照する場合がある。(ただし、複数のアプリケーションから、自由に DB の書き込みができるのではなく、1つのみに Read/Write 権限を持たせて、その他は Read 権…

【Python/JWT】LINE WORKS の BOT の AccessToken を取得する

今回、LINE WORKS に新しく BOT を導入することになった。BOTの用途は、通知用であり、インタラクティブである必要はない。 通常の LINE の BOT を作成したことはあったが、LINE WORKS での BOT 作成は初だったので、備忘録として残しておく。 システム概要 …

【OpenSSL】オレオレ(自己署名)証明書を作成する(EC2)

EC2 のステージング環境で SSL 対応がしたいとの要望があり、まだSSL サーバー証明書の購入ができていなかったこともあり、暫定でオレオレ(自己署名)証明書を作成した。今回は、その備忘録を残しておく。 オレオレ(自己署名)証明書とは OpenSSLのインス…

【Rails】SideKiqを用いて非同期処理(バックグラウンドジョブ)を実行する

今回、Rails のプロジェクトで、バックグラウンド処理を実装したくなり、SideKiq を用いて実装を行ったので、備忘録として残しておく。 ジョブ管理 Sidekiq とは Redis をインストールする Sidekiq を実装する (おまけ)AWS EC2へのデプロイ Redis のインス…

【Linux】Supervisor でプロセス制御(Rails + Puma / Capistrano)

EC2(AmazonLinux2)に構築した Railsアプリケーションのプロセス管理、具体的にはデーモンプロセスとして動かすために、今回 Supervisor を使ったので、備忘録として残しておく。 Supervisor v4.2.1 Supervisor とは Supervisor のコマンド supervisord sup…

【Rails】Capistrano で Rails アプリケーションを自動デプロイ(サーバー設定/デプロイ編)

先日の【Rails】Capistrano で Rails アプリケーションを自動デプロイ(設定編)に続き、今回は実際にデプロイするにあたり、サーバー側で事前に設定した内容に関して、備忘録として残しておく。 Capistrano ver.3.14.1 Rails ver.5.2.4 AmazonLinux2 サーバ…

【Rails】Capistrano で Rails アプリケーションを自動デプロイ(設定編)

Rails アプリケーションを本番、ステージング環境にデプロイする際に、同じ作業を何回もやるのは正直面倒である。今回、Capistrano というデプロイ自動化ツールを使ったので、備忘録を残しておく。 Capistrano ver.3.14.1 Rails ver.5.2.4 サーバーの環境構…

【Puma】Rails 5.2 + Puma + Nginx のデプロイ設定

先日、【EC2】Rails5 環境構築(Ruby + MySQL5.7 + Node.js + Nginx) について書いた。そして、今回は、アプリケーションサーバーである Puma について色々と調べて設定したので、備忘録を残しておく。(以前、Rails を使っていた時は、Unicorn が主流だっ…

【React】React + GSAP(TextPlugin)で1文字ずつ表示されるアニメーションを実装する(Next.js)

先日に引き続き、今回も GSAP で実装したアニメーションをご紹介。 今回は、タイプライター風アニメーションというのか、1 文字ずつ文字が表示されるアニメーションを実装した。 TextPlugin 使い方 React での実装例 まとめ 関連する記事 TextPlugin greenso…

【React】React + GSAP(ScrollTrigger)でスクロールアニメーションを実装する(Next.js)

スクロールアニメーションを実装するにあたり、GSAP の ScrollTrigger を使うことで簡単に実装できたので、今回はその実装方法を紹介する。 GSAP とは ScrollTrigger の特徴 React での実装例 インストール 使い方 参考例 まとめ GSAP とは GSAP(GreenSock …

【JS / React】ブラウザバックを制御する

今回、HP 内で意図的にブラウザバックを制御して、UX を向上させられるようにしたので、実装方法を紹介する。 ブラウザバックの制御に関して 実装例 まとめ ブラウザバックの制御に関して ブラウザバックを制御するためには、セッション履歴を操作する必要が…

【GitHub Actions】Next.js + Firebase Hosting をビルド&デプロイする

GitHub Actions は、最高に便利である。 今回は、Next.js で作った HP を Firebase Hosting に自動デプロイする GitHub Actions を紹介する。 GitHub Actions の構成 workflowの新規作成 GCPの設定 Firebaseの設定 Slack Appの設定 処理実行 まとめ GitHub A…

【SSH】踏み台サーバーを経由した多段SSH接続のやり方(.ssh/configの利用)

最近、サーバー運用などを勉強している。 VPC 環境を構築する時に、サブネットを多段に分割してセキュリティレベルを分け、踏み台サーバー経由でしかSSH接続できないようにする構成が多いようだ。 踏み台サーバーを経由した多段 SSH 接続で、AWS(EC2)で運…

【EC2】Rails5 環境構築(Ruby + MySQL5.7 + Node.js + Nginx)

最近、全く更新できていなかった。。。 今年やったことは今年のうちに。自分の棚卸しも兼ねて、一気にアウトプットしていきたいと思う。 今回は、AWSのEC2に、Railsアプリケーションをデプロイするにあたり、毎回調べていたので、備忘録として環境構築方法を…

【Python/Django】logging を設定して、リモート syslog サービスにログを出力する(システム監視)

今回、Djangoのアプリケーション運用監視において、Zabbix を用いることになり、監視サーバーにアプリケーション上のエラーログなどを出力する必要があった。Python の標準モジュールである logging を用いて簡単に設定できたので紹介する。 動作環境 Python…

【Python】リスト内包表記の使い方まとめ

Python を使って、2次元配列を 1次元配列に変換したり、連想配列の要素である配列要素を抽出して 1つの配列にしたい場合に、for文を使わずに、リスト内包表記でできないんだっけ?と思ったことが、今回の記事を書くきっかけである。そこで、今回はリスト内包…

【VSCode】Docker の Python 環境でリモート開発を行う(Remote - Containers)

VSCode の Python開発環境で、Pylint を使っている時に、以下のような Lint エラーが出た。 Unable to import '****' pylint(import-error) 問題なくモジュールを使うことができるのに、VSCode 上で Lintエラーが出てしまっていた。この点に関して、どのよう…

【Python】API を用いてファイルを分割アップロードする

Python(Django)のアプリケーションを開発している中で、クラウドストレージに、写真 や Excel 、PDF などのデータを API 経由でアップロードを行ったので、備忘録として残しておく。 今回データをアップロードする API では、バイナリーデータに 512KB の…

【Python】Excel を PDF に変換する(Alpine Linux + LibreOffice )

最近は、全くブログを更新できておらず、反省しなければと思っている今日この頃。お陰様で、下書きは溜まりに溜まっているので、整理しながら順次公開していきたいと思う。 今回は、Docker の Alpine Linux 上で、Excel ファイルを PDF に変換する処理を実装…

【React】ReactでCSSアニメーション(react-transition-group の利用)

最近は、UIフレームワークばかりを使っていて、独自でアニメーションを実装する機会がなかったが、React で簡単なタブ切り替えのスライドイン・アウトを実装する機会があったので、React での CSS アニメーション実装に関して備忘録を残しておく。 react-tra…

【React】Excelファイルの読み込み → json 変換の実装(SheetJS js-xlsx の利用)

今回、Excel ファイルをブラウザで読み込み、json に変換して、API で POST する処理を実装したので、備忘録として残しておく。本記事では、Excel ファイルをブラウザで読み込み、json に変換するまでのコードを紹介する。 SheetJS js-xlsx サンプルコード …

【React】React.lazy + React.Suspense + React Routerを使ったローディング画面実装とコード分割

React の SPA を実装する際に、画面遷移時にローディング画面を挿入したいことがある。今回、React v16.6 から利用可能になったReact.lazy と React.Suspense を初めて使ってみたので、備忘録として残しておく。 React.lazy とは React.Suspense とは React.…

GitHub から Clone できない。。。Personal access tokens の活用

先日、ローカル環境での開発が終了し、早速、客先のサーバーにデプロイをしようとした際に、エラーが発生して、あれ?GitHub から Clone できない。。。となって焦ってしまった。 同僚に聞くと、即座に回答が返ってきて、そんな裏技あるの?と思ったので、備…

【Next】Next.js のルーティング(React Router ではなかった。。。)

最近、Next.js をよく使っている私だが、先日の案件で SPA で S3 などを用いた静的ウェブサイトとしてホスティングしたいという話になった。よし!今回も Next.js でいくぞ!と意気込んだが、検討した結果、通常の React で React Router を使って実装するこ…

【JS】Fetch API のResponse には気をつけて。axios とは違うぞ。。。

昨日、Fetch API を使うにあたり、大きなミスを犯して、無駄な時間を潰してしまったので、反省を込めて、この備忘録を残しておく。 Fetch APIとは ハマった罠 Fetch API のラッパー関数を作った まとめ Fetch APIとは Fetch APIとは、XMLHttpRequestと同じく…

【Next】Next.js + SocketIO で簡単なチャットアプリを作る

今回は、SocketIO を用いた簡単なチャットアプリを作ってみたので、紹介する。 Next.js + Socket通信の実装 サーバーサイド フロントエンド Material-UI で簡単にUI構成 まとめ なお、実装したサンプルコードは GitHub に公開している。 Docker でコンテナを…

【AWS】Next.js(SSR) を AWS(ECR + ECS + Fargate) にデプロイしてみた

Next.js(SSR)のアプリケーションを作成して、AWS にデプロイしてみたので、備忘録として残しておく。 0. ECR にイメージリポジトリを作成する 1. アプリをコマンドで実行できることを確認する 2. docker imageを作成する 3. ECRにdocker imageをpushする 4…

技術ブログを書くとは〜ブログメンタリングを通して

私は今年の6月から3ヶ月間、カックさん( @kakakakakku )のブログメンタリングを受けてきた。今回は、その振り返りをやりたいと思う。また、今回の記事が本ブログを書き始めて、ちょうど50記事目になる。 技術ブログってどうなの?なんかアウトプットしたい…

【Next】API Routes と next-connect を使ったフロントエンド爆速開発

Next.js のカンファレンス Next.js Conf。OGPのチケットがカッコ良すぎて、すごい盛り上がりのようだ。デザインセンスが良すぎる。私もチケット欲しさに、即座に登録した。オンライン開催とのことで、当日が楽しみだ。登録がまだの方は、是非、下記からどう…

【Next】getInitialProps・getStaticProps・getStaticPaths・getServerSideProps の使い方まとめ

Next.js で開発しているときに、getInitialProps・getStaticProps・getStaticPaths・getServerSideProps について、いつ、どのように使うべきか、きちんと整理できておらず、自分なりの整理をしてみた。 今回整理する API は、どれもページコンポーネントで…