- 1. Sonic Piを触ってみた
- 2. 【自分用メモ】Hacker NewsからRubyに関するニュースだけを取得するスクリプト
- 3. オリジナルアプリの説明
- 4. RailsプロジェクトにおけるBunを使用したJS/CSSビルドのメリットと実装方法
- 5. RailsアプリケーションでAWS Parameter Storeを使用する方法
- 6. paiza「みんなでしりとり」をRubyで解いてみた
- 7. RailsのThreadの中でアクティブレコードのデータがとれない
- 8. プレビュー機能の実装
- 9. Ruby on Rails 7.2の主要な新機能・機能追加・変更点
- 10. CodeMirror6を用いたHTMLエディターの導入
- 11. LambdaのRubyでGitLabにリポジトリを作成、削除する
- 12. Railsのincludesメソッドは非推奨!?これからはeager_loadとpreloadを使用すべき??
- 13. rails 目次の自動生成機能
- 14. orderとpluckを併用する時には記述する順番に気をつけようというお話
- 15. 【Ruby】レキシカルスコープと継承の定数探索の違い
- 16. 【JavaScript】Ruby → JS はじめての基礎文法
- 17. rails パンくずリストの作り方(gem ‘gretel’)
- 18. rails 簡易的な閲覧数カウント機能
- 19. RailsのTimeクラスを覚えたい
- 20. RailsとReactのDocker環境を作ってみる
Sonic Piを触ってみた
## 概要
Live Coding Musicを行うためのアプリである[Sonic Pi][4]を試してみた。
## インストール
以下のコマンドでインストールすると、開発環境も同時にインストールされる。
※ Mac以外は[公式HP][4]からダウンロードできる。“`sh
brew install sonic-pi
“`## 文法など
– Rubyベースなので、Rubyの関数は基本的に扱える
– Sonic Pi独自の関数もいくつか存在する
– 音量や速度に関してはSonic Pi側の関数やその引数で指定する### defとdefine
`def`は通常のRubyの関数定義に利用する。
`define`はSonic Pi独自の関数定義キーワードで、ライブ中に動的に変更することが可能。
基本的には `define` の利用を推奨。### 速度
`rate`を指定する
“`ruby
# 2倍速で再生
sample :drum_heavy_kick, rate: 2
# 逆再生
sample :drum_heavy_kick, rate: -1
【自分用メモ】Hacker NewsからRubyに関するニュースだけを取得するスクリプト
## はじめに
Hacker Newsというサイトにときどき目を通しています。
https://news.ycombinator.com/
閲覧するときはいつも、`Ruby`や`Ruby on Rails`といった単語で検索しているのですが、いちいち面倒です。
そこでAPIを用いて簡単に取得できるスクリプトをRubyで書きました。
## Hacker Newsから特定の単語で検索するスクリプト
下記が実際のスクリプトです。
過去24時間に投稿された、`Ruby`という単語を含むニュースを取得しています。
“`ruby:sample.rb
require ‘net/http’
require ‘json’
require ‘uri’
require ‘time’# Hacker News APIのURLを作成
def search_hacker_news(query)
# クエリに前後のダブルクオートを追加して完全一致を狙う
exact_query = “\”#{query}\””# 実行時点から過去24時間のタイムスタンプを計算
curr
オリジナルアプリの説明
こんにちは。看護師→プログラミング初学者の我那覇です。
今更になりますが現在どのようなアプリを作ろうとしているかを皆さんに共有しようと思います。## Wantsの説明
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3763893/7d15a7f4-0404-50bd-914e-f988abf83667.png)### 1. (ざっくりと)何ができるのか
“Wants”は、ユーザーが希望する商品をリクエストし、それに応じて出品者が商品を出品できるウェブアプリケーションです。リクエストには詳細や希望条件を含めることができ、他のユーザーと情報を共有可能です。
### 2. 誰のどんな課題を解決するのか
このアプリは、特定の商品が見つからない、または市場に存在しないという課題を解決します。ユーザーは、ニーズを投稿することで他のユーザーやメーカーに伝えられ、転売対策にもなります。
![image.png](https://qiita-image-store.s3.ap-northe
RailsプロジェクトにおけるBunを使用したJS/CSSビルドのメリットと実装方法
## 背景
今回、個人開発の小規模アプリにおいて、軽量かつシンプルなビルドツールを求めていました。これまでWebpackerやesbuildを使ってきましたが、設定が複雑でビルド時間が長いことが課題でした。Bunを選んだ理由は、非常に高速で、設定が簡単な点に加え、JSとCSSのビルドが一貫してシンプルに管理できるからです。Bunを使ったビルドプロセスの実装手順について詳しく説明します。## Bunの速度比較
中規模のプロジェクト(約1000行のJSと500行のSassコード)をビルドする場合、Webpackerは約8〜10秒、esbuildは1〜2秒でビルドを完了します。一方、Bunはその中でも最速で、同じビルドタスクをわずか0.5〜1秒未満で処理できます。Bunの高いパフォーマンスは、ランタイムとビルド機能の統合による効率の高さにあります。※詳細は調べると検証した記事があるため、それを参照してください!
## 実装手順
### 手順 1
まず、Homebrewを使ってBunをインストールします。
“`
brew install bun
#bun -v でバージョン確認
RailsアプリケーションでAWS Parameter Storeを使用する方法
AWS Parameter Storeは、アプリケーションの設定値や機密情報を安全に管理するための便利なサービスです。
この記事では、Railsアプリケーションのproduction環境設定でAWS Parameter Storeの値を使用する方法について説明します。**前提条件**
– AWSアカウントがあること
– AWS CLIが設定されていること or EC2などに適切なロールが割り当てられていること
– Railsプロジェクトがあること# 1. AWS SDKのセットアップ
まず、AWS SDKをプロジェクトに追加します。Gemfileに以下を追加し、bundle installを実行します。
“`ruby
gem ‘aws-sdk-ssm’
“`# 2. パラメータ取得用のヘルパーメソッド
次に、AWS Parameter Storeから値を取得するためのヘルパーメソッドを作成します。config/application.rbに以下のコードを追加します。
“`ruby
require ‘aws-sdk-ssm’module ParameterStore
paiza「みんなでしりとり」をRubyで解いてみた
# 問題
あなたは友達たちと N 人でしりとりを行うことにしました。
1 人目、 2 人目、…、 N 人目、 1 人目、2 人目、… という順序で発言をします。ここで、それぞれの人は、次に挙げる 4 つのしりとりのルールを守って発言をする必要があります。1. 発言は、単語リストにある K 個の単語のうちのいずれかの単語でなければならない。
2. 最初の人以外の発言の頭文字は、直前の人の発言の最後の文字と一緒でなければならない。
3. 今までに発言された単語を発言してはならない。
4. z で終わる単語を発言してはならない。ここで、発言の途中で上のルールを破った場合、ルールを破った人はしりとりから外れます。
そして、その人を抜いて引き続きしりとりを続けていきます。このとき、後続の人は、ルール 2 を守る必要はありません。N 人がしりとりを行ったログが M 行分与えられます。
このとき、M 回の発言が終わった後、しりとりから脱落せずに残っている人のリストを表示するプログラムを書いてください。https://paiza.jp/works/mondai/b_rank_
RailsのThreadの中でアクティブレコードのデータがとれない
# はじめに
Railsで並列処理をしたところ困ったことがあったのでまとめておきます
# 問題
以下のようにスレッドでfetch_dataをするような処理を書きました
“`rb
def self.where(ids:)
threads = []
results = []
mutex = Mutex.newids.each do |id|
threads << Thread.new do result = fetch_data(id) mutex.synchronize do results << result end end end threads.each(&:join) results end private_class_method def self.fetch_data(id) api_response = SomeAPI.get(id) record = SmapleActiveRecord.find(id) # ActiveRecordから取得
プレビュー機能の実装
# プレビュー機能実装
## 概要
新規投稿、投稿編集時に選択した画像がプレビューとして表示される機能## preview.js作成
プレンビュー機能実装のため、app/javascriptの直下にファイル名 “preview.js” を作成する。## importmapの編集
configフォルダにあるimportmap.rbへ下記を追記する。
pin “preview”, to: “preview.js”## application.jsの編集
app/javascript/application.jsへ下記を追記する。
import “preview”## プレビュー機能の実装
取得した画像をブラウザへ表示するためにjavascript側で生成する。// 画像を表示するためのdiv要素を生成
const previewWrapper = document.createElement(‘div’);
previewWrapper.setAttribute(‘class’, ‘preview’);// 表示する画像を生成
Ruby on Rails 7.2の主要な新機能・機能追加・変更点
## はじめに
Rubyを使用したOSSのWebアプリケーションフレームワーク、Ruby on Rails(以下Rails)の最新バージョンである7.2(以下Rails 7.2)が[2024年8月10日にリリースされました](https://rubyonrails.org/2024/8/10/Rails-7-2-0-has-been-released)。
Rails 7.2は、開発用のDockerコンテナの設定の生成、YJITのデフォルト化、RuboCop / Brackeman / GitHub CIの設定の生成など、主に、プロジェクトを開発、運用するに当たって必要な設定をあらかじめフレームワーク側で用意したリリースとなっています。
本記事では、[Railsの公式ブログ](https://rubyonrails.org/blog/)や[Railsガイド](https://guides.rubyonrails.org/v7.2/)、GitHubのRailsプロジェクトの[Issues](https://github.com/rails/rails/issues)や[Pull Re
CodeMirror6を用いたHTMLエディターの導入
## 概要
Ruby on Railsをベースとしたアプリ制作時に、Codemirror6の導入で苦戦したため、導入方法をまとめました。Codemirror6は公式マニュアルに`Getting Started`のセクションが無く、どこを見たらいいのか分からないので、初心者にはかなりとっつきにくい文献という印象でした。
結論として、以下の`Bundling Example`のセクションを見ながら進める事でEditor構築することが出来たので、こちらの流れに沿って説明します。
https://codemirror.net/examples/bundle/
また、今回の説明ではRuby on Railsを使用していますが、Codemirrorの実装は基本Javascriptしか触ってないので、本記事を読むために必要知識はJavascript(+ Node.js)となります。
## エディターの導入
### 1. CodeMirror&HTMLパッケージのインストール
公式文書ではJavascript用エディターを導入していますが、今回私はHTML用エディターを実装したいので、H
LambdaのRubyでGitLabにリポジトリを作成、削除する
## ruby版
AIにシェルからlambda用に変換してもらったらあっさり動いた。
RubyでGitLabにリポジトリを作成、削除する機能です。### リポジトリ作成
– https://github.com/tmoritoki0227/gitlab_project_create/blob/main/create_project.rb
– https://github.com/tmoritoki0227/gitlab_project_create/blob/main/projects_and_branches.txt### リポジトリ削除
– https://github.com/tmoritoki0227/gitlab_project_create/blob/main/delete_project_all.rb
Railsのincludesメソッドは非推奨!?これからはeager_loadとpreloadを使用すべき??
Active Recordにおいて、親子関係にあるテーブルのデータを取得する際に、N+1問題を解消するためにincludesをよく使いますが、使い方についてあまり理解できていなかったのでその学習をまとめます。
また調べていく中で多くの方が「eager_loadとpreloadを使用すべき」と言っています!
その理由も調べてまとめます!## N+1問題とは?
N+1問題 とは、ループ処理の中で都度クエリを発行してしまい、大量のクエリが発行されてしまうことです。余計なクエリが発行されるということは、データの取得や参照に時間がかかってきてしまいパフォーマンスに影響が出ます。コーディングなどで下記のような同じようなログが大量に出てきてしまうことはありませんか??
ループ処理の中で都度クエリを発行してしまい、大量のクエリが発行されてしまっています。これがN+1問題です。
“`
↳ app/views/articles/index.html.slim:18
ColumnCategory Load (0.8ms) SELECT `column_categories`.* FRO
rails 目次の自動生成機能
今回は業務の中で目次の自動生成メソッドを開発する機会があったのでその実装を記録として残しておきます。
## 背景
今回の実装に至った背景として、columnページのデザイン改修がありました。その過程で、記事に対して目次を表示し、クリックで該当箇所へジャンプする機能を追加する必要が生じました。この機能は、Qiitaのような目次機能を参考にしています。また、記事のHTMLはデータベースのカラムに直接埋め込まれている仕様となっているため、この仕様に沿った形で目次機能を実装することが求められました。## 実装
今回はメソッド化して使いまわせて、かつスタイルも自由に変更できるようにする設定を心がけました。色々調べるとgemを組み合わせて使用する方法もありましたが、今回はどのサービスでも決められた仕様の場合には使い回しができるよう設定をしました。
まずカラムの中身は下記のようになっています。
“`関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた