Programista 3/2015 (34)
Programista 3/2015 (34)
Poszukiwanie specyficznej lokalizacji może być skomplikowanym zadaniem. Szczególnie jeżeli jesteśmy zainteresowani konkretnymi obiektami lub listami takich obiektów. Funkcjonalność ta dołączona do tworzonej aplikacji jest cennym dodatkiem pozwalającym użytkownikowi łatwiej wprowadzić określone miejsce lub położenie wybranego punktu geograficznego na mapie.
Fundamentalnym wymaganiem stawianym przed każdą aplikacją, abstrahując od użytych języków programowania i technologii, jest jej poprawne działanie – zgodnie z ustaloną specyfikacją. Jednym z kolejnych kryteriów, które powinny być brane pod uwagę przez twórców aplikacji, jest jej wydajność. Odwrotna kolejność (nazywana również przedwczesną optymalizacją) może doprowadzić zarówno do wydajnych, jak i niewydajnych programów, niekoniecznie zachowujących się poprawnie – coś, z czego spłodzenia żaden inżynier oprogramowania nie byłby zapewne zadowolony.
ReSharper jest prawdopodobnie najlepszym dodatkiem do Visual Studio zwiększającym produktywność i komfort pracy z tym IDE. Rozwijany przez firmę JetBrains już od przeszło 10 lat rozszerza Visual Studio o wiele niezwykle przydatnych funkcjonalności.
Dla znacznej liczby programistów Javy jednym z podstawowych elementów związanych bezpośrednio z codzienną pracą jest Wirtualna Maszyna Javy (Java Virtual Machine, w skrócie JVM). Jednak pomimo oczywistości jej wpływu na rozwiązywane przez nas zagadnienia, wyjątkowo często jest ona pomijana i traktowana jedynie jako „czarne pudełko”, do którego wnętrza nie warto zaglądać. I właśnie otwarciu tego czarnego pudełka, połączonego z omówieniem jego zawartości, poświęcony jest ten artykuł.
Język Java jest powszechnie wykorzystywany do tworzenia oprogramowania na potrzeby sektorów: finansowego, bankowego i ubezpieczeniowego. Codziennie powstaje bardzo dużo kodu, który ma za zadanie przeliczać, księgować i wydawać pieniądze. W tym artykule przyjrzymy się możliwościom, jakie daje nam Java do pracy z typami pieniężnymi, oraz pułapkom, jakie na nas czekają.
Hasło przewodnie Xamarin: „wiedzieliśmy, że musi być lepszy sposób na tworzenie aplikacji mobilnych”, odzwierciedla ideę tej technologii. Umożliwia ona tworzenie wieloplatformowych natywnych aplikacji mobilnych z wykorzystaniem jednolitego zestawu narzędzi programistycznych. Zwalnia to programistę z obowiązku znajomości inerfejsów specyficznych dla danego systemu oraz znacznie ułatwia programowanie i rozwijanie wieloplatformowych aplikacji mobilnych. W artykule omówię podstawowe aspekty tworzenia natywnych aplikacji mobilnych w oparciu o technologię Xamarin.
Piękny byłby świat komputerów, gdyby sprzęt zachowywał się tak samo jak oprogramowanie. Pomyślmy o nowej karcie graficznej, którą instalujemy w komputerze, zaznaczamy myszką, klikamy kopiuj, wklej, i bach, mamy już dwie! Albo nawet i trzy. A gdy już się nam znudzi, przesuwamy ją do kosza i cieszymy się z podstawowej konfiguracji. Sceptycy krzykną: niemożliwe! Ale czy na pewno?
Silnik graficzny Irrlicht jest bardzo elastyczny, pozwala w krótkim czasie uzyskać założony rezultat i jest łatwy w obsłudze. W pierwszej części kursu opisana została instalacja oraz podstawowa praca z wykorzystaniem tego projektu. Oprócz utworzenia prostej, jednokolorowej sceny, pokazano również, jak wczytać i wyświetlić mapę z pliku oraz w jaki sposób dodać kamery. W tej części nadszedł czas na ożywienie świata poprzez wprowadzenie modeli postaci i dodanie wsparcia dla klawiatury.
Obliczenia rozproszone, równoległe, klastry obliczeniowe, a także gridy obliczeniowe to ostatnio bardzo modne pojęcia, jakie można napotkać we współczesnej informatyce. Istnieje wiele rozwiązań dla wszystkich popularnych języków programowania, które wspierają wymienione rodzaje obliczeń, w tym także dla Javy. W poniższym artykule przedstawimy jeden z pakietów dla Javy o nazwie JPPF. Pakiet ten pozwala na utworzenie gridu obliczeniowego (można także mówić o klastrze obliczeniowym) w ramach języka Java. Klaster obliczeniowy może zostać oparty o różne fizyczne maszyny, ale istnieje także możliwość uruchomienia klastra lokalnie na jednej maszynie, aby np. testować opracowywane rozwiązanie.
W poprzednim artykule pt. „Zawód: Programista” przedstawione zostały zagadnienia związane z naturą projektów informatycznych, wskazujące potrzebę szczególnych praktyk w trakcie ich realizacji. Utrzymanie stabilnego procesu rozwoju oprogramowania jest podstawowym i jednocześnie jednym z najtrudniejszych zadań, przed jakimi stajemy. W poniższym artykule chciałbym poruszyć kwestie związane z postawą programisty i praktykami koniecznymi do skutecznego rozwoju oprogramowania w języku C++. Z pewnością da się je rozszerzyć na inne języki programowania.
Modo to jedna z wielu aplikacji do tworzenia oraz obróbki grafiki 3D, początkowo rozwijana przez firmę Luxology, a następnie, po połączeniu dwóch firm, przez markę The Foundry. Modo, obok Blendera czy LightWave, które wspierają skryptowania w Pythonie, wprowadza również skryptowania w Lua czy Perlu. The Foundry wydaje równolegle kilka innych aplikacji poza Modo, które wspomagają pracę przy grafice komputerowej.
Nasz poprzedni artykuł poświęciliśmy kwestii ochrony tajemnicy przedsiębiorstwa i umów o zachowaniu poufności. Często jednak okazuje się, że tym, co najbardziej chroni dane, których przedsiębiorca nie chce ujawniać, jest umowa o zakazie konkurencji. Jeśli bowiem nasz były pracownik albo współpracownik działa na rzecz przedsiębiorstwa dla nas konkurencyjnego, bardzo łatwo, a nieświadomie, może dojść do ujawnienia przez niego informacji poufnych. W praktyce niejednokrotnie wówczas trudno będzie nam udowodnić, że dopuścił się on ujawnienia takich informacji. Umowy o zakazie konkurencji możemy podzielić w oparciu o dwa kryteria: okresu, w jakim mają one wiązać strony, i rodzaju umów, w związku z którymi są zawarte.
Średnio co około dwa tygodnie gdzieś na świecie odbywają się komputerowe Capture The Flag – zawody, podczas których kilku lub 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.