Interdyscyplinarne projekty informatyczne, realizowane przez wiele zespołów, wymagają integracji kodu źródłowego powstającego z użyciem różnych narzędzi oraz języków programowania. Osobiście spotkałem się już kilkukrotnie z koniecznością integracji oprogramowania tworzonego w oparciu o język Python z bibliotekami .NET i vice versa. Przydatnym narzędziem okazał się być wówczas IronPython, który umożliwia dwukierunkową integrację Pythona z platformą .NET. W tym artukule omówię podstawowe właściwości tego narzędzia.
Nierzadko zdarza się, że musimy znaleźć w swoim kodzie jakieś zależności, np. sporządzić listę klas, które napisaliśmy, aby później móc przekazać je innemu programiście. Takie operacje wymagają od nas skorzystania z analizatora składniowego. Celem tego artykułu jest przybliżenie developerom projektu Roslyn, opracowanego przez Microsoft, dzięki któremu możemy tworzyć przydatne narzędzia do analizowania kodu źródłowego pod kątem występowania przeróżnych wyrażeń czy też zależności.
Po przeczytaniu poprzednich części artykułu możemy mieć już pewne wyobrażenie na temat tego, jak bardzo elastycznie można modelować interface użytkownika w WPFie. Wiemy też, że przy pomocy szablonów (ControlTemplate) mamy możliwość przeprojektowania wyglądu kontrolki praktycznie od zera. Idźmy dalej! Ciekawe, jak daleko leżą granice możliwości tego frameworka...
Mustache to prosty i wydajny system szablonów, który z powodzeniem można zastosować w kodzie JavaScript w celu oddzielenia logiki od widoku aplikacji. Obecnie każda nowa strona WWW nie może obejść się bez stosowania JavaScript'u w celu dynamicznej prezentacji kodu HTML. System z powodzeniem można używać w urządzeniach mobilnych.
Interfejs Debug API dostępny w systemie Windows co najmniej od czasów Windowsa XP posiada ogromny potencjał, który może być wykorzystany do różnorakich celów przez dowolnego pasjonata niskopoziomowych aspektów informatyki, zainteresowanego badaniem i monitorowaniem przebiegu działania aplikacji, tworzeniem zabezpieczeń antypirackich czy rozpakowywaniem plików wykonywalnych zabezpieczonych tzw. protectorami lub packerami plików PE. Wchodzenie w interakcję z zewnętrznymi procesami poprzez odczytywanie i zapisywanie wartości rejestrów, pamięci operacyjnej oraz obsługiwanie pochodzących z nich zdarzeń może służyć wielu celom, jednak jedno jest pewne - płynna znajomość tej części WinAPI jest istotnym elementem wiedzy o działaniu systemu Windows, w szczególności zaś wiedzy o fundamentalnych prawach, jakimi rządzi się wykonywanie programów na linii system operacyjny – procesor.
Akka to framework radykalnie zmieniający sposób pisania skalowalnych, wielowątkowych aplikacji. Zamiast ręcznego zarządzania wątkami oraz wymiany informacji poprzez współdzieloną pamięć i synchronizację, Akka proponuje model obliczeń oparty o aktorów. Każdy aktor jest niezależnym, wyizolowanym obiektem, a komunikacja pomiędzy nimi odbywa się jedynie poprzez asynchroniczną wymianę komunikatów. Takie podejście stwarza zupełnie nowe możliwości, ale również wyzwania.
Technologia CUDA oferowana przez firmę NVIDIA stała się bardzo popularna, jeśli chodzi o technologię wykorzystania kart graficznych w szeroko rozumianych obliczeniach. Nie jest to jedyna technologia tego typu, bowiem jest jeszcze standard OpenCL oraz rozwiązanie Microsoftu o nazwie C++AMP. Jednakże mimo iż CUDA jest dedykowana tylko dla kart NVIDIA, to wydaje się, iż oferuje największą elastyczność w procesie tworzenia oprogramowania dla GPU „zielonych”.
Artykuł przedstawia zbiór pięciu zasad dotyczących projektowania obiektowego i na przykładach pokazane jest, w jaki sposób można je zastosować w swoim projekcie. Wspomniana jest także literatura dla zainteresowanych czytelników dla pogłębienia wiedzy o przytoczonych zasadach i ograniczeniach ich stosowania.
Aby tworzyć aplikacje korzystające z baz danych, niekoniecznie trzeba pisać mnóstwo zapytań SQL. Programując obiektowo, dostęp do bazy danych można przedstawić w sposób zupełnie inny, niż tradycyjnie – za pomocą obiektów. W niniejszym artykule wyjaśnię, czym jest ORM, jak wyglądają jego podstawowe wzorce projektowe oraz pokażę praktyczne zobrazowanie na przykładzie języka PHP.
W ostatnim kwartale 2013 roku magazyn Programista przeprowadził badanie pt. „Proces wytwarzania oprogramowania w Twojej firmie” przy współpracy z IBM Polska i firmą Arrow ECS. Sondaż dotyczył małych i średnich przedsiębiorstw, a jego efektem miało być wykazanie, jak zbudowane są zespoły programistyczne, jakie mają metodyki pracy oraz jakich narzędzi używają. Badanie miało również na celu dostosowanie oferty IBM związanej z oprogramowaniem wspierającym wytwarzanie aplikacji (narzędzia IBM Rational) do wymogów polskiego rynku w sektorze MŚP.
Część 2: Wprowadzanie feedbacku w życie
W tym artykule przedstawię wyzwania, które napotykamy przy wprowadzaniu feedbacku w życie. Opiszę skuteczne metody jego implementacji i sposoby radzenia sobie z często pojawiającymi się problemami. Pokażę przede wszystkim propozycję frameworka, który pomoże Ci podejść do feedbacku „po inżyniersku”, czyli profesjonalnie i ze strukturą.
Rozmowa z Bartoszem Ciepluchem, Dyrektorem Europejskiego Centrum Inżynierii i Oprogramowania NSN we Wrocławiu
RuCTF Quals 2014 – Nyan-task
Średnio co około dwa tygodnie gdzieś na świecie odbywają się komputerowe Capture The Flag - zawody, podczas których kilku-, kilkunastoosobowe drużyny starają się rozwiązać jak najwięcej technicznych zadań z różnych dziedzin informatyki: kryptografii, steganografii, programowania, informatyki śledczej, bezpieczeństwa aplikacji internetowych itd. W serii „Zdobyć flagę..." co miesiąc publikujemy wybrane zadanie pochodzące z jednego z minionych CTFów wraz z jego rozwiązaniem.
Większość programistów wie, co to refaktoryzacja, zna zalety wynikające z jej stosowania, zna również konsekwencje zaniedbywania refaktoryzacji. Jednocześnie wielu programistów uważa, że refaktoryzacja to bardzo kosztowny proces, wymaga wysiłku i brak na nią czasu w szybko zmieniających się warunkach biznesowych. Zapraszam do kolejnej części artykułu poswięconego zagadnieniu refaktoryzacji.