Skip to main content



git unhg

·2 mins
I should tidy up my $HOME/bin directory, some of actually useful scripts and configurations were scattered here and there. Anyway, I’ve been using this one script when I work with shreds: #! /usr/bin/env bash interim_branch=default rollgit() { [[ $# -ne 1 ]] && { echo 'wrong number of arguments, USAGE:' printf "\tgit roll <branch>\n" exit 1 } git rebase $1 && git checkout $1 && git rebase $interim_branch && git branch -D $interim_branch } unhg() { [[ $# -ne 2 ]] && { echo 'wrong number of arguments, USAGE:' printf "\tgit unhg <remote> <branch>\n" exit 1 } git-hg fetch $1 && git checkout -b $interim_branch FETCH_HEAD && git roll $2 } self=$(basename $0) case $self in git-unhg) unhg $* ;; git-roll) rollgit $* ;; *) echo 'Invalid command specified' ;; esac Shreds source revisions is actually tracked on mercurial.

shreds: on the javascript

·5 mins

Currently working on the re-implementation of shreds client-side and move to es6 while I’m on it. Figured out I might as well write some note on its current implementation, annotating the caveats or something.

Anyway, the main concept was to be able to add new feature (to the app) quickly, while maintaining the whole (supposed to be modular) structure. The whole app is started with this main (singleton) object called shreds.

This was arrived yesterday

·1 min
Adding this to my mcu list, an ARM Cortex M4 development board series from ST, powered by STM32F401. Throwed this in when I purchased ESP8266 from seeedstudio. Cheap-cost and fast delivery inspite of shipped via registered mail. And I still waiting for another 4 packages queued at this month.

on aokana

·1 min
Currently browsing my image storage and just saw this: Reminded myself that rikarika~ can be manipulative sometimes… that’s just adorable. Also if I recall correctly, I took roughly 14-months to finish imouto-route on imaimo, the first route I finished for Sprite’s previous game (under fairys name). Can’t expect to finish this aokana sometime soon either.

First Post!

·1 min
Oh hey, first post in 2015. This week has been really intense, while it’s not stressful. I was kinda expecting more relaxing and peaceful year’s end I guess.


Go 1.4, setuid and linux's capabilities feature

·2 mins
This first came to me when I realized my newly compiled socks5dns spew error failing at dropping user privilege, since I run it on an arm machine I thought it was specific error for arm-based linux only. But then I checked this on an x86 and it still behave the same, after looking into some source codes apparently Go’s syscall.Setuid is not supported in linux. But hey, it was worked before, what the fuss?

migrating image assets

·1 min

Still in progress migrating all images assets to some dedicated storage.

I find that managing assets for this blog, manually copy and arranging all the images to the source folder is a bit a downer. So then I use imgur since I can just setup shareX to directly upload images / automatically upload screenshots, it was good enough until I found out that some of our isp actually blocking access to imgur. Since I’m not into dropbox, and is not an option since it removes images after some months of inactivities, I decide to setup my own storage service, nginx-based webdav. Now probably it’s just a matter of time until someone ownd my server… welp ._.

In another note, here be some mashiro-cat (image not related but serves as a good sample):

msp430 - (still on the) basics

·2 mins
I was incorrect on the last post when I said our blinking fizzbuzz would need to step down to the LPM1 in order to use the watchdog timer, other than using external crystal. The watchdog timer, like I’ve said on the last post, can be sourced from a low-powered internal oscillator (VLO) which actually still active at LPM3. // ... // Setup Watchdog timer with ACLK // sourced from VLO (LFXT1S_2) at ~12kHz // so it will trigger interrupt within // interval: // (32/12) * 250ms) ~= ~670ms BCSCTL1 |= DIVA_0; BCSCTL3 |= LFXT1S_2; // Disable watchdog for now WDTCTL = WDTPW | WDTHOLD; // .