41554 blogs · [ { "id": "01a08c58-1960-736b-acfb-d67c5545315e", "title": "LUKS with SSH unlock", "url": "https://www.tqdev.com/2022-luks-with-ssh-unlock/", "published_at": "2022-01-15T11:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c55ccc15a", "title": "Firefox wont load and/or uses high CPU", "url": "https://www.tqdev.com/2022-firefox-wont-load-and-or-uses-high-cpu/", "published_at": "2022-01-13T13:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c55d7716f", "title": "Remove Snap Store and avoid using snaps", "url": "https://www.tqdev.com/2022-remove-snap-store-and-avoid-using-snaps/", "published_at": "2022-01-11T01:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c563f353a", "title": "Boot RDP connected VM on-demand", "url": "https://www.tqdev.com/2022-boot-rdp-connected-vm-on-demand/", "published_at": "2022-01-04T12:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c56a9a90f", "title": "Disable power button on Ubuntu server", "url": "https://www.tqdev.com/2022-disable-power-button-on-ubuntu-server/", "published_at": "2021-12-30T12:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c56efbdf5", "title": "GopherCon Europe 2021: videos online", "url": "https://www.tqdev.com/2021-gophercon-europe-2021-videos-online/", "published_at": "2021-11-30T17:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c57a32064", "title": "GopherCon 2020: videos online", "url": "https://www.tqdev.com/2021-gophercon-2020-videos-online/", "published_at": "2021-11-28T17:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c585c0eaf", "title": "ASRock Deskmini X300 SFF Linux PC", "url": "https://www.tqdev.com/2021-deskmini-x300-sff-linux-pc/", "published_at": "2021-11-18T19:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c594c0bca", "title": "Maussoft MVC ported to .NET 5", "url": "https://www.tqdev.com/2021-maussoft-mvc-ported-to-net-5/", "published_at": "2021-10-31T18:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c59ae9e80", "title": "Rails' singularize and pluralize in PHP", "url": "https://www.tqdev.com/2021-rails-singularize-and-pluralize-functions-in-php/", "published_at": "2021-09-28T00:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c5a395869", "title": "Fanless Intel NUC i7 with Akasa case", "url": "https://www.tqdev.com/2021-fanless-intel-nuc-i7-akasa-case/", "published_at": "2021-08-21T16:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c5a4e6444", "title": "PHP 7 error handling class", "url": "https://www.tqdev.com/2021-php-7-error-handling-class/", "published_at": "2021-07-27T16:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c5addd60e", "title": "Planned obsolescence and the right to repair", "url": "https://www.tqdev.com/2021-on-the-right-to-repair-and-planned-obsolescence/", "published_at": "2021-07-06T14:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c5ae53748", "title": "Antec ISK 110 with 3400G using cTDP", "url": "https://www.tqdev.com/2021-antec-isk-110-with-3400g-using-ctdp/", "published_at": "2021-06-23T12:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c5b86a4b2", "title": "Firefox on Ubuntu has crackling sound", "url": "https://www.tqdev.com/2021-firefox-ubuntu-crackling-sound/", "published_at": "2021-06-20T03:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c5bc41050", "title": "Minesweeper written in Go using Ebiten", "url": "https://www.tqdev.com/2021-minesweeper-written-in-go-using-ebiten/", "published_at": "2021-06-15T08:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c5c734b36", "title": "Low power computing at 8 watt idle", "url": "https://www.tqdev.com/2021-low-power-computing-at-8-watt-idle/", "published_at": "2021-05-05T19:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c5d359368", "title": "Why I use Bitlocker without TPM", "url": "https://www.tqdev.com/2021-why-i-use-bitlocker-without-tpm/", "published_at": "2021-04-04T11:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c5dd7ac30", "title": "Storing JSON strings in MariaDB", "url": "https://www.tqdev.com/2020-storing-json-strings-in-mariadb/", "published_at": "2021-03-11T09:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c5e9db5a1", "title": "Installing PDO_SQLSRV on Debian 10", "url": "https://www.tqdev.com/2021-installing-pdo-sqlsrv-debian-10/", "published_at": "2021-02-18T12:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c5f4f0e89", "title": "Should table names be singular or plural?", "url": "https://www.tqdev.com/2021-should-table-names-be-singular-or-plural/", "published_at": "2021-01-02T12:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c5fa14b06", "title": "Free OTP 'soft token' written in Go", "url": "https://www.tqdev.com/2020-free-otp-soft-token-written-in-go/", "published_at": "2020-11-08T17:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c605d5d9f", "title": "Beelink Gemini T34 modding", "url": "https://www.tqdev.com/2020-beelink-gemini-t34-modding/", "published_at": "2020-09-11T13:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c60e6be59", "title": "Free GDPR scanner online!", "url": "https://www.tqdev.com/2020-free-gdpr-scanner-online/", "published_at": "2020-08-05T01:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6166dbbc", "title": "PHP-CRUD-API now on Docker Hub", "url": "https://www.tqdev.com/2020-php-crud-api-now-on-docker-hub/", "published_at": "2020-08-01T20:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c61ea2e76", "title": "OSX clean install error messages", "url": "https://www.tqdev.com/2020-osx-clean-install-error-messages/", "published_at": "2020-07-26T02:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c628e8b5c", "title": "uBlock Origin on Android", "url": "https://www.tqdev.com/2020-ublock-origin-on-android/", "published_at": "2020-07-17T22:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c62f7e163", "title": "Beelink T4 modding and overclocking", "url": "https://www.tqdev.com/2020-beelink-t4-modding-overclocking/", "published_at": "2020-06-21T02:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c63f1167d", "title": "PHP-CRUD-API v2 now supports SQLite", "url": "https://www.tqdev.com/2020-php-crud-api-v2-now-supports-sqlite/", "published_at": "2020-04-13T01:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c64e32184", "title": "Ultimate NUC killer under 500", "url": "https://www.tqdev.com/2019-ultimate-nuc-killer-under-500/", "published_at": "2020-02-14T08:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c65812803", "title": "Install OpenConnect VPN server on KVM", "url": "https://www.tqdev.com/2020-install-openconnect-vpn-server-kvm/", "published_at": "2020-02-07T17:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6653da59", "title": "Install an IPsec IKEv2 VPN server on KVM", "url": "https://www.tqdev.com/2020-install-ipsec-ikev2-vpn-server-kvm/", "published_at": "2020-02-03T01:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c669c1e1f", "title": "KVM port forwarding with UFW", "url": "https://www.tqdev.com/2020-kvm-port-forwarding-ufw/", "published_at": "2020-01-27T06:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c66e11ec7", "title": "Static IP addresses in a KVM network", "url": "https://www.tqdev.com/2020-kvm-network-static-ip-addresses/", "published_at": "2020-01-23T07:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c67e00ced", "title": "Serial console access from the KVM CLI", "url": "https://www.tqdev.com/2020-serial-console-access-kvm-cli/", "published_at": "2020-01-13T00:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6860a8d2", "title": "Install KVM from the CLI on Ubuntu 18.04", "url": "https://www.tqdev.com/2020-install-kvm-cli-ubuntu-18-04/", "published_at": "2020-01-08T15:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6880f7c6", "title": "Install OpenSSH on Ubuntu 18.04", "url": "https://www.tqdev.com/2020-install-openssh-ubuntu-18-04/", "published_at": "2020-01-05T01:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c68a55d4b", "title": "Using an iDRAC7 on a Dell R720xd", "url": "https://www.tqdev.com/2020-using-idrac7-on-dell-r720xd/", "published_at": "2019-12-31T11:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c68b54289", "title": "Advent of Code programming puzzles", "url": "https://www.tqdev.com/2019-advent-of-code-programming-puzzles/", "published_at": "2019-12-23T23:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c693dc6b6", "title": "How mature is your REST API?", "url": "https://www.tqdev.com/2019-maturity-system-rest-api/", "published_at": "2019-11-13T21:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c69685eb6", "title": "TreeQL and PathQL compared", "url": "https://www.tqdev.com/2019-treeql-and-pathql-compared/", "published_at": "2019-11-02T21:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c69943131", "title": "Sorting JSON for unit testing", "url": "https://www.tqdev.com/2019-sorting-json-for-unit-testing/", "published_at": "2019-10-26T20:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c69e4df9f", "title": "Automatic REST API for SlimPHP 4 (minimal)", "url": "https://www.tqdev.com/2019-automatic-rest-api-slimphp-4-minimal/", "published_at": "2019-09-26T17:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6adaf730", "title": "GopherCon 2019: videos online", "url": "https://www.tqdev.com/2019-gophercon-2019-videos-online/", "published_at": "2019-08-28T00:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6b671a6c", "title": "Automatic REST API for SlimPHP 4", "url": "https://www.tqdev.com/2019-automatic-api-slimphp-4/", "published_at": "2019-08-16T22:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6c047007", "title": "Script to undelete all files in Git", "url": "https://www.tqdev.com/2019-script-to-undelete-all-files-in-git/", "published_at": "2019-08-13T00:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6c2ae927", "title": "API authorization strategy: use the DB", "url": "https://www.tqdev.com/2019-api-authorization-strategies/", "published_at": "2019-07-29T16:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6ce9fe15", "title": "Database multi-tenancy strategies", "url": "https://www.tqdev.com/2019-database-multi-tenancy-strategies/", "published_at": "2019-07-28T02:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6dca1c70", "title": "Handling GeoJSON tiles in Leaflet", "url": "https://www.tqdev.com/2019-handling-geojson-tiles-in-leaflet/", "published_at": "2019-07-20T15:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6ebd62a9", "title": "Lossless compression of PHP files", "url": "https://www.tqdev.com/2019-lossless-compression-of-php-files/", "published_at": "2019-07-19T08:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6f009991", "title": "Open source software pyramid", "url": "https://www.tqdev.com/2019-open-source-software-pyramid/", "published_at": "2019-06-11T07:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6f2decf9", "title": "PHP-CRUD-API gets GeoJSON support", "url": "https://www.tqdev.com/2019-php-crud-api-with-geojson-support/", "published_at": "2019-06-04T10:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6f853894", "title": "Celebrating 3 years TQdev", "url": "https://www.tqdev.com/2019-celebrating-3-years-tqdev/", "published_at": "2019-05-09T08:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c6fea4a7e", "title": "PHP templating engine from scratch", "url": "https://www.tqdev.com/2019-php-templating-engine-from-scratch/", "published_at": "2019-05-01T16:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c708d6d5d", "title": "Split while respecting quotes in PHP", "url": "https://www.tqdev.com/2019-tokenizing-in-php/", "published_at": "2019-04-27T14:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c70ec907e", "title": "Automatic REST API for Laravel", "url": "https://www.tqdev.com/2019-automatic-rest-api-laravel/", "published_at": "2019-04-22T10:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c71693b28", "title": "Automatic REST API for Symfony 4", "url": "https://www.tqdev.com/2019-automatic-rest-api-symfony/", "published_at": "2019-04-21T09:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7175a854", "title": "Automatic REST API for SlimPHP 3", "url": "https://www.tqdev.com/2019-automatic-api-slimphp-3/", "published_at": "2019-04-20T22:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c722b46b8", "title": "Small form factor mechanical keyboards", "url": "https://www.tqdev.com/2019-small-mechanical-keyboards/", "published_at": "2019-04-12T21:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c72771240", "title": "7 web development practices challenged", "url": "https://www.tqdev.com/2018-7-web-development-practices-challenged/", "published_at": "2019-04-06T04:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7365f82c", "title": "Linux dream machine under 900 euro (v2)", "url": "https://www.tqdev.com/2019-linux-dream-machine-under-900-euro-v2/", "published_at": "2019-03-29T12:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c739ba266", "title": "PHP-CRUD-UI updated to v2", "url": "https://www.tqdev.com/2019-php-crud-ui-updated-to-v2/", "published_at": "2019-03-13T04:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c73abe470", "title": "How to fix screen tearing in XFCE", "url": "https://www.tqdev.com/2019-how-to-fix-screen-tearing-in-xfce/", "published_at": "2019-02-28T09:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c73f3102f", "title": "Cannot copy Windows 10 \"install.wim\"?", "url": "https://www.tqdev.com/2019-cannot-copy-windows-10-install-wim/", "published_at": "2019-02-20T03:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c74af0949", "title": "'Fork me on GitHub' SVG ribbons", "url": "https://www.tqdev.com/2019-fork-me-on-github-svg-ribbons/", "published_at": "2019-01-29T09:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c75a2512c", "title": "PHP templating in 165 lines of code", "url": "https://www.tqdev.com/2019-php-templating-engine-in-165-lines/", "published_at": "2019-01-25T22:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7670d279", "title": "Linux dream machine under 900 euro", "url": "https://www.tqdev.com/2019-linux-dream-machine-under-900-euro/", "published_at": "2019-01-04T00:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c773891bf", "title": "35th CCC hacker videos online", "url": "https://www.tqdev.com/2018-35th-ccc-hacker-videos-online/", "published_at": "2018-12-31T14:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c77ccd53a", "title": "Doubly Linked Circular List in Ruby", "url": "https://www.tqdev.com/2018-doubly-linked-circular-list-in-ruby/", "published_at": "2018-12-09T22:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7846947b", "title": "Security risk: a hidden cost of dependencies", "url": "https://www.tqdev.com/2018-security-hidden-cost-dependencies/", "published_at": "2018-11-26T22:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c78fd38d5", "title": "Reduce the mental load for developers", "url": "https://www.tqdev.com/2018-web-development-made-simple/", "published_at": "2018-11-18T02:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c795ebd09", "title": "MintyPHP now on packagist!", "url": "https://www.tqdev.com/2018-mindaphp-now-on-packagist/", "published_at": "2018-10-26T02:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c798adb42", "title": "Deploy with Git: push to production", "url": "https://www.tqdev.com/2018-deploying-with-git-push-to-production/", "published_at": "2018-10-22T16:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7a09ad57", "title": "Microservice vs. dataservice architecture", "url": "https://www.tqdev.com/2018-microservice-dataservice-architecture/", "published_at": "2018-10-17T09:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7ab54622", "title": "PHP-CRUD-API version 2 released", "url": "https://www.tqdev.com/2018-php-crud-api-version-2-released/", "published_at": "2018-10-14T10:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7b52d31e", "title": "TreeQL vs. GraphQL", "url": "https://www.tqdev.com/2018-treeql-vs-graphql/", "published_at": "2018-10-04T22:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7b8e214d", "title": "GopherCon 2018: videos online", "url": "https://www.tqdev.com/2018-gophercon-2018-videos-online/", "published_at": "2018-09-14T09:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7c782eaa", "title": "Java's synchronized block in PHP", "url": "https://www.tqdev.com/2018-java-synchronized-block-in-php/", "published_at": "2018-09-10T01:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7d159300", "title": "A locking file cache in PHP", "url": "https://www.tqdev.com/2018-locking-file-cache-php/", "published_at": "2018-09-09T11:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7d4a5672", "title": "GopherCon Singapore 2018: videos online", "url": "https://www.tqdev.com/2018-gophercon-singapore-2018-videos-online/", "published_at": "2018-09-08T09:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7d95fa64", "title": "Go Northwest 2018: videos online", "url": "https://www.tqdev.com/2018-go-northwest-videos-online/", "published_at": "2018-09-07T08:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7e145535", "title": "GopherCon UK 2018: videos online", "url": "https://www.tqdev.com/2018-gophercon-uk-2018-videos-online/", "published_at": "2018-09-01T22:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7ed83e1a", "title": "Visual Basic in ASP.Net Core 2.1", "url": "https://www.tqdev.com/2018-visual-basic-in-asp-net-core-2-1/", "published_at": "2018-08-18T20:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c7fc8d1a3", "title": "Equalizer for PulseAudio in Ubuntu 18.04", "url": "https://www.tqdev.com/2018-equalizer-for-pulseaudio-in-ubuntu-18-04/", "published_at": "2018-07-27T00:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c8065fb24", "title": "The \"Boring Software\" manifesto", "url": "https://www.tqdev.com/2018-the-boring-software-manifesto/", "published_at": "2018-06-18T00:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c80bb088a", "title": "Will the GDPR kill Google analytics?", "url": "https://www.tqdev.com/2018-gdpr-kill-google-analytics/", "published_at": "2018-05-30T00:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c81952de2", "title": "PHP-CRUD-API version 2 uses PDO", "url": "https://www.tqdev.com/2018-php-crud-api-version-2-uses-pdo/", "published_at": "2018-04-12T00:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c8197ee78", "title": "The \"JustForFunc\" Go YouTube videos", "url": "https://www.tqdev.com/2018-justforfunc-go-youtube-videos/", "published_at": "2018-03-09T09:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c82193aaf", "title": "Intel 110T 82572EI (e1000e) PCI-e", "url": "https://www.tqdev.com/2018-intel-110t-82572ei-e1000e-pci-e/", "published_at": "2018-02-27T07:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c8227c325", "title": "REST API using Spring Boot and jOOQ", "url": "https://www.tqdev.com/2018-rest-api-using-spring-boot-and-jooq/", "published_at": "2018-02-17T23:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c8229f6f5", "title": "Upgrading Go 1.6 in Ubuntu 16.04", "url": "https://www.tqdev.com/2018-upgrading-go-1-6-in-ubuntu-16-04/", "published_at": "2018-02-14T11:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c8271d6a6", "title": "On Meltdown, Spectre and sandbox isolation", "url": "https://www.tqdev.com/2018-meltdown-spectre-sandbox-isolation/", "published_at": "2018-01-06T15:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c8364245e", "title": "Choosing a high performance web stack", "url": "https://www.tqdev.com/2017-choosing-a-high-performance-web-stack/", "published_at": "2017-11-17T22:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c83b8410f", "title": "Porting PHP-CRUD-API to Python", "url": "https://www.tqdev.com/2017-porting-php-crud-api-to-python/", "published_at": "2017-11-12T10:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c83f6245f", "title": "10 reasons async programming is a bad idea", "url": "https://www.tqdev.com/2017-10-reasons-async-programming-is-bad/", "published_at": "2017-11-09T03:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c84e92ddd", "title": "The myth of the \"right tool for the job\"", "url": "https://www.tqdev.com/2017-the-myth-of-the-right-tool-for-the-job/", "published_at": "2017-10-24T22:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c851581c1", "title": "Helping friends on the Linux command-line", "url": "https://www.tqdev.com/2017-helping-friends-on-the-linux-command-line/", "published_at": "2017-08-15T03:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c85537f83", "title": "How to get an A+ rating from SSL Labs", "url": "https://www.tqdev.com/2017-how-to-get-a-plus-rating-from-ssl-labs/", "published_at": "2017-07-29T00:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c85ceaf07", "title": "GopherCon 2017: videos online", "url": "https://www.tqdev.com/2017-gophercon-2017-videos-online/", "published_at": "2017-07-24T23:00:00+00:00" }, { "id": "01a08c58-1960-736b-acfb-d67c86b72c0e", "title": "Ubuntu ttf-mscorefonts-installer fails", "url": "https://www.tqdev.com/2017-ubuntu-ttf-mscorefonts-installer-fails/", "published_at": "2017-07-10T01:00:00+00:00" } ] posts Claim your blog
Back to tqdev.com
Blog · corpus.blog/blogs/tqdev.com/posts

tqdev.com

tqdev.com

2022

2021

2020

2019

2018

2017