niedziela, 20 grudnia 2009

Słabe zabezpieczenia w Deutsche Banku

Niedawno musiałem założyć konto bankowe w Deutsche Banku. Ponieważ jestem zwolennikiem dostępu elektronicznego do konta, więc od razu powiedziałem, że to jest dla mnie warunek konieczny. Dzisiaj otrzymałem list z kartą z kodami. No trudno, pomyślałem sobie, pewnie nie da się aby hasła przychodziły na SMS, jak to jest od lat w mBanku. Po telefonicznej rejestracji udało mi się ustalić hasło do mojego nowego konta. Na szczęście hasła nie musiałem podawać przez telefon dyktując je jakiejś Pani. Zostałem bowiem przełączony na rozmowę z automatem, który prosił o podanie hasła z klawiatury telefonu. No więc super, pomyślałem.

Przejdźmy więc do najciekawszego. Czyli do tego, co zobaczyłem po zalogowaniu w systemie easyNET, bo tak się nazywa system obsługi kont osobistych w Deutsche Banku.
Jak się pewnie domyślacie, od razu chciałem zmienić swoje hasło, bo przede wszystkim hasło złożone z samych cyfr, które podawałem przez telefon jest kiepskim hasłem.
No i nie uwierzycie z czym się spotkałem.
Hasła w easyNET mogą być złożone tylko z cyfr, a ich długość nie może być większa niż 6.

Załamałem się tym tak bardzo, że musiałem o tym tutaj napisać.

Masakra, co nie? Całe szczęście, że https im działa, no i że mają podpisane certyfikaty.

Uwaga: aby ułatwić hakerom łamanie haseł Deutsche Bank dodaje, że:
hasło nie może zawierać obok siebie trzech kolejnych ani takich samych cyfr.

poniedziałek, 14 grudnia 2009

77% wrocławskich informatyków (olimpijczyków) jest z XIV LO

Na stronie głównej Olimpiady Informatycznej, ukazały się już wyniki pierwszego etapu XVII OI. Jak zwykle przygotowałem ranking, w którym wyróżniłem (kolorem) uczniów z XIV LO we Wrocławiu.

Do drugiego etapu OI zakwalifikowało się 315 uczniów z całej Polski, w tym 30 uczniów z Wrocławia.
Spośród tych trzydziestu aż 23, czyli ok 77% jest z XIV LO im. Polonii Belgijskiej we Wrocławiu.

Gratuluję

czwartek, 1 października 2009

Zawody na SPOJu dla szkół średnich (League 2009/2010)

Informuję, do 10 października 2009 można rejestrować się w konkursie organizowanym na SPOJu
Jest to już druga edycja tego konkursu, który przeznaczony jest dla uczniów szkół kształcących na poziomie średnim lub niższym. Na pewno przydadzą się wiadomości i umiejętności wyniesione z lekcji matematyki.

Witryna zawodów znajduje się tutaj:

Pomocy należy szukać w dziale help i rules, a ogłoszenia w dziale news.
Każdy etap zaczyna się i kończy w sobotę o godzinie 12:00

Seria Początek Koniec
I 19.09 17.10
II 31.10 28.11
III 12.12 16.01
IV 30.01 06.03
V 20.03 27.04


Powodzenia wszystkim, ale niech wygra XIV-stka !!!
Rafał Nowak

sobota, 12 września 2009

Warsztaty Informatyczne w roku szkolnym 2009/2010

Znów poprowadzę Warsztaty Informatyczne.

Jak zwykle, kieruję je do wszystkich gimnazjalistów. Zajęcia będą odbywały się w każdy czwartek w budynku XIV LO we Wrocławiu. Oczywiście zapraszam gimnazjalistów z przyszkolnego gimnazjum nr 49.

Pierwsze spotkanie odbędzie się w czwartek 17 września o godzinie 15.50 w sali 214.

Zapraszam wszystkich, którzy dopiero chcą rozpocząć swoją przygodę z informatyką. Zakłada się w niej, że będziemy uczyć się informatyki od podstaw (czyli od zera).

Strona warsztatów znajduje się tutaj: http://www.rafalnowak.pl/wi

środa, 24 czerwca 2009

Czternastka znów górą

Tegoroczne Dolnośląskie Zawody w Programowaniu Zespołowym wygrała drużyna z XIV LO we Wrocławiu. Cieszę się z tego podwójnie, gdyż są to uczniowie, których uczę aż od gimnazjum; tzn. ja nie chodziłem do gimnazjum :-)

Pierwsze miejsce zajęła drużyna w składzie:
  • Anna Piekarska (XIV LO)
  • Bartek Dudek (49. GIM)
  • Karol Konaszyński (XIV LO)
Drugie miejsce należy całkowicie do XIV LO, a ściślej to do tegorocznych maturzystów z klasy III e:
  • Wiktor Janas
  • Krzysztof Nowicki
  • Krzysztof Pieprzak
Ogromne gratulacje!!!

Wyniki w kategorii szkoły średnie znajdują się tutaj. Jak zwykle zamieszczam kopię poniżej.

Warto dodać, że w kategorii szkoły średnie (zob. ranking) świetnie spisała się drużyna z XV LO zajmująć 2. miejsce.
Jak zwykle drużyny Uniwersytetu Wrocławskiego zdeklasowały pozostałych.

Myślę, że należy też zauważyć, że wszystkie drużyny z Politechniki Wrocławskiej zajmują ostatnie miejsca. To musiało boleć organizatorów --- czyli Politechnikę Wrocławską. Myślę, że organizatorzy są już przyzwyczajeni do porażek. Już tak to jest od dawna, że w jakichkolwiek zawodach informatycznych, w których należy wykazać się myśleniem (matematycznym, logicznym, algorytmicznym) Uniwersytet jest wysoko wysoko nad Politechniką.

Jeszcze raz gratuluję Ani i chłopakom :-)

sobota, 30 maja 2009

III Olimpiada Informatyczna Gimnazjalistów - finał

Niestety nie udało się nikomu z moich uczniów wygrać tegorocznej Olimpiady Informatycznej Gimnazjalistów.

Najlepszy wynik z mojej grupy uzyskał Bartek Dudek zajmując 8. miejsce. Następnie 15. był Mateusz Gołębiewski. Dalej (28. miejsce) - Tomasz Syposz, oraz (finalista) Krzysztof Story.

Cieszę się i tak, że z Wrocławia mamy aż tak wielu finalistów. Chociaż dwa lata temu było ich aż siedmioro :-).

Szczegółowy ranking finału znajduje się na oficjalnej stronie OIG: http://www.oi.edu.pl/html/oig3/wyniki_e3.html

czwartek, 30 kwietnia 2009

Potyczki Algorytmiczne 2009 - mój udział

Wbrew obawom, o których pisałem prawie rok temu tutaj, wystartowałem w tegorocznej edycji konkursu Potyczki Algorytmiczne. Ku swemu zaskoczeniu, zająłem aż 77 pozycję. Zadania w tym roku były o wiele trudniejsze. Widać to zresztą w rankingu. Zdobyłem łącznie 62 punkty na 150 możliwych. Rok temu musiałem zdobyć ponad 100 punktów, aby zająć 69 pozycję.

Chciałbym pogratulować organizatorom za świetny konkurs. Wszystkie zadania były bardzo ciekawe i trudne. Wymagały pomysłowości, a nie znajomości klasycznych algorytmów. Naprawdę nie jest łatwo wymyślić takie zadania. Jeszcze raz gratuluję. Domyślam się, że tę ciężką robotę wykonali studenci i doktoranci Uniwersytetu Warszawskiego, oczywiście z informatyki.

Dziękuję współuczestnikom za udział i rywalizację. Dziękuję kolegom za wskazówki i pomoc. Myślę, że sporo się nauczyłem z tegorocznych zadań. Na pewno wiedza ta przyda się w mojej pracy z uczniami.

Gratuluję też swoim uczniom, którzy niejednokrotnie okazali się być lepszymi ode mnie.

Ranking zawodów dostępny jest jeszcze na stronie organizatorów: http://konkurs.adb.pl/user.phtml?op=ranking

Pozwoliłem sobie skopiować wyniki pierwszych 300 osób i umieścić w swoich zasobach; patrz tutaj (uwaga na pozycji 245 znajduje się drugi Rafał Nowak --- to nie ja :-)

poniedziałek, 27 kwietnia 2009

Złota Ania

W tegorocznej międzynarodowej Bałtyckiej Olimpiadzie Informatycznej wygrali Polacy.

Pierwsze miejsce zdobył Jakub Pachocki rozwiązując prawie wszystkie zadania.
Natomiast drugie miejsce zdobyła Ania Piekarska uczennica XIV LO we Wrocławiu.

Szczegółowe wyniki znajdują się tutaj.

czwartek, 9 kwietnia 2009

Ubuntu 9.04

Dzisiaj zaktualizowałem sobie Ubuntu do wersji 9.04
Co prawda, jest to dopiero beta, ale nie mogłem się już doczekać.

Poniżej załączam zrzut ekranu podczas aktualizacji. Za długo nie musiałem czekać (p. transfer)

Odliczanie do wydania Ubuntu 9.04

poniedziałek, 6 kwietnia 2009

Finaliści, laureaci i medaliści XVI Olimpiady Informatycznej

Właśnie zakończył się finał XVI Olimpiady Informatycznej. Do finału zakwalifikował się czterech uczniów XIV LO we Wrocławiu oraz jeden gimnazjalista.

W tym roku uczniowie odnieśli jeszcze większy sukces:
  1. Wiktor Janas, laureat II miejsca, srebrny medalista
  2. Ania Piekarska, laureatka III miejsca, brązowa medalistka
  3. Krzysztof Król, wyróżniony finalista
  4. Bartek Dudek, finalista
  5. Karol Konaszyński, finalista

Ponieważ Wiktor jest już trzecioklasistą i ma przed sobą maturę, więc do reprezentacji na Międzynarodową Bałtycką Olimpiadę Informatyczną załapała się Ania Piekarska, uczennica klasy drugiej.
Spośród powyższych wielkich sukcesów warto wyróżnić Bartka Dudka, który jest gimnazjalistą.

Na tej stronie można zobaczyć oficjalne wyniki Olimpiady. Poniżej zamieszczam moją kopię wyników z wyróżnionymi podopiecznymi.

piątek, 3 kwietnia 2009

Bignum + zmiana systemu z dziesiętnego na d

Pomyślałem, że rozszerzę artykuł w RNO-Wiki na temat arytmetyki długich liczb (bignum) o procedurę zamiany liczby z systemu dziesiętnego na system o podstawie d, gdzie d jest cyfrą. Procedura zamiany znajduej się tutaj.

sobota, 28 marca 2009

III Olimpiada Informatyczna Gimnazjalistów (2. etap)

Dzisiaj odbył się 2. etap III OIG.

Najlepsi byli moi uczniowie (z 49. Gimnazjum we Wrocławiu):
  • Mateusz Gołębiewski
  • Bartek Dudek
Szczegółowy ranking dostępny jest na stronie OIG: http://www.oi.edu.pl/html/oig3/wyniki_e2.html

niedziela, 22 marca 2009

LaTeX: Polski skorowidz w UTF-8

Ach ta wiosna; dzisiaj napotkałem kolejny problem. Tym razem sprawa dotyczy tworzenia skorowidza w LaTeX'u.
Od jakiegoś już czasu składam dokumenty przy użyciu kodowania UTF-8. Niestety, gdy powstawał LaTeX, nie myślano jeszcze o UTF-8. Na szczęście pakiet inputenc obsługuje już UTF-8 poprzez podanie opcji utf8:
\usepackage[utf8]{inputenc}
Niestety skorowidz (indeks słów umieszczany zwykle na końcu dokumentu) jest wciąż tworzony starym programem makeindex, który nie wie co to UTF-8. W konsekwencji uzyskujemy skorowidz, w którym polskie znaki diakrytyczne są dziwnie posortowane.

Znalazłem w sieci program plmindex autorstwa Włodzimierza Macewicza; zob. np. Program plmindex, Wszystko o indeksowaniu, TeX na indeksie. Program plmindex sortoje słowa zgodnie z polskimi zasadami. Kompilacja programu przebiegła bez żadnych problemów pod moim Ubuntu. Niestety program plmindex również nie należy do najnowszych i nie zna on porządku znaków diakrytycznych kodowanych UTF-8. Potrafi natomiast sortować słowa kodowane za pomocą stron:
  • PL-mazowia,
  • PL-latin2,
  • PL-cp1250,
  • PL-cp852.
Jak już pisałem wcześniej, nie zamierzam zrezygnować z UTF-8 i przestawiać się np. na latin2 (ISO-8859-2), tylko po to, aby powstał dobrze posortowany skorowidz. Napisałem więc sobie skrypt, który tworzy skorowidz z prawidłowo posortowanymi słowami w UTF-8. Wystarczy wywołać jedną komendę, która filtruje plik thesis.idx utworzony przez LaTeX'a i w wyniku daje plik thesis.ind. Przypominam, że musimy ponownie wykonać kompilację dokumentu LaTeX'em, aby pojawił się skorowidz.
Filtrowanie odbywa się najpierw za pomocą sed'a (do latin2), a potem z powrotem za pomocą iconv'a (do UTF-8). W między czasie sortowane są słowa (kodowane w latin2) za pomocą programu plmindex.

Przejdźmy więc do rzeczy.
  1. Załóżmy, że mamy dokument dokument.tex, a nim przygotowany skorowidz (zob. komendę \makeindex)
    Kompilacja

    latex dokument.tex
    utworzy plik dokument.idx
  2. Teraz standardowo powinno się wywołać polecenie 'makeindex dokument'
    Ale nie dla dokumentów kodowanych w UTF-8. Zamiast tego wywołujemy polecenie:

    sed -f skrypt.sed dokument.idx | plmindex -L PL-latin2 | iconv --from-code=ISO-8859-2 --to-code=UTF-8 > dokument.ind
    W ten sposób otrzymamy plik dokument.ind z prawidłowo posortowanymi słowami oraz w kodowaniu UTF-8.

  3. Teraz wystarczy ponownie skompilować dokument

    latex dokument.tex
    W efekcie otrzymujemy plik dokument.dvi z prawidłowym skorowidzem.
Instrukcja w kroku 2. wymaga, oprócz programów sed, plmindex, iconv, pliku ze skryptem skrypt.sed, który umieściłem tutaj:

Mam nadzieję, że ktoś skorzysta.

sobota, 21 marca 2009

pdfcrop

Dzisiaj stanąłem przeciwko następującemu zadaniu. Oczywiście wszystko udało się wykonać za pomocą darmowych programów dostępnych, np. z Ubuntu.

Opis problemu:
Mam pewną książkę w pliku PDF i chciałbym ją sobie wydrukować. Wydaje się, że to żaden problem. Otwierasz np. w programie evince i dajesz Drukuj. Problem jest w tym, że dokument PDF zawiera zeskanowane strony, które nie zawsze mają odpowiedni margines. Chciałbym bowiem włożyć sobie wydrukowaną książkę do segregatora, a więc chciałbym podziurkować kartki dziurkaczem. Ponieważ czasami margines jest na tyle mały, więc miejscami mógłbym mieć dziury w tekscie.
Jak więc zmienić marginesy w dokumencie PDF?

Rozwiązanie:
Znalazłem w Google kilka rozwiązań. Najbardziej odpowiadało mi to, w którym używa się programu pdfcrop. Jego składnia jest bardzo prosta:
pdfcrop --margins '<left> <top> <right> <bottom>' in.pdf out.pdf
Użyłem zatem polecenia
pdfcrop --margins '30 10 30 10' in.pdf out.pdf
i z pliku in.pdf powstał out.pdf z szerszymi marginesami. Wydruk prezentuje się super, oczywiście w segregatorze.

piątek, 20 lutego 2009

Wyniki II etapu XVI Olimpiady Informatycznej

Są już oficjalne wyniki. Do finału zakwalifikowali się Ci, o których pisałem w tym poscie.
Jeszcze raz gratuluję!!!

Próg na finał w XVI Olimpiadzie Informartycznej

Wreszcie pojawił się komunikat ze strony Komitetu Olimpiady Informatycznej. Aby dostać się do finału należało zdobyć co najmniej 124 punkty.
Według wyliczeń Władka Kwaśnickiego, do finału XVI OI zakwalifikowali się następujący uczniowie z XIV LO we Wrocławiu i 49. Gimnazjum:
  • Bartek Dudek (3 klasa gimnazjum)
  • Wiktor Janas (3 klasa LO)
  • Karol Konaszyński (3 klasa LO)
  • Krzysztof Król (2 klasa LO)
  • Anna Piekarska (2 klasa LO)
Moje gratulacje! Życzę Wam zapału w treningu aż do samego finału.

środa, 28 stycznia 2009

Wyniki I etapu III Olimpiady Informatycznej Gimnazjalistów

Są już wyniki pierwszego etapu III Olimpiady Informatycznej Gimnazjalistów. Poniżej załączam dokument z wyróżnionymi uczestnikami moich Warsztatów Informatycznych.

Wszystkim, a zwłaszcza wyróżnionym, serdecznie gratuluję!!!

sobota, 3 stycznia 2009

Wczytywanie całego wiersza c.d.

Ponieważ w DevC++ nie kompiluje się funkcje getline, proponuję użyć funkcji gets. Oto przykład programu, który wczytuje cały wiersz:

#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;

char line[1000005];
int  n; // długość linii

int main()
{
 gets(line);
 n = strlen(line);
 
 printf("n=%d\n", n);
 printf("%s\n", line);
 
 printf("Znak po znaku:\n");
 for (int i=0; i<n; i++)
 {
  printf("line[%2d] = %c (kod ascii=%d)\n", i, line[i], line[i]);
 }
 return 0;
}

piątek, 2 stycznia 2009

Wczytywanie całego wiersza

Pomyślałem, że wielu gimnazjalistom przydałaby się wskazówka, jak wczytywać cały wiersz ze standardowego wejścia. Wiersz może zawierać znaki odstępu (spacje).
Poniższy program wczytuje cały pierwszy wiersz ze standardowego wejścia (aż do napotkania znaku nowej linii). Program zapamiętuję wiersz w tablicy znaków line, a liczbę wczytanych znaków zapamiętuje pod zmienną n (nie wliczając znaku końca wiersza, czyli znaku nowej linii, czyli znaku '\n').

#include<cstdio>
#include<cstdlib>

using namespace std;

char *line;
int n; // długość linii

int main()
{
line=NULL;
size_t mem_size;
n=getline(&line,&mem_size,stdin)-1;

printf("n=%d\n", n);
printf("%s\n", line);

printf("Znak po znaku:\n");
for (int i=0; i<n; i++)
{
printf("line[%2d] = %c (kod ascii=%d)\n", i, line[i], line[i]);
}
return 0;
}