September 2008

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

# Przechodzenie tablicy - koncepcja Stride

11:20
Sun
28
Sep 2008

Jeśli piszemy funkcję, która ma przejść po kolejnych wektorach, to najprościej wydaje się przekazać po prostu tablicę wektorów:

void DoSth(const vec3 Arr[], size_t ArrLen)
{
  for (size_t i = 0; i < ArrLen; i++)
    DoSthWithVec(Arr[i]);
}

Istnieje pewien genialny pomysł, który uczyni tą funkcję bardziej elastyczną. Polega na przekazaniu jej Stride - kroku, mówiącego o ile bajtów trzeba przesuwać wskaźnik:

void DoSth(const void *Data, size_t ArrLen, int Stride)
{
  const char *Bytes = (const char*)Data;
  for (size_t i = 0; i < ArrLen; i++)
  {
    DoSthWithVec( *(const vec3*)Bytes );
    Bytes += Stride;
  }
}

To pozwala m.in.:

To jeden z tych drobnych algorytmów, których niestety nikt nigdzie nie naucza. Każdy musi je gdzieś wypatrzeć przy okazji (albo samemu wymyślić, jeśli ma do tego łeb :)

Comments | #c++ #algorithms Share

# MSDN Library - warto ściągnąć

20:23
Sun
21
Sep 2008

Nowe! Ten wpis dotyczy starego MSDN Library. Aby przecztać o nowej dokumentacji w Visual Studio 2010, zapraszam do wpisu pt. Documentation in Visual CPP.

Nie pisałem chyba jeszcze o tym, a nieraz przekonałem się, że nie wszyscy o tym wiedzą. Chodzi o MSDN Library - dokumentację Microsoftu dla programistów, która zawiera m.in. opis obsługi Visual Studio, biblioteki standarowej C++, interfejsu WinAPI, OpenGL, języka C# i całej platformy .NET oraz jej biblioteki i wielu, wielu innych rzeczy. Każdy kto przestał korzystać tylko z przeczytanych tutoriali zagląda tam, żeby znaleźć opis danej funkcji czy poczytać, jak w Windows zaimplementować to czy tamto. Wiele osób, jak widzę, korzysta z tej dokumentacji w wersji online.

Tymczasem MSDN Library jest dostępny za darmo w wersji do pobrania, jako obraz płyty ISO zajmujący 2 GB. Na tej płycie leży instalator, który pozwala zainstalować na dysku wybrane części dokumentacji. Posiadanie MSDN Library zainstalowanego lokalnie ma wiele zalet: 1. Działa szybciej, 2. Działa nawet kiedy Internet wysiądzie, 3. Oprócz drzewiastego spisu treści i wyszukiwania pełnotekstowego (które wbrew pozorom jest niezbyt użyteczne) posiada indeks, czyli alfabetyczny spis wszystkich funkcji i innych tematów. On jest naprawdę bardzo przydatny i m.in. dzięki niemu nie wyobrażam sobie korzystania z MSDN Library przez Internet, zawsze mam zainstalowany na swoim dysku.

MSDN Library

Comments | #visual studio #tools #web Share

# AutoIt - automatyzacja Windows

23:49
Fri
19
Sep 2008

Miłośnicy "drobiu arktycznego" wiedzą, jak fajna jest możliwość wykonywania różnych operacji automatycznie, za pomocą skryptów. W Windows takie podejście nie jest typowe dla użytkowników, zwłaszcza że wiele programów ma wyłącznie interfejs okienkowy, którym nie sposób sterować z konsoli. Jednak jest na to rada - istnieją technologie do automatyzacji GUI, takie jak AutoIt.

AutoIt to język skryptowy podobny do Basic, z którego można m.in. uruchamiać programy, wysyłać wciśnięcia klawiszy, kliknięcia myszki oraz operować na oknach i kontrolkach interfejsu użytkownika. Dzięki temu można przygotować sobie skrypt, który "na powitanie" uruchomi wybrane programy i wyda w nich od razu pewne polecenia. Na przykład tak wygląda skrypt, który uruchamia Total Commander i automatycznie klika w jeden z przycisków 1, 2, 3 w okienku przypominającym o rejestracji:

const $WindowTitleMatch = "Total Commander"
const $WindowTextMatch = "NagPage"
const $ProgramPath = "M:\Program Files\Total Commander\TOTALCMD.EXE"
Run($ProgramPath)
WinWait($WindowTitleMatch, $WindowTextMatch)
$Number = ControlGetText($WindowTitleMatch, $WindowTextMatch, "[CLASS:TPanel; INSTANCE:2]")
WinActivate($WindowTitleMatch, $WindowTextMatch)
Send($Number)

Comments | #software #tools Share

# Wyszukiwanie inkrementacyjne

20:24
Wed
17
Sep 2008

Tematu wyszukiwania ciąg dalszy... Każdy edytor tekstu ma wyszukiwanie Ctrl+F, ale od pewnego czasu twórcy interfejsów użytkownika wiedzą, że brak okienek dialogowych i natychmiastowa odpowiedź jest lepsza. Dlatego wiele edytorów ma wyszukiwanie inkrementacyjne (czy jak to tam ładnie po polsku nazwać :P) - takie, w którym można wpisywać kolejne litery i one się od razu wyszukują.

Na przykład w Visual C++ służy do tego skrót Ctrl+I. Wpisywanie kolejnych znaków wprowadza tekst do wyszukania, Backspace kasuje, Ctrl+I znajduje następne wystąpienie, Ctrl+Shift+I poprzednie, a ESC wychodzi z trybu wyszukiwania. Z kolei w moim ulubionym edytorze tekstu - jEdit - taka funkcja jest dostępna pod skrótem Ctrl+, (przecinek).

Comments | #tools #software #gui #visual studio Share

# Windows Search może być fajny

19:57
Mon
15
Sep 2008

Skusiłem się niedawno na zainstalowanie w moim Windows XP mechanizmu Windows Search, dostępnego jako element opcjonalny w aktualizacjach Windows Update. Posiadacze Visty mają go zainstalowanego domyślnie. Chodzi o indeksowanie całego dysku, żeby potem można było szybko i wygodnie przeszukiwać swoje pliki.

Długo nie mogłem się przekonać do indeksowania, ale teraz nawet mi się to podoba. Wyszukiwanie odgrywa coraz większą rolę w użytkowaniu komputera. Strony internetowe wyszukujemy na Google, posiadacze Firefoksa od wersji 3 przeszukują adresy i tytuły ostatnio odwiedzonych stron, a programistom poruszać się po dużym kodzie też najwygodniej jest za pomocą wyszukiwania (czy to w Visual AssistX, czy ręcznie, przez szukanie ciągu w całej solucji). Czemu zatem nie przeszukiwać szybko swojego dysku?

Domyślnie indeksowane są Menu Start, Moje dokumenty oraz poczta Outlook Express. Można zmienić konfigurację w Panelu sterowania, w aplecie Indexing Options, zaznaczając do indeksowania na przykład cały dysk D: i E: (swoją drogą, ja zawsze mam przestawione Moje dokumenty tak, że wskazują na katalog główny dysku D:).

Domyślnie indeksowaniu podlegają nazwy wszystkich plików i katalogów, metadane wielu formatów (jak MP3, JPG, AVI) i cała treść niektórych plików (jak DOC, HTML, TXT, a także źródła CPP czy H). Można też instalować, jak i pisać własne wtyczki, które obsługują nowe typy plików i inne lokalizacje, np. wtyczka indeksująca treść plików PDF czy pocztę Thunderbird (ta ostatnia niestety nie chce mi się zainstalować).

Pierwsze indeksowanie trwa długo, ale potem odpowiedzialna za to usługa działa sobie w tle i zachowuje się na tyle inteligentnie, że z powodu aktywności użytkownika spowalnia indeksowanie, a z powodu aktywności dysku całkowicie je wstrzymuje. Indeks (który domyślnie leży w C:\Documents and Settings\All Users\Application Data\Microsoft\Search, można to zmienić) niestety bywa duży - u mnie zajmuje 1.6 GB. Potem już każdy utworzony, zmieniony czy skopiowany plik jest niemal natychmiast dostępny do wyszukania.

Comments | #windows Share

# Debugger Visual C++ - Watches

23:59
Sat
13
Sep 2008

Z okienkiem podglądu zmiennych w debuggerze Visual C++ 2005/2008 można zrobić dużo ciekawych rzeczy. Można na przykład jako wyrażenie do podglądnięcia wpisać:

Można też tworzyć wizualizery do swoich typów. Ten nieudokumentowany mechanizm opisuje artykuł na blogu autora VirtualDub - Writing custom visualizers for Visual Studio 2005. Trzeba tylko wyedytować plik autoexp.dat. Choć składnie ma dziwną, cały ten mechanizm jest zbugowany i nie zgłasza porządnie błędów składni, to jednak możliwości ma spore - w tym wbudowaną obsługę tablic, list łączonych, drzew, a do bardzo złożonych struktur danych możliwość pisania wizualizerów jako biblioteki DLL - tzw. EEAddIn (Expression Evaluator Add-In).

Comments | #visual studio Share

# Dzień Programisty

20:13
Fri
12
Sep 2008

Ponieważ mamy rok przestępny, dzisiaj - 12 września - wypada 256. dzień roku, czyli Dzień Programisty. Z tej okazji życzę programistom wszystkiego najlepszego i przede wszystkim samych sukcesów w kodzie. Jako że z okazji tego święta wypada podobno napisać jakiś głupi kod, przytoczę arcygenialną instrukcję zabezpieczającą, którą gdzieś kiedyś znalazłem:

if (!this) return;

Comments | #events Share

# Nowe galerie - WCG 2008 i Bielany

15:49
Sun
07
Sep 2008

W poprzedni weekend byliśmy - ja i dwóch chłopaków z Vexillium - j00ru i Oshogbo - na polskich finałach WCG 2008 - World Cyber Games, które odbyły się w CH Blue City w Warszawie. Kibicowaliśmy rozgrywkom w StarCraft. Gratulujemy zwycięstwa Draco! Więcej info o imprezie: Polskie finały WCG 2008 - minuta po minucie, Forum NetWars. Relacja z naszego wypadu autorstwa Oshogbo: WCG. Moja fotorelacja - WCG 2008.

Moja druga nowa galeria przedstawia Bielany - dzielnicę, na której obecnie mieszkam. Tu jest bardzo pięknie i zielono. Kto odwiedzając Warszawę ogląda tylko brudne, zatłoczone, betonowe centrum, ten nie wie, jak naprawdę wygląda to miasto :)

Comments | #gallery #events #life Share

STAT NO AD
[Stat] [STAT NO AD] [Download] [Dropbox] [pub] [Mirror]
Copyright © 2004-2017