Jamie Zawinski to taki typ programisty, który ja nazywam programistą-MacGyverem. I mówię to z całym szacunkiem. Jamie jest ciężko pracującym programistą, tworzącym przyszłościowe, użyteczne narzędzia, które pozwalają innym ludziom wykonywać ich pracę. Takiego właśnie gościa chcesz mieć w swoim zespole budującym gokarty, ponieważ jego ulubionymi narzędziami są: taśma klejąca i WD-40. I będzie je dzierżył niewzruszenie, dumnie i z gracją, nawet ...
Znajomy z pracy dostał buga: Plik Show (PPSX – PowerPoint Show a X dodany bo tam gdzieś jest XML) otwierany poprzez stronę otwartą w IE8 otwiera się w PowerPoint a nie jako Show. Dziwne zachowanie, nie powiem. Bajer jest tym większy, iż w FF otwiera się jako Show. Dodatkowo przetestowałem jeszcze taką opcję. Plik PPSX otworzyłem za pomocą File -> Open w PowerPoint i mogłem go edytować! :) zaś definicja PPSX mówi, że nie mogę :)
Do tego, że w dobie panującego na całym świecie kryzysu, należy podnosić swoje kwalifikacje, nie trzeba chyba nikogo przekonywać. Pozostaje jednak pytanie jak robić to mądrze i efektywnie: tak, aby Nasze wysiłki nie poszły na marne i zostały zauważone przez potencjalnych pracodawców. Jednym z takich sposobów jest zdobywanie certyfikatów. Wiele dużych, międzynarodowych koncernów z branży IT posiada swoje własne, honorowane na całym świecie, systemy certyfikujące. Również Micros...
Prosty i skuteczny sposób na generowanie guidów w VS za pomocą prostego Makra.
ObjectExplorer jest kluczowym obiektem SSMS. To przy jego pomocy łączymy się do instancji SQL Server, przy jego pomocy zmieniamy kontekst bazy danych. Mając ten obiekt w naszej wtyczce jesteśmy w stanie dynamicznie reagować na zmianę domyślnej bazy danych lub serwera powodując dostosowanie widoków naszych okien do zmienionej sytuacji. Odzyskanie ConnectionString dla bieżącego połączenia daje nam szerokie możliwości działania na obiektach bazy danych. Musimy również odzyskać obiekt polecenia wykonania qu...
Na etapie uruchamiania wtyczki istotne jest posiadanie narzędzia dającego możliwość przechwytywania i obsługi zdarzeń generowanych przez SSMS. Ujęte to zostało w regionach w kodzie naszej przykładowej wtyczki. Niewątpliwie pożądaną cechą naszej wtyczki byłaby cecha cichej pracy (tak aby nie straszyć użytkownika wyskakującymi okienkami) z jednoczesną rejestracją zdarzeń błędów i wyjątków do logu plikowego. Logu konfigurowalnego tak aby można było rejestrować tylko błędy lub błędy i komunikaty informacyjne...
Autor: Witam was, tak jak obiecałem na konferencji publikuję komplet materiałów z moich prezentacji na konferencji Microsoft Technology Summit: .NET 4.0 Inside/Out [zip] Modelowanie w Visual Studio 2010 [zip] Kod klasy uruchamiającej skrypty w Ruby i IronPython poniżej. Drobna uwaga dla tych, którzy by chcieli na jednym hoście mieć możliwość uruchamiania zarówno skrypty Ruby jak i IronPython. Jeśli osobno pobierzecie binaria jednego i drugiego, t...
Operując na folderach, które tworzone były na listach w SharePoint stanąłem przed wyborem metody do ich pobierania. Miałem dostępne: GetItemById i GetFolder. Nie byłem w stanie ocenić, która jest lepsza więc przeprowadziłem testy. O rezultatach i wnioskach można przeczytać w tym poście.
Tak, tak.. stało się, po kilku miesiącach przygotowań wreszcie rusza Warszawska Grupa Silverlightowa!!! Dlatego też w imieniu własnym oraz prelegentów zapraszam wszystkich chętnych na pierwsze spotkanie grupy Warsaw Silverlight Study Group (WSSG). Spotkanie rozpocznie się w środę, 21 października, o godzinie 18:00w siedzibiefirmyMicrosoft w Warszawie (al. Jerozolimskie 195A - zobacz na mapie). Udział w spotkaniu jest bezpłatny.Agenda Tematy które poruszymy na pierwszym spotkaniu to między innymi: U...
Gdy jakiś czas temu zainstalowałem sobie addin’a (dalej będę używał polskiego odpowiednika – wtyczka) do SSMS znanej specjalizującej się tym firmie byłem pod wrażeniem możliwości rozbudowy management studio. Ale po jakimś czasie wtyczka znudziła mi się i postanowiłem odinstalować ją. I po odinstalowaniu uruchomiłem ponownie SSMS i tu zdumienie: opcje wtyczki były nadal obecne w SSMS! Teraz wiem, że to nie przypadek. Moje doświadczenia pokazują, że zespól deweloperski odpowiedzialny za wtyczki do SSMS w t...
Kiedy w końcu udało mi się zdobyć dostęp do SDK Microsoft Surface, natchniony rozkminianiem o co w tym wszystkim chodzi, postanowiłem króciutko się podzielić pierwszymi doświadczeniami. Instalacja Instalacja oprócz tego że musiałem doinstalować coś do XNA przebiegła niezwykle sprawnie. Całość razem z SDK, przykładami, super emulatorem i resztą rzeczy o których jeszcze nie mam pojęcia, znalazły się bezboleśnie na moim dysku, a w Visual Studio doszły nowe typy projektów. Development Ci którzy może ...
Krótki opis o tym jak możemy przechwycić wartości parametrów z metod, które wywołujemy przy pomocy Mock Objects.
Oryginalny post: Coding: It's Just WritingAutor: Jeff Atwood W swoim artykule Programistyczne aforyzmy Strunka i Whitea, James Devlin jak zwykle znakomicie opisuje coś, co sam zacząłem coraz częściej dostrzegać w ciągu ostatnich pięciu lat, a mianowicie: Niespodziewany związek pomiędzy pisaniem kodu, a pisarstwem. Prawdopodobnie nie ma na świecie lepszego opracowania na temat pisarstwa niż książka The Elements of Style (w wolnym tłumaczeniu: "Składowe stylu") autorstwa Strunka i Whitea. Jest to je...
Autor: Jakiś czas temu zdarzyło mi się napisać własny behavior, który w odróżnieniu od tych które dłubie na co dzień, może mieć zastosowanie w wielu aplikacjach, stąd też pomysł aby się nim podzielić :)Co to są behaviorsy nie będę się rozpisywał w tym temacie. Zagadnienie jest większe, a do poczytania o nim polecam świetny artykuł: http://www.silverlightshow.net/items/Behaviors-and-Triggers-in-Silverlight-3.aspx O co chodzi?
Znasz się na oprogramowaniu Microsoft? Masz ochotę pokazać innym ile wiesz? To poszukaj na polskiej Wikipedii artykułów, do których mógłbyś dodać coś od siebie. Uzupełnij je, uaktualnij albo napisz od nowa. W pierwszym etapie konkursu liczy się ilość artykułów poprawionych przez jedną osobę.
Mityczne 100% pokrycia W środowisku deweloperskim wciąż żywy jest mit 100% pokrycia kodu testami jednostkowymi. Co gorsza, mit ten ma się równie dobrze (a może nawet lepiej?) wśród decydentów (kierowników, dyrektorów itp.). Celem poniższej notki jest pokazanie, jak bardzo naiwne jest podejście "100% pokrycia". Popatrzmy na następujący trywialny kod:
Mając przygotowany już kod obsługujący naszą składnię, możemy przejść analizy przekazanego wyrażenia. Korzeniem wyrażenia zawsze obiekt LambdaExpression, którego Body jest wywołaniem metody lub konstruktora, których argumenty będą poddane sprawdzeniu. Wywołanie metody powoduje odłożenie na drzewie obiektu MethodCallExpression, zaś sama metoda i informaje o niej (MethodInfo) jest dostępna przez property Method. Wywołanie konstruktora (np. new Service(...)) odkłada na drzewie obiekt NewExpression, umies...
Dzisiejszy wpis to praktycznie dokończenie dwóch poprzednich, stanowiące jakieś ich uzupełnienie, lub też swojsko rzecz ujmując ‘dobicie’. Do zbadania na dziś przygotowałem klasy Timer i BackgroundWorker. Ta druga trochę nietypowo, ponieważ wykorzystana zostanie w ‘aplikacji’ konsolowej, a głównym(tak mi się zdaje) jej zastosowaniem są aplikacje okienkowe i puszczanie złożonych czasowo operacji w tle, by GUI nie zostało ‘zawieszone’. Timer(System.Threading) Tutaj prosto i przyjemnie: jeśli chcemy odpala...
W części pierwszej poznaliśmy założenia zadania. Tym razem zaczniemy budować implementację. W tym miejscu wspomnę, że w przeważającej większości zabaw z wyrażeniami lambda oraz składnią imitującą język naturalny warto najpierw napisać przykładowe użycie kodu (jak to zrobiliśmy wcześniej), a dopiero później próbować zrealizować pomysł. Korzystamy z funkcji rozszerzających, więc pierwszą czynnością jest przygotowanie statycznej klasy, w której zamieścimy implementację - nie ma tu nic odkrywczego: publi...
Jednym z założeń wzorca Design by contract jest sprawdzanie poprawności przekazanych do funkcji argumentów. Zapewne w wielu miejscach Twojego kodu możesz spotkać konstrukcje sprawdzające czy przekazane argumenty nie są równe null - praktycznie identyczne w każdej funkcji. W serii artykułów zostanie przedstawiony jeden ze sposobów unifikacji i uniknięcia powtórzeń.