Skip to content

Instantly share code, notes, and snippets.

View filipkral's full-sized avatar

Filip Kral filipkral

View GitHub Profile
@filipkral
filipkral / reduce_repo_size.sh
Last active October 10, 2017 19:05
Reduce repository size after you accidentally committed a large file.
# given that you accidentally added a large file to git branch feature/adding, then removed it in another commit, you can reduce the repo size by the following commands
# for more details and alternatives see https://confluence.atlassian.com/bitbucket/reduce-repository-size-321848262.html
git checkout develop
git merge --squash feature/adding
git branch -D feature/adding
#git reflog expire --expire=now --all
git gc --prune=now
git commit -m "Merged"
@filipkral
filipkral / logging_to_sqlite_with_multiprocessing.py
Created October 26, 2016 12:46
Logging to SQLite with multiprocessing in Python
import sqlite3
from contextlib import closing
import multiprocessing
def prepare_db(db, tbl, col):
sql = "CREATE TABLE {0} ({1} text);".format(tbl, col)
with closing(sqlite3.connect(db)) as cnn:
cursor = cnn.cursor()
cursor.execute('DROP TABLE IF EXISTS {0};'.format(tbl))
cursor.execute(sql)
@filipkral
filipkral / read_and_write_spatialite.py
Created March 15, 2016 10:59
Read and Write Spatialite with Python
from osgeo import ogr, osr
def read_splt(db):
drvr = ogr.GetDriverByName('SQLite')
ds = drvr.Open(db, 0)
layer=ds.GetLayer('pts')
for feature in layer:
print(feature)
break
@filipkral
filipkral / importing_osgeo_to_pyscripter.py
Created December 11, 2015 01:46
Importing OSGeo4W osgeo Python package to Pyscripter on Windows
import sys, os
sys.path.insert(0, r'C:\OSGeo4W\apps\Python27\Lib\site-packages')
#sys.path.insert(0, r'C:\OSGeo4W\lib')
sys.path.insert(0, r'C:\OSGeo4W\bin')
#os.environ['PATH'] = os.environ['PATH'] + ';' + r'C:\OSGeo4W\lib'
os.environ['PATH'] = os.environ['PATH'] + ';' + r'C:\OSGeo4W\bin'
@filipkral
filipkral / mini-esri-leaflet.html
Last active September 11, 2015 21:58
Minimal Leaflet Map
<!DOCTYPE html>
<html>
<head>
<title>Minimal Leaflet</title>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.5/leaflet.css" />
<style>
#map{
width: 150px;
height:250px;
}
@filipkral
filipkral / snowfall_trivial.r
Last active March 5, 2016 12:09
Trivial example for parallel coputation using R snowfall package
# A trivial example for parallel computation using R snowfall package
require(snowfall)
sfInit(paralell=TRUE, cpus=2)
fn <- function(x){
return(x*x)
}
d <- 1:1000
result <- sfLapply(d, fn)
@filipkral
filipkral / convert_sp_geojson.r
Last active May 17, 2021 15:21
Convert between geojson and sp spatial objects in R
# Convert between geojson and sp spatial objects in R
require(rgdal)
# https://stat.duke.edu/~cr173/Sta523_Fa14/spatial_data.html
s <- '{ "type": "MultiPolygon", "coordinates": [
[ [[40, 40], [20, 45], [45, 30], [40, 40]] ],
[ [[20, 35], [10, 30], [10, 10], [30, 5], [45, 20], [20, 35]],
[[30, 20], [20, 15], [20, 25], [30, 20]]
]
]}'
@filipkral
filipkral / GitBasics
Created November 1, 2014 19:04
Basics of git
# https://confluence.atlassian.com/display/STASH/Basic+Git+commands
# simplest example
git clone https://github.com/some/repo repo
cd repo
# make changes to files
git commit -a -m "Commit message"
# you can check status by `git status`
git push origin master
@filipkral
filipkral / InsertSheetForEachSelectedCell
Created October 16, 2014 16:56
Insert Excel Worksheet for each selected cell
Sub InsertSheetForEachSelectedCell()
'Insert a sheet for each cell in a selected range
'Each new sheet will be called prefix + cell value + suffix
'User is prompted to enter prefix and suffix when this macro is run
'Will fail miserably if sheet with that name already exists!
'Typical use case: select A1:A10 with values 1,2,3,...,10 then run this macro.
Dim prefix As String
Dim suffix As String
prefix = InputBox("Enter Sheet name prefix", "SheetPrefix", "")
@filipkral
filipkral / load_jqeury.js
Last active August 29, 2015 14:04
Function to load jQuery in a browser console or alike.
// self-executing oneliner to paste it to console
(function load_jQuery(){var jq = document.createElement('script'); jq.src = "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"; document.getElementsByTagName('head')[0].appendChild(jq); setTimeout(function(){ jQuery.noConflict(); console.log('jQuery should be available as jQuery now.'); }, 3000); })();
// the above function in readable form
function load_jQuery(){
// Load jQuery
// based on http://stackoverflow.com/questions/7474354/include-jquery-in-the-javascript-console
var jq = document.createElement('script');
jq.src = "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);