Rozmowy przy zgaszonym świetle

Świat z perspektywy uzależnienia od kawy, papierosów i internetu

Sprawa TAX FREE, a Subiekt GT – rozwiązanie darmowe!

Skomentuj »

Z uwagi na fakt, iż od stycznia pracujemy pełną parą na Subiekcie GT przyszedł czas aby zamienić ręcznie pisane „zielonki” na coś zautomatyzowanego. Po przejrzeniu oferty rozszerzeń do Subiekta, oferujących możliwość „łatwego” wypełniania druków Tax Free złapałem się za głowę. Nie znalazłem ani jednego sensownego rozwiązania. I nie dość, że owe rozwiązania kosztują po 300-500 zł, to na dodatek zawierają kupę denerwujących błędów. Po dłuższej chwili rzucania mięsem, postanowiłem stworzyć coś własnego. Moje podejście było zgoła inne – zamiast tworzyć moduł czy zewnętrzne rozszerzenie, postanowiłem wykorzystać mechanizm wbudowany w Subiekta – mianowicie Crystal Reports. Subiekt jest zgodny niestety tylko i wyłącznie z wersją 8.5. Po kilku godzinach majstrowania przy CR, a dodać trzeba że jestem zupełnym laikiem w tej dziedzinie i było to moje pierwsze z nim spotkanie , powstało „coś”. „Coś” co mógłbym nazwać nawet funkcjonalnym i przydatnym rozszerzeniem Subiekta.

Wykorzystałem do tego celu mechanizm Paragonów Imiennych:

1. Nowy paragon imienny
2. Dodajemy kontrahenta – osoba fizyczna – uzupełniamy podstawowe dane, zamiast dowodu osobistego wpisujemy nr paszportu i analogicznie organ wydający
3. Dodajemy towar
4. W polu uwagi wpisujemy słownie kwotę VAT (bez groszy, same pełne złotówki)
5. Wybieramy formularz, wkładamy „zielonkę” do drukarki i drukujemy

Proste i logiczne. Ma też swoje wady i błędy:

1. Brak automatycznego wypełniania rubryki „słownie”. Próbowałem wykorzystać bibliotekę zewnętrzną UFL (http://sulmar.blogspot.com/2007/10/sownie-zotych.html ), ale sypała błędami i nie działała poprawnie. Prawdopodobnie brak mi doświadczenia w tej dziedzinie. Zamiast automatu wpakowałem pole „Uwagi” i każdy może sobie wypełnić sam.
2. Formularz obsługuje od 1  do 7 pozycji, niestety niewiele mogę z tym zrobić.
3. PKWiU wpisywane jest zawsze jeżeli jest wypełnione w parametrach towaru.
4. Niektóre rzeczy robiłem „na wiarę”, niestety brak mi doświadczenia w CR. Tak więc kwota vatu jest separowana na całe złotówki i grosze dosyć prymitywnie – ale działa, z grubsza OK.
5. Formularz nie był masowo testowany, prawdopodobnie pełno w nim błędów.
6. Nie radzę wchodzić w „opcję” formularza, pozbawiłem go zmiennych kontrolnych i najprawdopodobniej się po takim zabiegu wysypie. Powtarzam jeszcze raz – formularz nie jest konfigurowalny.

Z zalet:

1. Działa.
2. Obsługuje wiele imion i nazwisk.
3. Drukuje numer paszportu i organ wydający, a nie jak większość aplikacji tylko numer paszportu.
4. Ostatnia i najważniejsza: JEST DARMOWY i WOLNY (w sensie „Freedom”) – Licencja GPL wersja 3.

Do pobrania z dropbox’a. Wersja z dzisiaj, niech będzie, że 0.0.1:
http://dl.dropbox.com/u/16136765/TAXFREE%20SubiektGT/PAI%20TAX-FREE%202011-04-17.rpt

Co tu dużo mówić, mam nadzieję że kiedyś znajdzie się ktoś bardziej rozgarnięty w temacie Crystal Reports i poświęci formularzowi z 10 minut. Może wtedy „słownie” będzie działać z automatu.

Written by mruk

17 Kwiecień 2011 at 15:49

RAID1+HS w końcu kompletny

Skomentuj »

Przeszło tydzień temu wrócił z „naprawy” Seagate. Dysk został wymieniony na nowy. Pierwszą rzeczą jaką zwyczajowo należy zrobić po zamontowaniu dysku do serwera jest test badblocks. Ja robię go tak:

$ badblocks -fvwso info.txt /dev/sdX

f – force
v – verbose (tryb „widoczny”)
w – tryb desktrukcyjny (zapis danych)
s – show (pokazuje postęp)
o info.txt – wpisuje informację o uszkodzonych blokach do pliku info.txt

Jeżeli po skończonym teście nie znajdziemy nic w pliku info.txt, to mamy do czynienia z czystym dyskiem. Przy „nowym” dysku warto sprawdzić także ile godzin dany dysk przepracował.

$ smartctl –all /dev/sdX

Ważne informacje znajdziemy w liniach:

Power_On_Hours
Power_Cycle_Count

Pierwsza podaje liczbę przepracowanych godzin, druga zaś informuje ile razy dany dysk był uruchamiany.

Następnie nie pozostaje nam nic więcej jak dodać go do macierzy RAID – w tym wypadku do RAID1 jako HOT SPARE.

W zasadzie nie napisałem nic odkrywczego, niemniej może komuś się to do czegoś przyda. Ot co! Na marginesie dodam, że czuję się nieco bezpieczniej mając pełno-dyskowe  szyfrowanie na macierzy RAID1 z zapasowym dyskiem. Ktoś by powiedział, że to marnotrawstwo miejsca – 3 x 500GB po to aby mieć 500GB przestrzeni dyskowej. A ja odpowiadam tak: a na ile mam wycenić utratę danych i przestój w działaniu firmy? Na koniec cytat:

Ludzi dzielimy na 2 grupy. Tych którzy robią backupy i tych którzy będą je robić.

Niah!

Dodam jeszcze tylko, że teraz zawartość /proc/mdstat wygląda tak:

root@freya:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdd1[2](S) sdb1[1] sda1[0]
30272448 blocks [2/2] [UU]

md1 : active raid1 sdd2[2](S) sdb2[1] sda2[0]
458111936 blocks [2/2] [UU]

unused devices: <none>

Oznaczenie (S) przy nazwie partycji oznacza (S)pare czyli zapas. Prawda, że pięknie? :)

Written by mruk

15 Styczeń 2011 at 14:15

PS3 CFW czyli obsługa gier z PS2 i PS1

Skomentuj »

Cały internet huczy. W końcu można zrobić dobry użytek z kluczy zdobytych przez ludzi z fail0ver i Georga Hotza.

Na dole strony znajdziecie link do paczek z CFW zrobionym przez KaKaRoTo:

http://www.ps3-hacks.com/2011/01/04/ps3-custom-firmware-creator-released-permanently-add-install-pkgs-to-the-xmb/

CFW nie pozwala na piractwo! Ale daje możliwość instalacji z dysku aplikacji cyfrowo podpisanych kluczami Sony i co najważniejsze umożliwia odpalania gier z PS1 i PS2.

Słodko! :)

Written by mruk

6 Styczeń 2011 at 13:44

Napisane w hardware, PS3

Krótka lekcja wymiany dysków w macierzy RAID

Skomentuj »

Ojojojoj! Nowy Seagate był i po 25 dniach pracy zemarło mu się. Udał się na wycieczkę do Holandii. Ojojoj! Nowy identyczny Seagate (tym razem wyprodukowany zdaje się w Tajlandii a nie w Chinach) jakoś nie dał się podzielić na identyczne partycje, pomimo takiej samej geometrii. No cóż. Przy macierzach RAID to dość ważne. Nauczony doświadczeniem sięgnąłem po dość radykalny środek. Olać tablicę partycji, przecież to dwa identyczne dyski. Trzeba klonować jak owce, dziki, węże i inne zwierzątka.

$ sfdisk -d /dev/sda > tablicaA

$ sfdisk /dev/sdb < tablicaA

i już! I w dodatku macie kopię tablicy w pliku :D To chyba nawet szybsze niż zabawy z fdiskiem, cfdiskiem czy jakimkolwiek innym toolem. Może mnie ktoś uświadomić dlaczego to złe rozwiązanie. Ale so far działa. Więc chyba wolę oszczędzać czas. Nie będę się rozwodził jak odbudować RAID przy użyciu mdadm bo od tego jest man.

500GB RAID odbudował się i ochoczo oświadczył Up and running!

Written by mruk

15 Grudzień 2010 at 20:39

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.