Skip to content

Instantly share code, notes, and snippets.

@agounaris
agounaris / script-template.sh
Created October 27, 2022 09:01
sample bash
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
if [[ -n "${TRACE-}" ]]; then
set -o xtrace
fi
if [[ "$1" =~ ^-*h(elp)?$ ]]; then
aa=true
bb=false
cc="python"
if [[ "$aa" ]]; then echo "Test0" ; fi
if [[ "$bb" ]]; then echo "Test0.1" ; fi
if [[ !"$aa" ]]; then echo "Test0.2" ; fi
if [[ ! "$aa" ]]; then echo "Test0.3" ; fi
if [[ "$aa" && ! "$bb" ]]; then echo "Test1" ; fi
if [[ "$aa" && ! "$aa" ]]; then echo "Test2" ; fi
if [[ "$aa" ]] && ! [[ "$bb" ]]; then echo "test3" ; fi
@agounaris
agounaris / word_count_notebook.py
Created April 28, 2017 23:21
Word count of markdown jupyter notebook cells
import io
from IPython.nbformat import current
with io.open(filepath, 'r', encoding='utf-8') as f:
nb = current.read(f, 'json')
word_count = 0
for cell in nb.worksheets[0].cells:
if cell.cell_type == "markdown":
word_count += len(cell['source'].replace('#', '').lstrip().split(' '))
@agounaris
agounaris / xelatex_macos.txt
Last active September 22, 2017 19:32
Jupyter notebook pdf export fix on macos
Download and install xelatex from http://www.texts.io/support/0001/
Based on the exact version etc add the executable on path
export PATH="$PATH:/usr/local/texlive/2016basic/bin/x86_64-darwin"
install all the following
sudo tlmgr update --self
sudo tlmgr install collectbox
sudo tlmgr install ucs
sudo tlmgr install adjustbox
import collections
def json_object_hook(d):
return namedtuple('X', d.keys())(*d.values())
def json2obj(data):
return json.loads(data, object_hook=json_object_hook)
data = '{"name": "whatever","phone_number": {"home": "aaaa1","mobile": "aaaa2"}}'
obj = json2obj(data)
@agounaris
agounaris / logging_requests
Created December 17, 2015 09:16
full info on a python requests request
import requests
import logging
import httplib
httplib.HTTPConnection.debuglevel = 1
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname
@agounaris
agounaris / gulpfile.js
Created June 15, 2015 10:39
gulp auto run test cases
var gulp = require('gulp'),
sys = require('sys'),
exec = require('child_process').exec;
gulp.task('phpunit', function() {
exec('phpunit', function(error, stdout) {
sys.puts(stdout);
});
});
@agounaris
agounaris / jquery_drop_events.html
Last active August 29, 2015 14:22
Grab drop events with jquery
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Drop Events</title>
<style media="screen">
.dropzone{
width:300px;
height:100px;
line-height:100px;
@agounaris
agounaris / .tmux.conf
Last active August 29, 2015 14:15
tmux configuration
set -g status on
set -g status-keys vi
set -g history-limit 1000000
# Setup 'v' to begin selection as in Vim
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
# Set prefix to Ctrl-Space
unbind C-b