Zadanie na Programowanie Systemowe II

Na Programowaniu Systemowym zostało nam zadane kolejne zadanie, jako że oddałem je jako jeden z pierwszych – a wydaje mi się że wśród kolegów z grupy będzie na niego popyt – postanowiłem że je udostępnię tutaj. Przede wszystkim dlatego by poinformować że jeszcze żyje i aktualizuje tego bloga.

Na sam początek zadanie:

Utworzyć 3 procesy pomiędzy którymi będzie zachodziła komunikacja (łącza nazwane). Pierwszy proces jest interfejsem użytkownika. Użytkownik podaje w nim dwie liczby i wybiera działanie arytmetyczne. Te dane przesyłane są do procesu obliczeniowego w którym obliczana jest wartość wyrażenia. Wynik jest przesyłany do trzeciego procesu, który wyświetla wynik. Każdy proces używa osobnego terminala.

Czytaj dalej »

Walka z Ubuntu

Słowo ‚Walka’, dobrze opisuje to co trzeba robić by sprawić by ten system i aplikacje do niego dołączone były, może nie dostosowane (o czym ja marzę), ale sprawnie działały.

Na co dzień, normalnie korzystam z aplikacji Open Source. Jest to związane z moim przyzwyczajeniem do nich, z tym że nie stać mnie na kupno „wychwalanej pod niebiosa” komercyjnej alternatywy i na końcu dlatego że aplikacje typu Open Source są często lepsze niż ich zamknięte alternatywy (np: Kadu jest o niebiosa lepsze niż Gadu Gadu, choćby ze względu na to że nie ma reklam).

Problemem jednak z przejściem z wersji Windowsowych na wersje Linuksową jest historia i ewolucja tych systemów. Przykładem może być to że w Serwerze X – czyli w graficznym interfejsie użytkownika – domyślną akcją przypisaną pod środkowy przycisk myszy jest: wklejanie tekstu znalezionego w schowku. Wygodne co nie? Szczególnie gdy pisze się tekst na bloga i nie wie się, że za każdym razem gdy przewija się tekst w górę czy to w dół – dodaje nam się cokolwiek mieliśmy w schowku.

Zresztą o Firefoxie na Ubuntu można by napisać więcej. Np, podczas instalacji miałem opcje by zaimportować moje dokumenty/opcje itp do Ubuntu. Jako, że mi mój katalog Moje Dokumenty nie jest potrzebny w dwóch kopiach, postanowiłem zaimportować tylko ustawienia Firefoxa. I po instalacji się okazało że nic się nie zaimportowało. Well done Canonical.

Chciałem mieć moje ustawienia jednak zaimportowane więc postanowiłem skorzystać z wynalazku Mozilli, który nazywa się: Firefox Sync. Z lekką obawą zastanawiałem się czy uda mi się wysłać na serwery Mozilli cały mój katalog z profilem firefoxa który zajmuje grubo ponad pół gigabajta. Jednak udało się Mozilli zmieścić to wszystko w zaledwie dwóch megabajtach – brawo.

Gdy jednak zacząłem synchronizować mój profil linuksowy z zapisanym profilem windowsowym, okazało się że nie wszystkie dane się zsynchronizowały. Brakowało wszystkich ustawień dodatków – naprawdę jeśli synchronizujemy dodatki, to wypada zsynchronizować też ich opcje – jak i nie wiem dlaczego niektóre z opcji które sobie ustawiłem na Windowsie nie dotarły one na Linuksa, albo zostały nadpisane przez domyślnie ustawienia. Ja się pytam dlaczego? Jeśli już w Firefoxie jest coś takiego jak about:config, to chyba należy zsynchronizować wszystkie jego wartości, bo chyba Ja tak je ustawiłem. Po co mi synchronizacja, która nie synchronizuje ustawień przeglądarki pomiędzy systemami operacyjnymi?

Zostawmy jednak Firefoxa, przejdźmy do samego interfejsu systemu. Można go podsumować dwoma wyrazami: Unity ssie. Można też dodać że bardzo. Nie jest to kompletna porażka jak lolmetro na Windowsie 8, ale nie jest to coś z czego bym chciał korzystać na co dzień.

Co mi tutaj nie pasuje? Po pierwsze pasek menu aplikacji który wzorem idiotycznego UI MacOsa został przeniesiony na stałe na górę ekranu. Prócz paska menu został tam przeniesiony także pasek tytułowy, jednak by nie marnować miejsca został on przeniesiony w to samo miejsce gdzie jest teraz pasek menu aplikacji. I możecie mi zaufać nie jest to wygodne rozwiązanie.

Unity pasek menu

Bardzo ciekawie to wygląda gdy mamy więcej okien na pulpicie, bo wtedy pasek menu/pasek tytułu jest tylko dla tego które jest aktualnie aktywne. Ciekawie więc wygląda to w GIMPie, w którym jeśli aktywne jest jedno z jego miliarda okien – i nie jest to okno główne – to na górze pojawi nam się tylko tytuł tego małego okna.

To wymuszanie by aplikacje miały pasek menu/pasek z tytułem na samej górze ekranu jest o tyle dziwne, że np: programy pisane w Javie, czy przy pomocy biblioteki Qt (które same sobie rysują interfejs) i tak będą miały pasek menu w normalnym miejscu.

Innym problemem z Unity jest konfiguracja – jeśli myślisz że znajdziesz konfiguracje unity w Ubuntowskim panelu sterowania, to jesteś w błędzie. By dostać się do opcji środowiska Unity, należy wpisać ccsm. Dopiero wtedy dostaniemy możliwość trochę lepszego dostosowania interfejsu do siebie.

Znajdują się tam tak zaawansowane opcje jak np: Zmiana skrótów klawiszowych, dodanie nowych wirtualnych pulpitów itp.

Pisząc o Linuksie nie można nie wspomnieć linii poleceń, która jest tutaj o niebo lepsza niż ta z Windowsa. Wszystko co można zrobić w interfejsie graficznym, przez różnego rodzaje aplikacje graficzne, można też zrobić przez linie poleceń. Najczęściej też można zrobić to szybciej niż wyklikując sobie drogę.

I mówiąc szczerze, jeśli ktoś chce wykorzystywać potęgę Linuksa, będzie musiał zaprzyjaźnić się z tym narzędziem. Bo wiele czynności będzie można wtedy wykonać szybciej. Dla przykładu jak szybko na Linuksie, używając „Centrum Oprogramowania Ubuntu”, można zainstalować serwer apache+php+mysql. W linii poleceń można wklepać jedną linijkę:

sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server libapache2-mod-auth-mysql php5-mysql

Co jest IMO wygodniejsze niż znajdywanie wszystkiego po kolei w Centrum Oprogramowania i klikania Instaluj. Jednym z minusów takiego rozwiązania jest jednak to, że należy znać nazwę poprawnego pakietu i dany pakiet musi istnieć w repozytorium. Dla przykładu najnowszej Javy tam nie znajdziecie – ale dobrze że są inne sposoby.

Repozytoria z oprogramowaniem to jest jedna z tych rzeczy których użytkownik Windowsów może zazdrościć użytkownikom Linuksów. Dlaczego? Bo dostają gratis: aktualizacje wbudowane w system, zależności między aplikacjami – czyli jeśli aplikacja A, potrzebuje aplikacji B to podczas instalacji aplikacji A zostaną one zainstalowane obie. Coś podobnego ma – chyba – wprowadzić Windows Store który będzie wybudowany w Windows 8.

Z tym całym systemem pojawia się pewna niedogodność, co się stanie jeśli zainstalujemy nowy program nie poprzez system pakietów, ale np: poprzez rozpakowanie archiwum, na przykład w repozytoriach Ubuntu nie ma aktualnej wersji Netbeansa (w repozytorium jest 7.0.1, a najnowsza to 7.2). By zainstalować jego najnowszą wersje, trzeba ściągnąć go ze strony projektu. Powoduje to, że wszystkie potrzebne zależności (w tym przykładzie Netbeans potrzebuje mieć Javę) musimy MY zainstalować.

Ale też można założyć taką sytuacje: instalujemy pakiet A, który jako swoje zależności instaluje pakiet B. Gdy teraz zainstalujemy nie poprzez mechanizm pakietów nowy program, który potrzebuje do działania pakiet B, to dopóki pakiet A jest zainstalowany – nowy program będzie działać. Jeśli jednak usuniemy pakiet A, to program do zarządzania pakietami sprawdzi że żaden inny program nie potrzebuje już pakietu B i usunie go.

Nie jest to oczywiście błąd samego Linuksa, tylko autora programu który źle rozprowadza swoją aplikację. Taka sytuacja też nie powinna się zdarzyć jeśli wszystko będziemy instalować z repozytoriów.

Kolejnym plusem systemu jest też możliwość korzystania z wielu pulpitów. Jest to chyba jedna z bardziej rozpoznawalnych funkcjonalności Linuksa. Możliwość trzymania wszystkich aplikacji nie na jednym pulpicie tylko na kilku. IMO bardzo wygodne rozwiązanie. Bo nie trzeba szukać gdzie mamy jakąś aplikację, tylko wiemy że dla Firefoxa jest przeznaczony środkowy pulpit.

Minusem jest tutaj podstawowa konfiguracja Unity, dzięki której przy pomocy ALT+TAB można przełączać się tylko do programów na aktualnym pulpicie. Nie wiem też czy jest (może ta opcja jest ukryta), czy można wymusić by dana aplikacja zawsze była uruchamiana na konkretnym pulpicie? Ja niestety takiej opcji nie znalazłem. A wydaje mi się że GNOME coś takiego miał.

To tyle jeśli chodzi o walkę, następny wpis najprawdopodobniej będzie mówił coś o konfiguracji Ubuntu.

2012 na blogu

Mówiąc, albo raczej pisząc, szczerze nie miałem zamiaru robić żadnych podsumowań roku 2012, bo po co? Niewiele się na tym blogu wydarzyło przez ten czas, a moje prywatne życie i tak by nikogo nie zainteresowało. Będąc szczerym nie miałem zamiaru pisać czegokolwiek z okazji Sylwestra czy też Nowego Roku.

Jednak jako że sam WordPress.com przygotował takie podsumowanie grzechem było by go nie wykorzystać.

Na stronie podsumowania można się dowiedzieć, że w roku 2012 mój blog został odwiedzony 5 400 razy. Podana jest także ciekawostka: Na Mt. Everest w 2012 weszło 600 osób. Jeśli każda która weszła na szczyt słynnej góry odwiedziła mój blog, to zajęło by to 9 lat by wygenerować taki ruch.

Podsumowanie można znaleźć tutaj: https://psychobpl.wordpress.com/2012/annual-report/.

Nowa wersja Soup Filter i aktualizacja strony

Kolejna aktualizacja Soup Filtera, tym razem została dodana obsługa mało znanej, niszowej przeglądarki jaką jest Opera. Okazało się to łatwiejsze niż przypuszczałem, dlatego że wystarczyło zmienić jedną linię w kodzie.

Prócz tego – kontynuując tradycję – skrypt został przepisany. A że nie jest to coś wielkiego nie zajęło to dużo czasu. Zastanawiałem się także czy nie wykorzystać do tego Coffee Script, ale uznałem że raczej nie warto. Byłby to raczej przerost formy nad treścią.

Nowa wersja dodaje wsparcie dla wyżej wymienionej Opery i to tyle z ważniejszych funkcji. Skrypt można znaleźć oczywiście na jego stronie.

A skoro już mowa o mojej stronie, to ona też się trochę zmieniła. Zostały dodane cytaty/motta – na wzór sekcji która była we wcześniejszych odsłonach strony. Prócz tego została jeszcze odświeżona „szata graficzna” strony z której można ściągać skrypt Soup Filter.

I to by było na tyle.

PS: Najprawdopodobniej za tydzień zaczną pojawiać się ciekawsze posty – przynajmniej taką mam nadzieję.

Walka z Ubuntu – instalacja i konfiguracja

Jak się pewnie niektórzy domyślają, nadchodzą mroczne czasy dla właścicieli PCtów. Jednym z sygnałów, jest nowa wersja systemu operacyjnego Windows o numerze 8. Można by się spytać, dlaczego jest to zwiastun zarazy? Jest nimi parę rzeczy, po pierwsze nowy interfejs który ma w przyszłych wersjach zastąpić standardowy pulpit, Metro. Po drugie, jest nim integracja z chmurą (microsoftową) – pomyślcie, by skorzystać ze swojego peceta, musicie zalogować się do chmury. Ale o tym będzie w niedalekiej przyszłości, kiedy to najnowsze dziecko Microsoftu pojawi się w repozytorium MSDN AA politechniki.

Co ma to do Ubuntu? Ma to jedną zasadniczą część wspólną. Gdy już nie będzie odwrotu, gdy już starsze Windowsy nie będą obsługiwane (bo sterowniki itp). Warto będzie mieć drogę ucieczki w inny system operacyjny. Bo o ile w opowieściach, wędrówka w nieznaną może być interesująca, to jeśli chodzi o komputery – to może nie być już takie fascynujące.

Jako swoją dystrybucje, którą będę teraz męczyć, wybrałem Ubuntu, którego mottem jest: „Linux for human beings„, czyli Linuks dla ludzi. Wybrałem tą dystrybucje dlatego, że jest polecana nowicjuszom (ja mam jakieś doświadczenie z Linuksem, ale nie takie by np: zainstalować Gentoo z linii poleceń), posiada ona wsparcie dużej firmy (a nie jest tworzona w garażu przez pasjonatów) i w sieci jest dużo materiałów How To. Więc jest to idealna dystrybucja dla ludzi którzy chcą poznać linuksa.
Czytaj dalej »

Euro 2012 – podsumowanie

Tego typu podsumowanie miałem napisać zaraz po zakończeniu Euro 2012 w Polsce, a nie ponad miesiąc po zakończeniu imprezy, gdy teraz odbywa się inna duża impreza sportowa, czyli Igrzyska Olimpijskie.

Nie będę się rozwodził nad meczami bo ich po prostu nie widziałem (w większości), co było związane z moim pobytem na studiach.

Mateusz i Patryk, czyli koledzy którzy – w moim przekonaniu – się średnio się na piłce nożnej znają, lepiej wyniki przepowiedział Patryk – pomylił się w grupie A (ale np Mateusz pomylił się w typowaniu kto wyjdzie z grupy B). To co lepiej wyszło Patrykowi to zgadnięcie, kto zagra w finale. Sprawdziła się u Niego tylko połowa (Hiszpania), za to Mateuszowi nie sprawdziło się nic z finału.

Prawie doskonałe typowanie przedstawił Marcin, który razem z Markiem reprezentowali kolegów którzy na piłce kopanej się znają – jak wyżej, w moim przekonaniu. Jedyne w czym się pomylił, to z kim będą grać Hiszpanie, tak samo jak Marek typował Niemców których jak wiemy pokonali Włosi (ha ha). Jednak samego zwycięzcę obaj typowali dobrze.

Prócz tego na soupie, jeszcze jedna osoba podała swoje typy, niejaki @kopytq (swoją drogą jestem ciekawy, czy soup automatycznie to podlinkuje), który w porównaniu z moimi kolegami najgorzej wytypował wyniki. U Niego nie zgadzała się cała grupa A (swoją drogą po cichu też liczyłem że polska wyjdzie z grupy, ale… wyszło jak zawsze), jak i mecz finałowy. Ale Włochów nikt raczej nie podejrzewał o to że dojdą do finału…

Cóż można powiedzieć na koniec… Gratulacje dla drużyny Hiszpanii, która znów zdobyła puchar Mistrzostw Europy.

Pierwszy rok zaliczony!

Udało mi się i kolejny semestr – czyt. drugi – został zaliczony. A to oznacza, że mam zaliczony także pierwszy rok studiów. Yay!

Przy tej okazji można pokusić się o małe podsumowanie. W tym semestrze, podobnie jak w poprzednim semestrze został mi jeden przedmiot na „późne zaliczanie”, w tym semestrze to była Analiza Matematyczna, w poprzednim – Fizyka. jest jednak jakiś postęp w moim zaliczaniu przedmiotów, w pierwszym semestrze ostatni przedmiot zaliczyłem w drugim tygodniu po sesji, a teraz zaliczyłem w drugim tygodniu sesji!

Co całki robią z innymi ludźmi

To co zapamiętam z tego semestru, to na pewno całki. Całki i szeregi, a to dlatego że to był materiał na zaliczenie Analizy Matematycznej w tym semestrze.

A na sam koniec, piosenka tematyczna (należy tylko pamiętać, że studenci mają trzymiesięczne wakacje):