mastodon.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
The original server operated by the Mastodon gGmbH non-profit

Administered by:

Server stats:

354K
active users

#LunchBreakFOSS

0 posts0 participants0 posts today
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a>: Runestone for Mac looks really nice already, great job <span class="h-card" translate="no"><a href="https://mastodon.social/@simonbs" class="u-url mention">@<span>simonbs</span></a></span>! Probably going to use it instead of CodeEditor in Shaper and Enlighter. <a href="https://github.com/simonbs/Runestone" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">github.com/simonbs/Runestone</span><span class="invisible"></span></a></p>
Helge Heß<p>@binarytango@mstdn.binarytango.com @kotaro@mastodon.online Also maybe run things in Docker, I use Hypriot on Raspi&#39;s and love it. Keys and such can be configured via cloud config before flashing an image. <a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> <a href="https://blog.hypriot.com/getting-started-with-docker-on-your-arm-device/" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="ellipsis">blog.hypriot.com/getting-start</span><span class="invisible">ed-with-docker-on-your-arm-device/</span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> Today’s thing isn’t really a FOSS project per se, more like a standard: “Mustache”. A very simple templating language with implementation for literally any language.<br />It just has like `{{var}}`, `{{^var}}` and `{{&gt;sub template}}`, but can model loops, conditions and even sub-templates using that. It’s my go-to for quick and simple things.<br />A small <a href="https://mastodon.social/tags/SwiftLang" class="mention hashtag" rel="tag">#<span>SwiftLang</span></a> implementation that supports attributed strings and dynamicCallable: <a href="https://github.com/AlwaysRightInstitute/mustache" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="ellipsis">github.com/AlwaysRightInstitut</span><span class="invisible">e/mustache</span></a><br /><a href="http://mustache.github.io" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">http://</span><span class="">mustache.github.io</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> OK, another lazy one “Apache”, the No 1 WebServer. Used the 1.x line from the start and the current 2.x line brought great advancements. Considered a “fat” server once, it is actually smaller than your typical server lib today 🤓<br />Apache is highly capable and extremely solid. Use it when you actually serve things, for proxies nginx is the better choice. (nginx is a NIO server, it&#39;s more complicated, but Apache is technically a thread per connection setup).<br /><a href="https://httpd.apache.org" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">httpd.apache.org</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> One can just install <a href="https://mastodon.social/tags/PostgreSQL" class="mention hashtag" rel="tag">#<span>PostgreSQL</span></a> from the sources or using Homebrew, but another very easy and convenient way is the “Postgres.app”. Which I’ve been using for years, and it is in fact open source!
<br />It bundles up the server as a <a href="https://mastodon.social/tags/macOS" class="mention hashtag" rel="tag">#<span>macOS</span></a> app, including the necessary login/menubar items. Recommended, very quick way to get started!<br />It is *not* a database browser/frontend though, it manages the server.<br /><a href="https://postgresapp.com/de/" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">postgresapp.com/de/</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> A lazy one today: “PostgreSQL”. <a href="https://mastodon.social/tags/PostgreSQL" class="mention hashtag" rel="tag">#<span>PostgreSQL</span></a> is a relational database (an RDBMS) with tons of extra features, from JSON to full text search to PL/Swift.
<br />We started to support it in OpenGroupware around version 6.5 - at that time it was really bad. I think only w/ the 8.x versions (maybe late 7.x revs) it started to be the plain awesomeness it is today.<br />Funny side note: The server binary of that “big db server” is just about 7MB!<br /><a href="https://www.postgresql.org" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://www.</span><span class="">postgresql.org</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> So how can a <a href="https://mastodon.social/tags/SwiftLang" class="mention hashtag" rel="tag">#<span>SwiftLang</span></a> dev access/work-with <a href="https://mastodon.social/tags/SQLite" class="mention hashtag" rel="tag">#<span>SQLite</span></a>? The raw API IMO goes a long way and is often sufficient (and reasonably convenient). If a little more is needed, I have my own “Lighter” project, but today is about another one: “GRBD”.
<br />I use it in the SPMCatalog app’s backend. It has great documentation and many of the design decisions align w/ me. From the regular Swift DB libs it is also the fastest I tried (though not as fast as Lighter 😜).<br /><a href="https://github.com/groue/GRDB.swift/blob/master/Documentation/GoodPracticesForDesigningRecordTypes.md" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="ellipsis">github.com/groue/GRDB.swift/bl</span><span class="invisible">ob/master/Documentation/GoodPracticesForDesigningRecordTypes.md</span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> Not sure I should mention “the obvious” big FOSS projects, but since it IMO is still way underused by <a href="https://mastodon.social/tags/SwiftLang" class="mention hashtag" rel="tag">#<span>SwiftLang</span></a> developers: SQLite. The embedded SQL database. Even just the plain API is easy to use!
<br />If you don’t want SQL, just store JSON snippets in it, still a useful container for data with proper locking and all kinds of other safeguards you probably do wrong otherwise.
<br />I’d like to especially point out “SQLite as an application file format”: <a href="https://www.sqlite.org/appfileformat.html" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://www.</span><span class="">sqlite.org/appfileformat.html</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> Something a little different today: “Graphite”. This project has a set of tools built around a (Python) time series database (called “Carbon”). Including some old-school looking but powerful graphing tools.<br />I use it to store sensor data in my home automation system (<a href="https://mastodon.social/tags/HomeMatic" class="mention hashtag" rel="tag">#<span>HomeMatic</span></a>). It was really easy to setup and runs for years w/ very little maintenance, though things like Grafana/TimescaleDB might be better options today. I like it though.<br /><a href="https://graphiteapp.org" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">graphiteapp.org</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> “Runestone” isn&#39;t a project I actually use just yet, but which I find really interesting in the context of yesterdays Highlight.js (and for my apps as a potential replacement for my “CodeEditor” project based on HJS).<br />Runestone is an editor w/ syntax highlighting based on that “tree sitter” stuff, written in <a href="https://mastodon.social/tags/SwiftLang" class="mention hashtag" rel="tag">#<span>SwiftLang</span></a>. One of the biggest drawbacks for me is that it only supports <a href="https://mastodon.social/tags/UIKit" class="mention hashtag" rel="tag">#<span>UIKit</span></a>, not <a href="https://mastodon.social/tags/AppKit" class="mention hashtag" rel="tag">#<span>AppKit</span></a>.<br /><a href="https://github.com/simonbs/runestone" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">github.com/simonbs/runestone</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> “Highlighter.js” is another project that might be useful for Mastodon client coders. It is a JavaScript library for highlighting source code. There seem to be better <a href="https://mastodon.social/tags/SwiftLang" class="mention hashtag" rel="tag">#<span>SwiftLang</span></a> technologies for this (RuneStone, etc), but a major advantage of Highlighter.js is that it supports a huge array of languages.<br />I use it in Shrugs.app to highlight source snippets using sth similar to Highlightr. Overhead for hosting the JS is ~5MB RAM.<br /><a href="https://github.com/raspu/Highlightr" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">github.com/raspu/Highlightr</span><span class="invisible"></span></a><br /><a href="https://highlightjs.org" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">highlightjs.org</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> The new year is about emotions? I hope not, but if so, there is “emoji-data”, another great project. It contains all kinds of metadata for <a href="https://mastodon.social/tags/Emoji" class="mention hashtag" rel="tag">#<span>Emoji</span></a> as JSON (e.g. short names, Unicode code points and more).
 Using it in Shrugs.app to parse and complete Emoji in messages and in the Emoji picker as well. I bet this might be useful for all the Mastodon client builders.
<br />Funny side-note: Project is by a Slack co-founder!<br /><a href="https://github.com/iamcal/emoji-data" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">github.com/iamcal/emoji-data</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> Another nice tool that fits into the line (and was mentioned already) is “xmlstarlet”, a set of tools to query and edit <a href="https://mastodon.social/tags/XML" class="mention hashtag" rel="tag">#<span>XML</span></a> files.<br />“xmlstarlet” is somewhat similar to “jq”, but for XML instead of JSON. Handy if you have to read and modify XML files from within shell scripts in a reliable way (i.e. w/o a regex mess 🙃).<br />I use it in mod_swift (to patch the Xcode scheme XML) and also in the scraper backing the SwiftPM Catalog application.<br /><a href="https://xmlstar.sourceforge.net/doc/UG/" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">xmlstar.sourceforge.net/doc/UG/</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> This week ended up being more like a <a href="https://mastodon.social/tags/C" class="mention hashtag" rel="tag">#<span>C</span></a> libs for the web 🕸 thing. So one more of those: “libcurl” and its companion tool “curl”. Must haves for every developer. It is one of those software projects that have an extremely high overall quality. It used to be used for the URLSession implementation of the <a href="https://mastodon.social/tags/ServerSideSwift" class="mention hashtag" rel="tag">#<span>ServerSideSwift</span></a> <a href="https://mastodon.social/tags/SwiftLang" class="mention hashtag" rel="tag">#<span>SwiftLang</span></a> Linux Foundation lib, but I suppose that might go away 🥲<br /><a href="https://curl.se/libcurl/" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">curl.se/libcurl/</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> Using libxml2 from yesterdays edition one can actually parse <a href="https://mastodon.social/tags/HTML" class="mention hashtag" rel="tag">#<span>HTML</span></a>, which is quite cool. The parser however is not very tolerant, i.e. doesn’t deal well with what real world HTML programmers tend to create. And how do you fixup b0rked HTML? With the “HTML Tidy” tool of course! One of those things which just do one thing, but that very well.<br />But the best thing is that this tool also comes as a <a href="https://mastodon.social/tags/C" class="mention hashtag" rel="tag">#<span>C</span></a> library: “libtidy”.<br /><a href="http://www.html-tidy.org/developer/" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">http://www.</span><span class="">html-tidy.org/developer/</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> Yesterday was Expat day, today is “libxml2” (/libxslt) day. This is also a <a href="https://mastodon.social/tags/C" class="mention hashtag" rel="tag">#<span>C</span></a> <a href="https://mastodon.social/tags/XML" class="mention hashtag" rel="tag">#<span>XML</span></a> parsing library, but with way more features, e.g. XPath and XSLT. It also has a SAX API, but I’d go Expat for that, use “libxml2” when you need a “DOM” and operate on that. A cool thing is that libxml2 can also parse reasonably valid HTML, which can often be handy! Included on iOS/macOS.<br />SOPE comes w/ <a href="https://mastodon.social/tags/ObjC" class="mention hashtag" rel="tag">#<span>ObjC</span></a> wrappers/drivers for libxml2: <a href="http://sope.opengroupware.org/en/sope_xml/index.html" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">http://</span><span class="ellipsis">sope.opengroupware.org/en/sope</span><span class="invisible">_xml/index.html</span></a><br />libxml docs: <a href="https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="ellipsis">gitlab.gnome.org/GNOME/libxml2</span><span class="invisible">/-/wikis/home</span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> Let’s make an in-between week w/ old school <a href="https://mastodon.social/tags/C" class="mention hashtag" rel="tag">#<span>C</span></a> <a href="https://mastodon.social/tags/FOSS" class="mention hashtag" rel="tag">#<span>FOSS</span></a> projects that rock ☣️ Something I’ve been using for 20+? years is libexpat. It is a very compact SAX based <a href="https://mastodon.social/tags/XML" class="mention hashtag" rel="tag">#<span>XML</span></a> parser written in C. It just does SAX, but is very good at that and carries no bloat. Can be a good choice for your daily XML parsing needs 👴 Looks like I once did a small Swift wrapper: <a href="https://github.com/helje5/SwiftyExpat" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">github.com/helje5/SwiftyExpat</span><span class="invisible"></span></a><br /><a href="https://libexpat.github.io" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">libexpat.github.io</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> A late one today, but a very useful one: „SOTO“. It provides Swift APIs for all the various <a href="https://mastodon.social/tags/AWS" class="mention hashtag" rel="tag">#<span>AWS</span></a> services. I played with it for a while when trying to build a small macOS frontend for AWS. Looked really good!<br /><a href="https://github.com/soto-project/soto" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">github.com/soto-project/soto</span><span class="invisible"></span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> Today’s project is an Electron app, I’m very sorry. I want to rewrite that in <a href="https://mastodon.social/tags/SwiftUI" class="mention hashtag" rel="tag">#<span>SwiftUI</span></a> for a very long time - well, I started multiple times - and eventually will finish that. In the meantime that non-native app is really useful for people running a <a href="https://mastodon.social/tags/HomeMatic" class="mention hashtag" rel="tag">#<span>HomeMatic</span></a> home automation setup.<br /><a href="https://github.com/hobbyquaker/homematic-manager" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="ellipsis">github.com/hobbyquaker/homemat</span><span class="invisible">ic-manager</span></a></p>
Helge Heß<p><a href="https://mastodon.social/tags/LunchBreakFOSS" class="mention hashtag" rel="tag">#<span>LunchBreakFOSS</span></a> In one app (never released) I wanted to show a network of devices interconnected by lines w/ various information about the connections. TBH I had/have no idea how to distribute objects in a view in a useful manner 🤷‍♀️
<br />But I found a nice looking JS library for just that, and the coolness of that starts with the name: “Graph Dracula” 🧛‍♂️ <br />Very nice lib, actually started to port the parts I need to <a href="https://mastodon.social/tags/SwiftLang" class="mention hashtag" rel="tag">#<span>SwiftLang</span></a>.<br /><a href="https://www.graphdracula.net" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://www.</span><span class="">graphdracula.net</span><span class="invisible"></span></a><br /><a href="https://github.com/helje5/Dracula" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="">github.com/helje5/Dracula</span><span class="invisible"></span></a></p>