5 kwietnia 2009
Kategorie: programowanie | Tagi: C++, code, eksperymenty, iterator, vc
komentarze: 0
Od wersji 2005 Visual C++ posiada opcje sprawdzania ważności iteratorów. Nie będę tu produkował tekstu opisującego jak to dokładnie działa, na stronach MSDN można znaleźć kilka artykułów na ten temat: Checked Iterators, Debug Iterator Support. W wersji debug aplikacji, program poczęstuje nas assertami, kiedy spróbujemy wykonać jakąś operacje na iteratorze bądź funkcji go wykorzystującej, w [...]
czytaj całość »
8 listopada 2008
Kategorie: programowanie | Tagi: C++, code, eksperymenty, iterator, pointers, STL
komentarze: 0
Kontynuując temat konwersji wskaźnika do iteratora z poprzedniej notki, chciałbym rzucić nieco więcej światła i nowych spostrzeżeń jakie mnie naszły po popełnieniu wspomnianego wpisu, po którym nie mogłem spokojnie zasnąć ;) Rewidując ponownie ten problem pod katem wydajnościowym i nie tylko doszedłem do wniosku, że w ogóle taka operacja jest bez sensu, uzycie takiej operacji [...]
czytaj całość »
8 listopada 2008
Kategorie: programowanie | Tagi: C++, code, eksperymenty, iterator, pointers, STL
komentarze: 5
Czym jest iterator w STL każdy wiedzieć powinien. Mogę wspomnieć ze jest to typ z zachowaniem podobnym do wskaźnika, który służy do poruszania się po kontenerach biblioteki standardowej, ale nie jest to wskaźnik, mimo iż w większości implementacjach jest to opakowany w obiekt wskaźnik. Kilka flejmów na ten temat można znaleźć w usenetowych archiwach pl.comp.lang.c [...]
czytaj całość »
24 września 2008
Kategorie: programowanie | Tagi: C++, code, debug, eksperymenty
komentarze: 0
Potrzebowałem w prosty sposób i łatwy sposób logować moment tworzenia i niszczenia obiektów. W najprostszym wypadku wystarczyłoby przeciążyć operator new i delete, ale wtedy logowanie dotyczyłoby tylko obiektów tworzonych na stercie. A ja chce i stos, i stertę ;) No to wystarczy w konstruktorze i destruktorze umieścić wywołanie funkcji logującej i problem znika. Tylko, że [...]
czytaj całość »
21 czerwca 2008
Kategorie: programowanie | Tagi: alpha, C++, code, eksperymenty
komentarze: 2
Potrzebowałem uzyskać jak najprostszym sposobem efekt alpha blendingu, a z racji, że nie miałem o tym pojęcia, i nadal zbytnio nie mam o grafice 2/3D próbowałem zaczerpnąć informacji w niezliczonych zasobach sieciowych ;) Szukałem jakiegoś prostego sposobu wyznaczania średniej wartości składowej koloru danego piksela. W różnych źródłach znalazłem kilka różnych działań obliczających tą wartość, od [...]
czytaj całość »
14 kwietnia 2008
Kategorie: programowanie | Tagi: array, C++, code, eksperymenty, matrix
komentarze: 1
Potrzebuje jakiejś ciekawej, prostej i optymalnej implementacji tablicy dwuwymiarowej do przechowywania prostych elementów lub wskaźników. Najprostszym rozwiązaniem byłoby wykorzystanie kontenerów z STL: std::vector<std::vector<Element*> > array Szybko i prosto, tylko używać. Ale pojawia się problem, bo chciałbym, aby pojedyncza linia zachowywała się jak czysta tablicą w stylu C (wymagania API). Także można by bez problemu zastosować [...]
czytaj całość »
13 kwietnia 2008
Kategorie: programowanie | Tagi: asm, C++, code, eksperymenty
komentarze: 0
Haszowanie stringów z wykorzystaniem prostego algorytmu Roberta Sedgwicks z książki „Algorithms in C”. Według testów różnych prostych algorytmów opublikowanych na stronie Hash Function Efficiency, można zauważyć ze właśnie RS jest prostym i małokolizyjnym algorytmem. Dlatego właśnie go wybrałem do użycia w swoim projekcie, do haszowania nazw funkcji serwisowych eventów, hooków. Implementacja w C++: unsigned int [...]
czytaj całość »
7 kwietnia 2008
Kategorie: projekty | Tagi: C++, eksperymenty, libs, network
komentarze: 5
Mój HttpSession jest trochę „do dupy”, bo uzależniony od Windowsa i jego WinInet. No cóż, potrzebowałem nas szybko jakąś łatwą i prostą obsługę sesji HTTP, wiec powstała ona taka jaka jest. Od dawana chodzi mi pogłowie mała refaktoryzacja. Wydzielenie publicznego interfejsu i uniezależnienie się od systemu. Wersja win oparta dalej na WinInet, a wersja unixowa [...]
czytaj całość »
30 października 2007
Kategorie: projekty | Tagi: C++, code, eksperymenty
komentarze: 1
Potrzebowałem w pewnym projekcie łatwej obsługi logowania wszelkich informacji, do tego z prostotą taką, jaką udostępniają strumienie, głównie przez operator <<. Po kilku próbach implementacji i przeszukiwań sieci wpadł dobry pomysł ;) Klasa LogStream jest prostym dispatcherem, (proste wykorzystanie wzorca Observer), w którym rejestrujemy dowolne strumienie, a wszelkie dane otrzymywane przez obiekt dispatchera są rozsyłane [...]
czytaj całość »
11 lipca 2007
Kategorie: webdev | Tagi: eksperymenty, framework, mvc, PHP, router
komentarze: 5
Wiem, że powinienem w tym czasie zamiast bawić się w PHP rozwijać te kilka ważnych projektów w C++, ale doszedłem do wniosku, ze poświęcę jeszcze trochę czasu na uporządkowanie kilku spraw i projektów. A potem zabrać się za komunikatora ;) Notatka nie będzie dotyczyć zabaw z typowym routerem, mowa tu o komponencie/module frameworka odpowiedzialnym za [...]
czytaj całość »