Product Sketches

Cook me Feedback To have a better food experience with your cook, you have to constantly tell him about your likes and dislikes. Sometimes he/she might cook you a fantastic dinner (something new) and never know if you liked. Whatsapp is good for chatting but not remembering, also your food habits are not structured and easily accessible within whatsapp and other note taking platforms. Also, privacy. This app will give food recommendations and feedback to cook considering small repetitive things so that they know what works, and what doesn’t.

Sketch: Pick-a-Book

This is an idea for an utility application for avid book readers, favoring mobile platform. Often times in a library when we are searching for a book, we have to scan and go through each and every book’s title or author. This exercise is tough and draining. The pain goes multi fold when you are looking for multiple books or authors. Now imagine you have an app which scans and reads every book names, while you hold the mobile camera and stroll in the library, and the app flickers the screen to alert you that it found one of the books you were looking for.

Thought Box

Quotes “Somewhere in the process of maturing into adults, most humans misunderstood comfort for happiness.” Alice came to a fork in the road. ‘Which road do I take?’ she asked. 'Where do you want to go?’ responded the Cheshire Cat. 'I don’t know,’ Alice answered. 'Then,’ said the Cat, ‘it doesn’t matter.” – Lewis Carroll, Alice in Wonderland. Well, once there was only dark.

Rust: Closures and Threads

Closures Closures is a function which has access to variables in the same scope in which it was defined. Annotating types in closure definition is not required, types can be inferred by the compiler. Closures in Threads When using closure, variables defined in the same scope as the closure, are accessible inside the closure. But the same accessibility changes when closure runs in threads. Lets look at examples below. Here:

Nix Recipe: Setup Python

This is a nix recipe for building and running python in a virtual nix environment. Create shell.nix with following: let nixpkgs = import (builtins.fetchTarball https://github.com/NixOS/nixpkgs/archive/20.03.tar.gz) { overlays = []; config = {}; }; in with nixpkgs; stdenv.mkDerivation { name = "python-env"; nativeBuildInputs = [ zsh vim python37 python37Packages.pip python37Packages.virtualenv ]; # ENV variables PROJDIR = "${toString ./.}"; # Post Shell Hook shellHook = '' echo "Using ${python37.name}" [ !

Learning Elm: 2048 game in Elm

Elm is a frontend programming language optimised for developer’s happiness. Elm basics are very straightforward, which is just the Elm Architecture. The Elm Architecture Model — the state of your application View — a way to turn your state into HTML Update — a way to update your state based on messages You can read more about Elm here. Here, we will construct the famous game: 2048 in Elm.

Rust: Smart Pointers

This is in DRAFT mode. Pointer is a general concept in Computer Programming for a variable that stores memory address. In Rust, generally we use references to access the value stored at a memory address. References are simple pointers, that work within the limits of Rust’s ownership and borrowing concept. Lets look at other types which go beyond these limits. Note: These are quick short notes, if you want to look in deep check out rustlang docs.

Nix Recipe: Setup Nodejs

This is a nix recipe for building and running nodejs in a virtual nix environment. In your project folder, create a new file nodejs.nix and add following: { nixpkgs ? import <nixpkgs> {}, version, sha256 }: let inherit (nixpkgs) python37 utillinux stdenv autoPatchelfHook fetchurl binutils-unwrapped patchelf xcbuild; inherit (stdenv) mkDerivation; in mkDerivation { inherit version; name = "nodejs-${version}"; src = fetchurl { url = "https://nodejs.org/dist/v${version}/node-v${version}${if stdenv.isDarwin then "-darwin-x64" else "-linux-x64"}.

Rust: Variables in Memory

In every programming language, understanding how variables are stored in memory is a crucial point to make your program fast and efficient. Lets look at how Rust does it. Note: These are quick short notes, if you want to look in deep check out rustlang docs. Ownership In programming languages, either a garbage collector is used which will cleanup the memory used by the unused variables or the memory is explicitly freed by the programmer in the code.

Nix Recipe: Setup Rust

This is a nix recipe for building and running rust in a virtual nix environment. Create a file rust-toolchain with following: 1.43.0 We are specifying rust version to install, here using 1.43.0. If using heroku, rust-toolchain file will determine which version will be used to build the application. Create shell.nix with following: let # Mozilla Overlay moz_overlay = import ( builtins.fetchTarball "https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz" ); nixpkgs = import (builtins.