Tag: philosophy

Entries for tag "philosophy", ordered from most recent. Entry count: 34.

Uwaga! Informacje na tej stronie mają ponad 5 lat. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.

Pages: > 1 2 3 4 5 >

# Singletony precz!

Tue
01
May 2007

W ramach porządków w kodzie pozbyłem się dzisiaj wszystkich singletonów zamieniając je na zwykłe, globalne zmienne wskaźnikowe. Tak, wiem co sobie teraz pomyślą wszyscy obrońcy programowania obiektowego... Ja nie mam nic do OOP ani nawet do wzorców projektowych, ale jednak krócej niż res::ResManager::GetInstance().Cośtam jest napisać res::g_ResManager->Cośtam. Poza tym to działa szybciej, bo mówcie co chcecie, ale sprawdzać czy obiekt już istnieje tysiące razy na klatkę to nie jest zerowy narzut czasu.

Przede wszystkim jednak mam teraz kontrolę nad tym, kiedy obiekt powstaje i kiedy jest niszczony, bo... robię to sam. Mogę więc powiedzieć dokładnie, czy w pewnej chwili to czy tamto jest utworzone, w jakiej kolejności jest alokowane i zwalniane oraz zagwarantować, że w danym momencie dany obiekt na pewno istnieje. Słowem - mam w pełni formalnie zdefiniowany czas życia obiektów. To rozwiązało problem, który miałem podczas finalizacji różnych modułów, a z którym nie sposób było inaczej sobie poradzić. Co za ulga! A już zaczynałem wierzyć, że singletony są OK...

Comments | #c++ #philosophy #software engineering Share

# Dobra dokumentacja na wagę złota

Fri
13
Apr 2007

Dokumentacja... Najbardziej znienawidzona część każdego programu. Prawie nikt nie lubi jej pisać, ale wszyscy wiedzą, że jest niezbędna. Dokumentacja jest tym, co najlepiej odróżnia prawdziwy, dopracowany program od eksperymentu/prototypu.

Dla odbiorcy danego programu (czy - przede wszystkim - biblioteki) dobra dokumentacja to nieoceniona pomoc. Zaawansowani tym się właśnie różnią od początkujących, że nie boją się do niej zaglądać, bo wiedzą, że znajdą tam systematyczny i szczegółowy opis każdej funkcji, jej działania i parametrów. Tylko czy na pewno kompletny?

MSDN zawsze pozostaje dla mnie pod tym względem wzorem. Ale już dokumentacji w DirectX SDK można co nieco zarzucić, szczególnie jej części poświęconej D3DX. Oprócz braku rozdziałów opisujących ogólnie sposób używania poszczególnych interfejsów doskwierają liczne drobiazgi. Na przykład:

D3DXMACRO Macros[MACRO_COUNT+1];
for (int i = 0; i < MACRO_COUNT; i++) {
  Macros[i].Name = // ...
  Macros[i].Definition = // ...
}
Macros[MACRO_COUNT].Name = NULL;
Macros[MACRO_COUNT].Definition = NULL;

Comments | #directx #philosophy #software engineering Share

# Najpiękniejszy wzór

Wed
11
Apr 2007

Jaki jest najpiękniejszy wzór w matematyce? Mówi się, że ten który wiąże ze sobą najważniejsze stałe, w tym jednostkę urojoną:

Moim zdaniem jednak najważniejszy wzór to ten na iloczyn skalarny:

Gdyby nie związek liczącego się niezwykle szybko iloczynu skalarnego dwóch wektorow z cosinusem kąta między nimi, trzeba byłoby liczyć go dużo wolniejszymi metodami. Tymczasem bardzo często potrzebny jest właśnie cosinus (częściej nawet niż sam kąt) i mówi on dużo o wzajemnym zwrocie tych wektorów.

Comments | #math #philosophy #humor Share

# Rozważania nad prezentacjami

Sun
11
Mar 2007

Prezentacja - forma dydaktyczna, która znacznie przyspiesza przekazywanie wiedzy. Dzięki niej wykładowca nie musi brudzić się kredą i żmudnie pisać na tablicy wszystkiego, co chce pokazać. Niektórych rzeczy z resztą nie sposób nakreślić ręcznie - jak choćby długie listingi czy złożone diagramy, że nie wspomnę o zdjęciach i zrzutach ekranu. Prezentacja bardzo pomaga w nauczaniu, ale tak jak strona WWW czy inny sposób redagowania tekstu i obrazu może być ładna albo brzydka, profesjonalna albo lamerska, ciekawa albo nudna. Jak zrobić dobrą prezentację?

Na dobry wykład składa się wiele rzeczy. Celem jest, żeby był zrozumiały, ciekawy, efektowny itd. Na pewno liczy się mówiona i pokazywana treść, ale też i sposób wygłaszania, wygląd prezentacji i inne czynniki. Nieustannie zastanawia mnie, skąd czerpać inspirację do doskonalenia tych czynników? Co do samych prezentacji natomiast, nigdy nie rozumiałem po co publikować je w Sieci - sądziłem, że nie sposób się z nich czegokolwiek nauczyć bez usłyszenia danego wykładu. Ostatnio zmieniłem zdanie - szczególnie oglądając prezentacje firmy nVidia.

Comments | #philosophy #teaching Share

# Enkapsulacja

Sat
24
Feb 2007

Enkapsulacja - piękna idea... Używamy klasy poprzez jej interfejs nie myśląc o tym, jak wygląda jej wewnętrzna implementacja. Ale to nie tylko jedno z założeń programowania obiektowego, to także naczelna zasada całego programowania (zawsze piszemy kolejne warstwy kodu korzystając z warstw niższych, z jakiś bibliotek czy funkcji systemowych). Zastosowanie ma nawet w życiu codziennym - sterujemy radiem za pomocą przycisków nie wiedząc nawet, jak to radio jest zbudowane ani jak działa.

Niestety nie wszędzie enkapsulacja ma zastosowanie. Nie sposób używać jej w matematyce. Wyprowadzenia czy dowody można pomijać, ale nie sposób zastosować wzoru bez zrozumienia co on reprezentuje, jak jest zbudowany, jak działa ani skąd się wziął. Czemu równanie matematyczne nie może być niczym biblioteka C++ - funkcją, której podajemy dane na wejście i otrzymujemy dane na wyjściu? Dlaczego skopiowany skąś wzór czy algorytm, choć poprawny, nigdy nie zadziała dopóki go w pełni nie zrozumiemy i nie poprawimy w nim jakiegoś drobiazgu? Czy życie programisty nie byłoby wtedy prostsze? :)

Comments | #philosophy #software engineering #math Share

# Rozważania nad instalatorami

Sat
13
Jan 2007

Ilekroć instaluję jakiś program, zastanawiam się jak te instalatory są pisane, kto je pisze i jak one działają, że proces instalacji trwa tak długo, jest tak złożony i wymaga tylu różnych rzeczy tudzież pokazywania 10 razy paska postępu podążającego spokojnie ku wartości 100%, by znowu się wyzerować? Cóż takiego trudnego jest w wypakowaniu kilku, nawet kilkudziesięciu czy kilkuset plików, w zapisaniu jakiś danych do rejestru systemowego, utworzeniu skrótów w menu Start i ewentualnie sprawdzeniu, czy coś w systemie już istnieje i w jakiej jest wersji, że trwa to wielokrotnie dłużej niż gdyby użytkownik skopiował sobie te pliki ręcznie? Rozumiem gry, które muszą skopiować na dysk całe gigabajty danych z płyty CD, ale ileż czasu może instalować się kilkumegabajtowy program?

Jeszcze bardziej śmieszy mnie deinstalacja niektórych programów. Przecież usunięcie pliku to jest umłamek sekundy, a deinstalatory nierzadko potrzebują sporo czasu by pogmerać po dysku robiąc niewiadomo co, zanim w końcu łaskawie usuną swoje pliki, i tak pozostawiając na dysku i w rejestrze pełno śmieci.

Czy tak musi być? Czy też może programiści po prostu nie przywiązują wagi do instalacji i korzystają z gotowych kreatorów instalatorów, które ktoś kiedyś napisał niespecjalnie przejmując się szybkością, bo przyjęło się że instalacja musi wyglądać (i trwać) tak a nie inaczej? Pod tym względem godne uznania są gry firmy Blizzard, które choć na dysku zamują całe gigabajty, ich deinstalacja trwa około sekundy.

Comments | #philosophy #software #software engineering Share

# Filozofia życia

Wed
20
Dec 2006

Zawsze miałem z tym problemy. Myślenie o takich trudnych sprawach nie jest łatwe, szczególnie że nie wiadomo czy wymyślone raz rozwiązanie sprawdzi się w przyszłości. Chodzi o czas życia... obiektów - kiedy je tworzyć, kiedy zwalniać z pamięci, kto i kiedy ma to robić, który obiekt ma być właścicielem innego, który ma być dla którego dostępny i czy aby na pewno dany obiekt będzie już/jeszcze istniał w danej chwili.

Wynalazki takie jak inteligentne wskaźniki ze zliczaniem referencji, singletony czy nawet języki z garbage collectorem pomagają w tym trochę, albo nie rozwiązują do końca problemu. Wygląda na to, że problem nigdy nie zniknie dopóki programowanie będzie wyglądało tak jak wygląda dziś (według paradygmatu imperatywnego). A może to ja robię coś źle? Na przykład... za dużo filozofuję?

Comments | #philosophy Share

# Bardzo głębokie przemyślenia

Sat
15
Jul 2006

Zastanawiam się, jak to jest, że tylu moich znajomych, kimkolkwiek i skądkolwiek by nie byli, przestaje aktualizować swoje blogi czy strony domowe? Jak to jest, że ludzie zakładają strony, by dać na nich kilka notek albo poprowadzić je przez jakiś czas, a potem zostawić i porzucić?

Dziwi mnie też ostatnio coraz bardziej, czemu wiadomości na Onecie tak często cytują to, co piszą o naszym pięknym kraju (mam na myśli oczywiście Polskę) zagraniczne gazety? Czy inne portale też tak robią? Czy to naprawdę takie ważne? A może to jakiś kompleks?

Comments | #politics #philosophy #web Share

Pages: > 1 2 3 4 5 >

STAT NO AD
[Stat] [STAT NO AD] [Download] [Dropbox] [pub] [Mirror] [Privacy policy]
Copyright © 2004-2019