SFI - podziel się notatkami

SFI - podziel się notatkami

O stabilnych systemach operacyjnych z Andrew S. Tanenbaumem

Kiedy kupujemy telewizor, wypakowujemy go z pudełka, montujemy na ścianie lub szafce i tak przez wiele lat działa bez naszej ingerencji. Z komputerami sytuacja ma się inaczej, przez co przeciętny użytkownik wyrzuca z siebie sfrustrowane "Can't it just work?!" ("Czy to nie może po prostu działać?!"). Andrew S. Tanenbaum opowiada o projekcie MINIX, czyli systemie operacyjnym z nastawieniem na stabilność oraz naprawianie problemów przez sam system.

Podstawą tego systemu operacyjnego jest jego modularność. Jądro systemu to zaledwie 15 tysięcy lini kodu, a cała reszta jest podzielona na osobne moduły. Moduły mają ograniczony dostęp do zasobów i każda próba dostępu jest nadzorowana przez jądro systemu. Powód takiego rozwiązania? Choćby sterowniki, które chociaż często open source'owe, nie są wcale chętnie oglądane przez innych programistów, są często słabo przetestowane, a jednak pozwalają na dostęp do wszelkich zasobów.

Modularność nie usuwa wszystkich problemów. One i tak istnieją. Szacuje się, że na 1000 lini kodu występuje 10-50 błędów. Jednak modularność pozwala na ograniczenie ich wpływu i siły, na cały system.

Kolejna rzecz zaplanowana w MINIXie to automatyczne aktualizacje. I nie chodzi tu o pobieranie aktualizacji w tle z późniejszym restartem systemu. Przewidziana jest aktualizacja systemu operacyjnego, bez przerywania jego działania. I jest to ogromna potęga - wszelkie systemy medyczne i inne potrzebujące działać 24/7 mogłyby na tym skorzystać. W takim wypadku można zapewnić nieprzerwane działanie i zaktualizowany system operacyjny.

Zastanawia mnie tylko sytuacja późniejszej awarii i ponownego przywracania systemu. Jak pokazała ostatnia awaria AWS'a, restart może spowodować znaczne opóźnienia ponownego działania całego, złożonego systemu.

Enigma - Prof Harold Thimbleby

Profesor Thimbleby zrekonstruował własne urządzenie Enigmy w oparciu o Arduino. Zaprezentował jej działanie, jednak w swoim wystąpieniu skupił się na czymś innym. Opowiadał o czynnikach ludzkich, mających wpływ na konstrukcję i późniejsze problemy z jej użyciem. Po pierwsze, Enigma wydawała się konstruktorom zbyt skomplikowana, by dało się ją złamać. Przy pierwszych oznakach, że coś jest nie tak, myśli skierowały się na słabości ludzkie - podejrzenie szpiegostwa i błędów operatorów. Nie kwestionowano samego urządzenia, a przynajmniej nie otwarcie.

Konstruktorzy byli pewni siebie uważając, że Enigma była nie do złamania. Jednak, jak zauważa profesor, zwiększenie skomplikowania nie odsuwa matematycznych podstaw całej konstrukcji. Słabość, którą można pokazać na uproszczonym modelu złożonym z czterech liter, istnieje wciąż w urządzeniu dla pełnego alfabetu. Wręcz przeciwnie - to uproszczenie pomaga nam zobaczyć słabości i wykazać oczywiste błędy konstrukcji. Poza tym będąc twórcą, widzimy tylko jeden aspekt problemu, ten który wydawał się najlepszą drogą do rozwiązania. I właśnie to czasem nie pozwala nam zobaczyć jego słabych stron.

Czy Enigma jest już tylko historią? Możliwe. Ale problemy, które miały miejsce wtedy, wciąż spotykamy we współczesnych systemach.

Czy możemy zrobić cokolwiek, by uniknąć lub zmniejszyć wpływ tych problemów? Tak, więcej par oczu spoglądających na kod lub projekt, to większa szansa znalezienia problemu. Code review dodaje nowe spojrzenie na problem i pozwala wyłapać błędy zanim użyjemy nowego kodu produkcyjnie.

Open Source z Danielem Robbinsem

Daniel Robbins opowiedział o swoim życiu i o tym, jak będąc założyciem Gentoo, wylądował w pewnym momencie w Microsofcie. Podzielił się swoimi spostrzeżeniami na temat open-source'a po wielu latach pracy w różnych rolach - zarówno założyciela, jak i programisty. Zauważa, że open-source jest jak klocki lego - można zbudować, co się chce. Open-source tworzy społeczność i pozwala współpracować z różnymi, utalentowanymi osobami. Z drugiej strony jednak przy ponad dwu-stuosobowym projekcie, umiejętności programistyczne nie wystarczają - przydają się umiejętności miękkie, zarządzanie zasobami ludzkimi i umiejętności komunikacyjne.

Zauważa również, że wiele przydatnych lub wręcz niezbędnych projektów open-source jest utrzymywane przez garstkę zainteresowanych, którzy wciąż zmagają się z brakiem zasobów - czasu i pieniędzy. Open-source przez długie lata nie miał wystarczającego wsparcia, nie było też pomysłów jak go zmonetyzować, nie tracąc przy tym niezależności. Sytuacja na szczęście się zmienia. Jednak do całkowitej zmiany potrzeba też nowych, nietechnicznych umiejętności.

Jak zrobić jeszcze więcej - Maciej Aniserowicz

Produktywność jest jednym z ulubionych tematów blogosfery. Jak zrobić więcej, szybciej i lepiej zastanawia się pół internetu. Maciek podzielił się z nami swoimi przemyśleniami i sposobami, które poprawiają produktywność i zadowolenie z życia w zasadzie od pierwszego dnia.

Według Maćka samo posiadanie listy zadań pozwala na spożytkowanie tych kilku minut oczekiwania, które mamy pomiędzy innymi, większymi zadaniami. Tryb działania i tryb wykonania to dwie różne rzeczy. Mając kilka wolnych minut, możemy się zastanowić, co robić albo to zrobić. Najprawdopodobniej nie uda nam się zrobić obu.

Bez listy zadań mózg sam przypomina nam o rzeczach, które są dla nas ważne np. o kupieniu mleka albo biletu miesięcznego. Przez to niestety brakuje miejsca na zupełny spokój i kreatywne pomysły. To właśnie spokój, że kartka pamięta za nas, pozwala nam zwolnić dodatkowe zasoby w głowie i zrobić przestrzeń na kreatywne myślenie. To właśnie Maciek nazywa "pustym przebiegiem mózgu".

Bez planu tego co chcemy zrobić, płyniemy z prądem, czas przecieka przez palce, a my sami nie dążymy do żadnego konkretnego celu. Mając cel i plan działania, mamy dużą szansę dotrzeć tam, gdzie postanowimy, nawet jeśli każdy dzień będzie tylko małym krokiem.

Podsumowanie

Pomimo krótkiego udziału w festiwalu, udało mi się z niego wynieść kilka zupełnie świeżych myśli. Całą potęgą takich spotkań, jest nie tylko wymiana wiedzy i doświadczeń, ale ogromna ilość inspiracji. Daj znać w komentarzu, co Ci się podobało najbardziej i co przegapiłam!

0 Komentarze

Skomentuj


O mnie

justyna kubisztal

Cześć, jestem Justyna. Programistka Pythona z czteroletnim doświadczeniem w zawodzie i kilkuletnim doświadczeniem w IT. Współorganizatorka PyLight Kraków, mentorka programowania, pasjonatka języków obcych i zwolenniczka uczenia się przez całe życie.

Bądźmy w kontakcie

Ostatnie wpisy

Wspieram

Szkoła 3.0

Kategorie

Tags

Mapa strony

Sitemap