Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X
popularne tematy: porady

Turniej Contra, czyli retro zabawa z projektorem Optoma GT5500+

Wcześniejszy wpis był spisem pierwszych wrażeń związanych z testowanym projektorem od Optomy. Było sporo odnośnie tego jak rzutnik sprawuje się w domu przy oglądaniu filmów czy seriali. Postanowiłem jednak przetestować go w grupie, z innymi :)

Lecimy z RetroPie

W naszej firmie od jakiegoś czasu zorganizowaliśmy retro kącik. Jest i oryginalny NES z USA i PolyStation z bazaru i Amiga 500, a także Raspberry Pi z RetroPie. Postanowiłem przynieść testowany projektor na nasz mały śmietniczek, aby pograć w retro-klasyki na dużym ekranie, a także zebrać opinie o projektorze :)

Zasilanie z rzutnika

Do testów posłużył Raspberry Pi z RetroPie. Tutaj już na początku wyszedł olbrzymi plus, jakiego nie zauważyłem wcześniej. Projektor ma USB, które idealnie nadaje się do zasilania. Pozwala to na bezproblemowe podłączanie takich urządzeń jak RPi bez szukania dodatkowych źródeł zasilania, przy jednoczesnej minimalizacji długości kabli.

Projektor Optoma GT5500+ rzucił mnie na kolana, poważnie...

Będąc na prezentacjach, szkoleniach czy wykładach nieraz zastanawiałem się nad zakupem projektora. Taki rzutnik byłby idealny do oglądania filmów czy grania w gry w domu. Niestety w mieszkaniu nie zawsze jest wystarczająco dużo miejsca, aby móc tak rzutnik postawić w odpowiedniej odległości od ściany. Stąd też temat zakupu projektora odłożyłem na bok, a to błąd...

Co to za dziwo?

Jakiś czas temu Redakcja portalu szukała osób do przetestowania projektorów krótkiego rzutu. Przyznaję, że nie słyszałem wcześniej o takich cudach i kojarzyłem jedynie rzutniki, które trzeba było umieszczać kilka metrów od ściany i uruchamiać przy zasłoniętych oknach. Zgłosiłem się do testów trochę z ciekawości, trochę z chęci sprawdzenia, jak taki sprzęt sprawi się w mieszkaniu, bez białego ekranu, bez zasłoniętych rolet czy żaluzji. W domu, gdzie miejsca nie ma za dużo na zbędne gadżety i wynalazki.

W taki oto sposób w moje ręce trafił do testów rzutnik Optoma GT5500+.

Tworzenie wtyczek do Visual Studio: podsumowanie na koniec konkursu

Właśnie stuknął 20. wpis w konkursie Daj Się Poznać 2017, zatem przyszedł czas na podsumowanie prac na koniec trwania trzymiesięcznych zmagań...

Statystycznie

W tym czasie wpisy miały sumarycznie prawie 42 tysiące wyświetleń. Najbardziej obleganym wpisem był ten o hakowaniu Visual Studio, czyli o dobieraniu się bezpośrednio do poszczególnych elementów UI poprzez Snoopa. Niemalże identyczną ilość wyświetleń ma wpis odnośnie aplikacji (i nie tylko) wspomagających zdrową pracę przy komputerze: Zdrowe ciało, zdrowy duch, zdrowy programista — przegląd aplikacji. Oczywiście wszystkie wpisy dostępne są pod linkiem grupującym moje artykuły.

Bad Word Detector — własna wtyczka do detekcji wulgaryzmów w Visual Studio

Tworząc w IDE zapewne nieraz natknęliście się na kod źródłowy, który zawierał wulgaryzmy czy to w postaci komentarza, czy to w postaci nazw zmiennych. Również my sami lubimy wstawić gdzieś w kodzie "kupę" lub inny równie ciekawy zwrot.

Niestety czasem takie "kwiatki" wychodzą na produkcję i nie są może czymś karygodnym lub niebezpiecznym, ale wizerunkowo raczej nikt na tym nie zyskuje. Ostatnio pisał Niebezpiecznik chociażby o "fakach" na stronce OKE

a kilka dni wcześniej podobnie "wpadł" Citibank.

Tworząc na konkurs wtyczkę Healthy With VS wpadłem na pomysł, aby stworzyć dodatek do Visual Studio, który mógłby zaradzić takim problemom. Bad Word Detector, bo tak nazwałem ten nano-projekt, wykrywa wulgaryzmy w kodzie źródłowym edytora i je zaznacza.

Zapisywanie zdarzeń z wtyczki do Visual Studio w Activity Logu

Dzisiejszy wpis odnośnie tworzenia wtyczki do Visual Studio będzie bardzo szybki i konkretny. W każdej aplikacji przychodzi moment na to, aby zalogować do pliku jakieś zdarzenie. Może być to notka o wyłapanym wyjątku, bądź też tylko zapis czysto informacyjny.

Zapis w Activity Log

Dodatki do IDE od Microsoftu mogą zapisywać zdarzenia do Activity Loga. W celu umieszczenia własnego wpisu należy pobrać serwis o typie SVsActivityLog i rzutować go na interfejs IVsActivityLog:

var log = serviceProvider.GetService(typeof(SVsActivityLog)) as IVsActivityLog;

gdzie serviceProvider jest obiektem dziedziczącym po IServiceProvider (w naszym przypadku jest to obiekt klasy Package).

Logowanie odbywa się przy pomocy metody LogEntry:

log.LogEntry((UInt32)__ACTIVITYLOG_ENTRYTYPE.ALE_ERROR, pluginName, message);

Pierwszy parametr określa poziom logowania - jest nim enumerator __ACTIVITYLOG_ENTRYTYPE i posiada od trzy wartości: błąd (ALE_ERROR), ostrzeżenie (ALE_WARNING) i informacja (ALE_INFORMATION). Drugi parametr opisuje źródło logu, zaś trzeci parametr jest tekstowym opisem loga.

Aktywacja i przeglądanie logówLogi składowane są przez IDE domyślnie w pliku

Migracja starej wtyczki do nowej wersji Visual Studio 2017

Tworząc dodatek do Visual Studio zapewne wiele osób będzie uczyło się poprzez analizę kodu istniejących już dodatków (chociażby ze źródeł na GitHubie od MS). Okazuje się jednak, że projekty pluginów stworzonych pod stare IDE zupełnie nie chcą kompilować się w nowej odsłonie Visual Studio. Jesteśmy zmuszeni do ręcznej migracji takich dodatków. Oto poradnik jak tego dokonać.

Automatyczna aktualizacji (standardowa)

Otwierając projekt, który został stworzony w starym IDE, w nowym Visual Studio 2017 dostaniemy standardowy komunikat o automatycznej aktualizacji.

Nie mamy wyjścia i godzimy się na to. Po chwili projekt jest już gotowy na działanie w nowej wersji IDE. Niestety próba builda zakończy się niepowodzeniem.

W tym momencie musimy sami przejść przez kluczowe elementy projektu, aby zaktualizować ręcznie dodatek.

Nowe paczki z NuGeta

Zaczniemy migrację o pobrania nowych paczek z NuGeta.

Na zakładce aktualizujemy dostępne nowe składniki i restartujemy IDE, jeśli jest to wymagane.

Szybkie ćwiczenia podczas pracy przy komputerze

Prace nad wtyczką do Visual Studio powoli nabierają tempa. W obecnej chwili zbliżam się do wydania pierwszej wersji dodatku do marketu z pluginami do IDE od Microsoftu. Jednakże w tym wpisie przedstawię kilka prostych ćwiczeń, które znajdą się w mojej wtyczce Healthy with Visual Studio. Pomogą one w zdrowej pracy przy komputerze, zapewnią nie tylko odpoczynek fizyczny i poprawę kondycji, ale także zadbają o zdrowie psychiczne i skupienie przy pracy.

Ćwiczenia przy komputerze - obowiązek, nie przywilej

Oczywiście zawsze warto co najmniej co 45-60 minut zrobić sobie przerwą na 5-10 minut. Nie ma tutaj wymówek. Zostawanie w siedzącej pozycji przez wiele godzin przy komputerze negatywnie wpływa na nasze zdrowie. Cierpi na tym nie tylko organizm w pojęciu fizycznym, ale również nasze samopoczucie i chęć do życia.

Jeśli pracując w pozycji siedzącej odczuwamy bóle kręgosłupa, ramion, szyi czy nawet nadgarstki lub ud, to może być to znak, że nie robimy dostatecznie często przerw. Wcale nie trzeba pracować stricte przy komputerze, aby odczuć te dolegliwości.

Proste i darmowe modelowanie postaci w 3D przy użyciu MakeHuman i bvhacker

Modelowanie w 3D wydaje się nietrywialnym zagadnieniem. Na przeszkodzie staje nie tylko brak umiejętności i doświadczenia, ale także elementy bardziej materialne. Często ograniczeniem bywa sprzęt, który nie uciągnie aplikacji do grafiki 3D, ale również oprogramowanie, które potrafi słono kosztować.

W tym wpisie pragnę przedstawić szybki sposób na modelowanie postaci 3D. Nie będzie wymagana znajomość zagadnień grafik 3D, a oprogramowanie użyte do tego wpisu jest całkowicie darmowe, również do celów komercyjnych. Dodatkowo przedstawione aplikacje nie wymagają kosmicznego sprzętu, aby móc wygodnie pracować, jednocześnie osiągając zadowalające wyniki.

Modelowanie postaci w 3D - prosty przepis dla każdego

Zacznę od tego, że nigdy nie wiemy, kiedy może przydać się nam wymodelowanie postaci w 3D. Do tej pory temat grafiki 3D omijałem szerokim łukiem, gdyż jako programista aplikacji nie widziałem zastosowania tej dziedziny w swojej branży. Okazało się, że szybko zmienię zdanie.

Zapewne nie tylko osoby tworzące animacje czy wizualizacje mogą potrzebować szybkiej i bezproblemowej edycji modelu postaci w 3D.

Konferencja 4Developers, ścieżka .NET — relacja

W dniu 3 kwietnia uczestniczyłem w imprezie 4Developers w Warszawie. Organizatorzy określają event jako interdyscyplinarny festiwal technologiczny dla programistów, czyli konferencja dla programistów z wieloma ścieżkami do wyboru. W tym roku było na prawdę zacnie. Oto moja krótka relacja z tego eventu.

Co, gdzie, jak i kiedy?

4Developers odbyło się w warszawskim hotelu Hotelu Sangate Airport, obok portu lotniczego im. Fryderyka Chopina. Miejscówka idealnie położona jeśli ktoś przyjeżdżał na konferencję autem (łatwy dojazd obwodówką). Z dworca PKP dojazd również nie był męczący (przejazd autobusem bez przesiadek), chociaż trzeba było przejechać przez ścisłe centrum, więc cudów nie oczekiwałem :)

Wydarzenie nie było skierowane tylko do wybranego grona deweloperów. Mieliśmy do wyboru aż 14 ścieżek:

  • App Arch I By Allegro
  • App Arch II By Decerto
  • Java
  • JavaScript By Pracuj.Pl
  • .Net I By Lingaro
  • .Net II By Sii
  • Python
  • WORKSHOPS
  • PHP

Managed Extensibility Framework — system pluginów do aplikacji .NET od Microsoftu

W poprzednim wpisie pokazałem jak szybko stworzyć własne okienko w Visual Studio (timer w okienku IDE). Dziś opiszę MEF, czyli framework do tworzenia lekkich aplikacji i pisania rozszerzeń do nich. To właśnie na nim opiera się IDE od Microsoftu.

MEF w teorii

Obecnie MEF (Managed Extensibility Framework) jest komponentem .NET 4.0. Biblioteka powstała jako odpowiedź na zapotrzebowania programistów w tworzeniu aplikacji, które mogłyby być rozszerzalne poprzez zewnętrzne pluginy (reużywalne). Jest on zbiorem wcześniejszych doświadczeń, który pozwala w prosty sposób na zaimplementowanie systemu rozszerzeń w każdej aplikacji .NET, bez tworzenia kolejnego frameworku od zera.

MEF można uznać za bibliotekę pozwalająca na Dependency Injection opartą na atrybutach. Pozwala ona na tworzenie aplikacji na zasadzie odkrywania (wyszukiwania) rozszerzeń i ładowania ich dynamicznie do programu. Takie dodatki mogą być reużywalne przez różne aplikacje.