mirror of https://gitlab.com/curben/blog
				
				
				
			docs: Add tags
This commit is contained in:
		
							parent
							
								
									1cf92c7746
								
							
						
					
					
						commit
						9b2714be62
					
				|  | @ -2,6 +2,8 @@ | |||
| title: Default binaries in Alpine docker image | ||||
| date: 2018-10-10 00:00:00 | ||||
| tags: | ||||
| - Linux | ||||
| - Alpine | ||||
| --- | ||||
| Here is the list of binaries shipped with the Docker image of Alpine Linux `alpine:3.8` | ||||
| 
 | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| title: How to disable Control+Alt+S shortcut in MATE | ||||
| date: 2018-10-24 00:00:00 | ||||
| tags: | ||||
| - Linux | ||||
| --- | ||||
| The default Control+Alt+S shortcut conflicts with Notepad++ 'Save As' shortcut, here's how to disable it. | ||||
| 
 | ||||
|  | @ -32,4 +33,4 @@ Toggle 'Use default value' to off, and set the custom value as `disabled`. | |||
| 
 | ||||
| Finally, disable the shortcut in CCSM. Go to General Options > Key bindings (tab) > Toggle Window Shaded (last value). | ||||
| 
 | ||||
| {% cloudinary 20181024/ccsm.png %} | ||||
| {% cloudinary 20181024/ccsm.png %} | ||||
|  |  | |||
|  | @ -3,6 +3,8 @@ title: Edit multiple questions on LimeSurvey | |||
| date: 2018-10-18 00:00:00 | ||||
| lastUpdated: 2018-10-26 00:00:00 | ||||
| tags: | ||||
| - Stats | ||||
| - LimeSurvey | ||||
| --- | ||||
| On LimeSurvey, making minor edits to multiple questions can be quite a chore. `List Questions` view allows you to edit multiple questions at the same time. | ||||
| 
 | ||||
|  | @ -34,4 +36,4 @@ This is what ListQuestions view looks like, | |||
| 
 | ||||
| The view is also useful for quickly open multiple questions. Simply ctrl + left click or just middle click on the Edit button to open the question (to edit) in new tab. | ||||
| 
 | ||||
| {% cloudinary 20181018/limesurvey-edit.png %} | ||||
| {% cloudinary 20181018/limesurvey-edit.png %} | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ title: Access Facebook/Instagram/Whatsapp/Google in China | |||
| date: 2018-12-31 00:00:00 | ||||
| lastUpdated: 2019-01-13 00:00:00 | ||||
| tags: | ||||
| - Security | ||||
| --- | ||||
| Facebook/Instagram/Whatsapp/Google are blocked in China. You can either use data roaming or VPN to access them. Roll your own VPN if you don't trust commercial VPN provider. | ||||
| 
 | ||||
|  | @ -80,4 +81,4 @@ You can roll your own VPN if you don't trust commercial provider. [Algo](https:/ | |||
| 
 | ||||
| In my experience, despite Algo's effort, I still think it's much harder than using a commercial VPN provider. This is not Algo's fault actually. Setting up an EC2 account is too complicated than it should, and the complex Amazon cloud ecosystem is not helping. | ||||
| 
 | ||||
| Anyhow, for best results with Algo, I recommend using multiple cloud providers in multiple locations, in case one of them is blocked. | ||||
| Anyhow, for best results with Algo, I recommend using multiple cloud providers in multiple locations, in case one of them is blocked. | ||||
|  |  | |||
|  | @ -3,6 +3,8 @@ title: GNU vs BusyBox Unix tools | |||
| date: 2018-10-13 00:00:00 | ||||
| lastUpdated: 2018-10-31 00:00:00 | ||||
| tags: | ||||
| - Linux | ||||
| - Alpine | ||||
| --- | ||||
| TL;DR Alpine uses BusyBox while Ubuntu uses GNU tools, and they behave differently. Here's how they differ. | ||||
| 
 | ||||
|  | @ -50,4 +52,4 @@ I tested the tools on Alpine and Ubuntu, and noted their behaviour. BusyBox = BB | |||
| - **unzip**: GNU doesn't support stdin as input. Use funzip to decompress stdin, but only extract the first file like zcat. BB support stdin and extract all files, through `unzip -`. | ||||
| - **sed**: BB doesn't support -z argument which is used to find/replace \n new line character. A [workaround](https://stackoverflow.com/a/1252191) is `sed ':a;N;$!ba;s/\n/<new character>/g' file` or `sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/<new character>/g' file`. GNU `sed -z 's/\n/<new character>/g' ` works. | ||||
| - **bsdtar**: Since GNU's zcat and funzip can only extract the first file, in addition to BB's unzip, another alternative is bsdtar. bsdtar can be installed through `libarchive-tools` package. To extract zip from stdin, use `$ bsdtar -xf -`. | ||||
| - **patch**: BB doesn't support `--backup` option. BSD doesn't support `--verbose` option. | ||||
| - **patch**: BB doesn't support `--backup` option. BSD doesn't support `--verbose` option. | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| title: How to create a Hexo blog on GitHub Pages | ||||
| date: 2018-11-10 00:00:00 | ||||
| tags: | ||||
| - Hexo | ||||
| --- | ||||
| 
 | ||||
| In {% post_link how-to-create-a-hexo-blog 'previous post' %}, I showed you how to create a blog using [Hexo](https://hexo.io) and host it on [GitLab Pages](https://about.gitlab.com/features/pages/). Here's how to host it on [GitHub Pages](https://pages.github.com/): | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| title: Hide folders of Caja side pane | ||||
| date: 2018-10-02 00:00:00 | ||||
| tags: | ||||
| - Linux | ||||
| --- | ||||
| The side pane of Caja shows many media folders by default. Most of them not important enough to show up on side pane. | ||||
| <!-- more --> | ||||
|  |  | |||
|  | @ -3,6 +3,8 @@ title: How to create a Hexo blog on GitLab Pages | |||
| date: 2018-09-21 00:00:00 | ||||
| lastUpdated: 2018-11-10 00:00:00 | ||||
| tags: | ||||
| - Hexo | ||||
| - GitLab | ||||
| --- | ||||
| Create a website/blog using Hexo on [GitLab Pages](https://about.gitlab.com/features/pages/) for free using the following guide. Refer to my {% post_link hexo-blog-github 'another guide' %} for [GitHub Pages](https://pages.github.com/). | ||||
| 
 | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ title: How to remove Windows 10 default apps | |||
| date: 2018-09-26 00:00:00 | ||||
| lastUpdated: 2019-01-03 00:00:00 | ||||
| tags: | ||||
| - Microsoft | ||||
| --- | ||||
| Windows 10 comes bundled with many unused apps. Worse, it even install third-party apps from time to time by *itself* (even after you remove it!). Here's how to get rid of these bloatware. | ||||
| <!-- more --> | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ title: Make Hexo blog smaller | |||
| date: 2018-09-28 00:00:00 | ||||
| lastUpdated: 2018-10-06 00:00:00 | ||||
| tags: | ||||
| - Hexo | ||||
| --- | ||||
| Static site serves html, css, javascript and images. These files can be compressed to reduce bandwidth. | ||||
| <!-- more --> | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| title: Make PDF files smaller | ||||
| date: 2019-01-05 00:00:00 | ||||
| tags: | ||||
| - PDF | ||||
| --- | ||||
| 
 | ||||
| The most effective ways of reducing the file size of a PDF is by converting to grayscale and reduce the resolution. | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ title: microG, a replacement for the proprietary Google Play Services | |||
| date: 2019-01-12 00:00:00 | ||||
| lastUpdated: 2019-02-05 00:00:00 | ||||
| tags: | ||||
| - Android | ||||
| --- | ||||
| 
 | ||||
| [microG](https://microg.org/) is an open source re-implementation of Google Play Service/Services Framework. While the core of the Android OS is still open source, much of the core apps, libraries and APIs are proprietary. Refer to [this article](https://arstechnica.com/gadgets/2018/07/googles-iron-grip-on-android-controlling-open-source-by-any-means-necessary/) for more info. | ||||
|  | @ -61,4 +62,4 @@ For proprietary apps, use Yalp Store. You can use built-in credential to install | |||
| 
 | ||||
| **App**. Whatsapp, Facebook Messenger and other chatting apps | ||||
| **Issue**: A delay in receiving message | ||||
| **Info**: Enable "Google Cloud Messaging" in microG Settings and allow relevant apps to register. | ||||
| **Info**: Enable "Google Cloud Messaging" in microG Settings and allow relevant apps to register. | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ title: Recommended Android apps | |||
| date: 2019-01-07 00:00:00 | ||||
| lastUpdated: 2019-02-05 00:00:00 | ||||
| tags: | ||||
| - Android | ||||
| --- | ||||
| 
 | ||||
| Following my switch to [microG](https://microg.org/) (an open source re-implementation of Google Play), some Google Apps stopped working ({% post_link microg-google-play-replacement 'read here' %}). During my search for replacements, I discover many open source alternatives. These are the apps I'm currently using and recommend to everyone. | ||||
|  | @ -24,4 +25,4 @@ Name | Previous | Comment | |||
| [Unit Converter Ultimate](https://github.com/physphil/UnitConverterUltimate) |  | The only unit converter app that you would ever need. Supports every practically possible units including currency. | ||||
| [andOTP](https://github.com/andOTP/andOTP) | Google Authenticator | Open source and dark theme. | ||||
| [Loyalty Card Keychain](https://f-droid.org/packages/protect.card_locker/) | Google Pay | Simply to store loyalty cards with barcode. | ||||
| OsmAnd, [Maps](https://f-droid.org/en/packages/com.github.axet.maps/)/MAPS.ME, Waze, HERE WeGo | Google Maps | ~~Google Maps doesn't work with microG.~~ (Edit: Google Maps v10.6.2 works again on microG v0.2.6.13280) [OsmAnd](https://github.com/osmandapp) or [MAPS.ME](https://github.com/mapsme/omim) which are open source and utilise [OpenStreetMap](https://www.openstreetmap.org/). *Maps* is a fork of MAPS.ME without the proprietary bits and it's available on F-Droid (https://f-droid.org/en/packages/com.github.axet.maps/). | ||||
| OsmAnd, [Maps](https://f-droid.org/en/packages/com.github.axet.maps/)/MAPS.ME, Waze, HERE WeGo | Google Maps | ~~Google Maps doesn't work with microG.~~ (Edit: Google Maps v10.6.2 works again on microG v0.2.6.13280) [OsmAnd](https://github.com/osmandapp) or [MAPS.ME](https://github.com/mapsme/omim) which are open source and utilise [OpenStreetMap](https://www.openstreetmap.org/). *Maps* is a fork of MAPS.ME without the proprietary bits and it's available on F-Droid (https://f-droid.org/en/packages/com.github.axet.maps/). | ||||
|  |  | |||
|  | @ -2,6 +2,8 @@ | |||
| title: You should switch to these replacements of TrueCrypt/KeePassX/Adblock Plus | ||||
| date: 2019-01-15 00:00:00 | ||||
| tags: | ||||
| - Linux | ||||
| - Web | ||||
| --- | ||||
| 
 | ||||
| TrueCrypt and KeePassX have been discontinued while Adblock Plus has been [commercialised](https://en.wikipedia.org/wiki/Adblock_Plus#Controversy_over_ad_filtering_and_ad_whitelisting). Their replacements are [VeraCrypt](https://www.veracrypt.fr/), [KeePassXC](https://keepassxc.org/) and [uBlock Origin](https://github.com/gorhill/uBlock/) respectively. | ||||
|  | @ -36,4 +38,4 @@ Software | Replacement | Comment | |||
| --- | --- | ||||
| MySQL | [MariaDB](https://mariadb.org/) | ||||
| ownCloud | [Nextcloud](https://nextcloud.com/) | ||||
| Apache/nginx | [Caddy](https://caddyserver.com/) | It's not a direct replacement, rather a web server that prioritise secure-by-default. | ||||
| Apache/nginx | [Caddy](https://caddyserver.com/) | It's not a direct replacement, rather a web server that prioritise secure-by-default. | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| title: Running locally installed node packages | ||||
| date: 2018-10-24 00:00:00 | ||||
| tags: | ||||
| - Node | ||||
| --- | ||||
| Installing a package with `--global` introduce more trouble than convenience. Here's how to run binaries of locally installed node packages. | ||||
| 
 | ||||
|  | @ -55,4 +56,4 @@ Running `npm run test` would execute `snyk auth $SNYK_TOKEN && snyk protect && s | |||
| 
 | ||||
| So, back to the Hexo example, you *could* put its most common operations like `hexo new post`, `hexo clean`, `hexo generate` or `hexo server` into the "scripts" section, and then `npm run [name]`. | ||||
| 
 | ||||
| Source: [[1]](https://firstdoit.com/no-need-for-globals-using-npm-dependencies-in-npm-scripts-3dfb478908?gi=850cae7e854e), [[2]](http://2ality.com/2016/01/locally-installed-npm-executables.html) | ||||
| Source: [[1]](https://firstdoit.com/no-need-for-globals-using-npm-dependencies-in-npm-scripts-3dfb478908?gi=850cae7e854e), [[2]](http://2ality.com/2016/01/locally-installed-npm-executables.html) | ||||
|  |  | |||
|  | @ -3,6 +3,9 @@ title: Secure node modules with Snyk | |||
| date: 2018-10-01 00:00:00 | ||||
| lastUpdated: 2018-10-30 00:00:00 | ||||
| tags: | ||||
| - Node | ||||
| - Snyk | ||||
| - Security | ||||
| --- | ||||
| ## Intro | ||||
| > Click [here](#installation) to go straight to installation guide. | ||||
|  |  | |||
|  | @ -2,7 +2,12 @@ | |||
| title: Snyk failed to patch in Alpine docker | ||||
| date: 2018-10-31 00:00:00 | ||||
| tags: | ||||
| - Snyk | ||||
| - Linux | ||||
| - Security | ||||
| - Alpine | ||||
| --- | ||||
| 
 | ||||
| Snyk initially runs fine on Alpine, until you try to `snyk protect` to patch the modules. Turns out Synk depends on GNU version of `patch` utility. | ||||
| 
 | ||||
| <!-- more --> | ||||
|  | @ -15,4 +20,4 @@ Snyk only tells modules failed to patch, which is not helpful at all. I initiall | |||
| 
 | ||||
| The issue was only pinpointed after I ran snyk with `--debug`, which I should've used it in the first place anyway. The issue is due to BusyBox's patch doesn't support `--backup` option. Sigh, {% post_link gnu-vs-busybox-tools 'BusyBox versus GNU' %}, back at it again. | ||||
| 
 | ||||
| To install GNU's patch, simply add `apk add patch` before `npm install` in your CI config (e.g. `.gitlab-ci.yml`). The installation will automatically replace the BusyBox's patch symlink, so you don't need to. | ||||
| To install GNU's patch, simply add `apk add patch` before `npm install` in your CI config (e.g. `.gitlab-ci.yml`). The installation will automatically replace the BusyBox's patch symlink, so you don't need to. | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| title: Change spellcheck language in Ghostwriter | ||||
| date: 2018-10-14 00:00:00 | ||||
| tags: | ||||
| - Markdown | ||||
| --- | ||||
| Ghostwriter is a Markdown editor with html preview. Previously I used [StackEdit](https://stackedit.io/app), but it's web-based. | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,7 +1,8 @@ | |||
| --- | ||||
| title: Which statistical test should I use? | ||||
| date: 2019-02-09 00:00:00 | ||||
| tags: stats | ||||
| tags: | ||||
| - Stats | ||||
| --- | ||||
| 
 | ||||
| Choosing a suitable statistical test depends on the design of the experiment, notably the number and the type of variables. Following are the guides (or rather cheat sheets) that I have gathered so far. | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| title: Use Unix line endings in Unix tools | ||||
| date: 2018-11-08 00:00:00 | ||||
| tags: | ||||
| - Linux | ||||
| --- | ||||
| 
 | ||||
| Before you use any Unix tools to process some file, make sure the file only use Unix [line endings](https://en.wikipedia.org/wiki/Newline#Representation). | ||||
|  | @ -33,4 +34,4 @@ cat input | dos2unix > output | |||
| dos2unix filename | ||||
| ``` | ||||
| 
 | ||||
| If your distro includes BusyBox (e.g. Ubuntu), use `busybox dos2unix`. | ||||
| If your distro includes BusyBox (e.g. Ubuntu), use `busybox dos2unix`. | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| title: How to check validity of GitLab CI config | ||||
| date: 2018-10-25 00:00:00 | ||||
| tags: | ||||
| - GitLab | ||||
| --- | ||||
| It can be frustrating after you push the changes you made to `.gitlab-ci.yml`, only to discover it's invalid on gitlab.com. Here's how to verify/lint the config. | ||||
| 
 | ||||
|  | @ -21,4 +22,4 @@ This is what it looks like, | |||
| 
 | ||||
| {% cloudinary 20181025/lint.png %} | ||||
| 
 | ||||
| Simply paste the content of your `.gitlab-ci.yml` and 'Validate'. | ||||
| Simply paste the content of your `.gitlab-ci.yml` and 'Validate'. | ||||
|  |  | |||
|  | @ -2,6 +2,8 @@ | |||
| title: Prevent word break in array question on LimeSurvey | ||||
| date: 2018-10-31 00:00:00 | ||||
| tags: | ||||
| - Stats | ||||
| - LimeSurvey | ||||
| --- | ||||
| In array type question, when you add many answer options, some words might break into next line, especially when the word is long. | ||||
| 
 | ||||
|  | @ -47,4 +49,4 @@ Here's how to prevent word break. | |||
| 
 | ||||
| Once the word break is disabled, array answers should look like this, | ||||
| 
 | ||||
| {% cloudinary 20181031/no-break-word %} | ||||
| {% cloudinary 20181031/no-break-word %} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue