<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="206274" data-post-id="206274">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="tmbb" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  tmbb
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m implementing the TeX math layout algorithm based on the new OpenType Math Tables (instead of using TeX font metrics). Handling the complexities of the OpenType tables has been the hardest part. I’m still dependent on a Python utility that converts the binary font files into a very helpful XML file, which is much easier to inspect.</p>
<p>Ideally I’d write an OpenType parser direct in Elixir which would be much faster, but (1) I’d need to evaluate maxima and minima for Bézier curves to get vertical metrics (and the python utility does that for me) and (2) parsing the font file can be done at “build-time” by a mix task and the results can be stored for later use.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="206274" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/what-elixir-related-stuff-are-you-doing/113/583">Post #582</a>
	                </div>
	            </div>
              <div id="likers-container-206274" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="206274"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #582"></div>
  </section>
</div>
    <div class="postbit" id="206281" data-post-id="206281">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zakimedina" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zakimedina/120/21668_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zakimedina
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Interesting, I am creating a temperature sensor running on BLE to a Nerves hub back to the cloud for my Pantry, Cold room and old Freezer in my garage.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="206281" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/what-elixir-related-stuff-are-you-doing/113/584">Post #583</a>
	                </div>
	            </div>
              <div id="likers-container-206281" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="206281"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #583"></div>
  </section>
</div>
    <div class="postbit" id="206426" data-post-id="206426">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="conradwt" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/conradwt/120/19105_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  conradwt
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>For the last couple of weeks, I have been learning about the Phoenix Framework by reading ‘Programming Phoenix’ by Chris McCord.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="206426" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/what-elixir-related-stuff-are-you-doing/113/585">Post #584</a>
	                </div>
	            </div>
              <div id="likers-container-206426" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="206426"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #584"></div>
  </section>
</div>
    <div class="postbit" id="207349" data-post-id="207349">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="davearonson" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/davearonson/120/18913_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  davearonson
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Finally getting back to checking out <a class="mention" href="/u/devonestes" rel="nofollow">@devonestes</a>’s Muzak mutation testing tool.  I want to have a decently clear view of it before June, when I talk about mutation testing at a conference in Berlin, where he lives!  <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="207349" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/what-elixir-related-stuff-are-you-doing/113/586">Post #585</a>
	                </div>
	            </div>
              <div id="likers-container-207349" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="207349"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #585"></div>
  </section>
</div>
    <div class="postbit" id="207363" data-post-id="207363">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ambareesha7" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ambareesha7
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey <a class="mention" href="/u/devotiongeo" rel="nofollow">@DevotionGeo</a>  can you share some resources or how you are implementing from mobile app to Phoenix app,<br>
I’m newbie here I’m confused(between web socket/channel and absinthe/GraphQL) a bit on connecting my flutter app to Phoenix backend.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="207363" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/what-elixir-related-stuff-are-you-doing/113/587">Post #586</a>
	                </div>
	            </div>
              <div id="likers-container-207363" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="207363"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #586"></div>
  </section>
</div>
    <div class="postbit" id="207403" data-post-id="207403">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="rslopes" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/rslopes/120/22097_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  rslopes
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m still learning, following the exercises of the elixir track at exercism (currently 30/94). I’m also reading Elixir In Action.</p>
<p>I’d appreciate feedback on public solutions at <a href="https://exercism.io/profiles/rslopes" rel="noopener nofollow ugc">https://exercism.io/profiles/rslopes</a> <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="207403" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/what-elixir-related-stuff-are-you-doing/113/588">Post #587</a>
	                </div>
	            </div>
              <div id="likers-container-207403" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="207403"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #587"></div>
  </section>
</div>
    <div class="postbit" id="207405" data-post-id="207405">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="DevotionGeo" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/DevotionGeo/120/20538_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  DevotionGeo
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi <a class="mention" href="/u/ambareesha7" rel="nofollow">@ambareesha7</a>,<br>
Thank you for the mention!</p>
<p>We are using JSON APIs and to get started with writing JSON APIs in Phoenix I recommend following <a href="https://lobotuerto.com/blog/building-a-json-api-in-elixir-with-phoenix/" rel="noopener nofollow ugc">Building a JSON API in Elixir with Phoenix 1.5</a> by <a href="https://twitter.com/lobo_tuerto" rel="noopener nofollow ugc">Víctor Adrián</a>.</p>
<p>Using GraphQL shouldn’t be hard either even for a beginner. There are two very high quality learning resources for learning to use GraphQL with Phoenix,</p>
<ol>
<li>Pragmatic Studio’s video course, <a href="https://pragmaticstudio.com/unpacked-full-stack-graphql-with-absinthe-phoenix-react" rel="noopener nofollow ugc">Full-Stack GraphQL with Absinthe, Phoenix, and React</a></li>
<li>Pragmatic Bookshelf’s book, <a href="https://pragprog.com/titles/wwgraphql/craft-graphql-apis-in-elixir-with-absinthe/" rel="noopener nofollow ugc">Craft GraphQL APIs in Elixir with Absinthe</a>, written by the creators of Absinthe themselves.</li>
</ol>
<p>Edit: Forgot to mention this free tutorial for getting started with GraphQL with Absinthe, <a href="https://www.howtographql.com/graphql-elixir/0-introduction/" rel="noopener nofollow ugc"> graphql-elixir Tutorial</a>.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="207405" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/what-elixir-related-stuff-are-you-doing/113/589">Post #588</a>
	                </div>
	            </div>
              <div id="likers-container-207405" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="207405"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #588"></div>
  </section>
</div>
    <div class="postbit" id="207473" data-post-id="207473">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ambareesha7" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ambareesha7
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>thank you so much for sharing</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="207473" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/what-elixir-related-stuff-are-you-doing/113/590">Post #589</a>
	                </div>
	            </div>
              <div id="likers-container-207473" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="207473"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #589"></div>
  </section>
</div>
    <div class="postbit" id="207929" data-post-id="207929">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="cblavier" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cblavier/120/29763_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  cblavier
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I just extracted some code from our Phoenix LiveView production application that is really helping us at writing extensible <code>live_components</code></p>
<p><a href="https://github.com/cblavier/phx_component_helpers" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/cblavier/phx_component_helpers</a></p>
<p>No dependencies. Hope you’ll be interested if you’re looking something much lighter <img src="https://forum.elixirforum.com/images/emoji/apple/feather.png?v=15" title=":feather:" class="emoji" alt=":feather:" loading="lazy" width="20" height="20"> than <code>Surface</code> (I’m just providing helpers, not a complete framework)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="207929" data-batch-url="/posts/batch_likers">
                        7
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/what-elixir-related-stuff-are-you-doing/113/591">Post #590</a>
	                </div>
	            </div>
              <div id="likers-container-207929" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="207929"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #590"></div>
  </section>
</div>
    <div class="postbit" id="207942" data-post-id="207942">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Exadra37" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Exadra37/120/9183_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Exadra37
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="ambareesha7" data-post="587" data-topic="113">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/a/e19adc/48.png" class="avatar"> ambareesha7:</div>
<blockquote>
<p>I’m newbie here I’m confused(between web socket/channel and absinthe/GraphQL) a bit on connecting my flutter app to Phoenix backend.</p>
</blockquote>
</aside>
<p>At work I have a Todo App example connecting with an Elixir Absinthe GraphQL backend:</p>
<p><a href="https://github.com/approov/quickstart-flutter-graphql/blob/65c26560ddf520058101d27c4766160c11d8e056/src/app-final/lib/config/absinthe_socket.dart#L1-L71" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/approov/quickstart-flutter-graphql/blob/65c26560ddf520058101d27c4766160c11d8e056/src/app-final/lib/config/absinthe_socket.dart#L1-L71</a></p>
<p>The Elixir Absinthe GraphQL backend code can be found here:</p>
<aside class="onebox githubfolder" data-onebox-src="https://github.com/approov/quickstart-elixir-phoenix-absinthe-graphql-token-check/tree/main/src/unprotected-server/todo">
  <header class="source">

      <a href="https://github.com/approov/quickstart-elixir-phoenix-absinthe-graphql-token-check/tree/main/src/unprotected-server/todo" target="_blank" rel="noopener nofollow ugc">github.com</a>
  </header>

  <article class="onebox-body">
    <h3><a href="https://github.com/approov/quickstart-elixir-phoenix-absinthe-graphql-token-check/tree/main/src/unprotected-server/todo" target="_blank" rel="noopener nofollow ugc">approov/quickstart-elixir-phoenix-absinthe-graphql-token-check</a></h3>

  <p><a href="https://github.com/approov/quickstart-elixir-phoenix-absinthe-graphql-token-check/tree/main/src/unprotected-server/todo" target="_blank" rel="noopener nofollow ugc">main/src/unprotected-server/todo</a></p>


  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>

<hr>
<p>For a pure integration of a mobile app via Phoenix Channels only, no GraphQL, then you can check the Echo Chamber mobile app example and its backend.</p>
<p>The mobile app:</p>
<p><a href="https://github.com/approov/quickstart-flutter-elixir-phoenix-channels/blob/master/src/echo-chamber-app/lib/phoenix_channel.dart#L1-L83" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/approov/quickstart-flutter-elixir-phoenix-channels/blob/master/src/echo-chamber-app/lib/phoenix_channel.dart#L1-L83</a></p>
<p>The backend:</p>
<aside class="onebox githubfolder" data-onebox-src="https://github.com/approov/quickstart-elixir-phoenix-channels-token-check/tree/main/src/unprotected-server/echo">
  <header class="source">
      <img src="https://github.githubassets.com/favicons/favicon.svg" class="site-icon" alt="" width="32" height="32">

      <a href="https://github.com/approov/quickstart-elixir-phoenix-channels-token-check/tree/main/src/unprotected-server/echo" target="_blank" rel="noopener nofollow ugc">github.com</a>
  </header>

  <article class="onebox-body">
    <h3><a href="https://github.com/approov/quickstart-elixir-phoenix-channels-token-check/tree/main/src/unprotected-server/echo" target="_blank" rel="noopener nofollow ugc">quickstart-elixir-phoenix-channels-token-check/src/unprotected-server/echo at...</a></h3>

  <p><a href="https://github.com/approov/quickstart-elixir-phoenix-channels-token-check/tree/main/src/unprotected-server/echo" target="_blank" rel="noopener nofollow ugc">main/src/unprotected-server/echo</a></p>

  <p><span class="label1">Approov integration example with quickstarts for Phoenix Channels on the Elixir Phoenix framework  - approov/quickstart-elixir-phoenix-channels-token-check</span></p>

  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>
 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="207942" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/what-elixir-related-stuff-are-you-doing/113/592">Post #591</a>
	                </div>
	            </div>
              <div id="likers-container-207942" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="207942"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #591"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/113/load_more?page=59">Load more posts (337 remaining)</a>
</div></template></turbo-stream>