Skip to content

Instantly share code, notes, and snippets.

@rubik
rubik / 0.Guide.md
Last active August 29, 2015 14:03
Brief installation guide for ArchLinux with a bootstrap script that sets up the environment as I like it.

Installation Guide

Excerpted from the official [ArchLinux Installation Guide][1].

Keyboard layout

The available keymap files can be found in /usr/share/kbd/keymaps/ (you can omit the keymap path and file extension when using loadkeys).

Partition disks

See [partitioning][2] for details. Then, to format the partitions, see [File Systems][3] and optionally [Swap][4] for details.

Run arch-strap.sh

[ 53.443]
X.Org X Server 1.15.1
Release Date: 2014-04-13
[ 53.443] X Protocol Version 11, Revision 0
[ 53.443] Build Operating System: Linux 3.14.0-4-ARCH x86_64
[ 53.443] Current Operating System: Linux miki-laptop 3.15.1-1-ARCH #1 SMP PREEMPT Tue Jun 17 09:32:20 CEST 2014 x86_64
[ 53.443] Kernel command line: BOOT_IMAGE=../vmlinuz-linux root=/dev/sda3 rw vga=773 initrd=../initramfs-linux.img
[ 53.443] Build Date: 14 April 2014 08:39:09AM
[ 53.444]
[ 53.444] Current version of pixman: 0.32.4
@rubik
rubik / A.py
Last active August 29, 2015 14:00
Google Code Jam 2014 - Round 1B
from utils import *
def read_case(f):
n = read_int(f)
return [read_line(f) for _ in range(n)]
def write_case(f, i, res):
f.write('Case #%d: ' % i)
f.write('%s' % res)
f.write('\n')
@rubik
rubik / cfrac.dg
Last active August 29, 2015 13:56
import '/math'
from_root = n ->
a0 = int $ math.floor $ math.sqrt n
r = (a0, list!)
a, b, c = 1, 2 * a0, a0 ** 2 - n
delta = math.sqrt $ 4 * n
flag = True
while flag =>
if not c =>
@rubik
rubik / program03.py
Created February 5, 2014 21:01
Homework06 - program03
'''Scrivere una funzione fill(img_in, boundaries, pp_cc, img_out) che prende
in input i seguenti argomenti:
- img_in: file che contiene un'immagine in formato PNG, leggibile con la
funzione load() del modulo image.
- boundaries: un insieme di tipo set di pixel dell'immagine, ognuno specificato
da una coppia di coordinate (x, y). Come al solito le coordinate crescono
verso destra e verso il basso e il pixel nell'angolo in alto a sinistra ha
coordinate (0, 0).
- pp_cc: una lista di coppie (p, c) dove p e' un pixel (cioe' una coppia di
coordinate) e c e' un colore espresso come tripla (r,g,b).
@rubik
rubik / program02.py
Last active August 29, 2015 13:56
Homework05 - program02.py
'''Questo eserczio chiede di implementare una funzione che permette di disegnare
su una finestra (di Qt) in modo simile a come fatto nella lezione sulla grafica
interattiva. Si tratta quindi di implementare una funzione paint(painter) che
sara' chiamata ad ogni frame per aggiornare la grafica usando l'oggetto painter
che ha gli stessi metodi visti nella lezione suddetta. La funzione deve disegnare
solamente se il mouse e' premuto (painter.info.mouse_pressed e' True) seguendo il
movimento del mouse. Cio' che disegna dipendera' dallo stato in cui si trova.
Nello stato iniziale disegna un rettangolo con contorno bianco (255,255,255),
interno red (255,0,0) e che ha i due spigoli opposti rispetto ad una diagonale
nel punto precedente del mouse (painter.info.mouse_px, painter.info.mouse_py) e
@rubik
rubik / program01.py
Created February 5, 2014 20:42
Homework04, program01.py
'''Definire una classe PColor e una classe PImage secondo le seguenti specifiche.
La classe PColor rappresenta un pixel che puo' avere un colore RGB o essere
trasparente e deve implementare i seguenti metodi:
- Costruttore, senza argomenti, che inizializza l'oggetto come pixel trasparente.
- set_RGB(r, g, b) imposta il colore RGB dell'oggetto con i valori r,g,b e
ritorna l'oggetto.
- to_RGB() ritorna una tripla (r,g,b) che sono i valori dei canali RGB
@rubik
rubik / pi_digits.py
Last active December 22, 2015 00:48
Computing PI digit by digit. The input to the function is the number of decimal digits.
f=lambda w=4:(lambda j,o,i:(lambda s,g:list(i.takewhile(lambda _:len(o)<w+1,
(((4*g(0)+g(1)-g(2)<g(4)*g(2)and(o.append(int(g(4))),s(6,10*(g(1)-g(4)*g(2))),
s(4,((10*(3*g(0)+g(1)))//g(2))-10*g(4)),s(0,g(0)*10),s(1,g(6))))or(s(6,(2*g(0)
+g(1))*g(5)),s(7,(g(0)*(7*g(3))+2+(g(1)*g(5)))//(g(2)*g(5))),s(0,g(0)*g(3)),
s(2,g(2)*g(5)),s(5,g(5)+2),s(3,g(3)+1),s(4,g(7)),s(1,g(6))))for _ in iter(int,1)
)))and o)(lambda v,y:j.__setitem__(v,y),lambda v:j[v]))([1,0,1,1,3,3,-1,-1],[],
__import__('itertools'))
@rubik
rubik / arch-strap.sh
Last active December 18, 2015 16:38
A little script that does the basic things when installing ArchLinux
#!/bin/bash
# Configuration
root=/dev/sda3
boot=/dev/sda1
home=/dev/sda4
lang=en_US-UTF-8
keyboard=it
zone=Europe
subzone=Rome
@rubik
rubik / apples.py
Last active December 17, 2015 20:49
Python solution for SPOJ problem 'Buying apples'
import collections
# From
# http://stackoverflow.com/questions/1653970/does-python-have-an-ordered-set
class OrderedSet(collections.OrderedDict, collections.MutableSet):
def update(self, *args, **kwargs):
if kwargs:
raise TypeError("update() takes no keyword arguments")