Programista 4/2012 (4)
Programista 4/2012 (4)
Visual Studio 2012 wzbudza kontrowersje od momentu pojawienia się jego najwcześniejszych wersji. Dość radykalne zmiany kolorystyki (a raczej jej pozbawienie) oraz wszechobecne użycie wielkich liter sprawiły, że programiści skupili się na komentowaniu strony wizualnej, pomijając kluczowe zmiany i nowe funkcje. Warto jednak zapoznać się z tym, co oferuje najnowsza wersji IDE.
Łączenie C++ i Pythona przy pomocy boost_python
Aplikacje wydajne najwygodniej tworzy się w językach kompilowanych do kodu maszynowego, możemy wtedy wykorzystać wszystkie możliwości, które daje sprzęt. Rozwiązania elastyczne tworzymy, wykorzystując interpreter – nie ma potrzeby translacji do kodu maszynowego. W artykule omówiono przykład stosowania obu podejść jednocześnie dla języków C++ i Python. Komunikację pomiędzy modułami tej samej aplikacji, utworzonymi w różnych tych językach, upraszcza biblioteka boost_python.
w oparciu o platformy BotAPI i Google App Engine
Platforma GG BotAPI pozwala na bardzo łatwe stworzenie własnego bota, np. takiego jak Infobot dostępny pod numerem GG:100. Infobot jest przykładem bota informacyjnego, ale boty mogą pełnić również inne funkcje. W artykule opiszemy, jak stworzyć bota czatowego, który będzie mógł służyć do komunikacji wśród grupy współpracowników.
Zastosowanie ciągłej integracji (continuous integration) zmniejsza ryzyko w projekcie. Projekt jest pod ciągłą kontrolą i monitoringiem. Minimalizuje również ilość czynności, które należy wykonać w ramach procesu, dzięki automatyzacji budowania oprogramowania oraz automatyzacji czynności wdrożeniowych.
Jesień roku 2012 dla programistów systemu Windows będzie niezwykle bogata: nowy Windows 8, nowe Visual Studio 2012, a także nowa odsłona .NET o numerze 4.5. W artykule postaramy się przedstawić kilka wybranych nowości dostępnych w najnowszej wersji tej platformy.
Długo oczekiwana funkcjonalność, która rozwiązuje problem, z którym spotkał się każdy developer tworzący aplikację z GUI – blokowanie i zawieszanie się interfejsu użytkownika. Od teraz obsługa kontynuacji operacji asynchronicznych została wbudowane w sam język, co znacząco uprościło obsługę tego typu sytuacji.
Ciąg dalszy rozważań na temat niezdefiniowanych zachowań (ang. Undefined Behavior, dalej UB) i ich potencjalnych skutków, na przykładzie niezamierzonych wycieków danych, oraz kolejnych problemów związanych z operacjami na liczbach całkowitych.
W poniższym artykule postaram się przybliżyć, czym jest i jakie korzyści niesie ze sobą wstrzykiwanie zależności. Wyjaśnię, w jaki sposób teoria ta jest wykorzystywana w Symfony2. Na koniec przedstawię dobre praktyki i najczęściej spotykane antywzorce.
Sposób na XML. Poznaj dwie sprawdzone metody parsowania dokumentów XML
Gdy pisałem swoją pierwszą grę na urządzenia z systemem Windows Phone 7.5, spotkałem się z problemem szybkiego wczytywania plików XML w XNA Game Studio 4.0. Istnieje bardzo dobra metoda, dzięki której wczytana zawartość od razu jest listą obiektów określonej klasy. Pokażę Ci również możliwość parsowania pobranych dokumentów XML z Internetu – przekonaj się, jakie to jest proste.
Technologia CUDA zdobyła bardzo dużą popularność w dziedzinie uniwersalnych obliczeń wykonywanych z pomocą kart graficznych. Jednakże pomimo popularności CUDY, standardowym rozwiązaniem w dziedzinie obliczeń na kartach graficznych jest OpenCL. Warto więc poznać standard OpenCL, gdyż jak się wydaje, będzie on stosowany coraz szerzej, nie tylko w kontekście kart graficznych, ale również w przypadku tradycyjnych procesorów czy innych rozwiązań o wysokiej wydajności.
Rozważyłeś wszystkie za i przeciw i postanowiłeś wprowadzić Agile w firmie. Być może przeczytałeś artykuł „01 Agile w firmie. Wprowadzać czy nie?” w poprzednim numerze magazynu. Prawdopodobnie wybór narzędzia padł na framework Scrum. To naturalne, że pojawią się w Twojej głowie pytania.
Artykuł ma na celu spojrzeć na wartość pracy analitycznej w przedsięwzięciach IT. Poruszy wartość tej pracy przez pryzmat czasu i zmieniających się możliwości w tym zakresie.
Część IVa: Skalowalne systemy w kontekście DDD - architektura Command-query Responsibility Segregation (stos Write)
Czy możliwe jest stworzenie systemu, który będzie charakteryzował się otwartym na rozbudowę modelem, eleganckim, testowalnym i utrzymywalnym kodem, a jednocześnie będzie przygotowany do skalowania? Czy narzędzia typu Object-relational mapper są panaceum na wszystkie problemy persystencji w systemach biznesowych? Czy baza relacyjna to zawsze najlepszy pomysł na przechowywanie danych? Na te i inne pytania odpowiemy sobie w kolejnej odsłonie naszej serii.
Jednym z zadań, które sami przed sobą stawiamy, jest wyodrębnianie różnic, które robią różnicę, oraz tworzenie łatwych do zastosowania technik, dzięki którym programiści mogą podnieść swoją efektywność. W tym artykule zaprezentujemy technikę prowadzącą do tworzenia prostego zrozumiałego kodu. Wydaje się ona tak oczywista, że łatwo ją zignorować. Nie daj się zwieść! Już za chwilę dowiesz się, jak kilka banalnych kroków może wprowadzić ogromną zmianę w kodzie.