You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
これはClojureアドベントカレンダー 15日目の記事です。 はじめに Clojureライブラリの配布リポジトリであるClojarsでは、今年4月からライブラリを登録するのに「承認済みグループ名」が必須になりました。これによって、これまでライブラリに自由につけられたグループ名が、実在するドメイン名をベースにした事前に承認されたグループ名でなければいけなくなりました。 ところで、4月からこれまでの間にリリースされたライブラリの中で、どれぐらいの割合がすでに承認済みグループの下でリリースされているのでしょうか?また、承認済みグループ名としてはどういったものが多く使われる傾向にあるのでしょうか? この記事では、これらの答えについて調べてみたいと思います。 ここでは、以下の3ステップにより承認済みグループのトレンドについて調べます: 期間中にリリースされたライブラリの情報を収集する ライブラリが
最近 Clojure の勉強を始めてて FizzBuzz 書いて遊んだりしてる Clojure の勉強をしつつ FizzBuzz で息抜き - Mitsuyuki.Shiiba そして Clojure のアドベントカレンダーが空いてたから書くー Calendar for Clojure | Advent Calendar 2021 - Qiita 息抜きにどうぞー re:Clojure Conference 2021 re:Clojure 2021 のレコーディングがあったから、ぼーっと眺めてて、へー Notebook あるんだー便利そうーとか、難しい話はよく分かんないなーとか、飛ばしたり止めたりしつつ楽しんでたんだけど、Vlojure は見た目が面白いなーって思ったのだった ↓Vlojure のセッションの時間含めたリンク https://www.youtube.com/watch?v=
システムエンジニアやプログラマーは、問題解決に取り組むことが主な仕事ですが、 直面する問題解決に取り組む中で、過去に似たような問題に出会っていたことに気が付くことがよくあると思います。 この記事では、問題を別の問題に置き換えて考えることを言語化した、計算理論の世界の「還元」という概念を紹介しようと思います。 紹介の中で使うコードは、今の仕事で使っているClojureで書きました。(Clojureがわからなくても内容は理解できると思います) また、個人的な解釈を含むので、誤っている場合があります。個人的な解釈については、「~ていそうです」「~と思いました」「~な気がします」みたいな表現になっています。 1. 還元(reduce) 還元(reduce)とは、ある計算問題Aを別の計算問題Bに変換することです。 問題解決においては、 「この問題(A)って要はあの問題(B)なのでは?」 「あの問題(
今回は、私が業務をしている中で出会った、Clojureを用いて実装されている静的コード解析サービス、CodeSceneについてご紹介します。業務でClojureを採用する際の説得材料の一つになれば幸いです。また、Clojure以外の言語も多数サポートしているので、その他の言語のプロジェクト管理にもオススメです。コミュニティエディションはオープンソースプロジェクトには無料で利用できます。 CodeSceneはスウェーデンの企業で、ソースコードを静的解析して、コード品質や開発チームの効率、メンバーが辞めたときのリスクなどを評価するサービスを提供しています。社名はCrime Scene(事件現場)をもじったもので、Forensics(犯罪科学、鑑識)をソフトウェアに適用していることから来ているものと思われます。 GitHubやBitBucketで管理されているリポジトリをスキャンし、28のプログ
Logseq is a knowledge management and collaboration platform. It focuses on privacy, longevity, and user control. Logseq offers a range of powerful tools for knowledge management, collaboration, PDF annotation, and task management with support for multiple file formats, including Markdown and Org-mode, and various features for organizing and structuring your notes. Logseq's Whiteboard feature lets
Clojureでテストを書く、というのはclojure.testというものを用いることで簡単に達成できます。 今回はTDDを進めていく体で、テストの書き方を紹介していこうと思います。 お題は簡単に行うためにFizzBuzz*1です。FizzBuzzについてはWeb上に多く紹介があると思いますので割愛させていただきます。 これからコードを書いていきますが、コードはdiffのように追加した行は"+"、削除された行は"-"をつけることにします。 TDD最初の一歩とisマクロ TDDの最初は、「まずはテストから」ですよね。 +(ns fizzbuzz + (:use clojure.test)) + +(is (= 1 (say 1))) ここでは"say"と言う関数が、引数に1を受け取ると1が期待されるということを書いています。 これを実行すると java.lang.Exception: Una
Clojureコマンドラインツールとその中核ライブラリであるclojure/tools.depsは、2016年のClojure/ConjキーノートSpec-ulationで述べられているように、Rich HickeyにとってClojure、Datomicに続く新たな開発テーマとなっています。 現時点のclojure CLIはLeiningenと比較すると遥かにシンプルです。Leiningenの代替として、日常の開発で普段使いができるか、試してみることにしました。Tipsを順次追加していく予定です。 Gitプライベートリポにアクセスするための設定 LeiningenはMavenと同様、アーティファクトをJarにパッケージングし、Mavenリポジトリ(またはClojars)にJarをアップロードするというモデルになっています。Clojure CLIは、Jarにパッケージすることなく、Gitリポ
Clojureでプログラムを書くと、当然のように使うrequire、use、importの各関数/マクロですが、なんかよく忘れるのでメモっておこうかと。 require関数 Clojureのライブラリをロードするための関数。こういう感じで使います。 (require 'clojure.string) 単独のライブラリをロードする場合は、先頭に「'」が付くと…。 複数ロードする場合は、純粋に繋げばOK。 (require 'clojure.string 'clojure.data) まあ、requireを複数行ってもいいですけど。 requireすると、こんな感じでライブラリの呼び出しが可能に。 (clojure.string/join \, ["Hello" "World"]) 長いよ!っていう場合は、「:as」キーワードを付与することで別名を付けることができます。 (require '[
ifとかwhenとかcaseとかいろいろあって、いつも迷うので1度しっかり見てみることにしました。代表的そうなものを、以下順に。 if 最も単純な条件分岐です。最初に条件式を書き、次に条件がtrueとなった場合の処理、その次にelseの処理を書きます。戻り値は、それぞれのケースで評価された値になります。 ;; if (defn if-test [n] (if (= 1 n) "True!" "False!")) (println (if-test 1)) ;; => True! (println (if-test 2)) ;; => False! else if的なものはなさそうですね。その場合は、後述のcaseなどを使用します。あと、評価が逆になるif-notもあります。 なお、評価後の値に括弧が無いように、そのままでは複数の式を書くことはできません。その場合は、do特殊形式を入れる必要
2020/07/01 追記 GraalVM 20.1.0出たので インストールしてる時 native-image を gu install native-image で入れようとした時に 入れられなかったのでローカルでインストールした手順も追加。20.0 でも同じ PKIX なんちゃらのエラーだったので おそらく証明書かネットワークの問題だと思い keytool で色々やってたが上手く行かなかったので。 GraalVM 20.0.0 になって native-image の Windows 対応が experimental はまだ取れてないが improves significantly な状態になったそうなのでそろそろどうかなと試してみた。 2020/07/01 追記 自分の native-image の理解 ビルド完了までの手順 Graal VM 本体 JDK11 インストール Nati
Clojure Advent Calendar 2020 20日目の記事です。(が、大幅におくれ25日になっちゃった。メリークリスプマス!) 以前 静的解析ツールKibitを眺めていたらCore.logicが使われていたのでどのように使われているかという話です。 論理プログラミング言語とは、ルールを宣言的にかいてそれを解かせるということに特化した言語です。 Prologという言語がよく知られていると思います。 そして、core.logicはSchemeの論理プログラミングDSLである、miniKanrenのClojure実装です。 core.logicの実用例を他に眺めていたが、古いものが多かったのであまり深くは追っていません。 言語処理系の例では型を解くのに使われていたり、日付、時間ライブラリのルールをcore.logicで記述してそれで計算を解いているような使われ方をしているようです。
まだ malli で定義した仕様をすべて clj-kondo 側で扱えるわけではないです。 そのため現時点で実用に耐えうるかというとそうではありません。 ただ無いよりは有った方が開発体験は改善するいうレベルです。 malli とは metosin/malli は Clojure/ClojureScript 向けにデータに対する仕様を定義し、データがその仕様に沿っているかをバリデートするための機能を提供するライブラリです。 近いライブラリとして clojure.spec や plumatic/schema がありますが、malli が特徴的なのはすべての仕様を「データ」として定義できる点です。 (require '[malli.core :as m]) (def IntMap ;; key がキーワード、 value が整数であるマップの定義 ;; キーワードとシンボルからなるただのデータ
この記事は Clojure Advent Calendar 2020 の8日目の穴埋めに向けたものです。 TL;DR Clojure 向けに antq という古い依存ライブラリなどを検知するツールを作ったよ ライブラリに限らず GitHub Actions の YAML もチェックするよ これまでの古い依存ライブラリ検知ツール Clojure にはプロジェクトが依存しているライブラリで古いものがあれば教えてくれるツール類が昔からあります。 おそらく一番有名なものでは Leiningen 向けのプラグインとして xsc/lein-ancient があり、 Boot 向けの martinklepsch/boot-deps、Clojure CLI 向けの Olical/depot というように基本的に検知用のツールは出揃っている状況です。 なのでこれらのツールを使えば現時点でも基本的には困らない
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く