Skip to content

Instantly share code, notes, and snippets.

View andreagrandi's full-sized avatar
🏠
Working from home... permanently!

Andrea Grandi andreagrandi

🏠
Working from home... permanently!
View GitHub Profile
@andreagrandi
andreagrandi / read_config.go
Created August 21, 2014 16:26
Read values from a JSON configuration file
// Parse a conf.json file with this content:
//
// {
// "username": "YourUser",
// "password": "YourPassword"
// }
package main
import (
@andreagrandi
andreagrandi / insert_element_list.go
Last active August 29, 2015 14:05
How to insert an element at position i in an arrray of strings
package main
import (
"fmt"
)
func main() {
list_a := []string{"apple", "orange", "grapes"}
fmt.Println(list_a)
i := 1
@andreagrandi
andreagrandi / main.cf
Created August 31, 2014 15:15
Postfix configuration example for email forwarding
myhostname = andreagrandi.it
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
@andreagrandi
andreagrandi / ping_test.sh
Created September 5, 2014 11:46
Ping an ip and print a different message if it can be pinged or not
keepalive_host='120.0.0.1'
ping -q -c1 $keepalive_host >> /dev/null
if [ "$?" -ne "0" ]; then
echo "Cannot ping!"
else
echo "PING!"
fi
keepalive_host='192.168.0.1'
ping -q -c1 $keepalive_host >> /dev/null
if [ "$?" -ne "0" ]; then
echo "`date` WIFI DOWN" >> wifi_log.txt
ifdown wlan0
rmmod 8192cu
modprobe 8192cu
ifup wlan0

Keybase proof

I hereby claim:

  • I am andreagrandi on github.
  • I am andreagrandi (https://keybase.io/andreagrandi) on keybase.
  • I have a public key whose fingerprint is 3268 D0FB 9B9F 6099 BC9B 76CC 9927 BB56 7051 C921

To claim this, I am signing this object:

Keybase proof

I hereby claim:

  • I am andreagrandi on github.
  • I am andreagrandi (https://keybase.io/andreagrandi) on keybase.
  • I have a public key whose fingerprint is 7238 74F6 886D 5994 323F 1781 8CFB 47AD C384 F0CC

To claim this, I am signing this object:

@andreagrandi
andreagrandi / roman.py
Created June 8, 2015 19:11
Transform a Roman format number in a decimal one (Python)
n = 'MCMXCVII' # 1997
def roman_to_decimal(n):
roman_map = {'M': 1000, 'D': 500, 'C': 100, 'L': 50, 'X': 10, 'V': 5, 'I': 1}
result = 0
for i,c in enumerate(n):
num = roman_map[c]
if result == 0:
@andreagrandi
andreagrandi / linked_circle.py
Last active August 29, 2015 14:23
Python Linked List: prevent the list to become circular
def is_list_circular(l):
slower = l
faster = l.get_next()
while True:
# if faster pointer finds a None element
# then the list is not circular
if (faster is None) or (faster.get_next() is None):
return False
# if faster element catch up with the slower
@andreagrandi
andreagrandi / memoize.py
Created June 14, 2015 12:27
Python memoize decorator: cache values already calculated
def memoize(function):
cache = {}
def decorated_function(*args):
if args in cache:
return cache[args]
else:
val = function(*args)
cache[args] = val
return val
return decorated_function