@ledsun blog

無味の味は佳境に入らざればすなわち知れず

2022-07-01から1ヶ月間の記事一覧

MSXって何が良かったの?

ツイッターでつぶやいたらいろいろなご意見が寄せられました。 まとめておきます。 ・ゲーム機感覚のカートリッジ・テレビに繋がる=安価・機体の選択肢豊富とかかなぁ。友達が持ってたけどゲーム機になってたな。 https://t.co/r4sXTcaIN0— さけいくら (@sa…

イエメン ハイミ イエメニア ナチュラル

酸味系のナッツみたいな香りがすごいコーヒーでした。 イエメン ハイミ イエメニア ナチュラル - @ledsun blog によると半年前にも似たような感想を抱いていました。 よほど、印象的な味と香りのようです。 【メール便・配達日時指定不可】 7月のおすすめ豆…

WezTerm

Windows Terminalに不満はないです。 俺は新しいツールも使いこなせるんだ、という欲望を満たすために wezterm - Wez's Terminal Emulator を使っています。 Windowsにはwingetでインストールできました。 6月27日にインストールを試したときは上手く行きま…

activerecord-importを速くつかう

速度を計測する簡単なスクリプトが手に入りました。 計測しやすくするために、よりシンプルに変更します。 class User < ApplicationRecord class << self def benchmark_bulk_insert # create data instances = [] 1_000.times { instances << new(name: 'n…

ActiveRecordのバルクインサート比較 その2

Railsコンソールで実行するとログが出てきて面白いです。 読みやすくするためにデータ件数を3件、試行回数を1回にして実行します。 user system total real sql TRANSACTION (0.1ms) begin transaction (0.2ms) INSERT INTO users (name, created_at, update…

ActiveRecordのバルクインサート比較 その1

手始めにRails6で追加されたinsert_allとimport(とその他)のパフォーマンス検証 - Qiita を追証します。 次のように検証用のRailsアプリケーションを用意します。 bundle exec rails new . bulk_insert -MCAJT bin/rails g user name:string bin/rails db:pr…

Calling `DidYouMean::SPELL_CHECKERS.merge!(error_name => spell_checker)' has been deprecated. Please call `DidYouMean.correct_error(error_name, spell_checker)' instead.Calling `DidYouMean::SPELL_CHECKERS.merge!(error_name => spell_checker)' has been depre

bundleコマンドを実行したら表題の警告が出ました。 ledsun@MSI:~/activerecord-bulk-insert►bundle Bundler 2.3.7 is running, but your lockfile was generated with 2.2.22. Installing Bundler 2.2.22 and restarting using that version. Fetching gem …

PostgreSQLのインデックスが肥大化するとInsertがおそくなる

先月末からJSONファイルからDBに一括取り込みする処理の高速化をしています。 activerecord-importを使っていたので、つぎの方法を試しました。 activerecord-importに渡すデータ生成のチューニング ActiveRecordインスタンスからハッシュに変更 ActiveRecor…

stackprofileを使って時間の掛かる処理を特定する

入力されたJSONファイルをパースしてDBに取り込む処理をチューニングしています。 ボトルネックはDBへの取り込みだと予想しています。 本当でしょうか? GitHub - tmm1/stackprof: a sampling call-stack profiler for ruby 2.2+を使って確認してみます。 次…

メモリ使用量計測用のRubyスクリプト

とある関数をチューニングしています。 処理時間計測用のRubyスクリプト - @ledsun blogを作って計測しています。 一向に速くなりません。 メモリ使用量を計測することにしました。 次のスクリプトを作りました。 require 'memory_profiler' file = 'tmp/upl…

複数プログラミング言語をいっぺんに実行するスクリプトをMakefileで書く

C#とJavaScriptとRubyのプログラミングを比較するためにGitHub - ledsun/enumerable: C#とJavaScriptとRubyのコレクション操作を比較するためのリポジトリです。を作りました。 動作確認のために、全部のプログラムをバーンと実行するスクリプトが欲しいです…

C#とJavaScriptとRubyのコレクション操作

大抵のプログラミング言語でコレクション(列挙できる何か)をメソッドチェーンで操作できます。 プログラミング言語ごとに、ちょっとずつちがうので整理してみようと思います。 僕の馴染みのあるC#、JavaScript、Rubyでそれぞれ書いてみます。 お題 お題は…

activerecord-importのチューニング(失敗編)

データベースへのデータ取り込みを速くしたいです。 すでにactiverecord-importを使っているので、これが速くできると嬉しいです。 GitHub - zdennis/activerecord-import: A library for bulk insertion of data into your database using ActiveRecord. Th…

Marp

ソースコードを含んだ短いプレゼンテーションを作る必要がありました。 社内で使っている人がいてVisual Studio Code+Markdownでキレイなプレゼンスライドを手軽に作成できる「Marp」【レビュー】 - 窓の杜でも見かけたのでMarp: Markdown Presentation Eco…

社内向けにパラメタライズドテストの話をしました

speakerdeck.com 自分がパラメタライズドテストの存在を知ったのは #TestingFrameworkMeeting に参加しました(1) - テスティングフレームワークの歴史 - @ledsun blog の頃だと思います。 読み返してみても一文字も出てこないので、記憶違いかもしれませ…

C#でFizzBuzz

C# FizzBuzz Switch Solution - Stack Overflow のみたことないタイプのパターンマッチングを参考にしました。 static string FizzBuzz(int number) { return number switch { < 1 or > 100 => "", _ => (number % 3, number % 5) switch { (0, 0) => "FIZZB…

snapを使ってdotnetコマンドをインストールする

Snap を使用して Linux に .NET をインストールする - .NET | Microsoft Docs の手順でインストールしてみます。 $ sudo snap install dotnet-sdk --classic --channel=6.0 [sudo] password for ledsun: $ dotnet-sdk (6.0/stable) 6.0.301 from Microsoft .…

WSLのUbuntu 20.04にPHPのcomposerをインストールする

comporserのインストール curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php php /tmp/composer-setup.php 実行したディレクトリにcomposer.pharができます。 php ~/composer.phar installとかphp ~/composer.phar updateで実行できま…

WSLのUbuntu 20.04にPHP 8.1をインストールする

PHPの環境設定の仕方がよくわかっていません。 たぶん普通のUbuntuにPHPをインストールする手順と同じだと思います。 sudo apt install phpするとPHP 7.4が入りました。 ledsun@MSI:~►php --version PHP 7.4.3 (cli) (built: Jun 13 2022 13:43:30) ( NTS ) …

rspe-parametarizedでFizzBuzzのテストコードを書くと?

GitHub - tomykaira/rspec-parameterized: RSpec::Parameterized supports simple parameterized test syntax in rspec.を使ってみます。 require 'rspec-parameterized' require './fizzbuzz' describe 'FizzBuzz' do using RSpec::Parameterized::TableSyn…

DRYな気持ちでRSpecでFizzBuzzのテストコードを書くと?

素直な気持ちで書くとexpect(fizzbuzz 1).to eq '1'に似た文がたくさん出てきます。 DRYにしたくなったので、テストデータをテーブルで定義してグルグルっとアサーションを回します。 require './fizzbuzz' describe 'FizzBuzz' do it do [ [0, ''], [1, '1'…

素直な気持ちでRSpecでFizzBuzzのテストコードを書くと?

「1から100までの数に対して3で割り切れる数はFIZZ、5で割り切れる数はBUZZ、 3でも5でも割り切れる数はFIZZBUZZと表示する。それ以外の数は数字のまま表示する。」 describe 'FizzBuzz' do context '数が1より小さいとき' do it { expect(fizzbuzz 0).to eq…

Ubuntuに英単語辞書をいれた

Wordleの答えをgrepする効率をあげるためにUbuntuに英単語辞書を入れました。 sudo apt install wamerican で /usr/share/dict 配下に英単語が記載されたファイルがインストールされました。 次のように現在わかっている条件を満たす単語を検索します。 leds…

パラメタライズドテストをサポートするテスティングフレームワークの実装に関する調査資料

Parameterized Test at XUnitPatterns.com At least one member of the xUnit family implements Parameterized Test at the Test Automation Framework(page X) level: MbUnit. Extensions are becoming available for other members of the family with DD…

パラメタライズドテストの紹介

社内向けにパラメタライズドテストを紹介するときにこんなストーリーで話そうかな?と考えたトークスクリプトの導入部分です。 今日はパラメタライズドテストを紹介します。 パラメタライズドテストとは何かというとテストコードの書き方です。名前がかっこ…

脱法テイマーの成り上がり冒険譚~Sランク美少女冒険者が俺の獣魔になっテイマす~ THE COMIC 2

脱法テイマーの成り上がり冒険譚~Sランク美少女冒険者が俺の獣魔になっテイマす~ THE COMIC 2 (ライドコミックス)作者:真鍋譲治,すかいふぁーむマイクロマガジン社Amazon 作画が「銀河戦国群雄伝ライ」などの真鍋譲治先生なのです。 先生、コミカライズ初…