newnakashimaのblog

会社のサイトはNext.jsで作ったものをexportして完全に静的なサイトとして作成していた。が、色々あってバックエンドが欲しくなった。AWSのAmplifyにデプロイしていたので、あとからサーバー追加するのめんどいなあというのと、管理画面とか作りたくないし簡易的なものでいいからとGASにしたのだが、ハマりどころがあった。(あとAmplifyでも今は普通にNext.jsのバックエンドが使えるので使えるようにした)

特にハマったのはdoPost。doPostはエンドポイントにPOST…

続き =>

自分には行動力がない。ここでいう行動力とはアクティブな人生を送っているかどうかみたいな意味で一般的に使われるような行動力とは微妙に違う。私がいいたい行動力とは、シミュレーションRPGなどでよく使われる概念の「行動力」だ。行動力がある限りシミュレーションRPGのユニットは行動を続けることができる。行動力が高いユニットは一ターンで二回行動できたりする。そのような意味での行動力が私にはない。

自分は一日8時間働くと行動力が枯渇する。8時間以上はかなり無理すれば働けるが、昨年はその生活を…

続き =>

marked使っていて改行を2回以上入れられない問題にぶちあたった。

例えば、運用の人から以下のようなマークダウンが送られてきたとする。

# 重大発表

重大発表があります!

それは。。。
























秘密です!

改行をたくさん入れることによって、スクロールしないと続きが読めないようにするようなコンテンツなわけだが、これを普通にmarkedでパースすると以下のような感じになってしまう。

<h1>重大発表</h1>
<p>重大発表があります!</p>
<p…
続き =>

useMemoとuseCallbackの使い所について最近色々感じることがあるのでメモ。個人的な感想。一般的にどうなのかはよくわからない。

useMemo

例えば、以下のようなコンポーネントがあるとする。

export default function MyComponent() {
  const [flag1, setFlag1] = useState(false)
  const [flag2, setFlag2] = useState(false)

  return (
    <div…
続き =>

何百番煎じだよって話だけどPHPerからするとRailsではnl2brどうやるの?というのが気になりすぎた。

特にLaravelでは {!! nl2br(e( $something )) !!} みたいな書き方するやつ。

simple_format って関数があるらしいけど、連続した改行は <p> になるというおせっかいなことこの上ない余計な機能が付いている。

ヘルパを自作することになるようなのだが、Rails初心者なのでやり方を調べた結果をメモ。結論は以下のような感じに書けば良いらしい。

続き =>
sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install

で解決した(自分の場合は)。


久しぶりにrbenvを使って違うバージョンのRuby使ってみよっかなって思ったときに RUBY_FUNCTION_NAME_STRING が未定義だとかいうエラーが出てハマった。Homebrewから入れると大丈夫だけど、これはコンパイル済みのものを落としてきているだけなので問題は解決していない。

https…

続き =>

結論

先に結論を書いておくと、以下のようにsettings.jsonに書けば解決した。

{
    // 省略
    "solargraph.useBundler": false,
    "solargraph.commandPath": "/usr/local/lib/ruby/gems/3.1.0/bin/solargraph",
    // 省略
}

結論に至るまで

VSCodeでRuby Solargraphという拡張を使ってSolargraph…

続き =>

いまこのブログには2年くらい前に流行ったJAMスタックというアーキテクチャを採用している。ブログの記事はマークダウンで書いて、それをGitHubにプッシュしたらNetlifyのCDが動いてビルドしてNetlifyにデプロイという流れだ。NetlifyはGatsby.js製のソースをビルドした後の静的ファイルをホスティングしているだけで、動的なバックエンドが要らないのでお金がかからない。しかも流行っている。Jekyllみたいにダサくない。はずだった。

続き =>

テスティングフレームワークとか使わずに簡易的にプログラムをテストしたい場合、どんな言語でも最初はシェルスクリプトを使ったりする。標準出力を比較するだけでいい場合とかは結構手軽だ。

あるとき、複数行の出力を比較したくなったときに、実行結果と期待値を一旦ファイルとして書き出して、その2つのファイルをdiffで比較する、というのをテストのスクリプトに書いた。そしたらなぜかexit statusが1でファイルが途中で止まってしまう。set -eしているので途中の処理が…

続き =>

Railsは7.0.0。Rubyは3.0.3。

Railsのlink_toで以下のようなやつを書いていた。

= link_to 'ログアウト', destroy_user_session_path, :method => :delete

しかし「idがsign_outのユーザーはいません」的なエラーが帰ってきていた。しかもメソッドがGETになってしまっている。はじめはDeviseがおかしいのかと思ったけど違うようだ。

Turboを使っているからなのか、どうも :method => :delete

続き =>

newnakashimaのBlog