sobota, styczeń 31, 2009

This site may harm your computer...

Dziś zauważyłem dziwną rzecz. Po wyszukaniu słowa w google chciałem jak każdy normalny człowiek przejść na tę stronę, jednak zamiast strony moim oczom ukazał się następujący widok:

Co jest? - pomyślałem. Czyżbym źle zobaczył adres i wszedł na jakąś stronę, która rzeczywiście może być niebezpieczna i Google uprzejmie mnie o tym informuje?
Sprawdzam. Nie, no dobrze widzę - Wikipedia.
jednak pod adresem strony pojawił się taki mały dodatek:

Sprawdziłem w ustawieniach i Safe search jest wyłączone. Inne strony też mają takie oznaczenie. Czyżby Google "dziś" uznało cały Internet za niebezpieczny?

Dopisano: Szybko działają :-). Dodatek już zniknął. Ale kto wie, może to próba generalna przed całkowitą blokadą dostępu do sieci?? :)

Dopisano 20:28: Nie byłem jedyny :) - http://www.wykop.pl/ramka/138856/reakcja-uzytkownikow-wykopu-na-blad-w-google

niedziela, styczeń 25, 2009

VS 2005 a nasza wydajność...

Zawsze z lekkim przymrużeniem oka patrzyłem na przykłady jak to w C# 3.5 w stosunku do 2.0 usprawnia pisanie kodu. Wyrażenia lambda, automatyczne property, słowo kluczowe var. Oczywiście stosowałem je programując w VS 2008, ale chyba do końca nie doceniałem ich przydatności.

Ostatnio jednak musiałem sporo programować w VS 2005. Dopiero to pozwoliło uświadomić mi jak nowe VS 2008 ułatwia naszą pracę. Użeranie się z pisaniem prywatnego pola, tylko po to aby je zwracać w get i ustawiać w set - kompletna strata czasu. Tworzenia delegata, aby przekazać go do metody (tu anonimowe delegaty i tak znacznie ułatwiają). Ciągłe powtarzanie typu zmiennej przy jej tworzeniu. Nie chcę 'klepać takiego kodu'.

Na moje szczęście mam licencję ReSharpera (którego notabene używam razem z VS 2008) tak więc niezwłocznie go doinstalowałem, aby nie musieć więcej 'użerać się' z takim kodem. Po prostu szkoda mi na to czasu.

Więc jeśli Ty z jakichś powodów musisz używać VS 2005 (lub też w VS 2008 nadal nie korzystasz z dostępnych udogodnień - z niektórych z nich możesz korzystać nawet jeśli piszesz pod .NET Framework 2.0) - zaopatrz się w narzędzie, które sprawi, że kod będzie pisany szybciej i jednocześnie więcej będziesz mieć na wymyślanie logiki oraz napisanie całości w spójny, rozszerzalny i po prostu czysty sposób. Będziesz po prostu bardziej wydajny. Bo przecież o to w tym chodzi.

Jeśli twój przełożony jest negatywnie do takich narzędzi nastawiony - wyjaśnij mu, że przecież twój czas stracony na pisanie takiego kodu jest cenniejszy - a przynajmniej być powinien.

Kim chcesz być - rzemieślnikiem czy artystą?

Linki:


niedziela, styczeń 11, 2009

Deep Zoom Composer

Dziś na wykopie pokazał się ciekawy rysunek przedstawiający na co wydawane są pieniądze podatnika w USA.

Takie duże grafiki zawsze zapalają u mnie lampkę - Deep Zoom Composer. Postanowiłem sprawdzić czy dostępna jest nowa wersja oraz co się od czasu Preview 2 zmieniło. Na pierwszy rzut oka tool wygląda tak samo. Dostępna jest wstępna dokumentacja narzędzia.

Na zakładce Exportu pojawił się też nowe typy projektu - Images oraz Seadragon AJAX

W wygenerowanym projekcie widać natomiast zmianę. Dodano 4 przyciski, umożliwiające nawigację:

"+" i "-" wiadomo do przybliżania i oddalania obrazu. Pozostałe dwa to zoomowanie do widoku 1:1 oraz FullScreen. Przydatne - nie trzeba robić samemu.

Cały projekt dostępy tutaj:


Jeszcze jeden ciekawy projekt z ciekawym zdjęciem - Resources

Miłej zabawy z Deep Zoom'em :-)

[Info] Zmiana szablonu

Jeśli ktoś odwiedza tego bloga od jakiegoś czasu może zauważyć, że od dziś wygląda on inaczej.

Postanowiłem zmienić wygląd, gdyż poprzedni doprowadzał mnie do 'białej gorączki'. Weźmy taki obrazek z wpisu SQL Injection od 'środka' :

Tyle przestrzeni po bokach niewykorzystanej, a kod wygląda kompletnie nieczytelnie. Tak i tak starałem, się formatować kod, aby wyglądał jak najlepiej, ale jak widać nie zawsze się to udaje.


Zalety nowego:
  • więcej przestrzeni na treść
  • mniej mojej pracy przy formatowaniu kodu
Wad (na chwilę obecną) brak.


Miłego czytania.

sobota, styczeń 10, 2009

Wszyscy chcą Se7en

9 stycznia o 12 (czasu PST) Microsoft opublikował beta wersję najnowszego systemu operacyjnego Windows 7.
2,5 mln kluczy czekało na śmiałków chętnych podjęcia się klikania w nowy system. Wygląda chyba na to, że jednak nie spodziewali się, aż takiego zapotrzebowania bo przy okazji zrobili sobie mały atak DoS :-).

U mnie strony wyglądały tak:




Dzięki lifehacker.com mam możliwość pobrania obrazów ISO, ale połączenie cały czas jest zrywane lub kończy się po kilkudziesięciu MB - więc na razie bez sukcesów. Nie wiadomo jak będzie też z kluczami..

Cóż Microsoftowi pozostaje się chyba cieszyć dużą popularnością nowego Windowsa, a nam pozostaje czekać...

Dodano: Udało się w końcu pobrać 7-kę. Zatem do instalacji.

piątek, styczeń 09, 2009

Pierwszy etap Speaker Idol na ścieżkę .NET zakończony




Pierwszy etap Speaker Idol'a na konferencję C2C'09 zakończony. Osoby, które będą się zmagać o prawo wygłoszenia sesji to:


  1. Barbara Fusińska - Wzorce w akcji: Wyraz swoje intencje - doprecyzuj role
  2. Jacek Ciereszko z tematem "Silverlight 2.0 Tips and Tricks".
  3. Andrzej Szczodrak - temat jest uzupełniany
  4. Szymon Pobiega z tematem "Service oriented architecture - event driven architecture"
  5. Piotr Leszczyński z tematem "Kolejny kontener DependencyInjection? NIE - dziękuję!! Czyli o koncepcji meta-kontenera słów kilka.

Zapowiadają się ciekawe tematy.

P.S Trwa jeszcze przyjmowanie zgłoszeń do Speaker Idola na NET w wersji ONLINE - czyli webcasty - do 18 stycznia czekamy pod adresem si(mapłka)c2c.org.pl

środa, styczeń 07, 2009

Codecamp.pl - Wideo z sesji

Z biciem w pierś i uniżoną głową chcemy ogłosić, iż filmy z sesji codecamp'owych są już dostępne do obejrzenia. Trochę to trwało zanim się udało. Teraz tylko oglądać.

http://codecamp.pl/PostConference/Videos.aspx

wtorek, styczeń 06, 2009

KGD.NET znowu nadaje...




Po wielu trudach i niezliczonych problemach udało się udostępnić filmy ze spotkań KGD.NET. Aby je obejrzeć konieczna jest rejestracja (i późniejsze zalogowanie) do grupy KGD.NET. Na chwilę obecną dostępne są dwa filmy z 41. spotkania, ale już niedługo powinno pojawić ich się więcej.

Podczas 41. spotkania zostały wygłoszone dwie ciekawe prelekcje:

Dawid Łaziński - ADO.NET Data Services dawniej Astoria
Marcin Książek - Techniki zabezpieczania kodu .NET

Link do strony z filmami (wymaga zalogowania) - 41. spotkanie KGD.NET

Zachęcam do zalogowania i obejrzenia.

poniedziałek, styczeń 05, 2009

SQL Injection...'od środka'

Wyobraźmy sobie poniższy kawałek kodu...


using (var connection = new SqlConnection(@""))


{


    connection.Open();


    var userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;


    var isLoggedCommand = new SqlCommand(


          string.Format("select isLogged from Users WHERE Name = '{0}'", userName),


          connection);


    isLoggedCommand.ExecuteScalar();


}



Dla osób znających się w temacie już na pierwszy rzut oka widać potencjalny SQL Injection w linii z selectem. Jednak czujność naszą może uśpić fakt jak dostarczana jest wartość zmiennej userName. Do głowy mogą przychodzić myśli taki jak:
Nie dostajemy jej z zewnątrz. Mamy ją z systemu...
Użytkownik nie może nam jej zanieczyścić...
Jesteśmy bezpieczni...
Nic bardziej mylnego, bo kto przecież powiedział, że konto użytkownika musi nazywać się: tata, jurek czy komputer-kuchnia. Nasz kod będzie podatny na SQL Injection bo konto o nazwie ' delete Users-- (zaczynające się od apostrofu a kończące na podwójnym myślniku) jest dopuszczalne a SQL server poprawie wykona oba zapytania na bazie. Z naszą tabelą Users będziemy mogli się pożegnać.

Na szczęście atakujący ma ograniczone możliwości. Nazwa użytkownika może składać się do 20 znaków oraz nie może zawierać znaków takich jak: /\[]":;|<>+=?*. Jak widać jednak nawet bez tych znaków skuteczny atak jest możliwy.

Clean code - recenzja


Ponieważ dopiero styczeń i jeszcze staram się wypełniać moje postanowienia noworoczne tak więc opiszę pokrótce książkę którą właśnie skończyłem czytać.


Mowa tu o Clean Code - A handbook of Agile Software Craftmanship - Robert C. Martin. Jeśli często patrząc na swój bądź cudzy kod nie do końca jesteście przekonani, że tak to powinno wyglądać lub jeśli code review waszego kody, wygląda jak ten rysunek po prawej

to możecie śmiało kupić tę książkę. Autor stara się przekazać zasady odnośnie pisania dobrego kodu. Sporo przykładów pokazujących opisywane rozwiązania sprawia, że książkę dobrze się czyta i nie trzeba się długo zastanawiać "co poeta miał na myśli".

Szczególnie mi się podobała klasyfikacja błędów (Smells and Heuristics), które powodują, że kod nie jest czysty. Na liście znajduje się 66 pozycji a wśród nich takie powody jak:
  • zakomentowany kod
  • redundancja komentarza
  • martwy kod
  • unikanie negatywnych warunków
  • niewystarczające testy
  • i wiele innych...

A zatem podsumowując...

Wady:
- przykłady w Javie więc trochę trzeba myśleć jak to ma się do świata .NET

Zalety:
- przykłady w Javie więc wychodzimy trochę ze światka .NET
- lista "Smells and Heuristics"
- poprawianie "cuchnącego" kodu - krok po kroku i dużo przykładów

Zatem zabieram się za kolejną pozycję - Silverlight 2.0 in Action

czwartek, styczeń 01, 2009

Noworoczne postanowienia :)

Wszyscy dookoła robią postanowienia noworoczne, tak więc i ja postanowiłem podsumować odchodzący rok oraz co nieco sobie przyrzec na ten nowy 2009. Oczywiście tu, ograniczę się do moich postanowień związanych z moją aktywnością zawodową, pozostawiając sprawy osobiste na uboczu :)

Co było dobrego w 2008 roku:
- pomoc przy polskiej edycji poland.silverlightchallenge.eu (to po części 2007 rok)
- zdanie egzaminu 70-528 Web-Based Client development
- pomoc przy codecamp.pl
- prelekcja o ASP.NET MVC w ramach KGD.NET (choć nad jakością i sposobem dostarczenie muszę popracować)
- organizacja szkolenia o MOSS
- większa aktywność na tym blogu
- większa aktywność na forach technicznych


Co w 2009 roku:
- więcej udziału w społecznościach .NET ( organizacja konferencji, spotkania grup)
- przeczytać 6 książek związanych z tym czym się zajmuję
- większa aktywność na portalach CodeGuru/Goldenline/Profeo itp.
- większa otwartość na inne technologie i języki (w .net jak i nie tylko)
- rozwój poza programowaniem - np. kursy na SSE
- większa aktywność na tym blogu - co najmniej tyle samo postów co w roku 2008.
- zdanie egzaminu z WPF - 70 - 502 (bo już niedługo 9-latki depczą po piętach)
- odwiedzić jedną dużą konferencję poza polskimi - aktualnie zapatruję się na TechEd EMEA 2009 w Berlinie (ale zobaczymy jak to wyjdzie)




Szczęśliwego Nowego 2009 (11111011001b, 7D9h) roku.