サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
WWDC25
qiita.com/QUANON
この記事は? Ruby の静的コード解析の定番 Gem の RuboCop。そのひとつひとつのルールのことを Cop と呼びます。そして、RuboCop Rails は Rails 向けのルールを RuboCop に追加するための Gem です。 ふと、RuboCop Rails で追加された Cop (ルール) を確認することで、Rails の知らない機能を知るいい機会になるのではと思いました。そこで、試しに 2022/09/09 (金) にリリースされたバージョン 2.16.0 の内容を見てみました そうすると、案の定知らないことばかりで非常に勉強になりました!そこで、実際にどんな学びがあったかこの記事で共有したいと思います 🙌 例: RuboCop Rails 2.16.0 追加された Cop #714: Add new Rails/FreezeTime cop. travel_t
概要 ごみ出しって忘れちゃうことありますよね 捨てられる曜日が限られた燃えないごみやペットボトルの日は特に忘れがちです。そして Google カレンダーの通知だと気づけなくて 😇 そこで cron と Ruby を使用してごみ出し日に LINE (LINE Notify) で通知するようにしました。僕の場合は cron は Raspberry Pi 3 で動かしています。 方法 バージョン情報 Ruby 3.0.0 Bundler 2.2.11 Active Support 6.1.3 コード Gem は日付に関する処理のために Active Support のみ使用します。 require 'active_support' require 'active_support/core_ext' require 'net/http' require 'uri' # LINE に通知するための
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
はじめに 現在携わっているとある Rails 5 プロジェクトでは、リクエストに応じて接続先の DB を切り替えるというマルチテナント構成を採用しています。具体的には URL のサブディレクトリに応じて切り替えています。DB の切り替えは Apartment という Gem を使っているのですが、Rails 6 からデフォルトで複数データベース接続機能が追加されるので試してみました。 例題 URL のサブディレクトリに応じて接続するデータベースを切り替えたい。 方法 実装 まず database.yml を次のように書きます。common が共通データベースで hidamari, madomagi がテナントのデータベースのイメージです。この状態で bin/rails db:migrate を実行すると、各データベースで同じマイグレーションが実行されます。 default: &defaul
はじめに 僕は Nginx を使用した Web アプリケーションで SSL/TLS を使用する場合は、設定ファイルで ssl_protocols を ssl_ciphers を明記しなくてはならないと思い込んでいました。そのため、いつも Mozilla SSL Configuration Generator からディレクティブをコピペしていました。しかし、これらのディレクティブを省略しても Qualys SSL LABS SSL Server Test で高スコアを出せることが分かりました。では省略した場合にはプロトコルや暗号スイートの指定はどうなるのか、調べてみました。 省略した場合の挙動 公式ドキュメント Nginx » Configuring HTTPS servers の冒頭に答えはありました。 The directives ssl_protocols and ssl_cipher
はじめに この記事は Python Advent Calendar その 2 の 7 日目の記事です。 僕はふだんは Ruby や JavaScript のコードを書いています。一方 Python は趣味で使っていて、Python 歴は 1 年ほどです。この言語を勉強していて with 文が気に入ったので、今回はこの with 文とコンテキストマネージャについて語ります。 with 文について with 文が Python に導入された経緯については PEP 343 の Abstract で次のように書かれています。 This PEP adds a new statement "with" to the Python language to make it possible to factor out standard uses of try/finally statements. try
はじめに 例えば Ruby では Bundler を使って Gemfile で、Node.js では npm や Yarn を使って package.json でパッケージを管理できます。 同様に Python では pip を使って requirements.txt でパッケージを管理できます。しかし Gemfile や package.json と違って機能が十分ではありません。 そこで、もっと便利なパッケージ管理方法を調べていたところ Pipfile というものを発見しました。まだ実験段階のようですが、requirements.txt より高機能で便利そうです。そして Pipenv というツールを使用することで Pipfile を取り扱うことができるようなので、試してみました。 Pipenv とは 公式ドキュメントの日本語訳 によると Pipenv — Python.org が正式に
FROM ubuntu:14.04 RUN apt-get update -qq \ && apt-get install -y \ build-essential \ xorg \ libssl-dev \ libxrender-dev \ wget \ unzip \ gdebi \ && apt-get autoremove \ && apt-get clean WORKDIR /opt # wkhtmltopdf をインストールする。 ENV WKHTMLTOPDF_VERSION 0.12.4 RUN wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/${WKHTMLTOPDF_VERSION}/wkhtmltox-${WKHTMLTOPDF_VERSION}_linux-generic-amd64
追記 この記事は 2017/08 に投稿したもので、内容が古くなっています。 現在 (2019/02/04 (月) 時点) は公式リポジトリで Docker で動かす方法が紹介されているため、それを参考にするのが最良だと思います。 GoogleChrome/puppeteer » Troubleshooting » Running Puppeteer in Docker はじめに 最近 Puppeteer を触るのにハマっています。これはヘッドレス Chrome を Node.js で操作することのできるライブラリです。この Puppeteer を Docker コンテナ上で動かせれば、様々な環境でブラウザを操作できて便利そうだなと思い、試してみました。 方法 公式リポジトリ GoogleChrome/puppeteer の README.md にあるサンプルプログラムを少しだけ編集したも
はじめに なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 という本を読みました。プロセスという概念を Ruby のコードを用いて説明してくれます。非常に分かりやすい本で感動しました 復習を兼ねて書籍中の一部の Ruby コードを Python に置き換えたいです。せっかくなので、一番実用的だと思ったプロセスのデーモン化を実装しました。 コード from datetime import datetime import os import sys import time def daemonize(): """ プロセスをデーモン化する。 """ def fork(): if os.fork(): sys.exit() def throw_away_io(): stdin = open(os.devnull, 'rb') stdout = open(os.devnull, 'ab+
Unicode とは 文字集合のこと。ひとつひとつの文字に 符号位置 と呼ばれる整数値を付けて管理している。 UTF-8, UTF-16, UTF-32 とは 文字符号化方式 のこと。符号位置の整数値をコンピュータが使用できるようにバイト列に変換する。 エンディアンとは 複数のバイトからなるデータをメモリに記録する際やネットワークで送受信する際などに、バイトを並べる順番のこと。バイトオーダ と呼ぶこともある。ビッグエンディアンでは上位側から、リトルエンディアンでは下位側から並べる。 検証用コード この記事を書くにあたって Python で検証したときのコードです。 In [1]: import unicodedata In [2]: import binascii In [3]: unicodedata.name('鬱') # 名前を調べる Out[3]: 'CJK UNIFIED IDE
どうも。最近 Coursera で機械学習のコースを受講している @QUANON です。 概要 教師あり学習のデータセットには、 トレーニングセット (training set) バリデーションセット (validation set) 使用しない場合もある。 テストセット (test set) があります。しかし、バリデーションセットとテストセットの違いが未だによく分からない、あるいは、なぜテストセットだけでなくバリデーションセットも必要なのかがピンと来ていないので、調べてみました。 バリデーションセットの役割 トレーニングセットを使って分類器を訓練した後で、その分類器のハイパーパラメータをチューニングするために使用します。様々なハイパーパラメータについて、同じトレーニングセットを使って訓練した後で、さらに同じバリデーションセットを使ってそのパフォーマンスを計測します。そして、最もパフォー
require 'socket' require 'openssl' def get_certificate(host) certificate = nil TCPSocket.open(host, 443) do |tcp_client| ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client) ssl_client.hostname = host ssl_client.connect certificate = ssl_client.peer_cert ssl_client.close end certificate end get_certificate('qiita.com') => #<OpenSSL::X509::Certificate subject=#<OpenSSL::X509::Name CN=*.qiita.com,OU
動機 Railsにおけるサービスクラスのオリジナルルール という記事をたまたま見つけ、「自分ならこう書くかな」と感じたことがいくつかあったので、記事にしてみました。 なお の参考記事の中でさらに参考にされている 肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳) という記事のコードを、この記事でも説明のために用いようと思います。そこで、以下は 2 つの記事をこのように呼称します。 参考記事 1: Railsにおけるサービスクラスのオリジナルルール 参考記事 2: 肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳) さらに翻訳元の記事: 7 Patterns to Refactor Fat ActiveRecord Models マイルール ルール 1. クラス名は「動詞 (+ 目的語)」にする 参考記事 1 のものとほぼ同じルール
概要 こんにちは、QUANON です。 Rails 5 の Action Cable の登場により、Rails アプリケーションの可能性がぐっと広がりましたね。今回はその Action Cable のシンプルな利用例を 1 つご紹介したいと思います。 利用例 サーバ側で何か重い処理を実行しており、その進捗率を逐次ユーザに伝えることができれば便利ですよね。例えば「ユーザから大量データの CSV ファイルの生成リクエストを受け付けて、その生成状況を画面上のプログレスバーにリアルタイムで表示する」などです。クライアントから Ajax 通信でサーバに進捗率を定期的に問い合わせ、その結果を受けてプログレスバーを更新することも可能ですが、できればもっとスマートな方法を選びたいですね。 そこで Action Cable の出番です。WebSocket を使って、サーバからクライアントに直接進捗率を送って
class Mage attr_reader :name def initialize(name) @name = name end def spell "#{job} の #{name} は #{magic} を唱えた!" end private # サブクラスで必ず実装しておいて欲しい。 def job raise NotImplementedError.new("You must implement #{self.class}##{__method__}") end # サブクラスで必ず実装しておいて欲しい。 def magic raise NotImplementedError.new("You must implement #{self.class}##{__method__}") end end class BlackMage < Mage private def job "黒
次のページ
このページを最初にブックマークしてみませんか?
『@QUANONのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く