czwartek, 9 czerwca 2016

Instalacja FreeFem++ w systemie Ubuntu 16.04

FreeFem++

Zapewne nie ma programisty, który by nie znał języka C++. Ale czy ktokolwiek z was słyszał o języku FreeFem++?
Ostatnio miałem z nim do czynienia w związku z problemem, który wymagał rozwiązywania równań różniczkowych cząstkowych metodą elementów skończonych (ang. finite element method, w skrócie FEM); zob. np. [MES, Wikipedia].
Język ten powstał w laboratorium Jacques-Louis Lions należącego do Universit´e Pierre et Marie Curie w Paryżu. Zdołał nawet zgromadzić wokół siebie całkiem sporą grupę użytkowników, głównie matematyków i fizyków z Francji. Można znaleźć sporo dokumentacji, co ważne, nawet w języku w angielskim :-). Głównym powodem, dla którego warto używać FreeFem++ jest prostota i bardzo efektywna wydajność wielu metod numerycznych, które współpracują z metodą FEM. Język umożliwia stosowanie wielu zaawansowanych technik rozwiązywania układów równań z macierzami rzadkimi, jakie często pojawiają się w metodzie FEM.
Strona główna projektu FreeFem++ znajduje się tutaj
http://www.freefem.org/
Stamtąd można pobrać właściwie całe oprogramowanie zarówno pod system Windows, Linux, jak i MacOS.

Instalacja w systemie Ubuntu 16.04

FreeFem++ można bez problemu zainstalować w systemie Ubuntu wykorzystując odpowiednio przygotowane pakiety, dostępne bezpośrednio z polecenia
sudo apt-get install freefem++ libfreefem++
Po wykonaniu tego polecenia w systemie będziemy mieli cały zestaw bibliotek, umieszczonych domyślnie w katalogu
/usr/lib/freefem++
wraz z programem FreeFem++, katalogu /usr/bin/

Kompilacja

Ponieważ pakiety FreeFem++ dostępne w repozytoriach Ubuntu 16.04 są w wersji 3.38, a obecnie dostępna wersja stabilna na stronie projektu to 3.46, więc pomyślałem, że warto spróbować dokonać kompilacji całego oprogramowania na własną rękę.
I tutaj zaczyna się szereg problemów.

Teoretycznie wszystkie szczegóły można znaleźć na stronie
http://www.freefem.org/ff++/linux.php
Pomyślałem jednak, że pomogę niektórym, bo nie wszystko idzie tak gładko, jak to opisali autorzy projektu.

Krok 1.

Po pierwsze, należy pobrać archiwum dostępne na stronie
http://www.freefem.org/ff++/ftp
Gdy pisałem tę notatkę najnowsza wersja znajduje się tutaj
http://www.freefem.org/ff++/ftp/freefem++-3.46.tar.gz
http://www.freefem.org/ff++/ftp/freefem++-3.46.tar.gz
Po pobraniu i próbie rozpakowania pojawia się drobny problem. Być może jest to wina przeglądarki Google Chrome, której używam. Otóż, na stronie jest napisane, że wielkość pliku to 25MB, podczas gdy po kliknięciu na powyższy link pobiera się plik o rozmiarze 125MB.
Chodzi o to, że pobrany plik jest jakby automatycznie rozpakowywany (programem gzip).
W ten sposób otrzymany plik nie jest archiwum tar.gz, lecz tylko tar i należy rozpakować je poleceniem
tar xf freefem++-3.46.tar.gz
a nie
tar zxf freefem++-3.46.tar.gz

Krok 2.

Po rozpakowaniu otrzymujemy katalog freefem++-3.46, do którego wchodzimy poleceniem
tar zxf freefem++-3.46
Zanim przejdziemy do kompilacji, a następnie do instalacji, najlepiej jest upewnić się, że mamy zainstalowane wymagane pakiety. Ja zainstalowałem wszystkie podane przez autorów:
sudo apt-get install cpp freeglut3-dev g++ gcc gfortran ghostscript m4 make patch pkg-config wget python libopenblas-dev liblapack-dev libhdf5-dev libgsl0-dev libscotch-dev libfftw3-dev libarpack2-dev libsuitesparse-dev libmumps-seq-dev libnlopt-dev coinor-libipopt-dev libgmm++-dev libtet1.5-dev autoconf automake autotools-dev bison flex gdb valgrind mercurial gnuplot-qt mpich
Następnie wykonujemy polecenia, tak jak to opisano na stronie:
./configure --enable-download
download/getall -a
make
sudo make install
Jeśli ostatniego kroku nie chcemy wykonywać jako root, wystarczy uprzednio skonfigurować
./configure --enable-download --prefix=/path_to_usr_local
Jeśli tego nie zrobimy, to domyślnie FreeFem++ zainstaluje się w katalogu /usr/local/bin/
Natomiast wszystkie biblioteki zainstalują się w katalogu /usr/local/lib/ff++/3.46/lib, a nagłówki w /usr/local/lib/ff++/3.46/include.

Teoretycznie FreeFem++ powinien być już dostępny.
Okazuje się, że jeszcze nie.

Biblioteka libhdf5.so.10

Przy pierwszej próbie uruchomienia FreeFem++ otrzymujemy błąd iż system nie potrafi odnaleźć biblioteki (łączonej dynamicznie) libhdf5.so.10. Nie udało mi się znaleźć dokładnie takiej biblioteki dla systemu Ubuntu 16.04. Jedyne co znalazłem to pakiet libhdf5-dev
sudo apt-get install libhdf5-dev
który daje, m.in., plik /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so
Wydaje mi się, że przyczyną problemu jest to, że w systemie Ubuntu mam zainstalowany python z dystrybucji anaconda3; zob. https://www.continuum.io/downloads
Wymaganą bibliotekę libhdf5.so.10 znalzłem właśnie tam, gdzie mam zainstalowaną anaconda3, czyli tutaj
anaconda3/lib/libhdf5.so.10
Aby jednak nie zmieniać LD_LIBRARY_PATH, czego nie lubię robić, dodałem do systemu takie łącze
cd /usr/lib/x86_64-linux-gnu/
sudo ln -s my_path/anaconda3/lib/libhdf5.so.10
Po wykonaniu
sudo ldconfig
wymagana biblioteka jest już dostępna i FreeFem++ uruchamia się bez problemów.

Biblioteki medit.so, tetgen.so, ...

Jeśli będziemy mieli dużo szczęścia, to próba uruchomienia skryptu *.edp (takie rozszerzenia mają programy napisane w języku FreeFem++) z poleceniem
load "medit"
load "msh3"
load "tetgen"
odnajdzie biblioteki
/usr/local/lib/ff++/3.46/lib/medit.so
/usr/local/lib/ff++/3.46/lib/msh3.so
/usr/local/lib/ff++/3.46/lib/tetgen.so
i wszystko przebiegnie bez problemów.
Swoją drogą warto uruchamiać FreeFem++ z polecenia
FreeFem++ -v 10
 a więc z większą liczbą verbosity (domyślnie jest 0). Możemy się wówczas przekonać, że nasz FreeFem++ szuka tych bibliotek w następującej kolejności (przykład dla medit.so)
addInitFunct : -10000 call : 1 (  ) 
addInitFunct : -20 call : 1 ( lg_fem  UMFPACK  ) lg_mesh  glumesh2D lg_mesh3 eigenvalue 
load "medit"
test dlopen(/usr/lib/freefem++/medit)= 0
load error was: /usr/lib/freefem++/medit: cannot open shared object file: No such file or directory
test dlopen(/usr/lib/freefem++/medit.so)= 0
load error was: /usr/lib/freefem++/medit.so: cannot open shared object file: No such file or directory
test dlopen(./medit)= 0
load error was: ./medit: cannot open shared object file: No such file or directory
test dlopen(./medit.so)= 0
load error was: ./medit.so: cannot open shared object file: No such file or directory
test dlopen(/usr/local/lib/ff++/3.46/lib/medit)= 0
load error was: /usr/local/lib/ff++/3.46/lib/medit: cannot open shared object file: No such file or directory
 ****  medit.cpp ****
 -- addInitFunct: 10000 1 medit.cpp
test dlopen(/usr/local/lib/ff++/3.46/lib/medit.so)= 0x227e1d0
(load: dlopen /usr/local/lib/ff++/3.46/lib/medit.so 0x227e1d0)  callInitsFunct : 1
 addInitFunct : 10000 call : 1 ( 
 loadfile medit.cpp
 load:popen.cpp  
 ) 
Widzimy więc, że program znalazł potrzebną bibliotekę dopiero przy szóstej próbie.

Uwaga

Co ważne, jeśli ktoś zdecyduje się posiadać dwie wersje FreeFem++ i zostawi zainstalowny pakiet libfreefem++ z repozytorium Ubuntu 16.04, to powyższy proces wyszukiwania np. biblioteki medit.so zakończy się już przy drugiej próbie, tj. znajdzie plik
/usr/lib/freefem++/medit.so
czyli biblioteki dla wersji 3.38 (taki jest obecny stan repozytorium Ubuntu 16.04).
Może zakończyć to się problemem, gdy będziemy uruchamiali skompilowany przez nas program FreeFem++ w wersji 3.46.

Testy

Jeszcze nie testowałem użycia takich bibliotek jak np. MPI, czy różnych metod rozwiązywania układów równań dla macierzy rzadkich. Na potwierdzenie sukcesu swojej kompilacji mogę powiedzieć tylko tyle, że udało mi się przejść wszystkie testy dostępne z polecenia
make check

Zakończenie

Życzę miłego używania najnowszej wersji FreeFem++ w systemie Ubuntu 16.04

czwartek, 12 marca 2015

Plan zawodów II etapu OIG - okręg Wrocław

Wszystkim uczestnikom II etapu Olimpiady Informatycznej Gimnazjalistów (dotyczy tylko zakwalifikowanych do okręgu dolnośląskiego) przypominam, że zawody odbędą się w sobotę 14 marca.

Miejsce: budynek Instytutu Informatyki Uniwersytetu Wrocławskiego, ul. Joliot-Curie 15, Wrocław

Warto zapoznać się z informacjami od organizatorów:
http://oig.edu.pl/2015/03/03/informacje-organizacyjne-dotyczace-ii-etapu-zawodow-ix-olimpiady-informatycznej-gimnazjalistow-%E2%80%93-14-marca-2015/
Plan zawodów:
8:30 – 9:00 - rejestracja uczestników zawodów indywidualnych
9:00 – 9:30 - sesja próbna zawodów indywidualnych
9:30 – 11:45 - sesja główna zawodów indywidualnych

12:00 – 13:00 - przerwa

13:00 – 13:30 - rejestracja uczestników zawodów drużynowych
13:30 – 14:00 - sesja próbna zawodów drużynowych
14:00 – 16:15 - sesja główna zawodów drużynowych

Proszę pamiętać o zabraniu legitymacji lub innego dokumentu potwierdzającego tożsamość.

W tym roku zaświadczenia uczestnictwa w zawodach wystawiane będą tylko na indywidualne życzenie uczestnika. Proszę o informację (przez e-mail) wszystkich zainteresowanych.

Osoby, które jeszcze nie zadeklarowały systemu operacyjnego, na którym będą chciały pracować podczas zawodów, proszone są o wysłanie tej informacji jak najszybciej.
Osoby, które nic nie zadeklarują, otrzymają domyślnie środowisko pod systemem Windows.

Do zobaczenia!

Harmonogram zawodów IX Olimpiady Informatycznej Gimnazjalistów

Jakiś czas temu informacje o harmonogramie zawodów OIG były dostępne na stronie organizatorów:
 http://oig.edu.pl/2014/10/31/harmonogram-olimpiady-informatycznej-gimnazjalistow-w-roku-szkolnym-20142015/
 
Ponieważ jednak niektóre informacje lubią im znikać, załączam to, co ustalono na początku:
  • I etap:
    • Zawody indywidualne: 17.11 – 15.12.2014
      • test: 3.12.2014
    • Zawody drużynowe: 17.12. 2014
  • II etap: 14.03.2015
  • III etap: 22 – 24.05.2014

piątek, 14 grudnia 2012

Drzewo przedziałowe

Na mojej RNO-WIKI pojawiły się ostatnio implementacje dwóch struktur danych:

Zachęcam do lektury i przeanalizowania kodu. Implementacje są chyba bardzo dobre, tzn. złożoność pojedynczych operacji to O( log N ).

piątek, 25 maja 2012

Wielka Przesmycka

Wielka Przesmycka 2012

Niebawem ruszy kolejna edycja konkursu Wielka Przesmycka.

Dla tych co jeszcze nie mieli przyjemności brać w tym udziału, wyjaśnię, że jest to konkurs w programowaniu. Zwykle był na bardzo wysokim poziomie. Brali w nim udział zarówno studenci i absolwenci wyższych uczelni, czyli tzw. profesjonaliści ;-)
Tym razem zawody będą ciut bardziej dostępne dla młodych. Wydaje mi się, że niektóre zadania, o ile mogę o nich pisać, będą w zasięgu gimnazjalistów i uczniów szkół ponadgimnazjalnych. Oczywiście nie mam na myśli informatyków, którzy biorą udział w konkursach typu DialnetMasters. Chodzi mi raczej o tych, którzy startują w olimpiadach informatycznych, takich jak OIG, czy OI.

Zawody odbędą się 10 czerwca u nas w Instytucie Informatyki Uniwersytetu Wrocławskiego.
Rejestracja rusza już 1 czerwca.
Strona zawodów: przesmycka.cs.uni.wroc.pl

Nie przegapcie!

niedziela, 15 maja 2011

CM7 dla Milestone

Nie będę się chwalił ile zajęło mi wczoraj instalowanie najnowszego CM7 na Motorolę Milestone. Zupełnie też nie wiem czemu nie mogłem dzisiaj spać. Obudziłem się i pomyślałem, że napiszę ten artykuł, aby wyjaśnić starszemu pokoleniu jak można to zrobić; młodsi raczej nie potrzebują przewodników pisanych w tutejszym stylu.

Przejdźmy więc do rzeczy. Artykuł ten opisuje dość szczegółowo, w jaki sposób można zainstalować system operacyjny CyanogenMod (w skrócie CM) na telefonie Motorola Milestone.
Mimo tego tego, że w Internecie jest mnóstwo przewodników i porad jak to zrobić, postanowiłem napisać własny. Wydaje mi się, że powodem, dla którego spędziłem tyle czasu na instalację, którego nie podam, jest to, iż przewodniki te zawierały tylko kluczowe operacje o magicznych dla mnie nazwach, jak flashowanie romu, 3 x wipe lub nandroid backup. Pozwolę więc sobie podać dużo więcej szczegółów i istotnych informacji dla takich nieszczęśników, który nie kumają tak szybko, jak większość nastolatków, którzy piszą tego typu przewodniki.

W przeciwieństwie do moich poprzedników, nie będę tutaj umieszczał linków typu: tutaj jest paczka do wszystkiego, ściągnij ROM, pobierz flasha, itp., które nic czytelnikowi nie mówią, a nawet odstraszają każdego, kto odrobinę chciałby wiedzieć co i po co ma zostać pobrane na dysk. Co gorsze, gdy taki link przestanie działać, a często wczoraj miałem z tym do czynienia, to czytelnik kompletnie nie wie jak można obejść taki problem.

Krok 0. Podstawowe informacje.
Zanim przejdziesz do następnych kroków, muszę Cię powiadomić o tym, co zrozumiałem w każdym przewodniku. Mianowicie, iż operację zmiany systemu operacyjnego wykonujesz na własne ryzyko. W sieci jest mnóstwo wątków poświęconych problemom tych, którym to się nie udało. Pewnie domyślasz się już dlaczego. Przejdźmy więc dalej.

Oczywiście nie będę tutaj próbował zamieniać angielskich nazw na polskie odpowiedniki, bo przewodnik ten przestałby być czytelny. Tak musisz wiedzieć co to jest bootloader (pol. program ładujący się przy starcie telefonu, coś jakby BIOS w komputerze), czy backup (pol. kopia zapasowa).

Część 1.
Wiele źródeł opisujących instalację CM7 (wersja 7) opiera się na czymś, co nazywają OpenRecovery. Jest to program, za pomocą którego można np. zainstalować nowy system operacyjny, taki jak CM7. Jak to zrobić opisałem dopiero w części 2, gdyż okazuje się, że zanim uruchomisz OpenRecovery na sowim telefonie musisz najpierw wgrać nowy bootloader. Wielu nastolatków po prostu zapominało o tym powiadomić swojego czytelnika.

Ponieważ oryginalne oprogramowanie Motoroli ma jakoś zablokowany bootloader (program ładujący przy starcie) należy go najpierw odblokować. Dopiero wtedy będzie można załadować przy starcie telefonu takie programy jak OpenRecovery.

Aby odblokować bootloadera Motoroli, należy użyć oprogramowania od Motoroli :-), ale już nie od nich --- program bootloadera i to wcale nie jest śmieszne. Jak już wspomniałem wcześniej, bootloader w telefonie to coś jakby BIOS w komputerze. Aby wgrać nowy bootloader musisz zdobyć:
  • flash bootloadera (obraz programu ładującego, zwykle plik z rozszerzeniem sbf),
  • program, za pomocą którego wgrasz flash do telefonu.
To pierwsze można znaleźć w Internecie pod hasłem vulnerable flash milestone. Najbardziej zaufane źródło jest chyba tutaj: http://android.doshaska.net/rootable.
Drugie zaś wymaga czegoś, co może zniechęcić wielu, którzy obawiają się wirusów. Niestety program za pomocą którego wgrasz flash jest gotowym, wykonywalnym programem zarówno pod system Windows, jak i Linux. Ponieważ, gdy tylko pojawiają się obawy o wirusy, przechodzę pod system Windows, więc podam tutaj rozwiązanie dla użytkowników tego właśnie systemu. Ci drudzy nie powinni być na mnie źli, bo prawie każdy użytkownik Linuxa, ma gdzieś w domu również Windowsa. Program się nazywa RSDLite (produkt Motoroli) i nie mam pojęcia czy da się go zdobyć w legalny sposób. W wielu przewodnikach zauważyłem, że były jakieś problemy pod systemem Vista lub Win7. Ja miałem XP i niczego takiego nie zauważyłem. Może znów problemy te wzięły się z tego, że nie ma w sieci wielu przewodników takich, jak ten.
Na podanej wcześniej stronie, która wzbudziła moje zaufanie można pobrać pliki potrzebne do wykonania następujących czynności w celu wgrania nowego bootloadera. Zanim je podam, wiedz, że po ich wykonaniu z Twoim telefonem właściwie nic się nie stanie, tzn. system operacyjny Android i karta pamięci SD nie zmienią się wcale. Zmieni się tylko bootloader (coś jakby BIOS w komputerze). Oto czynności do wykonania:
  1. Pobierz program RSDLite 4.6; link znajdziesz tutaj.
  2. Pobierz plik flash (u mnie był to plik vulnerable_recovery_only_RAMDLD90_78.sbf); link również znajdziesz tutaj.
  3. Wyłącz swój telefon Motorola Milestone
  4. Wykonaj następujące czynności w celu uruchomienia telefonu w trybie bootloadera:
    • wysuń klawiaturę telefonu
    • wciśnij D-Pad do góry (w kierunku wyświetlacza) i przycisk Power, tzn. trzymając wciśnięty D-Pad włącz telefon
    • Powinien uruchomić się bootloader
  5. Podłącz telefon do komputera kablem USB.
  6. Włącz program RSDLite (wymagana wcześniejsza instalacja).
  7. Wybierz plik flash (rozszerzenie sbf) pobrany w kroku 2 i kliknij przycisk START.
  8. Zaczekaj troszkę (ok. 3 minuty), aż w programie RSDLite pojawi się słowo PASS w kolumnie "Status", albo "Progress" (nie pamiętam już).
    Nie zdziw się, gdy w tym czasie Twój telefon uruchomi się ponownie. Tak ma się stać.
Podsumowując, wgrałeś w ten sposób na partycję rozruchową nowy bootloader, który przyda się w części 3. Uwaga uruchamia się go w troszkę inny sposób, niż oryginalny bootloader od Motoroli. Instrukcję uruchamiania zobaczysz w części 3.

Część 2.
Wszystko, co skomplikowane jest już prawie za nami. Teraz pozostaje zająć się tym, co nazywają ROMami. ROM to nic innego, jak obraz systemu operacyjnego dla telefonu komórkowego; to coś jakby pliki *.iso dla Ubuntu. Aby jednak móc instalować różne ROMy (przepraszam), musisz mieć do tego odpowiedni program w swoim telefonie. Program ten będziesz musiał uruchomić w trybie bootloadera, gdyż z oczywistych powodów, pod działającym systemem Android nie można w tym czasie zainstalować nowego; choć kiedyś udało mi się to zrobić z Windowsem 98 :-). Najbardziej popularnym oprogramowanie do instalowania ROMów jest chyba OpenRecovery (od Androidiani), którego nazwa mówi, że służy on właściwie do czegoś innego. Można za jego pomocą wykonać wiele czynności archiwizujących oraz wspomniane magiczne czynności, jak: nandroid backup, czy 3 x wipe. Zaraz wyjaśnię.
Aby móc uruchomić program OpenRecovery na swoim telefonie, musisz go najpierw pobrać i zapisać na karcie SD w katalogu głównym:
  1. Na oficjalnej stronie androidiani-openrocevery znajdziesz dział "Downloads", gdzie można pobrać archiwum z programem (u mnie był to plik OpenRecovery-3_3.zip). Pobierz plik na swój komputer i go rozpakuj (plik oczywiście).
  2. Archiwum powinno zawierać dwie rzeczy: katalog OpenRecovery i plik update.zip. Wgraj je do katalogu głównego karty SD telefonu.
W ten sposób przygotowałeś sobie środowisko do uruchamiania OpenRecovery. Możesz spróbować zrobić to już teraz, ale jeszcze się wstrzymaj, bo nie masz jeszcze pliku ROM z nowym systemem operacyjnym Android.
Jak więc widzicie, trzeba było sporo napisać, aby móc mówić o tym, co nastolatkowie pisali w pierwszym zdaniu - CyanogenMod, a właściwie to jego siódma wersja, czyli CM7. Jest to obraz systemu operacyjnego, obecnie w wersji Android Gingerbread 2.3, działającego na jądrze Androida 2.2, bo nic lepszego na Motorolę Milestone na pewno się już nie ukaże :-( (sorry koledzy, to nie ja was namawiałem na ten telefon). Oficjalna wersja systemu operacyjnego dla Motoroli to Android 2.2, który tak naprawdę można było sobie legalnie zainstalować w Polsce mniej więcej miesiąc temu. Ja głupi oczywiście czekałem na tę wersję, bo nie wiedziałem jak zainstalować CM7.
Przejdźmy więc do pobrania CM7 na swój komputer. Oficjalna strona CyanogenMod podaje brak wsparcia dla modelu Milestone. Opiekują się natomiast modelem Droid --- jej amerykańskim odpowiednikiem. Niestety to, co podają dla Droida, nie działa dla Milestona. Należy więc korzystać z tego, co robią zasłużeni programiści, jak nadlabak. Jego profil na portalu github znajdziesz tutaj. To właśnie tam szukaj najnowszych wersji systemów operacyjnych do zainstalowania.
Pisząc ten przewodnik zauważyłem, że kilka godzin temu pojawił się właśnie najnowszy ROM:
Ja natomiast pobrałem wczoraj wersję 7.1.0 RC2.1 11.05.11 i na razie nie mam ochoty tego aktualizować. Wystarczy mi to co mam, a za jakiś czas, gdy trochę ochłonę, przejdę na nowszą wersję. Podsumowując
  1. Pobierz wybraną wersję CM7 (zob. linki powyżej) na swój komputer. Będzie to dość spory plik ZIP (ok. 97 MB).
  2. Skopiuj pobrane archiwum ZIP (nie rozpakowuj niczego) na kartę pamięci SD telefonu, do katalogu OpenRecovery/updates
Oprócz tego, należy (przynajmniej w pobranej przeze mnie wersji) jeszcze pobrać archiwum z aplikacjami Google. Zakładam, że chcesz używać Gmaila, Google Maps, itp. Z jakichś powodów (chyba licencyjnych) programista nadlabak tego nie umieszcza w swoich obrazach CM7. Musisz więc pobrać plik gapps-gb-xxxxxxxx-signed.zip, gdzie litery xxx oznaczają datę. Najbardziej zaufane źródło plików z aplikacjami gapps jest tutaj i tutaj. Na tej pierwszej stronie podają, że zaleca się do CM7 pobrać wersję z 7 marca, czyli plik gapps-gb-20110307-signed.zip, ja natomiast pobrałem wersję
która ma ponoć Google Talk w wersji z kamerą. Na razie tego nie testowałem, ale gdy zadzwoniłem do znajomego, to rzeczywiście włączyła się kamera :-).
Musisz więc wykonać:
  • Skopiuj archiwum gapps-gb-20110503-signed.zip do katalogu OpenRecovery/updates
Jak widzisz, to, co sobie wrzucisz do tego katalogu, będziesz mógł zainstalować w telefonie. Właśnie po to zrootowałeś (znów przepraszam za język) swój telefon.

Część 3.
W poprzedniej części przygotowałeś na karcie SD potrzebne oprogramowanie do instalacji nowego systemu operacyjnego. W skrócie były to:
  • OpenRecovery
  • CyanogenMod wer. 7 + aplikacje Google
Musisz teraz uruchomić telefon w trybie nowego bootloadera:
  • Wyłącz telefon (odłącz od niego kabel USB)
  • Wysuń klawiaturę.
  • Trzymając wciśnięty klawisz 'X' włącz telefon. Trzymaj wciśnięty klawisz 'X' dopóki nie pojawi się trójkąt
    Możesz już puścić klawisz 'X'. W wielu instrukcjach podano, że jeśli poniższy krok się nie udał, należy spróbować go wykonać z wciśniętym przyciskiem aparatu.
  • Następnie wciśnij przycisk Volume Up (głośności do góry) i trzymając go wciśniętego naciśnij przycisk aparatu. Powinien urumić się poniższy program. Możesz już puścić wszystkie przyciski (tylko nie upuść telefonu).
Wykonaj teraz czynność apply sdcard:update.zip. Możesz to zrobić używając wspomnianego D-Pada i przycisku OK (jako enter). W ten sposób powinien uruchomić się program OpenRecovery. To już prawie koniec. Teraz w jego menu poszukaj nandroid backup. Nie wiem co to robi, ale domyślam się, że coś archiwizuje. Może się to pewnie przydać, w razie gdyby podczas instalacji wystąpiły jakieś błędy. Ja wybrałem backup ALL i musiałem troszkę poczekać (ok. 5 minut).
Następnie poszukaj w menu słów WIPE. Te magiczne słowa wymażą Twoje ustawienia w telefonie. Jest to więc pierwsza operacja, z którą wiąże się utrata ustawień. WIPE przywróci ustawienia fabryczne Twojego telefonu. Twórcy CM7 proponują wykonać aż trzy rodzaje WIPEów. Nie pamiętam ich nazw, ale łatwo je odnaleźć w menu programu OpenRecovery. Można je wykonać w dowolnej kolejności.

A teraz instalacja nowego Androida. Wybierz w menu OpenRecovery Apply Update. Powinieneś wtedy zobaczyć zawartość tego, co wgrałeś do katalogu OpenRecovery/updates. Zainstaluj więc CM7 a następnie aplikacje Google. To pierwsze może trochę potrwać (ok 5 minut).

To wszystko. Wybierz w menu OpenRecovery "Reboot" i poczekaj, aż uruchomi się Twój nowy system Android 2.3.

Wiem, że przewodnik ten jest trochę rozwlekły, ale mam nadzieję, że komuś się to przydało.

Dodam raz jeszcze, że tego typu operacje zawsze niosą ze sobą jakieś ryzyko. Na przykład poprzez złe oprogramowanie może uszkodzić się Twój telefon. Często bowiem programiści domyślnie ustawiają parametry telefonu niezgodne z jego oficjalną specyfikacją. Chodzi mi tu np. o podkręcanie procesora, albo zmiana ustawień kamery. Dlatego zabawę taką najlepiej przeprowadzać na jakimś telefonie zastępczym, nie tym --- do codziennego użytku, na którym potrzebne są jedynie funkcje: zadzwoń/odbierz, wyślij/odbierz SMS/MMS/E-MAIL, działaj na baterii przez co najmniej 3 dni.
Jeśli chodzi o mnie, to akurat miałem tę swobodę, że gdy coś wybuchnie, to wciąż będę w sieci GSM.
Pozdrawiam

czwartek, 13 stycznia 2011

Olimpiada informatyczna dla gimnazjalistów

Kilka dni temu rozpoczęła się Olimpiada Informatyczna Gimnazjalistów. Wreszcie Olimpiada ma swoją własną stronę:

W tym roku zdziwiłem się bardzo, gdy zauważyłem, że zawodnicy mogą startować zarówno indywidualnie, jak i drużynowo.
Na razie tylko wstępnie spojrzałem na zadania. Wydaje mi się, że w tym roku są one dużo prostsze.

wtorek, 4 stycznia 2011

Bug w kolorowaniu składni przez geany

Ostatnio znalazłem kilka błędów w oprogramowaniu, z którym pracuję prawie codziennie. Tym razem to przez edytor geany (pod Ubuntu) straciłem kilka godzin szukając w swoim programie błędu, którego tak naprawdę nigdzie nie było.
Chodzi o kolorowanie składni, jak serwuje nam bardzo popularny edytor geany, szeroko dostępny pod wiele dystrybucji Linuksa, m. in. pod Ubuntu, którego używam. Otóż wspomniany edytor ma nieprawidłowe reguły kolorowania składni. Dokładniej chodzi o komentarze zakończone znakiem '\', który aż wstyd mi się przyznać użyłem przez przypadek w swoim kodzie. Nie ważne. Edytor powinien oznaczyć wówczas następną linię również jako komentarz. Niestety geany tego nie robi. Jako dowód załączam porównanie z innymi edytorami: kwrite i gedit, które prawidłowo rozpoznają komentarze.
wierz nr 4: kwrite i gedit prawidłowo rozpoznawają następna linię po znaku '\' jako komentarz; geany --- niestety nie :-(
Nie wiem kto za to zapłaci, ale przypomnę, że straciłem przez to kilka godzin.

Wszystkiego dobrego w Nowym Roku 2011!
Rafał

sobota, 23 października 2010

SKI 2010

Informuję, że w poniedziałek 25 października rusza kolejna edycja konkursu SKI 2010 (http://informatyka.wroc.pl/ski2010), organizowanego pod szyldem Instytutu Informatyki UWr, na Wrocławskim Portalu Informatycznym (http://informatyka.wroc.pl).


Wszelkie informacje znajdziecie na stronie konkursu:

Jak zwykle, na najlepszych czekają nagrody oraz udział w zawodach CERC
2010 (http://cepc10.ii.uni.wroc.pl/). Konkurs przeznaczony jest głównie dla uczniów gimnazjów i liceów. Pozostali mogą wziąć udział, lecz będą wyłączeni z rywalizacji o nagrody.


Konkurs przewiduje 5 rund o rosnącym stopniu trudności. W każdej do rozwiązania będzie od 2 do 3 zadań. Oto terminarz konkursu:
 * Runda próbna: 25.10.2010 20:00:00 - 27.10.2010 20:00:00
 * Runda I: 27.10.2010 20:00:00 - 29.10.2010 23:59:59
 * Runda II: 28.10.2010 20:00:00 - 30.10.2010 23:59:59
 * Runda III: 30.10.2010 10:00:00 - 01.11.2010 23:59:59
 * Runda IV: 01.11.2010 20:00:00 - 05.11.2010 23:59:59
 * Runda V: 04.11.2010 20:00:00 - 07.11.2010 23:59:59


Powodzenia
// Rafał Nowak

poniedziałek, 18 października 2010

Ruszyła XVIII Olimpiada Informatyczna

Na witrynie Olimpiady Informatycznej pojawiły się dzisiaj rano zadania z 1. etapu.

Jak zwykle do rozwiązania jest pięć ciekawych.

Termianarz Olimpiady dostępny jest tutaj:


Terminarz


Data


Wydarzenie
18.10.2010 - 15.11.2010 zawody I stopnia
10.12.2010 godz. 18:00 ogłoszenie wyników zawodów I stopnia w witrynie Olimpiady
15.12.2010 rozesłanie pocztą materiałów Olimpiady i Asseco
(w tym związanych z zawodami I stopnia) do wszystkich uczestników Olimpiady
08.02.2011 - 10.02.2011 zawody II stopnia
18.02.2011 godz. 18:00 ogłoszenie wyników zawodów II stopnia w witrynie Olimpiady
05.04.2011 - 09.04.2011 zawody III stopnia
09.04.2011 Uroczystość zakończenia XVII Olimpiady

środa, 8 września 2010

Informatyka



Chciałbym się pochwalić moją nową stroną internetową:

Jest to niedawno utworzona strona, na której zamierzam umieszczać wszelkie informacje dla moich uczniów i nie tylko. Pomyślałem sobie, aby zebrać cały mój dorobek dydaktyczny, który błądzi gdzieś w Światowej Pajęczynie po różnych stronach, takich jak www.rafalnowak.pl/wiwww.rafalnowak.pl/wowww.rafalnowak.pl/lowww.rafalnowak.pl/moodle, www.rafalnowak.pl/wiki, itp. ;-)

Teraz uczniowie mogą wszystko znaleźć na jednej stronie --- informatyka.rafalnowak.pl

piątek, 27 sierpnia 2010

Wolfram Alpha

WolframAlpha - jest dla mnie najlepszym systemem algebry komputerowej, dostępnym za darmo na stronie http://www.wolframalpha.com/

Wpisz np. słowo "1/(x^2+y^2)", albo "Wrocław" :-)


Aby dodać WolframAlpha na własną stronę "iGoogle", wystarczy dodać gadżet podając URL
www.wolframalpha.com/downloads/WolframAlphaGoogleGadget.xml

środa, 30 czerwca 2010

Czternastka zdominowała DZPZ

To niesamowite, jak XIV LO, czyli moi uczniowie pokonali pozostałe szkoły w tegorocznych Dolnośląskich Zawodach Drużynowych w Programowaniu Zespołowym.

Wyniki dostępne są na tej stronie. Pozwolę sobie tutaj wkleić kilka pierwszych miejsc:
Ranking drużyn szkół średnich

MiejsceNazwaSkład drużynyUczelniaCzasLiczba rozwiązanych zadańRozwiązane zadania
1team29Bartłomiej Dudek
Maciej Dulęba
Mateusz Gołębiewski
Wrocław XIV LO6466AB**C***DE*F
2team02Krzysztof Król
Janusz Wróbel
Dariusz Bukowski
Wrocław XIV LO7446ABC*D*EF
3team16Maciej Szeptuch
Mateusz Markiewicz
Łukasz Dąbek
Wrocław XIV LO5255BC*DEF
4team19Michał Łowicki
Wojciech Kozaczewski
Rafał Cieślak
Wrocław III LO6635A*BDE*F*
5team03Piotr Jagiełło
Kacper Sowa
Piotr Strzelecki
Wrocław XIV LO7165AB*DE*F
6team20Karol Kontny
Kamil Sutkowski
Wrocław X LO2973BE**F
7team09Jakub Kowalski
Maciej Gerus
Piotr Pytlik
Wrocław III LO4613B*D**E
8team14Wojciech Janczewski
Robert Kozak
Kamil Markiewicz
Jawor 1 Gimnazjum6083D**EF**
9team10Mateusz Kowalski
Tomasz Staniewicz
Adam Laskowski
Legnica I LO1842E*F
10team11Michał Kiełbowicz
Michał Szmidt
Michał Kownacki
Wrocław XIV LO2462DF
11team23Katarzyna Urbaniak
Joanna Musiał
Dagmara Fałowska
Wrocław XIV LO2642DF
Dodam tylko że w powyższym rankingu znajdują się wszystkie drużyny XIV LO, a w ogóle było prawie 30 wszystkich drużyn z całego dolnego śląska.

wtorek, 27 kwietnia 2010

x86

Niedawno zainstalowałem sobie najnowsze Ubuntu 10.04. Pomijając to, że aktualizacja z 9.10 całkowicie zablokowała mój komputer (pojawiał się napis Starting up ...), wybrałem tym razem wersję 32 bitową, mimo że mój komputer mógłby pracować na systemie 64 bitowym. Tak zresztą było poprzednio; już ładnych paru lat pracowałem na 64 bitowym systemie. Coś mnie wzięło i chciałem sprawdzić, jak to jest na 32 bitach. I co?

Wszystko elegancko działa. Lepiej, działa bez żadnych problemów. Na przykład java, adobe reader, skype, itd., czyli wszystko to, z czym musiałem się kiedyś męczyć, aby zadziałało na 64 bitowym systemie.
Nie widzę też żadnego spadku wydajności. System działa rewelacyjnie. Żałuję, że wcześniej nie przesiadłem się na 32 bity.

PS. Nie sprawdzałem jeszcze ile mam dostępnej pamięci RAM; ciekawe czy tylko ok 3 GB.

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.