niedziela, 2 marca 2008

QCad

Linuks z dnia na dzień wydaje mi się coraz fajniejszy ;-). Dzisiaj zainstalowałem sobie program QCad... myslałem, że to kolejny Open Source ktory się do niczego nie nadaje i straszliwie się zawiodłem. Program jest bardzo fajny - jak dla mnie bardziej intuicyjny niż produkt firmy Autodesk a drukowanie... Bajka. Naprawdę jestem pod wrażeniem, że ktoś zrobił coś tak poządnego i udostępnił to za darmo. Do tego OGROMNA biblioteka symboli dostępna za darmo na stronie producenta... czego chcieć więcej ;-).

Jeszcze jedno - aby zainstalować te symbole - ściągamy je sobie, następnie rozpakowujemy, w katalogu

/usr/share/qcad

tworzymy folder library a następnie do niego przenosimy te biblioteki symboli, które nas interesują.

sobota, 1 marca 2008

boost::regex, asio i... Debian

No nareszcie... udało mi się w końcu skompilować przykładowy program wykorzystujący tę bibliotekę. Żebym nie zapomniał zapiszę to sobie tutaj:

#include <boost/regex.hpp> //tak się włącza nagłówek

g++ p1.cc -o p1 /usr/lib/libboost_regex-gcc-mt-1_33_1.a

albo:

g++ p1.cc -o p1 -L/usr/lib/ -lboost_regex-gcc-mt-1_33_1

tak można kompilować. Nie wiem czemu wcześniej tak nie zrobiłem ;-).

Jak już mi się to udało to zainstalowałem sobie przy okazji bibliotekę asio - do obsługi sieci. Na etch-u miałem z tym mały problem. Asio znalazłem jako pakiet źródłowy w lennym i ściągnąłem na dysk.

Wlazłem do katalogu do którego paczki ściągnąłem, następnie poprosiłem system żeby zrobił:

dpkg-source -x asio_0.3.8~rc3-2.dsc

I utworzył się katalog w tym folderze katalog asio-0.3.8~rc3. Wszedem do tego katalogu i wydałem komendę:

dpkg-buildpackage -rfakeroot -uc -b

Zostałem poinformowany o brakujących zależnościach - wszystko udało się doinstalować apt-em, następnie znów poprosiłem Debiana żeby zrobił:

dpkg-buildpackage -rfakeroot -uc -b

Tym razem bez problemów wszystko się skompilowało (chwilkę to trwało...) i stałem się posiadaczem zajebiaszczej, świezutkiej paczki .deb ;-). Pojawiła się ona katalog wyżej - czyli tam, gdzie ściągnąłem pakiet źródłowy a nazywała się:

libasio-dev_0.3.8~rc3-2_all.deb

Pojawiła się też druga paczka - nie wiem skąd jak i dlaczego ale się pojawiła.

libasio-doc_0.3.8~rc3-2_all.deb

Obie zainstalowałem:

dpkg -i libasio-dev_0.3.8~rc3-2_all.deb
dpkg -i libasio-doc_0.3.8~rc3-2_all.deb

Teraz przykadowy program - kod z tutoriala, biblioteki asio, nie wiem czy wolno mi go tutaj wpisać ale co tam, piszę skąd poniższy kod wziąłem, zatem:

#include <iostream>
#include <asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>

int main()
{
asio::io_service io;

asio::deadline_timer t(io, boost::posix_time::seconds(5));
t.wait();

std::cout << "Hello, world!\n";

return 0;
}

a kompilacja - bo z tym znowu miałem problem... a wystarczyło czytać co kompilator do mnie mówi ;-)

g++ p2.cc -o p2 -L/usr/lib -lboost_date_time-gcc-1_33_1 -pthread

Wiadomo - date_time z boosta i pthread się linkuje. pthread w celu obsługi wątków - asio korzysta z tego gdzieś tam głęboko w swoich klasach. Można zrobć żeby korzystało z wątków boosta i chyba jeszcze z regexa boostowego ale ja już się w to na pewno nie będę bawił ogólnie to z tym boostem na debianie jest trochę dziwnie chociaż pewnie i tak jest w tym jakiś głębszy sens którego ja jeszcze nie rozumiem.

Wszystkie "ficzery" Debiana które na początku wydawały mi się irytujące zawsze okazywały sie jednak przemyślanymi rozwiązaniami więc pewnie i z tym jest tak samo.

poniedziałek, 18 lutego 2008

C++

Warto czasem poczytać mądrą książkę a nie tylko ten internet ciągle. C++ to fajny język. Wszystko w nim można tak przepięknie zagmatwać. Dzisiaj na forum poprawiłem jakiemuś chłopakowi program do liczenia średniej ocen klasy. Pętla for, jakieś tablice... zacząłem się zastanawiać jak by to można było bardziej C++'owo zrobić...

#include <vector>
#include <iostream>

using namespace std;

class UCZEN
{
  public:
     string imie;
     string nazwisko;
     float srednia;
     UCZEN(){};
};

class KLASA
{
  public:
     static int uczniow;
     static float suma_srednich;
     vector<UCZEN> uczniowie;
     UCZEN u_tmp;

    KLASA(bool b_);
    KLASA() {};

    UCZEN &operator()();
    float srednia() {return suma_srednich/uczniow;};
};


KLASA::KLASA(bool b_)
{
   int ilu_uczniow;
   cout << "Wprowadz liczbe uczniow: ";
   cin >> ilu_uczniow;
   generate_n(back_inserter(uczniowie),ilu_uczniow,KLASA());
}

UCZEN &KLASA::operator()()
{
   cout << "Podaj imie ucznia: ";
   cin >> u_tmp.imie;
   cout << "Podaj nazwisko ucznia: ";
   cin >> u_tmp.nazwisko;
   cout << "Podaj srednią ucznia: ";
   cin >> u_tmp.srednia;
   uczniow++;
   suma_srednich+=u_tmp.srednia;
   return u_tmp;
}

int KLASA::uczniow=0;
float KLASA::suma_srednich=0;

int main()
{
   KLASA kl(true);
   cout << "Srednia klasy wynosi: "<<kl.srednia()<<endl;
   return 0;
}

Maszkaron, paskuda, szkarada, okropieństwo, wymoczek... tak bym ten kod podsumował ;-).

sobota, 16 lutego 2008

Po sesji

No to już po sesji, nie było tak źle - tylko dwie banie ;-). Tak żeby nie było że nic nie robię - na sesji zacząłem pisać sapera - skończę pewnie jeszcze dzisiaj. Potem będę sobie musiał wymyślić coś fajnego, bo pisanie głupot przestaje mi się powoli podobać. Pozatym to napisałem wczoraj pierwszego w swoim krótkim życiu posta na forum i nikt na mnie jeszcze nie nakrzyczał.

piątek, 8 lutego 2008

Privateer Gemini Gold

Ludzie narzekają na brak gierek na linuksie a tymczasem na żadnym serwisie o grach dla systemu linuks nawet najmniejszej wzmianki o tej grze nie znalazłem. Jest świetna - klimatyczna, wciągająca i wogóle (przynjamniej jak dla mnie). Latamy sobie po kosmosie małym stateczkiem, możemy grać jako "wolny strzelec" - latać sobie, robić misje, uleszać statek, strzelać, handlować itp, jadnak prócz tego gra ma również scenariusz, w którym możemy uczestniczyć. Mamy też różne frakcje - strzelając do jednych - inni stają sienaszymi sojusznikami. Wogóle gierka genialna. Jeśli ktoś pamięta privateera z czasów amigi - MUSI w to zagrać. Grafika trochę niedzisiejsza ale gra nadrabia klimatem i grywalnością. Szczerze wszystkim polecam. Strona , z której można porać grę:

http://priv.solsector.net/files.htm

Miłej zabawy.

Ps.: Przed rozpoczęciem radzę zajrzeć do manuala - sterowanie statkiem kosmicznym to jednak wyzwanie ;-).

czwartek, 7 lutego 2008

Najnowsze wine w Debianie Etch

Potrzebna mi była najnowsza wersja wine. W repozytoriach Debiana Etch obecnie jest wersja 0.9.25 a ja potrzebowałem conajmniej 0.9.5... Na oficjalnej stronie Wine jest paczka, która u mnie nie sprawiała żadnych problemów. Sposób instalacji paczki znajduje się tu:

http://www.winehq.org/site/download-deb


trzeba dodać repozytorium i dodać je do listy zaufanych:

sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/etch.list -O /etc/apt/sources.list.d/winehq.list
wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -

Następnie oczywiście

aptitude update
aptitude install wine

i możemy sobie instalować programy windowsowe. Nie musimy ich instalować z konta roota. Jeśli nic nie grzebaliśmy w konfiguracji instalowane programy znajdziemy gdzieś w podkatalogach katalogu:

$HOME/.wine/drive_c/

środa, 6 lutego 2008

Fajna piosnka ;-)

Jak w tytule - Sum 41 - Pieces. Niestety nie trafiłem na żadną inną fajną piosenkę tego zespołu ;-).