Skip to content

Instantly share code, notes, and snippets.

Hiring developers in Oakland and the Bay area!

Eran Sandler erans

Hiring developers in Oakland and the Bay area!
View GitHub Profile
erans / encrypt_decrypt_example.js
Last active Sep 13, 2022
Example of encryption and decryption in node.js
View encrypt_decrypt_example.js
var crypto = require("crypto")
function encrypt(key, data) {
var cipher = crypto.createCipher('aes-256-cbc', key);
var crypted = cipher.update(data, 'utf-8', 'hex');
crypted +='hex');
return crypted;
erans /
Created May 20, 2011
Get Latitude and Longitude from EXIF using PIL
from PIL import Image
from PIL.ExifTags import TAGS, GPSTAGS
def get_exif_data(image):
"""Returns a dictionary from the exif data of an PIL Image item. Also converts the GPS Tags"""
exif_data = {}
info = image._getexif()
if info:
for tag, value in info.items():
decoded = TAGS.get(tag, tag)
erans / main.go
Last active Jun 23, 2021
Go Example: Google CloudSQL with CloudSQL Proxy and GORM
View main.go
package main
import (
_ "database/sql"
_ ""
// You can read more in this post:
func main() {
erans /
Created Jul 17, 2011
Check if an Email address is Gmail or Google Apps for your domain
import sys
import re
import dns.resolver # Requires dnspython
email_host_regex = re.compile(".*@(.*)$")
gmail_servers_regex = re.compile("(|$", re.IGNORECASE)
def is_gmail(email):
""" Returns True if the supplied Email address is a Email or is a Google Apps for your domain - hosted Gmail address
Checks are performed by checking the DNS MX records """
erans /
Last active Apr 25, 2020
Clone S3 Bucket
import argparse
import time
from boto.s3.connection import S3Connection
from boto.exception import S3ResponseError
def run(args):
s3_connection = S3Connection(args.aws_access_key, args.aws_secret_access_key)
source_bucket = s3_connection.get_bucket(args.source_bucket)
destination_bucket = None
erans /
Last active Oct 7, 2019
MongoDB ReplicaSet Backup Script on Google Compute Engine and Google Cloud Storage
# Path to boto config file, needed by gsutils
# Path in which to create the backup (will get cleaned later)
# DB name
# Google Cloud Storage Bucket Name
erans / mem.c
Created Oct 14, 2018 — forked from ekampf/mem.c
Eran's Interview Question
View mem.c
// Implement a 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.
// Clearly document design choices, algorithm and possible optimizations.
// While we require you to implement one memory allocation algorithm,
// also document future looking design considerations.
// There are many ways to implement this memory manager. It is important for us to know why you implemented it the way you did,
// whats the pros and cons to your implementation, etc.

Keybase proof

I hereby claim:

  • I am erans on github.
  • I am erans ( on keybase.
  • I have a public key whose fingerprint is 2DBE C674 27AD 6FD9 209F 0C1D 2403 18B5 90D1 4A2F

To claim this, I am signing this object:

erans / json-unmarshal-test.go
Created Jul 18, 2016
Unmarshaling JSON text with a long integer number to Struct with field of type interface{}
View json-unmarshal-test.go
package main
import (
type container struct {
Name string
Value interface{}
erans / UIImage+Resize.m
Created Nov 7, 2011
UIImage+Resize.m Fix for Rotation / Orientation on iOS 5
View UIImage+Resize.m
- (UIImage *)resizedImage:(CGSize)newSize interpolationQuality:(CGInterpolationQuality)quality {
BOOL drawTransposed;
CGAffineTransform transform = CGAffineTransformIdentity;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0) {
// Apprently in iOS 5 the image is already correctly rotated, so we don't need to rotate it manually
drawTransposed = NO;
} else {
switch (self.imageOrientation) {
case UIImageOrientationLeft: