Skip to content

Instantly share code, notes, and snippets.

View ekampf's full-sized avatar

Eran Kampf ekampf

View GitHub Profile
@ekampf
ekampf / gist:21455ffc416ba3045448ed4874d4ec9b
Last active February 27, 2023 17:22
Block Taboola by changing /etc/hosts
# Block Taboola
0.0.0.0 popup.taboola.com
0.0.0.0 www.popup.taboola.com
0.0.0.0 taboola.com
0.0.0.0 www.taboola.com
0.0.0.0 cdn.taboolasyndication.com
0.0.0.0 taboolasyndication.com
0.0.0.0 www.taboolasyndication.com
0.0.0.0 www.cdn.taboolasyndication.com
0.0.0.0 trc.taboola.com
@ekampf
ekampf / mem.c
Last active November 1, 2022 17:07
Eran's Interview Question
// Implement a virtual memory manager that takes a large contiguous block of memory and manages allocations
// and deallocations on it.
// The entire buffer needs to be available for allocation. You can use whatever extra memory you need to manage it.
// You do need to consider the case of fragmentation.
//
// Example test case:
// - initialize a buffer of 5 chars: -----
// - allocate 5 blocks of 1 char: XXXXX
// - free the 2nd and 4th: X-X-X
// - Can you now call Alloc(2) ? What would you need to change in the interface to be able to do so?
"""
Implement a cache class that stores given item. The cache is limited to a given `size` and will discard the
least recently used item if it needs the space.
Clearly document design choices, algorithm and possible optimizations.
While we require you to implement one memory allocation algorithm,
also document future looking design considerations.
Implementation Notes:
* While the interface below is written in Python, feel free to implement the Cache in the language of your choosing.
@ekampf
ekampf / pypossibly.py
Created June 11, 2014 10:46
Python option patrern (Maybe Monad)
import logging
import sys
class Maybe(object):
pass
class Nothing(Maybe):
def is_some(self):
return False
@ekampf
ekampf / gist:772597
Created January 10, 2011 09:56
Show the current Git branch in the command line prompt
function parse_git_branch () {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
RED="\[\033[0;31m\]"
YELLOW="\[\033[0;33m\]"
GREEN="\[\033[0;32m\]"
NO_COLOUR="\[\033[0m\]"
PS1="$GREEN\u@machine$NO_COLOUR:\w$YELLOW\$(parse_git_branch)$NO_COLOUR\$ "

Galaxies Count

Problem Description

Given a 2d grid of '1's (space clusters with stars) and '0's (dark space clusters without any stars), count the number of galaxies on the grid. An Galaxy is a group a space clusters containing stars, surrounded by dark clusters (no starts) and connected horizontally or vertically.

Examples:

@ekampf
ekampf / setup_kafka.sh
Last active November 29, 2017 17:41
Setup Kafka (0.8.0) on OSX
brew install sbt
cd /tmp
wget http://apache.spd.co.il/kafka/0.8.0/kafka_2.8.0-0.8.0.tar.gz
tar -zxvf kafka_2.8.0-0.8.0.tar.gz -C /usr/local/
cd /usr/local/kafka_2.8.0-0.8.0
sbt update
sbt package
@ekampf
ekampf / big_query_dsl.py
Last active April 28, 2017 00:49
Choosing an Analytics Schema Scales
__author__ = 'ekampf'
class FieldTypes(object):
integer = 'INTEGER'
float = 'FLOAT'
string = 'STRING'
record = 'RECORD'
ts = 'TIMESTAMP'
class FieldMode(object):
@ekampf
ekampf / test
Last active April 21, 2017 18:49
{
"streams": {
"nasa": {
"input-path": "/HBOHD_HD_TVE_15152_0_5472624192174078163/format-hls-track-muxed-bandwidth-3101600-repid-root_audio_video1.m3u8",
"servers": [
"http://odol-atsec-sfb-43.linear-tve-pil.top.comcast.net"
]
}
},
"actions": [
@ekampf
ekampf / normalize.py
Last active November 20, 2016 09:02
Normalize values by std deviation
def zscore(numbers_list):
numbers = numpy.array(numbers_list)
return (numbers - numbers.mean()) / numbers.std()