サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
re-engines.com
はじめに 最近、仮想通貨(暗号資産)の取引を始めてみたので、それにあたって確定申告に向けて仮想通貨の税金計算ツールを利用してみようと思いました。 そこで今回は、いくつかある仮想通貨の税金計算ツールのどれを使うのがもっとも適しているか、その特徴やサービス内容を比較してみます。 仮想通貨の税金計算ツールとは まず最初に、仮想通貨の税金計算ツールとは何か説明します。 仮想通貨の税金計算ツールは、損益計算ツールや収支計算ツールといった呼び方もされますが、簡単にいうと取引所の取引履歴やウォレットのトランザクションから仮想通貨の損益を計算してくれる支援ツールのことです。 仮想通貨取引は法定通貨を使った売買取引程度であれば自分で管理して計算することも難しくはありません。 ですが、仮想通貨同士の交換やステーキングなどといった仮想通貨特有の取引では、取引形態によって計算方法が異なるため損益計算が煩雑になりが
はじめに こちらの記事で紹介したように、Vue CLI 3からVue.jsを手軽にTypeScriptで書くことができるようになりました。しかし、vuexに関してはそのままではTypeScriptで書くのは難しいように思います。 そこで、今回は vuex-module-decorators というサードパーティ製のパッケージを使って、より安全でスマートにvuexを扱う方法を紹介します。 導入 以下のコマンドでパッケージをインストールします。 // for npm npm install -D vuex-module-decorators // for yarn yarn add -D vuex-module-decorators
はじめに Laravel 8からは、認証機能のscaffoldとして、これまで推奨されていたLaravel UIの代わりに、Laravel Jetstreamが推奨されるようになりました(Laravel 8でも使用することはできます)。しかし、このLaravel Jetstreamが高機能で見た目が良いかわりに、細かなカスタマイズがしにくいことから、Laravel UIを採用するケースもあるようです。 認証機能の実装については、これらのライブラリを使用する他に、Laravelの認証クラスを直接使って、自前の認証機能を実装することもできます。 そこで、今回はLaravelのブラウザ認証クラスの処理の流れをコードを示しながら紹介します。 認証機能の概要 認証機能では、 guard と provider が重要な概念となります。 guard は、リクエスト毎にユーザーを認証する方法を定義していま
はじめに Laravelでの独自の認証処理の実装を通して、認証関連のmiddlewareやguardについてまとめました。 認証処理の仕様 今回、実装する簡易な認証処理の仕様は、以下の通りです。APIでの使用を想定しています。 ヘッダーのAuthenticationに設定したBearerトークンの値が、予め決めた文字列と一致すること ヘッダーのuuid設定した値が、予めDBに登録してあるユーザのUUIDと一致すること 独自の認証処理の実装 独自の認証処理では、以下の項目を実装します。順番に内容を見ていきます。 Model UserProvider Guard Middleware Handlerとその他の設定 Modelの実装 認証処理に使うモデルは Illuminate\Foundation\Auth\User を継承している必要があります。今回実装する認証処理の仕様では、 getAut
はじめに 前回の記事では、Svelteの概要について紹介しました。そこで、今回はSvelteのStoreについて、どのように定義してどのように使用するかを紹介します。 SvelteにおけるStoreの概要 始めに、SvelteにおけるStoreについて、概要を説明します。 Storeの条件 Svelteでは、以下の条件に当てはまるものがStoreとみなされます。 constとして定義されている subscribe関数および、unsubscribe関数が実装されている また、subscribe関数および、unsubscribe関数には、それぞれ守るべき条件が定められていますが、ここでは割愛します。詳しく知りたい方は、こちらを参照してください。 Storeの種類 Svelteでは、できることが異なる3種類のStoreが定義できます。 writable(値の更新および取得が可能) readabl
はじめに 今後 Go を使用した案件をやる機会があり、現在 Go の勉強中なのですが、今回は案件でも使用するフレームワーク Gin を使用してログインAPIを実装したいと思います。Gin はメモリ利用量が少なく、 reflection を使用していないため高速で動作します。また、余計な機能がないため、学習コストが低く初心者にオススメです。 ログインAPIの作成 では早速ログインAPIを作成したいと思います。冒頭の通り今回は Gin を使用するので go get しておいてください。 package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { r := gin.Default() r. POST("/login", func(c *gin.Context) { c.String(http.Status
はじめに こんにちは。カイザーです。今回は、Laravel AdminにCSVインポート機能を追加する方法について、紹介します。 今回は、以下のようなbooksテーブルとBookモデルに対しての、CSVインポート実装を説明します。 なお、booksテーブルのマイグレーションとモデルの作成方法については説明を省略します。 Schema::create('books', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('title'); $table->string('author'); $table->date('published_at'); $table->timestamps(); });
はじめに こんにちは。Laravelでenumを使いたい時、PHPやLaravel本体ではサポートされていないのでComposer経由でパッケージを入れることになります。 今は bensampo/laravel-enum を使っており、とりあえず不自由ない感じなので、紹介しようと思います。 enumについて 列挙型 – Wikipedia railsで初めてenumを知ったのですが、C言語の時点で既にあったのですね。 私は「限られた値しか持てないデータ型」と認識してます。 例えば注文情報テーブルに支払方法を保存する時、データベースの orders テーブルに payment_type カラムを持たせるとします。 card, transfer, cash など支払方法名だけが orders.payment_type に入るようにしつつ、表示時は「クレジットカード」や「銀行振込」といった文字列
はじめに バックエンドの実装に関して、時間がかかる処理を行う場合、非同期に処理したいケースがあると思います。今回はLaravelで非同期に処理するための手軽な方法を紹介します。 動作環境 本記事ではPHP 7.2、Laravel 5.5の環境を想定しています。 準備 非同期に処理するに当たりジョブのキューを管理する方法としては、データベースを利用する方法やRedisを利用する方法などがあります。Laravelでは標準でデータベース、Redis、Amazon SQS、Beanstalkdを利用することができますが、今回は最も手頃なデータベースを使用する実装を紹介します。 デーブルの作成 以下のコマンドを実行してキューを管理するためのテーブルを作成します。
はじめに 引き続きLaravelの使い方を勉強しています。昔、別のフレームワークで「POSTされた文字列から改行コードのCRだけを削除する」、つまりwindowsから送信された場合は改行コードがCR+LFになるので、それをLFのみに変換するという機能を作ったことがありました。Laravelではどうやるのか調べて、middlewareという機能に行き当たりました。Laravelでは基本かつ頻繁に使われるもののようなので、少し掘り下げてみます。 環境はmacOS High Sierra+Laradockで構築し、LaravelのバージョンはLTS最新の5.5を使用します。 middlewareとは どのwebアプリも「HTTPリクエストをコントローラに渡し、必要な処理を行ってレスポンスを返す」というのが基本のフローです。Laravelにおいてはこのフローの前後に挟まる処理をmiddleware
はじめに こんにちは。webアプリにつきもののバッチ処理ですが、もちろんLaravelでもサポートされていて、crontabに書き散らすことなくバッチを設定できます。 今回はLaravelでコンソールやcronから処理を呼び出し、バッチとして実行する方法を紹介します。 環境 PHP 7.3.3 Laravel 5.8.21 artisanコマンド作成 以下のコマンドで、Artisanコマンドを自作します。ここで作成するコマンドは php artisan でCUIから実行できますし、今回のテーマであるバッチ処理でも呼び出すことができます。
はじめに 大量なデータのインポートやメールの送信など、処理時間が長くなるタスクを実行する際は非同期で実行することが多いと思います。RailsではActive Jobという便利な仕組みにより、非同期処理を簡単に実装することができます。 Active Job単体でも使用することはできますが、プロセスがクラッシュしたりコンピュータをリセットしたりするとジョブが失われてしまいます。そのため、production環境では後に紹介するDelayed JobやSidekiqなどのライブラリと合わせて使用することが一般的です。 先日、業務でDelayed Jobを使う機会がありましたので、今回はActive Jobの基本的な説明と、バックエンドでジョブを実行するためのライブラリの一つであるDelayed Jobを紹介します。 Active Job 大量なデータのインポートやメールの送信など、様々な処理を非
はじめに グローバルなアプリケーションだと、地域ごとにその地域にあったタイムゾーンで時間を表示したいケースがあります。実装の方針としては大きく分けて2つあり、バックエンドで日付を変換する方法とフロントエンドで日付を変換する方法です。 今回はセレクトボックスでタイムゾーンを選択するケースを想定し、フロントエンド側で日付を変換する方法としてMoment Timezoneを使った方法を紹介します。 Moment Timezone は日付の操作に関する様々な機能を提供するJavaScriptのライブラリです。サマータイムに対応しており、自動的に日付が補正されます。 セットアップ パッケージマネージャとしてyarnを使い、Railsアプリケーションで使用する前提で説明します。まずは、moment-time-zone-with-dataをインストールします。
はじめに こんにちは。最近dockerを触ってばかりいます。以前、ローカルでオレオレ証明書をサクッと発行する方法をご紹介しましたが、その記事の最後にご紹介した https-portal を使い、今回はdocker-composeのみでhttps化をしてみようと思います。 環境はmacOS High Sierra 10.13.6, Docker Desktop 2.0.0.3です。 https-portalとは dockerで構築したサーバを自動でhttps化してくれるコンテナで、nginxとlet’s encryptを内包しています。DNS登録されているドメインなら実際に証明書を取得し、ローカルの場合はオレオレ証明書に切り替えてくれます(ブラウザの警告は出てしまいますが)。 チュートリアルにはwordpressコンテナとの接続方法が記載されていますが、今回は一度構築したnginx+php-
はじめに ローカルのwebサーバにhttpsで接続する場合、よくある方法がオレオレ証明書の発行です。 リモート環境ならLet’s Encryptでサクッと終わるのですが、ローカルでも同じくらい簡単な方法は無いかと探したら、mkcertなるツールが見つかりました。 実際に試して数分で完了でき、とても手軽でしたので紹介・共有しようと思います。 前提 masOS High Sierra 10.13.6 Vagrant+CentOS7+nginx ローカルの /etc/hosts に設定したドメインで、ブラウザからhttp接続できるようになっている 概要 ブラウザに警告が出ないように自己証明書を作るのは本来複雑な手順が必要ですが、そのへんを自動でやってくれるのがmkcertです。golang製のツールで、開発環境用の証明書をお手軽に発行する目的で作られました。 It requires no con
はじめに こんにちは。以前、LaradockでLaravelの開発環境を作っていました。ひとまずLaravelを触ってみたい時はそれで十分ですが、ほとんどチュートリアルのコピペで環境構築が終わってしまうので、dockerやdocker-composeが何をしているのかよく分からないままでした。 Laravel以外の環境構築もDockerで行えるようになっておきたいですし、今回は自力でdocker-composeを書いてローカル環境を構築してみます。 環境はmacOS High Sierra 10.13.6、Docker Desktop 2.0.0.2がインストール済みであることを前提とします。 nginxでwebサーバを立てる 適当なディレクトリを決めて、その中で作業します。どこでも構いませんが、今回は ~/test として、必要なコンテナを構築する情報を docker-compose.y
はじめに こんにちはsuzukiです。Go言語の連載9回目です。 今回はライブラリのGinkgoを利用してBDDについて説明いたします。 BDDとは BDD(BehaviorDrivenDevelopment)とはビヘイビア駆動開発と呼ばれる開発方法です。 実現したい機能の振る舞い(要求仕様)を決める 振る舞い(要求仕様)を元にテストコードを作成 テストコードを満たすための機能を開発 リファクタリングを行う 上記のように開発していきます。 振る舞いの意味については色々な意見があるかと思いますが、この記事では要求仕様として進めさせていただきます。 Ginkgoについて 今回使用するGinkgoについて主要な関数についてまとめさせていただきます。 Ginkgoの概要 BDDを進める上でテストコードの作成を行いやすくするためのライブラリです。 GomegaというMatcherのライブラリと併用し
はじめに Go言語の連載4回目です。今回はGoのWeb Application Frameworkについて紹介します。 代表的なGoのWAF 皆さんはWAFがどのようなものかご存知だとは思いますが、改めて簡単に説明します。WAFは動的なウェブサイトなどの開発をサポートするアプリケーションフレームワークです。WAFが提供する代表的な機能としては、ORM、テンプレートエンジン、セッション管理などが挙げられます。本ブログでよく取り上げるRailsもWAFの一種です。 GoにおけるWAFは大きく2つに分けられます。1つは軽量なWAF、もう一つはフルスタックなWAFです。Goでは大きくて多機能なアプリケーションを作るのではなく、小さくてシンプルなアプリケーションを組み合わせて使うことが良いとされています。そのため、軽量なWAFが主流なようです。 軽量なWAF 代表的なWAFとして「Echo」と「Gi
はじめに みなさん、アプリサーバのチューニングはどのように行っていますか? 私の場合、使うサーバのスペックがだいたい同じくらいなので、過去の設定ファイルを使いまわしていました。 そんな中、先日本番環境で初めてPumaを使用しましたが時間の都合でチューニングが行えませんでしたので、今回Pumaのパフォーマンスチューニングについて調べてみました。 チューニングで注意する項目 アプリサーバのチューニングにおいて注意する項目は下記のとおりです。 子プロセスの数 スレッドの数 Copy-on-write サーバスペック(メモリ、CPU等) これらの項目はPumaに限らずUnicornやPassengerなどの他のアプリサーバにも当てはまります。 それでは個別の設定を見ていきましょう。 子プロセスの数 Puma(UnicornとPassengerも同様)はforkを使う設計になっており、アプリのプロセ
はじめに こんにちは、今回はGo言語でのエラーハンドリングとログ関連についての記事となります。 例外のないGo言語でどのようにエラーを伝搬させていくのかについて一つの方法を紹介させていただき、その後、そのエラーをファイルに出力する方法を紹介したいと思います。 なお、開発環境の構築がまだの方は、ぜひこちらで環境構築をしてからお読みいただければと思います。 エラーハンドリングについてですが、まずはGo言語でerrorとは一体何ものなのかについて触れたいと思います。その後、pkg/errorsパッケージでerrorをwrapをする方法を記載し、次の節でそれを活用した独自のerrorsパッケージを作成したいと思います。 error インターフェース Go言語では例外の概念がないため(Go2では例外が組み込まれるかもしれませんが)、ファイルの処理などで下記のようにerrorを返却するコードをよく目に
はじめに こんにちは、suzukiです。 先週から引き続きgo強化週間です。新しい言語の習得に四苦八苦しております。 第5回目の発表内容は、testifyを利用してテストの作成について触れさせていただきます。 Goテストフレームワークのスター数 Goのテストフレームワークについて、参考リンクを色々探していたのですが、まだまだ群雄割拠の時代です。 Goではtestingパッケージを標準で提供していますが、やや使い方に難があります。そこで、行いたいテストによって他のフレームワークを導入されているようです。 また参考リンク内でよく「デファクトスタンダートがない」等の記述もあったため、スター数が多めのリポジトリ検索をしました。
はじめに こんにちは、nukkyです。 今回はGo言語の連載2回目です。 普段はアプリエンジニアでiOS時々Androidなのですが、今回RE:ENGINESでGo言語の勉強会を行い、せっかくの機会なので自分の知見を広げるためにも今回のブログはGo言語の基礎、基本文法を紹介していこうと思います。 変数 変数の定義 Goにおける全ての変数には「型」を備えます。「型」の詳細については後述します。 早速、変数を宣言してみます。
はじめに こんにちは、雨の日が最近多く、気温の変化が激しくて、体調管理に気をつけなければと思うこの頃です。 さて、今回はGo言語についてです。Go言語をご存知の方は、最近ですと、2018年8月末に1.11がリリースされことや、Go2でのgenericsやエラーハンドリングに関する議論など耳にされている方も多いのではないでしょうか。 改めて話題になってたことで、私たちもGo言語を改めて学びなおそうと、勉強会合宿を開催しました。そこで発表・共有した内容を簡単にまとめ、数回にわたり連載を予定しております。 今回の記事では、改めてGo言語を勉強してみたいという方向けに、Go言語概要と環境構築から、Go 1.11でexperimentalでリリースされた Modules について紹介したいと思います。 Go言語(Golang)とは Go言語の連載最初の1回目の記事なので、簡単にGo言語についても説明
早速使ってみよう 今回はアプリ内ではなくOSの設定画面に表示されるように作成していきたいと思います。 Settings.bundleの準備 OSの設定画面に表示するようにSettings.bundleを準備します。 今回サンプルでは「ExampleProject」を作成しこちらで進めていきます。 Xcode上でExampleProject直下にNew FileからSettings bundleを選択し、名前もそのままSettingsとします。 すると作成したSettings.bundle内にRoot.plistがあるのでこちらを以下のように編集します。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/P
はじめに 久しぶりにVue.jsの記事を書きます。 TrelloやGithubのカンバンのようなタスク管理を作りたいと考え、良い感じのライブラリないかな、と探していたところ、vue-draggableを見つけました。 https://github.com/SortableJS/Vue.Draggable Sortable.jsがベースのようで、かなり簡単にドラッグ機能が実装できます。 今回はこちらのライブラリを紹介したいと思います。 準備 今回もJSFiddleを使用します。 しばらく使ってませんでしたが、リニューアルしてましたね。 JSフレームワークをVueで選択しておけば、あとはそのままで良さそうです。 見た目を良くするために、Materializeを使用しています。 CDNのURLをResourcesに登録します。 また、今回の主役でもあるvue-draggableも登録します。 C
はじめに 個人的にRailsで作成していたWebアプリケーションのフロントエンド部分をVue.jsに切り出しました。 今回は私の使い方を振り返りつつ、記事にしたいと思います。 ドキュメントや他サイト様の記事を参考に、我流が入っている部分もあるので、ベストとは言えないかと思いますが、何かしらの気づきになれば良いな、と思います。 以前書いた、Vue.jsとRailsでTODOアプリのチュートリアルがベースにはなっています。 全体的なこと ディレクトリ構成 RailsのWebpackerでVue.jsをインストールすると、 javascript ディレクトリができるので、その下をVue.js専用としています。 javascript ├── components │ ├── commons │ │ ├── alert.vue │ │ └── loading.vue │ ├── errors │ │
はじめに 以前、Qiitaに書いた記事ですが、いくつか現行バージョンではうまくいかないという指摘があったため、やり直してみました。 各バージョンは、2018年3月24日時点の安定版で試しています。 作るもの 簡単なTODOアプリです。 TODOの管理はRailsのAPIで実施します。 前提条件、及び環境 Ruby、Rails、Node.jsの環境をご用意ください。 下記の記事などが分かりやすいです。 rbenvを利用したRuby環境の構築 Node.jsとnpm インストールとアップデート また、Webpack、およびVue.jsはyarnでインストールされるため、yarnもインストールしておいてください。 yarnを使ってみた 本記事を書くにあたり、下記の環境で実施しました。 Ruby 2.5.0 Ruby on Rails 5.1.5 Node.js 9.9.0 yarn 1.5.1
はじめに こんにちは、最近休みなく仕事をいただいており、ブログへの投稿が久しぶりになってしまいました。今後は、ちゃんと定期的に投稿できるようにしたいと思います。 さて、今回はWebサイトのログインフォームやコンメント投稿画面などでロボットによるアクセスかどうかを判定し、排除するための機能である、CAPTCH(キャプチャ)に関しての投稿です。 CAPTCHも色々と実装方法はあると思いますが、今回はGoogleのInvisible reCAPTCHをRailsプロジェクトに組み込む方法を詳細させていただきます。 reCAPTCHAとは まず、「CAPTCH」とは「Completely Automated Public Turing test to tell Computers and Humans Apart」の略で、直訳すると「コンピュータと人間を分かち合うために完全に自動化された公的チュー
はじめに 知人からタイトルのような質問をされました。 「そんなわけないだろ」と思い、(この時私にはAmazon Linux 2の知識はほぼありませんでした。今もそんなにありません。) 手助けに入ったのですが、確かに普通にやったら面倒くさそうでした。 結論から申し上げますと、下記のページで対応できました。 本記事もこちらの内容を取り上げさせていただきたいと思います。 Help with certbot on the new “Amazon Linux 2” 2017年の12月くらいにリリースされたLinuxディストリビューションです。 Amazon Linux 2 のご紹介 Developers.IO 様で紹介されておりましたので、そちらの記事を貼らせていただきます。 【速報】AWS向けの新ディストリビューション Amazon Linux 2 を発表! Amazon LinuxはRedhat
次のページ
このページを最初にブックマークしてみませんか?
『RE:ENGINES(リエンジンズ)』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く