Programista 1/2013 (08) - Spis treści
Magazyn możesz otrzymać wraz z prenumeratą w ramach 3 bezpłatnych wydań archiwalnych: http://programistamag.pl/typy-prenumeraty/
BIBLIOTEKI I NARZĘDZIA:
Sphinx – wydajny i skalowalny silnik wyszukiwania pełnotekstowego
Bazy danych zostały zaprojektowane do przechowywania dużych ilości informacji oraz efektywnego ich przeszukiwania pod kątem zdefiniowanych kryteriów. Jednak w niektórych zastosowaniach, szczególnie przy zaawansowanym wyszukiwaniu tekstowym, nie są w stanie one podołać stawianym wymaganiom, czy to pod względem funkcjonalnym czy wydajnościowym. W takich wypadkach warto rozważyć użycie dedykowanego rozwiązania, jakim jest FTS.
Mariusz Gil
JĘZYKI PROGRAMOWANIA:
Wprowadzenie do języka C# i platformy .NET (część 5)
Kolejna odsłona kursu „Wprowadzenie do języka C# i platformy .NET” przybliża znaczenie dwóch niezwykle kluczowych zagadnień w programowaniu w języku C# – wyjątków i kolekcji.
Przemysław Krygier
PROGRAMOWANIE:
Mechanizmy zarządzania stanem przy programowaniu gier (część 1)
W niniejszym artykule przedstawiam podsumowanie mojej praktycznej wiedzy związanej z szeroko pojętym tematem zarządzania stanem przy programowaniu gier. Z własnych doświadczeń wiem, że to fundamentalne zagadnienie jest często traktowane po macoszemu bądź spychane na dalszy plan, co w rezultacie prowadzi do szeregu przeróżnych katastrof. Liczę, że przedstawiona w niniejszym tekście pigułka wiedzy (której zdobycie okupione było niemałą ilością prób i błędów) pozwoli Ci uniknąć pułapek, w które nieświadomie wpada niejeden początkujący adept trudnej sztuki programowania gier.
Rafał Kocisz
Jak tworzyć testowalny kod? (część 2) Lokalizowanie komponentów
Czy funkcjonalność logowania powinna być zaimplementowana statycznie, instancyjnie czy poprzez interfejs? Dlaczego singleton jest w większości przypadków antywzorcem? Jak działa, czym jest i jakie problemy ma wzorzec rejestru i Serivce-Locatora? Jak działa Dependency Injection?
Michał Mac
APLIKACJE WEBOWE:
Kontrolowanie sprzętu poprzez interfejs webowy – przykład praktycznej realizacji
Rozwój technologii internetowych doprowadził do momentu, w którym wiele aplikacji zostaje zastąpionych ich webowymi odpowiednikami. Automatyczne aktualizacje,brak potrzeby instalacji oprogramowania na komputerze użytkownika,dostęp z wielu miejsc jednocześnie, to tylko przedsmak możliwości tego rozwiązania.Niniejszy artykuł przedstawia praktyczną realizację projektu, którego zadanie całkowicie odbiega od tego, z czym kojarzymy portal internetowy.
Daniel Kraszewski
Diabeł tkwi w szczegółach: hosting plików
Projektując serwis internetowy, zdarza się, że chcemy zaoferować użytkownikom możliwość przesłania i udostępnienia plików, w szczególności zdjęć czy innych form graficznych (mogą to być np. fotografie przedmiotów w serwisach aukcyjnych,awatary na forach, zdjęcia profilowe itp.). Wydawać by się mogło, że jest to bardzo proste do zrobienia – wystarczy odebrać plik, zapisać na dysku serwera i udostępniać przez HTTP. Niestety, poprawne zaprojektowanie tego typu systemu od strony bezpieczeństwa serwisu i użytkowników jest trudniejsze niż mogłoby się wydawać– a diabeł, jak zwykle, tkwi w szczegółach.
Gynvael Coldwind
Poznaj ASP.NET MVC 4 (część 2) Trzy warstwy naszej aplikacji
Naszym celem jest rozpoczęcie tworzenia aplikacji MVC 4, która będzie pozwalała nam na przeglądanie naszej domowej filmoteki. Na tym prostym przykładzie postaram się zaprezentować wszystkie główne elementy, którymi charakteryzuje się ten wzorzec projektowy. Dowiemy się, w jaki sposób współpracują ze sobą trzy warstwy aplikacji. Poznamy również podstawowe właściwości każdej z nich.
Karol Rogowski
Startup w Rails – #2 Facebook Graph API i zarządzanie wydarzeniami
W niniejszym artykule rozszerzymy nasz przykładowy startup w Ruby On Rails rozpoczęty w poprzednim numerze o możliwość zarządzania wydarzeniami w oparciu o Facebook Graph API. Spróbujemy też za pomocą API wysłać zaproszenie do wybranych znajomych.
Grzegorz Forysiński
BAZY DANYCH:
Systemy klasy OLAP oraz język MDX. Możliwości wielowymiarowej analizy danych
Autor przedstawił w artykule koncepcję systemów klasy OLAP. Przedstawiono również podejście wielowymiarowej reprezentacji danych w bazach analitycznych,w których to za narzędzie manipulacji oraz wybierania służy język MDX. Zostały przybliżone rdzenne założenia analizy dużej ilości danych. Poruszane są również zagadnienia związane z analizą oraz prezentacją danych w wybranych obszarach tematycznych.
Łukasz Mazur
LABORATORIUM BOTTEGA:
Receptury projektowe – niezbędnik początkującego architekta
Część I: Cztery smaki odwracania (i utraty) kontroli:Dependency Injection, Events, Aspect Oriented Programming, Framework
Paradygmat Inversion of Control dla jednych programistów (np. skupionych wokół technologii Java) jest standardem i "naturalnym porządkiem świata", a dla innych pojawiającą się nowinką, która obiecuje rozwiązanie wszystkich problemów.W pierwszej części naszej serii przyjrzymy się czterem poziomom odwracania kontroli:Dependency Injection, Events, Aspect Oriented Programming, Framework pod kątem: problemów, jakie rozwiązują, motywacji - czyli kontekstu opłacalności ich stosowania oraz technikom implementacji.
Sławomir Sobótka
INŻYNIERIA OPROGRAMOWANIA:
Kategoryzowanie wymagań dla rozwiązań IT
Tytuł artykułu jest banalny, to fakt. Jednak aspekt praktyczny czy też jakościowy stojący za tak znakomitą pracą, jaką jest kategoryzacja wymagań, może generować różne problemy. Zobaczmy jakie.
Artur Machura
Wgryźć się w projekt – czyli o rozwoju kompetencji w IT
Za rozwój umiejętności oraz pogłębianie wiedzy jesteśmy odpowiedzialni my sami. Firma może jedynie w tym pomóc.
Kolejny projekt, kolejne nowe technologie, kolejna firma realizująca kontrakt na dostarczenie systemu informatycznego lub świadcząca usługi outsourcingowe.Można śmiało napisać: projekt projektowi nie jest równy, chociażby ze względu na specyfikę i bariery wejścia nowej osoby do zespołu. Jednym z wymiarów wydajnej pracy w IT są kompetencje, czyli wszędzie szumnie wygłaszane praktyczne umiejętności kandydatów. Czym są zatem kompetencje?
Łukasz Lechert
KLUB LIDERA IT:
Język wzorców. Najlepsze strategie skutecznych programistów
Przewrotnie tytuł tego artykułu nawiązuje do książki Christophera Alexandra, gdyż od niego wszystko się zaczęło. Trudno powiedzieć, czy Alexander odkrył naturę powtarzalności, czy też tylko uświadomił ludziom to, co czynili od zawsze.
Michał Bartyzel, Mariusz Sieraczkiewicz
FELIETON:
Szum w deadlistingu
„deadlisting” – po polsku „martwy listing”, to fragment kodu aplikacji po jej analizie w deasemblerze lub dekompilatorze.
KLUB DOBREJ KSIĄŻKI:
Siedem języków w siedem tygodni
Rafał Kocisz