• Jekyll 3 Post Excerpts

    When I upgraded from Jekyll 2.x to 3.x, there were some minor incompatibilities, the most significant is that my code for adding “Read More” links to excepted posts on the index page broke.

    · · ·
  • Why I Gym Religiously

    Since my graduation from university, I have picked up a routine to visit the gym on a regular basis, starting from 2 times a week, to the current 5 times a week. The gradual progression took place over a span of 1.5 years as I learnt more about my body.

    · · ·
  • S3 Custom Redirection Rules

    Amazon Web Services (AWS) Simple Storage Service (S3) is a really economical way of hosting static websites. With advanced “redirection rules” support, a static blog, even with legacy permalinks, can be hosted completely on AWS S3. When configured with CloudFront and CloudFlare, full SSL support for your own custom certificates can be used.

    Prior to S3 supporting advanced redirection rules, there was only a binary option to redirect all requests to a specified hostname. While this feature is useful for handling blanket redirections, but useless if you need selective redirection like what a .htaccess file can do, it is insufficient for site that have legacy permalinks to maintain.

    Fortunately, S3’s advanced redirect rules allows you to somewhat mimic a subset of what an Apache .htaccess file can do: 1) substitute the hostname; and/or 2) substitute the path, based on 2 possible conditions: a) HTTP error codes from S3, and/or b) request path prefix, albeit with a clumsy XML syntax. With a good text-editor with XML intelligence, it’s not too challenging to hand-craft.

    Thanks to this feature, I’ve managed to set up redirect rules to map permalinks from my previous blog engine to the current permalinks layout.

    · · ·
  • Getting f.lux onto your iOS Device with Xcode

    On 11 November 2015, all hell broke lose when f.lux announced that they had come up with a solution to load their iOS version of f.lux onto iOS devices without Jailbreaking. (For the record, I’m a strong believer of not Jailbreaking iOS devices as the security mechanisms are in-place to protect your important private data.)

    This is made possible due to a policy change by Apple, announced in WWDC 2015, to allow personal apps developed and compiled on Xcode to be loaded on and run on personal iOS devices, without needing an iOS Developer Program membership, bypassing the App Store. This thus becomes a technique for which unapproved apps can be distributed (in source form) and built by adventurous users and loaded onto their own iOS devices. Apps “sideloaded” with this method have a lifespan of 90 days, after which, they require to be resigned and reloaded onto the iOS devices before they can continue functioning.

    In my opinion, this is a great way for OpenSource applications to enter a user’s device, without having to go through the hassle of the AppStore process, where there may be conflicts with the source code license.

    Unfortunately, as f.lux distributed a skeletal Xcode project with the bulk of the application logic hidden within a compiled binary, Apple contacted the f.lux developers to remove the download as it violated the Developer Program Agreement.

    My suspicions was that they were distributing a binary, rather than unobfuscated source code, and that is potentially risky for users. Who knows, the binary blob could be secretly uploading personal data and nobody would know better. I believe that it is for this reason that prompted Apple to respond so quickly. After all, GBA4IOS is still available and in source form.

    Thankfully, there’s another unaffiliated alternative, GoodNight. It nicely mimics most of f.lux’s features, without the annoying bugs stuck in the last posted version of f.lux before it was taken down.

    · · ·