Rozwiązanie Problemu

20 06 2008

W poszukiwaniach najlepszego Linuxa dla starego komputera sprawdzałem wszelkie możliwe dystrybucje. Małe – uruchamiane z dyskietek – udawało mi się uruchomić ale jakoś nie miałem ochoty godzinami rozwiązywać zależności pakietów żeby zainstalować GCC (o apache już nie wspominając). Stąd też postanowiłem zainstalować jakąś nieco większą dystrybucję.

Na placu boju pojawił się Vector Linux. Ściągnięty i wrzucony na DVD-RW (spokojnie – zajmował tylko ~300MB) wylądował wreszcie w DVD w komputerze docelowym i rozpoczęła się instalacja. W tzw. międzyczasie poszukiwałem jeszcze innych dystrybucji. W końcu poszedłem obejrzeć jak się instalacja miewa. Zawiodłem się…

Instalacja jeszcze trwała… właściwie jeszcze to niedobre słowo… ona się dopiero zaczynała… po długim czasie zdołał zainstalować ledwie 5% z 900MB…

Wtedy mnie olśniło. Przypomniałem sobie, że gdzieśtam zakopane i zakurzone leżą moje płyty z drugim linuksem którego w życiu zainstalowałem sobie na komputerze – Aurox’em (Pierwszym był Red Hat). Pobiegłem ich poszukać.

Po krótkiej (na szczęście) chwili udało mi się odnaleźć 4 płyty oznaczone numerami kolejno od 1 do 4. Pobiegłem z nimi to komputera-dziadka i nie myśląc zbyt długo brutalnie przerwałem instalację dystrybucji Vector Linux (ALT+CTRL+DEL ;) ). Wrzuciłem Auroxa i rozpocząłem instalację…

Po około 15 minutach wybierania pakietów w trybie tekstowym (bo na graficzny nie wystarczyło RAM-u) wreszcie rozpocząłem instalację. Wybrałem do zainstalowania około ~700MB najbardziej przydatnych pakietów.

Instalacja trwała jakieś 30 minut, ale po jej zakończeniu WRESZCIE miałem to co chciałem. Nawet demon SSH sam się uruchomił, co w sumie i tak niewiele dało bo port 22 był zablokowany przez Firewall… Ale to nieważne! Liczą się chęci, prawda? ;) Po odblokowaniu portu i zalogowaniu się przez sieć lokalną (z radością porzucając starą odrażającą klawiaturę) rozpocząłem konfigurowanie. Tutaj niespodzianek nie było i wszystko przebiegło szybko i sprawnie.

Na końcu jeszcze trzeba było uruchomić klienta uaktualniającego dynamiczny DNS z www.no-ip.com. Działanie to przebiegło jeszcze szybciej i łatwiej niż przypuszczałem :)

Takim oto sposobem skonfigurowałem sobie serwer (www i ssh, ale www jest wyłączony bo żre dużo pamięci a jest niepotrzebny ;) ), którego w sumie i tak pewnie nikt nie bedzie używać… W końcu liczy się dobra zabawa :P





Linux do staruszka

19 06 2008

Z kilku powodów mam zamiar uruchomić na moim pierwszym PC jaki miałem (AMD K6 166MHz, 64MB RAM) Linuxa z obsługą sieci.

Pierwszym problemem na jaki się natknąłem było oczywiście przywrócenie starca do życia. Wymiana wentylatorka i znalezienie jakiegoś 5GB dysku na szczęście przebiegły bez zakłóceń. Muszę jeszcze znaleźć jakiś kabel zasilający bo używanie kabla od pieca gitarowego to rozwiązanie krótkoterminowe ;)

Następną rzeczą jest wynalezienie linuxa najlepszego dla takiego dziadka. Tutaj pojawia się problem. System taki jak Ubuntu 8.04 Server byłby fajny ale… dziadek by tego nie uciągnął… Trzeba czegoś trochę mniejszego. Zacząłem się zastanawiać… W pewnym momencie chyba nieco przegiąłem bo rozważałem skonstruowanie własnego linuxa ( http://www.linuxfromscratch.org/index.html ) Na szczęście pomysł ten odszedł równie szybko jak wpadł mi do głowy.

Trafiłem w końcu na Tiny Linux, który zdaje się być odpowiedzią na moje wołania. Czy jest tak w rzeczywistości? Dowiemy się tego w następnym odcinku ;)





Egzamin drugi – Algebra

19 06 2008

Kolejny egzamin z głowy – przynajmniej póki co ;)

Prawdę mówiąc Algebra Liniowa z Geometrią Analityczną to przedmiot, który najbardziej przypadł mi do gustu w tym semestrze. Właściwie nic w tym dziwnego. Jako “programista gier” (choć napisałem może z jedną czy dwie) widzę zastosowanie tych rzeczy i nietrudno jest to pojąć.

Nie mogę tego powiedzieć niestety o Analizie Matematycznej… Ten egzamin wypada jednak na końcu a do tego czasu trzeba się cieszyć chwilą (czyt.: uczyć do egzaminu z Matematyki Dyskretnej).





Pierwszy Egzamin

16 06 2008

Dziś będę miał pierwszy (z pięciu) egzamin w drugiej sesji pierwszego roku.

Przedmiot: Systemy Operacyjne
Charakterystyka: Strasznie nudna pamięciówka ;)





Czek

8 06 2008

Po prostu musiałem się tym podzielić :)





Konsola AGE

3 06 2008

Konsola do AGE wreszcie skończona. Na początek zmagałem się z obsługą wyświetlania, dodawania linii i opcjami takimi jak “przewijanie” konsoli i czyszczenie ekranu konsoli. Następnym krokiem było wprowadzanie komend do konsoli. Tutaj na początku wydawało mi się to bardzo trudne ze względu na to że musiałbym sobie sam zakodować obsługę klawisza SHIFT. Tutaj jednak z pomocą przyszedł mi unikod. Można go w SDLu włączyć za pomocą wywołania:

SDL_EnableUNICODE(true);

Wtedy struktura eventu klawiatury otrzymywanego od SDL jest wypełniona dodatkowo o kod wciśniętej kombinacji klawiszy w unikodzie. To bardzo mi pomogło ponieważ po wciśnięciu SHIFT+0 od razu dostałem znak ‘)‘ zatem nie musiałem się już martwić o takie rzeczy.

Później dodałem jeszcze obsługę klawiszy:

  • PageUp, PageDown, Strzałki – dół, góra: przewijanie konsoli
  • Strzałki – prawo, lewo: przesuwanie karetki w prawo/lewo
  • CTRL + prawo/lewo: przesuwanie karetki o całe wyrazy
  • (CTRL +) Backspace/Delete: usuwanie znaków/wyrazów przed i za karetką
  • Home/End: przejście na początek/koniec linii

Możliwe, że w przyszłości dodam jeszcze uzupełnianie komendy za pomocą klawisza TAB.

Końcąwą fazą tworzenia konsoli był jej kluczowy element – dodanie obsługi wpisywanych komend. Rozwiązanie już mialem (z poprzedniej wersji AGE). Teraz wystarczyło prawie skopiować kod i troszkę go przystosować.

Planuję jeszcze dodać wbudowaną komendę help która pokazywałaby pomoc dla komendy podanej jako argument. Oczywiście użytkownik AGE mógłby stworzyć ją sam, ale wtedy miałby z tym więcej pracy. Co o tym sądzicie?





Czcionki w AGE

1 06 2008

Dodanie obsługi czcionek TTF do AGE tak aby utrzymać wieloplatformowość małym kosztem wydawało się początkowo trudne. Jednak dzięki bibliotece FreeType2 i Google okazało się to znacznie prostsze niż myślałem.

W tej chwili AGE posiada możliwość wyświetlania tekstu z automatycznym dzieleniem na linie przy pomocy znaku ‘\n’ oraz potrafi obliczyć prostokąt, w którym podany tekst zostałby wyświetlony. Możliwe, że w przyszłości dodam funkcje wyświetlające tekst w danym obszarze z wyrównaniem lub podobne. Przy obecnej implementacji tego wszystkiego dodanie takich funkcji jest dość prostą rzeczą.

Całą zabawę z czcionkami TTF postanowiłem podjąć dlatego, że planuję dodać konsolę, a ciężko byłoby to uczynić bez wyświetlania tekstu, prawda? :)

Niestety po tym jak nauczyłem AGE wyświetlać tekst zdałem sobie sprawę, że trzeba mieć jakąś czcionkę aby wyświetlać tekst konsoli i musi to być czcionka, która bedzie dostępna niezależnie od systemu operacyjnego. Rozważałem instalowanie jakiejś czcionki wraz z biblioteką jednak ten pomysł niezbyt mi się podobał. Postanowiłem więc zrobić najbardziej bezczelną rzecz jaka przyszła mi do głowy – wrzuciłem czcionkę wprost do kodu jako tablicę bajtów. Będzie to niestety kilkadziesiąt kilobajtów więcej dla biblioteki, ale z drugiej strony będę miał pewność, że czcionka będzie zawsze dostępna.

Dzięki tym kilku prostym i czasem spartańskim zabiegom mogę wreszcie rozpocząć kodowanie obsługi konsoli dla AGE :)