# 📰Impression %%見出しごとにテーマを書く. 頑張ったこと、新しく始めたこと、改善したこと etc%% ## [[📰Obsidian v1.4]] [[Insider builds]] リリース [[Obsidian]]のv1.4が[[Insider builds]]版としてリリースされた。 <div class="link-card"> <div class="link-card-header"> <img src="https://obsidian.md/favicon.ico" class="link-card-site-icon"/> <span class="link-card-site-name">obsidian.md</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">Obsidian 1.4.0 Desktop (Catalyst)</p> </div> <div class="link-card-description"> Shiny new things Introducing **Properties**. A simple and durable way to add tags, aliases, dates, a... </div> </div> <img src="https://obsidian.md/images/banner.png" class="link-card-image" /> </div> <a href="https://obsidian.md/changelog/2023-07-26-desktop-v1.4.0/"></a> </div> このバージョンからは[[プロパティ (Obsidian)|プロパティ]]という新機能が導入された。[[フロントマター]]を[[Notion]]みたいに拡張して、GUIフレンドリーにもした機能だ。 普通の人からするとこのリリースは歓迎されるものだろう。一方、[[Vim]]ヘビーユーザーのように一部のギークなユーザーからは酷評されている。[[プロパティ (Obsidian)|プロパティ]]がリリースされたことにより、今までのように ([[Live Preview]]モードで) [[フロントマター]]を直接編集することができなくなったからだ。私も同様の感想を持ち、珍しく[[Obsidian Forum]]にコメントしてみた。 <div class="link-card"> <div class="link-card-header"> <img src="https://forum.obsidian.md/uploads/default/optimized/3X/a/b/abf9faf124ba8edea7e6e644ec69d669b49baa30_2_32x32.png" class="link-card-site-icon"/> <span class="link-card-site-name">Obsidian Forum</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">Show raw YAML in live preview (with hidden properties)</p> <p class="link-card-description">I agree with this suggestion - I think the Properties UI is great, but I want Properties to </p> </div> <img src="https://forum.obsidian.md/uploads/default/original/3X/b/a/ba1a1301f580d34a881803aa5ed8cf7ff3cdf0ef.png" class="link-card-image" /> </div> <a href="https://forum.obsidian.md/t/show-raw-yaml-in-live-preview-with-hidden-properties/63830/10"></a> </div> 一方で、2日ほど[[プロパティ (Obsidian)|プロパティ]]を使ってみて慣れてしまったというのもある。見た目に関していえば、[[フロントマター]]より[[プロパティ (Obsidian)|プロパティ]]の方が格好良くて見やすいし、キーボードでもほとんどの操作はできるため、今では[[プロパティ (Obsidian)|プロパティ]]のファンになったとも言えるだろう。正直困ってはいない。 それとは別に、[[📰Obsidian v1.4]]ではいくつかの不具合に直面している。今のところクリティカルなものはないが、以下に整理しているので気になる方は確認してみるのもいいだろう。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" /> <span class="link-card-v2-site-name">Minerva</span> </div> <div class="link-card-v2-title"> 📰Obsidian v1.4 </div> <div class="link-card-v2-content">Obsidian v1.4でプロパティ機能が追加され、YAMLフロントマターやメタデータ管理、Live Preview、Vimモード、タグ、テンプレート、プラグイン対応が強化されたバージョンである。</div> <img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/obsidian-plugin.webp" /> <a data-href="📰Obsidian v1.4" class="internal-link"></a> </div> %%[[📰Obsidian v1.4]]%% ## [[Elixir]]で[[TDD]]をやろうと思った 職場で[[TDD]]に関する勉強会があり、今まで分かっているつもりでいた[[TDD]]が想像と少し違うことを知った。[[DDD]]と同じで知ったかはよくないと思い、すぐに[[📚テスト駆動開発]]を購入し読み進めることにした。 <div class="link-card"> <div class="link-card-header"> <img src="https://shop.ohmsha.co.jp/favicon.ico" class="link-card-site-icon"/> <span class="link-card-site-name">Ohmsha</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">テスト駆動設計-Ohmsha</p> </div> <div class="link-card-description"> Kent Beck 著/和田 卓人 訳 </div> </div> <img src="https://makeshop-multi-images.akamaized.net/ohmsha/itemimages/000000004967.gif" class="link-card-image" /> </div> <a href="https://shop.ohmsha.co.jp/shopdetail/000000004967/"></a> </div> 本書は[[Java]]のコードが記載されているが、今更[[Java]]でやるのも何か面白くない... というわけで2018年頃に学習を始めつつ、未だに実用レベルに至れていない[[Elixir]]で[[TDD]]本の写経をしてみようと決めた。 そのためにはまず、[[Elixir]]の基本文法をマスターして、テスト対象コードとテストコードを書けるだけのスキルを身に着ける必要がある。その第一歩として、[[📚Elixir Getting Started]]を読むことにした。学習メモは以下に記録している。 <div class="link-card"> <div class="link-card-header"> <img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" class="link-card-site-icon"/> <span class="link-card-site-name">minerva.mamansoft.net</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">📰Elixir Getting Startedの学習メモ</p> </div> <div class="link-card-description"> 📚Elixir Getting Startedを読んでの学習メモ。 </div> </div> <img src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/minerva-image.webp" class="link-card-image" /> </div> <a class="internal-link" data-href="📰Elixir Getting Startedの学習メモ" ></a> </div> %%[[📰Elixir Getting Startedの学習メモ]]%% まだ先は長いが、焦る旅ではないのでゆっくりやっていく。[[TDD]]本も言ってた。焦らず、少しずつ...とな。 # 🎇Shiny Outputs ## 🦉My products - [[🦉Mobile First Daily Interface]] - [Free Writing v0.12.1リリース](https://github.com/tadashi-aikawa/obsidian-free-writing/releases/tag/0.12.1) - [[🦉OwlMixin]] - [OwlMixin v6.1.0リリース](https://github.com/tadashi-aikawa/owlmixin/releases/tag/v6.1.0) - [[🦉owcli]] - [owcli v0.8.0リリース](https://github.com/tadashi-aikawa/owcli/releases/tag/v0.8.0) ## 📖Publish - [[💿MIN-0026 知識の分類にプロパティのタグを使う]] - [[📕Elixirでよく使うイテレーター処理や変換操作]] - [[📚Elixir Getting Started]] - [[📜Elixirでreqを使ってAPIからデータを取得してみた]] - [[📜Elixirで型解析できるようにする]] - [[📜ElixirにDialyxirを導入して静的型解析してみた]] - [[📜ElixirをWindowsにインストール]] - [[📜IntelliJ IDEAを2023.2にバージョンアップ]] - [[📝Nuxt3のpluginの中でcomposablesが呼び出せない]] - [[📰Obsidian v1.4]] - [[📰Obsidianで影響の大きいリリースバージョンの特徴と問題点]] - [[📝Windows環境でPythonを利用するときにファイル読み書き(open)や標準入出力、パイプなどのデフォルトエンコーディングをUTF-8にしたい]] - [[📝coc-elixirでビルドインモジュール(標準モジュール)の定義に移動できない]] - [[📝coc-elixirの起動に失敗する]] - [[📰2023年29週 Weekly Report]] - [[📰Elixir Getting Startedの学習メモ]] - [[🧩Mapped Types]] ## 🙋Obsidian Questions <div class="link-card"> <div class="link-card-header"> <img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/> <span class="link-card-site-name">GitHub</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">はじめまして。このたび初めてこの場を知りました。 · Issue #5 · tadashi-aikawa/obsidian-questions</p> </div> <div class="link-card-description"> こんにちは。はじめまして。このたび初めてこの場を知りました。日本語で投稿できるフォーラムが少ないので、日本語でそのまま投稿できるこういった場は貴重だと思います。貴重な機会なので、できるだけ、利用させて... </div> </div> <img src="https://opengraph.githubassets.com/4e4f6efa55cf512f979deb938a40e02ac1d7d986d3943edfdf3bb62fca73c05d/tadashi-aikawa/obsidian-questions/issues/5" class="link-card-image" /> </div> <a href="https://github.com/tadashi-aikawa/obsidian-questions/issues/5"></a> </div> <div class="link-card"> <div class="link-card-header"> <img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/> <span class="link-card-site-name">GitHub</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">「表記ゆれ」にFront Fomatter の aliases を使うか、使わないか? · Issue #6 · tadashi-aikawa/obsidian-questions</p> </div> <div class="link-card-description"> さて、本題です。tadashi-aikawa様は以前、Front Fomatter の aliases は「表記ゆれ」には使っていないと発言されていた記憶があります。 "徳川家康"と"徳川 家康" "... </div> </div> <img src="https://opengraph.githubassets.com/dace8c2081516f54b750f1f05adddd2660d550f3866578372d432fc6c84b2cc8/tadashi-aikawa/obsidian-questions/issues/6" class="link-card-image" /> </div> <a href="https://github.com/tadashi-aikawa/obsidian-questions/issues/6"></a> </div> <div class="link-card"> <div class="link-card-header"> <img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/> <span class="link-card-site-name">GitHub</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">Various Complements プラグイン の日本語の場合の補完機能 · Issue #7 · tadashi-aikawa/obsidian-questions</p> </div> <div class="link-card-description"> Various Complements プラグインですが、日本語の場合、 ブランケットで囲まなくても、たとえば、地の文の「今日はいい天気」と入力途中で補完機能が働くことを想定されていますか? それとも... </div> </div> <img src="https://opengraph.githubassets.com/af42d0ca545251d8c89d4a35e35aba87d456c9fff62ed64e4a25efffd7b3c77c/tadashi-aikawa/obsidian-questions/issues/7" class="link-card-image" /> </div> <a href="https://github.com/tadashi-aikawa/obsidian-questions/issues/7"></a> </div> # 👀Medias ## How Turborepo is porting from Go to Rust [[Turborepo]]が[[Go]]から[[Rust]]に移行した方法についての記事。 <div class="link-card"> <div class="link-card-header"> <img src="https://vercel.com/favicon.ico" class="link-card-site-icon"/> <span class="link-card-site-name">vercel.com</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">How Turborepo is porting from Go to Rust – Vercel</p> </div> <div class="link-card-description"> Our strategy for making updates and maintaining stability while we migrate languages. </div> </div> <img src="https://assets.vercel.com/image/upload/contentful/image/e5382hct74si/6E56Ftg7W5wsRF8rjgjS7N/42f14e2661f473af626111a517df547e/Turbo_OG.png" class="link-card-image" /> </div> <a href="https://vercel.com/blog/how-turborepo-is-porting-from-go-to-rust"></a> </div> ## Prettier 3.0 をリリースしました [[Prettier]] 3.0にメジャーアップしてリリースしたことの記事。 <div class="link-card"> <div class="link-card-header"> <img src="https://sosukesuzuki.dev/img/favicon.ico" class="link-card-site-icon"/> <span class="link-card-site-name">sosukesuzuki.dev</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">Prettier 3.0 をリリースしました</p> </div> <div class="link-card-description"> Prettier 3.0 の主要な変更の紹介 </div> </div> <img src="https://sosukesuzuki.dev/img/large-logo.jpeg" class="link-card-image" /> </div> <a href="https://sosukesuzuki.dev/posts/prettier-3.0/"></a> </div> ## DIP(依存性逆転の原則)を守っていない話 [[DIP]]を守っていない理由について述べられた記事。 <div class="link-card"> <div class="link-card-header"> <img src="https://blog.ojisan.io/favicon-32x32.png?v=7c2fce2105c63d0749fe68f06c8009ea" class="link-card-site-icon"/> <span class="link-card-site-name">blog.ojisan.io</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">DIP(依存性逆転の原則)を守っていない話</p> </div> <div class="link-card-description"> </div> </div> <img src="https://blog.ojisan.io/static/a7258c03179e0cbc99d097760e73d223/ff239/visual.jpg" class="link-card-image" /> </div> <a href="https://blog.ojisan.io/not-use-dip/"></a> </div> 自分も8年前くらいは同じような考えだったが、設計に長けた人と仕事をするようになってからは極力[[DIP]]を意識して開発するようになった。 ただ、この記事にも書かれているように、実装の際は多少面倒になる。テストやモックを使った開発する場合は便利なのだが、お手軽に[[テストダブル]]を作成できるライブラリがあるならば、デメリットの方が上回る可能性もあるだろう。 何より、この記事にあるように、抽象に対する実装を変更したことはほとんどない。そもそも、それができる人は限られているし、抽象化されていても今の実装を意識した実装になっていて引きはがすのが難しかったりする。[[AWS]]を使って[[DDD]]で開発してみると、身をもってその辺が理解できると思う。 ## Type Specifications and Erlang [[Erlang]]の静的分析ツール[[Dialyzer]]による型仕様についての記事。 <div class="link-card"> <div class="link-card-header"> <img src="https://learnyousomeerlang.com/favicon.ico" class="link-card-site-icon"/> <span class="link-card-site-name">learnyousomeerlang.com</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">Type Specifications and Erlang | Learn You Some Erlang for Great Good!</p> </div> <div class="link-card-description"> Dialyzer is an Erlang tool to analyze and find discrepancies in Erlang software. More than that, it'... </div> </div> </div> <a href="https://learnyousomeerlang.com/dialyzer"></a> </div> [[Dialyzerは楽観的な型推論を行う]]という情報の真偽と詳細を調べるために読んでみたが、ボリュームもあり、難易度も高そうなので途中で挫折した。また折を見て確認したい。 ## 生みの親が語るElixirのこれまでとこれから [[Elixir]]作者が語った[[Elixir]]の過去と未来についてのレポート。 <div class="link-card"> <div class="link-card-header"> <img src="https://gihyo.jp/favicon.ico" class="link-card-site-icon"/> <span class="link-card-site-name">gihyo.jp</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">生みの親が語るElixirのこれまでとこれから ―「ElixirConfJapan 2017」参加レポート | gihyo.jp</p> </div> <div class="link-card-description"> 2017年4月1日、秋葉原コンベンションホールにて「ElixirConfJapan 2017」が開催され、300人を超す参加者が集まり大盛況となりました。その模様をレポートします。 </div> </div> <img src="https://gihyo.jp/assets/images/ICON/2017/1583_elixerconf2017.png" class="link-card-image" /> </div> <a href="https://gihyo.jp/news/report/2017/04/1001"></a> </div> 2017年なのでそこそこ古いが、今[[Elixir]]を学ぶ上で歴史を知るには有益な資料。 ## ElixirとHaskellの根底にある同じもの、そして、Elixirが辿った道 [[Elixir]]の世界では有名な[[👤piacerex]]さんが[[Haskell]]を比較しながら[[Elixir]]を紹介してくれる資料。 <div class="link-card"> <div class="link-card-header"> <img src="https://d1eu30co0ohy4w.cloudfront.net/assets/favicon-bdd5839d46040a50edf189174e6f7aacc8abb3aaecd56a4711cf00d820883f47.png" class="link-card-site-icon"/> <span class="link-card-site-name">Speaker Deck</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">ElixirとHaskellの根底にある同じもの、そして、Elixirが辿った道</p> </div> <div class="link-card-description"> </div> </div> <img src="https://files.speakerdeck.com/presentations/a739729f236d467cabf5b384a462038d/slide_0.jpg?14122954" class="link-card-image" /> </div> <a href="https://speakerdeck.com/piacerex/elixirtohaskellfalsegen-di-niarutong-zimofalse-sosite-elixirgachan-tutadao"></a> </div> こちらも2019年と少し古いが、歴史や[[Haskell]]との違いを学ぶ上で大変有益。 ## 【Elixir】約 1 年ほど Elixir を業務で使った自分が最初に知りたかったこと 表題の通り。2018年なので少し前だが、[[Elixir]]を使う前に読んでおくと役に立ちそう。 <div class="link-card"> <div class="link-card-header"> <img src="https://snamiki1212.com/favicon.png" class="link-card-site-icon"/> <span class="link-card-site-name">snamiki1212.com</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">【Elixir】約1年ほどElixirを業務で使った自分が最初に知りたかったこと</p> </div> <div class="link-card-description"> </div> </div> </div> <a href="https://snamiki1212.com/qiita-adventcalendar-2018/"></a> </div> ## ElixirのHTTPクライアントでお天気情報を取得したい(2022年) [[Elixir]]の[[HTTPクライアント]]である[[Req]]を使って、お天気情報取得処理を書いてみた話。 <div class="link-card"> <div class="link-card-header"> <img src="https://cdn.qiita.com/assets/favicons/public/production-c620d3e403342b1022967ba5e3db1aaa.ico" class="link-card-site-icon"/> <span class="link-card-site-name">Qiita</span> </div> <div class="link-card-body"> <div class="link-card-content"> <div> <p class="link-card-title">ElixirのHTTPクライアントでお天気情報を取得したい(2022年) - Qiita</p> </div> <div class="link-card-description"> ElixirのHTTPクライアントについて検索してみるといろいろ出てきます。中には廃盤になったものもいくつかあります。先日Alex KoutmosさんのThe State of Elixir HTTP... </div> </div> <img src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9RWxpeGlyJUUzJTgxJUFFSFRUUCVFMyU4MiVBRiVFMyU4MyVBOSVFMyU4MiVBNCVFMyU4MiVBMiVFMyU4MyVCMyVFMyU4MyU4OCVFMyU4MSVBNyVFMyU4MSU4QSVFNSVBNCVBOSVFNiVCMCU5NyVFNiU4MyU4NSVFNSVBMCVCMSVFMyU4MiU5MiVFNSU4RiU5NiVFNSVCRSU5NyVFMyU4MSU5NyVFMyU4MSU5RiVFMyU4MSU4NCUyODIwMjIlRTUlQjklQjQlMjkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTYzNjI2MTkwYTVkNzBmYmZlZjA0NjE1MTcxNDY0MWFh&mark-x=142&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbW5pc2hpZ3VjaGkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTc0Y2YyNGNjN2ZmOTRjMWVkNDQzNmYwOGRmNTYwYzBh&blend-x=142&blend-y=491&blend-mode=normal&s=0200715cedf39c7ecabcc4fdcc5b59a4" class="link-card-image" /> </div> <a href="https://qiita.com/mnishiguchi/items/c7a19f02f034a1fb3f48"></a> </div> 2022年と比較的新しい情報なので、最近のトレンドを知る上でも良い。特に[[HTTPクライアント]]はよく使うので、[[Req]]がイケてるという情報は大変参考になった。 # 📚Inputs - [[CP932]] - [[Dialyxir]] - [[Dialyzer]] - [[Dialyzerは楽観的な型推論を行う]] - [[ElixirLS (VSCode)]] - [[ElixirLS]] - [[Elixir]] - [[Elixirでテンプレートリテラルのように変数を含んだ文字列を作成]] - [[Elixirでリストとタプルはどちらを使うべきか]] - [[Elixirで文字列の結合]] - [[Elixirで静的型解析]] - [[Elixirにおけるsizeとlengthの違い]] - [[Elixirのexファイルとexsファイル]] - [[Elixirのタプルから要素を取得]] - [[Elixirのタプル要素を変更]] - [[Elixirのリストから要素を削除]] - [[Elixirのリストから要素を取得]] - [[Elixirのリストに要素を追加]] - [[Elixirのリストを連結]] - [[Enum (Elixir)]] - [[Erlang VM]] - [[Erlang]] - [[ExUnit]] - [[IO.puts]] - [[IntelliJ Elixir]] - [[Intellij IDEAでElixirの開発環境構築]] - [[Interpolation]] - [[Key Remapping (TypeScript)]] - [[Mapping Modifiers (TypeScript)]] - [[Mix]] - [[NeovimでElixirの開発環境構築]] - [[Nuxt3でプラグインをつくる]] - [[OTP]] - [[PLT]] - [[PYTHONUTF8]] - [[PoetryでAPIトークンを使ってPyPIにパッケージをアップロード(publish)]] - [[APIトークンを作成 (PyPI)]] - [[APIトークンを使ってパッケージをアップロード (PyPI)]] - [[Python UTF-8モード]] - [[Req]] - [[TypeScriptのnever型をユニオン型の一部に指定しても結果は変わらない]] - [[Typespecs]] - [[VSCodeでElixirの開発環境構築]] - [[Windowsコードページ]] - [[coc-elixir]] - [[cons演算子 (Elixir)]] - [[ghr]] - [[go-mutesting]] - [[hex (Elixir)]] - [[アトム]] - [[アリティ]] - [[アルケミスト]] - [[エイリアス (Elixir)]] - [[シーケンシャルアクセス]] - [[タプル (Elixir)]] - [[プロパティ (Obsidian)]] - [[ミュータント]] - [[ミューテーション解析]] - [[ランダムアクセス]] - [[リスト (Elixir)]] - [[ロケールエンコーディング]] - [[匿名関数 (Elixir)]] - [[名前付き関数 (Elixir)]] - [[連結リスト]]