{"version":"https://jsonfeed.org/version/1","title":"Micro.blog - Ayke","home_page_url":"https://micro.blog","feed_url":"https://micro.blog/posts/aykevl@mastodon.social","_microblog":{"about":"https://micro.blog/about/api","id":"256059","username":"aykevl@mastodon.social","bio":"Author and maintainer of @TinyGo","pronouns":"","is_following":false,"is_you":false,"following_count":0,"discover_count":0},"author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://micro.blog/photos/200/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png"},"items":[{"id":"16831969","content_html":"<p>Found the issue: apparently iwd (or the iwd backend of NetworkManager) doesn't support picking a particular AP BSSID. Switched to wpa_supplicant and it works now.</p>","summary":"","url":"https://mastodon.social/@aykevl/109638197970088588","date_published":"2023-01-05T19:15:36+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2023-01-05 19:15","date_timestamp":1672946136,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"15673758","content_html":"<p><span class=\"h-card\"><a href=\"https://social.treehouse.systems/@marcan\" class=\"u-url mention\">@<span>marcan</span></a></span> as a maintainer, I prefer separate commits for separate things. But I also understand it's not always practical and asking for a change is not always worth burdening the contributor. So instead, I might say \"alright, this one is fine but I'd prefer this other way next time\". It's not a dealbreaker if that commit isn't perfect.</p><p>Also, I make sure everything is mechanically formatted and if it isn't, CI fails. It's just not worth having discussions about.</p>","url":"https://mastodon.social/users/aykevl/statuses/109626147612916128","date_published":"2023-01-03T16:11:02+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2023-01-03 16:11","date_timestamp":1672762262,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"16831967","content_html":"Clang/LLVM now supports small chips like the attiny10! They are even more limited than regular AVR chips and use half the registers for example, but with https://reviews.llvm.org/D131867 merged it won't (usually) generate incorrect instructions.\n\nIf you don't know, the attiny10 has 1kB ... <a href=\"https://mastodon.social/@aykevl/109588825184906968\">mastodon.social</a>","summary":"","url":"https://mastodon.social/@aykevl/109588825184906968","date_published":"2022-12-28T01:59:27+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-12-28 01:59","date_timestamp":1672192767,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"15495562","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/alyssa@treehouse.systems\" class=\"u-url mention\">@<span>alyssa</span></a></span> oooh I should try this! I'm used to formatting on save, but formatting basically all the time sounds interesting!<br>(That said, I'm saving so often it might not matter)</p>","url":"https://mastodon.social/users/aykevl/statuses/109588733951894586","date_published":"2022-12-28T01:36:15+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-12-28 01:36","date_timestamp":1672191375,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"15388042","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/alyssa@treehouse.systems\" class=\"u-url mention\">@<span>alyssa</span></a></span> <span class=\"h-card\"><a href=\"https://hachyderm.io/@chrispickard\" class=\"u-url mention\">@<span>chrispickard</span></a></span> this is typical for Go, for example with the Go extension for VS Code (it's enabled by default). Not sure about other languages.</p><p>Having it included in the IDE is incredibly useful. For example: you paste some code and instead of indenting it manually just save the file and it's correctly indented. And if it doesn't, you know you have a syntax error 🙃<br>It also means you never forget to run the formatter because you don't need to.</p>","url":"https://mastodon.social/users/aykevl/statuses/109566527283501104","date_published":"2022-12-24T03:28:48+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-12-24 03:28","date_timestamp":1671852528,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"16831964","content_html":"I've actually done most of the groundwork for precise GC over a year ago:https://github.com/tinygo-org/tinygo/pull/2001This adds object layout information to allocations (pointer/non-pointer information) but doesn't use it at runtime yet. It was needed for an unrelated issue but I wrote... <a href=\"https://mastodon.social/@aykevl/109546478329367085\">mastodon.social</a>","summary":"","url":"https://mastodon.social/@aykevl/109546478329367085","date_published":"2022-12-20T14:30:05+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-12-20 14:30","date_timestamp":1671546605,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"16831962","content_html":"Working on a precise GC for @TinyGo! This means that the GC won't just blindly treat everything that looks like a pointer as if it is a pointer, but instead knows which part of an allocated object are pointers and which aren't (for example, ints and floats). This reduces false positives... <a href=\"https://mastodon.social/@aykevl/109546458635289312\">mastodon.social</a>","summary":"","url":"https://mastodon.social/@aykevl/109546458635289312","date_published":"2022-12-20T14:25:04+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-12-20 14:25","date_timestamp":1671546304,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"16831960","content_html":"<p>I've been trying to convince NetworkManager that it should only use 5GHz but haven't been successful so far.</p>","summary":"","url":"https://mastodon.social/@aykevl/109542173735761582","date_published":"2022-12-19T20:15:22+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-12-19 20:15","date_timestamp":1671480922,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"16831958","content_html":"Poor man's WiFi/BT coexistence on @AsahiLinux: pause a video to let it buffer the next minute or so, disable WiFi, and play without interruptions on the Bluetooth speaker. Repeat when hitting the \"loading\" screen again.That is, until you somehow end up on a 5GHz WiFi connection and all ... <a href=\"https://mastodon.social/@aykevl/109542154299160361\">mastodon.social</a>","summary":"","url":"https://mastodon.social/@aykevl/109542154299160361","date_published":"2022-12-19T20:10:25+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-12-19 20:10","date_timestamp":1671480625,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14717839","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.social/@b0rk\" class=\"u-url mention\">@<span>b0rk</span></a></span> not necessarily a fuzzer but I've reimplemented a few nontrivial algorithms in a different way and in those cases I simply generate random inputs and verify that both algorithms produce the same output - or in the case of floats, don't deviate too much. Put it in a loop and let it run a few minutes to be sure there is no bug (with a high degree of probability). This tends to catch bugs very quickly if they exist.</p><p>I guess that counts as property testing.</p>","url":"https://mastodon.social/users/aykevl/statuses/109468627953860675","date_published":"2022-12-06T20:31:42+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-12-06 20:31","date_timestamp":1670358702,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"14714555","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.social/@b0rk\" class=\"u-url mention\">@<span>b0rk</span></a></span> for regressions in particular I find very helpful to go back to a known working state and slowly introducing new changes. Don't try to find the bug if you've made a lot of changes. Stash them away (git stash), double check it works again, and then apply the new changes slowly until you hit the bug again. You'll have a much better idea of where to start looking now.</p><p>This is also why I use version control even for personal projects. No need to keep track of all the temporary changes I made.</p>","url":"https://mastodon.social/users/aykevl/statuses/109468160558104537","date_published":"2022-12-06T18:32:51+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-12-06 18:32","date_timestamp":1670351571,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"14559421","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.social/@b0rk\" class=\"u-url mention\">@<span>b0rk</span></a></span> I think this sort of knowledge is something you learn doesn't slowly over time as you debug many problems. But of course that's a rather inefficiënt way to learn.<br>Unfortunately a particular symptom may have more than one cause. A segmentation fault could be caused by a stack overflow. Intermittent bugs could be a race condition, memory corruption, I/O error, or many other things. It's difficult to know without experience.</p>","url":"https://mastodon.social/users/aykevl/statuses/109439721658895454","date_published":"2022-12-01T18:00:27+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-12-01 18:00","date_timestamp":1669917627,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"14396454","content_html":"<p><span class=\"h-card\"><a href=\"https://social.treehouse.systems/@alyssa\" class=\"u-url mention\">@<span>alyssa</span></a></span> huh interesting, it uses the XOR swap algorithm (swapping the contents of r0 and r1). Is that supposed to be better than allocating a third temporary register?</p>","url":"https://mastodon.social/users/aykevl/statuses/109408333728544695","date_published":"2022-11-26T04:58:06+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-11-26 04:58","date_timestamp":1669438686,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"16831956","content_html":"The last few days I got obsessed over AVR bitshifts, and the result is a ~1% decrease in code size in the AVR backend of LLVM! In some cases, it even outperforms avr-gcc.\n\nhttps://reviews.llvm.org/D138529\n\nLLVM is used by @TinyGo and Rust so this optimization will be useful if you are u... <a href=\"https://mastodon.social/@aykevl/109390213814391247\">mastodon.social</a>","summary":"","url":"https://mastodon.social/@aykevl/109390213814391247","date_published":"2022-11-23T00:09:58+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-11-23 00:09","date_timestamp":1669162198,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"16831953","content_html":"<p>For some reason the video won't play in the Mastodon Android app? It definitely is a video, not an image.</p>","summary":"","url":"https://mastodon.social/@aykevl/109364669616463541","date_published":"2022-11-18T11:53:44+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-11-18 11:53","date_timestamp":1668772424,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"16831951","content_html":"<p>I made these earrings! Definitely going to take them to <span class=\"h-card\"><a href=\"https://fosstodon.org/@fosdem\" class=\"u-url mention\">@<span>fosdem</span></a></span> in February.<br>They are controlled using an attiny10 which are really small microcontrollers. Sadly not using <span class=\"h-card\"><a href=\"https://mastodon.social/@TinyGo\" class=\"u-url mention\">@<span>TinyGo</span></a></span> yet but I hope to do that eventually.</p>","summary":"","url":"https://mastodon.social/@aykevl/109361903850197334","date_published":"2022-11-18T00:10:22+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-11-18 00:10","date_timestamp":1668730222,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"16831947","content_html":"<p>Hello world!</p>","summary":"","url":"https://mastodon.social/@aykevl/109247948424490335","date_published":"2022-10-28T21:10:00+00:00","author":{"name":"Ayke","url":"https://mastodon.social/users/aykevl","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Ffiles.mastodon.social%2Faccounts%2Favatars%2F109%2F247%2F919%2F176%2F979%2F960%2Foriginal%2F5d46e5cd60425996.png","_microblog":{"username":"aykevl@mastodon.social"}},"_microblog":{"date_relative":"2022-10-28 21:10","date_timestamp":1666991400,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}}]}