41554 blogs · [ { "id": "01a0872e-ee2b-703c-8301-6628b0c85be4", "title": "Uploading to PeerTube from the command line", "url": "https://artificialworlds.net/blog/2021/04/30/uploading-to-peertube-from-the-command-line/", "published_at": "2021-04-30T09:04:37+00:00" }, { "id": "01a0872e-ee2b-703c-8301-6628b1297663", "title": "Republishing Bartosz Milewski's Category Theory lectures", "url": "https://artificialworlds.net/blog/2021/04/21/republishing-bartosz-milewskis-category-theory-lectures/", "published_at": "2021-04-21T07:51:17+00:00" }, { "id": "01a0872e-ee2b-703c-8301-6628b215d21f", "title": "Announcing I-DUNNO 1.0 and web-i-dunno", "url": "https://artificialworlds.net/blog/2021/04/01/announcing-i-dunno-1-0-and-web-i-dunno/", "published_at": "2021-04-01T02:00:10+00:00" }, { "id": "01a0872e-ee2b-703c-8301-6628b2541ca3", "title": "Automatically filling in the UK COVID test results page with Selenium IDE", "url": "https://artificialworlds.net/blog/2021/03/31/automatically-filling-in-the-uk-covid-test-results-page-with-selenium-ide/", "published_at": "2021-03-31T20:59:04+00:00" }, { "id": "01a0872e-ee2b-703c-8301-6628b30b7cdc", "title": "Toggle window decorations on Linux GTK3 with Python3", "url": "https://artificialworlds.net/blog/2021/03/23/toggle-window-decorations-on-linux-gtk3-with-python3/", "published_at": "2021-03-23T13:47:10+00:00" }, { "id": "01a0872e-ee2b-703c-8301-6628b348e7b4", "title": "Questions about RFC 8771", "url": "https://artificialworlds.net/blog/2021/03/17/questions-about-rfc-8771/", "published_at": "2021-03-17T09:30:41+00:00" }, { "id": "01a0872e-ee2b-703c-8301-6628b40ab0f7", "title": "Announcing Rust I-DUNNO", "url": "https://artificialworlds.net/blog/2021/03/17/announcing-rust-i-dunno/", "published_at": "2021-03-17T08:52:49+00:00" }, { "id": "01a0872e-ee2b-703c-8301-6628b45e3f21", "title": "Letter to my MP on Yemen", "url": "https://artificialworlds.net/blog/2021/03/01/letter-to-my-mp-on-yemen/", "published_at": "2021-03-01T09:16:28+00:00" }, { "id": "01a0872e-ee2b-703c-8301-6628b4cfc8a4", "title": "Making Smolpxl work on phones and tablets", "url": "https://artificialworlds.net/blog/2021/02/07/making-smolpxl-work-on-phones-and-tablets/", "published_at": "2021-02-07T03:49:40+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa1969b83", "title": "Limiting the number of open sockets in a tokio-based TCP listener", "url": "https://artificialworlds.net/blog/2021/01/08/limiting-the-number-of-open-sockets-in-a-tokio-based-tcp-listener/", "published_at": "2021-01-08T16:03:02+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa2557cec", "title": "Recommendation against the use of WhatsApp in your company", "url": "https://artificialworlds.net/blog/2021/01/08/recommendation-against-the-use-of-whatsapp-in-your-company/", "published_at": "2021-01-08T13:41:10+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa303ead1", "title": "Streaming video with Owncast on a free Oracle Cloud computer", "url": "https://artificialworlds.net/blog/2021/01/05/streaming-video-with-owncast-on-a-free-oracle-cloud-computer/", "published_at": "2021-01-05T03:15:12+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa3bed393", "title": "Pinephone update", "url": "https://artificialworlds.net/blog/2021/01/04/pinephone-update/", "published_at": "2021-01-04T16:29:26+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa417976f", "title": "Is your program a function or a service?", "url": "https://artificialworlds.net/blog/2021/01/04/is-your-program-a-function-or-a-service/", "published_at": "2021-01-04T12:29:28+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa46e233a", "title": "Shutdown order consistency: how Rust helps", "url": "https://artificialworlds.net/blog/2020/12/22/shutdown-order-consistency-how-rust-helps/", "published_at": "2020-12-22T16:25:01+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa49a1c06", "title": "Edge computing providers", "url": "https://artificialworlds.net/blog/2020/12/17/edge-computing-providers/", "published_at": "2020-12-17T17:24:29+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa4b28984", "title": "Schema upgrades should be reversible (also other transformations, actually)", "url": "https://artificialworlds.net/blog/2020/12/17/schema-upgrades-should-be-reversible-also-other-transformations-actually/", "published_at": "2020-12-17T15:54:25+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa5118944", "title": "Make levels for Rabbit Escape using the level editor!", "url": "https://artificialworlds.net/blog/2020/12/10/make-levels-for-rabbit-escape-using-the-level-editor/", "published_at": "2020-12-10T16:15:45+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa532212b", "title": "Announcing Smolpxl Scores - a high score table for your game", "url": "https://artificialworlds.net/blog/2020/12/03/announcing-smolpxl-scores-a-high-score-table-for-your-game/", "published_at": "2020-12-03T10:58:34+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa62cf9c4", "title": "Dovecot not working after upgrade to Ubuntu 20.04.1 (dh key too small)", "url": "https://artificialworlds.net/blog/2020/11/25/dovecot-not-working-after-upgrade-to-ubuntu-20-04-1-dh-key-too-small/", "published_at": "2020-11-25T09:15:30+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa67df3b6", "title": "Letter to my MP on the overseas aid budget.", "url": "https://artificialworlds.net/blog/2020/11/25/letter-to-my-mp-on-the-overseas-aid-budget/", "published_at": "2020-11-25T08:51:46+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa6c61b46", "title": "Profile a Java unit test (very quickly, with no external tools)", "url": "https://artificialworlds.net/blog/2020/11/23/profile-a-java-unit-test-very-quickly-with-no-external-tools/", "published_at": "2020-11-23T11:03:02+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa6dc17fe", "title": "Why a Free Software web games site?", "url": "https://artificialworlds.net/blog/2020/11/03/why-a-free-software-web-games-site/", "published_at": "2020-11-03T09:06:25+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa7a85ccb", "title": "Code your first game: Snake in JavaScript (on Raspberry Pi)", "url": "https://artificialworlds.net/blog/2020/10/11/code-your-first-game-snake-in-javascript-on-raspberry-pi/", "published_at": "2020-10-11T07:35:07+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa7ebada0", "title": "Play and create little retro games at Smolpxl", "url": "https://artificialworlds.net/blog/2020/09/25/play-and-create-little-retro-games-at-smolpxl/", "published_at": "2020-09-25T02:12:41+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa863e8f6", "title": "shareon.js.org now has a Share to Mastodon button", "url": "https://artificialworlds.net/blog/2020/09/24/shareon-js-org-now-has-a-share-to-mastodon-button/", "published_at": "2020-09-24T23:32:52+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaa94bf9b7", "title": "Coding a tiny game in JavaScript video", "url": "https://artificialworlds.net/blog/2020/09/18/coding-a-tiny-game-in-javascript-video/", "published_at": "2020-09-18T00:25:06+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaaa1188cb", "title": "short - command line tool to truncate lines to fit in the terminal", "url": "https://artificialworlds.net/blog/2020/09/10/short-command-line-tool-to-truncate-lines-to-fit-in-the-terminal/", "published_at": "2020-09-10T15:18:33+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaaa95db6c", "title": "Set the date (EXIF) of a photo on Linux", "url": "https://artificialworlds.net/blog/2020/08/13/set-the-date-exif-of-a-photo-on-linux/", "published_at": "2020-08-13T13:31:38+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaab56fb0a", "title": "How to send an SMS using netcat (via SMPP)", "url": "https://artificialworlds.net/blog/2020/08/10/how-to-send-an-sms-using-netcat-via-smpp/", "published_at": "2020-08-10T15:50:15+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaac4c0718", "title": "Letter to my MP on racism in the US and UK", "url": "https://artificialworlds.net/blog/2020/06/05/letter-to-my-mp-on-racism-in-the-us-and-uk/", "published_at": "2020-06-05T12:26:35+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaad3a7a48", "title": "Example Android project with repeatable tests running inside an emulator", "url": "https://artificialworlds.net/blog/2020/05/06/example-android-project-with-repeatable-tests-running-inside-an-emulator/", "published_at": "2020-05-06T11:33:35+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaad5cf41f", "title": "Creating a tiny Docker image of a Rust project", "url": "https://artificialworlds.net/blog/2020/04/22/creating-a-tiny-docker-image-of-a-rust-project/", "published_at": "2020-04-22T11:40:53+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaad75e311", "title": "Keeping track of podcast times with a simple bash script on Linux", "url": "https://artificialworlds.net/blog/2020/04/04/keeping-track-of-podcast-times-with-a-simple-bash-script-on-linux/", "published_at": "2020-04-04T02:29:53+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaad9d6a3a", "title": "Custom Bash tab completion for my program", "url": "https://artificialworlds.net/blog/2020/03/11/custom-bash-tab-completion-for-my-program/", "published_at": "2020-03-11T17:35:15+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaadf9cca6", "title": "Struggling with Rust to figure out the right types for a function signature", "url": "https://artificialworlds.net/blog/2020/03/04/struggling-with-rust-to-figure-out-the-right-types-for-a-function-signature/", "published_at": "2020-03-04T12:08:55+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaae6b30e2", "title": "React Concepts Video", "url": "https://artificialworlds.net/blog/2020/02/13/react-concepts-video/", "published_at": "2020-02-13T22:19:50+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaaee28f7e", "title": "Converting HTML slides to a PDF with Firefox", "url": "https://artificialworlds.net/blog/2020/01/24/converting-html-slides-to-a-pdf-with-firefox/", "published_at": "2020-01-24T16:46:58+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaaef4d87a", "title": "Support the Software Freedom Conservancy", "url": "https://artificialworlds.net/blog/2020/01/24/support-the-software-freedom-conservancy/", "published_at": "2020-01-24T13:09:14+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaaf44f8f6", "title": "KotlinJS: First impressions (formed by writing Snake) video", "url": "https://artificialworlds.net/blog/2019/11/30/kotlinjs-first-impressions-formed-by-writing-snake-video/", "published_at": "2019-11-30T05:28:28+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaaf97eda3", "title": "Dependency Injection frameworks: reasons to avoid them video", "url": "https://artificialworlds.net/blog/2019/10/11/dependency-injection-frameworks-reasons-to-avoid-them-video/", "published_at": "2019-10-11T19:51:47+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab01288b6", "title": "Coding workshop example worksheets", "url": "https://artificialworlds.net/blog/2019/09/19/coding-workshop-example-worksheets/", "published_at": "2019-09-19T10:53:49+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab096ca19", "title": "Building an all-in-one Jar in Gradle with the Kotlin DSL", "url": "https://artificialworlds.net/blog/2019/07/12/building-an-all-in-one-jar-in-gradle-with-the-kotlin-dsl/", "published_at": "2019-07-12T14:55:56+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab09ff023", "title": "Creating a self-signed certificate for Apache and connecting to it from Java", "url": "https://artificialworlds.net/blog/2019/05/02/creating-a-self-signed-certificate-for-apache-and-connecting-to-it-from-java/", "published_at": "2019-05-02T14:10:29+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab0d9ac88", "title": "ACCU Talk \"How Kotlin makes your Java code better\"", "url": "https://artificialworlds.net/blog/2019/05/01/accu-talk-how-kotlin-makes-your-java-code-better/", "published_at": "2019-05-01T14:15:10+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab1c5c64b", "title": "ACCU Talk \"How Git really works\"", "url": "https://artificialworlds.net/blog/2019/05/01/accu-talk-how-git-really-works/", "published_at": "2019-05-01T14:13:14+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab2a7a518", "title": "Examples of Kotlin making your Java code better video", "url": "https://artificialworlds.net/blog/2019/04/23/examples-of-kotlin-making-your-java-code-better-video/", "published_at": "2019-04-23T21:27:33+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab333c9c7", "title": "What is a Monad? Video", "url": "https://artificialworlds.net/blog/2019/04/23/what-is-a-monad-video/", "published_at": "2019-04-23T21:19:55+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab416fed5", "title": "Build with a different Java version (e.g. 11) using Docker", "url": "https://artificialworlds.net/blog/2019/04/23/build-with-a-different-java-version-e-g-11-using-docker/", "published_at": "2019-04-23T13:59:35+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab4627c36", "title": "Rabbit Escape t-shirts", "url": "https://artificialworlds.net/blog/2019/04/13/rabbit-escape-t-shirts/", "published_at": "2019-04-13T13:45:11+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab50cef5f", "title": "Scheduling a task in Java within a CompletableFuture", "url": "https://artificialworlds.net/blog/2019/04/05/scheduling-a-task-in-java-within-a-completablefuture/", "published_at": "2019-04-05T15:55:06+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab5f422e9", "title": "Rabbit Escape 0.12 out now, with water", "url": "https://artificialworlds.net/blog/2019/03/05/rabbit-escape-0-12-out-now-with-water/", "published_at": "2019-03-05T00:30:08+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab65ccc0f", "title": "Convert a video to a GIF with reasonable colours", "url": "https://artificialworlds.net/blog/2019/03/05/convert-a-video-to-a-gif-with-reasonable-colours/", "published_at": "2019-03-05T00:17:45+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab7351093", "title": "Gradle: what is a task, and how can I make a task depend on another task?", "url": "https://artificialworlds.net/blog/2019/02/27/gradle-what-is-a-task-and-how-can-i-make-a-task-depend-on-another-task/", "published_at": "2019-02-27T15:59:47+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab76ef08b", "title": "Python Async basics video (100 million HTTP requests)", "url": "https://artificialworlds.net/blog/2019/02/26/python-async-basics-video-100-million-http-requests/", "published_at": "2019-02-26T21:48:45+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab82c4b2c", "title": "Keybase chat bot in 10 lines of bash", "url": "https://artificialworlds.net/blog/2019/02/14/keybase-chat-bot-in-10-lines-of-bash/", "published_at": "2019-02-14T09:08:17+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab903dc17", "title": "Performance of Java 2D drawing operations (part 3: image opacity)", "url": "https://artificialworlds.net/blog/2019/02/11/performance-of-java-2d-drawing-operations-part-3-image-opacity/", "published_at": "2019-02-11T23:51:05+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab96ac750", "title": "Performance of Java 2D drawing operations (part 2: images)", "url": "https://artificialworlds.net/blog/2019/02/08/performance-of-java-2d-drawing-operations-part-2-image-issues/", "published_at": "2019-02-08T02:05:29+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbab96f1302", "title": "Performance of Java 2D drawing operations (part 1: types of operation)", "url": "https://artificialworlds.net/blog/2019/02/04/performance-of-java-2d-drawing-operations/", "published_at": "2019-02-04T03:21:06+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbaba69a542", "title": "London Python Meetup January 2019 - Async Python and GeoPandas", "url": "https://artificialworlds.net/blog/2019/01/24/london-python-meetup-january-2019-async-python-and-geopandas/", "published_at": "2019-01-24T14:14:46+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbabb010fab", "title": "Run bash inside any version of Linux using Docker", "url": "https://artificialworlds.net/blog/2019/01/08/run-bash-inside-any-version-of-linux-using-docker/", "published_at": "2019-01-08T10:25:35+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbabbc39da3", "title": "Windows missing from grub menu after Ubuntu install", "url": "https://artificialworlds.net/blog/2019/01/03/windows-missing-from-grub-menu-after-ubuntu-install/", "published_at": "2019-01-03T20:47:11+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbabc9435d6", "title": "New home page design", "url": "https://artificialworlds.net/blog/2018/12/22/new-home-page-design/", "published_at": "2018-12-22T00:04:53+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbabd19ee13", "title": "Code Like a Girl T-shirts", "url": "https://artificialworlds.net/blog/2018/12/17/code-like-a-girl-t-shirts/", "published_at": "2018-12-17T23:15:06+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbabd6a1916", "title": "Poor performance in Chrome (especially on mobile) - caused by SVG background images", "url": "https://artificialworlds.net/blog/2018/12/10/poor-performance-in-chrome-especially-on-mobile-caused-by-svg-background-images/", "published_at": "2018-12-10T01:08:19+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbabdeb8041", "title": "Interesting Characters (UTF-16, utf-8, Unicode, encodings) video", "url": "https://artificialworlds.net/blog/2018/11/24/interesting-characters-utf-16-utf-8-unicode-encodings-video/", "published_at": "2018-11-24T09:00:33+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbabe91063e", "title": "Elm makes me happy (updated for Elm 0.19) video", "url": "https://artificialworlds.net/blog/2018/11/10/elm-makes-me-happy-updated-for-elm-0-19-video/", "published_at": "2018-11-10T02:45:18+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbabf70d9b0", "title": "Godot: make new objects at runtime (instancing) video", "url": "https://artificialworlds.net/blog/2018/11/10/godot-make-new-objects-at-runtime-instancing-video/", "published_at": "2018-11-10T02:28:20+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbabfec0233", "title": "You must rewind your incoming buffer when you fail to encode a character in a CharsetEncoder or you'll get an IllegalArgumentException", "url": "https://artificialworlds.net/blog/2018/11/09/you-must-rewind-your-incoming-buffer-when-you-fail-to-encode-a-character-in-a-charsetencoder-or-youll-get-an-illegalargumentexception/", "published_at": "2018-11-09T15:56:24+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbac09c7df7", "title": "Godot: Dragging and dropping physics objects video", "url": "https://artificialworlds.net/blog/2018/11/08/godot-dragging-and-dropping-physics-objects-video/", "published_at": "2018-11-08T01:37:47+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbac09fef86", "title": "Godot: 2D shapes bouncing off each other video", "url": "https://artificialworlds.net/blog/2018/11/06/godot-2d-shapes-bouncing-off-each-other-video/", "published_at": "2018-11-06T21:26:06+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbac0bc0178", "title": "Elm JSON decoder examples", "url": "https://artificialworlds.net/blog/2018/10/19/elm-json-decoder-examples/", "published_at": "2018-10-19T08:53:40+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbac16e08ab", "title": "Graft Animation Language on Raspberry Pi", "url": "https://artificialworlds.net/blog/2018/10/09/graft-animation-language-on-raspberry-pi/", "published_at": "2018-10-09T23:44:40+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbac20207bf", "title": "Worksheet: \"Tell a story by making animations with code\"", "url": "https://artificialworlds.net/blog/2018/09/24/worksheet-tell-a-story-by-making-animations-with-code/", "published_at": "2018-09-24T00:57:07+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbac22294dc", "title": "My experience upgrading to Elm 0.19", "url": "https://artificialworlds.net/blog/2018/09/12/my-experience-upgrading-to-elm-0-19/", "published_at": "2018-09-12T01:45:28+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbac2c147fb", "title": "Bulk adding items to Wunderlist using wunderline on Ubuntu MATE", "url": "https://artificialworlds.net/blog/2018/09/06/bulk-adding-items-to-wunderlist-using-wunderline-on-ubuntu-mate/", "published_at": "2018-09-06T19:53:04+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbac3a5cd1e", "title": "Writing a new Flarum extension on Ubuntu", "url": "https://artificialworlds.net/blog/2018/09/06/writing-a-new-flarum-extension-on-ubuntu/", "published_at": "2018-09-06T07:54:56+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbac3b57460", "title": "Ubuntu \"compose\" key for easy unicode character input", "url": "https://artificialworlds.net/blog/2018/09/05/ubuntu-compose-key-for-easy-unicode-character-input/", "published_at": "2018-09-05T12:29:15+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbac4af9d73", "title": "Redirecting all requests to https and www using .htaccess in Apache", "url": "https://artificialworlds.net/blog/2018/09/04/redirecting-all-requests-to-https-and-www-using-htaccess-in-apache/", "published_at": "2018-09-04T07:23:57+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbac562f750", "title": "Example of a systemd service file", "url": "https://artificialworlds.net/blog/2018/08/23/example-of-a-systemd-service-file/", "published_at": "2018-08-23T13:21:14+00:00" }, { "id": "01a0872e-ee2c-724c-97b0-adbac5b18937", "title": "Installing Flarum on Ubuntu 18.04", "url": "https://artificialworlds.net/blog/2018/08/22/installing-flarum-on-ubuntu-18-04/", "published_at": "2018-08-22T19:44:25+00:00" }, { "id": "01a0872e-ee2d-7211-bf13-94f7c6be38ab", "title": "Rabbit Escape 0.11 out now!", "url": "https://artificialworlds.net/blog/2018/08/19/rabbit-escape-0-11-out-now/", "published_at": "2018-08-19T16:57:34+00:00" }, { "id": "01a0872e-ee2d-7211-bf13-94f7c716d61d", "title": "Migrating videos from YouTube to PeerTube inside a Docker container", "url": "https://artificialworlds.net/blog/2018/08/15/migrating-videos-from-youtube-to-peertube-inside-a-docker-container/", "published_at": "2018-08-15T09:21:22+00:00" }, { "id": "01a0872e-ee2d-7211-bf13-94f7c7f2d4bb", "title": "How to write a programming language articles", "url": "https://artificialworlds.net/blog/2018/08/13/how-to-write-a-programming-language-articles/", "published_at": "2018-08-13T11:10:11+00:00" }, { "id": "01a0872e-ee2d-7211-bf13-94f7c852e441", "title": "Allow drag-to-side, but not drag-to-top in Ubuntu MATE (Marco)", "url": "https://artificialworlds.net/blog/2018/07/13/allow-drag-to-side-but-not-drag-to-top-in-ubuntu-mate-marco/", "published_at": "2018-07-13T11:22:00+00:00" }, { "id": "01a0872e-ee2d-7211-bf13-94f7c935c2f4", "title": "Connecting to Slack from an IRC client using slirc", "url": "https://artificialworlds.net/blog/2018/06/15/connecting-to-slack-from-an-irc-client-using-slirc/", "published_at": "2018-06-15T11:03:54+00:00" }, { "id": "01a0872e-ee2d-7211-bf13-94f7c95cb586", "title": "Using Matrix to connect to Slack from an IRC client on Ubuntu", "url": "https://artificialworlds.net/blog/2018/06/08/using-matrix-to-connect-to-slack-from-an-irc-client-on-ubuntu/", "published_at": "2018-06-08T16:08:35+00:00" }, { "id": "01a0872e-ee2d-7211-bf13-94f7c9e7e8c7", "title": "Clever Things People Do In Groovy So You Have To Know About Them video", "url": "https://artificialworlds.net/blog/2018/06/03/clever-things-people-do-in-groovy-so-you-have-to-know-about-them-video/", "published_at": "2018-06-03T16:34:00+00:00" }, { "id": "01a0872e-ee2d-7211-bf13-94f7cadcaf37", "title": "Examples of SQL join types (LEFT JOIN, INNER JOIN etc.)", "url": "https://artificialworlds.net/blog/2018/04/26/examples-of-sql-join-types-left-join-inner-join-etc/", "published_at": "2018-04-26T11:22:04+00:00" }, { "id": "01a0872e-ee2d-7211-bf13-94f7cb0ac3ab", "title": "Fixing Slack emojis in HexChat", "url": "https://artificialworlds.net/blog/2018/02/16/fixing-slack-emojis-in-hexchat/", "published_at": "2018-02-16T15:53:05+00:00" }, { "id": "01a0872e-ee2e-71c6-aedc-82444d0fd6f5", "title": "Ideas on how lexing will work in Pepper3", "url": "https://artificialworlds.net/blog/2018/02/09/ideas-on-how-lexing-will-work-in-pepper3/", "published_at": "2018-02-09T13:14:48+00:00" }, { "id": "01a0872e-ee2e-71c6-aedc-82444d72e358", "title": "Deleting commits from the git history", "url": "https://artificialworlds.net/blog/2018/02/06/deleting-commits-from-the-git-history/", "published_at": "2018-02-06T13:30:58+00:00" }, { "id": "01a0872e-ee2e-71c6-aedc-82444d88077e", "title": "Questions and answers about Pepper3", "url": "https://artificialworlds.net/blog/2018/01/22/questions-and-answers-about-pepper3/", "published_at": "2018-01-22T09:58:22+00:00" }, { "id": "01a0872e-ee2e-71c6-aedc-82444e19f8b0", "title": "Examples of Pepper3 code", "url": "https://artificialworlds.net/blog/2018/01/19/examples-of-pepper3-code/", "published_at": "2018-01-19T12:08:44+00:00" }, { "id": "01a0872e-ee2e-71c6-aedc-82444edd02c1", "title": "Recording gameplay videos on RetroPie", "url": "https://artificialworlds.net/blog/2018/01/07/recording-gameplay-videos-on-retropie/", "published_at": "2018-01-07T18:21:42+00:00" }, { "id": "01a0872e-ee2e-71c6-aedc-82444fc15c06", "title": "TECH(K)NOW Day workshop on \"Writing a programming language\"", "url": "https://artificialworlds.net/blog/2017/10/10/techknow-day-workshop-on-writing-a-programming-language/", "published_at": "2017-10-10T15:38:10+00:00" }, { "id": "01a0872e-ee2e-71c6-aedc-824450735f86", "title": "FileZilla with proxy not working with strange characters in the password", "url": "https://artificialworlds.net/blog/2017/09/29/filezilla-with-proxy-not-working-with-strange-characters-in-the-password/", "published_at": "2017-09-29T12:35:37+00:00" }, { "id": "01a0872e-ee2e-71c6-aedc-824450d4a81b", "title": "HTML5 CSS Toolbar + zoomable workspace that is mobile-friendly and adaptive", "url": "https://artificialworlds.net/blog/2017/09/20/html5-css-toolbar-zoomable-workspace-that-is-mobile-friendly-and-adaptive/", "published_at": "2017-09-20T23:42:11+00:00" }, { "id": "01a0872e-ee2e-71c6-aedc-8244518b4553", "title": "maven-assembly-plugin descriptor for a simple tarball with dependencies", "url": "https://artificialworlds.net/blog/2017/09/14/maven-assembly-plugin-descriptor-for-a-simple-tarball-with-dependencies/", "published_at": "2017-09-14T13:06:36+00:00" }, { "id": "01a0872e-ee2e-71c6-aedc-824452055b61", "title": "Blog aggregator/planet in WordPress using FeedWordPress", "url": "https://artificialworlds.net/blog/2017/09/12/blog-aggregatorplanet-in-wordpress-using-feedwordpress/", "published_at": "2017-09-12T13:55:34+00:00" } ] posts Claim your blog
Back to Andy Balaam's Blog
Blog · corpus.blog/blogs/artificialworlds.net/posts

Andy Balaam's Blog

artificialworlds.net

2021

2020

2019

2018

2017