This article was originally posted at https://blog.rajivabraham.com/posts/job-search-2020

Purpose.

This article is about sharing my job search experience in case it’s interesting or useful to anyone.

About me

I had decided to come back to a full time job after more than a year at my startup 15Rock. I have been developing professionally for 12 years now. Though twelve years is a big number, opportunities and circumstances, made me a generalist instead of a specialist i.e. I had maximum two years experience in any technology that I had worked on. …


This article was originally posted at https://blog.rajivabraham.com/posts/datascript-python

Purpose.

This blog article will:

  • give a brief introduction to a new way of managing state on the browser by leveraging a library called DataScript.
  • Though DataScript is a ClojureScript/JavaScript library, we will learn how to call it using Brython, a Python implementation that runs on the browser.
  • sneak in a tutorial on mercylog-datascript which is a query composer library for DataScript.

DataScript(and Datalog)

How do you manage application state in the browser? I’m new to frontend development so I’m sure there are many solutions out there which I don’t know about. But let me ask the question from a different perspective. How would a backend developer manage state? She uses a database. She writes SQL queries. …


This article was originally posted at https://blog.rajivabraham.com/posts/brython

Purpose.

This blog article will give a brief introduction to using Brython, a Python implementation for front-end development on the browser.

The entire project is here.

Introduction

Jealous of JavaScript programmers, a cabal of Python programmers secretly met to discuss the future of Python in this apocalyptic world. JavaScript was everywhere and eating Python’s lunch. With Node.js, JavaScript had invaded Python territory and ended its dominance as everyone’s favorite language after Ruby (not very dominant then, is it? Mr. Author). It was time to make a thrust into the heart of JavaScript land: The Browser.

Don’t forget your history(and future)

The cabal were not the only gentlemen concerned with this dilemma. The author of Transcrypt believed in poison and espionage. He decided to write a Python compiler which compiled to JavaScript code. Like good poison, there was no trace of Python. It looked very promising. But the author of this boring post thought he found a bug but later found out it wasn’t so. …


TLDR:

Use data structures that don’t change once created(using Pyrsistent) to make it easy to understand and maintain code.

Purpose.

When a data structure(e.g. dict) once created, does not change, it allows us to read code with more confidence.

For e.g. Let’s say you have a customer variable in your code and you are tracking it's value by reading the code. What do you reason is the value of customer below?

customer = dict(name="Rajiv", age=40)
some_function(customer)
print(customer)

In the above code, we can’t say. In Python, for most default data structures like dict, it is possible that some_function could have changed the value of customer. So, we have to dig in and read the code of some_function to be fully sure. …


TLDR: 
Datalog is like SQL + Recursion. It's derivatives have reduced the code base by 50% or more.

Repo
The repo for this tutorial is here.

Datalog
Today, I would like to explore a constrained language called Datalog. It's a constrained form of Prolog and may not be as expressive as C++ or Python. But it's derivatives have been known to reduce the numbers of lines of code down by 50% or more(Overlog, Yedalog).

Let's get started:


Datalog has a *minimalist syntax* which I love. Let's take an example.
Suppose our data is about fathers and sons, mothers and daughters. If we had an excel sheet, we would enter the data like:

Father Son
Aks Bob
Bob Cad
Yan Zer

and another excel sheet for mothers and daughters:

```
Mother Daughter
Mary Marla
Marla Kay
Jane Zanu
```

In Datalog, we express the same data as(together):

```
father('Aks', 'Bob')
father('Bob', 'Cad')
father('Yan', 'Zer')
mother('Mary', 'Marla')
mother('Marla', 'Kay')
mother('Jane', 'Zanu')
```
Here we are trying to say Aks is the father of 'Bob' and 'Bob' is the father of 'Cad'. The datum father('Aks', 'Bob') is called a _**fact**_ i.e. it is true.

So Datalog can be used to express data. Not very interesting so far but a building block. These facts above can also be viewed as the existing state of the system, like we store state in files, or databases.

But that's not enough. What about code? For Datalog, code are specified as _*rules*_ to be applied declaratively.

Let's say our program needs to find out who's a grandfather. We could write a rule like:
'A person X is the grandfather of Z if X is the father of Y and Y is the father of Z'. …


TLDR: I wrote this in a fiction format for fun. The actual code is in the repo. Also, I’m new to FP so this is newbie code. I can refactor it to be elegant but I want to keep this simple for beginners.

Twitter Storm

Kim Kardashian felt uneasy as soon as she woke up. She had just used the r-word yesterday and suffered a huge backlash. She felt vulnerable about her twitter following and needed to be reassured. She had to do something different. Yes, she could just type her name in the Twitter App and see what people were saying about her. But she had secretaries for that. No, she had to do what no other celeb had done before. …


TL;DR

Thampi takes care of the DevOps work for machine learning prediction systems. Check it out!

Motivation

Data scientists(most of us, actually) want to focus on training their models. We just want the banana but find an entire gorilla holding on to it. DevOps. Our models are useless unless they are deployed to production. Building prediction servers is hard and often fledgling data science teams(mostly fledgling data science person) have to grapple with so many difficult questions.

  • Cloud or On Premise?
  • How to use Docker?
  • How do I create a web server?
  • What about scaling and server failures?
  • I use Mac but we have to create the server in Linux? …


Purpose

This post shows you how to run PureScript 0.12 on AWS Lambda, using Express on the Serverless platform.

Setup

The final output of this article is also a repo

Prerequisites.

You should have nodejs (i.e. nvm, npm) setup on your machine, preferably 8.10. AWS Lambda uses 8.10. I’m new to nodejs land but I’m guessing that higher minor versions should be ok.

Software Setup

npm install -g purescript
npm install -g pulp bower
npm install -g serverless

AWS Credentials

If you haven’t already, generate an AWS key and secret. This user must have AdministratorAccess permissions. Here are the docs or a slightly outdated video. …


Author’s Note: I was bored to write a technical description of Odo. So I wrote a story and weaved it in. I warn you. This is more fiction than tech :)

Joanna’s hands trembled as she translated what she had just heard “..By Resolution 2291, the United Nations will switch all forms of data communication to Odo. Russia, China support the resolution backed by The European Union. The United States of America, Azerbaijan reject the proposal. The first item on the agenda..”. Her hands continued typing but all she could see right now was the color draining of Chang’s face.

Poor Chang… Leaving his small hometown in China to work as a translator in Geneva was already a big cultural shock. She almost forgot what she had just heard when she fondly remembered how Chang, two months ago, had nervously stammered inviting her home for drinks. On the couch that night, it was she who had made the first move. …


Author’s Note: I initially wrote this story to weave in the technical merits of Airflow. However, I have moved on to other things and I don’t have the time to weave it in :). I’m just going to post the story for infamy. Please check out Airflow: https://airflow.apache.org/

PRELUDE:

“So….. Tabernak(tabernacle) is a swear word?” asked Midhun, a bit puzzled by French Quebec culture.

“And so is calisse(chalice)”, replied Toni as she switched abruptly, “Delta 320, your cruise altitude is 12000 metres, North West, continue on course for 3 hours”

“In Quebec, during the 1970’s, Catholicism was more taboo than sex. So sacred words became swear words”, continued Toni. Midhun smiled. In India, where Toni and he came from, sex was taboo. …

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store