Skip to main content

blog.dsinf.net

2012

Problem 8 hetmanów z dodawalnym przez użytkownika pierwszym
·463 words·3 mins
Blog.dsinf.net Algorytmika C++
Problem, a raczej ćwiczenie programistyczne jest dość szeroko znany - jak ustawić na kwadratowej szachownicy 8x8 dokładnie 8 hetmanów tak, żeby się nie “biły” lub “widziały” tj. żeby w każdej kolumnie, wierszu i skosie był maksymalnie jeden hetman. Moje rozwiązanie problemu postanowiłem poszerzyć o możliwość podania przez użytkownika pozycji pierwszego hetmana - pozwala to ukazać realną pracę algorytmu oraz zgłębić problem rekurencji z powrotami. Jeśli spojrzeć na aspekt definiowalnego przez użytkownika pierwszego hetmana to jest to pionerski algorytm, gdyż w momencie tworzenia na pewno nie był dostępny albo był bardzo trudno dostępny w Internecie.
Wykres ciepłoty komputera
·373 words·2 mins
Blog.dsinf.net Acpi Linux Perl
Skrypt dość prosty - odczytuje aktualną temperaturę komputera, zapisuje do rotacyjnego loga i tworzy estetyczny wykres przy pomocy biblioteki GD. Oczywiście działa tylko pod Linuksem 😉 Językiem tworzenia został wybrany Perl - głównie ze względu na początki mojej przygody z tym językiem, ale także ze względu na łatwość parsowania plików. Jest to następca skryptu PHP o tej samej nazwie - ciepło, który jednak nie tworzył żadnego loga, a jedynie odczytywał wynik acpi -Vi odpwoiednio kolorował wynik. Źródła protoplasty cieplo.pl zaginęły. Poniżej źródło z sierpnia 2011:
Czytnik losowych cytatów z bash.org.pl
·495 words·3 mins
Blog.dsinf.net C++
Pierwszy z cyklu odgrzebany program - czytnik losowych cytatów z bash.org.pl. Zrodził się z potrzeby - przy przeglądaniu losowych tekstów na samej stronie polskiego bash’a to co mnie denerwowało to przede wszystkim reklamy oraz zmieniający pozycję w trakcie ładowania witryny przycisk losowy. Rozwiązanie? Prosta aplikacja w niechlujnym C#. Jak pomyślał, tak zrobił. Jedyne, co warte uwagi w samym algorytmie to metoda ściągająca zawartość strony i wyświetlająca ją tak jak przeglądarka: znaczniki <br />, &lt i inne na graficzne odpowiedniki.
Języki programowania – z przymrużeniem oka
·35 words·1 min
Blog.dsinf.net
Obrazek odgrzebany po pół roku (wyzej) i stary dowcip: 1)-Puk, puk -Kto tam? -C++ 2)-Puk, puk -Kto tam //po pół godziny -Java 3)-Puk,puk -assembler “If you understand this jokes you probably don’t have friends” 😉
n900 ciągle żywa
·533 words·3 mins
Blog.dsinf.net N900
Jak wiadomo Nokia N900 to najlepsze urządzenie klasy… no właśnie jakiej? Wg. producenta “tablet internetowy z funkcją telefonu” (czyt. znakomity następca tabletów serii N8x0 z 3G na pokładzie). Bo powiedzieć o n900 smartfon to obraza. Żeby to udowodnić kilka przykładów: unikalny system operacyjny - Maemo 5 z aktualizacją Comunity SSU, prawdziwy multitasking, fabrycznie zrootowany (chociaż jak Linuks sam z siebie może nie mieć roota?) oraz odblokowany bootloader. Dla osób, które o N900 nie słyszały wspomnę kilka słów o jej wspaniałej budowie - rozsuwana klawiatura, lekko ceglasta sylwetka, CPU jak na czasy produkcji z najwyższej półki i naturalnie lepsze od panującejo iphone’a - cudo Texas Instruments ARM Cortex A8 600MHz, grafika PowerVR SGX 530 z OpenGL dwójką, proste, ale praktyczne wyjście wideo z trójkanałowego mini-jacka, pamięć flash 32GB, RAM 256MB+750MB swap’a oraz… port podczerwieni. Procesor jak procesor. Ktoś powie, że dzisiaj słaby. Ale jakie mobilne CPU można podkręcić dwukrotnie (tak, na tyle jest odblokowany mnożnik). A port podczerwieni? Już instkrukcja zdradza, że został wsadzony jako zapchajdziura: żadna aplikacja systemowa go nie używa, ale wiele aplikacji - tak (w tym polski projekt z tego roku - pierogi). Obok n900 nie można było przejść bez kilku(dziesięciu) słów wstępu 😉 Pytanie, które nurtuje wielu obserwatorów świata open source i samych użytkowników jest dość trudne: co powoduje, że jeden telefon, który ma 3 lata, a producent nic z nim nie robi zgromadził taką społeczność? Czy to zasługa hardware’u? Chyba nie bo w dzisiejszych czasach każdy nowy smartfon z najniższej półki da porównywalną/większą moc. To chyba zasługa tego, że to “najmniejszy komputer w kieszeni” (autor tego cytatu pozostanie anonimowy) - da się programować, kompilować spore projekty, bez problemu stoi na tym serwer WWW i MySQL, podobno da się się drukować przez CUPS, chodzi OpenOffice - niezbyt wygodny, ale pełnowymiarowy pakiet jest, da się wgrać (prawie) każdego Linuksa. Wgrać inny system niż stockowy - to brzmi ciekawie. No i właśnie o tym miał być artykuł, ale bez pochwalenia koncepcji o numerze RX-51 się nie da 😉 Co poza Maemo 5 da się wgrać? Po pierwsze MeeGo 1.2 Community Edition. Działa (bardzo bardzo) topornie i ewidntnie nowe Qt nie wyrabia na 600MHz, bo overclockingu nie ma. Gdyby jednak ten system jakkolwiek działał to poza przeglądarką, kalkulatorem, kalendarzem niewiele uruchomimy. Kolejny system jest niemal oczywisty - Android. Obecnie do repozytorium dodano nawet instalkę z wizardem do wgrania systemu na kartę microSD. Android jak Android. Szkoda, że nie ma ekranu wprowadzania PINu (w innych telefonach to producent dodaje kawałek firmware’u) i musiałem kupić nową kartę SIM, gdyż karta na abonament (a przynajmniej ta z Orange) nie pozwala mi wyłączyć pytania o PIN. Przedostatni news ze świata NITdroida (NIT=Nokia Internet Tablet) to dodanie obsługi dzwonienia, ale niestety bez dźwięku - brak kodeków. Ostatni to Możliwość wgrania ICS, który jednak muli się nawet na N9. A może warto wgrać system desktopowy? Nie ma problemu: pierwsza była zdaje się Fedora (ale nawet nie umiała ładować akumulatora), a ostatnim wydarzeniem jest Ubuntu 12.04 z Unity/KDE/LXDE. Instalacja teoretycznie prosta - skrypt na PC z Linuksem: wystarczy włożyć kartę do czytnika odpalić i przejść wizarda. Efekt jest piękny (https://www.youtube.com/watch?v=tRUlJ2GXI04) pod warunkiem, że się namęczymy na PC i wgramy pakiet binfmt dla qemu, zeby chroot poradził sobie z binarkami ARM.
Windows 8 a multiboot oraz przedziwny atrybut AMI BIOSu "SATA mode"
·689 words·4 mins
Blog.dsinf.net Bios Windows Windows 8
Artykuł ten pisałem jako luźną notatkę jeszcze do wersji Consumer Preview ósemki. Od tego czasu trochę się zmieniło, lecz to, co można znaleźć w Internecie nt. tego problemu - nie. Mało kto w etapie Preview (swoją drogą od zawsze nazywano to Release Candidate, ale MS lubi podglądy więc niech im będzie) korzysta tylko z Bety – większość ludzi doinstalowywuje go obok wysłużonego XP, czy Siódemki oraz nierzadko Linuksa. Bo trzeba mieć działający system. Po setupie, który jest jak na systemy z Redmond szybki widzimy graficzny(!) bootloader, ale 99% z nas kliknie Enter lub pobawi się myszką. I to był statni raz kiedy w normalnych warunkach ujrzymy ten ekran, dający także zaawansowane opcje rozruchu, takie jak chociażby Tryb Awaryjny. Dlaczego? Część czytelników zapewne powie “Wciśnij F8”. I tu zaczynają się schody. Genialni programiści pracujący pod skrzydłami Steven’a Sinofsky’iego uznali, że skoro system odpala się 7 sekund (czysty może i tak, ale nie czepiajmy się…) to czas na kliknięcie F8 to… 200 milisekund. Naturalnie trzymanie od POSTa F8 nic nie da, bo trzeba kliknąć i wstrzelić się w ten okres czasu. Ale (na szczęście) to nie jedyny sposób aby dostać się do boot menu. Jak dowiadujemy się przez przypadek (bo po co informować użytkownika o opcjach systemu, niech się pobawi): klikając Restart (także nieźle ukryty; Ctrl+Alt+Del to jedyne graficzne miejsce z opcjami wyłączania) trzeba wcisnąć Shift. I co ujrzymy? Bootloader. Cóż. Trochę dziwne miejsce jak na uruchamianie trybu awaryjnego, ale OK. Co to znaczy? Że Okienka muszą działać, by dostać się do boot menu. Ale chyba tryb awaryjny odpalamy, jak coś nie działa. Wydawać by się mogło, że MS trochę przewidział i po awarii systemu pokazuje się niebieski ekran z bialamy literkami z listą wyboru opcji rozruchu. Otóż nie. Windows zyskal inteligencję i nawet po jednym nieudanym rozruchu (co osiąga się chociażby pięciosekundowym power buttonem) zaczyna się naprawiać. WTF?! Ratunek? Metoda zajmująca każdorazowo kilka minut: płyta instalacyjna (lub pendrive). Uwaga, to nie jest wcale takie oczywiste. Po załadowaniu całego OSa (jakby nie można tego było umieścić w menu rozruchowym samej płyty) wybieramy klawiaturę, potem Repair, następnie Advanced aż wrzeszcie Select another OS. Ręce opadają. \o/ Ale to nie koniec. Jestem w trudniejszej sytuacji, bo na laptopie, którego używam (dość powszechny problem) mam do wyboru dwa tryby magistrali SATA: Enchanced i Compatibile. Systemy do Win2k3r2, w tym XP nie wspólpracują z “fajniejszym” trybem tylko BSoDują się. Zaś Win8 nie jest wstecznie zgodny i na trybie kompatybilnym też się BSoDuje, tym razem z minką. Co ciekawe ten tryb zmienia też zachowanie hybrydowej karty graficznej, ale to temat na oddzielny tekst. Wracając do meritum. Windows używając opcji restart (też przy wyborze innego systemu operacyjnego w nowym bootloaderze) odwołuje się do trochę innef funkcji BIOSu, tak, że można łatwo się zagapić i nie wejść do SETUPa. A co z “Press any key to boot from DVD…”? Żeby było zabawnie pojawia się po kilkusekundowym blackscreenie, kiedy to płytka sprawdza dysk -.- Reasumując: żeby odpalić inny system najefektywniej i najprościej trzeba odpalić komputer z DVD, odczekać swoje i… już. Dziękujmy MS za tak dobry system. Ale zaraz? To chyba parzysta wersja.
bash.org.pl reader
·495 words·3 mins
Blog.dsinf.net
Pierwszy z cyklu odgrzebany program - czytnik losowych cytatów z bash.org.pl. Zrodził się z potrzeby - przy przeglądaniu losowych tekstów na samej stronie polskiego bash’a to co mnie denerwowało to przede wszystkim reklamy oraz zmieniający pozycję w trakcie ładowania witryny przycisk losowy. Rozwiązanie? Prosta aplikacja w niechlujnym C#. Jak pomyślał, tak zrobił. Jedyne, co warte uwagi w samym algorytmie to metoda ściągająca zawartość strony i wyświetlająca ją tak jak przeglądarka: znaczniki <br />, &lt i inne na graficzne odpowiedniki.