Gdyby ktoś potrzebował, to poniżej są przykłady sprawdzanie numerów PESEL, REGON i NIP zaimplementowane w Pythonie:

PESEL
def check_pesel(pesel):
  sum, ct = 0, [1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 1]
  for i in range(11):
    sum += (int(P[i]) * ct[i])
  return (str(sum)[-1] == '0')
REGON
def check_regon(regon):
  sum = 0
  w = [8, 9, 2, 3, 4, 5, 6, 7]
  if len(regon) == 7:
    w = w[2:]
  elif len(regon) == 14:
    # ciężko znaleźć algorytm (wagi) do sprawdzenia ostatnich
    # pięciu cyfr, więc olewamy
    regon = regon[:9]

  ct = int(regon[-1])

  for i in range(len(w)):
    sum += (int(R[i]) * w[i])
  mod = sum%11
  if (mod == ct) or (mod == 10 and ct == 0):
    return True
  return False
NIP
def check_nip(nip):
  sum, ct = 0, [6, 5, 7, 2, 3, 4, 5, 6, 7]
  for i in range(9):
    sum += (int(N[i]) * ct[i])
  return ((sum%11) == int(nip[-1]))

Sumy kontrolne są liczone według wzorów dostarczonych przez Wikipedię: PESEL, REGON, NIP.

Oczywiście powyższe funkcje zakładają że dostają poprawny numer, walidację tego pozostaje zrobić we własnym zakresie…

UPDATE

Poprawiłem nieco funkcję sprawdzającą REGON - uwzględnia ona teraz REGONy zarówno 7 (stare), jak i 9 czy 14 cyfrowe (te ostatnie, to “zwykły” REGON wraz z 5 cyframi lokalizacyjnymi - więcej: wipos.p.lodz.pl/zylla/ut/nip-rego.html).


Jak dziś o 22.00 usiadłem do czasopisma, kończąc je, tak cały czas nad nim siedzę. Dorobiłem już tytuły, dorobiłem pingowanie Technorati, teraz siedzę i kroję szablon podesłany mi przez RAFiego. Idzie w miarę, za moment zabiorę się za początkowe składanie html + css, ale dziś na 100% tego nie skończę (dziś w sensie tej nocy).

I tak jestem zaskoczony tym, że mi w ogóle idzie jakoś, i że mi się chce… :) Ale to tylko szczegół. Wcześniej wypiłem kawę (ble!), dzięki czemu nie zasnąłem nad klawirką jeszcze.

W sumie wyszło tak, że na wyjeździe mojej Pani zyskało czasopismo (i w pewnym sensie ja sam ;) jako że przypominam sobie nieco php, o którym ostatnimi czasy zaczynałem zapominać, poświęcając sie pythonowi i C++ ;) )


Ano chwilowo nic ;) Dostałem niedawno (tydzień temu) od RAFiego maila z grafiką do nowej wersji. W poniedziałek mam zamiar do tego usiąść i pociąć, przygotować szablony do nowego engine’u, dorobić do niego kilka rzeczy (ping, tytuły wpisów - oczywiście opcjonalne), sprawdzić, testnąć, i uruchomić. Jest szansa, że jeśli uda mi się zmobilizować jak należy, to w przyszłym tygodniu stanie i będzie działać już tylko wersja /new/ pod adresem czasopismo.net. Oczywiście pod warunkiem, że chłopcy (Mały i Yoop) się spiszą i zrobią flashkę jak trza ;) Tzn nie wiem czy czasem już nie jest zrobiona, ale to tylko szczegół.


Chyba coś siadło na home.pl ostatnio, ponieważ na jakieś dwa dni diary znikło z sieci, i z niezrozumiałych dla mnie powodów nie działało, niezależnie od tego co zrobiłem. Jakieś pojęcie zarówno o linuksie jak i o PHP mam, więc nie było to takie całkiem małe coś… W każdym bądź razie wróciło do życia. I to tyle, co chciałem powiedzieć. Ja też jutro wracam do życia.


Ostatnio diary jakby zamarło. Spowodowane jest to moim ‘odsunięciem’ się od komputera - siedzę i czytam moją ulubioną książkę ;) (tak, na sucho, “pierwszy raz” z nowym językiem programowania, jeśli mogę to robić z dala od kompa, to właśnie tak to wygląda - czytam manual/książkę przynajmniej raz na sucho, później dopiero robię “to” przy kompie - tylko bez skojarzeń, świntuchy ;) ), ostatnio chodzę trochę pograć, więcej sypiam (już nie po 4h na dobę ;) ), i więcej zajmuję sie domowymi rzeczami (w tym kobietą ;) ). Co prawda komputer włączam codziennie, ale tylko po to żeby poczytać co nieco, ew. obejrzeć jakiś film lub posłuchać muzyki. A jeśli robimy coś innego (zaraz napisze co) to komputer sie ziębi :)

Kupiliśmy sobie ostatnimi czasy dwie gry: Scrabble i Rummikub. Gry logiczne, pierwsza wymagająca znajomości jak największej ilości różnych słów, a do tego sporej dozy wyobraźni oraz szybkiego kojarzenia. Druga (Rummikub) trochę matematyki, i dużo, dużo myślenia i wyobraźni. W obydwie gra nam się świetnie, choć mamy za mało czasu na to - zbyt często się rozmijamy z moją Panią - ja pracuje zawsze od 7.30 do 15.30, a Ona bardzo różnie, zależy to od grafiku. Ale gra jako taka jest naprawdę super - polecam każdemu, super rozrywka :)

Poczytałem sobie też ostatnio nieco więcej na temat PyGTK, i poćwiczyłem sobie troszkę ten temat w więzieniu. Fajnie się nawet tego używa, stworzyłem sobie gui do genpass.py, i jako ćwiczenie pewnie za jakiś czas (jak mi się nie znudzi) porobię gui-e do pozostałych skryptów. Może też je udostępnię do ściągnięcia i potestowania ;).

A gdyby ktoś był spostrzegawczy/pamiętliwy, zobaczyłby że już kiedyś o PyGTK pisałem, że czytam i testuje etc. I owszem, tak było, ale od dupy strony - bawiłem się wtedy glade’em, czyli takim wizualnym edytorem. Pewni w przyszłości do niego wrócę, jak już wystarczająco zrozumiem jak to wszystko działa i wyląda od podszewki. A obecnie PyGTK testuję właśnie tworząc cały wygląd poszczególnych aplikacji ręcznie. Krok po kroku, linijka kodu po linijce… Fajne to nawet :)

A wracając do grania - byliśmy wczoraj znów na hali. Bomba. Szło mi już dużo lepiej, trochę się rozruszałem i nabrałem pewności siebie, przestałem się bać że coś spieprzę :) Trochę jeszcze mam zakwasy, i jeszcze nie do końca mi wychodzi zagrywka, czy też ścinanie, ale jeszcze ze 2-3 razy i powinienem grać na takim samym poziomie jak przed laty ;) I znów nie mogę się doczekać czwartku, żeby pójść na halę :) MNIAM! :)


Od jakichś przynajmniej 6 lat, może nawet 7, nie miałem okazji na jakieś większe uprawianie sportu. Była tylko praca, praca, i jeszcze troche pracy. A w większości pracowałem przy biurku, prawie się nie ruszając - tyle co z domu na przystanek i z przystanku do pracy…

A kiedyś było tak pięknie: za czasów szkoły potrafiłem dziennie spędzić na boisku do jakichś 5h dziennie, w wakacje bywało że szliśmy rano, i wracaliśmy po 10h do domu. Nie miałem większych problemów z kondycją, formą etc.

Wiedząc, że przydałoby mi się nieco poruszać, a poza tym strasznie tęskniąc za ruchem, sportem w jakiejś postacji (i nie myślę tu o szachach ;) ), od dłuższego czasu kombinowałem co by tu porobić. Samemu biegać/whatever to mi się nie chce, poza tym raz czy dwa bym się zmusił, a później skończyłaby się motywacja i tyle. Wypytywałem znajomych, czy nie chcieliby gdzieś razem wynająć hali i pograć w siatkę, piłkę nożną, czy chociażby w koszykówkę (za którą nie przepadam, ale lepszy rydz niż nic). Chętnych było ciągle za mało :/

Przez przypadek usłyszałem, że wujas mój chodzi na siatkówkę z kilkoma kumplami z pracy - całość organizuje im zakład pracy. Spytałem się go czy nie mógłby mnie wkręcić :) No i się udało :D

Byliśmy przedwczoraj z moją Panią na hali, i graliśmy razem z innymi 8 panami, gdzie średnia wieku sięgała jakichś 40-50 lat. Bardzo, bardzo, bardzo fajnie się grało :) Oczywiście, ja jakichś specjalnych umiejętności siatkarskich nie mam, grywałem nie raz i nie dwa, ale ‘dla siebie’, na lekcjach w szkole, czy czasem z kumplami na podwórku, ale jakoś sobie radzę. Co innego moja Pani: kilka lat trenowała siatkówkę, więc z pozostałymi graczami czuła się jak ryba w wodzie :) Ja dość mocno odstawałem od poziomu ;) Ale na szczęście nie miał nikt do mnie pretensji ;)

Już nie mogę się doczekać poniedziałku (od nie wiem ilu lat nie przepadam za tym dniem) żeby pójść znów pograć, poruszać się, pobiegać :) Jest tylko jeden problem: zakwasy. Wczoraj ledwo się ruszałem, wszystkie mięśnie bolały. A dziś to w ogóle koszmar: żeby wstać z krzesła, nie mówiąc o schylaniu się, potrzebuje dobrej minuty. Ale zlew z tym. Szkoda tylko że wczoraj nie mogłem pójść znów na halę, żeby przepalić zakwasy, lepiej na tym bym wyszedł… Jakoś to przeżyje :)


Na diary trochę zmian. Jedna: piękne, przyjazne dla SEO linki poszły się czesać, jako że chwilowo diary stoi na innym serwerze niż dotychczas. Na poprzednim było mu za dobrze :( obecny ISP nie lubi się z mod_rewrite. Przy odrobinie szczęścia to tylko przejściowe, za niedługo może wrzucę bloga na prywatny serwerek… okaże się.

Poza tym, wbrew moim wcześniejszym zapowiedziom diary chwilowo działa na WordPress 2.0. Czemu? Z lenistwa… :) mógłbym wgrać całość poprzedniej wersji serwisu, i nie przjmować się głupotami, ale mi się nie chce ;) Wrzuciłem najnowszą wersję jaka jest (a akurat wyszła wersja 2.0 systemu) i tyle. Koniec kropka.

Wraz ze zmianą numerka WP, zmienił się design. W sumie, to jest teraz pierwszy theme jaki widziałem na WP. Nie chce mi się poprzedniego portować do WP 2.0. Znów lenistwo… :) Poczekam, może ktoś się pokusi o zrobienie pasującego mi theme dla mnie… :P