clap Arg::with_nameがArg::newに置き換わっていたのでメモ

Rustプログラミング入門 P148,149のコード模写 clap = "3.0.0-beta.2"において、 no function or associated item named `with_name` found for struct `clap::Arg<'_>` in the current scope function or associated item not found in `clap::Arg<'_>` hel…

webpack + react-i18nextのi18n.use()するときに行った設定

react-i18nextはi18nextをReactでも使えるようにしてくれるwrapperで、Hooks対応してくれているので今回採用しました。 その際に行った設定を簡単にまとめます。 Github github.com Document react.i18next.com webpackのentryに初期化moduleを含める webpac…

効率化の先に仕事のランダム性を殺してないか

リモートワークにより"コミュニケーション"が効率化された、という話をよく聞きます。確かに大企業でよくある「デスクが近い上司が無駄に若手を呼びつけては強制的に報告をさせる」みたいなものはリモートワークで減ります。 しかし、効率化によってコスト削…

C - Step

atcoder.jp 要は、常に最高身長になるように調整していけばいいはず。 def main(): N = int(input()) A = list(map(int, input().split())) m = A[0] # 一旦一番最初のやつをここでおいておき S = 0 # 合計差分はここ for a in A: if m - a > 0: # 小さかっ…

A - Takoyaki, B - Multiple of 9

ABC 176はコチラ atcoder.jp A - Takoyaki 提出したコード import math line = input() strL = line.split() N = int(strL[0]) X = int(strL[1]) T = int(strL[2]) ans = math.ceil(N/X) * T print(ans) そのまんま。 B - Multiple of 9 提出したコード N = …

ListView と ListView.builderの違い

ListViewのちがい ListView: リストの中身を全てloadし、Columnの中に一部だけ表示する。 https://api.flutter.dev/flutter/widgets/ListView/ListView.html ListView.builder: いわゆるlazy loadを自動的に行ってくれる。リストの中身が多い場合はパフォー…

typescriptで any を使ってもいいのか?問題の解決策(の一例)

Typescriptを既存プロジェクトに導入するケースが昨今増えていますが、その場合に苦労することの一つとして「Type(型)がわからない&検証が面倒臭い」がよくあります。 「よし!tsいれるぞ!」 「ここはstring... こっちはnumber... お!これはIUserとしてお…

【読書録】『貞観政要』

読んだ本 貞観政要 呉 兢 (著) https://www.amazon.co.jp/%E8%B2%9E%E8%A6%B3%E6%94%BF%E8%A6%81-%E3%81%A1%E3%81%8F%E3%81%BE%E5%AD%A6%E8%8A%B8%E6%96%87%E5%BA%AB-%E5%91%89-%E5%85%A2/dp/4480096957 要点 ・唐の太宗・李世民がいかにすごいか!という歴…

Firestoreで複数のドキュメントを同時にset()したい

set multiple document ad once, in Firestore. 結論 const setMultipleDocument = async () => { const userList = ['userA', 'userB', 'userC', ] const db = firebase.firestore(); const date = new Date(); const currentTime = date.getTime(); const …

ゼロからはじめるDart Dev Tools入門(VS codeを使って

最近Flutterを触りはじめました、 タガミショウゴ です。 Dartってどうなん? stackshare Googleがつくったから好き、が一番多いってどないやねんというツッコミはなしです。 とにもかくにも、Dartは好き嫌いが別れる言語です。周りのエンジニアにも「Flutte…

TypeScript な ReactコンポーネントからGoogle Tag Managerへクリック数、インプレッション数を送信する

結論 クリック数 コンポーネント側 (Button.tsx) const onClickButton = (url: string) => { window.dataLayer.push<dataLayerType>({ event: 'content_click', contentUrl: url, }); } 型定義ファイル側 (dataLayerType.ts) export interface IEngagementsContensDataLayte</datalayertype>…

export defaultはアンチパターンだと言うので

export defaultは有害 https://typescript-jp.gitbook.io/deep-dive/main-1/defaultisbad によれば、export defaultはいくつかの点で非推奨です。 詳細な理由は上記TypeScript Deep Dive 日本語版を参照。 でも、正直がっつり使ってる... プロジェクト内では…

RailsのvalidatesをRSpecでテストする

modelとRSpecを並べてみる 1. 必須であること validates :title, presence: true RSpec it { is_expected.to validate_presence_of :title } 2. 最大xx文字以内であること validates :title, length: { maximum: 255 } RSpec it { is_expected.to validate_l…

Railsのform_withを別layoutに渡って展開する方法

layoutをDRYにするために... 例えばhead部分にsubmitボタンがあり、bodyにフォームがあるような場合。 通常であれば、body部分にsubmitボタンがあるので、 = form_with model: @user, url: user_path, local: true do |f| .name = f.text_field :name .submi…

RailsでHTMLをいじるhtml-pipelineを独自実装する方法サンプル

html-pipelineはHTMLをparseするGem html-pipeline github.com RailsでHTMLをいじる代表といえば、Nokogiriだと思いますが、今回は複数の「フィルター」を疎結合に使えるhtml-pipelineを採用しました。 なぜhtml-pipelineか 「フィルター」を複数組み合わせ…

【今日の競プロ(2)】ABC151

対象 A - Next Alphabet B - Achieve the Goal 使用言語 Python3 (3.4.3) A - Next Alphabet A - Next Alphabet 考え方 chr, ord を使う 解答例 c = input() ans = chr(ord(c)+1) print(ans) B - Strings with the Same Length B - Achieve the Goal 考え方 …

Railsでの画像遅延読み込みはRails + lozad.jsがいい感じ

lozad.jsは非jQueryの画像遅延読み込みのためのライブラリ lozad.js(githubt)はコチラ github.com (1) とりあえず軽い 他の画像遅延(長いのでlazyload)ライブラリに比べるとjsのコードも200行未満とかなり軽い。実際にコードをおって処理を読むのも苦ではな…

【今日の競プロ(1)】ABC148

対象 A - Round One B - Strings with the Same Length C - Snack 使用言語 Python3 (3.4.3) A - Round One A - Round One 考え方 はじめはA,Bを[1,2,3]のどれかにマッチするかをforで回して、残ったやつを回答とすればいいかと思っていた でも、よくよく考…

@typesとは

こんなものをpackage.jsonに見つける "dependencies": { "@types/lodash": "^4.14.146", "@types/no-scroll": "^2.1.0", "@types/qs": "^6.9.0", "@types/sprintf-js": "^1.1.2", (lodash...じゃない...?) @types/hoge というライブラリぽいやつがたくさん…

lodashを超簡単にまとめる

対象リポジトリ github.com lodashとは JavaScriptにおける便利な関数をまとめて提供しているライブラリ データをいじる場合に使える めっちゃ軽い ざっくりとした使い方 <script src="lodash.js"></script> こうするか、 $ npm i -g npm $ npm i lodash こうするなどして使えるようにしておく…

Docker + Google Cloud Storage + active_storageを導入したステップ

すでにできあがったRailsアプリケーションに対して、active_storageを導入してログです。アップロード先はGoogle Cloud Storageにしてみましたが、基本的にはAWSでも同様だと思います。 導入のキッカケ すでにこのアプリケーションには自作のactive_storage…

Jest + Eslint で "context" is not defined(no-undef) で怒られたら

通常、Jestのcontextはglobalで定義してたりするので、ESlintのno-undefで怒られる。そのファイルのなかで const context とかしてないので、「contextってなんだ!」みたいなことですよね。 なので、ESlintの設定で、context という変数はglobalで定義され…

Stimulus + TypeScript + Slim で「もっと見る」「閉じる」を作る

要件 ・viewはslim ・可変なliが渡ってくるsidemenuでもっとみる/とじるをぬるっと動かす とりあえずviewはこんな感じ - unique = SecureRandom.hex(8) .show-more[data-controller="show-more"] input.show-more__check[type="checkbox" id="show-more__che…

dockerコンテナに入ってmysqlファイルをdumpする方法

dockerを使っている状況で、 「このsql手元でdumpして使って〜」 と言われた際に、どうやってやればいいのか分からなかったのでメモ。 dockerコンテナのなかにsqlファイルをcpする プロジェクト内に一旦sqlファイルをおいておく。あるいは適当なフォルダのpa…

知らないと恥ずかしいHTTPの基礎

HTTPはアプリケーション層の最上位に存在する HTTPの基本方針 ■HTTPはシンプル: - HTTP/2からメッセージをカプセル化させるようになったものの読みやすいよう考慮された作りになっている ■HTTPは拡張可能 - HTTPヘッダーによって拡張が可能。新しいヘッダー…

GTMで配信した広告(Google Adsense含む)をデバッグする

結論としては、Google Tag AssistantというGoogle Chromeの拡張機能を使うことで、実際の画面を見ながら想定通りのタグが表示されているかを確認することができます。 残念ながらぱぱっと自動化することはできず目検でやるしかないです...。 具体的な方法 ・…

【Rails】 is too long; the limit is 64 characters って怒られたら

Ruby on Railsで複合indexをつくりたいとき add_index :friends, %i[user_id target_user_id], unique: true みたいなことをします。 ちなみに↑は大丈夫なケースですね。 アカン場合 add_index :random_selected_user_accounts_logs, %i[id created_at], uni…

【Rails migration メモ】既存列の最初にadd_columnしたい

こういうテーブルがあるときに create_table :user do |t| t.string :uuid t.string :title t.timestamps end あ!description列が欲しい...! ってなったら以下の通り差し込む( add_column )することができます。 add_column :user, :description, first: t…

ActionMailerのレイアウトを確認しながら編集したい

RailsのActionMailerでレイアウトを編集するときに、いままではletter_opener_webで確認していたけど、普通に面倒くさいので調べたら、普通にRailsで標準機能がありました...。 railsguides.jp 実際に書いてみる 今回はHogeMailer.rb ## ActionMailerのレイ…

【アプリケーション設計】リファクタしやすいコードを意識する

コードを書いていて辛い時、それは「リファクタ」です。 工数が余計に必要になること バグを踏む可能性があること 最終commiterが自分だったとき などなど、辛いポイントがたくさんあります。 そんな辛い出来事をこれ以上増やさないためにできることは、「い…