サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
blog.kozakana.net
すでにレコードがあるテーブルにデフォルト値を設定せずにNOT NULL制約をつけたカラムを追加しようとすると、追加したカラムのレコードの値をNULLにする訳にはいかずエラーになってしまします。 これらに対応するには一度デフォルト値を指定する方法と、値をプログラム側で変更する2つの方法がありそうなのでSQLとRailsのmigrationで試してみました。 一度デフォルト値を指定する デフォルト値、NOT NULL制約を指定したカラムを追加 default値の設定を外す この方法はアプリケーションを動かしながら変更できるという利点があるので、この方法で十分な場合はこの方法を使うと良いと思います。 SQL ALTER TABLE users ADD group_id int DEFAULT 1 NOT NULL; ALTER TABLE users MODIFY group_id int(11
Railsを使ってSendGridのSMTPでメールを送ってみました。 このような手順で進めます。 1. ドメインの認証をする 2. メール送信専用のAPIキーを作る 3. Railsの設定 1. ドメインの認証をする SMTPの接続情報を教えてください。によると SMTPでメールを送信する場合、SMTP認証が必須となります。 とのことなのでまずはドメインの認証を行います。 Settings > Sender Authentication > Domain Authentication と進み、Authenticate Your Domainを押します。 今回はAWSのRoute53を使用しているのでRoute53を選択します。 使用するドメインを入力してNextを押します。 次の画面でRoute53に入力する情報が表示されるのでこれをRoute53に入力していきます。 AWS側の設定 A
今回MySQL5.7.22を用いて検証しています。 初期設定 データベース作成 mysql> CREATE DATABASE fts; Query OK, 1 row affected (0.00 sec) mysql> use fts; Database changed テーブル作成 テーブル作成時に全文検索をするカラムの型をFULLTEXTにし、パーサーにngramを指定します。 mysql> CREATE TABLE documents (id SERIAL PRIMARY KEY, content VARCHAR(255), FULLTEXT(content) WITH PARSER ngram) CHARACTER SET utf8; Query OK, 0 rows affected (0.10 sec) レコード挿入 レコードの挿入は通常の文字列同様に入れられます。 mysq
開発する際などにちゃんと設定したことが反映されているかなどを確認するためによく使うのでメモとして残しておきます。 Elasticsearchの情報の確認 プラグイン/モジュール一覧 インデックス一覧 インデックスのマッピング確認 1件取得 アナライザーの動作確認 Elasticsearchの情報の確認 curl localhost:9200/_nodes/stats?pretty メモリ使用量やインデックスの情報など様々な情報が得られます。 詳細はNodes Statsにあります。情報量が多いので例えば物理メモリの合計バイト数(ios.mem.used_in_bytes)を調べるにはjqコマンドを使ってこのようにすると簡単に確認できます。 curl localhost:9200/_nodes/stats |jq .nodes[].os.mem.used_in_bytes プラグイン/モジュ
CodeBuildで個人のアカウントとの接続ではなく所属しているOrganizationと接続したかったので調べてみました。 GitHubアカウントと接続 GitHubアカウントのリポジトリを選択してOAuthで接続します。 GitHubの連携設定 右上のアカウントの設定を選んだあと左側のメニューからApplicationを選択します。次にAWS CodeBuildを選択して詳細を開き 下の方にあるOrganization accessのところにある対象のOrganizationの横にあるGrantを押します。 これでOrganizationアカウントとの連携の設定は完了なので、CodeBuildの設定画面に戻ってGitHubリポジトリの横のリロードマークを押してリロードするとGrantを押したOrganaizationのプライベートリポジトリも表示されているはずです。 参照 https:
20190408 Node.jsでTinySegmenter、kuromoji、MeCabを使って分かち書きをしてみる Node.jsで簡単に使うことができる3つの分かち書きができるライブラリを使ってみました。 TinySegmenter kuromoji.js MeCab TinySegmenter JavaScriptだけで書かれて辞書を持たず機械学習で分かち書きを行うTinySegmenterを使ってみます。 npm install tiny-segmenter npmでtiny-segmenterを入れるだけで簡単に、辞書も持っていないので軽快に動きます。 const TinySegmenter = require('tiny-segmenter') const segmenter = new TinySegmenter() const segs = segmenter.segme
こんな感じの構成を想定してます セッションデータ保存用データベース:Redisやmemcacheなど セッションID:Cookieに保存 セッションの仕組み Cookieに保存されたセッションIDとサーバーが持っているセッションIDを比較して一致しているものがあったらユーザーがログイン済みと判断します。 ログインまでのフロー ログインしていない状態ではユーザーはセッションIDを持っていません。このためまずユーザーにフォームなどでIDやパスワードなどでログインを求めます。 認証が成功したらサーバーはセッションIDを作成します。生成するセッションIDは他のユーザーが推測しにくい様に長いランダムなものを使用します。 セッションIDとユーザー情報を紐付ける為に、生成したセッションIDとユーザーIDをペアにしたデータをRedisなどのデータベースに保存します。 生成したセッションIDをCookieに
ImageMagickなどよりも早くリサイズできるNode.jsのライブラリsharpを使ってみました。 横幅を指定 高さを指定 幅、高さを指定してリサイズ(cover) 幅、高さを指定してリサイズ(contain) 幅、高さを指定してリサイズ(fill) 幅、高さを指定してリサイズ(inside) 幅、高さを指定してリサイズ(outside) インストール npm install sharp 元画像 1024x683の元の画像です。 横幅を指定 アスペクト比を保ったまま横幅512pxにリサイズします。 const sharp = require('sharp') sharp('image.jpg') .resize(512) .toFile('output.jpg', (err, info)=>{ if(err){ throw err } console.log(info) }) 出力
プラコレアドベントカレンダーもラストスパート!こんにちは、森です! 仕組みをちゃんと理解するには実装してみることが一番!ということで、N-gramの中でも一番実装が簡単なuni-gramをjsで実装してみました! 目次 全文検索とは uni-gram インデックスの作成 文章にdocument IDを振る 文字列の分割 文字位置付与 トークンごとに位置情報をまとめる トークンをキーに引けるように保存 インデックスから検索 検索文字列をトークンに分割 インデックスからトークンのデータを取得 取得したデータをつなぎ合わせる 実装 動かし方 インデックスの作成 インデックスから文字列を検索 コード 参考文献 最後に 全文検索とは まず最初に全文検索とはなにかってことですが、Wikipediaで調べてみました「コンピュータにおいて、複数の文書(ファイル)から特定の文字列を検索すること。「ファイル名
Lambda関数の作成 関数は別ファイルにしても良いですが、今回は簡略化のためにすべて同じファイルに作成することとしています。 まずは共通で読み込むライブラリの読み込みをします。日付の処理でdayjsを使用しているため事前にnpm install dayjsをしておいてください。 コードの途中にコメントを入れているような感じで書いているので以下現れるコードをつなぎ合わせるとすべてのLambda関数が完成します。 'use strict'; const AWS = require('aws-sdk') const docClient = new AWS.DynamoDB.DocumentClient({region: 'ap-northeast-1'}) const dayjs = require('dayjs') アクセスを日毎に記録する関数 アクセスを記録するためにaccessという関数
originへのリクエストはパラメータが付与されなくなります。 Forward all, chache based on whitelist この設定では基本的にNoneと同じ様にすべてキャッシュします。ただし、下のQuery String Whitelistに記入されているものに関してはクエリパラメータをそのまま通します。 キャッシュに関してはクエリパラメータの値が同じ場合にはキャッシュがあれば使用し、なければ取得してキャッシュします。異なった場合には取得してキャッシュするという動きをします。 クエリパラメータ名をこの様にaとbと設定したときのキャッシュのされ方を見てみます。 クエリパラメータが1つの時 最初にアクセスしたURL /style.css?a=123 次にアクセスした時の動作 URL キャッシュ
PDFを画像化したり、グレースケールにしたり、分割したりなどPDFを扱うツールを集めたdockerのコンテナを作ったので紹介します。 入っているツール 下記のツールが入っています(今後も更新する予定です) pdftk ghostscript qpdf pdf2dsc pdf2ps pdfdetach pdffonts pdfimages pdfinfo pdfseparate pdftocairo pdftohtml pdftoppm pdftops pdftotext pdfunite 準備 DockerHubのgkmr/pdf-toolsというリポジトリにあります。 docker pullした後PDFファイルの入出力先としてpdfディレクトリを作成します。 docker pull gkmr/pdf-tools mkdir pdf 使い方 基本的な使い方はPDFファイルを先程作成したpd
このページを最初にブックマークしてみませんか?
『Simple is Beautiful.』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く