Wednesday, May 16, 2007

Extensie Firefox pentru TEXTAREA

Multe lucruri se editeaza azi intr-un TEXTAREA. Şi când e vorba de progrămele sau fragmente de progrămele faptul ca a) indentarea nu funcţionează, b) nu există syntax highlighting c) etc. este relativ iritant.

Se poate rezolva oarecum... Pentru Firefox exista o extensie, numită "It's All Text". care ataşează fiecărui TEXTAREA un buton. Care apăsat rulează un editor ales de user pentru textul de modificat/creat.

Wednesday, May 2, 2007

diff vizual pentru unix

Am găsit pe Debian Package of the Day un program foarte util pentru vizualizarea modificărilor/diff-urilor. Este vorba de meld.

Ştie să lucreze cu Subversion, ceea ce este foarte util deoarece nu am reuşit să găsesc o unealtă GUI reuşită pentru svn pe linux. Evident, partea care lipsea şi care nu poate fi compensată de cli este vizualizarea diff-urilor - acum nu mai lipseşte :p

Meld se foloseşte ca diff: "meld fisier_vechi fisier_nou" sau, daca este vorba de un fisier dintr-un working copy de subversion, pur si simplu ca "meld fisier".

Thursday, April 19, 2007

Liste de taskuri

Nu-mi plac notitele post-it. Am nevoie de o modalitate de a organiza listele de sarcini care trebuie rezolvate până la o anumită dată.

Am dat de tadalist.com. Care pare să rezolve elegant problema.

Friday, March 30, 2007

Wednesday, March 28, 2007

Django şi Vim

Am dat de o pagină foarte interesantă,
http://code.djangoproject.com/wiki/UsingVimWithDjango

pe care sunt descrise nişte scripturi Vim care ajută la lucrul cu Django.

Cele mai interesant chestii mi s-au părut XMLedit şi fişierele de syntax highlighting pentru template-uri Django.

Tuesday, March 20, 2007

Metaprogramming în Python - pentru incepători

Căutând o modalitate de a specifica repede structuri în Python am căutat pe net o modalitate de a crea automat clasele cu structuri (genul de clasă care arată cam aşa):


class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return "(%f, %f)" % (self.x, self.y)

Din nou cunoştinţele de Lisp s-au dovedit foarte folositoare (deşi indirect). Căutând pe Google "python defstruct" (defstruct este macro-ul Lisp care creează codul pentru astfel de structuri) am dat de:

http://mail.python.org/pipermail/python-list/2001-October/109140.html

unde un suflet milostiv a publicat un exemplu simplu şi util de metaprogramare în Python.

am modificat puţin codul şi am obţinut:

def defstruct(name, *fields):
class Struct(object):
def __init__(self, *contents):
if len(contents) != len(self.structfields):
raise TypeError, (
"wrong number of arguments: expected %d %s, got %d" %
(len(self.structfields),
repr(self.structfields),
len(contents)))
for fieldnum in range(len(contents)):
setattr(self,
self.structfields[fieldnum],
contents[fieldnum])
def __repr__(self):
args = ", ".join([str(getattr(self, f)) for f in fields])
return "%s(%s)" % (name, args)
Struct.structfields = fields
return Struct


cu exemplul de utilizare:


if __name__ == "__main__":
Point = defstruct('Point', 'x', 'y')
p1 = Point(1, 20)
p2 = Point(-4, 34)
print p1
print p2

Friday, March 16, 2007

SSH fără parolă de fiecare dată

E agasant să introduc parola de SSH de fiecare dată când mă leg la un server.

Se poate autentificare fără parolă? Normal că se poate. Iaca instrucţiuni: