ラベル clojure の投稿を表示しています。 すべての投稿を表示
ラベル clojure の投稿を表示しています。 すべての投稿を表示

clj-kondoのhooksを書く

2025年4月13日日曜日
背景 clj-kondoのhooksを使ったメタ情報付与では対応できないマクロに対する解釈の記述方法を把握できたので、関連情報を記事に残します。 前回の 自作マクロに対するclj-kondoの警告をマクロへのメタ情報付与で解消する方法 をまとめたときに動かし方が分からず諦めた内容...

自作マクロに対するclj-kondoの警告はメタ情報付与で解消できる

2025年4月6日日曜日
背景 プログラミング言語clojureにはマクロ定義機能があります。 それを使うことで冗長な変数呼び出しをまとめたり、処理や変数の定義と後始末の管理が容易になったりします。 VSCodeでclojureを書く際にプラグインcalvaを入れると、clojureのフォルダを開いた際に...

clojureで関数内変数との競合を回避してnamespaceの変数を呼び出す方法

2025年3月9日日曜日
背景 プログラミング言語clojureで「namespaceで定義した変数」と「関数でキーワードで受け取る引数」の競合が発生してnamespace側の変数の呼び方が分からなくてしばらく困りました。 いくつかの解決方法が分かったので、関連情報と共に備忘録として記事に残します。 動作...

pedestalによるファイル受信処理とcurlによるファイルアップロードコマンド備忘録

2025年1月12日日曜日
背景 趣味で作っている ログ取りサーバー(clojure pedestal利用) に ファイルアップロードapiを追加 しました。 取り組んだ内容を見返したくなった時の関連情報を記事に残します。 ファイル配信処理は以前の記事が参考になると思います。 clojureのpedesta...

clojureのpedestal(ring)で動的なファイル配信

2024年12月29日日曜日
背景 pedestalとはプログラミング言語clojureのサーバーライブラリの1つです。 apiの説明ページを見ると 静的なファイルの配信処理(static resource)の説明 はあるものの動的なファイルの配信処理(dynamic resource)の説明は無く実現が分か...

clojureのreplで実行したいコマンドはshellのパイプで渡せる

2024年12月2日月曜日
この記事は Clojure Advent Calendar 2024 の2日目の記事です。 プログラミング言語 clojure には対話型の入力機能replがあります。 clojure-cli コマンドだとmainや関数の指定なしで実行した時に表示されるのがreplです。 nRE...

lacinia pedestalのschemaのビルドはtry catchで異常時の情報をprintすると便利

2024年9月8日日曜日
背景 clojure(言語)の lacinia-pedestal (ライブラリ)でgraphql実装時にschemaなどに不備があってビルドに失敗するとエラーが表示されて処理が止まります。 標準で表示されるエラーの内容の情報が少なくて不具合発生時の原因特定に苦労していたのですが、...

clojureのthreading macroで関数を定義して使う場合は括弧を重ねて記述する

2024年8月11日日曜日
clojureには関数を連なって処理するための表現としてthreading macroが提供されています。 この表記を使うと呼び出す順序で関数を並べられるので処理の流れが分かりやすくなります。 (-> [1 2 3] (conj 4) (conj 5)) [...

clojureでupdate関数定義時の警告を回避

2024年8月4日日曜日
clojureでupdate関数を定義すると 言語仕様で定義されているupdate関数 と競合して警告が出ます。 update already refers to: cljs.core/update being replaced by: front.model.user/upda...

shadow-cljsでnodeのライブラリ呼び出し時にundefinedエラーが出る場合はdefaultの読み込み必要な場合がある

2024年6月17日月曜日
要点 ライブラリ名に$defaultを付けてrequireすると解決する場合があります。 (ns your.some.file (:require ["react-native-ble-manager$default" :as rn-ble-manager...

clojurescriptのjs/Promiseは記述を関数にするとresolveとrejectを引数として受け取れる

2024年5月12日日曜日
js/Promise.の後の定義を関数にすると、第1引数をresolve、題2引数をrejectとして扱えます。 (js/Promise. (fn [resolve _reject] (println "process in promise") (resolv...

clojureプロジェクトで発生するslf4jの警告を消す

2024年4月15日月曜日
要約: 消すだけならslf4j-nopを、ログを出したいならslf4j-simpleなどをdepsに追加 下記のようにslf4j-nopライブラリ追加でログ取り処理は動かさないまま警告は消えます。 最新版はMavenのページで確認してください。 SLF4J NOP Provid...

lacinia-pedestalのinterceptorでgraphqlの引数を扱う

2024年4月7日日曜日
背景 lacinia とはclojureでgraphqlを扱うためのライブラリの1つです。 pedestal とはclojureのサーバープログラムの1つです。 lacinia-pedestal というライブラリがlaciniaの開発者によって提供されており、それを使うことでpe...

clojureでgoog.string.formatをimportするとvscodeのclj-kondで出る警告Unresolved symbolはgoog.stringをrequireすれば消せる

2024年3月31日日曜日
背景 clojure scriptの標準ライブラリとして提供されているgoog.string.formatをrequireして利用すると、vscode上の clj-kond (clojure向けの表記整理プログラム)で下記の警告が出ました。 (ns front.model.exa...

ragtimeを利用してmigration用コマンドを実装

2024年3月24日日曜日
背景 ragtime とはclojureでdb(データベース)のmigrationなどを管理するライブラリの1つです。 htmlを略式で書けるhiccupなどを開発された weavejester さんが開発しています。 dbにおけるmigrationとは、データ構造の構築や巻き戻...

pedestalでsessionやcookieを使う

2024年1月7日日曜日
背景 pedestal とはclojureというプログラミング言語のライブラリの1つであり、これを利用してwebサーバーのapiを管理できます。 このpedestalは ring というapi管理ライブラリを利用して作られており、sessionの機能はringに頼っています。 設...