Skip to content

Instantly share code, notes, and snippets.

Avatar

Shams Madhani smahs

  • Eindhoven, Netherlands
View GitHub Profile
@smahs
smahs / merge_sort.py
Created Jun 28, 2018
Merge Sort - the Pythonic way
View merge_sort.py
def sort(l):
if len(l) <= 1:
return l
mid = len(l) // 2
return merge(sort(l[:mid]), sort(l[mid:]))
def merge(l, r):
out = []
while l and r:
if l[0] <= r[0]:
@smahs
smahs / dj_rest.py
Last active Mar 28, 2016
Micro REST Framework for Django: A Prototype
View dj_rest.py
from django.views.generic import View
from django.http import (
QueryDict, HttpResponse, HttpResponseBadRequest,
HttpResponseNotFound, HttpResponseNotAllowed,
)
from django.core.serializers.json import DjangoJSONEncoder
from django.core.exceptions import (
ObjectDoesNotExist, ValidationError,
)
from django.db import transaction
@smahs
smahs / django_login_wrapper.py
Last active Sep 8, 2015
Modified login_required middleware for performing custom auth tasks in django.
View django_login_wrapper.py
from django.http import HttpResponse
from json import dumps
def errorify(message):
return HttpResponse(dumps({
'error': message
}), content_type = 'application/json')
@smahs
smahs / db_query_stringify.go
Created Aug 9, 2015
Returns SQL select query data as [][]string, like dynamic languages. Time and memory complexities are, of course, not optimal.
View db_query_stringify.go
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
// Connection pool as a singleton
var dbConn *sql.DB
/* Returns an open connection to the database
@smahs
smahs / tetris.py
Created Aug 9, 2015
A full and text only, yet very much playable, version of Tetris written in Python without any dependencies. No curses or ncurses!
View tetris.py
from random import choice
from copy import deepcopy
from sys import exit
# Initial shape matrices for the five Tetrominos
shapes = [[[0, 0, 0, 0], [1, 1, 1, 1], [0, 0, 0, 0], [0, 0, 0, 0]],
[[1, 0, 0], [1, 0, 0], [1, 1, 0]],
[[0, 0, 1], [0, 0, 1], [0, 1, 1]],
[[0, 0, 1], [0, 1, 1], [0, 1, 0]], [[1, 1], [1, 1]]]
@smahs
smahs / map_n_merge.go
Last active Aug 29, 2015
Generate a hashmap from a struct (without reflection magic), and then merge it with another map and return a merged json.
View map_n_merge.go
/* The last I checked, this gist can be run at:
http://play.golang.org/p/5keNQZLqfR
*/
package main
import (
"fmt"
"encoding/json"
)
@smahs
smahs / gist:5637eef8fe4d6593b26f
Created Mar 23, 2015
Emulating try-catch in #golang with multi-return statements
View gist:5637eef8fe4d6593b26f
var hids [][]string
db, err := sql.Open("postgres", "user=myuser dbname=mydb sslmode=disable")
if err != nil {
log.Fatal(err)
os.Exit(1)
} else {
defer db.Close()
rows, err := db.Query(my_query)
if err != nil {
log.Println(err)
View gist:7133657
# This fork removes the request parameter for use with Flask framework
class JsonSerializableMixin(object):
def __json__(self):
"""
Converts all the properties of the object into a dict for use in json.
You can define the following in your class
_json_eager_load :
@smahs
smahs / mfrootdaemon.patch
Created Sep 22, 2010
Patch for Mint-FM2 menu sub-system to enable tuxonice support on Arch Linux
View mfrootdaemon.patch
diff -c /etc/rc.d/mfmrootdaemon /etc/rc.d/mfmrootdaemon.new
*** /etc/rc.d/mfmrootdaemon 2010-09-21 20:52:50.000000000 +0200
--- /etc/rc.d/mfmrootdaemon.new 2010-09-22 21:27:34.382440785 +0200
***************
*** 95,101 ****
then
rm -rf $CIAODIR/*
# aplay /usr/share/sounds/mintfb-logout.wav &
! pm-suspend
fi