Książka "Czytanie kodu. Punkt widzenia twórców oprogramowania" open source to pierwszy na rynku podręcznik poświęcony czytaniu kodu źródłowego jako osobnej dziedzinie wiedzy, której znajomość jest przydatna każdemu programiście. Ponad 600 przykładów, w których wykorzystywane są kody oprogramowania open source , przedstawia sposoby identyfikowania dobrego i złego kodu, czytania go, przeszukiwania pod kątem konkretnych funkcji oraz wykorzystywania umiejętności czytania kodu do poprawy jakości kodów źródłowych pisanych samodzielnie.
* Podstawowe konstrukcje sterujące działaniem programu
* Proste i złożone typy danych
* Struktury i unie
* Dynamiczne zarządzanie pamięcią
* Metody analizy projektów informatycznych
* Konwencje pisania i formatowania kodu źródłowego
* Tworzenie i czytanie dokumentacji
* Architektura systemów
Poznaj umiejętność czytania kodu źródłowego i popraw samodzielnie pisany kod.
Profesjonalne programowanie. Część 1. Zrozumieć komputerWydawnictwo Helion
Chcesz zostać programistą doskonałym?
Zacznij od poznania szczegółów działania komputera
* Zapis wartości liczbowych oraz arytmetyka zmiennoprzecinkowa i binarna
* Organizacja dostępu do pamięci komputera
* Proces wykonywania programu oraz operacje wejścia i wyjścia
Kod napisany przez profesjonalnego programistę jest wydajny i efektywny. Aby tworzyć wydajny kod, należy poznać architekturę komputera i sposób, w jaki program jest wykonywany. Zrozumienie tego, w jaki sposób komputer realizuje kolejne instrukcje programu i jak słowa kluczowe języków wysokiego poziomu są przenoszone na rozkazy procesora, jest kluczem do napisania kodu, który po skompilowaniu da szybko i bezbłędnie działający program.
"Profesjonalne programowanie. Część 1. Zrozumieć komputer" to pierwszy tom serii książek przeznaczonych dla tych programistów, którzy chcą podnieść swoje kwalifikacje. Przedstawia wewnętrzną architekturę komputera od strony, której znajomość jest niezbędna programiście. Opisuje sposoby zapisu wartości liczbowych i tekstów, działania na liczbach binarnych i zmiennoprzecinkowych oraz logikę Boole’a. Czytając tę książkę, dowiesz się, w jaki sposób procesor przetwarza rozkazy asemblera, jak odbywa się dostęp do danych zapisanych w pamięci oraz jak przesyłane są dane do i z urządzeń zewnętrznych.
* Zapis liczb w systemie binarnym, ósemkowym i szesnastkowym
* Działania na liczbach binarnych i zmiennoprzecinkowych
* Sposoby reprezentacji danych znakowych
* Organizacja pamięci i tryby adresowania
* Złożone typy danych
* Projektowanie układów cyfrowych i logika Boole’a
* Architektura procesora i rozkazy asemblera
* Operacje wejścia i wyjścia
Jeśli chcesz, aby napisane przez Ciebie oprogramowanie budziło podziw, koniecznie przeczytaj tę książkę.
Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie II poprawi...Wydawnictwo Helion
Przewodnik po nowoczesnych technikach promocji witryny internetowej
* Jak wyszukiwarki indeksują strony WWW?
* Co wpływa na wysoką pozycję strony w wynikach wyszukiwania?
* W jaki sposób reklamować stronę w sieci?
* Jak sprawdzać skuteczność pozycjonowania?
Współczesny internet to już nie tylko źródło informacji. To także ogromny pasaż handlowy, narzędzie marketingowe i nośnik reklamowy. Na milionach witryn WWW każdy może znaleźć dla siebie coś interesującego. Co sprawia, że wśród tak wielu stron internetowych niektóre odwiedzane są niezwykle często, a inne sporadycznie? Czynników jest wiele, ale jednym z najistotniejszych jest pozycja w wynikach wyszukiwania. Krążący po sieci żart: „Jeśli czegoś nie ma w Google, to nie ma tego wcale” doskonale oddaje istotę sprawy — wskazuje, jak ważne jest wysokie miejsce w wyszukiwarkach. Co zrobić, aby nasza strona WWW pojawiała się na odpowiedniej pozycji?
Czytając książkę „Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie II poprawione i uzupełnione”, dowiesz się, w jaki sposób wpływać na „sposób widzenia” Twojej strony WWW przez wyszukiwarki. Nauczysz się tworzyć i modyfikować kod HTML tak, aby mechanizmy indeksujące prawidłowo rozpoznawały słowa kluczowe, poznasz metody zwiększania ruchu na stronie oraz systemy wymiany łączy. Przeczytasz o tym, jak odbywa się pozycjonowanie w wyszukiwarkach, jak pozyskiwać i analizować statystyki ruchu na stronie oraz jak wykorzystać działające w internecie mechanizmy reklamowe.
* Metody zarabiania na stronie WWW
* Zasada działania wyszukiwarki internetowej
* Projektowanie mechanizmów nawigacyjnych
* Dobór fraz i słów kluczowych
* Wykorzystanie hiperłączy
* Wybór domeny
* Systemy wymiany łączy
* Mechanizmy indeksacji witryny w wyszukiwarkach
* Śledzenie ruchu na stronie
* Reklama w wyszukiwarkach
Zobacz swoją stronę na pierwszym miejscu w wyszukiwarce!
Adobe InDesign to jeden z najbardziej zaawansowanych programów służących do składu wszelkiego rodzaju publikacji. W wersji 2.0 został wzbogacony o ponad 800 nowych funkcji -- daje to pojęcie o jego złożoności. Możliwości programu InDesign powiększą się jeszcze bardziej, jeśli w procesie składu wykorzystamy inne programy firmy Adobe: Photoshopa i Illustratora.
"Po prostu InDesign 2.0" to wprowadzenie do tworzenia publikacji za pomocą programu firmy Adobe. Książki z serii "Po prostu…" pokazują, jak wykonać konkretne zadanie, dzięki czemu, gdy tylko napotkasz trudności przy pracy, szybko znajdziesz ich rozwiązanie. Książka jest więc zarówno podręcznikiem, jak i pomocą dla osoby używającej InDesign.
W książce przedstawiono:
* Rozpoczęcie pracy z InDesign 2.0
* Konfigurowanie ustawień dokumentu
* Pracę z tekstem: formatowanie, ramki tekstowe, typografia
* Tworzenie obiektów graficznych: umieszczanie ich na stronie i przekształcanie
* Importowanie grafiki i łączenie jej z tekstem
* Pracę z tabelami i obszernymi dokumentami (tworzenie spisów treści i indeksów)
* Drukowanie dokumentów i tworzenie plików PDF
Przystępny język, liczne przykłady i szeroki zakres przedstawionych zagadnień to niewątpliwe atuty tej książki. Dzięki lekturze "Po prostu InDesign 2.0" i możliwościom opisywanego programu niedługo i Ty będziesz mógł tworzyć profesjonalne publikacje łatwo i szybko.
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarkaWydawnictwo Helion
* Jak zagwarantować wysokie miejsce Twojej witryny w wyszukiwarkach internetowych?
* Jak pozycjonować słowa kluczowe?
* Jak wykrywać i rozwiązywać problemy z Twoją stroną WWW?
Stworzenie strony WWW to pierwszy krok do sukcesu. Kolejny z nich to wybranie właściwej firmy, która opublikuje Twoją stronę. Jednak najważniejszy jest krok trzeci... Chodzi o to, jak szybko Twoją stronę znajdzie wyszukiwarka, w jaki sposób zostanie ona zindeksowana i jak wysoko pojawi się w wynikach wyszukiwania - czyli jak szybko dotrze do niej potencjalny odbiorca. Wbrew pozorom masz na to wpływ! Jeżeli tworzysz strony WWW, ta książka wskaże Ci, jak zaprojektować strony przyjazne dla wyszukiwarek. Jeśli natomiast jesteś klientem projektanta, możesz zweryfikować jakość dostarczonej Ci strony!
Dzięki tej książce poznasz istotne znaczniki, promujące szybkie wyszukiwanie. Dowiesz się, w jaki sposób zapewnienie zgodności z standardami oraz zastosowanie mikroformatów wpływają na pozycję strony w wynikach wyszukiwania. Zdobędziesz wiedzę na temat mechanizmów po stronie serwera, wpływających na wizerunek Twojej strony. Opanujesz niuanse związane z pozycjonowaniem słów kluczowych. Zrozumiesz, jak wykorzystać wewnętrzną wyszukiwarkę i uniknąć zatorów oraz jakich narzędzi możesz użyć, aby odkryć potencjalne problemy. Autor prezentuje tu najpopularniejsze podejście do kwestii wyszukiwania:
standardy WWW + atrakcyjna treść = lepsze wyszukiwanie = większy sukces witryny
Jeżeli chcesz, aby Twoja strona odniosła sukces i pojawiała się na pierwszych stronach wyszukiwarek, nie przegap tej pozycji!
* Pojęcie wyszukiwalności
* Strategie tworzenia kodu HTML
* Właściwe wykorzystanie znaczników
* Zastosowania systemów wymiany łączy
* Tworzenie dostępnych witryn
* Wykorzystanie mikroformatów
* Używanie modułu Apache - mod_rewrite
* Zastosowanie własnych stron dla błędów 404
* Pozycjonowanie słów kluczowych
* Zasady budowy bloga z możliwością wyszukania
* Wykorzystanie wyszukiwarki wewnętrznej
* Zapobieganie zatorom wyszukiwalności
* Używanie list dyskusyjnych
* Odkrywanie błędów na stronie WWW
* Dostępne narzędzia do analizy witryny
standardy WWW + atrakcyjna treść = lepsze wyszukiwanie = większy sukces witryny!
* Jak wykorzystać strumienie?
* Jak stworzyć efektowny interfejs użytkownika?
* Jak zapewnić bezpieczeństwo w tworzonych aplikacjach?
Co spowodowało, że język programowania Java zyskał tak wielką popularność? Przyczyn jest kilka: możliwość przenoszenia kodu między programami, wydajność i to, co programiści lubią najbardziej - mechanizm automatycznego oczyszczania pamięci. Nie bez znaczenia jest również to, że Java jest językiem zorientowanym obiektowo, udostępnia obsługę programowania rozproszonego oraz świetną dokumentację. Ponadto liczne publikacje oraz pomocna społeczność sprawiają, że Java zajmuje poczesne miejsce wśród innych języków programowania.
Kolejne wydanie książki "Java. Techniki zaawansowane. Wydanie VIII" zostało zaktualizowane o wszystkie te elementy, które pojawiły się w wersji szóstej platformy Java Standard Edition. Dzięki tej książce dowiesz się, w jaki sposób wykorzystać strumienie, jak parsować dokumenty XML czy też w jaki sposób tworzyć aplikacje sieciowe. Poznasz interfejs JDBC, sposób wykorzystania transakcji oraz wykonywania zapytań SQL. Autorzy w szczegółowy sposób pokażą Ci, jak tworzyć aplikacje z wykorzystaniem biblioteki Swing. Dodatkowo przedstawią, w jaki sposób zapewnić bezpieczeństwo w tworzonych przez Ciebie aplikacjach. Wszystkie te - oraz wiele innych - zagadnienia zostaną przedstawione w przystępny i sprawdzony sposób!
* Wykorzystanie strumieni
* Dokumenty XML i ich wykorzystanie w języku Java
* Programowanie aplikacji sieciowych
* Wykorzystanie interfejsu JDBC
* Tworzenie aplikacji wielojęzycznych
* Możliwości pakietu Swing
* Wykorzystanie biblioteki AWT
* Bezpieczeństwo w aplikacjach
* Zastosowanie podpisu cyfrowego
* Sposoby wykorzystania obiektów rozproszonych (RMI)
Wykorzystaj zaawansowane możliwości języka Java w swoich projektach!
Język programowania PHP stanowi dla wielu osób przepustkę w świat pisania aplikacji działających po stronie serwera WWW. Łatwość z jaką przychodzi nauczenie się tego języka, sprawiła, że używają go setki tysięcy amatorów i profesjonalistów na całym świecie.
Po pewnym czasie wiedza wyniesiona z podręczników opisujących podstawy PHP języka przestaje wystarczać. Niniejsza książka pomoże Ci w wykonaniu kolejnego kroku: kroku w kierunku pisania zaawansowanych aplikacji. Dzięki niej wzbogacisz swoją wiedzę i staniesz się prawdziwym ekspertem programowania w PHP, poszukiwanym na rynku pracy.
* Poznasz tajniki programowania obiektowego.
* Nauczysz się korzystać z baz danych.
* Dowiesz się, w jaki sposób zabezpieczać stworzone przez siebie aplikacje.
* Napiszesz własny sklep internetowy, korzystając z sesji i bazy SQL.
* Poznasz sposoby uruchamiania programów PHP w oderwaniu od serwera WWW.
* Nauczysz się generować nie tylko strony WWW, ale także grafikę i pliki PDF.
* Dowiesz się, jak i po co używać języka XML.
* Skorzystasz z wielu rozszerzeń języka, które ułatwiają rozwiązywanie złożonych problemów.
Pomoże Ci w tym prosty język w jakim napisana jest książka oraz liczne przykłady kodu, a także osoba autora, doświadczonego programisty i wykładowcy PHP na Uniwersytecie Kalifornijskim w Berkeley.
Profesjonalne programowanie. Część 1. Zrozumieć komputerWydawnictwo Helion
Chcesz zostać programistą doskonałym?
Zacznij od poznania szczegółów działania komputera
* Zapis wartości liczbowych oraz arytmetyka zmiennoprzecinkowa i binarna
* Organizacja dostępu do pamięci komputera
* Proces wykonywania programu oraz operacje wejścia i wyjścia
Kod napisany przez profesjonalnego programistę jest wydajny i efektywny. Aby tworzyć wydajny kod, należy poznać architekturę komputera i sposób, w jaki program jest wykonywany. Zrozumienie tego, w jaki sposób komputer realizuje kolejne instrukcje programu i jak słowa kluczowe języków wysokiego poziomu są przenoszone na rozkazy procesora, jest kluczem do napisania kodu, który po skompilowaniu da szybko i bezbłędnie działający program.
"Profesjonalne programowanie. Część 1. Zrozumieć komputer" to pierwszy tom serii książek przeznaczonych dla tych programistów, którzy chcą podnieść swoje kwalifikacje. Przedstawia wewnętrzną architekturę komputera od strony, której znajomość jest niezbędna programiście. Opisuje sposoby zapisu wartości liczbowych i tekstów, działania na liczbach binarnych i zmiennoprzecinkowych oraz logikę Boole’a. Czytając tę książkę, dowiesz się, w jaki sposób procesor przetwarza rozkazy asemblera, jak odbywa się dostęp do danych zapisanych w pamięci oraz jak przesyłane są dane do i z urządzeń zewnętrznych.
* Zapis liczb w systemie binarnym, ósemkowym i szesnastkowym
* Działania na liczbach binarnych i zmiennoprzecinkowych
* Sposoby reprezentacji danych znakowych
* Organizacja pamięci i tryby adresowania
* Złożone typy danych
* Projektowanie układów cyfrowych i logika Boole’a
* Architektura procesora i rozkazy asemblera
* Operacje wejścia i wyjścia
Jeśli chcesz, aby napisane przez Ciebie oprogramowanie budziło podziw, koniecznie przeczytaj tę książkę.
Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie II poprawi...Wydawnictwo Helion
Przewodnik po nowoczesnych technikach promocji witryny internetowej
* Jak wyszukiwarki indeksują strony WWW?
* Co wpływa na wysoką pozycję strony w wynikach wyszukiwania?
* W jaki sposób reklamować stronę w sieci?
* Jak sprawdzać skuteczność pozycjonowania?
Współczesny internet to już nie tylko źródło informacji. To także ogromny pasaż handlowy, narzędzie marketingowe i nośnik reklamowy. Na milionach witryn WWW każdy może znaleźć dla siebie coś interesującego. Co sprawia, że wśród tak wielu stron internetowych niektóre odwiedzane są niezwykle często, a inne sporadycznie? Czynników jest wiele, ale jednym z najistotniejszych jest pozycja w wynikach wyszukiwania. Krążący po sieci żart: „Jeśli czegoś nie ma w Google, to nie ma tego wcale” doskonale oddaje istotę sprawy — wskazuje, jak ważne jest wysokie miejsce w wyszukiwarkach. Co zrobić, aby nasza strona WWW pojawiała się na odpowiedniej pozycji?
Czytając książkę „Pozycjonowanie i optymalizacja stron WWW. Jak się to robi. Wydanie II poprawione i uzupełnione”, dowiesz się, w jaki sposób wpływać na „sposób widzenia” Twojej strony WWW przez wyszukiwarki. Nauczysz się tworzyć i modyfikować kod HTML tak, aby mechanizmy indeksujące prawidłowo rozpoznawały słowa kluczowe, poznasz metody zwiększania ruchu na stronie oraz systemy wymiany łączy. Przeczytasz o tym, jak odbywa się pozycjonowanie w wyszukiwarkach, jak pozyskiwać i analizować statystyki ruchu na stronie oraz jak wykorzystać działające w internecie mechanizmy reklamowe.
* Metody zarabiania na stronie WWW
* Zasada działania wyszukiwarki internetowej
* Projektowanie mechanizmów nawigacyjnych
* Dobór fraz i słów kluczowych
* Wykorzystanie hiperłączy
* Wybór domeny
* Systemy wymiany łączy
* Mechanizmy indeksacji witryny w wyszukiwarkach
* Śledzenie ruchu na stronie
* Reklama w wyszukiwarkach
Zobacz swoją stronę na pierwszym miejscu w wyszukiwarce!
Adobe InDesign to jeden z najbardziej zaawansowanych programów służących do składu wszelkiego rodzaju publikacji. W wersji 2.0 został wzbogacony o ponad 800 nowych funkcji -- daje to pojęcie o jego złożoności. Możliwości programu InDesign powiększą się jeszcze bardziej, jeśli w procesie składu wykorzystamy inne programy firmy Adobe: Photoshopa i Illustratora.
"Po prostu InDesign 2.0" to wprowadzenie do tworzenia publikacji za pomocą programu firmy Adobe. Książki z serii "Po prostu…" pokazują, jak wykonać konkretne zadanie, dzięki czemu, gdy tylko napotkasz trudności przy pracy, szybko znajdziesz ich rozwiązanie. Książka jest więc zarówno podręcznikiem, jak i pomocą dla osoby używającej InDesign.
W książce przedstawiono:
* Rozpoczęcie pracy z InDesign 2.0
* Konfigurowanie ustawień dokumentu
* Pracę z tekstem: formatowanie, ramki tekstowe, typografia
* Tworzenie obiektów graficznych: umieszczanie ich na stronie i przekształcanie
* Importowanie grafiki i łączenie jej z tekstem
* Pracę z tabelami i obszernymi dokumentami (tworzenie spisów treści i indeksów)
* Drukowanie dokumentów i tworzenie plików PDF
Przystępny język, liczne przykłady i szeroki zakres przedstawionych zagadnień to niewątpliwe atuty tej książki. Dzięki lekturze "Po prostu InDesign 2.0" i możliwościom opisywanego programu niedługo i Ty będziesz mógł tworzyć profesjonalne publikacje łatwo i szybko.
Witryny nie do ukrycia. Jak zbudować stronę, którą znajdzie każda wyszukiwarkaWydawnictwo Helion
* Jak zagwarantować wysokie miejsce Twojej witryny w wyszukiwarkach internetowych?
* Jak pozycjonować słowa kluczowe?
* Jak wykrywać i rozwiązywać problemy z Twoją stroną WWW?
Stworzenie strony WWW to pierwszy krok do sukcesu. Kolejny z nich to wybranie właściwej firmy, która opublikuje Twoją stronę. Jednak najważniejszy jest krok trzeci... Chodzi o to, jak szybko Twoją stronę znajdzie wyszukiwarka, w jaki sposób zostanie ona zindeksowana i jak wysoko pojawi się w wynikach wyszukiwania - czyli jak szybko dotrze do niej potencjalny odbiorca. Wbrew pozorom masz na to wpływ! Jeżeli tworzysz strony WWW, ta książka wskaże Ci, jak zaprojektować strony przyjazne dla wyszukiwarek. Jeśli natomiast jesteś klientem projektanta, możesz zweryfikować jakość dostarczonej Ci strony!
Dzięki tej książce poznasz istotne znaczniki, promujące szybkie wyszukiwanie. Dowiesz się, w jaki sposób zapewnienie zgodności z standardami oraz zastosowanie mikroformatów wpływają na pozycję strony w wynikach wyszukiwania. Zdobędziesz wiedzę na temat mechanizmów po stronie serwera, wpływających na wizerunek Twojej strony. Opanujesz niuanse związane z pozycjonowaniem słów kluczowych. Zrozumiesz, jak wykorzystać wewnętrzną wyszukiwarkę i uniknąć zatorów oraz jakich narzędzi możesz użyć, aby odkryć potencjalne problemy. Autor prezentuje tu najpopularniejsze podejście do kwestii wyszukiwania:
standardy WWW + atrakcyjna treść = lepsze wyszukiwanie = większy sukces witryny
Jeżeli chcesz, aby Twoja strona odniosła sukces i pojawiała się na pierwszych stronach wyszukiwarek, nie przegap tej pozycji!
* Pojęcie wyszukiwalności
* Strategie tworzenia kodu HTML
* Właściwe wykorzystanie znaczników
* Zastosowania systemów wymiany łączy
* Tworzenie dostępnych witryn
* Wykorzystanie mikroformatów
* Używanie modułu Apache - mod_rewrite
* Zastosowanie własnych stron dla błędów 404
* Pozycjonowanie słów kluczowych
* Zasady budowy bloga z możliwością wyszukania
* Wykorzystanie wyszukiwarki wewnętrznej
* Zapobieganie zatorom wyszukiwalności
* Używanie list dyskusyjnych
* Odkrywanie błędów na stronie WWW
* Dostępne narzędzia do analizy witryny
standardy WWW + atrakcyjna treść = lepsze wyszukiwanie = większy sukces witryny!
* Jak wykorzystać strumienie?
* Jak stworzyć efektowny interfejs użytkownika?
* Jak zapewnić bezpieczeństwo w tworzonych aplikacjach?
Co spowodowało, że język programowania Java zyskał tak wielką popularność? Przyczyn jest kilka: możliwość przenoszenia kodu między programami, wydajność i to, co programiści lubią najbardziej - mechanizm automatycznego oczyszczania pamięci. Nie bez znaczenia jest również to, że Java jest językiem zorientowanym obiektowo, udostępnia obsługę programowania rozproszonego oraz świetną dokumentację. Ponadto liczne publikacje oraz pomocna społeczność sprawiają, że Java zajmuje poczesne miejsce wśród innych języków programowania.
Kolejne wydanie książki "Java. Techniki zaawansowane. Wydanie VIII" zostało zaktualizowane o wszystkie te elementy, które pojawiły się w wersji szóstej platformy Java Standard Edition. Dzięki tej książce dowiesz się, w jaki sposób wykorzystać strumienie, jak parsować dokumenty XML czy też w jaki sposób tworzyć aplikacje sieciowe. Poznasz interfejs JDBC, sposób wykorzystania transakcji oraz wykonywania zapytań SQL. Autorzy w szczegółowy sposób pokażą Ci, jak tworzyć aplikacje z wykorzystaniem biblioteki Swing. Dodatkowo przedstawią, w jaki sposób zapewnić bezpieczeństwo w tworzonych przez Ciebie aplikacjach. Wszystkie te - oraz wiele innych - zagadnienia zostaną przedstawione w przystępny i sprawdzony sposób!
* Wykorzystanie strumieni
* Dokumenty XML i ich wykorzystanie w języku Java
* Programowanie aplikacji sieciowych
* Wykorzystanie interfejsu JDBC
* Tworzenie aplikacji wielojęzycznych
* Możliwości pakietu Swing
* Wykorzystanie biblioteki AWT
* Bezpieczeństwo w aplikacjach
* Zastosowanie podpisu cyfrowego
* Sposoby wykorzystania obiektów rozproszonych (RMI)
Wykorzystaj zaawansowane możliwości języka Java w swoich projektach!
Język programowania PHP stanowi dla wielu osób przepustkę w świat pisania aplikacji działających po stronie serwera WWW. Łatwość z jaką przychodzi nauczenie się tego języka, sprawiła, że używają go setki tysięcy amatorów i profesjonalistów na całym świecie.
Po pewnym czasie wiedza wyniesiona z podręczników opisujących podstawy PHP języka przestaje wystarczać. Niniejsza książka pomoże Ci w wykonaniu kolejnego kroku: kroku w kierunku pisania zaawansowanych aplikacji. Dzięki niej wzbogacisz swoją wiedzę i staniesz się prawdziwym ekspertem programowania w PHP, poszukiwanym na rynku pracy.
* Poznasz tajniki programowania obiektowego.
* Nauczysz się korzystać z baz danych.
* Dowiesz się, w jaki sposób zabezpieczać stworzone przez siebie aplikacje.
* Napiszesz własny sklep internetowy, korzystając z sesji i bazy SQL.
* Poznasz sposoby uruchamiania programów PHP w oderwaniu od serwera WWW.
* Nauczysz się generować nie tylko strony WWW, ale także grafikę i pliki PDF.
* Dowiesz się, jak i po co używać języka XML.
* Skorzystasz z wielu rozszerzeń języka, które ułatwiają rozwiązywanie złożonych problemów.
Pomoże Ci w tym prosty język w jakim napisana jest książka oraz liczne przykłady kodu, a także osoba autora, doświadczonego programisty i wykładowcy PHP na Uniwersytecie Kalifornijskim w Berkeley.
Naucz się łączyć największe zalety języków oraz technik programowania
i twórz interaktywne strony internetowe
* Jak unikać typowych błędów i sprawnie rozwiązywać problemy programistyczne?
* Jak połączyć zalety HTML, XML i PHP dla uzyskania pożądanych efektów?
* Jak tworzyć aplikacje wyposażone w aktywny interfejs użytkownika?
Statyczne strony WWW to dziś już przeszłość. Powszechnie dostępne narzędzia dają programistom prawie nieograniczone możliwości w zakresie tworzenia interaktywnych witryn internetowych, wzbogaconych o najróżniejsze efekty wizualne, animacje oraz wbudowane narzędzia pomocnicze. Największą popularność zdobyły sobie narzędzia z kategorii open source — z powodu ich minimalnego kosztu oraz niezwykle dużych zasobów, dostępnych za pośrednictwem Internetu. Z tej książki dowiesz się, jak tworzyć bogate i interaktywne strony WWW, łącząc rozmaite techniki i korzystając z różnych języków.
Książka "Ajax, JavaScript i PHP. Intensywny trening" poprowadzi Cię krok po kroku po podstawowych zasadach programowania w językach JavaScript, PHP i HTML oraz technologiach programowania. Dzięki temu podręcznikowi dowiesz się m.in., jak wykorzystywać dostępne biblioteki ajaksowe do implementowania i ulepszania podstawowych mechanizmów aplikacji. Szybko nauczysz się tworzyć interaktywne strony WWW, zarówno za pomocą technologii serwerowych, jak i technik oraz narzędzi umiejscowionych po stronie klienckiej, a także ich kombinacji.
* Tworzenie stron WWW w języku HTML
* Stylizacja stron za pomocą arkuszy CSS
* Tworzenie skryptów w języku JavaScript
* Wbudowanie skryptu w stronę WWW
* Obiektowy model dokumentu (DOM)
* Obiekty String
* Instrukcje warunkowe i pętle
* Funkcje wbudowane i biblioteki
* Konstruowanie aplikacji ajaksowych
* Zmienne w języku PHP
* Funkcje liczbowe, łańcuchy i tabele
* Kontrola przepływu sterowania
* Usługi webowe oraz protokoły REST i SOAP
Łącz, kompiluj, dobieraj — niech Twoje strony WWW zrobią wrażenie!
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIWydawnictwo Helion
Błyskawiczny kurs tworzenia dynamicznych serwisów internetowych
Dynamiczne strony WWW spotykamy codziennie, korzystając z internetu. Portale, sklepy internetowe, gry sieciowe -- wszystkie te witryny korzystają z baz danych i skryptów wykonywanych po stronie serwera. Technologii umożliwiających realizację tego typu witryn WWW jest kilka. Wśród nich zasłużoną popularnością cieszy się "duet" o ogromnych możliwościach -- język skryptowy PHP i baza danych MySQL. Te dostępne nieodpłatnie narzędzia wykorzystywane są przez tysiące twórców witryn WWW. Dołącz do nich!
Książka "PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II" to kolejna edycja doskonałego przewodnika po tajnikach tworzenia witryn internetowych za pomocą tych technologii. Znajdziesz w niej wszystkie informacje niezbędne do rozpoczęcia projektowania własnych dynamicznych stron WWW -- od podstaw programowania i korzystania z baz danych, poprzez wykorzystywanie sesji i plików cookie, aż do zaawansowanych technik autoryzowania użytkowników i budowania aplikacji e-commerce. Każde zagadnienie jest przedstawione na praktycznym przykładzie, co doskonale pomoże Ci w przyswojeniu wiedzy.
* Podstawowe elementy skryptów PHP
* Obsługa formularzy HTML
* Tworzenie i stosowanie funkcji
* Projektowanie baz danych
* Operacje na danych
* Wykrywanie i usuwanie błędów w skryptach
* Łączenie skryptów PHP z bazą danych
* Stosowanie plików cookie i mechanizmów zarządzania sesjami
* Zabezpieczanie i szyfrowanie danych
* Zarządzanie treścią strony
* Autoryzowanie użytkowników
* Projektowanie sklepów internetowych
Microsoft Office Word 2003 PL to najnowsza wersja zaawansowanego programu do edycji tekstów dla użytkowników systemu Windows. Teraz Word ma większe możliwości niż kiedykolwiek i pozwala swym użytkownikom tworzyć szeroką gamę dokumentów, począwszy od prostych, jednostronicowych listów, na wieloplikowych raportach z rysunkami, tabelami, spisami treści i indeksami skończywszy.
Ta książka nauczy Cię obsługi programu Word 2003 dzięki dużej ilości ilustracji, wskazówek i instrukcji "krok po kroku". Znajdziesz tu wszystko, co niezbędne, aby w krótkim czasie rozpocząć pracę z programem.
Poznasz:
* Warsztat pracy -- interfejs Worda 2003
* Podstawy pracy z dokumentami
* Proste i zaawansowane formatowanie tekstów
* Drukowanie dokumentów
* Narzędzia służące do sprawdzania pisowni i gramatyki
* Tworzenie tabel
* Wstawianie grafiki
* Automatyzację prac: spisy treści, indeksy, konspekty, korespondencja seryjna
* Tworzenie stron WWW w Wordzie
* Makrodefinicje
Dzięki spisowi treści, indeksowi i drukowanym zakładkom na marginesach nie będziesz miał kłopotu ze znalezieniem informacji, których potrzebujesz.
Jeżeli nigdy nie używałeś Worda lub może jesteś nowicjuszem w dziedzinie edycji tekstów, to "Po prostu Word 2003 PL" pozwoli ci osiągnąć wyższy stopień wtajemniczenia w dziedzinie edycji tekstów.
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
Poznaj możliwości iPhone’a!
* Jak rozpocząć pracę z iPhone’em?
* Jak wykorzystać możliwości przeglądarki Safari?
* Jak używać map?
Pojawienie się iPhone’a firmy Apple można bez wahania nazwać Rewolucją! Rewolucją przez duże "R". Nigdy wcześniej żaden nowy telefon nie wzbudził takich emocji. Nigdy wcześniej nie ustawiały się na wiele dni przed premierą kolejki pod salonami. Co sprawia, że ludzie szaleją za tym małym cudem techniki? Wielodotykowy (ang. multitouch) ekran, dostęp do tysięcy aplikacji, stabilny system operacyjny oraz elegancki, przykuwający uwagę wygląd to tylko niektóre z jego zalet.
Właśnie dzięki tej książce dowiesz się, co tak naprawdę potrafi Twój iPhone. Autor — niezawodny Scott Kelby — bez zbędnego zagłębiania się w szczegóły techniczne opowie Ci o możliwościach tego rewolucyjnego urządzenia. Zaprezentuje Ci m.in. sposoby wykonywania różnych operacji przy użyciu tego telefonu. Poznasz tajniki jego konfiguracji i synchronizacji z komputerem oraz metodę sprawdzania poziomu naładowania baterii. Nauczysz się wykorzystywać wszystkie możliwości przeglądarki Safari, czytnika poczty oraz terminarza. Dowiesz się również, jak odtwarzać klipy z YouTube, słuchać muzyki czy oglądać filmy. Książka ta jest zatem świetną pozycją zarówno dla początkującego użytkownika telefonu iPhone, jak również dla zaawansowanego — ten ostatni znajdzie tu informacje, które go zaskoczą i zachwycą! W końcu iPhone to zdolna i piękna bestia…
* Włączanie, usypianie, wyłączanie iPhone’a
* Wykorzystanie wbudowanego głośnika
* Obsługa ekranu
* Importowanie kontaktów
* Dodawanie numerów
* Połączenia konferencyjne
* Wyciszanie dzwonka
* Odbieranie i wysyłanie wiadomości e-mail
* Obsługa przeglądarki Safari
* Wykorzystanie kalendarza
* Odtwarzanie klipów z YouTube
* Używanie mapy
* Sprawdzanie prognozy pogody
* Importowanie i odtwarzanie muzyki
* Wykonywanie zdjęć
* Rozwiązywanie typowych problemów
Sprawdź, co potrafi Twój iPhone!
Lista nazwisk autorów wydrukowanych na okładce książki jest błędna. Autorem książki, pierwotnie wydanej w wydawnictwie "No Starch Press", jest Brian Ward. Za pomyłkę przepraszamy naszych klientów, wydawnictwo No Starch Press i Pana Briana Warda.
Jeśli chcesz poznać Linuksa "od środka" -- sięgnij po tę książkę
* Poznaj mechanizmy uruchamiania i pracy systemu
* Zobacz, jak realizowane są usługi systemowe i sieciowe
* Naucz się administrować Linuksem
Jeśli korzystasz z Linuksa, to na pewno nie trzeba opisywać Ci jego zalet. Bez wątpienia doceniasz jego stabilność i szybkość działania. Dzięki stale zwiększającej się liczbie aplikacji, komputer z zainstalowanym Linuksem można wykorzystać do pełnienia wielu funkcji – od domowej stacji roboczej, aż do serwera sieciowego. Aby jednak w pełni wykorzystać jego możliwości, musisz poznać jego wewnętrzne mechanizmy rządzące uruchamianiem systemu oraz obsługą sieci i urządzeń peryferyjnych, a także zasady administrowania jego zasobami.
Książka "Jak działa Linux" zawiera wszystkie informacje dotyczące wnętrza systemu Linux oraz zasad korzystania z niego. Przedstawia zarówno zagadnienia podstawowe -- przebieg procesu uruchamiania systemu i mechanizmy obsługi sieci, jak i tematy zaawansowane, związane z administracją systemem, jego współpracą z urządzeniami zewnętrznymi oraz programowaniem.
* Podstawy korzystania z Linuksa – polecenia, struktura plików i katalogów oraz dyski logiczne
* Przebieg procesu uruchamiania Linuksa
* Konfigurowanie i uruchamianie sieci i usług sieciowych
* Pisanie własnych programów w języku powłoki oraz w C++
* Kompilowanie programów
* Konserwacja jądra systemu
* Obsługa urządzeń peryferyjnych
* Tworzenie kopii bezpieczeństwa
Możliwości komercyjnych systemów operacyjnych nie odpowiadają Ci? Może Twój komputer nie spełnia minimalnych wymagań sprzętowych niezbędnych do ich uruchomienia? A może po prostu nie chcesz wydawać pieniędzy na licencjonowany system ani ryzykować używaniem wersji pirackiej? Skorzystaj z darmowej alternatywy! Zastosuj Linuksa. Popularność tego systemu operacyjnego, tworzonego i rozwijanego przez zapaleńców z całego świata, rośnie w lawinowym tempie. Linux już dawno przestał być zabawką dla pasjonatów -- teraz to w pełni funkcjonalny produkt, bezpieczny, stabilny i wygodny w obsłudze.
"Linux. Kurs. Wydanie II" to podręcznik, dzięki któremu poznasz i opanujesz możliwości tego systemu operacyjnego. Przedstawia on Mandrivę -- jedną z jego najpopularniejszych wersji, zwanych dystrybucjami. Czytając tę książkę, dowiesz się, jak zainstalować system i skonfigurować go. Nauczysz się korzystać z graficznego środowiska pracy, zarządzać kontami użytkowników i systemem plików, instalować i usuwać nowe aplikacje, nagrywać płyty CD i DVD oraz drukować. Przekonasz się także, że dołączony do Linuksa pakiet biurowy OpenOffice jest doskonałym narzędziem do edycji tekstów, przeprowadzania obliczeń i tworzenia baz danych. Ma również możliwość wymiany plików z popularnym, lecz komercyjnym MS Office.
* Pobieranie wersji instalacyjnej Linuksa
* Logowanie i korzystanie z terminala
* Praca ze środowiskiem graficznym
* Nagrywanie płyt CD i DVD
* Przeglądanie stron WWW
* Korzystanie z poczty elektronicznej
* Tworzenie grafiki za pomocą programu GIMP
* Redagowanie plików tekstowych za pomocą OpenOffice Writer
* Tworzenie arkuszy kalkulacyjnych za pomocą OpenOffice Calc
Przekonaj się, że nie musisz wydawać pieniędzy,
aby dysponować doskonałymi narzędziami do pracy.
Pakiet biurowy MS Office jest jednym z podstawowych narzędzi wykorzystywanych we współczesnych firmach. Zawarty w nim system zarządzania bazami danych Access to wygodna w obsłudze aplikacja służąca do operowania na zbiorach danych. Dzięki prostocie obsługi, sporym możliwościom i wizualnym narzędziom stanowi doskonałe rozwiązanie dla przedsiębiorstw, w których duże znaczenie ma czas poświęcany na opanowanie nowych programów. Kreatory i rozbudowany system pomocy oferowane przez Accessa niezwykle upraszczają proces tworzenia bazy oraz aplikacji przeznaczonych do obsługi zgromadzonych w niej danych.
W książce "Access w biurze i nie tylko" znajdziesz omówienie podstawowych możliwości tego systemu. Nauczysz się tworzyć i otwierać istniejące bazy danych oraz tworzyć nowe. Dowiesz się, w jaki sposób projektować tabele i jak dobierać typy danych dla poszczególnych kolumn tabeli. Przeczytasz o relacjach, poznasz sposoby wybierania i wstawiania danych, a także manipulowania nimi za pomocą kwerend. W kolejnych rozdziałach znajdziesz informacje o tworzeniu formularzy i raportów oraz wyświetlaniu wykresów na podstawie danych zgromadzonych w bazie. Nauczysz się także pisać własne makra i poznasz podstawy języka Visual Basic for Applications.
* Otwieranie istniejących baz danych
* Tworzenie tabel
* Typy danych
* Tworzenie i modyfikowanie relacji
* Manipulowanie danymi za pomocą kwerend
* Konstruowanie formularzy
* Budowanie raportów
* Automatyzacja pracy za pomocą makropoleceń
* Tworzenie i wyświetlanie wykresów
Dane to dziś najcenniejszy towar. Naucz się nim zarządzać.
Błyskawiczny kurs programowania aplikacji w języku C
Język C, mimo prawie 30-letniej historii, cieszy się niesłabnącą popularnością wśród programistów. Wszyscy jego użytkownicy cenią w nim prostą i czytelną składnię, niewielki i łatwy do zapamiętania zakres słów kluczowych oraz duże możliwości, dzięki którym za pomocą C można rozwiązać niemal każde zagadnienie programistyczne. Zewnętrzne biblioteki, dostępne w sieci oraz dołączane do najpopularniejszych narzędzi programistycznych, dodatkowo rozszerzają możliwości C.
Książka "Programowanie w języku C. Szybki start" to podręcznik dla tych, którzy chcą poznać C w praktyce i nie chcą przebijać się przez dziesiątki stron opisów teoretycznych. Każde zagadnienie -- od najprostszych, związanych ze strukturą programu i zasadami kompilacji aż do złożonych typów danych i obsługi plików zewnętrznych -- jest przedstawione w postaci bogato ilustrowanej sekwencji czynności. Wykonując kolejne przykłady z książki, poznasz wszystkie podstawowe wiadomości o programowaniu w języku C.
* Struktura programu w języku C
* Typy danych
* Sterowanie działaniem programu
* Korzystanie ze standardowego wejścia i wyjścia
* Deklarowanie i stosowanie funkcji
* Dyrektywy preprocesora
* Wskaźniki i zarządzanie pamięcią
* Obsługa plików
* Złożone typy danych
Poznaj zalety i możliwości najpopularniejszego języka programowania.
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
Rozpocznij przygodę z Visual C++!
* Jakie prawa rządzą programowaniem obiektowym?
* Jak tworzyć usługi systemowe?
* Jak dokumentować tworzony kod?
Microsoft Visual C++ jest zintegrowanym środowiskiem, pozwalającym na tworzenie aplikacji przy użyciu języków C, C++ lub C++/CLI. Zawiera ono wyspecjalizowane narzędzia, pomagające w wydajnym tworzeniu rozwiązań opartych o te języki. Pierwsza wersja Visual C++ została wydana w 1992 roku, a środowisko to jest bezustannie ulepszane. Najnowsze wydanie, z datą 2008, zostało opublikowane w listopadzie 2007 roku i wprowadziło wiele nowości — jak chociażby wsparcie dla technologii .NET 3.5. Niewątpliwie narzędzie firmowane przez giganta z Redmond jest jednym z najpopularniejszych, a używają go programiści z całego świata.
Dzięki tej książce również Ty możesz dołączyć do tego wybitnego grona. Po jej przeczytaniu będziesz miał wiedzę na temat środowiska programistycznego i platformy .NET. Poznasz podstawy programowania obiektowego, nauczysz się uzyskiwać dostęp do informacji zgromadzonych w bazach danych oraz korzystać z możliwości Internetu bezpośrednio w Twoich programach. Kolejne rozdziały przedstawiają interesujące tematy dotyczące obsługi wyjątków, programów wielowątkowych oraz sposobów tworzenia usług systemowych. Ostatni rozdział poświęcony został tak istotnej kwestii, jak dokumentowanie kodu — to czynność, o której wielu programistów zapomina. Jeżeli chcesz rozpocząć przygodę z Microsoft Visual C++, ta książka jest idealną lekturą dla Ciebie!
* Praca w zintegrowanym środowisku programistycznym
* Pojęcia związane z programowaniem obiektowym
* Uzyskiwanie dostępu do informacji zgromadzonych w bazach danych
* Wykorzystanie transakcji w pracy z danymi
* Sposoby integracji z siecią Internet
* Obsługa wyjątków
* Programowanie wielowątkowe
* Tworzenie grafiki oraz wykorzystanie multimediów
* Drukowanie w systemie Windows
* Tworzenie usług systemowych
* Dokumentowanie kodu programu
Wykorzystaj możliwości Microsoft Visual C++ 2008!
Poznaj i wykorzystaj strategie SEO, aby poprawić miejsce w rankingach swojej witryny
Skrót SEO (Search Engine Optimization) odnosi się do strategii takiego programowania i projektowania struktury witryny internetowej oraz dobierania jej treści, aby poprawić pozycję strony w wyszukiwarkach internetowych. Natomiast skrót SEM (Search Engine Marketing) określa płatne możliwości poprawienia miejsca strony w rankingach, takie jak linki sponsorowane. Kolejnym sposobem na pozycjonowanie, zdobywającym coraz większą rzeszę zwolenników, jest wykorzystanie intensywnie rozwijającego się zjawiska, jakim są media społeczne. Wszystkie te działania mają jeden wspólny cel - wzrost liczby odwiedzin na Twojej stronie WWW.
Książka "SEO optymalizacja wyszukiwania. Biblia" to kompletny podręcznik, który zaprezentuje Ci najskuteczniejsze praktyki, związane z optymalizacją stron internetowych pod kątem ich wyszukiwania. Dowiesz się między innymi, jak działają poszczególne wyszukiwarki. To pozwoli Ci zrozumieć, jakie czynniki powinieneś uwzględnić już przy projektowaniu struktury witryny. Nauczysz się automatyzować niektóre elementy optymalizacji, dobierać słowa kluczowe, opracowywać strategie dla linków sponsorowanych. Dowiesz się także, jak analizować efektywność swoich działań, aby na bieżąco monitorować skuteczność poszczególnych metod. Dzięki zdobytej tu wiedzy bez problemu zoptymalizujesz swoją stronę i zastosujesz skuteczne strategie pozycjonowania, zwiększając tym samym popularność witryny i generowane przez nią dochody!
* Tworzenie planu SEO
* Analiza wyszukiwarek
* Budowanie witryny dla SEO
* Zwiększanie efektywności słów kluczowych
* Narzędzia i serwisy dotyczące słów kluczowych
* Linki sponsorowane
* Znaczenie treści w strategii SEO
* Rola linków i linkowania
* Rejestrowanie witryny w indeksach wyszukiwarek i katalogach stron
* Optymalizacja w mediach społecznych
* Optymalizacja zautomatyzowana
* Oprogramowanie, narzędzia i zasoby SEO
Pozycjonowanie - najskuteczniejsza broń do walki z konkurencją w internecie!
>> U nas kupisz też licencję na Pajączka!
Pajączek jest najpopularniejszym polskim programem służącym do tworzenia stron WWW. Przeszedł on długą ewolucję: od prostego edytora pracującego w środowisku DOS do rozbudowanej aplikacji, wyposażonej w wiele zaawansowanych możliwości, które docenią zarówno profesjonaliści, jak i osoby traktujące tworzenie serwisów WWW jako hobby.
Bogactwo możliwości i narzędzi Pajączka może przyprawić o zawrót głowy. Po co sięgnąć i kiedy to zrobić? Od czego zacząć i jak zapanować nad kolejnymi etapami tworzenia dokumentów i serwisu? Jak zadbać o poprawność dokumentów? Książka "Po prostu Pajączek 5 NxG" w prosty i przystępny sposób udzieli odpowiedzi na te pytania. Znajdziesz w niej bogato ilustrowane, przedstawione krok po kroku omówienie najważniejszych funkcji Pajączka, a przy okazji poznasz wiele sztuczek przydatnych przy tworzeniu stron WWW.
Książka omawia:
* Wersje Standard i Professional Pajączka 5 NxG oraz różnice pomiędzy nimi
* Nowy interfejs Pajączka i ustawienia programu
* Tworzenie i edycję dokumentów, w tym import z innych programów i edycję bezpośrednio na serwerze
* Pracę z tekstem: formatowanie, style CSS, przeszukiwanie
* Tworzenie odnośników i kontrolę ich poprawności
* Formatowanie stron WWW za pomocą tabel i ramek
* Pracę z grafiką oraz zawarte w Pajączku narzędzia Konwerter plików graficznych i Kreator galerii grafik
* Łączenie stron WWW z plikami multimedialnymi
* Tworzenie formularzy na stronach WWW
* Szablony Pajączka
* Zarządzanie całym serwisem WWW za pomocą narzędzi dostępnych w Pajączku
"Po prostu Pajączek 5 NxG" omawia zarówno wersję Standard, jak i Professional programu Pajączek. Jest to doskonała lektura dla użytkowników poprzednich edycji programu, a także dla osób, które po raz pierwszy zetknęły się z tym programem. Po przeczytaniu tej książki z pewnością nie odłożysz jej na półkę -- wręcz przeciwnie, wielokrotnie skorzystasz z przedstawionych w niej rozwiązań najczęstszych problemów, z którymi spotyka się w swojej praktyce każdy webmaster.
Jak myślisz, ile można zarobić na stronie www?
* Nowe modele e-biznesu -- programy partnerskie, aukcje internetowe, e-mailing
* Zdobywanie popularności w sieci bez kosztownej reklamy
* Rozwijanie e-biznesu w zgodzie z przepisami o prawach autorskich i danych osobowych
Najlepszą rekomendacją tej książki jest sukces jej autora. W 2000 roku wydał on pierwszy numer magazynu CzasNaE-Biznes. Do dziś krąg odbiorców tego pisma poszerzył się ponad trzystukrotnie -- ze 150 do blisko 50 000 czytelników. Piotr Majewski doradza tysiącom Polaków, jak tworzyć rentowne serwisy internetowe. Wskazuje im nowe metody zarabiania przez sieć -- współpracę z dużymi serwisami www, e-mailing oraz prowadzenie pasaży i aukcji internetowych. W tej książce Majewski prezentuje solidną wiedzę o e-biznesie poszerzoną o wnioski zebrane przez setki ludzi, którzy skorzystali z jego doświadczenia... i nieźle na tym zarobili.
Jeśli jesteś człowiekiem czynu, gotowym połączyć swój pomysł, czas i pracę w jeden udany projekt e-biznesu, ta książka jest dla Ciebie. Dowiesz się z niej, jak:
* pozycjonować stronę www w wyszukiwarkach,
* stosować outsourcing (czyli co zlecić na zewnątrz przy zakładaniu e-biznesu),
* tworzyć nagłówki, hasła i nazwy produktów w sieci,
* zaplanować treść merytoryczną i oprawę wizualną strony www,
* redagować skuteczne e-maile reklamowe,
* kupować i stosować bazy adresowe.
Niech Twój e-biznes zarabia na Ciebie!
OpenOffice.org to darmowy pakiet oprogramowania biurowego. W jego skład wchodzą między innymi edytor tekstu Writer oraz arkusz kalkulacyjny Calc. OpenOffice.org obsługuje różne formaty plików, w tym formaty Microsoft Office i współpracuje z większością dostępnych na rynku platform (m.in. Solaris, Linux, FreeBSD i Windows). Nic więc dziwnego, że stanowi on doskonałą alternatywę dla komercyjnych pakietów aplikacji biurowych, takich jak Microsoft Office, zbliżając się do nich swoimi możliwościami, a bijąc je na głowę ceną.
Książka "OpenOffice. Ćwiczenia" ma na celu szybkie wprowadzenie do praktycznego wykorzystania tego pakietu. Znajdziesz w niej ćwiczenia, które krok po kroku pozwolą Ci opanować podstawowe funkcje wszystkich programów z tego pakietu.
Nauczysz się:
* Instalować OpenOffice
* Tworzyć dokumenty tekstowe za pomocą edytora Writer
* Formatować tekst, wstawiać ilustracje, tworzyć tabele i spisy treści
* Drukować utworzone przez siebie dokumenty
* Używać arkusza kalkulacyjnego Calc, wykonywać proste i złożone obliczenia
* Tworzyć wykresy
Podstawy obsługi komputera. Ilustrowany przewodnik. Wydanie IIWydawnictwo Helion
Poznaj swój komputer i wykorzystaj jego możliwości
* Połącz składniki zestawu
* Naucz się korzystać z systemu operacyjnego
* Przeszukaj zasoby Internetu
Kupiłeś wreszcie komputer. W pokoju piętrzy się stos pustych pudeł, a wyciągnięty z nich sprzęt wygląda tajemniczo i groźnie. Na tylnej ściance komputera znajduje się mnóstwo wtyczek, do których należy podłączyć bliżej niezidentyfikowane kable. Włączony komputer wydaje z siebie dziwne piski, a system operacyjny oczekuje podania nazwy użytkownika i hasła. Jeśli jesteś początkującym użytkownikiem komputera, na pewno teraz zastanawiasz się, co robić.
Dzięki książce "Podstawy obsługi komputera. Ilustrowany przewodnik. Wydanie II" ujarzmisz swój komputer i wykorzystasz go do pracy i rozrywki. Czytając ją, dowiesz się, w jaki sposób połączyć ze sobą składniki zestawu i zainstalować Windows Vistę. Poznasz dołączone do systemu operacyjnego narzędzia i nauczysz się korzystać z możliwości edytora tekstu Word 2007 oraz arkusza kalkulacyjnego Excel 2007. Przeczytasz także o internecie -- dowiesz się, jak wyszukiwać informacje na stronach WWW, wysyłać i odbierać pocztę elektroniczną oraz rozmawiać ze znajomymi za pomocą komunikatora Gadu-Gadu.
* Podłączenie do komputera klawiatury, myszy, monitora i urządzeń peryferyjnych
* Instalacja systemu operacyjnego
* Pliki i katalogi
* Konserwacja komputera
* Korzystanie z internetu -- strony WWW, poczta elektroniczna i Gadu-Gadu
* Dokumenty tekstowe i arkusze kalkulacyjne
Przekonanie, że programowanie w asemblerze odeszło w przeszłość wraz z opartymi na interfejsie tekstowym systemami w rodzaju DOS i upowszechnieniem się wysokopoziomowych języków programowania takich jak Visual Basic, C++ czy Java, jest błędne. Całkiem spora grupa osób nadal używa asemblera w środowisku Windows. Jeśli chcesz do nich dołączyć, znalazłeś właściwą książkę.
Asembler daje programiście poczucie ogromnej wolności i pełnego panowania nad sprzętem. Dzięki tej książce nauczysz się programować w tym języku, poznasz również cały zestaw aplikacji, które programowanie to ułatwią. W tekście książki znajdziesz wiele przykładów kodu ilustrujących najważniejsze omawiane zagadnienia.
Książka przedstawia:
* Podstawowe informacje związane z asemblerem: systemy kodowania, zapis liczb i znaków
* Rejestry i pamięć maszyny z punktu widzenia programisty asemblera, adresowanie
* Instrukcje asemblera i listę rozkazów procesora
* Programowanie z użyciem MASM -- Makro Asemblera
* Użycie programu NMAKE i tworzenie plików Makefile
* Programowanie w Windows: WinAPI
* Biblioteki DLL
* Technologie COM i OLE
* Zasoby programów Windows
Jeszcze jedna metoda tworzenia programów w Windows, która może zafascynować osoby lubiące "dłubanie w kodzie"? Dlaczego nie! Przeczytaj tę książkę, a sam będziesz mógł ocenić, czy asembler się zdewaluował.
Programowanie w Windows dla wtajemniczonych
* Poznaj język asembler dla procesorów Intel i kompatybilnych
* Naucz się używać Windows API z poziomu asemblera
* Poznaj narzędzia ułatwiające programowanie
Doskonały przewodnik po najnowszej wersji języka PHP
dla twórców dynamicznych serwisów WWW
Książka "PHP. Programowanie. Wydanie III" to kolejne wydanie praktycznego przewodnika dla programistów stron internetowych. Jeden z najlepszych programistów PHP -- Leon Atkinson, uczy wszystkiego, co potrzebujesz, by stworzyć dobrą i szybką aplikację sieciową. Dokładnie opisuje składnię PHP i kluczowe elementy języka. Atkinson przedstawia także najważniejsze funkcje PHP, w tym funkcje wejścia-wyjścia, przetwarzania danych, matematyczne, daty, czasu, konfiguracji, funkcje umożliwiające współpracę z bazami danych, funkcje graficzne i sieciowe. Prezentuje on również działanie PHP na przykładach realizujących sortowanie, przeszukiwanie, analizę łańcuchów i inne zadania.
Książka składa się z czterech części:
* wstępu do programowania,
* przewodnika po wszystkich funkcjach,
* przeglądu typowych problemów programistycznych
* części umożliwiającej zastosowanie zdobytej wiedzy przy tworzeniu witryn.
Pierwsza część zajmuje się kwestiami dotyczącymi wszystkich języków programowania: jak wygląda skrypt PHP, jak sterować przebiegiem programu i jak zarządzać danymi.
Część druga organizuje funkcje według ich zastosowania i zawiera przykłady ich zastosowania. PHP udostępnia bardzo dużo funkcji, dlatego część ta jest najobszerniejsza.
Część trzecia zajmuje się rozwiązywaniem typowych problemów programistycznych, takich jak sortowanie czy generowanie grafiki.
Ostatnia część udziela porad dotyczących tworzenia całych witryn sieciowych za pomocą PHP.
* Poznaj wzorce projektowe w PHP, techniki programowania obiektowego i możliwości wykorzystania języka XML
* Wykorzystaj nowe funkcje i możliwości PHP 5
* Napisz wydajne aplikacje internetowe, wykorzystując najlepsze praktyki inżynierii oprogramowania
Poznaj standardy i rozwiązania stosowane we współczesnych komputerach
* Określ odpowiednią dla siebie konfigurację komputera
* Dobierz właściwe podzespoły
* Dowiedz się, jakie prawa przysługują nabywcy
Dynamiczny rozwój rynku sprzętu i oprogramowania komputerowego ma swoje dobre i złe strony. Ceny są coraz niższe, a dostępność komponentów zestawów komputerowych wzrasta. Niestety -- właśnie to powoduje również, że na rynku pojawiają się firmy, które mamiąc klientów kolorowymi reklamami, oferują im sprzęt nie spełniający jakichkolwiek standardów. Samodzielny dobór komponentów również nie jest łatwym zadaniem -- ilość oznaczeń i skrótów, którymi posługują się producenci, dość skutecznie utrudnia dokonanie właściwego wyboru. Określenie odpowiedniej dla siebie konfiguracji wiąże się z koniecznością poznania obowiązujących standardów i rozwiązań stosowanych w komputerach.
Książka "Komputer PC. Poradnik kupującego" to przewodnik po współczesnym rynku komputerów. Po jego lekturze świadomie wybierzesz komputer dla siebie, określisz jego konfigurację, zrozumiesz, o czym mówi sprzedawca, i sprawdzisz, czy zakupiony sprzęt spełnia wymogi określone w zamówieniu. Czytając kolejne rozdziały, poznasz kluczowe komponenty zestawu komputerowego i najnowsze rozwiązania technologiczne stosowane przez ich producentów oraz dowiesz się, co oznaczają tajemnicze skróty umieszczane w ofertach i opisach sprzętu. Dzięki stosowanemu przez autora podziałowi na "tani komputer", "wydajny komputer" i "komputer marzeń" dobierzesz konfigurację komputera odpowiadającą Twoim potrzebom i możliwościom finansowym.
* Procesory i płyty główne
* Karty graficzne
* Pamięci i napędy dyskowe
* Odtwarzacze i nagrywarki CD/DVD
* Karty dźwiękowe i sieciowe
* Obudowy i zasilacze
* Monitory CRT i LCD
* Drukarki
* Systemy operacyjne Windows i Linux
Przeczytaj tę książkę, a żaden sprzedawca nie zaskoczy Cię reklamowymi frazesami.
Internet błyskawicznie wyewoluował od małej sieci łączącej ośrodki akademickie do ogólnoświatowego medium. Dzięki jego zasobom i możliwościom możemy odnaleźć informacje niemal na każdy temat, przesłać znajomym zdjęcia z wakacji, połączyć się z firmową siecią komputerową lub pograć w brydża z partnerami z innego kontynentu. Umiejętność korzystania z internetu stała się nieodłącznym atrybutem każdego, kto chce odnaleźć się we współczesnym świecie, w którym informacja jest najcenniejszym towarem.
Dzięki książce "Internet. Ilustrowany przewodnik" szybko i bezboleśnie wkroczysz w świat internetu. Dowiesz się, jak przygotować system Windows XP, aby korzystanie z sieci nie stanowiło zagrożenia dla Twojego komputera, oraz jak skonfigurować połączenia internetowe. Nauczysz się pracować z przeglądarkami internetowymi Internet Explorer i Mozilla Firefox. Poznasz możliwości wyszukiwarek internetowych i dowiesz się, w jaki sposób z nich korzystać. Przeczytasz również o tym, w jaki sposób wysyłać i odbierać pocztę elektroniczną oraz rozmawiać z przyjaciółmi za pomocą komunikatorów internetowych.
* Aktualizacja systemu Windows
* Konfiguracja zapory sieciowej
* Przeglądanie stron WWW za pomocą Internet Explorera i Firefoksa
* Zakładki i historia odwiedzanych stron
* Instalacja modułów plug-in i ActiveX
* Korzystanie z wyszukiwarek internetowych
* Zakładanie konta pocztowego
* Wysyłanie przesyłek e-mail
* Korzystanie z komunikatora
Opanuj umiejętności niezbędne członkowi społeczeństwa informacyjnego.
Java to wspaniałe narzędzie w rękach programisty. Ale nawet najlepsze narzędzie może zostać źle użyte. Istnieje wiele książek, które opisują ten język programowania, skupiając się na przedstawieniu jego składni. Ta książka jest zupełnie inna. Adresowana do osób znających już Javę, przedstawia 57 praktycznych zasad pisania efektywnego, poprawnego kodu.
Każda wskazówka to oddzielny podrozdział, przedstawiający opis problemu, przykłady poprawnego (i błędnego!) kodu, a także historie wzięte z doświadczenia autora. Dzięki książce zapoznasz się z idiomami właściwymi językowi Java oraz z istotnymi z praktycznego punktu widzenia wzorcami projektowymi.
Wskazówki dotyczą między innymi:
* Tworzenia i usuwania obiektów
* Pisania metod wspólnych dla wielu obiektów
* Klas i interfejsów
* Javowych odpowiedników konstrukcji znanych z C
* Pisania poprawnych metod
* Obsługi wyjątków
* Korzystania z wątków
* Serializacji obiektów
O autorze:
Joshua Bloch jest współautorem wielu bibliotek języka Java, takich jak Java Collections Framework i java.math, a także autorem licznych prac naukowych.
[więcej...]
Wykład mgr inż. Anny Predko-Maliszewskiej zaprezentowany na konferencji "Prawne i bioetyczne aspekty końca życia" VI edycji Podlaskiej Szkoły Medycyny Paliatywnej zorganizowanej przez Fundację PHO. (http://www.hospicjum.podlasie.pl/blog/konferencja-vi-edycji-podlaskiej-szkoy-medycyny-paliatywnej/)
* Prosimy uszanować prawa autorskie i dobre obyczaje w nauce przy wykorzystaniu informacji zawartych w prezentacji.
Naucz się łączyć największe zalety języków oraz technik programowania
i twórz interaktywne strony internetowe
* Jak unikać typowych błędów i sprawnie rozwiązywać problemy programistyczne?
* Jak połączyć zalety HTML, XML i PHP dla uzyskania pożądanych efektów?
* Jak tworzyć aplikacje wyposażone w aktywny interfejs użytkownika?
Statyczne strony WWW to dziś już przeszłość. Powszechnie dostępne narzędzia dają programistom prawie nieograniczone możliwości w zakresie tworzenia interaktywnych witryn internetowych, wzbogaconych o najróżniejsze efekty wizualne, animacje oraz wbudowane narzędzia pomocnicze. Największą popularność zdobyły sobie narzędzia z kategorii open source — z powodu ich minimalnego kosztu oraz niezwykle dużych zasobów, dostępnych za pośrednictwem Internetu. Z tej książki dowiesz się, jak tworzyć bogate i interaktywne strony WWW, łącząc rozmaite techniki i korzystając z różnych języków.
Książka "Ajax, JavaScript i PHP. Intensywny trening" poprowadzi Cię krok po kroku po podstawowych zasadach programowania w językach JavaScript, PHP i HTML oraz technologiach programowania. Dzięki temu podręcznikowi dowiesz się m.in., jak wykorzystywać dostępne biblioteki ajaksowe do implementowania i ulepszania podstawowych mechanizmów aplikacji. Szybko nauczysz się tworzyć interaktywne strony WWW, zarówno za pomocą technologii serwerowych, jak i technik oraz narzędzi umiejscowionych po stronie klienckiej, a także ich kombinacji.
* Tworzenie stron WWW w języku HTML
* Stylizacja stron za pomocą arkuszy CSS
* Tworzenie skryptów w języku JavaScript
* Wbudowanie skryptu w stronę WWW
* Obiektowy model dokumentu (DOM)
* Obiekty String
* Instrukcje warunkowe i pętle
* Funkcje wbudowane i biblioteki
* Konstruowanie aplikacji ajaksowych
* Zmienne w języku PHP
* Funkcje liczbowe, łańcuchy i tabele
* Kontrola przepływu sterowania
* Usługi webowe oraz protokoły REST i SOAP
Łącz, kompiluj, dobieraj — niech Twoje strony WWW zrobią wrażenie!
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIWydawnictwo Helion
Błyskawiczny kurs tworzenia dynamicznych serwisów internetowych
Dynamiczne strony WWW spotykamy codziennie, korzystając z internetu. Portale, sklepy internetowe, gry sieciowe -- wszystkie te witryny korzystają z baz danych i skryptów wykonywanych po stronie serwera. Technologii umożliwiających realizację tego typu witryn WWW jest kilka. Wśród nich zasłużoną popularnością cieszy się "duet" o ogromnych możliwościach -- język skryptowy PHP i baza danych MySQL. Te dostępne nieodpłatnie narzędzia wykorzystywane są przez tysiące twórców witryn WWW. Dołącz do nich!
Książka "PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II" to kolejna edycja doskonałego przewodnika po tajnikach tworzenia witryn internetowych za pomocą tych technologii. Znajdziesz w niej wszystkie informacje niezbędne do rozpoczęcia projektowania własnych dynamicznych stron WWW -- od podstaw programowania i korzystania z baz danych, poprzez wykorzystywanie sesji i plików cookie, aż do zaawansowanych technik autoryzowania użytkowników i budowania aplikacji e-commerce. Każde zagadnienie jest przedstawione na praktycznym przykładzie, co doskonale pomoże Ci w przyswojeniu wiedzy.
* Podstawowe elementy skryptów PHP
* Obsługa formularzy HTML
* Tworzenie i stosowanie funkcji
* Projektowanie baz danych
* Operacje na danych
* Wykrywanie i usuwanie błędów w skryptach
* Łączenie skryptów PHP z bazą danych
* Stosowanie plików cookie i mechanizmów zarządzania sesjami
* Zabezpieczanie i szyfrowanie danych
* Zarządzanie treścią strony
* Autoryzowanie użytkowników
* Projektowanie sklepów internetowych
Microsoft Office Word 2003 PL to najnowsza wersja zaawansowanego programu do edycji tekstów dla użytkowników systemu Windows. Teraz Word ma większe możliwości niż kiedykolwiek i pozwala swym użytkownikom tworzyć szeroką gamę dokumentów, począwszy od prostych, jednostronicowych listów, na wieloplikowych raportach z rysunkami, tabelami, spisami treści i indeksami skończywszy.
Ta książka nauczy Cię obsługi programu Word 2003 dzięki dużej ilości ilustracji, wskazówek i instrukcji "krok po kroku". Znajdziesz tu wszystko, co niezbędne, aby w krótkim czasie rozpocząć pracę z programem.
Poznasz:
* Warsztat pracy -- interfejs Worda 2003
* Podstawy pracy z dokumentami
* Proste i zaawansowane formatowanie tekstów
* Drukowanie dokumentów
* Narzędzia służące do sprawdzania pisowni i gramatyki
* Tworzenie tabel
* Wstawianie grafiki
* Automatyzację prac: spisy treści, indeksy, konspekty, korespondencja seryjna
* Tworzenie stron WWW w Wordzie
* Makrodefinicje
Dzięki spisowi treści, indeksowi i drukowanym zakładkom na marginesach nie będziesz miał kłopotu ze znalezieniem informacji, których potrzebujesz.
Jeżeli nigdy nie używałeś Worda lub może jesteś nowicjuszem w dziedzinie edycji tekstów, to "Po prostu Word 2003 PL" pozwoli ci osiągnąć wyższy stopień wtajemniczenia w dziedzinie edycji tekstów.
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
Poznaj możliwości iPhone’a!
* Jak rozpocząć pracę z iPhone’em?
* Jak wykorzystać możliwości przeglądarki Safari?
* Jak używać map?
Pojawienie się iPhone’a firmy Apple można bez wahania nazwać Rewolucją! Rewolucją przez duże "R". Nigdy wcześniej żaden nowy telefon nie wzbudził takich emocji. Nigdy wcześniej nie ustawiały się na wiele dni przed premierą kolejki pod salonami. Co sprawia, że ludzie szaleją za tym małym cudem techniki? Wielodotykowy (ang. multitouch) ekran, dostęp do tysięcy aplikacji, stabilny system operacyjny oraz elegancki, przykuwający uwagę wygląd to tylko niektóre z jego zalet.
Właśnie dzięki tej książce dowiesz się, co tak naprawdę potrafi Twój iPhone. Autor — niezawodny Scott Kelby — bez zbędnego zagłębiania się w szczegóły techniczne opowie Ci o możliwościach tego rewolucyjnego urządzenia. Zaprezentuje Ci m.in. sposoby wykonywania różnych operacji przy użyciu tego telefonu. Poznasz tajniki jego konfiguracji i synchronizacji z komputerem oraz metodę sprawdzania poziomu naładowania baterii. Nauczysz się wykorzystywać wszystkie możliwości przeglądarki Safari, czytnika poczty oraz terminarza. Dowiesz się również, jak odtwarzać klipy z YouTube, słuchać muzyki czy oglądać filmy. Książka ta jest zatem świetną pozycją zarówno dla początkującego użytkownika telefonu iPhone, jak również dla zaawansowanego — ten ostatni znajdzie tu informacje, które go zaskoczą i zachwycą! W końcu iPhone to zdolna i piękna bestia…
* Włączanie, usypianie, wyłączanie iPhone’a
* Wykorzystanie wbudowanego głośnika
* Obsługa ekranu
* Importowanie kontaktów
* Dodawanie numerów
* Połączenia konferencyjne
* Wyciszanie dzwonka
* Odbieranie i wysyłanie wiadomości e-mail
* Obsługa przeglądarki Safari
* Wykorzystanie kalendarza
* Odtwarzanie klipów z YouTube
* Używanie mapy
* Sprawdzanie prognozy pogody
* Importowanie i odtwarzanie muzyki
* Wykonywanie zdjęć
* Rozwiązywanie typowych problemów
Sprawdź, co potrafi Twój iPhone!
Lista nazwisk autorów wydrukowanych na okładce książki jest błędna. Autorem książki, pierwotnie wydanej w wydawnictwie "No Starch Press", jest Brian Ward. Za pomyłkę przepraszamy naszych klientów, wydawnictwo No Starch Press i Pana Briana Warda.
Jeśli chcesz poznać Linuksa "od środka" -- sięgnij po tę książkę
* Poznaj mechanizmy uruchamiania i pracy systemu
* Zobacz, jak realizowane są usługi systemowe i sieciowe
* Naucz się administrować Linuksem
Jeśli korzystasz z Linuksa, to na pewno nie trzeba opisywać Ci jego zalet. Bez wątpienia doceniasz jego stabilność i szybkość działania. Dzięki stale zwiększającej się liczbie aplikacji, komputer z zainstalowanym Linuksem można wykorzystać do pełnienia wielu funkcji – od domowej stacji roboczej, aż do serwera sieciowego. Aby jednak w pełni wykorzystać jego możliwości, musisz poznać jego wewnętrzne mechanizmy rządzące uruchamianiem systemu oraz obsługą sieci i urządzeń peryferyjnych, a także zasady administrowania jego zasobami.
Książka "Jak działa Linux" zawiera wszystkie informacje dotyczące wnętrza systemu Linux oraz zasad korzystania z niego. Przedstawia zarówno zagadnienia podstawowe -- przebieg procesu uruchamiania systemu i mechanizmy obsługi sieci, jak i tematy zaawansowane, związane z administracją systemem, jego współpracą z urządzeniami zewnętrznymi oraz programowaniem.
* Podstawy korzystania z Linuksa – polecenia, struktura plików i katalogów oraz dyski logiczne
* Przebieg procesu uruchamiania Linuksa
* Konfigurowanie i uruchamianie sieci i usług sieciowych
* Pisanie własnych programów w języku powłoki oraz w C++
* Kompilowanie programów
* Konserwacja jądra systemu
* Obsługa urządzeń peryferyjnych
* Tworzenie kopii bezpieczeństwa
Możliwości komercyjnych systemów operacyjnych nie odpowiadają Ci? Może Twój komputer nie spełnia minimalnych wymagań sprzętowych niezbędnych do ich uruchomienia? A może po prostu nie chcesz wydawać pieniędzy na licencjonowany system ani ryzykować używaniem wersji pirackiej? Skorzystaj z darmowej alternatywy! Zastosuj Linuksa. Popularność tego systemu operacyjnego, tworzonego i rozwijanego przez zapaleńców z całego świata, rośnie w lawinowym tempie. Linux już dawno przestał być zabawką dla pasjonatów -- teraz to w pełni funkcjonalny produkt, bezpieczny, stabilny i wygodny w obsłudze.
"Linux. Kurs. Wydanie II" to podręcznik, dzięki któremu poznasz i opanujesz możliwości tego systemu operacyjnego. Przedstawia on Mandrivę -- jedną z jego najpopularniejszych wersji, zwanych dystrybucjami. Czytając tę książkę, dowiesz się, jak zainstalować system i skonfigurować go. Nauczysz się korzystać z graficznego środowiska pracy, zarządzać kontami użytkowników i systemem plików, instalować i usuwać nowe aplikacje, nagrywać płyty CD i DVD oraz drukować. Przekonasz się także, że dołączony do Linuksa pakiet biurowy OpenOffice jest doskonałym narzędziem do edycji tekstów, przeprowadzania obliczeń i tworzenia baz danych. Ma również możliwość wymiany plików z popularnym, lecz komercyjnym MS Office.
* Pobieranie wersji instalacyjnej Linuksa
* Logowanie i korzystanie z terminala
* Praca ze środowiskiem graficznym
* Nagrywanie płyt CD i DVD
* Przeglądanie stron WWW
* Korzystanie z poczty elektronicznej
* Tworzenie grafiki za pomocą programu GIMP
* Redagowanie plików tekstowych za pomocą OpenOffice Writer
* Tworzenie arkuszy kalkulacyjnych za pomocą OpenOffice Calc
Przekonaj się, że nie musisz wydawać pieniędzy,
aby dysponować doskonałymi narzędziami do pracy.
Pakiet biurowy MS Office jest jednym z podstawowych narzędzi wykorzystywanych we współczesnych firmach. Zawarty w nim system zarządzania bazami danych Access to wygodna w obsłudze aplikacja służąca do operowania na zbiorach danych. Dzięki prostocie obsługi, sporym możliwościom i wizualnym narzędziom stanowi doskonałe rozwiązanie dla przedsiębiorstw, w których duże znaczenie ma czas poświęcany na opanowanie nowych programów. Kreatory i rozbudowany system pomocy oferowane przez Accessa niezwykle upraszczają proces tworzenia bazy oraz aplikacji przeznaczonych do obsługi zgromadzonych w niej danych.
W książce "Access w biurze i nie tylko" znajdziesz omówienie podstawowych możliwości tego systemu. Nauczysz się tworzyć i otwierać istniejące bazy danych oraz tworzyć nowe. Dowiesz się, w jaki sposób projektować tabele i jak dobierać typy danych dla poszczególnych kolumn tabeli. Przeczytasz o relacjach, poznasz sposoby wybierania i wstawiania danych, a także manipulowania nimi za pomocą kwerend. W kolejnych rozdziałach znajdziesz informacje o tworzeniu formularzy i raportów oraz wyświetlaniu wykresów na podstawie danych zgromadzonych w bazie. Nauczysz się także pisać własne makra i poznasz podstawy języka Visual Basic for Applications.
* Otwieranie istniejących baz danych
* Tworzenie tabel
* Typy danych
* Tworzenie i modyfikowanie relacji
* Manipulowanie danymi za pomocą kwerend
* Konstruowanie formularzy
* Budowanie raportów
* Automatyzacja pracy za pomocą makropoleceń
* Tworzenie i wyświetlanie wykresów
Dane to dziś najcenniejszy towar. Naucz się nim zarządzać.
Błyskawiczny kurs programowania aplikacji w języku C
Język C, mimo prawie 30-letniej historii, cieszy się niesłabnącą popularnością wśród programistów. Wszyscy jego użytkownicy cenią w nim prostą i czytelną składnię, niewielki i łatwy do zapamiętania zakres słów kluczowych oraz duże możliwości, dzięki którym za pomocą C można rozwiązać niemal każde zagadnienie programistyczne. Zewnętrzne biblioteki, dostępne w sieci oraz dołączane do najpopularniejszych narzędzi programistycznych, dodatkowo rozszerzają możliwości C.
Książka "Programowanie w języku C. Szybki start" to podręcznik dla tych, którzy chcą poznać C w praktyce i nie chcą przebijać się przez dziesiątki stron opisów teoretycznych. Każde zagadnienie -- od najprostszych, związanych ze strukturą programu i zasadami kompilacji aż do złożonych typów danych i obsługi plików zewnętrznych -- jest przedstawione w postaci bogato ilustrowanej sekwencji czynności. Wykonując kolejne przykłady z książki, poznasz wszystkie podstawowe wiadomości o programowaniu w języku C.
* Struktura programu w języku C
* Typy danych
* Sterowanie działaniem programu
* Korzystanie ze standardowego wejścia i wyjścia
* Deklarowanie i stosowanie funkcji
* Dyrektywy preprocesora
* Wskaźniki i zarządzanie pamięcią
* Obsługa plików
* Złożone typy danych
Poznaj zalety i możliwości najpopularniejszego języka programowania.
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
Rozpocznij przygodę z Visual C++!
* Jakie prawa rządzą programowaniem obiektowym?
* Jak tworzyć usługi systemowe?
* Jak dokumentować tworzony kod?
Microsoft Visual C++ jest zintegrowanym środowiskiem, pozwalającym na tworzenie aplikacji przy użyciu języków C, C++ lub C++/CLI. Zawiera ono wyspecjalizowane narzędzia, pomagające w wydajnym tworzeniu rozwiązań opartych o te języki. Pierwsza wersja Visual C++ została wydana w 1992 roku, a środowisko to jest bezustannie ulepszane. Najnowsze wydanie, z datą 2008, zostało opublikowane w listopadzie 2007 roku i wprowadziło wiele nowości — jak chociażby wsparcie dla technologii .NET 3.5. Niewątpliwie narzędzie firmowane przez giganta z Redmond jest jednym z najpopularniejszych, a używają go programiści z całego świata.
Dzięki tej książce również Ty możesz dołączyć do tego wybitnego grona. Po jej przeczytaniu będziesz miał wiedzę na temat środowiska programistycznego i platformy .NET. Poznasz podstawy programowania obiektowego, nauczysz się uzyskiwać dostęp do informacji zgromadzonych w bazach danych oraz korzystać z możliwości Internetu bezpośrednio w Twoich programach. Kolejne rozdziały przedstawiają interesujące tematy dotyczące obsługi wyjątków, programów wielowątkowych oraz sposobów tworzenia usług systemowych. Ostatni rozdział poświęcony został tak istotnej kwestii, jak dokumentowanie kodu — to czynność, o której wielu programistów zapomina. Jeżeli chcesz rozpocząć przygodę z Microsoft Visual C++, ta książka jest idealną lekturą dla Ciebie!
* Praca w zintegrowanym środowisku programistycznym
* Pojęcia związane z programowaniem obiektowym
* Uzyskiwanie dostępu do informacji zgromadzonych w bazach danych
* Wykorzystanie transakcji w pracy z danymi
* Sposoby integracji z siecią Internet
* Obsługa wyjątków
* Programowanie wielowątkowe
* Tworzenie grafiki oraz wykorzystanie multimediów
* Drukowanie w systemie Windows
* Tworzenie usług systemowych
* Dokumentowanie kodu programu
Wykorzystaj możliwości Microsoft Visual C++ 2008!
Poznaj i wykorzystaj strategie SEO, aby poprawić miejsce w rankingach swojej witryny
Skrót SEO (Search Engine Optimization) odnosi się do strategii takiego programowania i projektowania struktury witryny internetowej oraz dobierania jej treści, aby poprawić pozycję strony w wyszukiwarkach internetowych. Natomiast skrót SEM (Search Engine Marketing) określa płatne możliwości poprawienia miejsca strony w rankingach, takie jak linki sponsorowane. Kolejnym sposobem na pozycjonowanie, zdobywającym coraz większą rzeszę zwolenników, jest wykorzystanie intensywnie rozwijającego się zjawiska, jakim są media społeczne. Wszystkie te działania mają jeden wspólny cel - wzrost liczby odwiedzin na Twojej stronie WWW.
Książka "SEO optymalizacja wyszukiwania. Biblia" to kompletny podręcznik, który zaprezentuje Ci najskuteczniejsze praktyki, związane z optymalizacją stron internetowych pod kątem ich wyszukiwania. Dowiesz się między innymi, jak działają poszczególne wyszukiwarki. To pozwoli Ci zrozumieć, jakie czynniki powinieneś uwzględnić już przy projektowaniu struktury witryny. Nauczysz się automatyzować niektóre elementy optymalizacji, dobierać słowa kluczowe, opracowywać strategie dla linków sponsorowanych. Dowiesz się także, jak analizować efektywność swoich działań, aby na bieżąco monitorować skuteczność poszczególnych metod. Dzięki zdobytej tu wiedzy bez problemu zoptymalizujesz swoją stronę i zastosujesz skuteczne strategie pozycjonowania, zwiększając tym samym popularność witryny i generowane przez nią dochody!
* Tworzenie planu SEO
* Analiza wyszukiwarek
* Budowanie witryny dla SEO
* Zwiększanie efektywności słów kluczowych
* Narzędzia i serwisy dotyczące słów kluczowych
* Linki sponsorowane
* Znaczenie treści w strategii SEO
* Rola linków i linkowania
* Rejestrowanie witryny w indeksach wyszukiwarek i katalogach stron
* Optymalizacja w mediach społecznych
* Optymalizacja zautomatyzowana
* Oprogramowanie, narzędzia i zasoby SEO
Pozycjonowanie - najskuteczniejsza broń do walki z konkurencją w internecie!
>> U nas kupisz też licencję na Pajączka!
Pajączek jest najpopularniejszym polskim programem służącym do tworzenia stron WWW. Przeszedł on długą ewolucję: od prostego edytora pracującego w środowisku DOS do rozbudowanej aplikacji, wyposażonej w wiele zaawansowanych możliwości, które docenią zarówno profesjonaliści, jak i osoby traktujące tworzenie serwisów WWW jako hobby.
Bogactwo możliwości i narzędzi Pajączka może przyprawić o zawrót głowy. Po co sięgnąć i kiedy to zrobić? Od czego zacząć i jak zapanować nad kolejnymi etapami tworzenia dokumentów i serwisu? Jak zadbać o poprawność dokumentów? Książka "Po prostu Pajączek 5 NxG" w prosty i przystępny sposób udzieli odpowiedzi na te pytania. Znajdziesz w niej bogato ilustrowane, przedstawione krok po kroku omówienie najważniejszych funkcji Pajączka, a przy okazji poznasz wiele sztuczek przydatnych przy tworzeniu stron WWW.
Książka omawia:
* Wersje Standard i Professional Pajączka 5 NxG oraz różnice pomiędzy nimi
* Nowy interfejs Pajączka i ustawienia programu
* Tworzenie i edycję dokumentów, w tym import z innych programów i edycję bezpośrednio na serwerze
* Pracę z tekstem: formatowanie, style CSS, przeszukiwanie
* Tworzenie odnośników i kontrolę ich poprawności
* Formatowanie stron WWW za pomocą tabel i ramek
* Pracę z grafiką oraz zawarte w Pajączku narzędzia Konwerter plików graficznych i Kreator galerii grafik
* Łączenie stron WWW z plikami multimedialnymi
* Tworzenie formularzy na stronach WWW
* Szablony Pajączka
* Zarządzanie całym serwisem WWW za pomocą narzędzi dostępnych w Pajączku
"Po prostu Pajączek 5 NxG" omawia zarówno wersję Standard, jak i Professional programu Pajączek. Jest to doskonała lektura dla użytkowników poprzednich edycji programu, a także dla osób, które po raz pierwszy zetknęły się z tym programem. Po przeczytaniu tej książki z pewnością nie odłożysz jej na półkę -- wręcz przeciwnie, wielokrotnie skorzystasz z przedstawionych w niej rozwiązań najczęstszych problemów, z którymi spotyka się w swojej praktyce każdy webmaster.
Jak myślisz, ile można zarobić na stronie www?
* Nowe modele e-biznesu -- programy partnerskie, aukcje internetowe, e-mailing
* Zdobywanie popularności w sieci bez kosztownej reklamy
* Rozwijanie e-biznesu w zgodzie z przepisami o prawach autorskich i danych osobowych
Najlepszą rekomendacją tej książki jest sukces jej autora. W 2000 roku wydał on pierwszy numer magazynu CzasNaE-Biznes. Do dziś krąg odbiorców tego pisma poszerzył się ponad trzystukrotnie -- ze 150 do blisko 50 000 czytelników. Piotr Majewski doradza tysiącom Polaków, jak tworzyć rentowne serwisy internetowe. Wskazuje im nowe metody zarabiania przez sieć -- współpracę z dużymi serwisami www, e-mailing oraz prowadzenie pasaży i aukcji internetowych. W tej książce Majewski prezentuje solidną wiedzę o e-biznesie poszerzoną o wnioski zebrane przez setki ludzi, którzy skorzystali z jego doświadczenia... i nieźle na tym zarobili.
Jeśli jesteś człowiekiem czynu, gotowym połączyć swój pomysł, czas i pracę w jeden udany projekt e-biznesu, ta książka jest dla Ciebie. Dowiesz się z niej, jak:
* pozycjonować stronę www w wyszukiwarkach,
* stosować outsourcing (czyli co zlecić na zewnątrz przy zakładaniu e-biznesu),
* tworzyć nagłówki, hasła i nazwy produktów w sieci,
* zaplanować treść merytoryczną i oprawę wizualną strony www,
* redagować skuteczne e-maile reklamowe,
* kupować i stosować bazy adresowe.
Niech Twój e-biznes zarabia na Ciebie!
OpenOffice.org to darmowy pakiet oprogramowania biurowego. W jego skład wchodzą między innymi edytor tekstu Writer oraz arkusz kalkulacyjny Calc. OpenOffice.org obsługuje różne formaty plików, w tym formaty Microsoft Office i współpracuje z większością dostępnych na rynku platform (m.in. Solaris, Linux, FreeBSD i Windows). Nic więc dziwnego, że stanowi on doskonałą alternatywę dla komercyjnych pakietów aplikacji biurowych, takich jak Microsoft Office, zbliżając się do nich swoimi możliwościami, a bijąc je na głowę ceną.
Książka "OpenOffice. Ćwiczenia" ma na celu szybkie wprowadzenie do praktycznego wykorzystania tego pakietu. Znajdziesz w niej ćwiczenia, które krok po kroku pozwolą Ci opanować podstawowe funkcje wszystkich programów z tego pakietu.
Nauczysz się:
* Instalować OpenOffice
* Tworzyć dokumenty tekstowe za pomocą edytora Writer
* Formatować tekst, wstawiać ilustracje, tworzyć tabele i spisy treści
* Drukować utworzone przez siebie dokumenty
* Używać arkusza kalkulacyjnego Calc, wykonywać proste i złożone obliczenia
* Tworzyć wykresy
Podstawy obsługi komputera. Ilustrowany przewodnik. Wydanie IIWydawnictwo Helion
Poznaj swój komputer i wykorzystaj jego możliwości
* Połącz składniki zestawu
* Naucz się korzystać z systemu operacyjnego
* Przeszukaj zasoby Internetu
Kupiłeś wreszcie komputer. W pokoju piętrzy się stos pustych pudeł, a wyciągnięty z nich sprzęt wygląda tajemniczo i groźnie. Na tylnej ściance komputera znajduje się mnóstwo wtyczek, do których należy podłączyć bliżej niezidentyfikowane kable. Włączony komputer wydaje z siebie dziwne piski, a system operacyjny oczekuje podania nazwy użytkownika i hasła. Jeśli jesteś początkującym użytkownikiem komputera, na pewno teraz zastanawiasz się, co robić.
Dzięki książce "Podstawy obsługi komputera. Ilustrowany przewodnik. Wydanie II" ujarzmisz swój komputer i wykorzystasz go do pracy i rozrywki. Czytając ją, dowiesz się, w jaki sposób połączyć ze sobą składniki zestawu i zainstalować Windows Vistę. Poznasz dołączone do systemu operacyjnego narzędzia i nauczysz się korzystać z możliwości edytora tekstu Word 2007 oraz arkusza kalkulacyjnego Excel 2007. Przeczytasz także o internecie -- dowiesz się, jak wyszukiwać informacje na stronach WWW, wysyłać i odbierać pocztę elektroniczną oraz rozmawiać ze znajomymi za pomocą komunikatora Gadu-Gadu.
* Podłączenie do komputera klawiatury, myszy, monitora i urządzeń peryferyjnych
* Instalacja systemu operacyjnego
* Pliki i katalogi
* Konserwacja komputera
* Korzystanie z internetu -- strony WWW, poczta elektroniczna i Gadu-Gadu
* Dokumenty tekstowe i arkusze kalkulacyjne
Przekonanie, że programowanie w asemblerze odeszło w przeszłość wraz z opartymi na interfejsie tekstowym systemami w rodzaju DOS i upowszechnieniem się wysokopoziomowych języków programowania takich jak Visual Basic, C++ czy Java, jest błędne. Całkiem spora grupa osób nadal używa asemblera w środowisku Windows. Jeśli chcesz do nich dołączyć, znalazłeś właściwą książkę.
Asembler daje programiście poczucie ogromnej wolności i pełnego panowania nad sprzętem. Dzięki tej książce nauczysz się programować w tym języku, poznasz również cały zestaw aplikacji, które programowanie to ułatwią. W tekście książki znajdziesz wiele przykładów kodu ilustrujących najważniejsze omawiane zagadnienia.
Książka przedstawia:
* Podstawowe informacje związane z asemblerem: systemy kodowania, zapis liczb i znaków
* Rejestry i pamięć maszyny z punktu widzenia programisty asemblera, adresowanie
* Instrukcje asemblera i listę rozkazów procesora
* Programowanie z użyciem MASM -- Makro Asemblera
* Użycie programu NMAKE i tworzenie plików Makefile
* Programowanie w Windows: WinAPI
* Biblioteki DLL
* Technologie COM i OLE
* Zasoby programów Windows
Jeszcze jedna metoda tworzenia programów w Windows, która może zafascynować osoby lubiące "dłubanie w kodzie"? Dlaczego nie! Przeczytaj tę książkę, a sam będziesz mógł ocenić, czy asembler się zdewaluował.
Programowanie w Windows dla wtajemniczonych
* Poznaj język asembler dla procesorów Intel i kompatybilnych
* Naucz się używać Windows API z poziomu asemblera
* Poznaj narzędzia ułatwiające programowanie
Doskonały przewodnik po najnowszej wersji języka PHP
dla twórców dynamicznych serwisów WWW
Książka "PHP. Programowanie. Wydanie III" to kolejne wydanie praktycznego przewodnika dla programistów stron internetowych. Jeden z najlepszych programistów PHP -- Leon Atkinson, uczy wszystkiego, co potrzebujesz, by stworzyć dobrą i szybką aplikację sieciową. Dokładnie opisuje składnię PHP i kluczowe elementy języka. Atkinson przedstawia także najważniejsze funkcje PHP, w tym funkcje wejścia-wyjścia, przetwarzania danych, matematyczne, daty, czasu, konfiguracji, funkcje umożliwiające współpracę z bazami danych, funkcje graficzne i sieciowe. Prezentuje on również działanie PHP na przykładach realizujących sortowanie, przeszukiwanie, analizę łańcuchów i inne zadania.
Książka składa się z czterech części:
* wstępu do programowania,
* przewodnika po wszystkich funkcjach,
* przeglądu typowych problemów programistycznych
* części umożliwiającej zastosowanie zdobytej wiedzy przy tworzeniu witryn.
Pierwsza część zajmuje się kwestiami dotyczącymi wszystkich języków programowania: jak wygląda skrypt PHP, jak sterować przebiegiem programu i jak zarządzać danymi.
Część druga organizuje funkcje według ich zastosowania i zawiera przykłady ich zastosowania. PHP udostępnia bardzo dużo funkcji, dlatego część ta jest najobszerniejsza.
Część trzecia zajmuje się rozwiązywaniem typowych problemów programistycznych, takich jak sortowanie czy generowanie grafiki.
Ostatnia część udziela porad dotyczących tworzenia całych witryn sieciowych za pomocą PHP.
* Poznaj wzorce projektowe w PHP, techniki programowania obiektowego i możliwości wykorzystania języka XML
* Wykorzystaj nowe funkcje i możliwości PHP 5
* Napisz wydajne aplikacje internetowe, wykorzystując najlepsze praktyki inżynierii oprogramowania
Poznaj standardy i rozwiązania stosowane we współczesnych komputerach
* Określ odpowiednią dla siebie konfigurację komputera
* Dobierz właściwe podzespoły
* Dowiedz się, jakie prawa przysługują nabywcy
Dynamiczny rozwój rynku sprzętu i oprogramowania komputerowego ma swoje dobre i złe strony. Ceny są coraz niższe, a dostępność komponentów zestawów komputerowych wzrasta. Niestety -- właśnie to powoduje również, że na rynku pojawiają się firmy, które mamiąc klientów kolorowymi reklamami, oferują im sprzęt nie spełniający jakichkolwiek standardów. Samodzielny dobór komponentów również nie jest łatwym zadaniem -- ilość oznaczeń i skrótów, którymi posługują się producenci, dość skutecznie utrudnia dokonanie właściwego wyboru. Określenie odpowiedniej dla siebie konfiguracji wiąże się z koniecznością poznania obowiązujących standardów i rozwiązań stosowanych w komputerach.
Książka "Komputer PC. Poradnik kupującego" to przewodnik po współczesnym rynku komputerów. Po jego lekturze świadomie wybierzesz komputer dla siebie, określisz jego konfigurację, zrozumiesz, o czym mówi sprzedawca, i sprawdzisz, czy zakupiony sprzęt spełnia wymogi określone w zamówieniu. Czytając kolejne rozdziały, poznasz kluczowe komponenty zestawu komputerowego i najnowsze rozwiązania technologiczne stosowane przez ich producentów oraz dowiesz się, co oznaczają tajemnicze skróty umieszczane w ofertach i opisach sprzętu. Dzięki stosowanemu przez autora podziałowi na "tani komputer", "wydajny komputer" i "komputer marzeń" dobierzesz konfigurację komputera odpowiadającą Twoim potrzebom i możliwościom finansowym.
* Procesory i płyty główne
* Karty graficzne
* Pamięci i napędy dyskowe
* Odtwarzacze i nagrywarki CD/DVD
* Karty dźwiękowe i sieciowe
* Obudowy i zasilacze
* Monitory CRT i LCD
* Drukarki
* Systemy operacyjne Windows i Linux
Przeczytaj tę książkę, a żaden sprzedawca nie zaskoczy Cię reklamowymi frazesami.
Internet błyskawicznie wyewoluował od małej sieci łączącej ośrodki akademickie do ogólnoświatowego medium. Dzięki jego zasobom i możliwościom możemy odnaleźć informacje niemal na każdy temat, przesłać znajomym zdjęcia z wakacji, połączyć się z firmową siecią komputerową lub pograć w brydża z partnerami z innego kontynentu. Umiejętność korzystania z internetu stała się nieodłącznym atrybutem każdego, kto chce odnaleźć się we współczesnym świecie, w którym informacja jest najcenniejszym towarem.
Dzięki książce "Internet. Ilustrowany przewodnik" szybko i bezboleśnie wkroczysz w świat internetu. Dowiesz się, jak przygotować system Windows XP, aby korzystanie z sieci nie stanowiło zagrożenia dla Twojego komputera, oraz jak skonfigurować połączenia internetowe. Nauczysz się pracować z przeglądarkami internetowymi Internet Explorer i Mozilla Firefox. Poznasz możliwości wyszukiwarek internetowych i dowiesz się, w jaki sposób z nich korzystać. Przeczytasz również o tym, w jaki sposób wysyłać i odbierać pocztę elektroniczną oraz rozmawiać z przyjaciółmi za pomocą komunikatorów internetowych.
* Aktualizacja systemu Windows
* Konfiguracja zapory sieciowej
* Przeglądanie stron WWW za pomocą Internet Explorera i Firefoksa
* Zakładki i historia odwiedzanych stron
* Instalacja modułów plug-in i ActiveX
* Korzystanie z wyszukiwarek internetowych
* Zakładanie konta pocztowego
* Wysyłanie przesyłek e-mail
* Korzystanie z komunikatora
Opanuj umiejętności niezbędne członkowi społeczeństwa informacyjnego.
Java to wspaniałe narzędzie w rękach programisty. Ale nawet najlepsze narzędzie może zostać źle użyte. Istnieje wiele książek, które opisują ten język programowania, skupiając się na przedstawieniu jego składni. Ta książka jest zupełnie inna. Adresowana do osób znających już Javę, przedstawia 57 praktycznych zasad pisania efektywnego, poprawnego kodu.
Każda wskazówka to oddzielny podrozdział, przedstawiający opis problemu, przykłady poprawnego (i błędnego!) kodu, a także historie wzięte z doświadczenia autora. Dzięki książce zapoznasz się z idiomami właściwymi językowi Java oraz z istotnymi z praktycznego punktu widzenia wzorcami projektowymi.
Wskazówki dotyczą między innymi:
* Tworzenia i usuwania obiektów
* Pisania metod wspólnych dla wielu obiektów
* Klas i interfejsów
* Javowych odpowiedników konstrukcji znanych z C
* Pisania poprawnych metod
* Obsługi wyjątków
* Korzystania z wątków
* Serializacji obiektów
O autorze:
Joshua Bloch jest współautorem wielu bibliotek języka Java, takich jak Java Collections Framework i java.math, a także autorem licznych prac naukowych.
[więcej...]
Wykład mgr inż. Anny Predko-Maliszewskiej zaprezentowany na konferencji "Prawne i bioetyczne aspekty końca życia" VI edycji Podlaskiej Szkoły Medycyny Paliatywnej zorganizowanej przez Fundację PHO. (http://www.hospicjum.podlasie.pl/blog/konferencja-vi-edycji-podlaskiej-szkoy-medycyny-paliatywnej/)
* Prosimy uszanować prawa autorskie i dobre obyczaje w nauce przy wykorzystaniu informacji zawartych w prezentacji.
Odpowiedzi na pytania, których baliście się zadać GIODO.
Prezentacja wykorzystywana w trakcie warsztatów prowadzonych na
E-Commerce Workshop (http://ecws.pl/) 28.06.2014.
Jeśli prowadzisz jakąkolwiek działalność on-line, wcześniej czy później ten temat przyprze Cię do muru. Rodzi wiele kontrowersji, a specjaliści prześcigają się w coraz to nowszych interpretacjach przepisów. Czy na pewno wiesz, jak radzić sobie z danymi osobowymi w sklepie internetowym, mediach społecznościowych, czy na zwykłej stronie www?
Chcesz zorganizować prezentację lub szkolenie związane z tym tematem? Zapraszam!
This document summarizes Articles 17 and 18 of the Constitution of India. Article 17 abolishes untouchability and forbids its practice, making it a punishable offense. It aims to abolish longstanding social inequalities. Article 18 prohibits the acceptance or conferment of titles, except for academic or military honors, in order to promote equality among citizens. It also regulates the acceptance of foreign titles and honors by Indian citizens and public officials. Both articles aim to establish social equality and prohibit longstanding practices of discrimination.
The document discusses 5 major film studios - 20th Century Fox, Warner Bros, Universal Pictures, Lionsgate, and Hammer Productions. It analyzes each studio's experience producing horror films, finding that Warner Bros and Hammer Productions have the most success and experience within the horror genre. Based on this research, the author concludes that Hammer Productions would be the best choice to produce their new horror film, due to Hammer's specialization and experience with the genre.
C++ to popularny i uniwersalny język programowania. Jednak po dłuższym stosowaniu programiści zaczynają zauważać pewne jego niedoskonałości i ograniczenia. System typów, sposób działania niektórych kompilatorów, związki pomiędzy wskaźnikami i tablicami, nieprzewidziane w standardzie zachowania obiektów statycznych i bibliotek dynamicznych to tylko niektóre z nich. Aby je obejść, należy wykorzystywać wiele bardzo zaawansowanych i nieznanych wielu programistom metod.
Książka "Język C++. Gotowe rozwiązania dla programistów" to podręcznik dla tych programistów C++, którzy zaczęli już dostrzegać ograniczenia tego języka i zastanawiają się, jak sobie z nimi poradzić. Autor pokazuje sposoby ujarzmienia złożoności języka i uzyskania pełnej kontroli nad kodem. Przedstawia najpoważniejsze wady C++ i sposoby rozwiązywania powodowanych przez nie problemów. Opisuje również metody tworzenia stabilniejszego, bardziej uniwersalnego, wydajniejszego i łatwiejszego w pielęgnacji kodu.
* Wymuszanie założeń projektowych
* Cykl życia obiektów
* Hermetyzacja zasobów, danych i typów
* Modele dostępu do obiektów
* Obsługa wątków
* Korzystanie z obiektów statycznych
* Konwersja danych i typów
* Zarządzanie pamięcią
* Sterowanie działaniem kompilatora
Wszyscy programiści, niezależnie od stopnia zaawansowania, znajdą w tej książce wiadomości, które usprawnią i przyspieszą ich pracę.
Programowanie w Prologu różni się zasadniczo od programowania w językach strukturalnych, takich jak Pascal czy C i językach obiektowych jak Java. Dla wielu osób zaczynających przygodę z Prologiem zaskoczeniem jest fakt, że pisanie programu w tym języku nie polega na kodowaniu algorytmu. Programista opisuje obiekty i związki między nimi, a także podaje warunki, jakie powinno spełniać szukane rozwiązanie. System sam przeprowadza obliczenia w oparciu o podane zależności logiczne, zaś programista jedynie częściowo może wpływać na sposób działania programu.
Książka "Prolog. Programowanie" to podręcznik tego niezwykłego języka programowania stosowanego przy rozwiązywaniu problemów z różnych dziedzin: od logiki matematycznej i symbolicznego rozwiązywania równań przez analizę języka naturalnego, aż do zagadnień związanych ze sztuczną inteligencją. Zawiera ona:
* Wprowadzenie do Prologu
* Podstawowe struktury danych
* Nawracanie, sterowanie nawracaniem za pomocą symbolu odcięcia
* Operacje wejścia/wyjścia
* Predykaty
* Składnię reguł gramatycznych i analizę języka naturalnego
* Wiele przykładowych programów
Wszystkim rozdziałom towarzyszą ćwiczenia. Uzupełnieniem tekstu książki są dodatki omawiające m.in. rozwiązania ćwiczeń i różnice między najważniejszymi wersjami Prologu.
"Prolog. Programowanie" to książka dla studentów matematyki i informatyki, a także dla wszystkich zainteresowanych programowaniem opartym na regułach logicznych. Jeśli chcesz podjąć wyzwanie i nauczyć się Prologu, jest książka dla Ciebie.
Visual Studio 2005. Programowanie z Windows API w języku C++Wydawnictwo Helion
Napisz własne aplikacje dla systemu Windows
* Jak tworzyć okna, menu i elementy graficzne?
* W jaki sposób zarządzać zasobami aplikacji?
* Jak budować aplikacje wielowątkowe?
System operacyjny to nie tylko środowisko, w którym możemy uruchamiać zainstalowane programy - to także źródło zasobów dla programów tworzonych przez nas samych. Każda aplikacja dla systemu Windows, w której można znaleźć ikony, okna dialogowe, paski przewijania i inne powszechnie znane elementy, korzysta z bibliotek zwanych Windows API - zestawu funkcji ułatwiających zaprogramowanie określonych komponentów. Dzięki zastosowaniu Windows API możemy umieszczać w naszych aplikacjach typowe dla systemu operacyjnego składniki interfejsu użytkownika i moduły wykorzystujące urządzenia zewnętrzne.
Książka „Visual Studio 2005. Programowanie z Windows API w języku C++” to podręcznik, dzięki któremu poznasz metody tworzenia programów dla systemu operacyjnego Windows. Nauczysz się korzystać z systemowego API w celu zaimplementowania w aplikacji mechanizmów interfejsu użytkownika, wyświetlania elementów graficznych i obsługiwania przetwarzania wielowątkowego. Dowiesz się, jak wykorzystywać zasoby programowe, budować biblioteki statyczne i biblioteki DLL, obsługiwać mysz i klawiaturę oraz mierzyć czas. Przeczytasz o tym, jak działają aplikacje dla systemu Windows, i zdobędziesz wiedzę niezbędną do tego, by tworzyć własne!
* Tworzenie okien i umieszczanie w nich tekstów oraz elementów graficznych
* Korzystanie z GDI
* Wyświetlanie map bitowych
* Tworzenie bibliotek statycznych
* Obsługa klawiatury i myszy
* Zarządzanie zasobami aplikacji
* Budowanie okien dialogowych
* Korzystanie z kontrolek
* Obsługa wielozadaniowości i wielowątkowości
Poznaj techniki i metody tworzenia aplikacji dla systemu operacyjnego Windows.
Praktyczne rozwiązania dla zaawansowanych programistów
Do tworzenia wydajnych programów nie wystarczy teoretyczna wiedza o algorytmach, strukturach danych i inżynierii oprogramowania. Istnieje pokaźna liczba sztuczek, sprytnych technik i praktycznych rozwiązań, których znajomość jest niezbędna każdemu programiście.
Niniejsza książka zawiera pokaźny zestaw technik, które pomogą zaoszczędzić sporo czasu. Techniki te zostały opracowane przez twórców kodu poszukujących eleganckich i wydajnych sposobów tworzenia lepszego oprogramowania. W "Uczcie programistów" doświadczony programista Hank Warren dzieli się z Czytelnikami znanymi sobie sztuczkami, które zgromadził wraz z imponującym doświadczeniem w dziedzinie programowania aplikacji i systemów operacyjnych. Większość z tych sztuczek jest niezwykle praktyczna, niektóre zostały przedstawione jako ciekawostki lub zaskakujące rozwiązania. Ich zestawienie stanowi niesamowitą kolekcję, która będzie pomocna nawet dla najbardziej doświadczonych programistów w rozszerzeniu ich umiejętności.
W książce opisano następujące zagadnienia:
* Obszerna kolekcja użytecznych sztuczek programistycznych
* Drobne algorytmy rozwiązujące często spotykane problemy
* Algorytmy kontroli przekroczenia ograniczeń
* Zmiana kolejności bitów i bajtów
* Dzielenie całkowite i dzielenie przez stałe
* Elementarne operacje na liczbach całkowitych
* Kod Gray"a
* Krzywa Hilberta
* Formuły wyznaczania liczb pierwszych
Niniejsza książka jest doskonałą pozycją dla wszystkich programistów, którzy mają zamiar tworzyć wydajny kod. "Uczta programistów" nauczy Cię tworzenia aplikacji wysokiej jakości -- wyższej niż wymagana na uczelniach i kursach programowania.
Kompletny przewodnik po języku asemblera
Asembler, mimo że jest zdecydowanie trudniejszy w nauce niż języki programowania wysokiego poziomu, jest wśród programisów bardzo popularny. Tworzone w nim programy są mniejsze, zajmują mniej pamięci i miejsca na dysku, a przede wszystkim działają szybciej. Opracowano język HLA, dzięki któremu programowanie w asemblerze przebiega płynnie i polega na analizie implementacji poszczególnych, wysokopoziomowych konstrukcji, znanych z języków takich jak C, C++ czy Pascal.
Książka "Asembler. Sztuka programowania" to podręcznik programowania w języku asemblera oparty na języku HLA. Opisuje 32-bitową architekturę procesorów Intel oraz zasady tworzenia programów w języku HLA. Przedstawia sposoby pisania, kompilacji i uruchamiania programów wykorzystujących różne, nawet najbardziej złożone typy danych.
* Wprowadzenie do języka HLA
* Sposoby reprezentacji danych
* Organizacja pamięci i tryby adresowania
* Typy danych
* Podział programu na procedury i moduły
* Sterowanie wykonaniem programu
* Instrukcje arytmetyczne
* Operacje na plikach
* Operacje bitowe i łańcuchowe
* Makrodefinicje
* Klasy i obiekty
* Połączenie asemblera z programami w innych językach
Przekonaj się, jak prosty jest język asemblera.
Usuń luki w zabezpieczeniach programów i systemów operacyjnych
* Poznaj przyczyny powstawania luk
* Naucz się sposobów włamań do systemów
* Podejmij odpowiednie środki zapobiegawcze
Niemal co tydzień dowiadujemy się o nowych "łatach" usuwających luki w zabezpieczeniach systemów operacyjnych i programów. Niestety -- często, zanim łata zostanie rozpowszechniona i zainstalowana na komputerach, ktoś wykorzysta "dziurę" w systemie i włamie się do niego. Cóż więc zrobić, aby zabezpieczyć swoje dane przez atakiem hakera? Jak znaleźć słabe punkty zabezpieczeń i usunąć je? W jaki sposób zaimplementować odpowiednie zabezpieczenia w tworzonym przez siebie oprogramowaniu?
Książka "The Shellcoder’s handbook. Edycja polska" zawiera odpowiedzi na wszystkie te pytania. Książka będąca efektem pracy zespołu złożonego ze specjalistów w zakresie bezpieczeństwa systemów komputerowych, analityków i hakerów przedstawia sposoby wykrywania słabych punktów oprogramowania tworzonego w języku C i sprawdzenia możliwości ich wykorzystania. Opisuje luki w istniejących systemach i programach oraz sposoby ich zabezpieczenia. Zawarte w niej wiadomości pozwolą na tworzenie własnych systemów wykrywania błędów i pomogą ustalić, czy błędy te stanowią potencjalne zagrożenie.
* Podstawowe metody włamań do różnych systemów operacyjnych
* Techniki przepełniania stosu, wykorzystywania kodu powłoki i błędów łańcuchów formatujących
* Kontrola słabych punktów programów metodami wstrzykiwania kodu i fuzzingu
* Kontrola kodu źródłowego programów
* Klasy błędów
* Sposoby śledzenia słabych punktów
* Analiza kodu binarnego
* Tworzenie eksploitów
* Ataki na systemy zarządzania bazami danych
Nie dopuść do tego, aby Twoje programy padły ofiarą ataku hakera.
Teoria i praktyka prowadzenia projektów programistycznych
* Naucz się zasad programowania ekstremalnego i zastosuj je w praktyce
* Od konceptualizacji do przekazania działającego systemu -- poznaj najlepsze sposoby pracy na każdym etapie tworzenia oprogramowania
* Poznaj znaczenie wszystkich uczestników procesu tworzenia oprogramowania: programistów, menedżerów i klientów
* Dowiedz się, jak rozwiązać najczęstsze problemy powstające przy wdrażaniu metodologii programowania ekstemalnego
"eXtreme programming" przedstawia nową metodologię i praktykę programowania w przystępny, a jednocześnie kompleksowy sposób. Autorzy omawiają podstawowe pojęcia programowania ekstremalnego: planowanie edycji, programowanie w parach, wczesne testowanie, "zręczne modelowanie" i refaktoryzację. Zostały one zaprezentowane na przykładzie konkretnego projektu, którego realizację omówiono w książce.
Kto powinien przeczytać tę książkę? Będzie ona niewątpliwie pożyteczną lekturą dla każdego, kto choć częściowo związał swe życie z tworzeniem oprogramowania -- programisty, menedżera czy koordynatora projektu. I nawet gdyby miało skończyć się tylko na czytaniu -- bez praktycznego zastosowania w najbliższym projekcie poznanych reguł, wiedza o programowaniu ekstremalnym okaże się bez wątpienia pożyteczna.
* Naucz się zasad programowania ekstremalnego i zastosuj je w praktyce
* Od konceptualizacji do oddania działającego systemu -- poznaj najlepsze sposoby pracy na każdym etapie tworzenia programowania
* Poznaj znaczenie wszystkich uczestników procesu tworzenia oprogramowania: programistów, menedżerów i klientów
* Dowiedz się, jak rozwiązać najczęstsze problemy powstające przy wdrażaniu metodologii programowania ekstemalnego
Tajniki tworzenia programów dla systemu Windows w asemblerze
* Poznaj narzędzia programistyczne
* Napisz programy wykorzystujące Windows API
* Wykryj i usuń błędy z programów asemblerowych
Pisanie programów w asemblerze przez długi czas kojarzyło się z systemem MS-DOS. Teraz asembler powoli odzyskuje straconą pozycję języka programowania dla systemu Windows. Wśród wielu zalet asemblera można wymienić: bezpośredni dostęp do procesora, zwarty i niewielki kod wynikowy oraz możliwości trudne do uzyskania za pomocą języków wysokiego poziomu. Asembler jest niezbędny przy tworzeniu sterowników dla urządzeń zewnętrznych, a korzystanie z niego uczy myślenia algorytmicznego, od którego języki obiektowe stopniowo odzwyczajają programistów.
Książka "Asembler. Podręcznik programisty" to kompendium wiedzy dotyczącej pisania programów dla systemu Windows w języku asemblera. Znajdziesz w niej opisy narzędzi programistycznych i sposoby korzystania z procedur Windows API. Nauczysz się tworzyć programy dla Windows -- od najprostszych, wykorzystujących konsolę, aż do skomplikowanych aplikacji z interfejsem graficznym. Dowiesz się, jak korzystać z narzędzi do wykrywania i usuwania błędów, a także poznasz zasady stosowania asemblera w połączeniu z językami wysokiego poziomu.
* Narzędzia programistyczne dla systemu Windows
* Wywoływanie funkcji Windows API
* Programy działające w trybie tekstowym
* Tworzenie i wykorzystywanie zasobów
* Praca z systemem plików
* Tworzenie bibliotek DLL
* Programowanie sieciowe
* Wykorzystywanie asemblera w językach wysokiego poziomu
* Turbo Debugger
* Tworzenie sterowników
Odkryj nieznane obszary programowania -- poznaj język asemblera
Wszystko, czego potrzebujesz, aby tworzyć wydajny, elastyczny i bezbłędny kod!
* Jaki edytor wybrać?
* Jak działają systemy kontroli wersji?
* Jak zapewnić wysoką wydajność oraz bezbłędne działanie tworzonych rozwiązań?
Programista, jak każdy fachowiec, posiada perfekcyjnie dobrany zestaw narzędzi, pozwalający mu na szybkie, wygodne, elastyczne i - co najważniejsze - optymalne rozwiązywanie postawionych problemów. Wybranie odpowiednich narzędzi i skomponowanie ich zbioru zabiera często wiele dni, miesięcy, a nawet i lat. A przecież my, programiści, nie mamy aż tyle czasu! Koniecznie trzeba znaleźć jakiś szybszy sposób!
Najlepszą odpowiedzią na ten problem jest właśnie niniejsza książka. Dzięki niej opanujesz sposoby pobierania i instalacji różnych narzędzi, a nowo nabyta wiedza na temat sposobów zarządzania pakietami w różnych dystrybucjach na pewno nie pójdzie na marne. W kolejnych rozdziałach poznasz przebieg procesu kompilacji oraz dowiesz się, jak interpretować poszczególne błędy i ostrzeżenia. John Fusco omawia tu także edytory Vim oraz Emacs - ale nie wskazuje, który z nich jest lepszy! Dzięki książce "Linux. Niezbędnik projektanta" wykorzystanie systemów kontroli wersji nie będzie stanowiło dla Ciebie najmniejszego problemu. Na kolejnych stronach szczegółowo omawiane są zasady funkcjonowania jądra systemu oraz sposób działania procesów i komunikacji między nimi. Lektura kolejnych rozdziałów dostarczy Ci niezbędnych informacji na temat zapewniania wysokiej wydajności tworzonych rozwiązań oraz metod diagnozowania problemów z oprogramowaniem.
* Zdobywanie i instalacja oprogramowania open source
* Proces kompilacji kodu źródłowego
* Zarządzanie pakietami w różnych dystrybucjach
* Interpretacja komunikatów o błędach i ostrzeżeń
* Edytory plików tekstowych
* Wykorzystanie systemów kontroli wersji
* Funkcjonowanie jądra systemu operacyjnego Linux
* Wykorzystanie procesów
* Komunikacja między procesami
* Diagnozowanie problemów z komunikacją pomiędzy procesami
* Zwiększanie wydajności tworzonych rozwiązań
* Wykrywanie problemów w napisanym oprogramowaniu
Wejdź w świat programowania w języku asemblera
* Dowiedz się, kiedy użycie asemblera jest niezbędne
* Poznaj zasady programowania w asemblerze
* Napisz szybkie i wydajne programy dla DOS-a i Windows
* Zdobądź wiedzę o zasadach działania procesora i pamięci
Uważasz, że możliwości języków programowania wysokiego poziomu nie pozwalają na napisanie programu, którego potrzebujesz? Chcesz stworzyć sterownik, program rezydentny, demo lub... wirusa? Interesuje Cię, co dzieje się w komputerze podczas wykonywania programu?
Wykorzystaj potencjał asemblera!
Programowanie w języku niskiego poziomu daje niemal nieograniczoną kontrolę nad sprzętem i działaniem aplikacji. Programy napisane w języku asemblera działają szybko, są niewielkie i zajmują mało pamięci. Są bardzo wydajne i otwierają dostęp do takich obszarów komputera, do których dostęp z poziomu C++ czy Visual Basica jest niemożliwy.
Książka "Praktyczny kurs asemblera" wprowadzi Cię w świat programowania w tym języku. Dowiesz się, jak działa procesor, w jaki sposób komunikuje się z pamięcią i pozostałymi elementami komputera. Poznasz typy rozkazów procesora, tryby adresowania i zasady tworzenia programów w asemblerze. Lepiej poznasz swój komputer i dowiesz się, w jaki sposób zapamiętuje i przetwarza dane. Komputer przestanie być dla Ciebie "czarną skrzynką" wykonującą w czarodziejski sposób Twoje polecenia.
* Podstawowe wiadomości o architekturze procesorów Intel
* Organizacja pamięci i tryby adresowania
* Omówienie listy rozkazów procesora
* Narzędzia do tworzenia programów w języku asemblera
* Struktura programu w asemblerze
* Definiowanie zmiennych
* Tworzenie podprogramów i makrorozkazów
* Wykorzystanie funkcji BIOS-a oraz MS-DOS
* Programy w asemblerze uruchamiane w systemie Windows
* Optymalizacja kodu
* Tworzenie modułów dla innych języków programowania
Po przeczytaniu tej książki przestaniesz postrzegać asemblera jako zbiór magicznych zaklęć, zrozumiałych jedynie dla brodatych guru pamiętających jeszcze czasy komputerów zajmujących powierzchnię sali gimnastycznej. Napiszesz programy, których uruchomienie nie będzie wymagało od użytkownika posiadania superkomputera. Poznasz wszystkie, nawet najgłębiej ukryte, możliwości komputera.
Czy informatyka jest dla Ciebie dziedziną wiedzy równie tajemniczą jak kabała lub indiańska magia? Tak właśnie postrzega ją wielu ludzi, którzy nie mieli dotychczas kontaktu z komputerami. Tymczasem komputer to nic innego jak tylko narzędzie, które można opanować tak samo jak wszystkie inne. Wymaga to jedynie odrobiny cierpliwości i praktyki -- jak każda nauka.
"Windows XP PL. Ilustrowany przewodnik" to książka, dzięki której przestaniesz traktować komputer jak magiczną skrzynkę robiącą dość dziwne rzeczy -- w dodatku nie wiadomo dlaczego i jak. Poznasz Windows XP, a ponieważ obsługa systemu operacyjnego jest właściwie równoznaczna z obsługą komputera -- nauczysz się korzystać z peceta! Dowiesz się, jak dostosować wygląd Windows XP do własnych wymagań i używać różnych jego funkcji i narzędzi. Nauczysz się drukować pliki, pobierać zdjęcia z aparatu cyfrowego oraz korzystać z poczty elektronicznej i WWW. Co więcej -- może nawet zaczniesz rozumieć dowcipy dla informatyków.
* Podstawy obsługi Windows XP
* Pliki, foldery i kosz
* Porządkowanie pulpitu
* Aplikacje dołączone do systemu
* Korzystanie z Panelu sterowania
* Drukowanie
* Sieci i internet
* Multimedia
Po przeczytaniu tej książki przestaniesz traktować informatyków jak przybyszów z innej planety, przełamiesz lęk przed komputerem i przekonasz się, że korzystanie z niego wcale nie wymaga nadprzyrodzonych zdolności.
Core Java Servlets i JavaServer Pages. Tom II. Wydanie IIWydawnictwo Helion
Kompletny przewodnik po zaawansowanych mechanizmach oraz funkcjach serwletów i JSP.
* Jak kontrolować działanie aplikacji za pośrednictwem pliku deskryptora?
* Jakie są możliwości rozbudowy systemu zabezpieczeń?
* Jak można wykorzystać obsługę zdarzeń?
Platforma Java 2 jest najczęściej wykorzystywaną technologią do budowy komercyjnych aplikacji internetowych, dynamicznych witryn WWW oraz aplikacji i usług sieciowych. Jej podstawą są serwlety i strony JSP, które są obsługiwane — przy użyciu komponentów wbudowanych lub dodatkowych — na praktycznie wszystkich serwerach WWW, a jednocześnie stanowią połączenie między klientami internetowymi i aplikacjami działającymi na serwerze.
Tom II prezentuje zaawansowane narzędzia i techniki służące do tworzenia rozbudowanych i wysoko wydajnych aplikacji. Opisano w nim mechanizmy kontroli działania aplikacji za pomocą pliku web.xml, możliwości rozszerzenia systemu zabezpieczeń metodami deklaratywnymi i programistycznymi, a także sposoby używania filtrów serwletów i JSP. Przedstawiono tu także opis funkcji rzadziej używanych, lecz niezwykle przydatnych podczas tworzenia złożonych programów.
Książka „Core Servlets i Java Server Pages. Tom II. Technologie zaawansowane. Wydanie drugie” to wyczerpujący podręcznik dla programistów znających już podstawy technologiczne serwletów i stron JSP, którzy chcą poznać i wykorzystać ich zaawansowane możliwości.
Tom I zawiera szczegółowy opis serwletów i stron JSP, w tym nagłówki HTTP, pliki cookie, mechanizm śledzenia sesji, elementy skryptowe JSP, dołączanie plików, architekturę Model-Widok-Kontroler (MVC) i język wyrażeń JSP. Znajdziesz tam także opis formularzy HTML, JDBC oraz najlepsze praktyki projektowania i implementowania aplikacji.
Wykorzystaj wszystkie możliwości serwletów i stron JSP, aby tworzyć profesjonalne aplikacje!
* Deskryptor wdrożenia
* Zabezpieczenia programistyczne i deklaratywne
* Filtry serwletów i stron JSP
* Model i obsługa zdarzeń
* Własne biblioteki znaczników
* Platforma Apache Struts
Wkrocz w świat projektowania 3D
* Jak definiować parametry projektu?
* W jaki sposób korzystać z narzędzi projektowych?
* Jak generować dokumentację techniczną?
Inventor, opracowany i sprzedawany przez firmę Autodesk, to program typu CAD, pozwalający na zamodelowanie projektowanego urządzenia lub elementu w postaci bryły trójwymiarowej. W oparciu o tak zamodelowaną bryłę Inventor umożliwia wygenerowanie pełnej dokumentacji projektowej — rysunków wykonawczych i złożeniowych, wykazu części i innych. Aplikacja pozwala także na przeprowadzenie symulacji i analizy działania projektowanego urządzenia.
"Inventor. Pierwsze kroki " to podręcznik dla wszystkich osób, które chcą poznać możliwości tej aplikacji i wykorzystać je w swojej pracy. Książka opisuje proces instalacji i konfiguracji programu oraz definiowania parametrów projektu. Pokazuje także kolejne kroki jego realizacji. Przeczytasz w niej o tworzeniu szkiców, definiowaniu wiązań, generowaniu modeli bryłowych i tworzeniu zespołów. Dowiesz się także, w jaki sposób wygenerować dokumentację techniczną w oparciu o gotowy model oraz jak zaprezentować elementy projektu w postaci animacji trójwymiarowej.
* Instalacja Inventora
* Konfiguracja interfejsu użytkownika
* Praca z oknami dialogowymi
* Tworzenie szkiców i wiązań
* Edycja obiektów graficznych
* Tworzenie brył trójwymiarowych
* Łączenie elementów w zespoły
* Tworzenie dokumentacji technicznej
* Prezentacja zespołów
Zrealizuj swoje wizje za pomocą Inventora!
Poznaj potężne możliwości języka Visual Basic i twórz zaawansowane aplikacje
* Jak pisać zaawansowane programy?
* Jak dobierać kontrolki do zadań?
* Jak dzielić program na mniejsze części?
Visual Basic jest niezwykle wydajnym językiem, pozwalającym na tworzenie zaawansowanych aplikacji, m.in. dzięki wykorzystywaniu jednego z najpotężniejszych środowisk programistycznych, jakie kiedykolwiek powstały — Visual Studio. Środowisko to udostępnia narzędzia takie, jak edytory graficzne czy funkcja automatycznego uzupełniania, które sprawiają, że budowa aplikacji staje się intuicyjna i znacznie sprawniejsza. Najnowsza wersja tego języka — Visual Basic 2008 — oferuje także opcje formularzy XAML i nowe kontrolki, a ponadto z aplikacją zintegrowano SQL Server 2005 Compact Edition, dzięki czemu pojawiło się wbudowane wsparcie dla języka LINQ w komunikacji z bazą danych.
Książka „Visual Basic 2008. Warsztat programisty” jest doskonałym podręcznikiem zarówno dla początkujących, jak i zaawansowanych programistów. Zawiera ona opis technologii i środowiska programistycznego, a także wiele przykładów i porad z dokładnie przedstawionym oraz przetestowanym kodem, zgodnym z wersją 2008 tego języka. Przykłady te pozwalają dogłębnie zrozumieć wszelkie jego zawiłości. Z książki dowiesz się, jak korzystać z formularzy i kontrolek oraz zwiększać funkcjonalność istniejących klas i obsługiwać błędy. Nauczysz się rysować obrazy przy użyciu interfejsu urządzenia graficznego, a także stosować wiele różnych obiektów, aby budować zaawansowane i nowoczesne aplikacje.
* Edytor kodu Visual Basic
* Struktura programu i modułu
* Typy danych, zmienne i stałe
* Operatory
* Procedury i funkcje
* Instrukcje sterujące
* Obsługa błędów
* Składnia zapytań i funkcje LINQ
* Tworzenie niestandardowych kontrolek
* Tworzenie nazw i klasy kolekcyjne
* Grafika i tekst
* Przetwarzanie obrazów
* Drukowanie i raportowanie
* Obiekty systemu plików
* Windows Communication Foundation
Bądź profesjonalistą — szlifuj swój warsztat programisty!
Master Thesis - Comparative analysis of programming Environments based on Rub...Adam Skołuda
In this thesis, we analyzed technologies for creating web applications, using Ruby and JavaScript. Were chosen two tools for creating frontend and three responsible for the backend. The main emphasis has been on a comparison of selected tools. The preface provides background information to the problem, presents the purpose and division of work. This also explains the motivation to take the topic of work and arrangement of chapters. The theoretical introduction describes the essential issues of web application architecture, the understanding of which is crucial for the realization of the theme. Description of the technology is an important chapter, which describes the selected libraries. These chapters lead to the multivariate analysis. This chapter is a comparison of selected tools, aimed to identify the best in each category. At the end, there is a summary of the work carried out, the conclusions of the study, as well as a subjective assessment of examined technologies. It also takes a polemic about the future direction of web applications.
Wyzwól swój twórczy potencjał
-- projektuj z programem CorelDraw X3 PL
* Poznaj możliwości CorelDraw X3 PL
* Naucz się korzystać ze wszystkich dostępnych narzędzi
* Daj upust swojej kreatywności i twórz niezwykłe projekty!
CorelDraw to jeden z najbardziej znanych i lubianych programów graficznych. Słynie z łatwości obsługi i ogromnej różnorodności zastosowań. Można wykorzystywać go na wiele różnych sposobów: do projektowania plakatów i reklam, szyldów i wizytówek, tworzenia rysunków technicznych, a nawet dokumentów tekstowych. Jednak z uwagi na to, że jego działanie jest oparte na innych zasadach niż działanie konkurencyjnych programów, nauka obsługi CorelDraw wymaga trochę czasu. Jeśli chcesz skrócić go do minimum, powinieneś mieć tę książkę.
Książka "CorelDraw X3 PL. Kurs" w sposób jasny i przejrzysty wprowadzi Cię w świat CorelDraw X3 PL, czyli trzynastej już wersji programu. W tym podręczniku każde kolejne działanie -- od instalacji na dysku do używania najbardziej wyrafinowanych narzędzi -- zostało dokładnie i szczegółowo opisane oraz zobrazowane. Stąd możesz dowiedzieć się, jak otwierać i zapisywać dokumenty, dodawać i modyfikować obiekty, stosować kolorowe wypełnienia, wstawiać tekst i używać efektów specjalnych. Proponowany tu kurs pozwoli Ci swobodnie i bez żadnego problemu tworzyć świetne projekty w tym programie.
Nauczysz się:
* Instalować i uruchamiać CorelDraw X3 PL
* Otwierać, zapisywać i drukować rysunki
* Wstawiać, rysować i wypełniać kolorem obiekty
* Kopiować, modyfikować, grupować obiekty
* Wpisywać i formatować tekst
* Stosować wypełnienia i krzywe Beziera
* Używać linijek i dynamicznych prowadnic
* Wykorzystywać efekty specjalne
Książki wydawnictwa z serii "Kurs" adresowane są do początkujących użytkowników komputerów, którzy chcą w krótkim czasie nabyć praktyczne umiejętności przydatne w karierze zawodowej i codziennej pracy. Napisane przystępnym językiem i bogato ilustrowane są wspaniałą pomocą w samodzielnej nauce.
* Przeznaczone dla początkujących
* Praktyczne zadania omówione krok po kroku
* Przystępny i zrozumiały język
* Liczne ilustracje
* Idealny do samodzielnej nauki
Odkryj CorelDraw X3 PL -- i zacznij projektować z przyjemnością
Asembler dla procesorów Intel. Vademecum profesjonalistyWydawnictwo Helion
Chociaż świat programowania nieodwołalnie zdominowany jest przez języki wyższego poziomu (takie jak C, C++ czy Java), znajomość asemblera jest nadal wysoko ceniona. Użycie języka maszynowego pozwala na pisanie niezwykle wydajnych programów, odwołujących się bezpośrednio do sprzętu, wykorzystujących w 100% możliwości hardware"u.
Książka "Asembler dla procesorów Intel. Vademecum profesjonalisty" to kompletny przewodnik po języku programowania najpopularniejszej rodziny procesorów. Możesz ją traktować jako podręcznik asemblera lub jako kompendium wiedzy, do którego zawsze będziesz mógł się odwołać, gdy zajdzie taka potrzeba. Znajdziesz w niej informacje dotyczące:
* architektury mikroprocesorów i zestawu rozkazów procesorów z rodziny Intel 80x86
* dyrektyw, makr i operatorów języka asembler oraz podstawowej struktury programu
* metodologii programowania oraz sposobów użycia języka asembler do tworzenia narzędzi systemowych i aplikacji
* sposobów pracy z urządzeniami sprzętowymi
* interakcji między programem napisanym w języku asembler, systemem operacyjnym a innymi aplikacjami
* śledzenia przebiegu wykonania programu za pomocą debugera
Oprócz krótkich przykładów książka "Asembler dla procesorów Intel. Vademecum profesjonalisty" zawiera 75 gotowych do uruchomienia programów, które realizują koncepcje prezentowane w tekście. Znajdujące się na końcu książki dodatki stanowią przewodniki po przerwaniach MS-DOS i mnemonikach kodu maszynowego.
Przystępny kurs programowania dla wszystkich
* Poznaj najpopularniejsze języki programowania
* Zorganizuj sobie pracę przy tworzeniu aplikacji
* Napisz własny program
* Przetestuj aplikacje i usuń błędy
Mimo dynamicznego rozwoju informatyki wśród większości użytkowników komputerów nadal istnieje przekonanie, że programowanie jest zajęciem dla wybrańców posiadających ogromną i niemal tajemną wiedzę. Tymczasem pisanie programów to umiejętność, którą może opanować każdy. Oczywiście nauka programowania wymaga poznania wielu zagadnień teoretycznych i praktycznych, ale nie wymaga od osoby uczącej się żadnych niezwykłych umiejętności. Każdy może poznać zasady pisania programów, zarówno dla celów hobbystycznych, jak i zawodowych.
Książka "Programowanie. Od podstaw" to podręcznik programowania przeznaczony dla osób, które dopiero rozpoczynają swoją komputerową przygodę. Zawiera uniwersalne wiadomości przydatne każdemu programiście niezależnie od tego, co i w jakim języku będzie tworzyć. Czytając ją, poznasz wady i zalety różnych języków programowania, sposoby realizacji typowych zadań programistycznych i metody testowania aplikacji. Dowiesz się, jak komputery przechowują informacje, jakie systemy liczbowe wykorzystuje się w programowaniu i jakie narzędzia będą Ci potrzebne podczas pracy. Zdobędziesz solidne podstawy, które pozwolą Ci na dalsze rozwijanie swoich umiejętności.
* Sposób interpretacji kodu źródłowego przez komputer
* System binarny i szesnastkowy
* Warsztat pracy programisty
* Komentarze w kodach programów
* Definiowanie zmiennych
* Instrukcje warunkowe
* Testowanie i usuwanie błędów
* Projektowanie interfejsów użytkownika
* Operacje na plikach
* Wykorzystywanie rejestru Windows
* Zarządzanie wersjami kodu
* Kompilacja
Przekonaj się, że programowanie nie jest trudne.
Wykorzystaj pełnię możliwości baz danych
* Na czym polega model relacyjny?
* W jaki sposób pobierać dane z bazy?
* Jak projektować bazy danych i tabele?
Systemy zarządzania bazami danych to aplikacje, które spotkać można praktycznie w każdej firmie.
Na rynku dostępnych jest wiele takich narzędzi, różniących się od siebie wydajnością, wymaganiami sprzętowymi, potencjalnymi zastosowaniami i - przede wszystkim — ceną. Użytkownicy mogą wybierać zarówno wśród rozwiązań komercyjnych, jak i nieustępujących im rozwiązań bezpłatnych. Cechą łączącą wszystkie systemy zarządzania bazami danych jest język, na którym opiera się praca z nimi - SQL. To ustandaryzowany zbiór poleceń pozwalających na niemal dowolne manipulacje danymi zgromadzonymi w bazach, tworzenie nowych baz oraz administrowanie serwerami baz danych. Bez jego znajomości wykorzystanie pełni możliwości bazy danych jest praktycznie niemożliwe.
„Praktyczny kurs SQL” to książka, dzięki której poznasz ten język. Czytając ją, dowiesz się, czym jest relacyjność w bazach danych, jak skonstruowane są takie bazy i czym są postaci normalne. Nauczysz się pobierać dane w oparciu o różne kryteria, przetwarzać uzyskane wyniki i wyświetlać je na ekranie w odpowiedni sposób. Poznasz funkcje pozwalające na modyfikację istniejących i dodawanie nowych danych, zastosujesz zapytania złożone i podzapytania oraz wykorzystasz mechanizmy transakcji. Przeczytasz także o projektowaniu baz danych oraz definiowaniu i nadawaniu uprawnień do korzystania z nich.
* Modele baz danych
* Postaci normalne w modelu relacyjnym
* Historia języka SQL
* Pobieranie danych za pomocą instrukcji SELECT
* Dobór kryteriów wybierania
* Przetwarzanie wyników zapytań
* Zapytania złożone i podzapytania
* Transakcje
* Modyfikowanie i dodawanie danych
* Projektowanie baz danych
* Uprawnienia
Uzupełnieniem do książki jest udostępniona tutaj baza danych.
Poznaj w praktyce język będący podstawą wszystkich nowoczesnych systemów zarządzania bazami danych.
Język C# został opracowany w firmie Microsoft i wywodzi się z rodziny C/C++, choć zawiera również wiele elementów znanych programistom Javy, jak na przykład mechanizmy automatycznego odzyskiwanie pamięci. Łączy więc w sobie wszystko to, co najlepsze w Javie i C++, a dodatkowo pozwala na wygodne korzystanie z klas wchodzących w skład platformy .NET.
Dzięki książce "C#. Ćwiczenia" nauczysz się programować w C# niezależnie od tego, czy znasz już C++ lub Javę. Kilkadziesiąt ćwiczeń pozwoli Ci poznać język C# od podstaw po zagadnienia zaawansowane. Zaletą książki jest zwięzły i przystępny opis prezentowanych zagadnień i nastawienie na praktykę programistyczną, a nie na rozważania teoretyczne.
Poznasz:
* Środowisko uruchomieniowe C# i Visual Studio
* Zmienne, operatory i typy danych
* Instrukcje C#
* Podstawy programowania obiektowego, tworzenie klas, metod i konstruktorów
* Użycie tablic w C#
* Obsługę błędów za pomocą wyjątków
* Interfejsy i rzutowanie
* Obsługę zdarzeń
* Korzystanie z komponentów interfejsu użytkownika Windows
Similar to Czytanie kodu. Punkt widzenia twórców oprogramowania open source (20)
Windows Movie Maker dołączany do systemu Windows XP to doskonałe narzędzie do domowego montażu cyfrowych filmów wideo. Jest prosty w obsłudze, posiada spore możliwości, a montaż filmów za jego pomocą jest przyjemną zabawą. Movie Maker pozwala na przeniesienie klipów z kamery cyfrowej, zaimportowanie materiałów z dysku, rozmieszczenie ujęć i połączenie ich przejściami, a także udźwiękowienie i dodanie efektów specjalnych. Gotowy film można wysłać pocztą elektroniczną, zapisać na dysku lub płycie CD albo opublikować w internecie.
Książka "Tworzenie filmów w Windows XP. Projekty" przedstawia proces tworzenia filmu wideo. Opisuje kolejne kroki prowadzące do zmontowania cyfrowego filmu wideo z przechwyconych ujęć i zaimportowanych materiałów. Nie znajdziesz w niej jednak długich opisów i dziesiątek parametrów. Każde zagadnienie jest przedstawione za pomocą zrzutów ekranu i krótkich instrukcji. Dzięki temu w ciągu kilku godzin zrealizujesz swój pierwszy projekt w Movie Makerze.
* Elementy interfejsu użytkownika
* Przechwytywanie klipów z kamery wideo
* Import materiałów źródłowych
* Tworzenie wstępnego montażu
* Dodawanie przejść i efektów specjalnych
* Nakładanie plansz tytułowych i napisów
* Udźwiękowienie filmu
* Korzystanie z funkcji Autofilm
* Eksport zmontowanego filmu
Przekonaj się, jak proste może być tworzenie własnych filmów wideo.
Przedstaw się światu!
* Jak zbudować elegancką stronę z blogiem?
* Jak tworzyć wyspecjalizowane przeglądarki bloga?
* Jak dodawać do własnego serwisu blogowego kanał RSS?
Prowadzenie bloga to nowy sposób na zwiększenie aktywności społecznej - szansa na zaistnienie w rzeczywistości wirtualnej, mająca swoje odbicie w tak zwanym „prawdziwym życiu”. Dlatego blogi piszą dziś niemal wszyscy: politycy, marketingowcy, celebryci, biznesmeni. Forma publicznie dostępnego pamiętnika pozwala na szeroką prezentację własnych poglądów, przekonań czy wartości. Z tego powodu blogi wykorzystywane są też jako wortale poświęcone określonej tematyce, promujące idee lub produkty. Ich użytkownicy stworzyli nawet własną społeczność, która 31 sierpnia obchodzi swoje święto - Dzień Bloga. Już dziś możesz do nich dołączyć!
„Blog, więcej niż internetowy pamiętnik” to książka, która pokaże Ci, jak założyć i prowadzić własny blog, a także aktywnie korzystać z innych blogów. Dowiesz się z niej, jak skorzystać z oprogramowania obsługującego serwisy blogowe, jak zintegrować języki PHP, HTML, CSS i SQL, aby stworzyć elegancką stronę prezentującą Twój blog. Nauczysz się budować własną bazę danych, przeznaczoną do przechowywania wpisów, a także zabezpieczać ją przed niepowołanymi modyfikacjami. I wreszcie poznasz sposób na dodanie do własnego serwisu kanału RSS, aby czytelnicy na bieżąco mogli obserwować pojawianie się nowych wpisów. Znajdziesz tu wszystko, czego potrzebujesz, aby zaprezentować światu swój blog!
* Obsługa okna tworzenia bloga
* Modyfikowanie wyglądu bloga
* Publikowanie w określonym terminie
* Rozbudowa bloga
* Instalacja czytnika RSS
* Subskrybowanie blogów za pomocą RSS
* Instalacja oprogramowania własnego serwera
* Baza danych i modyfikacja danych
* Projektowanie struktury bloga
* Zakładanie konta użytkownika
* Zakładanie bazy danych i tabeli danych
* Nadawanie uprawnień do korzystania z tabeli
* Przygotowanie szablonu i tworzenie strony www
* Automatyzowanie, blokowanie i trwałe usuwanie wpisu
* Tworzenie formularza wyszukiwania
* Tworzenie kanału RSS i wypełnianie go treścią
* Pobieranie programu Weber
Blog to prosty i fascynujący sposób, aby świat dowiedział się o Twoim istnieniu!
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
Zapewnij swojej witrynie miejsce w pierwszej dziesiątce!
* Jak działają wyszukiwarki?
* Jaki wpływ na pozycję serwisu mają linki przychodzące i wychodzące?
* Czy istnieją zagrożenia związane z niewłaściwym pozycjonowaniem?
Stworzenie serwisu WWW to dopiero połowa sukcesu w Internecie. Druga połowa to zapewnienie witrynie odpowiedniej popularności. A tę popularność może zagwarantować przede wszystkim wysokie miejsce w wynikach wyszukiwarek. Jak to osiągnąć? Od czego zacząć i jak monitorować skuteczność prowadzonych działań? Wszystkie odpowiedzi znajdziesz właśnie w tej książce!
Poprzez liczne przykłady i ćwiczenia autorzy zapoznają Cię ze sposobem działania wyszukiwarki Google i zasadami doboru właściwych słów kluczowych. Pokażą, jak najlepiej rozmieścić je na stronie. Ponadto dowiesz się, jaki wpływ na pozycję strony mają linki wychodzące oraz przychodzące, jak przebiega proces indeksowania strony, jak działają systemy wymiany linków oraz jak wykorzystać statystyki do obserwacji ruchu na stronie. Przeczytasz także o tym, jakie zagrożenia niesie ze sobą niewłaściwa procedura pozycjonowania.
* Sposób działania Google oraz innych wyszukiwarek
* Definiowanie fraz i słów kluczowych
* Wpływ linków przychodzących i wychodzących na pozycję strony
* Korzystanie z systemów wymiany linków
* Proces indeksacji witryny
* Zagrożenia związane z niewłaściwym pozycjonowaniem
* Wykorzystanie statystyk do śledzenia ruchu na stronie
* Sposoby reklamowania serwisu
Zwiększ oglądalność swojej witryny WWW!
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
Lustereczko, powiedz przecie,
kto jest najwspanialszy w necie?
* Tworzenie i wykorzystywanie odpowiedniego wizerunku oraz zarabianie na nim
* Budowanie pożądanych marek bez wielkich nakładów finansowych
* Interaktywne relacje z klientami
* Wykorzystanie Internetu do rozwoju biznesu
* Narzędzia kreowania wizerunku w sieci
Jak Cię widzą (w sieci), tak Cię piszą
Internet jest nie tylko rewolucyjnym medium, pierwszym o naprawdę masowym zasięgu działania. Stanowi on przede wszystkim fascynujący alternatywny świat. Działa jak magnes, co roku przyciągając nowych użytkowników. Niczym używka, wciąż odnotowuje wydłużenie czasu kontaktu z odbiorcą. I last but not least — Internet to niekończący się pasaż handlowy, wymarzone miejsce spotkań podaży i popytu.
Poznaj specyfikę światowej sieci WWW i znajdź w niej właściwe miejsce dla Twojej marki. E-marketing rządzi się własnymi prawami — z jednej strony bezustannie stawia firmy przed nowymi wyzwaniami, z drugiej zaś stale kreuje nowe narzędzia dotarcia do klienta. A są one naprawdę fascynujące: możliwość dowolnej personalizacji przekazu, olbrzymia ilość kanałów, a przede wszystkim atrakcyjne społeczności — ludzie młodzi, aktywni, hobbyści, biznesmeni oraz entuzjaści nowinek. Mogą oni zostać ambasadorami Twojej marki, ale mogą też ją zniszczyć. Dlatego musisz poznać zasady rządzące Internetem i jego społecznościami, a następnie zacząć budować instrumenty wywierania wpływu i wykorzystać je dla dobra Twojego produktu.
Internet ma przyszłość!
* Czym jest e-wizerunek i jak wpływa na sukces firm, produktów i ludzi?
* Narzędzia budowania image’u — strona WWW, fora internetowe, newslettery i inne.
* Sześć zasad skutecznego kreowania e-wizerunku.
* Grzechy główne działań internetowych.
* Marka jako efekt przemyślanej strategii wizerunkowej.
* Case studies
Uwiecznij świat, jakiego nie znałeś!
* Jaki sprzęt jest potrzebny do makrofotografii?
* Jak uzyskać duże powiększenia?
* Jak komponować efektowne zdjęcia?
Wiele osób nie zwraca uwagi na niepozorne, małe elementy otaczającego nas świata. Czyż nie warto pokazać im, co tracą? Wykonanie dobrego zdjęcia w skali makro to wyzwanie, ale zachwyt na twarzach oglądających jest wart wszelkich poświęceń. Właśnie dzięki makrofotografii można ujrzeć cudowny świat, niezauważalny na co dzień. Magiczny świat szczegółów!
Autor książki "Makrofotografia. Magia szczegółu " przedstawia ten temat w sposób przejrzysty i systematyczny. Dzięki tej publikacji zdobędziesz informacje dotyczące sprzętu potrzebnego do wykonania makrofotografii oraz sposobu kompozycji zdjęcia. Poznasz zagadnienia związane z właściwym doborem ostrości, a także takie pojęcia, jak głębia ostrości, długość ogniskowej, jasność obiektywu i wiele innych. Pozwolą Ci one na swobodne poruszanie się po świecie makrofotografii. Ponadto poszerzysz swoją wiedzę odnośnie doboru właściwego oświetlenia oraz programów odpowiednich do obróbki wykonanych zdjęć. Niewątpliwym atutem tej książki są pytania i zadania kontrolne, które pozwolą Ci zweryfikować zdobyte umiejętności. Jeżeli chcesz uwiecznić otoczenie w makrofotografii, ta pozycja będzie dla Ciebie nieocenionym źródłem informacji, a może nawet twórczej inspiracji!
* Sprzęt konieczny do wykonania makrofotografii
* Sposoby na uzyskanie dużych powiększeń
* Komponowanie zdjęć
* Zasady doboru kadru
* Uzyskiwanie właściwej ostrości
* Ograniczenia ostrości
* Dobór właściwego oświetlenia
* Metody pomiaru światła
* Doświetlanie zdjęć
* Narzędzia do edycji zdjęć
Odsłoń na fotografiach całe piękno szczegółu!
Naucz się korzystać z nowoczesnych narzędzi PowerShella
i usprawniaj żmudne zadania administracyjne!
* Jak skonfigurować środowisko PowerShella?
* Jak tworzyć aplety poleceń i jak ich używać?
* Jak korzystać z potoku danych?
Windows PowerShell to innowacyjne narzędzie do zarządzania systemem i przetwarzania skryptów dla serwerów oraz klientów pod kontrolą Windows. Charakterystyczną cechą tego interpretera poleceń jest obiektowa logika, która sprawia, że wynikiem każdego polecenia jest obiekt określonego typu. Dodatkowo wszystkie funkcje dostępne przez API systemu są możliwe do wywołania z poziomu PowerShella. Dzięki swojej uniwersalności oraz nowoczesnym narzędziom interpreter ten zapewnia spójny oraz jasny mechanizm zarządzania, oparty na wierszu poleceń i niewymagający od użytkownika dużej wiedzy programistycznej.
Książka "Windows PowerShell. Podstawy" zawiera dokładny opis innowacyjnej architektury PowerShella, zasad pisania skryptów oraz możliwości korzystania z podstawowych interfejsów systemowych: COM, WMI, ADSI i ADO.NET, a także obszerny zbiór opisów rozwiązań konkretnych zadań administracyjnych. Korzystając z tego przewodnika, poznasz funkcje i narzędzia PowerShella. Nauczysz się również korzystać z obiektowego potoku danych i zarządzać procesami, dziennikami zdarzeń oraz wpisami rejestru. Dzięki zawartej tu wiedzy z pewnością usprawnisz i zautomatyzujesz wszelkie czasochłonne zadania administracyjne, by móc swobodnie stosować PowerShell jako podstawową konsolę do codziennej pracy.
* Aplety poleceń
* Przetwarzanie potokowe
* Potoki danych
* Uniwersalny model nawigacji
* Definiowanie dysków
* Język skryptów PowerShella
* Tablice asocjacyjne
* Praca ze skryptami
* Różnicowanie reakcji na błędy
* Biblioteki klas
* Narzędzia PowerShella
* Zarządzanie użytkownikami i grupami w Active Directory
* Bazy danych
* Zaawansowane operacje dostępu do danych
PowerShell skróci czas Twojej pracy!
Poznaj specyfikę języka Java i zostań mistrzem programowania
* Jak korzystać z bibliotek języka Java?
* Jak pisać funkcjonalny i klarowny kod?
* Jak stworzyć profesjonalny i efektowny program?
Język Java jest językiem obiektowym z dziedziczeniem jednobazowym. Wewnątrz każdej metody korzysta on ze zorientowanego na instrukcje stylu kodowania. Aby dobrze poznać jakikolwiek język, należy nauczyć się posługiwać jego regułami, zasadami i składnią — podobnie jest z językiem programowania. Jeśli chcesz zyskać możliwość efektywnego programowania w języku Java, powinieneś poznać struktury danych, operacje i udogodnienia, oferowane przez biblioteki standardowe, a także często stosowane i efektywne sposoby tworzenia kodu. Całą potrzebną Ci wiedzę znajdziesz właśnie w tym podręczniku.
W książce „Java. Efektywne programowanie” w sposób zrozumiały i klarowny przedstawiono zasady opisujące mechanizmy używane w najlepszych technikach programowania. Ten podręcznik podpowie Ci, jak najbardziej racjonalnie korzystać z języka Java oraz jego podstawowych bibliotek. Dowiesz się, jak stosować wyjątki przechwytywalne i wyjątki czasu wykonania, poznasz także zalety stosowania statycznych klas składowych. Opanujesz metody sprawdzania poprawności parametrów i projektowania sygnatur oraz wszelkie instrukcje, które pozwolą Ci na wydajne i profesjonalne programowanie.
* Tworzenie i usuwanie obiektów
* Klasy i interfejsy
* Zapewnianie niezmienności obiektu
* Projektowanie i dokumentowanie klas przeznaczonych do dziedziczenia
* Zalety stosowania statycznych klas składowych
* Typy ogólne
* Typy wyliczeniowe i adnotacje
* Metody
* Programowanie
* Wykorzystanie ogólnie przyjętych konwencji nazewnictwa
* Wyjątki
* Współbieżność i serializacja
* Dokumentowanie bezpieczeństwa dla wątków
Nie wystarczy samo poznanie języka Java. Trzeba wiedzieć, jak z niego efektywnie korzystać!
Rozpocznij swoją przygodę z JavaScript!
* Jak rozpocząć przygodę z JavaScript?
* Jakie obiekty dostarcza JavaScript?
* Jak reagować na błędy?
Język JavaScript, choć ma już blisko dwanaście lat, swoimi możliwościami wciąż potrafi zafascynować niejednego projektanta stron internetowych. Ma już za sobą gorsze dni, jednak aktualnie dzięki technologii AJAX znów jest na topie. Wykorzystując go w odpowiedni sposób, sprawisz, że twój serwis WWW stanie się bardziej interaktywny i dynamiczny.
Ta książka pozwoli Ci wyjść zwycięsko z pierwszego starcia z tym językiem! Dowiesz się z niej, jak używać zmiennych, operatorów oraz funkcji. Nauczysz się reagować na zdarzenia oraz wykorzystywać okna dialogowe. Ponadto zdobędziesz wiedzę na temat pracy z obiektami DOM HTML oraz na temat sposobów reagowania na błędy w skryptach. Autor przedstawia tu także dostępne obiekty JavaScript oraz pokazuje, jak wykonywać operacje związane z czasem. Ogromnym atutem tej książki jest przejrzystość i usystematyzowany sposób prezentowania informacji. Dzięki temu również Ty szybko i bezboleśnie poznasz JavaScript!
* Typowe konstrukcje języka JavaScript
* Wykorzystanie zmiennych
* Zastosowanie funkcji
* Reagowanie na zdarzenia
* Sposoby użycia okien dialogowych
* Wykonywanie operacji związanych z czasem
* Dostępne obiekty JavaScript
* Obiekty DOM HTML
* Przygotowanie własnych obiektów
* Dziedziczenie w JavaScript
* Obsługa błędów
Przejdź bezboleśnie pierwsze starcie z JavaScript!
Poznaj narzędzia programu PowerPoint i twórz wyjątkowe prezentacje!
* Jak stworzyć profesjonalną prezentację na każdą okazję?
* Jak modyfikować grafikę SmartArt?
* Jak korzystać z programu Clip Organizer i biblioteki slajdów?
Z pewnością wiesz, do czego służy program PowerPoint, lecz jeśli jeszcze nie potrafisz z niego korzystać, a musisz szybko przygotować profesjonalną prezentację, ta książka jest właśnie dla Ciebie! Znajdziesz tu opis ostatniej wersji programu — PowerPoint 2007. Umożliwia ona stworzenie zaawansowanej i bogatej prezentacji, wyposażonej w dźwięk, fotografie i animacje filmowe. Nowy PowerPoint pozwala także na bezpieczne udostępnianie Twojej prezentacji wszystkim zainteresowanym.
Książka "PowerPoint 2007 PL. Seria praktyk" to bogato ilustrowany, a przy tym prawdziwie intuicyjny podręcznik, dzięki któremu każdy nauczy się sprawnie korzystać z tej aplikacji. Kolor i zrzuty ekranowe ilustrujące kolejne informacje, jak również klarowne i zrozumiałe instrukcje sprawiają, że nauka staje się niezwykle prosta. Dzięki tej książce poznasz wszystkie niezbędne narzędzia PowerPointa i ciekawe funkcje tego programu. Dowiesz się, jak zastosować w swojej prezentacji grafiki SmartArt oraz zaawansowane układy slajdów, a także w jaki sposób korzystać z galerii stylów czy biblioteki slajdów.
* Tworzenie prezentacji
* Praca z tekstem
* Grafika i linie
* Konwersja na grafikę SmartArt
* Tabele i wykresy
* Używanie Excela 2007 — kopiowanie i wstawianie tabel
* Wzbogacanie prezentacji — animacje
* Multimedia
* Dodawanie filmów i dźwięku
* Tworzenie albumów
* Pokaz slajdów
* Nagrywanie narracji
* Udostępnianie prezentacji
* Bezpieczeństwo
PowerPoint jest dla każdego!
Poznaj narzędzia oraz funkcje Excela i z łatwością wykorzystuj tę wiedzę w pracy
* Jak tworzyć skoroszyty i wykresy?
* Jak zarządzać danymi w arkuszach?
* Jak szacować formuły?
Na samo brzmienie słowa "Excel" reagujesz paniką? Uważasz, że to bardzo skomplikowany i trudny w obsłudze program? Świetnie! Ta książka została napisana właśnie z myślą o Tobie! Podręcznik, który trzymasz w rękach, stanowi namacalny dowód na to, że Excel 2007 może być prosty, a nauka jego obsługi bardzo przyjemna! Choć trudno Ci w tej chwili w to uwierzyć, aplikacja ta oferuje cale spektrum nowoczesnych, a przy tym przyjaznych i intuicyjnych narzędzi oraz funkcji, dzięki którym znacznie usprawnisz i przyspieszysz swoją pracę. Naprawdę warto je poznać!
Książkę "Excel 2007 PL. Seria praktyk" przygotowano w taki sposób, aby każdy mógł nauczyć się korzystać z narzędzi Excela, tworzyć odpowiednie arkusze oraz wykonywać na nich praktyczne operacje. Wszystkie porady i instrukcje napisane zostały prostym, zrozumiałym językiem. Dzięki temu szybko opanujesz sposoby zarządzania danymi czy szacowania formuł w tym programie. Wszystkie omawiane zagadnienia zilustrowane są ułatwiającymi zrozumienie zrzutami ekranowymi, a kolorowy druk znacznie uprzyjemni Ci korzystanie z książki. Wystarczy ją przeczytać, a poznasz Excela w stopniu pozwalającym Ci na swobodną pracę w tym programie. Na co zatem czekasz? Przed Tobą nauka takich zagadnień, jak:
* Tworzenie skoroszytu
* Wprowadzanie danych do arkusza i zarządzanie nimi
* Formuły i funkcje
* Tabele i wykresy
* Konwersja tabeli do postaci zakresu
* Zaawansowane funkcje
* Szacowanie formuł
* Zarządzanie Excelem
* Makra
* Szablony i scenariusze
* Łącza i odwołania
* Stosowanie aktualizacji
Najprostszy i najprzyjemniejszy sposób na poznanie Excela!
Poznaj praktyczne możliwości programu Access 2007!
* Jak właściwie zaprojektować bazę danych?
* Jak korzystać z szablonów?
* Jak tworzyć tabele i definiować relacje między nimi?
Wbrew pozorom nie trzeba być specjalistą, żeby korzystać z Accessa! Jest to program wyjątkowo przyjazny dla użytkownika, umożliwiający tworzenie baz danych i zarządzanie nimi bez potrzeby dogłębnego poznawania języka SQL oraz skomplikowanych środowisk serwerowych. Aplikacja pozwala na zapisywanie danych z wykorzystaniem formularzy, kierowanie zapytań do bazy, a także dzielenie danych ze współpracownikami za pośrednictwem sieci komputerowej.
Książka "Access 2007 PL. Seria praktyk" zawiera zwięzły i czytelny opis wszystkich najważniejszych funkcji tego programu, a także konkretne przykłady i jasne instrukcje zastosowania narzędzi Accessa. Kolorowe strony pozwalają na szybkie odnalezienie interesujących Cię zagadnień. Dzięki temu podręcznikowi poznasz podstawowe zasady tworzenia dobrego projektu bazy danych oraz jej zaawansowane możliwości. Nauczysz się tworzyć tabele, formularze i raporty, a także korzystać z kluczy podstawowych i obcych. Bez problemu zbudujesz taką bazę danych, która pozwoli Ci sprawnie zarządzać informacjami.
* Personalizacja Accessa 2007
* Projektowanie baz danych
* Relacyjne bazy danych
* Klucze podstawowe i obce
* Tworzenie tabel
* Korzystanie z typów danych
* Definiowanie relacji
* Kwerendy
* Korzystanie z SQL
* Tworzenie i dostrajanie formularzy
* Tworzenie raportów
* Współdzielenie Accessa
Naucz się korzystać z Accessa — zachwycą Cię jego możliwości!
Odkryj bogactwo funkcji Worda!
Jak poprawnie formatować i uatrakcyjniać dokumenty?
Chcesz zacząć sprawnie tworzyć w programie Word dokumenty o profesjonalnym wyglądzie? A może tak dobrze go już znasz, że wątpisz, by skrywał przed Tobą jeszcze jakiekolwiek tajemnice? Tak czy inaczej warto opanować wszystkie potężne możliwości najpopularniejszego edytora tekstów, różne sposoby pracy z nim i metody tworzenia dokumentów tekstowych. Uzbrojony w taką wiedzę, z pewnością będziesz pracował szybciej i sprawniej.
Książka "Word 2007 PL. Seria praktyk" jest graficznym przewodnikiem po najnowszej wersji Worda i zawiera dokładny opis jego funkcji podstawowych oraz zaawansowanych — począwszy od tworzenia i formatowania tekstów, a na złożonych makrach skończywszy. Wszystko to przedstawione zostało za pomocą przejrzystych, kolorowych i szczegółowych instrukcji oraz praktycznych przykładów. Dzięki temu podręcznikowi poznasz całe spektrum narzędzi Worda i udoskonalisz swoją pracę z tym programem.
* Narzędzia główne
* Formatowanie tekstu
* Szybkie style
* Praca z dokumentem
* Drukowanie i publikowanie
* Konwersja do formatu PDF
* Biblioteka ClipArt i SmartArt
* Hiperłącza i zakładki
* Równania
* Zaawansowane funkcje — podpis cyfrowy
* Makra
Opanuj wszystkie narzędzia Worda i ciesz się swobodą tworzenia dokumentów!
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
Dołącz do kreatorów nowych trendów! Stwórz własny serwis społecznościowy!
* Pierwsze kroki w roli twórcy serwisu — rodzaje stron, prawo i reklama
* Skrypty, instalacja i administracja — PHPizabi, Elgg, Dolphin, Joomla!
* ABC moderatora i użytkownika — regulamin, trolle, zakres ingerencji
Serwisy społecznościowe są bodaj najszybciej rozwijającą się dziś częścią internetu. Nie sposób przecenić ich roli społecznej i opiniotwórczej. Liczba użytkowników i ich poczucie wspólnoty decydują o sile i prężności tych serwisów. W każdej chwili możesz przyłączyć się do któregoś z nich. Jednak znacznie więcej radości sprawiłoby Ci na pewno prowadzenie własnego serwisu, wokół którego skupiałaby się cała społeczność osób o zainteresowaniach podobnych do Twoich.
W książce "Serwisy społecznościowe. Budowa, administracja i moderacja" znajdziesz wszelkie informacje dotyczące tworzenia i obsługi serwisu społecznościowego. Opisano w niej początki tego zjawiska społecznego, podstawy jego działania, rozmaite odmiany serwisów, wszelkie kwestie prawne i techniczne. Niezależnie od tego, czy szukasz inspiracji odnośnie treści umieszczanych w serwisie, czy chciałbyś dowiedzieć się, jak rozwiązać konkretne problemy z konfiguracją, rejestracją, wyborem mechanizmu działania czy wyglądu Twojego serwisu, autorzy służą Ci rzetelną wiedzą, wskazówkami i podpowiedziami. Oprócz tego wprowadzą Cię w kwestie związane z bezpieczeństwem w sieci, rolą moderatora i rozwiązywaniem problemów z użytkownikami.
* Społeczności internetowe
* Serwisy społecznościowe (historia, rodzaje, reklama)
* Regulacje prawne
* Wybór domeny i hostingu
* Niezbędne narzędzia (klient FTP, edytory CSS i tekstowe)
* Serwis społecznościowy a forum dyskusyjne
* Bezpieczeństwo serwisu
* Skrypty (PHPizabi, Elgg, Dolphin, Joomla!, BuddyPress, Joovili, SocialEngine i wiele innych)
* Online-Community-Building
* Skrypty do budowy serwisu wideo (ClipBucket Lite, Clipshare, ClipHouse i wiele innych)
* Rola moderatora
* Social shopping
Sprawdź, jak wiele satysfakcji daje własny serwis społecznościowy!
AutoCAD to program do komputerowego wspomagania projektowania, który od lat wyznacza standardy na rynku takich aplikacji. Z jego możliwości korzystają projektanci różnych branż, a ogromna liczba bibliotek, modułów i nakładek sprawia, że realizacja nawet najbardziej złożonych projektów przebiega szybko i sprawnie. Każda kolejna wersja AutoCAD-a jest bardziej rozbudowana. W wersji 2008 autorzy aplikacji zadbali o optymalizację znanych już użytkownikom narzędzi i zwiększenie produktywności pracy. Zmodernizowany interfejs użytkownika oraz nowe możliwości docenią nie tylko profesjonaliści, ale również ci, którzy stawiają pierwsze kroki w świecie komputerowego wspomagania projektowania.
Książka "AutoCAD 2008 i 2008 PL" to wyczerpujące omówienie najnowszej edycji tej aplikacji. Każdy użytkownik AutoCAD-a, niezależnie od stopnia zaawansowania, znajdzie w niej interesujące informacje. Czytając tę książkę, nauczysz się tworzyć i modyfikować rysunki, wymiarować je, korzystać z warstw, bloków i stylów oraz drukować projekty. Poznasz zasady modelowania bryłowego, tworzenia szablonów oraz rysowania w trybie aksonometrycznym. Każde z narzędzi dostępnych w aplikacji jest dokładnie omówione, a ilustrowane przykłady ułatwiają poznanie ich w praktyce.
* Interfejs użytkownika, menu i paski narzędzi
* Praca z dokumentami
* Układy współrzędnych
* Tworzenie podstawowych obiektów i definiowanie ich właściwości
* Napisy i tabelki
* Rysowanie precyzyjne
* Rysunek aksonometryczny
* Kreskowanie
* Naprawianie uszkodzonych rysunków
* Techniki wymiarowania, modyfikowanie wymiarów i style wymiarowe
* Modelowanie 3D i bryły ACIS
Poznaj najnowszą wersję narzędzia, które zrewolucjonizowało pracę projektantów na całym świecie.
Zobacz, jakie to proste — naucz się tworzyć bazy danych!
* Jak tworzyć formularze i raporty?
* Jak modyfikować strukturę tabel?
* Jak stosować mechanizmy wymiany danych?
Współczesny świat wymusza na przedsiębiorstwach gromadzenie oraz przetwarzanie ogromnej ilości informacji. To sprawia, że muszą one dysponować wydajnymi i sprawnymi bazami danych. Aby zbudować taki system zarządzania danymi, niezbędne są odpowiednie narzędzia — jednym z nich jest program MS Access. Ta aplikacja przede wszystkim pozwala na łatwą kontrolę poprawności tworzonych projektów oraz zapewnia integrację narzędzi służących do tworzenia struktury relacyjnej. Dba także o zgodność tych narzędzi ze standardem języka zapytań SQL, wykorzystywanym do tworzenia i modyfikowania baz danych oraz operowania na zgromadzonych w nich informacjach.
Książka „Bazy danych. Pierwsze starcie” stanowi doskonałe wprowadzenie w tematykę tworzenia baz danych. Zawiera wszystkie potrzebne informacje, podane w prosty i przejrzysty sposób. Ten podręcznik przyda się zarówno studentom kierunków informatycznych, jak i wszystkim tym, którzy chcą zdobyć wiedzę o nowoczesnych metodach budowania takich baz. Stąd dowiesz się m.in., jak wykorzystywać język zapytań SQL, w jaki sposób tworzyć tabele, formularze i raporty oraz stosować mechanizmy wymiany danych, a także na czym polega filtrowanie i sortowanie w zapytaniach. Zdobędziesz wiedzę i umiejętności wystarczające do samodzielnego zbudowania wydajnej bazy danych i sprawnego nią zarządzania.
* Projektowanie bazy danych — narzędzia wizualne
* Tworzenie formularzy i raportów
* Strukturalny język zapytań SQL w wersji MS JetSQL
* Składnia podstawowa
* Unia — koniunkcja zbiorów
* Grupowanie i funkcje agregujące
* Zastosowanie języka SQL z poziomu formularzy
* Mechanizmy wymiany danych
* Obiekty: DAO, RDO, ADO
* Zastosowanie mechanizmów wymiany danych przy tworzeniu aplikacji
Stwórz własną, niezawodną bazę danych!
Poznaj nowoczesne technologie zarządzania bazami danych
* Jak zainstalować i skonfigurować SQL Server 2008?
* W jaki sposób monitorować wydajność i bezpieczeństwo serwera bazy danych?
* Jak tworzyć oprogramowanie współpracujące z SQL Serverem?
System zarządzania bazami danych MS SQL Server zyskał sobie zasłużoną renomę wśród projektantów baz danych i programistów. Stabilna i wydajna platforma, dostępna w kilku edycjach, różniących się możliwościami i zastosowaniami, wykorzystywana jest w aplikacjach biznesowych, portalach internetowych i aplikacjach mobilnych. Jej najnowsza wersja, oznaczona symbolem 2008, to potężna platforma do zarządzania danymi, umożliwiająca nie tylko przechowywanie ich w tabelach, ale także przetwarzanie, analizowanie, udostępnianie i zabezpieczanie. Pozwala ona także na składowanie danych nierelacyjnych — obiektów binarnych i danych geograficznych.
Książka „Serwer SQL 2008. Administracja i programowanie” zawiera szczegółowe omówienie możliwości najnowszej wersji tej platformy bazodanowej. Zarówno administratorzy, jak i programiści znajdą w niej wiele przydatnych informacji. Opisano w niej poszczególne edycje SQL Servera 2008, sposób ich instalacji, konfiguracji i administrowania, techniki optymalizacji wydajności oraz zabezpieczania i analizowania danych. Dzięki niej dowiesz się, jakie nowe funkcje wprowadzono w wersji 2008, jak korzystać z języka T-SQL i przechowywać dane nierelacyjne. Przeczytasz także o integracji z platformą CLR oraz korzystaniu z technologii SOA.
* Instalacja SQL Servera 2008
* Administrowanie serwerem bazy danych
* Optymalizacja dostępności i wydajności
* Nowe funkcje SQL Servera 2008
* Monitorowania pracy serwera
* Zabezpieczanie danych
* Programowanie w T-SQL
* Nierelacyjne typy danych
* Korzystanie z dokumentów XML
* Praca z SQL Server Compact Edition
Wykorzystaj w praktyce możliwości najnowszej wersji platformy bazodanowej SQL Server.
Dowiedz się więcej o działaniu USB i poznaj metody programowania transmisji danych
* W jaki sposób odbywa się transfer danych?
* Jak odblokować urządzenia do transmisji?
* Na czym polega programowanie obiektowe transmisji USB?
USB (skrót od ang. Universal Serial Bus — uniwersalna magistrala szeregowa) to rodzaj bardzo praktycznego portu komunikacyjnego, dzięki któremu możliwe jest podłączanie do komputera wielu różnych urządzeń, takich jak mysz, kamera, aparat fotograficzny, telefon komórkowy, modem, skaner, przenośna pamięć. Podłączone w ten sposób urządzenia są od razu wykrywane i rozpoznawane przez system, dzięki czemu instalacja sterowników i konfiguracja sprzętu odbywają się zwykle automatycznie.
Książka „USB. Praktyczne programowanie z Windows API w C++” w zwięzły sposób przedstawia wszelkie zagadnienia, dotyczące użytkowania i programowania transmisji USB. Korzystając z tego podręcznika, poznasz nie tylko teoretyczne podstawy działania USB, ale także zdobędziesz praktyczne umiejętności w tym zakresie. Książka zawiera bowiem zarówno konkretne przykłady, jak i ćwiczenia do samodzielnego wykonania dla wszystkich, którzy chcą zyskać wiedzę na zaawansowanym poziomie. Dowiesz się między innymi, jakie są rodzaje transferów danych i transakcji USB, za co odpowiadają komponenty i jak wykorzystać wzorce projektowe. Zrozumiesz także metody projektowania obiektowego oraz implementacji oprogramowania sterującego łączem USB.
* Środowisko fizyczne i sygnałowe USB
* Klasy instalacji urządzeń
* Rejestr systemowy
* Transmisja danych
* Struktura systemu USB
* Detekcja i identyfikacja urządzeń
* Odczyt i zapis danych w formie raportu
* Programowanie obiektowe transmisji USB
* Wewnętrzne struktury danych
* Programy wielowątkowe
* Konwertery USB
Tu znajdziesz wszystko o działaniu USB i możliwościach jego wykorzystania!
Odkryj wspaniałe możliwości środowiska Visual Studio 2008 i twórz niezawodne aplikacje
* Jak optymalnie wykorzystać środowisko Visual Studio?
* Jak tworzyć wydajne aplikacje dla przedsiębiorstw?
* Jak wzbogacić środowisko programistyczne przy użyciu własnych dodatków?
Microsoft Visual Studio 2008 to nowoczesne środowisko programistyczne, które umożliwia bardziej precyzyjne i szybsze tworzenie niezawodnych aplikacji. W najnowszej wersji wprowadzono wiele poprawek w językach (takich jak zapytania w LINQ) oraz liczne nowości na platformie .NET. Usprawniono także dostępne narzędzia — na przykład w programie Visual Studio Team System, pozwalającym na skuteczną pracę zespołową. Wprowadzono w nim możliwości profilowania wydajności i udoskonalono system kompilacji grupowej. Wśród nowych funkcji pojawiły się kreatory do wiązania danych, inteligentne znaczniki oraz narzędzia do zarządzania projektami.
"Microsoft Visual Studio 2008. Księga eksperta" stanowi kompletne i szczegółowe omówienie tego wyjątkowego środowiska programistycznego. Z podręcznika dowiesz się, jak tworzyć dodatki, makra i kreatory oraz jak zbudować aplikacje oparte na formularzach Windows i platformie WPF. Poznasz produkty z rodziny Visual Studio Team System, które umożliwiają wydajną pracę w zespole. Nauczysz się korzystać z narzędzi programistycznych platformy .NET, pracować z bazami danych i zarządzać zmianami w kodzie źródłowym.
* Środowisko Visual Studio 2008-12-07 — rozwiązania i projekty
* Przeglądarki i eksploratory
* Tworzenie i wykorzystanie współużytkowanego kodu
* Korzystanie z narzędzi zwiększających produktywność
* Obiektowy model automatyzacji
* Tworzenie makr, kreatorów i dodatków
* Arkusze stylów
* Tworzenie aplikacji opartych na formularzach Windows
* Praca z bazami danych
* Dodawanie procesów do aplikacji
* Aplikacje biznesowe oparte na pakiecie Office
* Praca zespołowa i Visual Studio Team System
* Kontrolka kodu źródłowego
Wykorzystaj wiedzę ekspercką i zostań jeszcze bardziej profesjonalnym programistą!
Rewizor GT to nowoczesny system finansowo-księgowy dla małych i średnich przedsiębiorstw, wchodzący w skład linii InsERT GT. Program wyposażony jest w pełną gamę funkcji potrzebnych do sprawnego prowadzenia ksiąg handlowych. Zapewnia również obsługę środków trwałych i podstawową obsługę płac, nie ma ograniczenia ilości stanowisk. Uwzględnia wymogi prawa obowiązującego w Unii Europejskiej, jest w pełni zgodny z Ustawą o rachunkowości. Dzięki prostej i intuicyjnej obsłudze zapewnia najwyższą ergonomię i wygodę pracy. Przeznaczony jest zarówno dla samodzielnych księgowych, jak i biur rachunkowych oraz doradców podatkowych.
Książka „Rewizor GT. Prowadzenie ewidencji księgowej” to podręcznik, który w prosty sposób pokazuje, jak sprawnie posługiwać się tym programem finansowo-księgowym. Korzystając z tego przewodnika, poznasz zasady ewidencjonowania środków trwałych, wartości niematerialnych i prawnych oraz innych składników zasobów majątkowych i źródeł ich finansowania. Dowiesz się, w jaki sposób automatycznie generować wzorcowy plan kont i dokonywać jego modyfikacji, a także jak definiować i wyliczać podstawowe sprawozdania finansowe oraz tworzyć konta analityczne przez podłączanie kartotek.
* Praca z programem
* Parametry Rewizora GT
* Rejestry księgowe
* Wprowadzanie dokumentów
* Dokumenty obrotu kasowego i bankowego
* Zestawienia — ewidencje VAT
* Sprawozdania — bilans, rachunek zysków i strat
* Deklaracje skarbowe i deklaracje ZUS
* Zamknięcie roku
Pasja ukryta w pikselach
Obudź w sobie prawdziwego Łowcę Ujęć
Od czasu pojawienia się niedrogich aparatów cyfrowych liczba fotoamatorów nad Wisłą gwałtownie wzrosła, choć daleko nam jeszcze do japońskiego foto-szału. Większość posiadaczy "cyfrówek" zadowala się jednak obsługą przycisku migawki podczas rodzinnych imprez i wakacji. Na szczęście istnieją również prawdziwi pasjonaci — tacy jak Ty — którzy chcą, aby ich zdjęcia wyróżniały się ze stosów nudnych fotek, zapełniających albumy w każdym niemal domu.
Jeśli czujesz, że drzemie w Tobie świetny fotograf, który potrzebuje tylko kilku praktycznych rad, by poprawić swój warsztat, rozwinąć umiejętności, zdobyć zestaw przydatnych technik i dowiedzieć się, jak wykorzystywać wszelkie dostępne opcje posiadanego aparatu, ta książka z pewnością spełni Twoje oczekiwania.
Jeśli tylko masz wybór, pamiętaj — jakość, a nie jakoś.
Dlaczego warto wiedzieć?
Fotografowanie uczy patrzenia, pobudza wrażliwość i daje ogromną satysfakcję. Skoro masz w sobie pasję i talent, koniecznie trzeba je oszlifować.
* Dobór odpowiedniego dla Ciebie aparatu cyfrowego.
* Sztuczki i praktyczne porady na temat fotografowania.
* Zasady kompozycji wykonywanych zdjęć.
* Lifting zdjęć za pomocą programów komputerowych.
* Wykonywanie odbitek Twoich fotografii cyfrowych.
Czytanie kodu. Punkt widzenia twórców oprogramowania open source
1. IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI Czytanie kodu. Punkt widzenia
twórców oprogramowania
KATALOG KSI¥¯EK open source
KATALOG ONLINE Autor: Diomidis Spinellis
T³umaczenie: Bart³omiej Garbacz
ZAMÓW DRUKOWANY KATALOG ISBN: 83-7361-555-5
Tytu³ orygina³u: Code Reading The Open Source Perspective
Format: B5, stron: 448
TWÓJ KOSZYK
DODAJ DO KOSZYKA Ksi¹¿ka „Czytanie kodu. Punkt widzenia twórców oprogramowania” open source to
pierwszy na rynku podrêcznik po wiêcony czytaniu kodu ród³owego jako osobnej
dziedzinie wiedzy, której znajomo æ jest przydatna ka¿demu programi cie.
CENNIK I INFORMACJE Ponad 600 przyk³adów, w których wykorzystywane s¹ kody oprogramowania open
source, przedstawia sposoby identyfikowania dobrego i z³ego kodu, czytania go,
ZAMÓW INFORMACJE przeszukiwania pod k¹tem konkretnych funkcji oraz wykorzystywania umiejêtno ci
O NOWO CIACH czytania kodu do poprawy jako ci kodów ród³owych pisanych samodzielnie.
• Podstawowe konstrukcje steruj¹ce dzia³aniem programu
ZAMÓW CENNIK • Proste i z³o¿one typy danych
• Struktury i unie
• Dynamiczne zarz¹dzanie pamiêci¹
CZYTELNIA • Metody analizy projektów informatycznych
• Konwencje pisania i formatowania kodu ród³owego
FRAGMENTY KSI¥¯EK ONLINE • Tworzenie i czytanie dokumentacji
• Architektura systemów
Poznaj umiejêtno æ czytania kodu ród³owego i popraw samodzielnie pisany kod
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
2. Spis treści
Przedmowa.....................................................................................7
Wstęp..........................................................................................11
Rozdział 1. Wprowadzenie ..............................................................................15
1.1. Motywy i metody czytania kodu......................................................................... 16
1.1.1. Kod jako literatura ................................................................................... 16
1.1.2. Kod jako model ....................................................................................... 19
1.1.3. Utrzymanie kodu ..................................................................................... 20
1.1.4. Rozwój.................................................................................................... 21
1.1.5. Ponowne wykorzystanie........................................................................... 22
1.1.6. Inspekcje ................................................................................................. 23
1.2. Jak czytać tę książkę? ........................................................................................ 24
1.2.1. Konwencje typograficzne......................................................................... 24
1.2.2. Diagramy ................................................................................................ 25
1.2.3. Ćwiczenia................................................................................................ 27
1.2.4. Materiał dodatkowy ................................................................................. 27
1.2.5. Narzędzia ................................................................................................ 28
1.2.6. Zarys treści.............................................................................................. 28
1.2.7. Debata na temat najlepszego języka.......................................................... 29
Dalsza lektura .......................................................................................................... 30
Rozdział 2. Podstawowe konstrukcje programistyczne ......................................33
2.1. Pełny program ................................................................................................... 33
2.2. Funkcje i zmienne globalne................................................................................ 39
2.3. Pętle while, instrukcje warunkowe i bloki........................................................... 42
2.4. Instrukcja switch................................................................................................ 45
2.5. Pętle for ............................................................................................................ 47
2.6. Instrukcje break i continue ................................................................................. 50
2.7. Wyrażenia znakowe i logiczne ........................................................................... 52
2.8. Instrukcja goto................................................................................................... 55
2.9. Refaktoryzacja w skrócie ................................................................................... 57
2.10. Pętle do i wyrażenia całkowite ........................................................................... 63
2.11. Podsumowanie wiadomości o strukturach sterujących......................................... 65
Dalsza lektura .......................................................................................................... 71
Rozdział 3. Zaawansowane typy danych języka C .............................................73
3.1. Wskaźniki ......................................................................................................... 73
3.1.1. Powiązane struktury danych ..................................................................... 74
3.1.2. Dynamiczne przydzielanie struktur danych ............................................... 74
3. 4 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
3.1.3. Wywołania przez referencję ..................................................................... 75
3.1.4. Uzyskiwanie dostępu do elementów danych ............................................. 76
3.1.5. Tablice jako argumenty i wyniki .............................................................. 77
3.1.6. Wskaźniki na funkcje............................................................................... 78
3.1.7. Wskaźniki jako aliasy .............................................................................. 81
3.1.8. Wskaźniki a ciągi znaków........................................................................ 82
3.1.9. Bezpośredni dostęp do pamięci ................................................................ 84
3.2. Struktury ........................................................................................................... 85
3.2.1. Grupowanie elementów danych................................................................ 85
3.2.2. Zwracanie wielu elementów danych z funkcji ........................................... 85
3.2.3. Odwzorowanie organizacji danych ........................................................... 86
3.2.4. Programowanie obiektowe ....................................................................... 87
3.3. Unie .................................................................................................................. 89
3.3.1. Wydajne wykorzystanie pamięci .............................................................. 89
3.3.2. Implementacja polimorfizmu.................................................................... 90
3.3.3. Uzyskiwanie dostępu do różnych reprezentacji wewnętrznych .................. 91
3.4. Dynamiczne przydzielanie pamięci .................................................................... 92
3.4.1. Zarządzanie wolną pamięcią .................................................................... 95
3.4.2. Struktury z dynamicznie przydzielanymi tablicami ................................... 97
3.5. Deklaracje typedef............................................................................................. 98
Dalsza lektura ........................................................................................................ 100
Rozdział 4. Struktury danych języka C ...........................................................101
4.1. Wektory .......................................................................................................... 102
4.2. Macierze i tabele ............................................................................................. 106
4.3. Stosy ............................................................................................................... 110
4.4. Kolejki ............................................................................................................ 112
4.5. Mapy............................................................................................................... 114
4.5.1. Tablice mieszające................................................................................. 117
4.6. Zbiory ............................................................................................................. 119
4.7. Listy................................................................................................................ 120
4.8. Drzewa............................................................................................................ 127
4.9. Grafy............................................................................................................... 131
4.9.1. Przechowywanie wierzchołków.............................................................. 132
4.9.2. Reprezentacje krawędzi ......................................................................... 133
4.9.3. Przechowywanie krawędzi ..................................................................... 136
4.9.4. Właściwości grafu ................................................................................. 137
4.9.5. Struktury ukryte..................................................................................... 138
4.9.6. Inne reprezentacje.................................................................................. 138
Dalsza lektura ........................................................................................................ 139
Rozdział 5. Zaawansowane techniki sterowania przebiegiem programów ..........141
5.1. Rekurencja ...................................................................................................... 141
5.2. Wyjątki ........................................................................................................... 147
5.3. Równoległość.................................................................................................. 151
5.3.1. Równoległość sprzętowa i programowa .................................................. 151
5.3.2. Modele sterowania................................................................................. 153
5.3.3. Implementacja wątków .......................................................................... 158
5.4. Sygnały ........................................................................................................... 161
5.5. Skoki nielokalne.............................................................................................. 165
5.6. Podstawienie makr........................................................................................... 167
Dalsza lektura ........................................................................................................ 171
4. Spis treści 5
Rozdział 6. Metody analizy dużych projektów .................................................173
6.1. Techniki projektowe i implementacyjne ........................................................... 173
6.2. Organizacja projektu........................................................................................ 175
6.3. Proces budowy i pliki Makefile ........................................................................ 183
6.4. Konfiguracja.................................................................................................... 190
6.5. Kontrola wersji................................................................................................ 194
6.6. Narzędzia związane z projektem ...................................................................... 201
6.7. Testowanie ...................................................................................................... 205
Dalsza lektura ........................................................................................................ 212
Rozdział 7. Standardy i konwencje pisania kodu .............................................213
7.1. Nazwy plików i ich organizacja wewnętrzna..................................................... 214
7.2. Wcięcia ........................................................................................................... 216
7.3. Formatowanie.................................................................................................. 218
7.4. Konwencje nazewnictwa.................................................................................. 221
7.5. Praktyki programistyczne................................................................................. 224
7.6. Standardy związane z procesem rozwojowym................................................... 226
Dalsza lektura ........................................................................................................ 227
Rozdział 8. Dokumentacja ............................................................................229
8.1. Rodzaje dokumentacji...................................................................................... 229
8.2. Czytanie dokumentacji..................................................................................... 230
8.3. Problemy dotyczące dokumentacji ................................................................... 241
8.4. Dodatkowe źródła dokumentacji ...................................................................... 242
8.5. Popularne formaty dokumentacji w środowisku open-source............................. 246
Dalsza lektura ........................................................................................................ 251
Rozdział 9. Architektura ...............................................................................253
9.1. Struktury systemów ......................................................................................... 253
9.1.1. Podejście scentralizowanego repozytorium i rozproszone........................ 254
9.1.2. Architektura przepływu danych .............................................................. 259
9.1.3. Struktury obiektowe............................................................................... 261
9.1.4. Architektury warstwowe ........................................................................ 264
9.1.5. Hierarchie.............................................................................................. 266
9.1.6. Przecinanie............................................................................................ 267
9.2. Modele sterowania........................................................................................... 269
9.2.1. Systemy sterowane zdarzeniami ............................................................. 269
9.2.2. Menedżer systemowy............................................................................. 273
9.2.3. Przejścia stanów .................................................................................... 274
9.3. Pakietowanie elementów.................................................................................. 277
9.3.1. Moduły.................................................................................................. 277
9.3.2. Przestrzenie nazw .................................................................................. 279
9.3.3. Obiekty ................................................................................................. 283
9.3.4. Implementacje ogólne............................................................................ 295
9.3.5. Abstrakcyjne typy danych ...................................................................... 298
9.3.6. Biblioteki .............................................................................................. 299
9.3.7. Procesy i filtry ....................................................................................... 302
9.3.8. Komponenty.......................................................................................... 304
9.3.9. Repozytoria danych ............................................................................... 306
9.4. Wielokrotne użycie architektury....................................................................... 308
9.4.1. Schematy strukturalne............................................................................ 308
9.4.2. Generatory kodu .................................................................................... 309
9.4.3. Wzorce projektowe................................................................................ 310
9.4.4. Architektury dziedzinowe ...................................................................... 312
Dalsza lektura ........................................................................................................ 316
5. 6 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
Rozdział 10. Narzędzia pomocne w czytaniu kodu .............................................319
10.1. Wyrażenia regularne ...................................................................................... 320
10.2. Edytor jako przeglądarka kodu ....................................................................... 323
10.3. Przeszukiwanie kodu za pomocą narzędzia grep ............................................. 326
10.4. Znajdowanie różnic między plikami ............................................................... 333
10.5. Własne narzędzia........................................................................................... 335
10.6. Kompilator jako narzędzie pomocne w czytaniu kodu ..................................... 338
10.7. Przeglądarki i upiększacze kodu ..................................................................... 342
10.8. Narzędzia używane w czasie uruchomienia..................................................... 347
10.9. Narzędzia nieprogramowe.............................................................................. 351
Dostępność narzędzi oraz dalsza lektura.................................................................. 353
Rozdział 11. Pełny przykład ............................................................................355
11.1. Przegląd ........................................................................................................ 355
11.2. Plan działania ................................................................................................ 356
11.3. Wielokrotne użycie kodu................................................................................ 358
11.4. Testowanie i uruchamianie............................................................................. 363
11.5. Dokumentacja................................................................................................ 368
11.6. Uwagi ........................................................................................................... 369
Dodatek A Struktura dołączonego kodu.........................................................371
Dodatek B Podziękowania dla autorów kodu źródłowego.................................375
Dodatek C Pliki źródłowe .............................................................................377
Dodatek D Licencje kodu źródłowego ............................................................385
D.1. ACE ............................................................................................................... 385
D.2. Apache ........................................................................................................... 386
D.3. ArgoUML ...................................................................................................... 387
D.4. DemoGL ........................................................................................................ 388
D.5. hsqldb ............................................................................................................ 388
D.6. NetBSD.......................................................................................................... 389
D.7. OpenCL.......................................................................................................... 390
D.8. Perl ................................................................................................................ 390
D.9. qtchat ............................................................................................................. 393
D.10. socket............................................................................................................. 393
D.11. vcf.................................................................................................................. 393
D.12. X Window System.......................................................................................... 394
Dodatek E Porady dotyczące czytania kodu...................................................395
Bibliografia.................................................................................413
Skorowidz...................................................................................427
6. Rozdział 3.
Zaawansowane
typy danych języka C
Wskaźniki, struktury, unie, pamięć przydzielana dynamicznie oraz deklaracje nazw
typów to podstawowe elementy budowy bardziej wyrafinowanych typów danych i al-
gorytmów języka C. Chociaż niejednokrotnie już się z nimi spotkaliśmy, ich użycie jest
wystarczająco specyficzne, wyspecjalizowane i idiomatyczne, aby poświęcić im więcej
uwagi. W niniejszym rozdziale zostaną omówione najczęściej stosowane sposoby użycia
wskaźników, struktur i unii w programach oraz przedstawione przykłady dla każdego
wzorca użycia. Rozpoznając funkcje pełnione przez określone konstrukcje językowe
można lepiej zrozumieć kod, który z nich korzysta.
Umiejętność tworzenia nowych obszarów przechowywania danych w trakcie działa-
nia programu poprzez dynamiczne przydzielanie i zwalnianie pamięci stanowi jedną
z istotnych koncepcji wykorzystywanych obok wskaźników i struktur w celu tworze-
nia i manipulowania nowymi typami danych. Wystarczy poznać kilka najważniejszych
idiomów dotyczących zarządzania pamięcią przydzielaną dynamicznie, by znikła więk-
szość niejasności.
3.1. Wskaźniki
Większość osób uczących się języka C początkowo traktuje wskaźniki z pewną dozą
szacunku i jednocześnie obawy. Jest prawdą, że kod wykorzystujący wskaźniki jest
niekiedy bardzo tajemniczy i często stanowi źródło subtelnych błędów oraz nieprze-
widzialnych awarii. Wynika to głównie z faktu, że wskaźnik jest niskopoziomowym,
oferującym ogromne możliwości, ale prymitywnym narzędziem. Należy nauczyć się
rozpoznawać sposoby jego użycia, co pozwoli poznać często stosowane wzorce zapi-
su kodu. Nieliczne pozostałe fragmenty kodu, których nie będzie można odpowiednio
zaklasyfikować, należy traktować podejrzliwie.
7. 74 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
Wskaźniki są używane w języku C z następujących powodów:
w celu tworzenia powiązanych struktur danych;
w celu odwoływania się do dynamicznie przydzielanych struktur danych;
w celu implementacji wywołań przez referencje;
w celu uzyskiwania dostępu do elementów danych i iterowania po nich;
w momencie przekazywania tablic jako argumentów;
w celu odwoływania się do funkcji;
jako aliasy innych wartości;
w celu reprezentowania ciągów znaków;
w celu zapewnienia bezpośredniego dostępu do pamięci systemowej.
Poniżej rozpatrzymy reprezentatywne przykłady użycia wskaźników w każdym z tych
przypadków. Tam, gdzie to wskazane, zostaną zamieszczone odsyłacze do podrozdzia-
łów, w których zawarto szczegółowe omówienie określonego przypadku użycia. Celem
poniższych paragrafów jest przedstawienie podsumowania, taksonomii oraz ogólnych
wytycznych dotyczących czytania kodu wykorzystującego wskaźniki.
3.1.1. Powiązane struktury danych
Na najniższym poziomie abstrakcji wskaźnik stanowi po prostu adres pamięci. Nadaje
się on zatem idealnie do reprezentowania łączy między elementami struktur danych.
Na poziomie koncepcyjnym struktury danych, takie jak listy, drzewa i graf, składają
się z elementów (wierzchołków) połączonych łukami lub krawędziami. Wskaźnik może
reprezentować krawędź skierowaną między dwoma wierzchołkami, przechowując
w jednym z nich adres drugiego. Ponadto wierzchołki są używane podczas przetwa-
rzania takich struktur danych w celu uzyskiwania dostępu do ich elementów oraz wy-
konywania operacji porządkowych. Powiązane struktury danych są omawiane w pod-
rozdziale 4.7 i kolejnych.
3.1.2. Dynamiczne przydzielanie struktur danych
Struktury danych typu wektorowego są często przydzielane dynamicznie, tak aby ich
rozmiar odpowiadał informacjom dotyczącym liczby wymaganych elementów w czasie
wykonywania. Kwestię tę omówiono szczegółowo w podrozdziale 3.4. Wskaźniki są
używane do przechowywania adresów początkowych takich struktur danych. Ponadto
programy często dynamicznie konstruują struktury języka C w celu przekazywania ich
między funkcjami lub używania jako elementów budulcowych dla powiązanych struk-
tur danych. W takim przypadku wskaźniki są używane do przechowywania informacji
o lokalizacji w pamięci przydzielonej konstrukcji struct, jak w poniższym przykładzie1:
1
netbsdsrc/sbin/fsck/preen.c: 250 – 280.
8. Rozdział 3. ♦ Zaawansowane typy danych języka C 75
static struct diskentry *
finddisk(const char *name)
{
struct diskentry *d;
[...]
d = emalloc(sizeof(*d));
d->d_name = estrdup(name);
d->d_name[len] = '0';
[...]
return d;
}
Kod służący do przydzielenia pamięci równej co do pojemności rozmiarowi konstrukcji
struct oraz rzutowanie wyniku na odpowiedni wskaźnik bywają często przenoszone
do makra o nazwie takiej jak new (jak adekwatny operator języka C++)2, 3.
#define new(type) (type *) calloc(sizeof(type), 1)
[...]
node = new(struct codeword_entry);
3.1.3. Wywołania przez referencję
Wskaźniki są również używane w funkcjach, które pobierają argumenty przekazywane
przez referencję (ang. by reference). Argumenty funkcji przekazywane przez referencję
są wykorzystywane w celu zwracania wyników funkcji lub w celu uniknięcia narzutu
czasowego związanego z kopiowaniem argumentu funkcji. Kiedy argumenty typu
wskaźnikowego są używane w celu zwrócenia wyników funkcji, w jej treści znajduje
się instrukcja przypisania wartości do takich argumentów, jak w przypadku poniższej
funkcji, która ustawia wartość gid na identyfikator grupy o podanej nazwie4.
int
gid_name(char *name, gid_t *gid)
{
[...]
*gid = ptr->gid = gr->gr_gid;
return(0);
}
Wartość zwracana przez funkcję jest wykorzystywana jedynie w celu określenia błędu.
Wiele funkcji interfejsu API systemu Windows wykorzystuje taką konwencję. Po stro-
nie obiektu wywołującego zwykle widzi się odpowiedni argument przekazywany do
funkcji poprzez zastosowanie operatora adresu (&) względem zmiennej.
Argumenty wskaźnikowe są również używane w celu uniknięcia narzutu związanego
z kopiowaniem dużych elementów przy każdym wywołaniu funkcji. Takie argumenty to
zwykle struktury, rzadziej liczby zmiennoprzecinkowe o podwójnej precyzji. Tablice są
zawsze przekazywane przez referencję i w przypadku większości architektur inne proste
typy danych wydajniej jest kopiować w momencie wywołania funkcji niż przekazywać
je przez referencję. Poniższa funkcja wykorzystuje dwa argumenty typu strukturalnego
2
XFree86-3.3/xc/doc/specs/PEX5/PEX5.1/SI/xref.h: 113.
3
XFree86-3.3/xc/doc/specs/PEX5/PEX5.1/SI/xref.c: 268.
4
netbsdsrc/bin/pax/cache.c: 430 – 490.
9. 76 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
(now oraz then) przekazywane przez referencję tylko w celu obliczenia wyniku bez mo-
dyfikowania treści struktur. Zapewne zapisano ją w ten sposób w celu uniknięcia narzutu
związanego z kopiowaniem struktury timeval przy każdym wywołaniu5.
static double
diffsec(struct timeval *now),
struct timeval *then)
{
return ((now->tv_sec – then->tv_sec)*1.0
+ (now->tv_usec – then->tv_usec)/1000000.0);
}
We współczesnych programach pisanych w C i C++ często można zidentyfikować
argumenty przekazywane przez referencję ze względów wydajnościowych, gdyż są
opatrzone deklaratorem const6.
static char *ccval (const struct cchar *, int);
Rola każdego z argumentów jest czasem również identyfikowana poprzez użycie komen-
tarza IN lub OUT, jak w poniższej (zapisanej w stylu sprzed ANSI C) definicji funkcji7:
int
atmresolve(rt, m, dst, desten)
register struct rtentry *rt;
struct muf *m;
register struct sockaddr *dst;
register struct atm_pseudohdr *desten; /* OUT */
{
3.1.4. Uzyskiwanie dostępu do elementów danych
W podrozdziale 4.2 zostanie przedstawiony sposób użycia wskaźnika jako kursora bazy
danych służącego do uzyskiwania dostępu do elementów tabeli. Można wymienić pew-
ne kluczowe pojęcia pomagające w czytaniu kodu, zawierające wskaźniki służące do
uzyskiwania dostępu do tablic. Po pierwsze, wskaźnik na adres elementu tablicy może
być wykorzystany do uzyskania dostępu do elementu znajdującego się pod określonym
indeksem. Po drugie, arytmetykę wskaźników na elementy tablicy charakteryzują te
same cechy semantyczne, co arytmetykę odpowiednich indeksów tablicy. W tabeli 3.1
przedstawiono przykłady wykonywania najczęściej występujących operacji w czasie
uzyskiwania dostępu do tablicy a o elementach typu T. Na listingu 3.18 przedstawiono
przykład kodu ze wskaźnikami służącego do uzyskiwania dostępu do stosu.
Listing 3.1. Dostęp poprzez wskaźnik do stosu opartego na tablicy
stackp = de_stack;†† Inicjalizacja stosu
[...]
*stackp++ = finchar;†† Odłożenie finchar na stos
[...]
do {
5
netbsdsrc/sbin/ping/ping.c: 1028 – 1034.
6
netbsdsrc/bin/stty/print.c: 56.
7
netbsdsrc/sys/netinet/if_atm.c: 223 – 231.
8
netbsdsrc/usr.bin/compress/zopen.c: 523 – 555.
10. Rozdział 3. ♦ Zaawansowane typy danych języka C 77
Tabela 3.1. Kod wykorzystujący indeksy oraz wskaźniki, służący do uzyskiwania dostępu
do tablicy a o elementach typu T
Kod z użyciem indeksów Kod z użyciem wskaźników
int i; T *p
i = 0 p = a lub p = &a[0]
a[i] *p
a[i].f p->f
i++ p++
i += K p += K
i == N p == &a[N] lub p == a + N
if (count-- == 0)
return (num);
*bp++ = *--stackp;†† Zdjęcie elementu ze stosu do *bp
} while (stackp > de_stack);†† Sprawdzenie czy stos jest pusty
3.1.5. Tablice jako argumenty i wyniki
W programach pisanych w językach C i C++ wskaźniki pojawiają się w przypadku
przekazywania tablic do funkcji oraz ich zwracania jako wyników. W kodzie C, kiedy
nazwa tablicy zostanie użyta jako argument funkcji, przekazywany jest do niej tylko
adres pierwszego elementu tablicy. W rezultacie wszelkie modyfikacje dokonane na
danych tablicy w czasie wykonywania funkcji mają wpływ na elementy tablicy przeka-
zanej przez obiekt wywołujący funkcję. Takie niejawne wywołanie przez referencję
w przypadku tablic odróżnia je od sposobu przekazywania do funkcji wszystkich innych
typów języka C, a przez to może być źródłem niejasności.
Podobnie funkcje języka C mogą zwracać jedynie wskaźnik na element tablicy, a nie
całą tablicę. A zatem, kiedy funkcja tworzy w tablicy wynik, a następnie zwraca odpo-
wiedni wskaźnik, istotną rzeczą jest zapewnienie, aby tablica nie była zmienną lokalną,
której pamięć jest przydzielana na stosie funkcji. W takim przypadku przestrzeń tablicy
może zostać nadpisana po zakończeniu działania funkcji i w konsekwencji wynik jej
działania będzie niepoprawny. Jednym ze sposobów na uniknięcie tego problemu jest
zadeklarowanie takiej tablicy jako statycznej (static), jak w przypadku poniższej funk-
cji, która zamienia adres internetowy na jego reprezentację z wartościami dziesiętnymi
rozdzielonymi kropkami9.
char *inet_ntoa(struct in_addr ad)
{
unsigned long int s_ad;
int a, b, c, d;
static char addr[20];
s_ad = ad.s_addr;
d = s_ad % 256;
s_ad /= 256;
c = s_ad % 256;
9
netbsdsrc/libexec/identd/identd.c: 120 – 137.
11. 78 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
s_ad /= 256;
b = s_ad % 256;
a = s_ad / 256;
sprintf(addr, "%d.%d.%d.%d", a, b, c, d);
return addr;
}
Funkcja tworzy wynik w buforze addr. Gdyby nie został on zadeklarowany jako static,
jego zawartość (czytelna reprezentacja adresu internetowego) stałaby się nieprawidłowa
po zakończeniu działania funkcji. Nawet powyższa konstrukcja nie jest w pełni bezpiecz-
na. Funkcje wykorzystujące globalne lub statyczne zmienne lokalne nie są w większo-
ści przypadków wielobieżne. Oznacza to, że funkcja nie może zostać wywołana z po-
ziomu wątku innego programu, kiedy jedna instancja tej funkcji już działa. Co gorsza,
w naszym przypadku wynik funkcji musi zostać zapisany w innym miejscu (na przykład
przy użyciu wywołania funkcji strdup) zanim funkcja zostanie wywołana ponownie.
W przeciwnym razie zostałby on nadpisany nowym rezultatem. Przykładowo, przed-
stawiona implementacja funkcji inet_ntoa nie mogłaby zostać użyta zamiast funkcji
10
naddr_ntoa w następującym kontekście :
(void)fprintf(ftrace, "%s Router Ad from %s to %s via %s life=%dn",
act, naddr_ntoa(from), naddr_ntoa(to),
ifp ? ifp->int_name : "?",
ntohs(p->ad.icmp_ad_life));
W tym przypadku w celu obejścia opisanego problemu funkcja naddr_ntoa jest używana
jako kod opakowujący dla funkcji inet_ntoa, zapewniając przechowanie jej wyniku
w liście cyklicznej o czterech różnych buforach tymczasowych11.
char *
naddr_ntoa(naddr a)
{
#define NUM_BUFS 4
static int bufno;
static struct {
char str[16]; /* xxx.xxx.xxx.xxx0 */
} bufs[NUM_BUFS];
char *s;
struct in_addr addr;
addr.s_addr = a;
s = strcpy(bufs[bufno].str, inet_ntoa(addr));
bufno = (bufno+1) % NUM_BUFS;
return s;
}
3.1.6. Wskaźniki na funkcje
Często przydatnym rozwiązaniem jest sparametryzowanie funkcji poprzez przekazywa-
nie jej do innej funkcji jako argumentu. Jednak język C nie dopuszcza przekazywania
funkcji jako argumentów. Możliwe jest jednak przekazanie jako argumentu wskaźnika
na funkcję. Na listingu 3.212 funkcja getfile, używana do przetwarzania plików w cza-
sie procesu odtwarzania po awarii, pobiera parametry fill oraz skip. Służą one do
10
netbsdsrc/sbin/routed/rdisc.c: 121 – 125.
11
netbsdsrc/sbin/routed/trace.c: 123 – 139.
12
netbsdsrc/sbin/restore/tape.c: 177 – 837.
12. Rozdział 3. ♦ Zaawansowane typy danych języka C 79
określenia, w jaki sposób należy odczytywać lub pomijać dane. Funkcja jest wywoły-
wana (listing 3.2:1) z różnymi argumentami (listing 3.2:3) w celu wykonania począt-
kowego przeglądu danych lub odtworzenia albo pominięcia plików danych.
Listing 3.2. Parametryzacja przy użyciu argumentów funkcji
/*
* Verify that the tape drive can be accessed and
* that it actually is a dump tape.
*/
void
setup()
{
[...]
getfile(xtrmap, xtrmapskip);†† [1] Wywołanie z argumentami
[...] będącymi wskaźnikami na funkcje
}
/* Prompt user to load a new dump volume. */
void
getvol(int nextvol)
{
[...]
getfile(xtrlnkfile, xtrlnkskip);†† [1]
[...]
getfile(xtrfile, xtrskip);†† [1]
[...]
}
/*
* skip over a file on the tape
*/
void
skipfile()
{
curfile.action = SKIP;
getfile(xtrnull, xtrnull);†† [1]
}
/* Extract a file from the tape. */
void
getfile(void (*fill)(char *, long), (*skip)(char *, long))
{
[...]
(*fill)((char *)buf, (long)(size > TP_BSIZE ?††† [2] Wywołanie funkcji
††††fssize : (curblk - 1) * TP_BSIZE + size));†† przekazanej w argumencie
[...]
(*skip)(clearedbuf, (long)(size > TP_BSIZE ?†† [2]
††††TP_BSIZE : size));††††††††††††††††††††††††
[...]
(*fill)((char *)buf, (long)((curblk * TP_BSIZE) + size));†† [2]
[...]
}
/* Write out the next block of a file. */††††††††††††††††††††††† [3] Funkcje przekazywane
static void††††††††††††††††††††††††††††††††††††††††††††††††††††† jako parametry argumentów
xtrfile(char *buf, long size)†††††††††††††††††††††††††††††††††††
{ [...] }†††††††††††††††††††††††††††††††††††††††††††††††††††††††
/* Skip over a hole in a file. */†††††††††††††††††††††††††††††††
static void†††††††††††††††††††††††††††††††††††††††††††††††††††††
xtrskip(char *buf, long size)†††††††††††††††††††††††††††††††††††
{ [...] }†††††††††††††††††††††††††††††††††††††††††††††††††††††††
/* Collect the next block of a symbolic link. */††††††††††††††††
static void†††††††††††††††††††††††††††††††††††††††††††††††††††††
13. 80 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
xtrlnkfile(char *buf, long size) †††††††††††††††††††††††††††††††
{ [...] }†††††††††††††††††††††††††††††††††††††††††††††††††††††††
/* Skip over a hole in a symbolic link (should never happen). */
static void†††††††††††††††††††††††††††††††††††††††††††††††††††††
xtrlnkskip(char *buf, long size)††††††††††††††††††††††††††††††††
{ [...] }†††††††††††††††††††††††††††††††††††††††††††††††††††††††
/* Collect the next block of a bit map. */††††††††††††††††††††††
static void†††††††††††††††††††††††††††††††††††††††††††††††††††††
xtrmap(char *buf, long size)††††††††††††††††††††††††††††††††††††
{ [...] }†††††††††††††††††††††††††††††††††††††††††††††††††††††††
/* Skip over a hole in a bit map (should never happen). */††††††
static void†††††††††††††††††††††††††††††††††††††††††††††††††††††
xtrmapskip(char *buf, long size)††††††††††††††††††††††††††††††††
{ [...] }†††††††††††††††††††††††††††††††††††††††††††††††††††††††
/* Noop, when an extraction function is not needed. */††††††††††
void††††††††††††††††††††††††††††††††††††††††††††††††††††††††††††
xtrnull(char *buf, long size) ††††††††††††††††††††††††††††††††††
{ return; }†††††††††††††††††††††††††††††††††††††††††††††††††††††
Wiele plików z bibliotek języka C, takich jak qsort i bsearch, pobiera argumenty będące
wskaźnikami na funkcje, które określają sposób ich działania13.
getnfile()
{
[...]
qsort(nl, nname, sizeof(nltype), valcmp);
[...]
}
valcmp(nltype *p1, nltype *p2)
{
if ( p1 -> value < p2 -> value ) {
return LESSTHAN;
}
if ( p1 -> value > p2 -> value ) {
return GREATERTHAN;
}
return EQUALTO;
}
W powyższym przykładzie sposób, w jaki funkcja qsort porównuje elementy sortowanej
tablicy, określa funkcja valcmp.
Wreszcie, wskaźniki na funkcje mogą być używane do parametryzowania sterowania
w treści kodu. W poniższym przykładzie wskaźnik closefunc jest używany do przecho-
wywania funkcji, która zostanie wywołana w celu zamknięcia strumienia fin w zależno-
ści od sposobu jego otwarcia14.
void
retrieve(char *cmd, char *name)
{
int (*closefunc)(FILE *) = NULL;
[...]
if (cmd == 0) {
fin = fopen(name, "r"), closefunc = fclose;
[...]
if (cmd) {
13
netbsdsrc/usr.bin/gprof/gprof.c: 216 – 536.
14
netbsdsrc/libexec/ftpd/ftpd.c: 792 – 860.
14. Rozdział 3. ♦ Zaawansowane typy danych języka C 81
[...]
fin = ftpd_popen(line, "r", 1), closefunc = ftpd_pclose;
[...]
(*closefunc)(fin);
}
3.1.7. Wskaźniki jako aliasy
Wskaźniki są często używane do tworzenia aliasów pewnych wartości15.
struct output output = {NULL, 0, NULL, OUTBUFSIZ, 1, 0};
[...]
struct output *out1 = &output;
W powyższym przykładzie kodu poddany dereferencji wskaźnik out1 może zostać użyty
zamiast oryginalnej wartości zmiennej output. Aliasów używa się z wielu różnych
powodów.
Kwestie wydajnościowe
Przypisanie wskaźnika jest bardziej wydajne od przypisania większego obiektu. W po-
niższym przykładzie wskaźnik curt mógłby być zmienną strukturalną, a nie wskaźnikiem
na taką strukturę. Jednak odpowiednia instrukcja przypisania byłaby mniej wydajna,
gdyż wiązałaby się ze skopiowaniem zawartości całej struktury16.
static struct termios cbreakt, rawt, *curt;
[...]
curt = useraw ? &rawt : &cbreakt;
Odwołania do statycznie inicjalizowanych danych
Zmienna jest używana do wskazywania na różne wartości danych statycznych. Najczęściej
spotykany przykład w tym przypadku to zbiór wskaźników znakowych wskazujących
na różne ciągi znaków17.
char *s;
[...]
s = *(opt->bval) ? "True" : "False";
Implementacja semantyki odwołań do zmiennych
w kontekście globalnym
Mało przyjazny tytuł niniejszego punktu odnosi się do odpowiednika użycia wskaźni-
ków wywołań przez referencję, tyle że z wykorzystaniem zmiennej globalnej zamiast
argumentu funkcji. Zatem globalna zmienna wskaźnikowa jest używana do odwoływa-
nia się do danych, do których należy uzyskać dostęp i zmodyfikować je w innym miej-
scu. W przedstawionym poniżej generatorze liczb pseudolosowych wskaźnik fptr jest
15
netbsdsrc/bin/sh/output.c: 81 – 84.
16
netbsdsrc/lib/libcurses/tty.c: 66 – 171.
17
netbsdsrc/games/rogue/room.c: 629 – 635.
15. 82 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
inicjalizowany tak, aby wskazywał na wpis w tabeli ziaren generatora liczb pseudoloso-
wych. W podobny sposób jest on ustawiany w funkcji srrandom(). W końcu, w funkcji
18
rrandom() zmienna fptr jest używana do zmodyfikowania wartości, na którą wskazuje .
static long rntb[32] = {
3, 0x9a319039, 0x32d9c024, 0x9b663182, 0x5da1f342,
[...]
};
static long *fptr = &rntb[4];
[...]
void
srrandom(int x)
{
[...]
fptr = &state[rand_sep];
[...]
}
long
rrandom()
{
[...]
*fptr += *rptr;
i = (*fptr >> 1) & 0x7fffffff;
Równoważny rezultat otrzymalibyśmy, przekazując fptr jako argument do funkcji
srrandom() oraz rrandom().
Podobne podejście jest często wykorzystywane w celu uzyskiwania dostępu do mody-
fikowalnej kopii danych globalnych19.
WINDOW scr_buf;
WINDOW *curscr = &scr_buf;
[...]
move(short row, short col);
{
curscr->_cury = row;
curscr->_curx = col;
screen_dirty = 1;
}
3.1.8. Wskaźniki a ciągi znaków
W języku C literały znakowe są reprezentowane przez tablicę znaków zakończoną zna-
kiem zerowym '0'. W rezultacie ciągi znaków są reprezentowane przez wskaźnik na
pierwszy znak sekwencji zakończonej znakiem zerowym. W poniższym fragmencie
kodu można zobaczyć, w jaki sposób kod funkcji bibliotecznej języka C strlen prze-
suwa wskaźnik wzdłuż ciągu znaków przekazanego jako parametr funkcji do momentu
osiągnięcia jego końca. Następnie odejmuje wskaźnik na początek ciągu od wskaźni-
ka na końcowy znak zerowy w celu obliczenia i zwrócenia długości ciągu20.
18
netbsdsrc/games/rogue/random.c: 62 – 109.
19
netbsdsrc/games/rogue/curses.c: 121 – 157.
20
netbsdsrc/lib/libc/string/strlen.c: 51 – 59.
16. Rozdział 3. ♦ Zaawansowane typy danych języka C 83
size_t
strlen(const char *str)
{
register const char *s;
for (s = str; *s; ++s)
;
return(s - str);
}
Czytając kod operujący na ciągach znaków, należy pamiętać o istniejącym rozróżnie-
niu na wskaźniki znakowe i tablice znaków. Choć obie konstrukcje są często używane
do reprezentowania ciągów znaków (ze względu na fakt, że tablica znaków jest au-
tomatycznie konwertowana na wskaźnik na pierwszy znak w tablicy w momencie
przekazania do funkcji), odpowiednie typy i operacje, które można na nich wykonywać,
są różne. Przykładowo, poniższy kod definiuje zmienną pw_file jako wskaźnik na znak
wskazujący na stałą znakową zawierającą sekwencję "/etc/passwd"21.
static char *pw_file = "/etc/passwd";
Rozmiar zmiennej pw_file na maszynie Autora wynosi 4 i może ona zostać zmodyfi-
kowana tak, aby wskazywała inne miejsce, jednak próba zmiany zawartości pamięci,
na którą wskazuje, spowoduje niezdefiniowane zachowanie.
Z drugiej strony, poniższy wiersz definiuje zmienną line jako tablicę znaków zainicja-
lizowaną treścią "/dev/XtyXX", po której występuje wartość zerowa22.
static char line[] = "/dev/XtyXX";
Zastosowanie operatora sizeof względem line daje w wyniku 11. Zmienna line zawsze
będzie odwoływać się do tego samego obszaru pamięci, a elementy które zawiera mogą
być dowolnie modyfikowane23.
line[5] = 'p';
Pamiętanie o różnicach istniejących między tablicami znaków a wskaźnikami podczas
czytania kodu jest istotne, gdyż obie konstrukcje są używane, często zamiennie, w po-
dobnych celach. W szczególności żaden kompilator języka C nie ostrzega użytkownika
o sytuacji, w której obie zostaną przypadkowo wymieszane w ramach różnych plików.
Weźmy pod uwagę poniższe dwie (niezwiązane ze sobą) definicje oraz odpowiednią
deklarację24, 25, 26.
char version[] = "332";
char *version = "2.1.2";
extern char *version;
21
netbsdsrc/distrib/utils/libhack/getpwent.c: 45.
22
netbsdsrc/lib/libutil/pty.c: 71.
23
netbsdsrc/lib/libutil/pty.c: 81.
24
netbsdsrc/usr.bin/less/less/version.c: 575.
25
netbsdsrc/libexec/identd/version.c: 3.
26
netbsdsrc/libexec/identd/identd.c: 77.
17. 84 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
Obie definicje są używane do zdefiniowania ciągu informującego o wersji, który jest
zapewne przekazywany do funkcji printf w celu wydrukowania na ekranie. Jednakże
deklaracja extern char *version może być użyta jedynie w celu uzyskania dostępu
do zmiennej zdefiniowanej jako char *version. Choć konsolidacja pliku źródłowego
z plikiem zawierającym definicję char version[] zwykle nie spowoduje wygenerowa-
nia błędu, wynikowy program zakończy awaryjnie działanie po uruchomieniu. Zmienna
version zamiast wskazywać na obszar pamięci, zawierający ciąg z informacją o wersji,
będzie prawdopodobnie wskazywała na obszar pamięci, której adres jest reprezento-
wany przez wzorzec bitowy ciągu znaków "332" (0x33333200 w przypadku architektur
niektórych procesorów).
3.1.9. Bezpośredni dostęp do pamięci
Ze względu na fakt, że wskaźniki są wewnętrznie reprezentowane jako adresy pamię-
ci, można spotkać kod niskopoziomowy wykorzystujący wskaźniki do uzyskiwania
dostępu do obszarów pamięci związanych z zasobami sprzętowymi. Wiele urządzeń
peryferyjnych, takich jak karty graficzne i sieciowe, wykorzystuje ogólnodostępną
pamięć w celu wymiany danych z procesorem systemowym. Zmienna zainicjalizowana
tak, aby wskazywała na ten obszar, może być z łatwością wykorzystywana do komu-
nikowania się z danym urządzeniem. W poniższym przykładzie zmienna video jest
ustawiana tak, aby wskazywała na obszar pamięci zajmowany przez sterownik ekranu
(0xe08b8000). Zapis do tego obszaru przy przesunięciu określonym przez dany wiersz
i kolumnę (vid_ypos oraz vid_xpos) powoduje pojawienie się na ekranie odpowiedniego
znaku (c)27.
static void
vid_wrchar(char c)
{
volatile unsigned short *video;
video = (unsigned short *)(0xe08b8000) + vid_ypos * 80 + vid_xpos;
*video = (*video & 0xff00) | 0x0f00 | (unsigned short)c;
}
Należy pamiętać, że współczesne systemy operacyjne zapobiegają uzyskiwaniu dostępu
do zasobów sprzętowych przez programy użytkownika bez podjęcia wcześniej odpo-
wiednich kroków. Tego rodzaju kod spotyka się w zasadzie tylko w przypadku badania
systemów osadzonych lub kodu jądra systemu i sterowników urządzeń.
Ćwiczenie 3.1. Zaproponuj własną implementację stosu opartego na wskaźnikach z bi-
blioteki compress28 używając indeksu tablicy. Zmierz różnicę w szybkości i skomentuj
czytelność obu implementacji.
Ćwiczenie 3.2. Zlokalizuj na płycie CD-ROM dołączonej do książki trzy wystąpienia
kodu używającego wskaźników z każdego z wymienionych powodów.
27
netbsdsrc/sys/arch/pica/pica/machdep.c: 951 – 958.
28
netbsdsrc/usr.bin/compress/zopen.c
18. Rozdział 3. ♦ Zaawansowane typy danych języka C 85
Ćwiczenie 3.3. Jeżeli Czytelnik zna język C++ lub Java, może spróbować wyjaśnić,
w jaki sposób można zminimalizować (w języku C++) lub uniknąć (w języku Java)
używania wskaźników.
Ćwiczenie 3.4. Czym różni się wskaźnik języka C od adresu pamięci? Jaki ma to wpływ
na zrozumienie kodu? Jakie narzędzia wykorzystują istniejącą różnicę?
Ćwiczenie 3.5. Czy ciągi znaków zawierające informacje o wersji programu powinny
być reprezentowane jako tablice znaków czy jako wskaźniki na ciągi znaków? Uza-
sadnij odpowiedź.
3.2. Struktury
Konstrukcja języka C struct to zgrupowanie elementów danych, które umożliwia
używanie ich wspólnie. Struktury są używane w programach pisanych w C w celu:
zgrupowania elementów danych używanych zwykle wspólnie;
zwrócenia wielu elementów danych z funkcji;
konstruowania powiązanych struktur danych (podrozdział 4.7);
odwzorowania organizacji danych w urządzeniach sprzętowych,
łączach sieciowych oraz nośnikach danych;
implementacji abstrakcyjnych typów danych (podrozdział 9.3.5);
tworzenia programów zgodnie z paradygmatem obiektowym.
Poniższe punkty stanowią rozwinięcie dyskusji na temat użycia struktur i poruszają
zagadnienia nie omawiane w innych podrozdziałach.
3.2.1. Grupowanie elementów danych
Struktury są często używane w celu tworzenia grup powiązanych elementów, które
zazwyczaj są używane wspólnie jako całość. Sztandarowym przykładem jest tu repre-
zentacja współrzędnych pozycji na ekranie29.
struct point {
int col, line;
};
W innych przypadkach może chodzić o liczby zespolone lub pola tworzące wiersze tabeli.
3.2.2. Zwracanie wielu elementów danych z funkcji
Kiedy wynik działania funkcji należy wyrazić używając więcej niż jednego podstawo-
wego typu danych, wiele elementów wyniku można zwrócić albo poprzez argumenty
wywołania funkcji przekazane przez referencję (patrz podrozdział 3.1.3), albo grupując
29
netbsdsrc/games/snake/snake/snake.c: 75 – 77.
19. 86 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
je w ramach zwracanej struktury. W poniższym przykładzie funkcja difftv zwraca róż-
nicę między dwiema wartościami czasowymi wyrażonymi w sekundach (tv_sec) oraz
w mikrosekundach (tv_usec) w postaci struktury timeval30.
static struct timeval
difftv(struct timeval a, struct timeval b)
{
static struct timeval diff;
diff.tv_sec = b.tv_sec - a.tv_sec;
if ((diff.tv_usec = b.tv_usec - a.tv_usec) < 0) {
diff.tv_sec--;
diff.tv_usec += 1000000;
}
return(diff);
}
3.2.3. Odwzorowanie organizacji danych
Kiedy dane są przesyłane przez sieć, przenoszone z i na urządzenie pamięci masowej
lub kiedy programy bezpośrednio komunikują się ze sprzętem, struktury są często uży-
wane w celu reprezentowania sposobu organizacji danych w przypadku takiego medium.
Poniższa struktura reprezentuje blok poleceń karty sieciowej Intel EtherExpress31.
struct fxp_cb_nop {
void *fill[2];
volatile u_int16_t cb_status;
volatile u_int16_t cb_command;
volatile u_int16_t link_addr;
};
Kwalifikator volatile jest używany w celu oznaczenia, że odpowiednie pola pamięci
są używane przez obiekty pozostające poza kontrolą programu (w tym przypadku chodzi
o kartę sieciową). Kompilator nie może więc przeprowadzać optymalizacji na takich
polach, na przykład usuwać nadmiarowych referencji.
W określonych przypadkach można zadeklarować pole bitowe (ang. bit field), określa-
jące ścisły zakres bitów używanych do przechowywania określonej wartości w danym
urządzeniu32.
struct fxp_cb_config {
[...]
volatile u_int8_t byte_count:6,
:2;
volatile u_int8_t rx_fifo_limit:4,
tx_fifo_limit:3,
:1;
W powyższym przykładzie liczba przesyłanych bajtów określona jako byte_count ma
zajmować 6 bitów, natomiast ograniczenia kolejek FIFO odbiornika i nadajnika mają
zajmować, odpowiednio, 4 i 3 bity w urządzeniu sprzętowym.
30
netbsdsrc/usr.bin/named/dig/dig.c: 1221 – 1233.
31
netbsdsrc/sys/dev/pci/if_fxpreg.h: 102 – 107.
32
netbsdsrc/sys/dev/pci/if_fxpreg.h: 116 – 125.
20. Rozdział 3. ♦ Zaawansowane typy danych języka C 87
Pakiety danych sieciowych również są często kodowane przy użyciu struktur języka
C w celu określenia struktury ich elementów, co ukazuje poniższa klasyczna definicja
nagłówka pakietów TCP33.
struct tcphdr {
u_int16_t th_sport; /* source port */
u_int16_t th_dport; /* destination port */
tcp_seq th_seq; /* sequence number */
tcp_seq th_ack; /* acknowledgement number */
Wreszcie, struktury są również używane w celu odwzorowania sposobu przechowy-
wania danych na nośnikach danych, na przykład dyskach lub taśmach. Przykładowo,
właściwości dysku partycji systemu MS-DOS określa się za pomocą tak zwanego bloku
parametrów BIOS. Jego pola odwzorowuje poniższa struktura34.
struct bpb33 {
u_int16_t bpbBytesPerSec; /* bytes per sector */
u_int8_t bpbSecPerClust; /* sectors per cluster */
u_int16_t bpbResSectors; /* number of reserved sectors */
u_int8_t bpbFATs; /* number of FATs */
u_int16_t bpbRootDirEnts; /* number of root directory entries */
u_int16_t bpbSectors; /* total number of sectors */
u_int8_t bpbMedia; /* media descriptor */
u_int16_t bpbFATsecs; /* number of sectors per FAT */
u_int16_t bpbSecPerTrack; /* sectors per track */
u_int16_t bpbHeads; /* number of heads */
u_int16_t bpbHiddenSecs; /* number of hidden sectors */
};
Sposób uporządkowania pól w ramach struktury jest zależny od architektury oraz kom-
pilatora. Ponadto reprezentacja różnych elementów w strukturze jest zależna od archi-
tektury oraz systemu operacyjnego (system operacyjny może wymuszać na procesorze
dostosowanie się do określonej kolejności przechowywania bajtów). Nawet proste typy
danych, takie jak liczby całkowite, mogą posiadać swoją wartość przechowywaną na
różne sposoby. Stąd użycie struktur w celu odwzorowania zewnętrznych danych sta-
nowi z gruntu nieprzenośne rozwiązanie.
3.2.4. Programowanie obiektowe
W języku C struktury są czasem używane do tworzenia konstrukcji przypominających
obiekty poprzez zgrupowanie razem elementów danych i wskaźników na funkcje w celu
zasymulowania pól i metod klasy. W poniższym przykładzie struktura domain, reprezen-
tująca różne domeny protokołu sieciowego (na przykład internet, SNA, IPX), grupuje
dane dotyczące określonej domeny, takie jak jej rodzina dom_family oraz metody służą-
ce do operowania na nich, takie jak metoda inicjalizacji tabeli routingu dom_rtattach35.
struct domain {
int dom_family; /* AF_xxx */
char *dom_name;
33
netbsdsrc/sys/netinet/tcp.h: 43 – 47.
34
netbsdsrc/sys/msdosfs/bpb.h: 22 – 34.
35
netbsdsrc/sys/sys/domain.h: 50 – 65.
21. 88 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
void (*dom_init)(void); /* initialize domain data structures */
[...]
int (*dom_rtattach)(void **, int);
/* initialize routing table */
int dom_rtoffset; /* an arg to rtattach, in bits */
int dom_maxrtkey; /* for routing layer */
};
Po wprowadzeniu takiej deklaracji, zmienne określonego typu strukturalnego, czy też
ściślej rzecz ujmując — wskaźniki na typ strukturalny — po odpowiednim zainicjali-
zowaniu mogą być traktowane w sposób przypominający użycie obiektów w językach
C++ i Java36.
for (dom = domains; dom; dom = dom->dom_next)
if (dom->dom_family == i && dom->dom_rtattach) {
dom->dom_rtattach((void **)&nep->ne_rtable[i],
dom->dom_rtoffset);
break;
Ze względu na fakt, że „obiekty” mogą być inicjalizowane za pomocą różnych „metod”
(wskaźników na funkcje), a jednak są używane poprzez ten sam interfejs (wywołania
następują poprzez te same nazwy składowych struktur), opisana technika stanowi im-
plementację metod wirtualnych (ang. virtual methods), dostępnych w językach obiekto-
wych, oraz programowania polimorficznego (ang. polymorphic programming). W rze-
czywistości, ze względu na fakt, że obiekty należące do tej samej klasy współużytkują
swoje metody (ale nie pola), wskaźniki na metody są często dzielone przez różne obiekty
dzięki przechowywaniu w strukturze „obiektów” jedynie wskaźnika na inną strukturę
zawierającą wskaźniki na faktyczne metody37.
struct file {
[...]
short f_type; /* descriptor type */
short f_count; /* reference count */
short f_msgcount; /* references from message queue */
struct ucred *f_cred; /* credentials associated with descriptor */
struct fileops {
int (*fo_read)(struct file *fp, struct uio *uio,
struct ucred *cred);
int (*fo_write)(struct file *fp, struct uio *uio,
struct ucred *cred);
int (*fo_ioctl)(struct file *fp, u_long com,
caddr_t data, struct proc *p);
int (*fo_poll)(struct file *fp, int events,
struct proc *p);
int (*fo_close)(struct file *fp, struct proc *p);
} *f_ops;
off_t f_offset;
caddr_t f_data; /* vnode or socket */
};
W powyższym przykładzie każdy obiekt reprezentujący otwarty plik lub gniazdo dzieli
swoje metody read, write, ioctl, poll oraz close poprzez składową struktury f_ops,
wskazującą na dzieloną strukturę fileops.
36
netbsdsrc/sys/kern/vfs_subr.c: 1436 – 1440.
37
netbsdsrc/sys/sys/file.h: 51 – 73.
22. Rozdział 3. ♦ Zaawansowane typy danych języka C 89
Ćwiczenie 3.6. Alternatywnym sposobem przekazywania do funkcji danych typu tabli-
cowego przez wartość i zwracania ich jako rzeczywistych wartości jest zawarcie tablicy
w strukturze. Zlokalizuj takie przykłady na płycie dołączonej do książki. Wyjaśnij,
dlaczego takie podejście nie jest wykorzystywane zbyt często.
Ćwiczenie 3.7. Zlokalizuj 20 oddzielnych wystąpień struktur na płycie dołączonej do
książki i określ powód ich wykorzystania. Zapoznaj się z biblioteką struktur danych
ogólnego przeznaczenia, taką jak STL języka C++ lub java.util. Wskaż, które wystą-
pienia można by zapisać korzystając z biblioteki. Zminimalizuj czas poświęcony każ-
demu wystąpieniu.
Ćwiczenie 3.8. Wiele technik, bibliotek oraz narzędzi obsługuje przenośne kodowanie
danych w celu ich przenoszenia między aplikacjami. Określ techniki mające zastoso-
wanie w Twoim środowisku i porównaj je z użyciem podejścia bazującego na struktu-
rach języka C.
3.3. Unie
Konstrukcja języka C union grupuje elementy, które dzielą ten sam obszar pamięci.
Możliwy jest dostęp tylko do jednego elementu naraz spośród współużytkujących taki
obszar. Unie są używane w języku C w celu:
zapewnienia wydajnego wykorzystania pamięci;
zaimplementowania polimorfizmu;
umożliwienia dostępu do danych przy użyciu różnych reprezentacji wewnętrznych.
3.3.1. Wydajne wykorzystanie pamięci
Często spotykane uzasadnienie wykorzystania unii dotyczy współużytkowania tego
samego obszaru pamięci w dwóch różnych celach. Ma to na celu zaoszczędzenie przy-
najmniej kilku bajtów pamięci. Istnieją przypadki, w których unie są wykorzystywane
wyłącznie w tym celu. Jednak w przypadku, gdy urządzenia wbudowane obsługują
pamięć o wielomegabajtowej pojemności, używanie unii staje się nieuzasadnione.
Oprócz starszego kodu można również spotkać przypadki, gdy duża liczba obiektów
opartych na unii uzasadnia dodatkowe wysiłki związane z napisaniem odpowiedniego
kodu. Poniższy przykład pochodzący z funkcji malloc standardowej biblioteki języka
C to typowy przypadek38.
union overhead {
union overhead *ov_next; /* when free */
struct {
u_char ovu_magic; /* magic number */
u_char ovu_index; /* bucket # */
#ifdef RCHECK
u_short ovu_rmagic; /* range magic number */
38
netbsdsrc/lib/libc/stdlib/malloc.h: 78 – 92.
23. 90 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
u_long ovu_size; /* actual block size */
#endif
} ovu;
#define ov_magic ovu.ovu_magic
#define ov_index ovu.ovu_index
#define ov_rmagic ovu.ovu_rmagic
#define ov_size ovu.ovu_size
};
Bloki pamięci mogą być zajęte lub wolne. W każdym przypadku muszą być przecho-
wywane różne wartości a ze względu na fakt, że blok nie może być jednocześnie wolny
i zajęty, mogą one dzielić tę samą przestrzeń pamięci. Dodatkowe koszty programistycz-
ne związane z konserwacją takiego rozwiązania są amortyzowane tysiącami elementów,
które są przydzielane w wyniku wywołań funkcji bibliotecznych.
Warto zwrócić uwagę na definicję makro, która występuje po definicji struktury ovu.
Takie definicje są często używane jako skrócona forma odwoływania się bezpośrednio
do składowych struktury w ramach unii bez konieczności używania na początku nazwy
składowej unii. Stąd przedstawiony kod ma postać39
op->ov_index = bucket;
zamiast bardziej rozbudowanego odwołania op->ovu.ovu_index.
3.3.2. Implementacja polimorfizmu
Najczęściej występującym powodem wykorzystania unii jest chęć zaimplementowania
polimorfizmu. W tym przypadku ten sam obiekt (zwykle reprezentowany przez struktu-
rę języka C) jest używany w celu reprezentowania różnych typów. Dane dla takich
różnych typów są przechowywane w oddzielnych składowych unii. Dane polimorficzne
przechowywane w ramach unii pozwalają również zaoszczędzić pamięć w przypadku
różnych konfiguracji. Jednak w tym przypadku unia jest używana w celu wyrażenia
charakterystyki obiektu, który przechowuje różne typy danych, a nie zaoszczędzenia
zasobów. Unie używane w ten sposób są zwykle zawarte w strukturze zawierającej pole
typu, które określa, jakiego rodzaju dane są przechowywane w unii. To pole jest często
reprezentowane za pomocą typu wyliczeniowego, a jego nazwą jest zwykle type. Poniż-
szy przykład, część biblioteki RPC (ang. Remote Procedure Call; zdalne wywoływanie
procedur), zawiera strukturę używaną do reprezentowania komunikatów RPC. Obsłu-
giwane są dwa różne rodzaje komunikatów: wywołanie oraz odpowiedź. Typ wylicze-
niowy msg_type stanowi rozróżnienie między tymi dwoma typami, natomiast unia zawie-
ra strukturę z elementami danych dla każdego typu40.
enum msg_type {
CALL=0,
REPLY=1
};
[...]
struct rpc_msg {
u_int32_t rm_xid;
enum msg_type rm_direction;
39
netbsdsrc/lib/libc/stdlib/malloc.c: 213.
40
netbsdsrc/include/rpc/rpc_msg.h: 54 – 158.
24. Rozdział 3. ♦ Zaawansowane typy danych języka C 91
union {
struct call_body RM_cmb;
struct reply_body RM_rmb;
} ru;
};
3.3.3. Uzyskiwanie dostępu
do różnych reprezentacji wewnętrznych
Ostatnie użycie unii jest związane z przechowywaniem danych w ramach jednego pola
unii oraz uzyskiwaniem dostępu do innego w celu przeniesienia danych między róż-
nymi reprezentacjami wewnętrznymi. Choć tego rodzaju rozwiązania są z gruntu nie-
przenośne, można bez przeszkód przeprowadzać pewne konwersje. Inne są przydatne
w pewnych określonych przypadkach, zależnych od danej maszyny. Poniższa definicja
struktury jest używana przez program archiwizujący tar w celu reprezentowania infor-
macji o każdym pliku z archiwum41.
union record {
char charptr[RECORDSIZE];
struct header {
char name[NAMSIZ];
char mode[8];
char uid[8];
char gid[8];
char size[12];
char mtime[12];
char chksum[8];
char linkflag;
char linkname[NAMSIZ];
char magic[8];
char uname[TUNMLEN];
char gname[TGNMLEN];
char devmajor[8];
char devminor[8];
} header;
};
Aby umożliwić wykrywanie uszkodzenia danych, w polu chksum jest umieszczana suma
bajtów wszystkich rekordów składających się na plik (wliczając w to rekord nagłów-
kowy). Programy wykorzystują składową unii charptr do iteracyjnego przeglądania
danych nagłówka bajt po bajcie, obliczając sumę kontrolną oraz składową header
w celu uzyskania dostępu do określonych pól nagłówka. Ze względu na fakt, że typy
całkowite w języku C (wliczając znaki) są poprawne w zakresie wszystkich możliwych
wzorców bitowych, jakie mogą reprezentować, uzyskiwanie dostępu do wewnętrznej
reprezentacji innych typów języka C (wskaźników, liczb zmiennoprzecinkowych i in-
nych typów całkowitych) jako typu całkowitego jest z założenia operacją dozwoloną.
Jednak operacja odwrotna — generowanie innego typu poprzez jego reprezentację cał-
kowitą — nie zawsze daje poprawne wyniki. W przypadku większości architektur ope-
racją bezpieczną jest generowanie typów niecałkowitych na podstawie danych, które
stanowią starszą wersję kopii ich wartości.
41
netbsdsrc/usr.bin/file/tar.h: 36 – 54.
25. 92 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
Poza tym wykorzystanie struktur w celu uzyskania dostępu do zależnych od architektu-
ry elementów danych w pewnym innym formacie jest działaniem z gruntu nieprzeno-
śnym. Może to być przydatne w przypadku interpretowania typu danych w oparciu
o jego reprezentację lub tworzenia typu danych na podstawie jego reprezentacji. W przy-
kładzie z listingu 3.342 unia u jest używana w celu uzyskania dostępu do wewnętrznej
reprezentacji liczby zmiennoprzecinkowej v w formie mantysy, wykładnika oraz zna-
ku. Taka konwersja jest wykorzystywana do rozbicia liczby zmiennoprzecinkowej na
znormalizowany ułamek oraz całkowitą potęgę liczby 2.
Listing 3.3. Uzyskiwanie dostępu do wewnętrznej reprezentacji typu przez wykorzystanie unii
double
frexp(double value, int *eptr)†† Zwracany wykładnik
{
union {
double v;†† Wartość jest przechowywana w tym polu
††††††††††††††††††††††††† Dostęp do reprezentacji wewnętrznej odbywa się przez to pole
††struct {†††††††††††††††††
††††††u_int u_mant2 : 32;†† Mantysa
††††††u_int u_mant1 : 20;††
†††††††††††††††††††††††† †††††††††††† †††††††††††† †††††††††††† †††††††††††† †††††††††††† †††††††††††† †††††††††††† †††††††††††† †††††††††††† †††††††††††† †††††††††††† †††††††††††† †††††††††††† ††††††††
††††††u_int u_exp : 11;†† Wykładnik
††††††u_int u_sign : 1;††
††} s;†††††††††††††††††††††
†††††††††††††††††††††††††††
} u;
if (value) {
u.v = value;† Zachowanie wartości
*eptr = u.s.u_exp - 1022;† Pobranie i ustawienie wykładnika ze znakiem
u.s.u_exp = 1022;† Wykładnik zerowy
return(u.v);† Zwrócenie znormalizowanej mantysy
} else {
*eptr = 0;
return((double)0);
}
}
Ćwiczenie 3.9. Zlokalizuj 20 różnych wystąpień unii na płycie dołączonej do książki
i sklasyfikuj powody ich wykorzystania. Zminimalizuj czas poświęcony każdemu wystą-
pieniu. Utwórz wykres ilustrujący częstotliwość używania tej konstrukcji w zależności
od powodu.
Ćwiczenie 3.10. Zaproponuj przenośną alternatywę względem implementacji nieprze-
nośnych konstrukcji używanych w przypadku struktur i unii. Omów swoją propozycję
w kontekście kosztów implementacyjnych, możliwości konserwacji oraz wydajności.
3.4. Dynamiczne przydzielanie pamięci
Struktura danych, której rozmiar nie jest znany w momencie pisania programu lub wzrasta
w podczas pracy programu, jest przechowywana w pamięci przydzielanej dynamicznie
w trakcie jego działania. Programy odwołują się do pamięci przydzielanej dynamicz-
nie dzięki użyciu wskaźników. W niniejszym podrozdziale zostaną przedstawione spo-
42
netbsdsrc/lib/libc/arch/i386/gen/frexp.c: 48 – 72.
26. Rozdział 3. ♦ Zaawansowane typy danych języka C 93
soby dynamicznego przydziału pamięci w przypadku struktur wektorowych. Jednak
prezentowane fragmenty kodu są bardzo podobne lub identyczne z tymi, które służą
do przechowywania innych struktur danych.
Na listingu 3.443 przedstawiono typowy przykład sposobu dynamicznego przydzielania
i używania przestrzeni danych. W tym przypadku pamięć zostaje przydzielona w celu
przechowywania ciągu liczb całkowitych w formie tablicy, tak więc na początku zmien-
na RRlen zostaje zdefiniowana jako wskaźnik na te liczby (listing 3.4:1). Zmienne wskaź-
nikowe muszą zostać zainicjalizowane poprzez zdefiniowanie ich wskazania na poprawny
obszar pamięci. W opisywanym przypadku program wykorzystuje funkcję biblioteczną
malloc języka C w celu otrzymania z systemu adresu obszaru pamięci wystarczająco
obszernego, aby przechowywać w nim liczby całkowite c. Argumentem funkcji malloc
jest liczba bajtów, jakie mają zostać przydzielone. Wykonywane tu obliczenia są typo-
we: jest to iloczyn liczby elementów, dla których ma zostać przydzielona pamięć (c)
oraz rozmiaru każdego elementu (sizeof(int)). Jeżeli pamięć systemowa zostanie
wyczerpana, funkcja malloc wskazuje to, zwracając wartość NULL. Poprawnie napisane
programy powinny zawsze sprawdzać wystąpienie takiej sytuacji (listing 3.4:2). Od
tego miejsca program może rozwikływać wskaźnik RRlen (używając notacji [] lub ope-
ratora *), tak jakby była to tablica zawierająca elementy c. Należy jednak pamiętać, że
nie są to metody równoważne. Funkcja sizeof zastosowana względem zmiennej tabli-
cowej zwraca rozmiar tablicy (przykładowo 40 dla tablicy zawierającej 10 czterobajto-
wych liczb całkowitych), natomiast zastosowana względem wskaźnika zwraca jedynie
wartość wymaganą do jego przechowywania w pamięci (na przykład 4 w przypadku
wielu współczesnych architektur). Wreszcie, kiedy przydzielona pamięć nie jest już
potrzebna, musi zostać zwolniona poprzez wywołanie funkcji free. Od tego momentu
próba rozwikłania wskaźnika będzie prowadzić do niezdefiniowanego wyniku. Nie-
zwolnienie pamięci jest błędem, który może prowadzić do tego, że program będzie po-
wodował wycieki pamięci (ang. memory leaks), które powodują stopniowe marnowanie
zasobów pamięciowych systemu.
Listing 3.4. Dynamiczne przydzielanie pamięci
int
update_msg(uchar *msg, int *msglen, int Vlist[], int c)
{
[...]
int *RRlen;†† [1] Wskaźnik na liczbę całkowitą
[...] Liczba elementów
RRlen = (int *)malloc((unsigned)c*sizeof(int));†† Rozmiar każdego elementu
if (!RRlen) †††††††††††††††††††††††† [2] Obsługa przypadku wyczerpania pamięci
††††panic(errno, "malloc(RRlen)");††
[...]
for (i = 0; i < c; i++) {†† Iteracyjne przejście po wszystkich elementach
[...]
RRlen[i] = dn_skipname(cp, msg + *msglen); Użycie RRlen jako tablicy
[...]
}
[...]
free((char *)RRlen);†† Zwolnienie przydzielonej pamięci
return (n);
}
43
netbsdsrc/usr.sbin/named/named/ns_validate.c: 871 – 1231.
27. 94 Czytanie kodu. Punkt widzenia twórców oprogramowania open-source
Kiedy pamięć zostanie wyczerpana, program nie może zbyt wiele zrobić. W większości
sytuacji jedyną skuteczną strategią postępowania jest wyświetlenie komunikatu o błę-
dzie i wyjście. Z tego względu, oraz w celu uniknięcia konieczności sprawdzania po
każdym wywołaniu wartości zwróconej przez funkcję malloc, może zostać ona otoczo-
na funkcją (zwykle noszącą nazwę xmalloc), która wykonuje owo sprawdzenie i jest
zawsze wywoływana zamiast funkcji malloc, jak w poniższym przykładzie44.
void *
xmalloc(u_int size)
{
void *p;
if ((p = malloc(size)) == NULL)
err(FATAL, "%s", strerror(errno));
return (p);
}
[...]
oe = xmalloc(s);
(void)regerror(errcode, preg, oe, s);
W pewnych przypadkach rozmiar tablicy jest określany w momencie, gdy są do niej
wstawiane elementy. Dzieje się tak zazwyczaj wtedy, kiedy przetwarzaniu podlegają
dane wejściowe: dane są przechowywane w tablicy, jednak liczba elementów, które
muszą być przechowane, nie jest znana do momentu aż wszystkie one zostaną odczyta-
ne. Listing 3.545 ilustruje taki przypadek. Zanim element zostanie zachowany, bieżący
indeks tablicy w stosunku do rozmiaru elementów w przydzielonym bloku pamięci
poddawany jest sprawdzeniu. Jeżeli wymagana jest większa ilość pamięci, zostaje wy-
wołania funkcja biblioteczna języka C realloc w celu dostosowania przestrzeni, na
którą wskazuje pierwszy argument wywołania do nowego rozmiaru określonego przez
drugi argument funkcji. Funkcja zwraca wskaźnik na dostosowany blok pamięci, po-
nieważ jego adres może być inny od adresu oryginalnego bloku. W takim przypadku
zawartość oryginalnego bloku jest kopiowana do nowej lokacji. Należy pamiętać, że
wszelkie zmienne wskaźnikowe wskazujące na lokacje należące do oryginalnego bloku
będą od tego momentu wskazywać na niezdefiniowane dane. W przykładzie z listingu
3.5 rozmiar bloku pamięci jest liniowo zwiększany po 16 bajtów za każdym razem, gdy
przydzielona pamięć zostanie wyczerpana. Często spotyka się również wykładniczy
przyrost przydzielanej przestrzeni46.
if (cur_pwtab_num + 1 > max_pwtab_num) {
/* need more space in table */
max_pwtab_num *= 2;
pwtab = (uid2home_t *) xrealloc(pwtab,
sizeof(uid2home_t) * max_pwtab_num);
Listing 3.5. Dostosowanie przydziału pamięci
void
remember_rup_data(char *host, struct statstime *st)
{
if (rup_data_idx >= rup_data_max) {†† Czy indeks większy od przydzielonego rozmiaru?
rup_data_max += 16;†† Nowy rozmiar
44
netbsdsrc/usr.bin/sed/misc.c: 63 – 107.
45
netbsdsrc/usr.bin/rup/rup.c: 146 – 164.
46
netbsdsrc/usr.sbin/amd/hlfsd/homedir.c: 521 – 525.
28. Rozdział 3. ♦ Zaawansowane typy danych języka C 95
rup_data = realloc (rup_data,††††††††††††† Dostosowanie przydziału
rup_data_max * sizeof(struct rup_data));††
if (rup_data == NULL) {
err (1, "realloc");
}
}
††††rup_data[rup_data_idx].host = strdup(host);†† Przechowanie danych
††††rup_data[rup_data_idx].statstime = *st;††††††
††††rup_data_idx++;†† Nowy indeks
}
3.4.1. Zarządzanie wolną pamięcią
Powyżej wspomniano, że niezwalnianie pamięci prowadzi do sytuacji, w których pro-
gramy powodują jej wyciekanie. Jednak często można spotkać takie programy, w któ-
rych przydziela się, ale nie zwalnia pamięci47. Ich twórcy mogą sobie na to pozwolić,
jeżeli działanie programów jest krótkie — w momencie zakończenia działania cała
przydzielona programowi pamięć jest automatycznie przejmowana przez system ope-
racyjny. Podobnie jest w przypadku implementacji programu skeyinit48.
int
main(int argc, char *argv[])
{
[...]
skey.val = (char *)malloc(16 + 1);
[... brak wywołania free(skey.val) ]
exit(1)
}
Program skeyinit jest używany do zmiany hasła lub dodania użytkownika w systemie
uwierzytelniania Bellcore S/Key. Wykonuje on swoje działania, a potem natychmiast
kończy działanie, zwalniając zajmowaną pamięć. Jednak taka nieostrożna praktyka ko-
dowania może powodować problemy, kiedy ten sam kod zostanie wykorzystany ponow-
nie w programie o znacznie dłuższym czasie działania (na przykład jako część systemu
oprogramowania routera). W takim przypadku program będzie powodował wycieki
pamięci, co można sprawdzić korzystając z polecenia przeglądania procesów, takiego
jak ps lub top w systemach uniksowych albo menedżera zadań w systemie Windows.
Warto zauważyć, że w powyższym przypadku można by po prostu użyć rozwiązania,
gdzie program ustawiałby wartość skey.val tak, aby zmienna wskazywała na tablicę
o stałym rozmiarze, której pamięć przydzielono jako zmiennej lokalnej na stosie.
main (int argc, char *argv[])
{
char valspace[16 + 1];
[...]
skey.val = valspace;
Często popełnianym przez początkujących programistów piszących w językach C i C++
błędem jest przyjęcie założenia, że wszystkie wskaźniki muszą zostać zainicjalizowane
tak, aby wskazywały na bloki pamięci przydzielone za pomocą funkcji malloc. Choć
kod zapisany w takim stylu nie jest błędny, program wynikowy jest często trudniej czytać
i konserwować.
47
netbsdsrc/bin/mv/mv.c: 260.
48
netbsdsrc/usr.bin/skeyinit/skeyinit.c: 34 – 233.