41554 blogs · [ { "id": "01a0879c-0884-7044-a4b3-5bc979eb7d8a", "title": "Thoughts on the Developement of PyPy RISC-V JIT Backend", "url": "http://logan.tw/posts/2024/12/30/pypy-riscv-jit-backend-dev/", "published_at": "2024-12-30T15:21:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc97a43fae9", "title": "Django: Count Aggregates with Conditions", "url": "http://logan.tw/posts/2019/01/06/django-count-aggregates-with-conditions/", "published_at": "2019-01-06T10:39:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc97a4f142d", "title": "Manage Chroot Environments with Schroot", "url": "http://logan.tw/posts/2018/02/24/manage-chroot-environments-with-schroot/", "published_at": "2018-02-24T14:33:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc97aea13b9", "title": "Build qemu-user-static from source code", "url": "http://logan.tw/posts/2018/02/18/build-qemu-user-static-from-source-code/", "published_at": "2018-02-18T07:50:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc97af86a77", "title": "Find Undefined Behavior with Clang UBSan", "url": "http://logan.tw/posts/2018/01/27/find-undefined-behavior-with-clang-ubsan/", "published_at": "2018-01-27T12:01:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc97b6aebdf", "title": "POSIX Shared Memory", "url": "http://logan.tw/posts/2018/01/07/posix-shared-memory/", "published_at": "2018-01-07T00:23:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc97ba8e3a6", "title": "Full-text Search with Django and PostgreSQL", "url": "http://logan.tw/posts/2017/12/30/full-text-search-with-django-and-postgresql/", "published_at": "2017-12-30T11:50:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc97c227166", "title": "Introduction to qemu-debootstrap", "url": "http://logan.tw/posts/2017/01/21/introduction-to-qemu-debootstrap/", "published_at": "2017-01-21T14:49:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc97d1ef2cb", "title": "Django ORM and Updating Counters", "url": "http://logan.tw/posts/2016/12/03/django-orm-and-updating-counters/", "published_at": "2016-12-03T14:04:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc97d49a2a8", "title": "Connect to Freenode with Irssi through SSL and SASL", "url": "http://logan.tw/posts/2016/03/19/connect-to-freenode-with-irssi-through-ssl-and-sasl/", "published_at": "2016-03-19T08:47:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc97e2b6390", "title": "Python Property Decorator", "url": "http://logan.tw/posts/2016/03/12/python-property-decorator/", "published_at": "2016-03-12T12:09:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc97e95577b", "title": "Experience with Atom Editor", "url": "http://logan.tw/posts/2016/03/05/experience-with-atom-editor/", "published_at": "2016-03-05T03:02:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc97f795acf", "title": "Colon Built-in in Bash", "url": "http://logan.tw/posts/2016/02/27/colon-built-in-in-bash/", "published_at": "2016-02-27T07:17:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc9802eb529", "title": "Open and Close Files in Bash", "url": "http://logan.tw/posts/2016/02/20/open-and-close-files-in-bash/", "published_at": "2016-02-20T08:05:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc980c42f23", "title": "JavaScript Object.defineProperty()", "url": "http://logan.tw/posts/2016/01/30/javascript-objectdefineproperty/", "published_at": "2016-01-30T13:01:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc9813f9462", "title": "NPM Package Manager", "url": "http://logan.tw/posts/2016/01/24/npm-package-manager/", "published_at": "2016-01-24T12:04:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc981fd3032", "title": "Flask and Socket.IO", "url": "http://logan.tw/posts/2016/01/16/flask-and-socketio/", "published_at": "2016-01-16T07:03:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc982149aa8", "title": "Vim Ctrl-P Plug-in", "url": "http://logan.tw/posts/2016/01/09/vim-ctrl-p-plug-in/", "published_at": "2016-01-09T01:21:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc9824a725c", "title": "Python New Style Class", "url": "http://logan.tw/posts/2016/01/02/python-new-style-class/", "published_at": "2016-01-02T11:08:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc9824e54fa", "title": "A Quick Guide to Grunt", "url": "http://logan.tw/posts/2015/12/26/a-quick-guide-to-grunt/", "published_at": "2015-12-26T09:34:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc982f30ea3", "title": "JavaScript Prototype and Object Oriented", "url": "http://logan.tw/posts/2015/12/19/javascript-prototype-and-object-oriented/", "published_at": "2015-12-19T15:21:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc983288d84", "title": "Read Lines from stdin in Node.js", "url": "http://logan.tw/posts/2015/12/12/read-lines-from-stdin-in-nodejs/", "published_at": "2015-12-12T14:13:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc983cf0236", "title": "Browserify", "url": "http://logan.tw/posts/2015/12/05/browserify/", "published_at": "2015-12-05T11:30:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc9844dabb3", "title": "Run ES2015 with Babel 6", "url": "http://logan.tw/posts/2015/11/29/run-es2015-with-babel-6/", "published_at": "2015-11-29T10:45:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc984a89043", "title": "Bash Signal Handler and Traps", "url": "http://logan.tw/posts/2015/11/16/bash-signal-handler-and-traps/", "published_at": "2015-11-15T17:25:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc984dac0c6", "title": "Autossh and Systemd Service", "url": "http://logan.tw/posts/2015/11/15/autossh-and-systemd-service/", "published_at": "2015-11-15T14:35:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc9854502c3", "title": "Fix Nautilus Video Thumbnails", "url": "http://logan.tw/posts/2015/11/08/fix-nautilus-video-thumbnails/", "published_at": "2015-11-08T07:19:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc9861e20c2", "title": "Debug Multithreaded Program with GDB", "url": "http://logan.tw/posts/2015/11/01/debug-multithreaded-program-with-gdb/", "published_at": "2015-11-01T12:37:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc9863f3d7b", "title": "Discourse Installation Notes", "url": "http://logan.tw/posts/2015/09/13/discourse-installation-notes/", "published_at": "2015-09-13T14:28:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc98700585d", "title": "Global Git Ignore File", "url": "http://logan.tw/posts/2015/06/27/global-git-ignore-file/", "published_at": "2015-06-27T13:19:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc987a7d494", "title": "Comparison and Sorting in Python3", "url": "http://logan.tw/posts/2015/06/14/comparison-and-sorting-in-python3/", "published_at": "2015-06-14T15:45:00+00:00" }, { "id": "01a0879c-0884-7044-a4b3-5bc98801c171", "title": "Troubleshooting adb No Permissions Problem", "url": "http://logan.tw/posts/2015/05/25/troubleshooting-adb-no-permissions-problem/", "published_at": "2015-05-25T13:59:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1f5aded98", "title": "Grub Install and Btrfs Root File System", "url": "http://logan.tw/posts/2015/05/17/grub-install-and-btrfs-root-file-system/", "published_at": "2015-05-16T17:44:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1f617d7c3", "title": "Check Code Coverage with Clang and LCOV", "url": "http://logan.tw/posts/2015/04/28/check-code-coverage-with-clang-and-lcov/", "published_at": "2015-04-27T17:28:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1f6d7adfe", "title": "Trace Source Code with Vim and Ctags", "url": "http://logan.tw/posts/2015/03/10/trace-source-code-with-vim-and-ctags/", "published_at": "2015-03-10T15:01:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1f71793d3", "title": "Git Ignore File", "url": "http://logan.tw/posts/2015/02/28/git-ignore-file/", "published_at": "2015-02-28T06:19:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1f7ed7953", "title": "Using Aria2 Download Manager", "url": "http://logan.tw/posts/2015/02/21/using-aria2-download-manager/", "published_at": "2015-02-21T15:02:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1f85f7dcc", "title": "C++11 Unique Pointer", "url": "http://logan.tw/posts/2015/01/31/c11-unique-pointer/", "published_at": "2015-01-31T15:04:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1f932440c", "title": "C++ std::multimap and Equal Range", "url": "http://logan.tw/posts/2015/01/20/c-stdmultimap-and-equal-range/", "published_at": "2015-01-20T15:17:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1f9c2dddc", "title": "Waliki Installation", "url": "http://logan.tw/posts/2015/01/02/waliki-installation/", "published_at": "2015-01-02T03:20:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1fa606feb", "title": "Python Package Manager: PIP", "url": "http://logan.tw/posts/2015/01/01/python-package-manager-pip/", "published_at": "2014-12-31T16:14:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1fa97ee9c", "title": "2014 Year End Review", "url": "http://logan.tw/posts/2014/12/31/2014-year-end-review/", "published_at": "2014-12-31T15:54:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1fb7dc2c7", "title": "Debian Backports", "url": "http://logan.tw/posts/2014/12/20/debian-backports/", "published_at": "2014-12-20T14:04:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1fb8e18c2", "title": "Count Trailing Zeros", "url": "http://logan.tw/posts/2014/12/17/count-trailing-zeros/", "published_at": "2014-12-17T15:34:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1fc2f2aa2", "title": "RISC-V Microprocessor", "url": "http://logan.tw/posts/2014/12/16/risc-v-microprocessor/", "published_at": "2014-12-16T15:20:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1fce93d71", "title": "Autossh and Ubuntu Upstart Daemon", "url": "http://logan.tw/posts/2014/12/15/autossh-and-ubuntu-upstart-daemon/", "published_at": "2014-12-15T10:04:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1fd724f26", "title": "LLVM Obfuscator", "url": "http://logan.tw/posts/2014/12/09/llvm-obfuscator/", "published_at": "2014-12-09T15:18:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1fd7f97cf", "title": "C++ Virtual Destructor and Inheritence", "url": "http://logan.tw/posts/2014/12/09/c-virtual-destructor-and-inheritence/", "published_at": "2014-12-09T11:00:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1fe58ba29", "title": "LLVM Bugpoint", "url": "http://logan.tw/posts/2014/11/26/llvm-bugpoint/", "published_at": "2014-11-26T15:03:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1fec308d0", "title": "Vim Vundle", "url": "http://logan.tw/posts/2014/11/25/vim-vundle/", "published_at": "2014-11-25T14:41:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db1ff4bd769", "title": "Let's Encrypt", "url": "http://logan.tw/posts/2014/11/24/lets-encrypt/", "published_at": "2014-11-24T15:32:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db2002dc847", "title": "Ubuntu Bluetooth Headset", "url": "http://logan.tw/posts/2014/11/24/ubuntu-bluetooth-headset/", "published_at": "2014-11-24T15:04:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db2008cd3e4", "title": "Install GCIN on Ubuntu 14.04", "url": "http://logan.tw/posts/2014/11/23/install-gcin-on-ubuntu-1404/", "published_at": "2014-11-23T06:36:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db20176e58d", "title": "Pre-compile the OpenCL Kernel Program - Part 2", "url": "http://logan.tw/posts/2014/11/22/pre-compile-the-opencl-kernel-program-part-2/", "published_at": "2014-11-22T04:22:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db2018c9b05", "title": "Pre-compile the OpenCL Kernel Program - Part 1", "url": "http://logan.tw/posts/2014/11/21/pre-compile-the-opencl-kernel-program-part-1/", "published_at": "2014-11-21T13:22:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db201f8cc27", "title": "C++ Private Inheritence and Using Directive", "url": "http://logan.tw/posts/2014/11/20/c-private-inheritence-and-using-directive/", "published_at": "2014-11-20T03:52:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db202eec838", "title": "OpenCL 1.2 Manual Pages", "url": "http://logan.tw/posts/2014/11/19/opencl-12-manual-pages/", "published_at": "2014-11-19T14:37:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db203958549", "title": "Getting Started with OpenCL", "url": "http://logan.tw/posts/2014/11/18/getting-started-with-opencl/", "published_at": "2014-11-18T15:05:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db204507bd8", "title": "Fix GRUB2 Warning", "url": "http://logan.tw/posts/2014/11/17/fix-grub2-warning/", "published_at": "2014-11-17T15:50:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db2051b60ed", "title": "GitHub Pages and HTTPS", "url": "http://logan.tw/posts/2014/11/16/github-pages-and-https/", "published_at": "2014-11-16T15:31:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db2054e4cbe", "title": "Pelican and GitHub Pages", "url": "http://logan.tw/posts/2014/11/16/pelican-and-github-pages/", "published_at": "2014-11-16T15:01:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db205b7d932", "title": "SSL Certificate", "url": "http://logan.tw/posts/2014/11/15/ssl-certificate/", "published_at": "2014-11-14T18:30:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db2068f3398", "title": "C++ std::list Operations", "url": "http://logan.tw/posts/2014/11/14/c-stdlist-operations/", "published_at": "2014-11-14T15:53:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db206ecb487", "title": "C++ Associative Container and Iterator Validness", "url": "http://logan.tw/posts/2014/11/13/c-associative-container-and-iterator-validness/", "published_at": "2014-11-13T14:38:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db207010017", "title": "Git Merge Base and Checkout", "url": "http://logan.tw/posts/2014/11/13/git-merge-base-and-checkout/", "published_at": "2014-11-13T14:04:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db20701018f", "title": "Soundness and Completeness of the Type System", "url": "http://logan.tw/posts/2014/11/12/soundness-and-completeness-of-the-type-system/", "published_at": "2014-11-12T13:26:00+00:00" }, { "id": "01a0879c-0885-7203-86f5-2db2073c015b", "title": "First Post", "url": "http://logan.tw/posts/2014/11/11/first-post/", "published_at": "2014-11-11T15:38:00+00:00" } ] posts Claim your blog
Back to logan.tw
Blog · corpus.blog/blogs/logan.tw/posts

logan.tw

logan.tw

2024

2019

2018

2017

2016

2015

2014