Snippety w Visual Studio – C#

Jest to jedna z moich ulubionych funkcjonalności z cyklu „ułatwiających życie” w Visual Studio:)
Snippety umożliwiają łatwe wstawienie kawałka „szablonowego” kodu – np. if…else, for, switch itd.
Dostępne snippety można przejrzeć wybierając z menu Tools->Code Snippets Manager. Można w tym miejscu tworzyć również swoje własne snippety.
Wstawić snippet do swojego kodu można poprzez wpisanie przypisanego do niego słowa i naciśnięcie tabulatora (szerzej o tym sposobie będzie dalej, ponieważ uważam go za zdecydowanie wygodniejszy) lub poprzez wybranie z menu Edit->InteliSense->Insert Snippet (kombinacja klawiszy: Ctrl+K, X), następnie wybranie Visual C# oraz wybranie żądanego snippetu.

Najfajniejsze i najprzydatniejsze wg mnie po kolei :
Cel: utworzenie dyrektywy kompilacji warunkowej (nie będę wchodzić w szczegóły działania poszczególnych kawałków kodu, ponieważ nie to jest przedmiotem tej notki;))
Słowo, które wpisujemy: #if (i naciskamy tab)
Otrzymujemy:

#if true
 
#endif

(kursor znajduje się na słowie true, dzięki czemu łatwo możemy zmienić je na takie jakiego potrzebujemy)

Cel: utworzenie dyrektywy pozwalającej na ukrywanie (zwijanie) kodu w edytorze
Słowo, które wpisujemy: #region
Otrzymujemy:

#region MyRegion
 
#endregion

(kursor znajduje się na słowie MyRegion, umożliwiając natychmiastową zmianę nazwy regionu)

Cel: utworzenie szkieletu klasy
Słowo, które wpisujemy: class
Otrzymujemy:

class MyClass
{
 
}

(kursor znajduje się na słowie MyClass)

Cel: utworzenie wywołania funkcji Console.Writeline
Słowo, które wpisujemy: cw
Otrzymujemy:

Console.WriteLine();

(kursor znajduje się w nawiasie celem wpisania tam tekstu jaki ma zostać wyświetlony)

Cel: utworzenie szkieletu pętli do…while
Słowo, które wpisujemy: do
Otrzymujemy:

do
{
 
} while (true);

(kursor znajduje się na słowie true – wpisujemy treść warunku)

Cel: utworzenie szkieletu instrukcji else
Słowo, które wpisujemy: else
Otrzymujemy:

else
{
 
}

(kursor znajduje się między nawiasami)

Cel: utworzenie szkieletu pętli for
Słowo, które wpisujemy: for
Otrzymujemy:

for (int i = 0; i < length; i++)
{
 
}

(kursor znajduje się na zmiennej i w pierwszym wyrażeniu, umożliwiając jej zmianę – jeśli w tym miejscu zmienimy i, to zmieni się ono też w pozostałych wyrażeniach; naciśnięcie tabulatora spowoduje przejście do zmiennej length w drugim wyrażeniu i umożliwi jej zmianę)

Cel: utworzenie szkieletu pętli foreach
Słowo, które wpisujemy: foreach
Otrzymujemy:

foreach (object var in collection_to_loop)
{
 
}

(kursor znajduje się na słowie object umożliwiając wyedytowanie kolejny parametrów – var, collection_to_loop)

Cel: utworzenie szkieletu pętli forr
Słowo, które wpisujemy: forr
Otrzymujemy:

for (int i = length - 1; i >= 0; i--)
{
 
}

(kursor znajduje się na zmiennej i w pierwszym wyrażeniu – działa podobnie jak snippet dla for, ale iteracja idzie w drugą stronę)

Cel: utworzenie szkieletu pętli if
Słowo, które wpisujemy: if
Otrzymujemy:

if (true)
{
 
}

(kursor znajduje się na słowie true)

Cel: utworzenie wywołania funkcji MessageBox.Show();
Słowo, które wpisujemy: mbox
Otrzymujemy:

MessageBox.Show("Test");

(kursor znajduje się na słowie Test)

Cel: utworzenie szkieletu instrukcji definiującej przestrzeń nazw
Słowo, które wpisujemy: namespace
Otrzymujemy:

namespace MyNamespace
{
 
}

(kursor znajduje się na słowie MyNamespace)

Cel: utworzenie szkieletu instrukcji switch
Słowo, które wpisujemy: switch
Otrzymujemy:

switch (switch_on)
{
    default:
}

(kursor znajduje się na słowie switch_on)

Cel: utworzenie szkieletu instrukcji try…catch
Słowo, które wpisujemy: try
Otrzymujemy:

try
{
 
}
catch (Exception)
{
    throw;
}

(kursor znajduje się na słowie Exception)

Cel: utworzenie szkieletu instrukcji while
Słowo, które wpisujemy: while
Otrzymujemy:

while (true)
{
 
}

(kursor znajduje się na słowie true)

Od dziś RSS-y by FeedBurner!

Od dziś blogowe RSS-y (zarówno te z notkami jaki i komentarzami) wykorzystują FeedBurner – świetne narzędzie “by Google”. Pozwala na monitorowanie listy subskrybentów i wiele innych.
Nowe adresy RSS-ów, to http://feeds.feedburner.com/BlogProgramistki oraz http://feeds.feedburner.com/BlogProgramistkiKomentarze.

Koniec z ręcznym kolorowaniem kodu

Postanowiłam zrezygnować z ręcznego nakładania styli na kod źródłowy zawarty w notkach, ponieważ jednak jest to czasochłonne i niezbyt wygodne. Zamiast tego w notkach będzie używany plugin WP-Syntax. Prosty i wygodny – miałam już okazję użyć go przy reedycji notek by składnia była kolorowana przy jego użyciu:) Generalnie polecam – można praktycznie wszystko skonfigurować:) Piszę „praktycznie”, ponieważ zmieniając potrzebne mi rzeczy, nie napotkałam na nic „nie do zmiany”, ale może coś takiego jest;)

Jak się łamie kody CAPTCHA

Spotkałam się niedawno na serwisie hack.pl z opisem sposobu łamania kodów CAPTCHA. Okazuje się, że za tym wszystkim stoją, a raczej siedzą przy kompach ludziki i wygląda to tak:

1. Oprogramowanie typu bot odwiedza stronę rejestracji i wypełnia formularz rejestracji losowymi danymi.
2. W momencie wyświetlania zabezpieczenia typu CAPTCHA oprogramowanie typu bot wysyła wiadomość do terminalu komputerowego w Indiach.
3. Pracownicy wpisują odpowiednią kombinację liter i cyfr, a następnie wysyłają informację zwrotną do programu.
4. Program wypełnia pole odpowiedzi i kończy proces rejestracji.
5. W ten sposób spamerzy uzyskują swobodny dostęp do kont użytkowników.
6. Z konta wysyłana jest niepożądana poczta elektroniczna do tysięcy legalnych kont poczty elektronicznej.

Cały artykuł znajduje się tutaj.

Prima Aprilis 2008

I tak ofiarą Prima Aprilis w tym roku padła moja ulubiona zabawka w Linuxie – Compiz. Oto cytat ze strony http://magicgarden.sourceforge.net w której właściciel sugeruje iż efekt obracającej się kostki to tylko odpowiednio spreparowany filmik;)

„Facts:
Everyone knows that there are no 3D games for Linux. Everyone knows that Linux has serious troubles with video drivers. So how is it possible that something so cool was created for Linux? Think!
Best Windows gurus spend 11h (eleven hours) trying to configure Compiz Fusion. And the result? Completely nothing. Compiz Fusion doesn’t work because it can’t work.
Each video of rotating cube on youtube is in fact the same movie processed with different video filters.
Closer analysis showed that the thing called „Compiz Fusion” is in fact just a movie rendered on four Windows Vista machines in seven hours. This movie is now available as a package for most popular Linux distributions.
Each person who claim, that he uses a Compiz Fusion is a lier. All he can do on his Linux is to play a prerendered movie.

Czego to ludzie nie wymyślą:)