mastodon.world is one of the many independent Mastodon servers you can use to participate in the fediverse.
Generic Mastodon server for anyone to use.

Server stats:

12K
active users

#ecto

2 posts1 participant0 posts today
Leanpub<p>Leanpub book LAUNCH! Northwind Elixir Traders: Learn Elixir and database modeling with Ecto and SQLite, all in one project by Isaak Tsalicoglou <a href="https://youtu.be/LtzBS9hb1Go" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">youtu.be/LtzBS9hb1Go</span><span class="invisible"></span></a> <a href="https://mastodon.social/tags/books" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>books</span></a> <a href="https://mastodon.social/tags/leanpublishing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>leanpublishing</span></a> <a href="https://mastodon.social/tags/selfpublishing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>selfpublishing</span></a> <a href="https://mastodon.social/tags/booklaunch" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>booklaunch</span></a> <a href="https://mastodon.social/tags/ElixirLang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ElixirLang</span></a> <a href="https://mastodon.social/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://mastodon.social/tags/IndieHacker" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IndieHacker</span></a> <a href="https://mastodon.social/tags/Ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Ecto</span></a> <a href="https://mastodon.social/tags/SQLite" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SQLite</span></a> <a href="https://mastodon.social/tags/SoftwareDevelopment" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SoftwareDevelopment</span></a> <a href="https://mastodon.social/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a> <a href="https://mastodon.social/tags/FullStackDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FullStackDev</span></a> <a href="https://mastodon.social/tags/LearnToCode" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LearnToCode</span></a> <a href="https://mastodon.social/tags/LeanpubPodcast" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LeanpubPodcast</span></a></p>
Leanpub<p>NEW! A Leanpub Frontmatter Podcast Interview with Isaak Tsalicoglou, Author of Northwind Elixir Traders: Learn Elixir and database modeling with Ecto and SQLite, all in one project | Watch here: <a href="https://youtu.be/zeUVFt82UG4" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">youtu.be/zeUVFt82UG4</span><span class="invisible"></span></a> <a href="https://mastodon.social/tags/books" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>books</span></a> <a href="https://mastodon.social/tags/ElixirLang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ElixirLang</span></a> <a href="https://mastodon.social/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://mastodon.social/tags/IndieHacker" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>IndieHacker</span></a> <a href="https://mastodon.social/tags/Ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Ecto</span></a> <a href="https://mastodon.social/tags/SQLite" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SQLite</span></a> <a href="https://mastodon.social/tags/SoftwareDevelopment" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SoftwareDevelopment</span></a> <a href="https://mastodon.social/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a> <a href="https://mastodon.social/tags/FullStackDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>FullStackDev</span></a> <a href="https://mastodon.social/tags/LearnToCode" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LearnToCode</span></a> <a href="https://mastodon.social/tags/LeanpubPodcast" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LeanpubPodcast</span></a></p>
T0ha<p>Ecto’s fragments still feel like Elixir</p><p>But what I also really love is that if I want to eject out and write plain SQL for a specific part, it still feels like Elixir, because everything else stays the same—it’s just a tiny fragment/1 that uses safe variable interpolation. And it turns out that Ecto.</p><p>Tags: <a href="https://mastodon.social/tags/ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ecto</span></a>, <a href="https://mastodon.social/tags/elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>elixir</span></a>, <a href="https://mastodon.social/tags/sql" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>sql</span></a></p><p>via Pocket <a href="https://ift.tt/BVUuop1" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">ift.tt/BVUuop1</span><span class="invisible"></span></a></p><p>February 17, 2025 at 06:25PM</p>
T0ha<p>Optimizing batch operations with Ecto</p><p>We had a feature in a product that required us to insert and update lots of data on a user action. Here is how we transformed 1000 SQL queries into 1. The way the code is structured is simple: An operations table and a translations table.</p><p>Tags: <a href="https://mastodon.social/tags/ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ecto</span></a>, <a href="https://mastodon.social/tags/elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>elixir</span></a></p><p>via Pocket <a href="https://ift.tt/DeLJXAa" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">ift.tt/DeLJXAa</span><span class="invisible"></span></a></p><p>February 11, 2025 at 11:42AM</p>
T0ha<p>Ecto Datetime With Time Zone</p><p>While implementing a feature to store event dates, I stumbled upon what I initially thought was a straightforward task: saving future dates in a database along with their time zones. How hard could it be, right? Turns out, it’s not so simple.</p><p>Tags: <a href="https://mastodon.social/tags/ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ecto</span></a>, <a href="https://mastodon.social/tags/elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>elixir</span></a>, <a href="https://mastodon.social/tags/elixirlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>elixirlang</span></a></p><p>via Pocket <a href="https://ift.tt/THrBwKm" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">ift.tt/THrBwKm</span><span class="invisible"></span></a></p><p>February 03, 2025 at 05:07PM</p>
T0ha<p>Search Filters with Ecto Queries</p><p>We have also written an accompanying Livebook for this article that includes the final code for you to play around with.</p><p>Tags: <a href="https://mastodon.social/tags/ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ecto</span></a>, <a href="https://mastodon.social/tags/elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>elixir</span></a>, <a href="https://mastodon.social/tags/liveview" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>liveview</span></a>, <a href="https://mastodon.social/tags/myelixirstatus" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>myelixirstatus</span></a>, <a href="https://mastodon.social/tags/phoenix" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>phoenix</span></a></p><p>via Pocket <a href="https://ift.tt/NR2p0El" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">ift.tt/NR2p0El</span><span class="invisible"></span></a></p><p>January 30, 2025 at 11:15AM</p>
Maikel<p>Latest and greatest episode about Schemas in Ecto <a href="https://www.twitch.tv/videos/2329133372" rel="nofollow noopener noreferrer" target="_blank">here</a><span><br><br>and the updated summary </span><a href="https://notes.maikel.dev/Learning/Book+Summaries/Programming+Ecto+by+Darrin+and+Eric" rel="nofollow noopener noreferrer" target="_blank">here</a><span><br><br>I'm using Sharkey for this toot because it has </span><b>markdown</b><span>, we're not savages this side of the fedi. <br><br></span><a href="https://blahaj.zone/tags/Ecto" rel="nofollow noopener noreferrer" target="_blank">#Ecto</a> <a href="https://blahaj.zone/tags/Elixir" rel="nofollow noopener noreferrer" target="_blank">#Elixir</a> <a href="https://blahaj.zone/tags/Schemas" rel="nofollow noopener noreferrer" target="_blank">#Schemas</a></p>
Sen<p>I really wish I had these steps when I was getting started with <a href="https://hachyderm.io/tags/Ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Ecto</span></a> and wanted to use <a href="https://hachyderm.io/tags/SQLite" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SQLite</span></a> in an <a href="https://hachyderm.io/tags/Elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Elixir</span></a> project.</p><p><a href="https://sensen.dev/posts/create-new-elixir-project-with-ecto-and-sqlite/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">sensen.dev/posts/create-new-el</span><span class="invisible">ixir-project-with-ecto-and-sqlite/</span></a></p>
Peter Solnica<p>Sentry tracing for Elixir/Phoenix/Ecto update:</p><p>✅ Live view traces<br>✅ Ecto db statements in traces</p><p>Getting there!</p><p><a href="https://hachyderm.io/tags/MyElixirStatus" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>MyElixirStatus</span></a> <a href="https://hachyderm.io/tags/observability" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>observability</span></a> <a href="https://hachyderm.io/tags/phoenixframework" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>phoenixframework</span></a> <a href="https://hachyderm.io/tags/ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ecto</span></a> <a href="https://hachyderm.io/tags/elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>elixir</span></a></p>
:VD15_0::VD15_1::VD15_2::VD15_3::VD15_4::VD15_5::VD15_6::VD15_7:<p>It's been trying to fetch a handful of posts from this one user over and over again for the past few hours:</p><pre><code>Sep 04 06:04:18 pl-vm-app-00 mix[881876]: 06:04:18.178 [error] Object rejected while fetching <a href="https://misskey.io/notes/9v84hfx971fd033b" rel="nofollow noopener noreferrer" target="_blank">https://misskey.io/notes/9v84hfx971fd033b</a> {:transmogrifier, {:error, <a class="hashtag" href="https://pl.valkyrie.world/tag/ecto" rel="nofollow noopener noreferrer" target="_blank">#Ecto</a>.Changeset&lt;action: :insert, changes: %{ap_id: "https://misskey.io/users/9mhsmldaly3m08ft", avatar: %{"type" =&gt; "Image", "url" =&gt; [%{"href" =&gt; "https://media.misskeyusercontent.com/io/69e178d3-340a-4ed4-971d-e14106fb6aa9.gif"}]}, banner: %{"type" =&gt; "Image", "url" =&gt; [%{"href" =&gt; "https://media.misskeyusercontent.com/io/f7a94b31-c460-4158-b9af-c6f5b791aa81.webp"}]}, bio: "&lt;p&gt;&lt;span&gt;【2024/7/3 アカウントを移行しました】&lt;br&gt;&lt;/span&gt;&lt;i&gt;&lt;i&gt; ​:verified_beer:​ &lt;i&gt;ビールだいすき&lt;/i&gt; &lt;/i&gt;&lt;/i&gt;&lt;span&gt;&lt;br&gt;&lt;/span&gt;​:role_custom_emoji_creator:​&lt;span&gt;&lt;br&gt;&lt;/span&gt;​:role_reaction_shooter:​​:role_misskey_addict:​​:role_nsfw:​​:role_dog_owner:​​:sonzai_ga_sensitive:​​:role_kigaru_ni_hanasikakete_ne:​&lt;span&gt;&lt;br&gt;アイコンはサハラダ先生 &lt;/span&gt;&lt;a href=\"https://misskey.io/@369jn@misskey.io\" class=\"u-url mention\"&gt;@369jn@misskey.io&lt;/a&gt;&lt;span&gt; に描いていただきました!!&lt;br&gt;バナーはどんにゃんさん &lt;/span&gt;&lt;a href=\"https://misskey.io/@sounyan@misskey.io\" class=\"u-url mention\"&gt;@sounyan@misskey.io&lt;/a&gt;&lt;span&gt; に作っていただきました!!&lt;br&gt;ありがとうございます!!&lt;br&gt;&lt;br&gt;&lt;/span&gt;🔞&lt;span&gt;かなりおじさんで大人な話もするので、18歳未満の方はフォローしないでね!ごめんね!&lt;br&gt;&lt;br&gt;&lt;/span&gt;​:_o:​​:_bi:​​:_wave:​​:_ru:​​:goku_goku:​​:t_oishii:​​:ne:​​:kin_kin_ni_hiete_yagaru_ze:​&lt;span&gt;&lt;br&gt;Drink gulp beer,That's delicious!&lt;br&gt;&lt;br&gt;作ったカスタム絵文字はピン留めを見てね!&lt;br&gt;&lt;br&gt;なうぷれがノートされるときはほぼ全て車の運転中聞いてるものです。邪魔なときは &lt;/span&gt;&lt;a href=\"https://misskey.io/tags/くずぷれ\" rel=\"tag\"&gt;#くずぷれ&lt;/a&gt; をミュートしてください。&lt;/p&gt;", birthday: ~D[7777-10-31], emoji: %{"_bi" =&gt; "https://media.misskeyusercontent.com/emoji/_bi.png", "_ku" =&gt; "https://media.misskeyusercontent.com/emoji/_ku.png", "_o" =&gt; "https://media.misskeyusercontent.com/emoji/_o.png", "_ru" =&gt; "https://media.misskeyusercontent.com/emoji/_ru.png", "_wave" =&gt; "https://media.misskeyusercontent.com/misskey/0a398188-edf5-4b14-b069-942067fcccc1.png", "_zu" =&gt; "https://media.misskeyusercontent.com/emoji/_zu.png", "dad" =&gt; "https://media.misskeyusercontent.com/emoji/dad.png", "goku_goku" =&gt; "https://media.misskeyusercontent.com/misskey/ef8f6255-9005-43f0-b03e-eff9ace532bf.png", "kin_kin_ni_hiete_yagaru_ze" =&gt; "https://media.misskeyusercontent.com/io/4ffe63bc-7bf2-42fe-b647-5bea8dd0a398.png", "ne" =&gt; "https://media.misskeyusercontent.com/misskey/2c2d86d7-480d-410d-a696-c04614343676.png", "role_custom_emoji_creator" =&gt; "https://media.misskeyusercontent.com/misskey/c1e89c36-ddbe-4564-88c9-ad8edb2907a5.png", "role_dog_owner" =&gt; "https://media.misskeyusercontent.com/io/webpublic-fefa69cd-b353-49f0-9071-a7a6fe73ede7.png", "role_kigaru_ni_hanasikakete_ne" =&gt; "https://media.misskeyusercontent.com/io/9424ad1f-f093-415b-8f32-b6d2e06b6851.apng", "role_misskey_addict" =&gt; "https://media.misskeyusercontent.com/io/81bfff19-8945-4070-8da1-143e78d4a806.png", "role_nsfw" =&gt; "https://media.misskeyusercontent.com/misskey/02b0550e-2285-4894-8bf5-affca01e371a.png", "role_reaction_shooter" =&gt; "https://media.misskeyusercontent.com/misskey/773a7af9-233f-4679-88b3-c099669b8943.png", "sonzai_ga_sensitive" =&gt; "https://media.misskeyusercontent.com/io/027915f8-4f76-425b-b838-6f69db395d4a.png", "t_oishii" =&gt; "https://media.misskeyusercontent.com/emoji/t_oishii.png", "verified_beer" =&gt; "https://media.misskeyusercontent.com/io/ef6c534b-3faf-4100-b5e9-dc4dc7bf5c10.png"}, featured_address: "https://misskey.io/users/9mhsmldaly3m08ft/collections/featured", fields: [%{"name" =&gt; "", "value" =&gt; "&lt;a href=\"https://go.misskey.io/donate\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "", "value" =&gt; "&lt;a href=\"https://misskey-hub.net/ja/docs/donate/\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "", "value" =&gt; "&lt;a href=\"https://misskey.io/notes/9v84igbd1tgt0ds5\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "", "value" =&gt; "&lt;a href=\"https://misskey.io/notes/9wq2l369nc8k022k\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "バナー画像とリンク置き場", "value" =&gt; "&lt;a href=\"https://misskey.io/notes/9wyl3g45up5m03j0\" target=\"_blank\"&gt;バナー画像とリンク置き場&lt;/a&gt;"}, %{"name" =&gt; "", "value" =&gt; "&lt;a href=\"https://misskey.io/clips/9wzhhktshwj50gc3\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://misskey.io/@misachan\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://misskey.io/@sahara_komugi\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://misskey.io/@leycia\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://misskey.io/@t_subalu\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://misskey.io/@sekka03221\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\" <a href="https://misskey.io/@chicken23" rel="nofollow noopener noreferrer" target="_blank">https://misskey.io/@chicken23</a> \" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://misskey.io/@c1\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://misskey.io/@Sawamoto_Miya\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://isonekomaru.dojin.com/\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://misskey.io/@KanaNoEveryday\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://misskey.io/@3kn\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://misskey.io/@srnelia_\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://tsugaru-flip.jimdofree.com/\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://nekokitiyorio.github.io/\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだち", "value" =&gt; "&lt;a href=\"https://misskey.io/@nishimachi3\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "", "value" =&gt; "&lt;a href=\"https://misskey.io/@zapiyome\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "", "value" =&gt; "&lt;a href=\"https://misskey.io/@Kiseki_Kitaru\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだちのYouTube", "value" =&gt; "&lt;a href=\"https://www.youtube.com/@Haya_Kagamiya\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "おともだちのYouTube", "value" =&gt; "&lt;a href=\"https://www.youtube.com/@ayanovm\" target=\"_blank\"&gt;&lt;/a&gt;"}, %{"name" =&gt; "カスタム絵文字(申請予定)", "value" =&gt; "&lt;a href=\"https://misskey.io/clips/9fj4v545gi\" rel=\"me nofollow noopener\" target=\"_blank\"&gt;https://misskey.io/clips/9fj4v545gi&lt;/a&gt;"}, %{"name" =&gt; "カスタム絵文字(申請済)", "value" =&gt; "&lt;a href=\"https://misskey.io/clips/9k0amah0hf\" rel=\"me nofollow noopener\" target=\"_blank\"&gt;https://misskey.io/clips/9k0amah0hf&lt;/a&gt;"}, %{"name" =&gt; "カスタム絵文字(採用済)", "value" =&gt; "&lt;a href=\"https://misskey.io/clips/9i85g7fu3g\" rel=\"me nofollow noopener\" target=\"_blank\"&gt;https://misskey.io/clips/9i85g7fu3g&lt;/a&gt;"}, %{"name" =&gt; "干し芋", "value" =&gt; "&lt;a href=\"https://www.amazon.jp/hz/wishlist/ls/1NY0ZUHGCMA7J?ref_=wl_share\" rel=\"me nofollow noopener\" target=\"_blank\"&gt;https://www.amazon.jp/hz/wishlist/ls/1NY0ZUHGCMA7J?ref_=wl_share&lt;/a&gt;"}, %{"name" =&gt; "9ineverseのアカウント", "value" =&gt; "&lt;a href=\"https://9ineverse.com/@beer_bastard\" rel=\"me nofollow noopener\" target=\"_blank\"&gt;https://9ineverse.com/@beer_bastard&lt;/a&gt;"}, %{"name" =&gt; "代理おじさん", "value" =&gt; "&lt;a href=\"https://misskey.io/clips/9jhkm0q3bq\" rel=\"me nofollow noopener\" target=\"_blank\"&gt;https://misskey.io/clips/9jhkm0q3bq&lt;/a&gt;"}], follower_address: "https://misskey.io/users/9mhsmldaly3m08ft/followers", following_address: "https://misskey.io/users/9mhsmldaly3m08ft/following", inbox: "https://misskey.io/users/9mhsmldaly3m08ft/inbox", is_discoverable: true, last_refreshed_at: ~N[2024-09-04 0 (truncated) </code></pre>
Bonfire<p>Needle also comes with two other homegrown libraries: needle_ulid which provides a ULID datatype for Ecto (using ex_ulid) and related helpers, and exto which enables extending Ecto schema definitions in config (especially useful for adding Mixin associations to different schemas)…<br>---<br>📣 🏴‍☠️ Camp! expedition: We have some&nbsp;open bounties&nbsp;to improve bonfire performance :<br>Read more: <a href="https://indieweb.social/@bonfire/112943944096656953" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">indieweb.social/@bonfire/11294</span><span class="invisible">3944096656953</span></a><br>Repository: <a href="https://github.com/bonfire-networks/bounties" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/bonfire-networks/bo</span><span class="invisible">unties</span></a><br><a href="https://indieweb.social/tags/ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ecto</span></a> <a href="https://indieweb.social/tags/myElixirStatus" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>myElixirStatus</span></a> <a href="https://indieweb.social/tags/elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>elixir</span></a><br>6/6</p>
Bonfire<p>Besides regular schemas with universal foreign keys (Pointable), Needle provides Virtual for schemas that don’t have any fields on their own, and Mixin for storing common fields that can be re-used by multiple Pointables or Virtuals (eg. if you have multiple types that all have a name/description/body, they can share those and optionally the associated changesets and other logic).</p><p><a href="https://indieweb.social/tags/ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ecto</span></a> <a href="https://indieweb.social/tags/myElixirStatus" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>myElixirStatus</span></a> <a href="https://indieweb.social/tags/elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>elixir</span></a></p><p>5/6</p>
Bonfire<p>But what if you don’t just have posts that can be liked, but also videos, images, polls, etc, each with their own table, but probably do not want to have to add liked_video_id, liked_image_id, ad infinitum?</p><p>We needed the flexibility to have a foreign key that can reference any referenceable object. We call our system Needle.</p><p><a href="https://indieweb.social/tags/ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ecto</span></a> <a href="https://indieweb.social/tags/myElixirStatus" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>myElixirStatus</span></a> <a href="https://indieweb.social/tags/elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>elixir</span></a><br>4/6</p>
Bonfire<p>A simple example would be a blogging app, which might have a post table with author field that references the user table.</p><p>A social network, by contrast, usually requires a graph of objects, meaning objects need to be able to refer to other objects by their ID without knowing their type.</p><p>A simple example would be likes, you might have a likes table with liked_post_id field that references the post table.</p><p><a href="https://indieweb.social/tags/ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ecto</span></a> <a href="https://indieweb.social/tags/myElixirStatus" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>myElixirStatus</span></a> <a href="https://indieweb.social/tags/elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>elixir</span></a><br>3/6</p>
Bonfire<p>Needle is an <a href="https://indieweb.social/tags/elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>elixir</span></a> library that we have developed to provide universal foreign keys, shared data fields, and virtual &amp; configurable schemas for Ecto.</p><p>🔗 Read the docs: <a href="https://hexdocs.pm/needle/readme.html" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">hexdocs.pm/needle/readme.html</span><span class="invisible"></span></a><br>💬 Join the discussion on Elixir Forum: <a href="https://elixirforum.com/t/needle-universal-foreign-keys-shared-data-fields-virtual-and-configurable-schemas-for-ecto/65644" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">elixirforum.com/t/needle-unive</span><span class="invisible">rsal-foreign-keys-shared-data-fields-virtual-and-configurable-schemas-for-ecto/65644</span></a></p><p><a href="https://indieweb.social/tags/ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ecto</span></a> <a href="https://indieweb.social/tags/myElixirStatus" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>myElixirStatus</span></a><br>1/6</p>
AdrianC<p><span class="h-card" translate="no"><a href="https://vmst.io/@maikel" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>maikel</span></a></span> yeah!<br>If you’re interested in more Ecto stuff, Dashbit wrote a «&nbsp;Little Ecto Cookbook&nbsp;» <a href="https://dashbit.co/ebooks/the-little-ecto-cookbook" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">dashbit.co/ebooks/the-little-e</span><span class="invisible">cto-cookbook</span></a> too btw</p><p><a href="https://hachyderm.io/tags/MyElixirStatus" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>MyElixirStatus</span></a> <a href="https://hachyderm.io/tags/Elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Elixir</span></a> <a href="https://hachyderm.io/tags/Ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Ecto</span></a></p>
Alejandro Baez<p>I been slowly utilizing <a href="https://fosstodon.org/tags/prql" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>prql</span></a> instead of raw <a href="https://fosstodon.org/tags/sql" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>sql</span></a>. 😅 </p><p>So far, it makes sense when doing analytical jobs. But for language support, it is far more natural to use DSL features made for languages like <a href="https://fosstodon.org/tags/ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ecto</span></a> in <a href="https://fosstodon.org/tags/elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>elixir</span></a>. 😎</p><p><a href="https://prql-lang.org/book/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">prql-lang.org/book/</span><span class="invisible"></span></a></p>
Jons Mostovojs<p>In case you wonder what's my preferred stack to build services right now, it's as follows:</p><p> - <a href="https://social.doma.dev/tags/Elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Elixir</span></a> runs the system itself. No to <a href="https://social.doma.dev/tags/Phoenix" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Phoenix</span></a>, <a href="https://social.doma.dev/tags/Ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Ecto</span></a>, yes to <a href="https://social.doma.dev/tags/Plug" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Plug</span></a>, <a href="https://social.doma.dev/tags/Commanded" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Commanded</span></a>.</p><p> - <a href="https://social.doma.dev/tags/Rust" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Rust</span></a> does the business-logic heavy-lifting. Normally single-threaded workers.</p><p> - <a href="https://social.doma.dev/tags/Typescript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Typescript</span></a> with <a href="https://social.doma.dev/tags/ReactJS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ReactJS</span></a> and <a href="https://social.doma.dev/tags/Jotai" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Jotai</span></a> does user-facing computations.</p><p> - <a href="https://social.doma.dev/tags/ETS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ETS</span></a> for data views, <a href="https://social.doma.dev/tags/PostgreSQL" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PostgreSQL</span></a> for immutable history of the events and other data that is only INSERTed, never UPDATEd. </p><p>* * *</p><p>I am planning to see if I can replace <a href="https://social.doma.dev/tags/Elixir" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Elixir</span></a> with <a href="https://social.doma.dev/tags/Purerl" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Purerl</span></a> when I have the time.</p>
Dagger ☀️<p>Vorbereitung mit <a href="https://chaos.social/tags/ECTO" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ECTO</span></a>-1. <a href="https://chaos.social/tags/Ghostbusters" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Ghostbusters</span></a> <a href="https://chaos.social/tags/Lego" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Lego</span></a> <a href="https://chaos.social/tags/LEGOphotography" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LEGOphotography</span></a></p>
Andy<p><a href="https://mastodon.scot/tags/ghostbusters" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ghostbusters</span></a> <a href="https://mastodon.scot/tags/movies" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>movies</span></a> <a href="https://mastodon.scot/tags/ecto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ecto</span></a>-1 <a href="https://mastodon.scot/tags/car" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>car</span></a> <a href="https://mastodon.scot/tags/paranormal" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>paranormal</span></a> <a href="https://mastodon.scot/tags/ghosts" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ghosts</span></a> Just scrolling through my phone, and found a fab memory of last summer. Parked on Scarborough seafront for everyone to see, and one of my favourite movie cars. Apologies for posting it again, but I love it!</p>