[email protected]:~$

  • Typescript on steroids: Implementing Promisify

    Task Asynchronous programming is very common in the Javascript world because of the event-driven nature of tasks. One of the most common pattern used is that of the callbacks (Continuation-passing style paradigm). People (including myself) prefer using the async/await pattern instead. JS now has in-built support for async/await and the...

  • Game Of Thrones Visualizations With Neo4j

    Task Given a dataset (game-of-thrones/characters.json at master · jeffreylancaster/game-of-thrones · GitHub), present it in a meaningful way. Source code React-Typescript-Visjs-Sagas-antd tocttou / got-visual Demo No live demo available at the moment. Neo4j refuses to run properly on a 512MB RAM server and I cannot afford to give it more at...

  • Smart Image Resizing Using Seam Carving

    Seam carving is a fascinating technique to scale up/down an image (or a video frame). Demo Caution: It is slow. I will optimize it to work in real-time when I get time to work on it again. [dead!] http://seam.ashishchaudhary.in:8080/ The code is available at: tocttou/smartresizing The algorithm implementation is available...

  • Better Error Handling In Kotlin With Either Type

    Note: This is not an authoritative article on how to handle errors in Kotlin/Java, but it is accurate. This is something that I wanted to try out for a long time. I would suggest you to look at Try from Arrow lib after reading this blog post. I use the...

  • Implementing C-Style For-Loops In Kotlin

    Kotlin does not have C-style for-loops. This is fine because I prefer using the idiomatic for-loops (built to use iterators) anyway. But there is a big problem: Kotlin does not allow dynamic limiting conditions in its for-loops (See this thread). This can sometimes get very annoying. To achieve the same...