Strona główna Produkcje Download Galeria Linki O mnie
Wysłany dnia 1 grudnia 2009 o godzinie 17:25, komentarzy: 0, kategorie: Systemy operacyjne

Serwer stoi na miejscu i działa jak należy. Dokupiony też został UPS Fideltronik Lupus 700 VA, powinien utrzymać serwer przez ok. 15-20 minut. Większość UPS-ów jest na RS232 więc musiałem zastosować konwerter. Całe szczęście firma Prolific zatroszczyła się o sterowniki pod Windowsa i Linuksa, więc nie było z tym problemu.

Znaleźć oprogramowanie które potrafiłoby się komunikować z UPS-em i działać z linii komend to jest sztuka. Pierwszy program jaki znalazłem to apcupsd, który niestety nie działał z UPSami które testowałem(a było ich kilka). Następnie testowałem oprogramowanie producenta, bo wpadłem na pomysł by wyłączać serwer przez VM z Windowsem. Niestety, nie dość, że oprogramowanie ActivePower(pierwszy UPS który testowałem) nie potrafiło się połączyć z UPS-em(konwerter.) to do tego nie było mowy o normalnym działaniu tegoż czegoś. Na dodatek złego XenServer nie wspiera przekierowywania urządzeń na VM.

Drugim UPS-em przeze mnie testowanym był Lupus którego miałem już wcześniej do desktopa. Okazało się, że istnieje oprogramowanie stworzone przez Fideltronik które spełnia moje oczekiwania(działa pod XenServer) i do tego działa :). Przynajmniej na początku tak myślałem. Niestety, bez dostępu do Internetu(tak! Internetu, nie sieci lokalnej) nie startował, a router uruchamia się po starcie tegoż demona.

Szukając rozwiązania i przeglądając pliki konfiguracyjne upsfid natknąłem się na protokół komunikacji tego UPS-a. Okazało się, że jest to protokół firmy Megatec który jest dość często wspierany. Dzięki temu, że znałem już protokół wygooglałem Network UPS Tools. Spełniał moje oczekiwania w całości. Wersja działająca pod XenServer to 2.2.0(RPM dla el5), możliwe, że wyciągnęło by się go z repozytorium CentOSa, lecz nie chciało mi się w to już bawić.

Wysłany dnia 28 października 2009 o godzinie 20:33, komentarzy: 0, kategorie: Systemy operacyjne

Serwer złożony. Dokupiłem jeszcze jeden dysk, zainstalowałem na nim XenServera pozostałe dwa są w RAID 1. Dzięki temu mam bezpieczne dane, a jak padnie pierwszy - nie wiem co zrobię ^^(jestem w trakcie opracowywania planu awaryjnego ;) ).

Miałem problem z zainstalowaniem Windows 7 Professional x64 PL(OEM) na wirtualnej maszynie. Wpierw VM zacinała się na rozpakowywaniu plików, następnym razem(o dziwo) zainstalowało się poprawnie lecz nie chciało się pierwszy raz uruchomić. Na rozwiązanie wpadłem przypadkowo(a właściwie to rozwiązanie zostało wymuszone). Musiałem wyłączyć serwer. Jakież było moje zdziwienie, gdy zawiesiło się na zamykaniu routera. Co pozostało zrobić - wyłączyłem poprzez przytrzymanie przycisku power przez 5 sekund. Postanowiłem jeszcze raz spróbować i, o dziwno, wszystko poszło jak po maśle. Tak więc jeśli będziesz instalował Windows 7 na XenServer pamiętaj o "twardym resecie"! ;) Skonwertowałem VM do szablonu i teraz już się nie martwię o instalacje :)

Pozostaje teraz zainstalować odpowiednie oprogramowanie(serwer SVN(svnserve) i wymiana plików już jest), wymienić "okablowanie" i zmienić położenie jednostki.

Wysłany dnia 21 października 2009 o godzinie 17:35, komentarzy: 0, kategorie: Systemy operacyjne Windows Linux

Tak, w końcu mi się udało. Skonfigurowałem serwer by działał jako router i mass storage.

Hypervisorem jest XenServer który wydał mi się najprostszy w konfiguracji i w użytkowaniu. I, w odróżnieniu od vSphere Client(narzędzie do administracji ESX/ESXi), XenCenter działał. Pomimo tego, że nie da się go zainstalować na fakeRAID(przed kupnem i problemem z instalacją nawet nie wiedziałem, że coś takiego istnieje) to działa dobrze(jak na razie maksymalny uptime to 8 godzin, ale powoli się to zmienia). Dokupię jeszcze jeden dysk, aby wszystkie ważne dane był "w locie" kopiowane na drugi dysk(repozytorium dysków może być na fakeRAID)

Na początku myślałem żeby SmoothWall był rotuerem lecz po pierwszych chwilach w użytkowaniu zwątpiłem w jego możliwości. Nie ma on ani porządnej konfiguracji, ani suportu, ani żadnych tutoriali. Najgorsze jednak było to, że nie działał w ogóle - po instalacji i skonfigurowaniu zgodnie z nikłą dokumentacją nie potrafił utworzyć sieci. Do tego nie było odpowiedniej wersji XenTools.

Na drugi ogień poszedł IPFire, niemiecka dystrybucja bazująca na IPCop. Niestety podobnie jak SmoothWall nie dawał oznak życia po pierwszym uruchomieniu. Podobnie jak SmoothWall nie dało się zainstalować XenTools.

Vyatte znałem już od jakiegoś czasu dzięki serwisowi techit.pl(mimo iż mają słabe forum to artykuły i prezentacje są bardzo fajne). Miałem jej nie używać, gdyż byłem przekonany, że jest ona raczej dla dużych sieci i zabiera dużo zasobów w porównaniu do innych. Myliłem się. Nie dość, że od razu miałem zintegrowaną najnowszą wersję z XenTools, pobiera mało zasobów to jeszcze jest bajecznie prosta w konfiguracji. Po instalacji i wstępnej konfiguracji(10-15 minut zajęło mi zapoznanie się z konfiguracją) miałem już sieć! Konfiguracja może nie jest tak prosta jak w moim aktualnym routerze(jeszcze będzie przez około tydzień, dopóki nie przyjdzie switch) ale za to jest dobra dokumentacja i można bardzo łatwo się dowiedzieć co do czego służy i jak tego użyć.

Gdy już miałem wstępnie skonfigurowaną siec przyszedł czas na instalacje Windowsa 7 RC 64-bit. Mimo iż instalacja przebiegała bardzo długo to system działa sprawnie. Połączony on jest z routerem za pomocą wewnętrznej sieci. Jedyny problem na jaki się natknąłem to to, że Vyatta nie potrafiła(a właściwie to ja nie potrafiłem jej skonfigurować) przypisać go do już istniejącej sieci. Po wielu próbach stworzyłem osobną sieć, lecz nadal nie działał na niej serwer DHCP. Jednak po około półtora tygodnia prób znalazłem rozwiązanie. Wystarczyło stworzyć pomost pomiędzy fizyczną i wirtualną kartą i nie przypisywać im adresów tylko właśnie temu mostowi. Nadal jednak nie działa serwer DHCP dla drugiej, tej wirtualnej, karty.

Zostało jeszcze tylko zrobić świeżą instalacje na nowym dysku, skonfigurować wszystko "na glanc" i zmienić okablowanie w domu(co nie będzie takie łatwe ^^). Miejmy nadzieję, że do końca przyszłego tygodnia wszystko zostanie już zrobione.

Wysłany dnia 7 października 2009 o godzinie 19:37, komentarzy: 0, kategorie: Systemy operacyjne

Stało się. Złożyłem komputer pod serwer. Całe szczęście działa, choć miałem problemy. :) Jego konfiguracja to:

  • Płyta główna: Intel DG45ID
  • Procesor: Intel Core 2 Quad Q9400
  • RAM: OCZ Platinum 800MHz 2x2GB
  • Zasilacz: Be-Quiet Straightpower E6 350W
  • Dyski: 2x Samsung SpinPoint 1TB
  • Dodatkowa karta sieciowa: D-Link DGE-530T 10/100/1000
  • Obudowa: Modecom Winner 2

Nie jestem do końca zadowolony, gdyż mostek południowy grzeje się niesamowicie(70°C w stanie spoczynku płyty) ale tragedii nie ma.

Będzie on "robił" za router(najprawdopodobniej użyję do tego dystrybucji Linuksa SmoothWall Express), serwer plików, bazę danych MSSQL i pewno coś jeszcze się znajdzie. Muszę więc uruchamiać dwa systemy na nim(Linux i Windows) aby to wszystko miało ręce i nogi. Na początku za hypervisior miał robić Hyper-V MS, ale z powodu braku jakiegokolwiek narzędzia do zdalnego zarządzania dla Windows 7 RC(dla RTM jest) zrezygnowałem z niego. Na drugi ogień poszedł XenServer. Właśnie testuję go i zobaczymy co z tego wyniknie. Mam zamiar spróbować jeszcze ESXi(które się właśnie ściąga ^^). Co wybiorę - nie wiem.

Wysłany dnia 26 września 2009 o godzinie 12:52, komentarzy: 0, kategorie:

Straciłem wenę na programowanie. Na razie zawieszam wszystkie moje projekty. Możliwe, że będę skrobał powoli coś prostego, ale nic pewne nie jest. Na razie zajmę się skonstruowaniem serwera i włączeniem go do sieci domowej(a właściwie oparcie sieci na nim). Możliwe, że zabiorę się za elektronikę. Tak więc jeśli ktokolwiek czekał na cokolwiek z mojej strony to muszę go zawieść.

Wysłany dnia 21 września 2009 o godzinie 18:03, komentarzy: 0, kategorie: Programowanie

Postanowiłem napisać dość rozbudowany system plików konfiguracyjnych. Nie będzie można deklarować sobie "od tak" zmiennych w pliku, trzeba będzie je wpierw zadeklarować w kodzie. Ma mieć możliwość "dziedziczenia" typów po sobie(ale tylko pojedynczych) i jeszcze więcej. Prawdopodobnie udostępnię to jako osobną "bibliotekę" na jakiejś licencji BSD-like. Zawsze chciałem coś takiego zrobić i mam nadzieję, że teraz zrobię :)

Wysłany dnia 18 września 2009 o godzinie 16:02, komentarzy: 0, kategorie: Programowanie

Zrefaktoryzowałem swój Framework. Nadal mi się niezbyt podoba, ale już nie ma pomysłu jak go zmienić(może wpadnę na coś). Odszedłem kompletnie od wyjątków na rzecz wartości zwracanych i operatora konwersji na bool obiektu. Mam nadzieję, że sprawdzi się lepiej od wyjątków. Zabieram się teraz za GUI(IMGUI). Prace nad tym mam zamiar dokumentować, więc jest szansa, że częściej będą się newsy pojawiać :)

Wysłany dnia 4 września 2009 o godzinie 15:32, komentarzy: 0, kategorie: Programowanie Gra - tworzenie

Nie, kurcze, nie potrafię napisać gry(ani frameworka). Teraz widzę jaki mój Framework jest ubogi i nieprzemyślany(część rzeczy mi się podoba, ale tylko część). Muszę go przemodelować tak, by dało się go znośnie używać. I tym razem użyje UML i do frameworka i do gry. Mam nadzieję, że tym razem uda mi się go napisać znośnie i zrobię na nim jakąś większą grę.

Wychodzi więc na to, że seria newsów pt. "Gra"(kategoria "Gra - tworzenie") nie będzie uzupełniana przez dłuższy czas. Za to mam nadzieję, zmobilizuję się i opiszę moje problemy z tworzeniem silnika.

Wysłany dnia 30 sierpnia 2009 o godzinie 16:38, komentarzy: 0, kategorie: Gra - tworzenie

Tak! Stało się! Zacząłem pisać grę :) Postanowiłem sobie ją skończyć(jest szansa - nie rzucam się z motyką na słońce) i w trakcie tworzenia opisywać na blogu przebieg prac i przy okazji dokumentować postępy. Wstępnie będzie to jeden news na tydzień(ale wszystko się może zmienić). Za datę startu projektu można uznać 25.08.2009.

Gra bazuje na moim autorskim frameworku(choć z nazwy to silnik) który działa na Windows i Linux. Ma możliwość tworzenia okna, ładowania spritów, obsługi wielu kamer i wiele innych. Z założenia ma to być rozbudowany klon Medieval Clash, ale co z tego wyjdzie - zobaczymy.

Aktualnie mam zbudowane ładowanie mapy z pliku i to wszystko(nie mam ostatnio ochoty pisać ^^). Mapa jest zbudowana na wierzchołkach, w założeniu mam to, by można było każdy taki wierzchołek opisać typem terenu(lód, śnieg, woda itp.) a nachylenie względem następnego wierzchołka ma oddziaływać na jednostki(spowalniać lub przyspieszać). Mam zamiar zbudować też edytor z wykorzystaniem .NET i OpenGL. Jak na razie nic nie ma z tego.

Jako iż mam zamiar prowadzić też kronikę graficzną, zamieszczam screena z częścią przykładowej mapy(która została wczytana z pliku):

Wysłany dnia 18 sierpnia 2009 o godzinie 22:36, komentarzy: 1, kategorie: Programowanie

Pisząc klasę szablonową(kolor RGBA) zachciało mi się zrobić operator konwersji z jednego typu do drugiego. Klasa wygląda mniej-więcej tak:

 

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template<typename T>
class Color
{
public:
	template<typename T2>
	operator Color<T2>()
	{
		return Color<T2>(R, G, B, A);
}
T R, G, B, A;
};

 

 

Wszystko pięknie, ale zachciało mi się dodać wyspecjalizowany operator dla T = char i T2 = float(dodatkowe skalowanie na zakres 0..1 z 0..255). Rzuciłem się więc do pisania i stworzyłem coś takiego:

 

C++
1
2
3
4
5
6
7
template<>
Color<char>::operator Color<float>()
{
	Return Color<float>((float)R / 255.f, (float)G / 255.f, (float)B / 255.f, (float)A / 255.f);
}

 

Kompilator wyrzucił mi masę bezsensownych błędów. Wstawianie template<> przed definicją funkcji tylko powiększa ilość błędów(no bo co ma robić? Specjalizacja funkcji nie wymaga template<>.). Pomysł na rozwiązanie przyszedł mi gdy natrafiłem na stronę. Wystarczyło podwoić template<> na początku i wszystko się dobrze skompilowało. Każdy wie, że C++ jest trudny i głupi ale nigdy nie myślałem, że aż tak!