はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    WWDC25

『Simple is Beautiful.』

  • 人気
  • 新着
  • すべて
  • すでにレコードがあるテーブルにデフォルト値を設定せずNOT NULL制約をつけたカラムを追加する | Simple is Beautiful.

    4 users

    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

    • テクノロジー
    • 2021/03/10 14:30
    • SendGridを使ってSMTPでメールを送信する方法 | Simple is Beautiful.

      4 users

      blog.kozakana.net

      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

      • テクノロジー
      • 2020/11/25 00:37
      • rails
      • MySQLのN-gramを使った全文検索について調べてみました | Simple is Beautiful.

        7 users

        blog.kozakana.net

        今回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

        • テクノロジー
        • 2020/06/11 22:12
        • tech search
        • tech search fulltext
        • mysql
        • search
        • Article
        • 検索
        • Tech
        • Elasticsearchの確認系コマンド6つ | Simple is Beautiful.

          4 users

          blog.kozakana.net

          開発する際などにちゃんと設定したことが反映されているかなどを確認するためによく使うのでメモとして残しておきます。 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 プラグイン/モジュ

          • テクノロジー
          • 2020/05/16 18:08
          • elasticsearch
          • CodeBuildでGitHubのOrganizationアカウントと接続する | Simple is Beautiful.

            3 users

            blog.kozakana.net

            CodeBuildで個人のアカウントとの接続ではなく所属しているOrganizationと接続したかったので調べてみました。 GitHubアカウントと接続 GitHubアカウントのリポジトリを選択してOAuthで接続します。 GitHubの連携設定 右上のアカウントの設定を選んだあと左側のメニューからApplicationを選択します。次にAWS CodeBuildを選択して詳細を開き 下の方にあるOrganization accessのところにある対象のOrganizationの横にあるGrantを押します。 これでOrganizationアカウントとの連携の設定は完了なので、CodeBuildの設定画面に戻ってGitHubリポジトリの横のリロードマークを押してリロードするとGrantを押したOrganaizationのプライベートリポジトリも表示されているはずです。 参照 https:

            • テクノロジー
            • 2020/03/26 12:50
            • aws
            • github
            • あとで読む
            • Node.jsでTinySegmenter、kuromoji、MeCabを使って分かち書きをしてみる | Simple is Beautiful.

              4 users

              blog.kozakana.net

              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

              • テクノロジー
              • 2020/03/14 21:25
              • ふつうのWebサイトのセッションの仕組み | Simple is Beautiful.

                3 users

                blog.kozakana.net

                こんな感じの構成を想定してます セッションデータ保存用データベース:Redisやmemcacheなど セッションID:Cookieに保存 セッションの仕組み Cookieに保存されたセッションIDとサーバーが持っているセッションIDを比較して一致しているものがあったらユーザーがログイン済みと判断します。 ログインまでのフロー ログインしていない状態ではユーザーはセッションIDを持っていません。このためまずユーザーにフォームなどでIDやパスワードなどでログインを求めます。 認証が成功したらサーバーはセッションIDを作成します。生成するセッションIDは他のユーザーが推測しにくい様に長いランダムなものを使用します。 セッションIDとユーザー情報を紐付ける為に、生成したセッションIDとユーザーIDをペアにしたデータをRedisなどのデータベースに保存します。 生成したセッションIDをCookieに

                • テクノロジー
                • 2020/03/05 14:46
                • サーバ
                • Node.jsのライブラリsharpでリサイズを試してみる | Simple is Beautiful.

                  3 users

                  blog.kozakana.net

                  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) }) 出力

                  • テクノロジー
                  • 2020/01/15 12:52
                  • JavaScriptで全文検索(N-gram)を実装してみる! | Simple is Beautiful.

                    80 users

                    blog.kozakana.net

                    プラコレアドベントカレンダーもラストスパート!こんにちは、森です! 仕組みをちゃんと理解するには実装してみることが一番!ということで、N-gramの中でも一番実装が簡単なuni-gramをjsで実装してみました! 目次 全文検索とは uni-gram インデックスの作成 文章にdocument IDを振る 文字列の分割 文字位置付与 トークンごとに位置情報をまとめる トークンをキーに引けるように保存 インデックスから検索 検索文字列をトークンに分割 インデックスからトークンのデータを取得 取得したデータをつなぎ合わせる 実装 動かし方 インデックスの作成 インデックスから文字列を検索 コード 参考文献 最後に 全文検索とは まず最初に全文検索とはなにかってことですが、Wikipediaで調べてみました「コンピュータにおいて、複数の文書(ファイル)から特定の文字列を検索すること。「ファイル名

                    • テクノロジー
                    • 2019/12/24 12:12
                    • javascript
                    • N-gram
                    • 全文検索
                    • 言語処理
                    • あとで読む
                    • DynamoDBとAWS LambdaでアクセスランキングAPIをつくる! | Simple is Beautiful.

                      42 users

                      blog.kozakana.net

                      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という関数

                      • テクノロジー
                      • 2019/12/12 12:06
                      • lambda
                      • aws
                      • dynamodb
                      • あとで読む
                      • Node.js
                      • techfeed
                      • CloudFrontのQueryString Forwarding and Cachingの設定と動作について | Simple is Beautiful.

                        5 users

                        blog.kozakana.net

                        originへのリクエストはパラメータが付与されなくなります。 Forward all, chache based on whitelist この設定では基本的にNoneと同じ様にすべてキャッシュします。ただし、下のQuery String Whitelistに記入されているものに関してはクエリパラメータをそのまま通します。 キャッシュに関してはクエリパラメータの値が同じ場合にはキャッシュがあれば使用し、なければ取得してキャッシュします。異なった場合には取得してキャッシュするという動きをします。 クエリパラメータ名をこの様にaとbと設定したときのキャッシュのされ方を見てみます。 クエリパラメータが1つの時 最初にアクセスしたURL /style.css?a=123 次にアクセスした時の動作 URL キャッシュ

                        • テクノロジー
                        • 2019/11/04 20:48
                        • AWS
                        • PDFを扱うツールを集めたdockerコンテナを作りました | Simple is Beautiful.

                          3 users

                          blog.kozakana.net

                          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

                          • テクノロジー
                          • 2019/04/01 21:38

                          このページはまだ
                          ブックマークされていません

                          このページを最初にブックマークしてみませんか?

                          『Simple is Beautiful.』の新着エントリーを見る

                          キーボードショートカット一覧

                          j次のブックマーク

                          k前のブックマーク

                          lあとで読む

                          eコメント一覧を開く

                          oページを開く

                          はてなブックマーク

                          • 総合
                          • 一般
                          • 世の中
                          • 政治と経済
                          • 暮らし
                          • 学び
                          • テクノロジー
                          • エンタメ
                          • アニメとゲーム
                          • おもしろ
                          • アプリ・拡張機能
                          • 開発ブログ
                          • ヘルプ
                          • お問い合わせ
                          • ガイドライン
                          • 利用規約
                          • プライバシーポリシー
                          • 利用者情報の外部送信について
                          • ガイドライン
                          • 利用規約
                          • プライバシーポリシー
                          • 利用者情報の外部送信について

                          公式Twitter

                          • 公式アカウント
                          • ホットエントリー

                          はてなのサービス

                          • はてなブログ
                          • はてなブログPro
                          • 人力検索はてな
                          • はてなブログ タグ
                          • はてなニュース
                          • ソレドコ
                          • App Storeからダウンロード
                          • Google Playで手に入れよう
                          Copyright © 2005-2025 Hatena. All Rights Reserved.
                          設定を変更しましたx