Programista 1/2013 (8)
Programista 1/2013 (8)
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.
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.
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.
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 SerivceLocatora? Jak działa Dependency Injection?
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.
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.
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.
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.
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.
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.
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.
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?
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.
„deadlisting” – po polsku „martwy listing”, to fragment kodu aplikacji po jej analizie w deasemblerze lub dekompilatorze.