Skip to content

Instantly share code, notes, and snippets.

Avatar

Ravindranath Akila ravindranathakila

View GitHub Profile
@ravindranathakila
ravindranathakila / clean_code.md
Created Feb 6, 2021 — forked from wojteklu/clean_code.md
Summary of 'Clean code' by Robert C. Martin
View clean_code.md

Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.


General rules

  1. Follow standard conventions.
  2. Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
  3. Boy scout rule. Leave the campground cleaner than you found it.
  4. Always find root cause. Always look for the root cause of a problem.

Design rules

View Dockerfile
FROM openjdk:14-alpine
ARG D
ENV D=$D
ENV P=8080
ENV PROFILE=p
ADD build/distributions/$D.tar /opt/run/
EXPOSE $P
ENTRYPOINT /opt/run/$D/bin/$D
@ravindranathakila
ravindranathakila / balance.go
Created Oct 1, 2019 — forked from darkhelmet/balance.go
Simple TCP load balancer in Go.
View balance.go
package main
import (
"flag"
"io"
"log"
"net"
"strings"
)
View restart_cdh_services.sh
#! /usr/bin/env bash
DAEMONS="${DAEMONS} \
zookeeper-server \
hadoop-hdfs-datanode \
hadoop-hdfs-journalnode \
hadoop-hdfs-namenode \
hadoop-hdfs-secondarynamenode \
hadoop-httpfs \
hadoop-mapreduce-historyserver \
@ravindranathakila
ravindranathakila / run_docker_cloudera_quickstart.sh
Last active Feb 6, 2017
# Runs Cloudera Quick Start image with commonly used Web UI ports. Perquisites: Cloudera Quickstart Image already pulled as cloudera
View run_docker_cloudera_quickstart.sh
#!/usr/bin/env bash
_usage(){
grep "^[^_].\+(){$" $0 | while read line; do
local cmd=$(echo "$line" | sed "s/(){//g")
local info=$(grep -C0 -A0 -B1 "$cmd(){" $0 | sed "N;s/\n.*//g" )
printf " $0 %-20s %-40s\n" "$cmd" "$info" | grep "#"
done; echo "";
}
# Runs Cloudera Quick Start image with commonly used Web UI ports. Perquisites: Cloudera Quickstart Image already pulled as cloudera
@ravindranathakila
ravindranathakila / pedantically_commented_playbook.yml
Created Oct 17, 2016 — forked from marktheunissen/pedantically_commented_playbook.yml
Insanely complete Ansible playbook, showing off all the options
View pedantically_commented_playbook.yml
---
# ^^^ YAML documents must begin with the document separator "---"
#
#### Example docblock, I like to put a descriptive comment at the top of my
#### playbooks.
#
# Overview: Playbook to bootstrap a new host for configuration management.
# Applies to: production
# Description:
# Ensures that a host is configured for management with Ansible.
View Main.java
package example;
import java.util.Properties;
import cascading.flow.Flow;
import cascading.flow.FlowDef;
import cascading.flow.hadoop.HadoopFlowConnector;
import cascading.pipe.CoGroup;
import cascading.pipe.Pipe;
import cascading.pipe.assembly.CountBy;
View introrx.md

The introduction to Reactive Programming you've been missing

(by @andrestaltz)

So you're curious in learning this new thing called Reactive Programming, particularly its variant comprising of Rx, Bacon.js, RAC, and others.

Learning it is hard, even harder by the lack of good material. When I started, I tried looking for tutorials. I found only a handful of practical guides, but they just scratched the surface and never tackled the challenge of building the whole architecture around it. Library documentations often don't help when you're trying to understand some function. I mean, honestly, look at this:

Rx.Observable.prototype.flatMapLatest(selector, [thisArg])

Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence.

View gist:bdc0b9269d78512a3a3e
//mapper
package com.tistory.devyongsik.hadoop.mapre;
import java.io.IOException;
import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;