よしたく blog

ほぼ週刊で記事を書いています

Rails7でTailwind CSSを試す

Rails7 になって TailwindCSS が使えるようになったので、導入方法をメモしておく。 rails new rails new をするタイミングで tailwind を導入するには--css tailwindオプションを指定する。 rails new myapp --css tailwind cd myapp このあたりは定型文に…

Docker Compose環境のRailsをHerokuへデプロイする

Docker Compose 環境で作成した Rails アプリケーションを Heroku へアップロードするには Git を使用したデプロイとは別のコマンド実行が必要になる。 例えば Git を使用するときはgit push heroku mainなどでデプロイができたが、Docker Compose 環境は He…

Action CableをHerokuで動かす時のサブスクリプションアダプタ設定

Heroku で Action Cable を使うにはデフォルトの設定から変更する必要がある。 具体的に、初期設定ではconfig/cable.ymlファイルは下記のようになっており、redis を使う設定になっている。Heroku 環境を用意したときにデフォルトで Redis は使用できないの…

macOS Montereyから登場したショートカットを使う

iOSでは以前から使うことができたショートカットアプリが、Macでも使うことができるようになった。 現在自分が設定しているものをアイデアとして載せておく。 www.apple.com コミュニケーション系アプリを全部終わらせるショートカット 起動したコミュニケー…

Terminal is dumb but no VISUAL nor EDITOR defined.エラーを解決する

macOS Monterey にして VS Code から git commitとしたらTerminal is dumb but no VISUAL nor EDITOR defined.が発生した。 デフォルト設定が外れてしまった理由がよくわからないけど、再度設定しておく。 設定する際に検索したことと、検索しても欲しい情報…

S3互換のMinIOを触ってみた

MinIO とは MinIO は、高性能で S3 互換のオブジェクトストレージを提供します。 Kubernetes にネイティブな MinIO は、以下のような環境で利用できる唯一のオブジェクトストレージスイートです。 すべてのパブリッククラウド、すべての Kubernetes ディスト…

Streamlitに用意されている「line_chart」「area_chart」「bar_chart」を触ってみた

Streamlit について引き続き確認していく。 yoshitaku-jp.hatenablog.com 今回は Streamlit で標準に用意されている simple chart を試す。 紹介されているのは以下の 3 種類になる。 line_chart area_chart bar_chart line_chart 線グラフはst.line_chart関…

SQLAlchemyを使ってMysql 8.0にアクセスしたらAuthentication plugin 'caching_sha2_password' is not supported エラーが発生した

SQLAlchemyを使ったPython環境でDcoker上に立てたMysql 8.0にアクセスしたらAuthentication plugin 'caching_sha2_password' is not supported エラーが発生した。 これはMySQLのバージョン8.0以降、デフォルトの認証方式がcaching_sha2_passwordに変更され…

Python製のWebフレームワークStreamlitをさわってみた

datatech-jp Casual Talks #1に参加したときに知った、Python製のWebフレームワークStreamlitを触ってみた。 yoshitaku-jp.hatenablog.com streamlit.io github.com Streamlitのサイトを覗くとまずThe fastest way to build and share data appsと書いてあり…

datatech-jp Casual Talks #1 に参加した!

datatech-jpのCasual Talks #1 が開催されるとのことで覗いてみた! datatech-jp.connpass.com 発表内容 syou6162 データ管理に役立つメタデータ reizist 小さく始めるデータ基盤 ohsawa0515 BigQueryのネイティブJSON型がサポートされたので触ってみた udzu…

Azure Data FactoryのFailアクティビティについて調べた

2021年後半にAzure Data FactoryのFailアクティビティが追加されました。10月頃にプレビューで登場していたのは確認していたのですが、いつのまにかGAされていました。Failアクティビティは名前の通りパイプライン上で意図的にエラーを引き起こしたいときに…

Cloud Storageでオブジェクトのライフサイクルを設定する

GCP

多くの企業がデータ分析基盤を選択するときにGoogle Cloud Platformを選んでいる気がするので、気になって少し触ってみた。 わからないことが多すぎてオープンワールドのゲームに飛び込んだような感覚なので、まずは手軽にCloud Storageでライフサイクルの設…

PyArrowでCSVをParquetに変換する

今回は PyArrow を使って CSV を Parquet に変換してみた。 データレイクは生データを溜めることが主目的だが、レイクハウス型のアーキテクチャの流れもあり、データを利用したいサービス側が利用しやすいような整形化されたデータを用意する用途も増えてく…

Pythonでの再帰関数の上限を変更する

Python ではデフォルトで再帰関数の上限が 1000 に設定されている。知らなかった... sys.getrecursionlimit()で現在の上限を確認できる。 今回はサッと確認するのに便利なGoogle Colaboratoryを使う。 import sys print(sys.getrecursionlimit()) たしかに 1…

Azure Data Factoryを使って、新規・変更済みファイルのみをデータレイク間でコピーする

Azure Data Factoryを使って、新規・変更済みファイルのみをデータレイク間でコピーする。新規・変更済みファイルのみを移動対象とすることで、無駄なデータ移動が発生せず、料金も抑えることができるようになる。 準備 パイプライン パラメーターを2つ用意…

2021年のふりかえりと2022年の抱負

あけましておめでとうございます。今年もよろしくお願いいたします。 2021 年をふりかえり、2022 年の抱負にしたいと思います。 お仕事 2021 年のお仕事は 6 月までと 6 月以降で大きく変わりました。 2 年ほど前に部署を異動してから 2021 年 6 月まではハ…

math.factorialを使って階乗を計算する

背景 Project Euler でmath.factorial()を使う機会が多くなってきたので簡単にまとめる。 math.factorial とは math.factorial()は標準ライブラリの math に含まれていて、階乗が計算できるシンプルな関数になる。 引数には整数が指定でき、整数以外や負の数…

【Project Euler】Problem 20 Factorial digit sumをPythonで解く

この問題をPythonで解いた。 #20 Factorial digit sum - Project Euler 日本語の問題文はこちら n × (n - 1) × ... × 3 × 2 × 1 を n! と表す. 例えば, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800 となる. この数の各桁の合計は 3 + 6 + 2 + 8 + 8 + 0 + 0 =…

【Project Euler】Problem 19 Counting SundaysをPythonで解く

この問題をPythonで解いた。 #19 Counting Sundays - Project Euler 日本語の問題文はこちら 次の情報が与えられている. 1900年1月1日は月曜日である. 9月, 4月, 6月, 11月は30日まであり, 2月を除く他の月は31日まである. 2月は28日まであるが, うるう年の…

~/.config/git/ignoreでグローバルなgitignoreを設定してファイルを除外する

git

背景 .DS_Store のようなファイルを毎回.gitignoreに書くのがめんどくさくなり、グローバルに設定できないか調べました。 解決方法 ~/.config/gitにignoreファイルを作る .gitignoreと同様に記述する .DS_Store これだけで完了です。 Patterns which a user …

【Project Euler】Problem 16 Power digit sumをPythonで解く

この問題をPythonで解いた。 #16 Power digit sum - Project Euler 日本語の問題文はこちら 215 = 32768 であり, 各位の数字の和は 3 + 2 + 7 + 6 + 8 = 26 となる. 同様にして, 21000 の各位の数字の和を求めよ. Problem 16 - PukiWiki sum(map(int, str(2*…

【Project Euler】Problem 15 Lattice pathsをPythonで解く

この問題をPythonで解いた。 #15 Lattice paths - Project Euler 日本語の問題文はこちら 2×2 のマス目の左上からスタートした場合, 引き返しなしで右下にいくルートは 6 つある. (画像省略) では, 20×20 のマス目ではいくつのルートがあるか. Problem 15 …

【Project Euler】Problem 13 Large sumをPythonで解く

この問題をPythonで解いた。 #13 Large sum - Project Euler 日本語の問題文はこちら 以下の50桁の数字100個の合計の上から10桁を求めなさい。 (数字は省略) Problem 13 - PukiWiki sample = '''37107287533902102798797998220837590246510135740250 46376…

【Project Euler】Problem 10 Summation of primesをPythonで解く

この問題をPythonで解いた。 #10 Summation of primes - Project Euler 日本語の問題文はこちら 10以下の素数の和は 2 + 3 + 5 + 7 = 17 である. 200万以下の全ての素数の和を求めよ. Problem 10 - PukiWiki from sympy import isprime result = 0 for num i…

【Project Euler】Problem 9 Special Pythagorean tripletをPythonで解く

この問題をPythonで解いた。 #9 Special Pythagorean triplet - Project Euler 日本語の問題文はこちら ピタゴラス数(ピタゴラスの定理を満たす自然数)とは a < b < c で以下の式を満たす数の組である. a2 + b2 = c2 例えば, 32 + 42 = 9 + 16 = 25 = 52 で…

itertoolモジュールのpermutations関数を使って順列を作る

itertoolモジュールのpermutations関数を使うと、簡単に順列を作ることができる。 permutationはなかなか見慣れない英単語だが、「順列、交換、置換、並べ換え」といった意味がある。パッと思い出せるぐらいには覚えておくと良さそう。 今回はpermutations関…

【Project Euler】Problem 7 10001st primeをPythonで解く

この問題をPythonで解いた。 #7 10001st prime - Project Euler 日本語の問題文はこちら 素数を小さい方から6つ並べると 2, 3, 5, 7, 11, 13 であり, 6番目の素数は 13 である. 10 001 番目の素数を求めよ. Problem 7 - PukiWiki import sympy print(sympy.p…

【Project Euler】Problem 8 Largest product in a seriesをPythonで解く

この問題をPythonで解いた。 #8 Largest product in a series - Project Euler 日本語の問題文はこちら 次の1000桁の数字のうち, 隣接する4つの数字の総乗の中で, 最大となる値は, 9 × 9 × 8 × 9 = 5832である. 7316717653133062491922511967442657474235534…

【Project Euler】Problem 6 Sum square differenceをPythonで解く

この問題をPythonで解いた。 #6 Sum square difference - Project Euler 日本語の問題文はこちら 最初の10個の自然数について, その二乗の和は, 12 + 22 + ... + 102 = 385 最初の10個の自然数について, その和の二乗は, (1 + 2 + ... + 10)2 = 3025 これら…

【Project Euler】Problem 5 Smallest multipleをPythonで解く

この問題をPythonで解いた。 #5 Smallest multiple - Project Euler 日本語の問題文はこちら 2520 は 1 から 10 の数字の全ての整数で割り切れる数字であり, そのような数字の中では最小の値である. では, 1 から 20 までの整数全てで割り切れる数字の中で最…