Programista 12/2015 (43)
Programista 12/2015 (43)
Obsługa parametrów przekazywanych z wiersza poleceń to jedno z tych zadań programistycznych, które chciałoby się wykonać szybko, łatwo i pewnie. W prostych przypadkach zadanie to da się wykonać na zasadzie ad hoc; przy bardziej skomplikowanych – nie obejdzie się bez wsparcia ze strony wyspecjalizowanej biblioteki. W niniejszym artykule przedstawiona jest biblioteka Boost.ProgramOptions, oferująca prostą i wygodną obsługę parametrów wiersza poleceń w programach pisanych w języku C++.
Scikit-learn jest biblioteką open-source do analizy danych i uczenia maszynowego dla języka Python. Możliwości tej biblioteki zaprezentujemy na prostym przykładzie. Pokażemy krok po kroku, jak wytrenować oraz ewaluować klasyfikator przypisujący zdaniom z recenzji filmowych sentyment pozytywny lub negatywny. Pokażemy przy tym, jak integrować własne funkcje przetwarzające dane z funkcjonalnością biblioteki.
Jednym z najbardziej wartościowych zasobów firmy – zaraz po ludziach – są dane. To właśnie one są niezbędne do jej sprawnego funkcjonowania i rentowności. Gromadzenie danych jest połową sukcesu, należy jednak umieć je odpowiednio wykorzystać, pamiętając, że ze względu na różnorodność systemów wspomagających działanie przedsiębiorstw, są one często rozproszone. W tej sytuacji warto pomyśleć o wsparciu, jakie niesie za sobą wykorzystanie szyny ESB, dzięki której możemy w sprawny sposób przekazywać dane pomiędzy aplikacjami.
iBeacon i Eddystone to dwa podejścia do określenia porozumiewania się beaconów ze smartfonami, tabletami. iBeacon został wprowadzony przez firmę Apple, Eddystone zaś przez Google. Od razu nasuwa się kilka pytań. Czym jest i do czego może służyć beacon? Jakie mechanizmy obsługi obydwu specyfikacji oferują systemy iOS oraz Android? Czy specyfikacje te mogą być traktowanie alternatywnie, a może reprezentują zupełnie odmienne filozofie?
HoloLens jest urządzeniem ubieralnym w formie okularów, które na pierwszy rzut oka przypominają specjalistyczne instrumenty znane z filmów fantastycznonaukowych. Z punktu widzenia programisty HoloLens to niezależny system komputerowy implementujący rzeczywistość hybrydową i działający pod kontrolą Windows 10. Dzięki temu praktycznie każdy developer, tworzący aplikacje dla Uniwersalnej Platformy Windows lub znający Unity, może tworzyć aplikacje wykorzystujące rzeczywistość hybrydową. Pod koniec zeszłego roku zostałem zaproszony przez Microsoft do uczestnictwa w testowaniu HoloLens podczas HoloLens Developer Demo w San Francisco. Celem tego artykułu jest podsumowanie moich doświadczeń z HoloLens w możliwie obiektywnym ujęciu.
Programowanie urządzeń wbudowanych z wykorzystaniem Windows 10 IoT Core
Prawie każda firma z listy Fortune 500, związana z technologiami informatycznymi, kreuje własną wizję urządzeń IoT. Aby ułatwić wdrażanie tych pomysłów, Microsoft przygotował specjalną wersję systemu Windows 10 dedykowaną IoT. Jest nią Windows 10 IoT Core. W tym artykule zaprezentuję wybrane możliwości tego systemu oraz Uniwersalnej Platformy Windows w zakresie programowania urządzeń wbudowanych.
Praca webdevelopera staje się coraz bardziej skoncentrowana na frontendzie. Dzisiejsze aplikacje posiadają szeroką logikę biznesową po stronie klienta, walidacje, ściąganie danych z wielu źródeł. Jest to szczególnie widoczne w aplikacjach SPA (Single Page Application), w których jedyną funkcją serwera może być zwrócenie źródeł i odpowiedzi na żądania z aplikacji. Dotychczasowe rozwiązania zastosowane w ASP.NET oferowały raczej skromne mechanizmy usprawniające pracę programistów frontendowych.
Istnieje wiele narzędzi, które wspomagają proces testowania manualnego poprzez automatyzację często powielanych scenariuszy. Podczas testów aplikacji mobilnych sprawdza się, czy zostały spełnione zarówno funkcjonalne, jak i niefunkcjonalne wymagania. Testowana jest poprawność instalacji aplikacji, samo jej działanie, jak i wyświetlanie się elementów na urządzeniach mobilnych. Jednak dopiero zastosowanie automatyzacji aplikacji mobilnych daje nam możliwość sprawnego uruchamiania testów na wielu różnych systemach oraz urządzeniach.
Padding Oracle to atak, który pozwala na wyłuskanie tekstu jawnego z zaszyfrowanych danych bez znajomości klucza szyfrującego, a także bez potrzeby znalezienia jakichkolwiek błędów w samym algorytmie szyfrującym. Swego czasu atak był wykorzystywany m.in. do złamania mechanizmu sesji w ASP.NET, co z kolei pozwalało na przejęcie uprawnień dowolnego użytkownika. Innym, świeższym przykładem jest opisany w 2014 roku atak POODLE, którego nazwa znaczy Padding Oracle On Downgraded Legacy Encryption, wskutek którego zaleca się, aby nie używać już SSLv3. W tym artykule omówimy, czym jest Padding Oracle, wraz ze schematem ataku oraz metodami obrony.
Pewnie nie raz spotkałeś/spotkałaś się z sytuacją, gdzie osoba bardzo biegła technicznie, która zainwestowała wiele swojego czasu w pracę nad pomysłem czy rozwiązaniem, nie jest w stanie opowiedzieć o tym, tak aby odbiorcy zrozumieli, co ma na myśli, nie wspominając już o ich przekonaniu do swego rozwiązania. Artykuł jest pierwszym z serii, która będzie miała na celu uświadomienie sobie mechanizmów, które stoją za porażką lub sukcesem w komunikacji, oraz poznanie praktycznych rozwiązań gotowych do natychmiastowego wdrożenia.
W życiu dojrzałego człowieka nadchodzi taki moment, w którym musi on uświadomić sobie, że niedawno zachwycające nas rozwiązania typu Big-Data czy Internet-of-Things są de facto rozwiązaniami z poprzedniej epoki. A jako takie ustąpić muszą miejsca innym, znacznie przewyższającym ich możliwości. Pytanie tylko brzmi: co to mogłoby być? Popuśćmy nieco wodze fantazji i wyobraźmy sobie kilka obrazów z przyszłości.
1 stycznia 2016 r. w życie weszła ustawa z dnia 25 września 2015 r. o zmianie niektórych ustaw w związku ze wspieraniem innowacyjności (Dz.U. z 2015 r., poz. 1767). Jak wynika z uzasadnienia do projektu tej ustawy, jej celem „jest wsparcie innowacyjności polskiej gospodarki zarówno od strony sektora nauki, jak i przedsiębiorstw. Proponowane zmiany powinny spowodować usunięcie wielu istotnych barier prawnych napotykanych przez polskie instytucje naukowe, a także stworzyć zachęty fiskalne dla przedsiębiorstw do podejmowania większego ryzyka”.
W poprzednim miesiącu zajmowałem się wyrażeniem „software maintenance”, do którego chciabym powrócić, a przy okazji poruszyć kilka dodatkowych zagadnień.
Jednym z ostatnich eventów w tym CTF-owym sezonie był japoński SECCON 2015 Online. Dziesięć najlepszych drużyn kwalifikowało się do finałów w następnym roku. Zadania, przygotowane przez organizatorów CTF-a, były dość ciekawe i różnorodne. Podczas jego trwania udało nam się zgromadzić 3100 pkt. – rozwiązując zadania o zróżnicowanym stopniu trudności. Dwa z nich chcielibyśmy dzisiaj przedstawić. Nasz wybór padł na banalną eksploitację, która w przedstawionej przez organizatorów formie okazała się być dość nietypowym wyzwaniem, oraz zadanie będące mieszanką kryptografii i inżynierii wstecznej, dające rozwiązać się w bardzo krótkim czasie dzięki pewnej obserwacji.
Bez względu na to, czy jesteś programistą, liderem, testerem, zapewne wiesz, że nie wystarczą dobre rozwiązania techniczne, żeby powstał dobry system informatyczny. Po drodze wszystko rozbija się o ludzi i komunikację; pojawiają się emocje i warto znać narzędzie, które pozwoli odnaleźć się nam w trakcie takich sytuacji.