Kowalczyk Grzegorz
Sortowanie
Źródło opisu
Książki, czasopisma i zbiory specjalne
(33)
Forma i typ
Książki
(32)
Publikacje fachowe
(11)
Publikacje dydaktyczne
(5)
Artykuły
(1)
Dostępność
tylko na miejscu
(20)
dostępne
(14)
wypożyczone
(2)
Placówka
Wypożyczalnia
(16)
Biblioteka WB
(2)
Biblioteka WEAiI
(18)
Autor
Berłowski Paweł
(189)
Kotowski Włodzimierz
(179)
Praca zbiorowa
(157)
Skoczylas Zbigniew
(152)
Stiasny Grzegorz
(143)
Kowalczyk Grzegorz
(-)
Sadlik Ryszard
(142)
Blum Maciej
(140)
Michalski Dariusz
(134)
Lewandowski Maciej
(131)
Majewski Jerzy S
(131)
Etzold Hans-Rüdiger
(120)
Leśniewski Mariusz
(116)
Gewert Marian
(108)
Maruchin Wojciech
(107)
Guryn Halina
(105)
Traczyk Wojciech
(101)
Chalastra Michał
(99)
Kardyś Marta
(97)
Marx Karl (1818-1883)
(94)
Nazwisko Imię
(94)
Berkieta Mateusz
(93)
Tomczak Małgorzata
(93)
Polkowski Sławomir
(92)
Engels Friedrich (1820-1895)
(91)
Jakubiec Izabela
(90)
Kotapski Roman
(90)
Rybicki Piotr
(90)
Krysicki Włodzimierz (1905-2001)
(88)
Teleguj Kazimierz
(88)
Kapołka Maciej
(86)
Mikołajewska Emilia
(84)
Zaborowska Joanna
(81)
Piątek Grzegorz
(79)
Rudnicki Bogdan
(79)
Starosolski Włodzimierz (1933- )
(79)
Górczyński Robert
(78)
Meryk Radosław
(78)
Polit Ryszard
(77)
Mroczek Wojciech
(76)
Kulawik Marta
(74)
Mycielski Krzysztof
(74)
Myszkorowski Jakub
(73)
Konopka Eduard
(71)
Jabłoński Marek
(70)
Bielecki Jan (1942-2001)
(69)
Knosala Ryszard (1949- )
(68)
Rajca Piotr (1970- )
(68)
Rymarz Małgorzata
(68)
Walczak Krzysztof
(68)
Walkiewicz Łukasz
(68)
Wiecheć Marek
(68)
Jabłoński Adam
(67)
Laszczak Mirosław
(66)
Piwko Łukasz
(66)
Wodziczko Piotr
(65)
Dziedzic Zbigniew
(64)
Sidor-Rządkowska Małgorzata
(64)
Żakowski Wojciech (1929-1993)
(64)
Pasko Marian
(62)
Włodarski Lech (1916-1997)
(62)
Czakon Wojciech
(61)
Leyko Jerzy (1918-1995)
(61)
Jankowski Mariusz
(60)
Kostecka Alicja
(60)
Lenin Włodzimierz (1870-1924)
(60)
Paszkowska Małgorzata
(60)
Wróblewski Piotr
(60)
Karpińska Marta
(59)
Próchnicki Wojciech
(59)
Rogala Elżbieta
(59)
Bielecki Maciej
(57)
Jelonek Jakub
(57)
Malkowski Tomasz
(57)
Pilch Piotr
(57)
Rauziński Robert (1933- )
(57)
Gawrońska Joanna
(56)
Ajdukiewicz Andrzej (1939- )
(55)
Cieślak Piotr
(55)
Draniewicz Bartosz
(55)
Godek Piotr
(55)
Osiński Zbigniew (1926-2001)
(55)
Jasiński Filip
(54)
Kuliński Włodzisław
(54)
Suchodolski Bogdan (1903-1992)
(54)
Forowicz Krystyna
(53)
Klupiński Kamil
(53)
Szkutnik Leon Leszek
(52)
Zdanikowski Paweł
(52)
Wantuch-Matla Dorota
(51)
Barowicz Marek
(50)
Trammer Hubert
(50)
Walczak Tomasz
(50)
Watrak Andrzej
(50)
Zgółkowa Halina (1947- )
(50)
Barańska Katarzyna
(49)
Czajkowska-Matosiuk Katarzyna
(49)
Jurlewicz Teresa
(49)
Pikoń Andrzej
(49)
Szargut Jan (1923- )
(49)
Chojnacki Ireneusz
(48)
Rok wydania
2020 - 2024
(3)
2010 - 2019
(16)
2000 - 2009
(13)
1990 - 1999
(1)
Okres powstania dzieła
2001-
(11)
Kraj wydania
Polska
(33)
Język
polski
(33)
Odbiorca
Testerzy oprogramowania komputerowego
(2)
Programiści
(1)
Temat
Excel
(4)
Linux (system operacyjny)
(4)
Microsoft Word for Windows (oprogramowanie)
(4)
Arkusz kalkulacyjny
(3)
Android (system operacyjny)
(2)
Bezpieczeństwo teleinformatyczne
(2)
Kali Linux (system operacyjny)
(2)
Microsoft Office (oprogramowanie)
(2)
Programowanie (informatyka)
(2)
Przestępstwa komputerowe
(2)
Systemy informatyczne
(2)
Testy penetracyjne (informatyka)
(2)
Visual Basic
(2)
Wzorce projektowe (informatyka)
(2)
Access
(1)
BHP
(1)
Bazy danych
(1)
Debian (system operacyjny)
(1)
Edytory tekstu
(1)
Fedora Core (system)
(1)
Microsoft Visual Basic for Applications (język programowania)
(1)
Microsoft Windows (system operacyjny)
(1)
Microsoft Windows PowerShell (język programowania)
(1)
Microsoft Windows XP (system operacyjny)
(1)
Oprogramowanie open source
(1)
Oracle (system informatyczny)
(1)
Pomieszczenie pracy
(1)
Prawo pracy
(1)
Programy antywirusowe (informatyka)
(1)
Programy archiwizujące
(1)
Python (język programowania)
(1)
Red Hat Enterprise Linux (system operacyjny)
(1)
Red Hat Linux (system operacyjny)
(1)
Sieci komputerowe
(1)
Sieci komputerowe bezprzewodowe
(1)
Sieć komputerowa
(1)
Temat: czas
2001-
(4)
Gatunek
Podręcznik
(24)
Podręczniki
(2)
Vademecum
(1)
Ćwiczenia i zadania
(1)
Dziedzina i ujęcie
Informatyka i technologie informacyjne
(12)
Zarządzanie i marketing
(1)
Kartoteka zagadnieniowa
Organizacja, Zarządzanie i Marketing
(1)
33 wyniki Filtruj
Książka
W koszyku
(Księga Eksperta)
Na s. tyt. i okł. logo wydaw. oryg.: SAMS Publishing.
Na okł.: Okiem eksperta. Książka obejmuje szereg zagadnień dotyczących kluczowych mechanizmów serwera Oracle 8. Znajdziesz w niej omówienie następujących tematów: architektura baz danych Oracle, instalacja, upgrade i migracja baz danych, obiekty i elementy składowe serwera Oracle, administracja serwerem Oracle 8, współpraca serwera Oracle 8 z siecią WWW, zaawansowane techniki implementacji. Skorzystaj z wieloletnich doświadczeń ekspertów i zastosuj ich porady w praktyce.
Indeks.
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 113830, 99999 (2 egz.)
Brak okładki
Książka
CD
W koszyku
(Biblia)
U dołu. okł.: Kompendium wiedzy o systemie Debian GNU/Linux.
Na okł.: System Debian GNU/Linux 3.1 i dodatkowe pakiety oprogramowania. Zasady korzystania z powłoki tekstowej oraz środowisk graficznych KDE i GNOME. Linux w pracy i w domu. Debian jako baza dla wydajnego i stabilnego serwera internetowego.
Dyski optyczne zawierają system operacyjny Linux Debian GNU 3.1 z najbardziej popularnymi pakietami oraz kompletną wersję systemu Knoppix Live CD pozwalającą na pracę bez instalowania systemu na dysku twardym komputera.
Sygnatura czytelni BWB: IX D 40
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WB
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. B 3341 (1 egz.)
Brak okładki
Książka
W koszyku
(Technologia i Rozwiązania)
Na s. tyt., okł.: Bezpieczeństwo sieci w Twoich rękach!
Na s. tyt., okł. logo wydaw. oryg.: Packt Publishing.
Na okł.: Open source. Community experience distilled.
Pliki z przykładami omawianymi w książce można znaleźć pod adresem internet. podanym na s. red.
Indeks.
Sygnatura czytelni BWEAiI: XII Ń 11
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 141506 N (1 egz.)
Brak okładki
Książka
W koszyku
Wydanie 3. odnosi się do oryginału.
Na okładce nazwa wydawcy: Manning.
Indeks.
Sygnatura czytelni BWEAiI: XII P 60
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 146793 N (1 egz.)
Książka
W koszyku
Tytuł oryginału: Practical Linux security cookbook - second edition.
Na okładce, stronie tytułowej i grzbiecie: Wydanie II, dotyczy oryginału.
Wydanie 2. odnosi się do oryginału.
Na książce także ISBN oryginału: 9781789138399.
Indeks.
Rozdział 1. Problemy bezpieczeństwa w systemie Linux 21 Polityka bezpieczeństwa 22 Opracowanie polityki bezpieczeństwa 22 Mity związane z bezpieczeństwem systemu Linux 22 Konfigurowanie zabezpieczeń serwerów 23 Polityka bezpieczeństwa - bezpieczeństwo serwera 26 Definiowanie listy kontrolnej bezpieczeństwa 28 Sprawdzanie integralności nośnika instalacyjnego za pomocą funkcji skrótu 30 Szyfrowanie dysków z użyciem mechanizmu LUKS 31 Zastosowanie pliku sudoers - konfiguracja dostępu do polecenia sudo 36 Skanowanie hostów za pomocą programu Nmap 39 Zdobywanie uprawnień użytkownika root w podatnym na ataki systemie Linux 43 Brak planu tworzenia kopii zapasowych 47 Rozdział 2. Konfigurowanie bezpiecznego i zoptymalizowanego jądra systemu 51 Tworzenie nośnika startowego USB 52 Pobieranie kodu źródłowego jądra systemu 53 Konfigurowanie i budowanie jądra systemu 55 Instalowanie i uruchamianie nowego jądra 60 Testowanie nowego jądra i usuwanie błędów 63 Konfigurowanie konsoli do debugowania przy użyciu modułu Netconsole 63 Debugowanie procesu uruchamiania jądra 70 Błędy jądra 71 Przyczyny powstawania błędów jądra 71 Analizowanie ustawień i parametrów jądra za pomocą programu Lynis 73 Rozdział 3. Bezpieczeństwo lokalnego systemu plików 77 Wyświetlanie szczegółowych informacji o plikach i katalogach za pomocą polecenia ls 78 Zastosowanie polecenia chmod do ustawiania praw dostępu do plików i katalogów 80 Zastosowanie polecenia chown do zmiany właściciela plików i katalogów 84 Zastosowanie list ACL do ustawiania praw dostępu do plików 86 Operacje na plikach z użyciem polecenia mv (przenoszenie plików i zmiana ich nazw) 90 Wdrażanie systemu obowiązkowej kontroli dostępu (MAC) z wykorzystaniem rozszerzenia SELinux 95 Zastosowanie rozszerzonych atrybutów plików do ochrony plików wrażliwych 98 Instalowanie i konfigurowanie prostego serwera LDAP w systemie Ubuntu Linux 100 Rozdział 4. Uwierzytelnianie lokalne w systemie Linux 107 Uwierzytelnianie i logowanie się użytkowników 107 Ograniczanie możliwości logowania się użytkowników 110 Blokowanie możliwości logowania się użytkowników 113 Monitorowanie aktywności użytkowników przy użyciu pakietu acct 116 Uwierzytelnianie użytkowników za pomocą klucza USB i mechanizmu PAM 120 Sprawdzanie autoryzacji użytkowników 125 Zarządzanie dostępem za pomocą systemu IDAM 128 Rozdział 5. Uwierzytelnianie zdalne 133 Zdalny dostęp do serwera/hosta przy użyciu połączenia SSH 133 Włączanie lub blokowanie możliwości logowania się użytkownika root za pośrednictwem sesji SSH 137 Ograniczanie zdalnego dostępu z użyciem sesji SSH opartej na kluczach 140 Zdalne kopiowanie plików 143 Konfiguracja serwera Kerberos na platformie Ubuntu 147 Zastosowanie serwera LDAP do uwierzytelniania użytkowników i zarządzania nimi 155 Rozdział 6. Bezpieczeństwo sieciowe 161 Zarządzanie sieciami TCP/IP 161 Zastosowanie analizatora pakietów do monitorowania ruchu w sieci 165 Zastosowanie zapory sieciowej iptables 169 Blokowanie połączeń ze sfałszowanych adresów IP 174 Blokowanie ruchu przychodzącego 178 Konfigurowanie i stosowanie pakietu TCP Wrappers 182 Blokowanie ruchu sieciowego z danego kraju przy użyciu zapory ModSecurity 186 Zabezpieczanie ruchu sieciowego przy użyciu protokołu SSL 191 Rozdział 7. Narzędzia bezpieczeństwa 197 sXID 197 PortSentry 200 Squid Proxy 204 Serwer OpenSSL 208 Tripwire 215 Shorewall 220 OSSEC 224 Snort 232 Rsync i Grsync - narzędzia do tworzenia kopii zapasowych 237 Rozdział 8. Dystrybucje systemu Linux związane z bezpieczeństwem 245 Kali Linux 245 pfSense 251 DEFT Linux 257 NST Linux 259 Security Onion Linux 263 Tails Linux 270 Qubes Linux 273 Rozdział 9. Usuwanie luk w zabezpieczeniach powłoki bash 281 Powłoka bash - ataki z wykorzystaniem luki Shellshock 281 Kwestie bezpieczeństwa - ataki z wykorzystaniem luki Shellshock 285 System zarządzania aktualizacjami i poprawkami bezpieczeństwa 291 Instalowanie aktualizacji i poprawek bezpieczeństwa w systemie Linux 297 Inne znane podatności i luki w zabezpieczeniach systemu Linux 300 Rozdział 10. Monitorowanie systemu i rejestrowanie zdarzeń 303 Przeglądanie plików dziennika i zarządzanie nimi za pomocą programu Logcheck 303 Monitorowanie sieci za pomocą skanera Nmap 307 Zastosowanie pakietu Glances do monitorowania systemu 311 Monitorowanie dzienników zdarzeń za pomocą programu MultiTail 315 Zastosowanie narzędzi systemowych - polecenie whowatch 318 Zastosowanie narzędzi systemowych - polecenie stat 322 Zastosowanie narzędzi systemowych - polecenie lsof 325 Zastosowanie narzędzi systemowych - polecenie strace 328 Monitorowanie sieci LAN w czasie rzeczywistym za pomocą pakietu IPTraf 331 Monitorowanie bezpieczeństwa sieci za pomocą pakietu Suricata 336 Monitorowanie sieci za pomocą pakietu OpenNMS 341 Rozdział 11. Bezpieczeństwo serwera Linux 349 Serwer WWW - usługa HTTPD 349 Logowanie zdalne - usługa Telnet 352 Bezpieczne logowanie zdalne - usługa SSH 354 Bezpieczeństwo przesyłania plików - usługa FTP 356 Bezpieczne przesyłanie poczty elektronicznej - usługa SMTP 358 Rozdział 12. Skanowanie i audytowanie systemu Linux 365 Instalowanie programu antywirusowego w systemie Linux 365 Skanowanie systemu za pomocą programu ClamAV 368 Wykrywanie rootkitów 372 Zastosowanie usługi auditd 376 Zastosowanie programów ausearch i aureport do przeglądania dzienników audytu 378 Audytowanie usług systemowych za pomocą polecenia systemctl 382 Rozdział 13. Skanowanie w poszukiwaniu luk i podatności oraz wykrywanie włamań 385 Monitorowanie bezpieczeństwa sieci z użyciem systemu Security Onion Linux 385 Wyszukiwanie luk i podatności na ataki z użyciem pakietu OpenVAS 389 Zastosowanie programu Nikto do skanowania serwerów WWW 395 Utwardzanie systemu przy użyciu programu Lynis 397
Sygnatura czytelni BWEAiI: XII S 81
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 148494 N (1 egz.)
Brak okładki
Artykuł
W koszyku
Pomieszczenia pracy / Grzegorz Kowalczyk. W: Prawo Przedsiębiorcy. 2008, nr 33, s.14-18. - Warszawa : INFOR, 2008
Kartoteka zagadnieniowa: Organizacja, Zarządzanie i Marketing
Książka
W koszyku
Word 2000 PL / Grzegorz Kowalczyk. - Gliwice : Wydawnictwo Helion, 1999. - 104 s. : il. ; 24 cm.
(Ćwiczenia Praktyczne)
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. M 7652 (1 egz.)
Książka
CD
W koszyku
Word 2003 PL : kurs / Grzegorz Kowalczyk. - Gliwice : Wydawnictwo Helion, cop. 2003. - 343 s. : il. ; 24 cm + dysk optyczny (CD-ROM).
(Kurs)
Na s. tyt. i okł.: Napisana by pomuc Ci w samodzielnej nauce!
Na okł.: Poznaj najpopularniejszy arkusz kalkulacyjny dla Windows. Książka dla początkujących. Idealna do samodzielnej nauki. Praktyczne zadania omówione krok po kroku. Przystępny i zrozumiały język. Liczne ilustracje.
Płyta CD zawiera dodatkowe rozdziały do książki, przykładowe rozdziały (w formacie PDF) książek wydanych przez wydaw. Helion, omawiających zaawansowane zagadnienia związane z wcześniejszymi wersjami pakietu Office.
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 108225, M 9567 (2 egz.)
Brak okładki
Książka
CD
W koszyku
Word 2007 PL : kurs / Grzegorz Kowalczyk. - Gliwice : Wydawnictwo Helion, cop. 2007. - 318, [1] s. : il. ; 24 cm + dysk optyczny (CD-ROM).
Na s. tyt. i okł.: Internet, Word 2007 PL, tworzenie stron WWW, Access 2007 PL, fotografia cyfrowa, Excel 2007 PL, Windows Vista PL, napisana, by pomóc Ci w samodzielnej nauce, poznaj najnowszą wersję króla edytorów tekstu, opanuj zasady pracy z dokumentami, naucz się formatować tekst, stwórz indeksy i opisy treści.
Indeks.
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 120123 (1 egz.)
Książka
W koszyku
(Ćwiczenia Praktyczne)
Na s. tyt., okł.: Word 2016 PL - bogactwo narzędzi za jednym kliknęciem! Przygotuj się do startu! - czyli jak zainstalować i skonfigurować program. Popraw to! - czyli jak zadbać o dobry wygląd dokumentu. Chcę wstawić ten obrazek! - czyli gdzie szukać narzędzi do obsługi elementów graficznych.
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 143230 (1 egz.)
Książka
W koszyku
Wydanie 5. odnosi się do oryginału.
Na stronie tytułowej również informacje o miejscach wydania i wydawcy oryginału - O'Reilly.
Rozdział 1. Pytania i odpowiedzi dotyczące Pythona Dlaczego ludzie używają Pythona? Jakość oprogramowania Wydajność programistów Czy Python jest językiem skryptowym? Jakie są wady języka Python? Kto dzisiaj używa Pythona? Co mogę zrobić za pomocą Pythona? Programowanie systemowe Graficzne interfejsy użytkownika (GUI) Skrypty internetowe Integracja komponentów Programowanie bazodanowe Szybkie prototypowanie Programowanie numeryczne i naukowe I dalej: gry, przetwarzanie obrazu, wyszukiwanie danych, robotyka, Excel Jak Python jest rozwijany i wspierany? Kompromisy związane z modelem open source Jakie są techniczne mocne strony Pythona? Jest zorientowany obiektowo i funkcyjny Jest darmowy Jest przenośny Ma duże możliwości Można go łączyć z innymi językami Jest względnie łatwy w użyciu Jest względnie łatwy do nauczenia się Zawdzięcza swoją nazwę Monty Pythonowi Jak Python wygląda na tle innych języków? Rozdział 2. Jak Python wykonuje programy? Wprowadzenie do interpretera Pythona Wykonywanie programu Z punktu widzenia programisty Z punktu widzenia Pythona Kompilacja kodu bajtowego Maszyna wirtualna Pythona Wpływ na wydajność Wpływ na proces programowania Warianty modeli wykonywania Alternatywne implementacje Pythona CPython standard Jython Python dla języka Java IronPython Python dla .NET Stackless: Python dla programowania współbieżnego PyPy Python dla szybkości i wydajności Narzędzia do optymalizacji działania programu Cython: hybryda Pythona/C Shed Skin: translator języka Python na C ++ Psyco oryginalny kompilator JIT Zamrożone pliki binarne Przyszłe możliwości? Rozdział 3. Jak wykonuje się programy? Interaktywny wiersz poleceń Uruchamianie sesji interaktywnej Ścieżka systemowa Nowe opcje systemu Windows w wersji 3.3: PATH, Launcher Gdzie zapisywać programy katalogi z kodem źródłowym Czego nie wpisywać znaki zachęty i komentarze Interaktywne wykonywanie kodu Do czego służy sesja interaktywna Eksperymentowanie Testowanie Uwagi praktyczne wykorzystywanie sesji interaktywnej Wpisywanie instrukcji wielowierszowych Systemowy wiersz poleceń i pliki źródłowe Pierwszy skrypt Wykonywanie plików z poziomu wiersza poleceń powłoki Sposoby użycia wiersza poleceń Uwagi praktyczne wykorzystywanie wierszy poleceń i plików Skrypty wykonywalne w stylu uniksowym #! Podstawy skryptów uniksowych Sztuczka z wyszukiwaniem programu przy użyciu polecenia env w systemie Unix Python 3.3 launcher #! w systemie Windows Klikanie ikon plików Podstawowe zagadnienia związane z klikaniem ikon plików Kliknięcie ikony w systemie Windows Sztuczka z funkcją input Inne ograniczenia programów uruchamianych kliknięciem ikony Importowanie i przeładowywanie modułów Podstawy importowania i przeładowywania modułów Więcej o modułach atrybuty Moduły i przestrzenie nazw Uwagi praktyczne instrukcje import i reload Wykorzystywanie funkcji exec do wykonywania plików modułów Interfejs użytkownika środowiska IDLE Szczegóły uruchamiania środowiska IDLE Podstawy środowiska IDLE Wybrane funkcje środowiska IDLE Zaawansowane narzędzia środowiska IDLE Uwagi praktyczne korzystanie ze środowiska IDLE Inne środowiska IDE Inne opcje wykonywania kodu Osadzanie wywołań Zamrożone binarne pliki wykonywalne Uruchamianie kodu z poziomu edytora tekstu Jeszcze inne możliwości uruchamiania Przyszłe możliwości? Jaką opcję wybrać? Część II Typy i operacje Rozdział 4. Wprowadzenie do typów obiektów Pythona Hierarchia pojęć w Pythonie Dlaczego korzystamy z typów wbudowanych Najważniejsze typy danych w Pythonie Liczby Łańcuchy znaków Operacje na sekwencjach Niezmienność Metody specyficzne dla typu Uzyskiwanie pomocy Inne sposoby kodowania łańcuchów znaków Ciągi znaków w formacie Unicode Dopasowywanie wzorców Listy Operacje na typach sekwencyjnych Operacje specyficzne dla typu Sprawdzanie granic Zagnieżdżanie Listy składane Słowniki Operacje na odwzorowaniach Zagnieżdżanie raz jeszcze Brakujące klucze testowanie za pomocą if Sortowanie kluczy pętle for Iteracja i optymalizacja Krotki Do czego służą krotki Pliki Pliki binarne Pliki tekstowe Unicode Inne narzędzia podobne do plików Inne typy podstawowe Jak zepsuć elastyczność kodu Klasy definiowane przez użytkownika I wszystko inne Rozdział 5. Typy liczbowe Podstawy typów liczbowych Pythona Literały liczbowe Wbudowane narzędzia liczbowe Operatory wyrażeń Pythona Połączone operatory stosują się do priorytetów Podwyrażenia grupowane są w nawiasach Pomieszane typy poddawane są konwersji Wprowadzenie: przeciążanie operatorów i polimorfizm Liczby w akcji Zmienne i podstawowe wyrażenia Formaty wyświetlania liczb Porównania zwykłe i łączone Dzielenie klasyczne, bez reszty i prawdziwe Obsługa różnych wersji Pythona Dzielenie bez reszty a odcinanie Dlaczego odcinanie ma znaczenie? Precyzja liczb całkowitych Liczby zespolone Notacja szesnastkowa, ósemkowa i dwójkowa literały i konwersje Operacje na poziomie bitów Inne wbudowane narzędzia numeryczne Inne typy liczbowe Typ Decimal (liczby dziesiętne) Typ Decimal zagadnienia podstawowe Globalne ustawianie precyzji liczb dziesiętnych Menedżer kontekstu dziesiętnego Typ Fraction (liczby ułamkowe) Typ Fraction zagadnienia podstawowe Dokładność numeryczna ułamków zwykłych i dziesiętnych Konwersje ułamków i typy mieszane Zbiory Podstawy zbiorów w Pythonie 2.6 i wersjach wcześniejszych Literały zbiorów w Pythonie 3.x i 2.7 Ograniczenia na obiekty niemutowalne i zbiory zamrożone Zbiory składane w Pythonie 3.x i 2.7 Dlaczego zbiory? Wartości Boolean Rozszerzenia numeryczne Rozdział 6. Wprowadzenie do typów dynamicznych Sprawa brakujących deklaracji typu Zmienne, obiekty i referencje Typy powiązane są z obiektami, a nie ze zmiennymi Obiekty są uwalniane Referencje współdzielone Referencje współdzielone a modyfikacje w miejscu Referencje współdzielone a równość Typy dynamiczne są wszędzie Rozdział 7. Łańcuchy znaków Co znajdziesz w tym rozdziale Unicode krótka historia Łańcuchy znaków podstawy Literały łańcuchów znaków Łańcuchy znaków w apostrofach i cudzysłowach są tym samym Sekwencje ucieczki reprezentują znaki specjalne Surowe łańcuchy znaków blokują sekwencje ucieczki Potrójne cudzysłowy i apostrofy kodują łańcuchy znaków będące wielowierszowymi blokami Łańcuchy znaków w akcji Podstawowe operacje Indeksowanie i wycinki Rozszerzone wycinki trzeci limit i obiekty wycinków Narzędzia do konwersji łańcuchów znaków Konwersje kodu znaków Modyfikowanie łańcuchów znaków Metody łańcuchów znaków Składnia wywoływania metod Metody typów znakowych Przykłady metod łańcuchów znaków modyfikowanie Przykłady metod łańcuchów znaków analiza składniowa tekstu Inne często używane metody łańcuchów znaków Oryginalny moduł string (usunięty w wersji 3.0) Wyrażenia formatujące łańcuchy znaków Formatowanie łańcuchów tekstu z użyciem wyrażeń formatujących podstawy Składnia zaawansowanych wyrażeń formatujących Przykłady zaawansowanych wyrażeń formatujących Wyrażenia formatujące oparte na słowniku Formatowanie łańcuchów z użyciem metody format Podstawy Używanie kluczy, atrybutów i przesunięć Zaawansowana składnia wywołań metody format Przykłady zaawansowanego formatowania łańcuchów znaków z użyciem metody format Porównanie metody format z wyrażeniami formatującymi Dlaczego miałbyś korzystać z metody format Dodatkowe możliwości: wbudowane funkcje czy ogólne techniki programowania Elastyczna składnia odwołań: dodatkowa złożoność i nakładanie się funkcjonalności Jawne odwołania do wartości: teraz opcjonalne i prawdopodobnie nie będą używane Nazwy metod i argumenty neutralne kontekstowo estetyka kodu kontra zastosowania praktyczne Funkcje a wyrażenia: niewielka wygoda Generalne kategorie typów Typy z jednej kategorii współdzielą zbiory operacji Typy mutowalne można modyfikować w miejscu Rozdział 8. Listy oraz słowniki Listy Listy w akcji Podstawowe operacje na listach Iteracje po listach i składanie list Indeksowanie, wycinki i macierze Modyfikacja list w miejscu Przypisywanie do indeksu i wycinków Wywołania metod list Kilka słów o sortowaniu list Inne, często stosowane metody list Inne popularne operacje na listach Słowniki Słowniki w akcji Podstawowe operacje na słownikach Modyfikacja słowników w miejscu Inne metody słowników Przykład baza danych o filmach Przykład mapowanie wartości na klucze Uwagi na temat korzystania ze słowników Wykorzystywanie słowników do symulowania elastycznych list liczby całkowite jako klucze Wykorzystywanie słowników z rzadkimi strukturami danych krotki jako klucze Unikanie błędów z brakującymi kluczami Zagnieżdżanie słowników Inne sposoby tworzenia słowników Zmiany dotyczące słowników w Pythonie 3.x i 2.7 Słowniki składane w wersjach 3.x i 2.7 Widoki słowników w wersji 3.x (oraz wersji 2.7 przy użyciu nowych metod) Widoki słowników i zbiory Sortowanie kluczy słowników w wersji 3.x Porównywanie rozmiarów słowników nie działa w 3.x W wersji 3.x metoda has_key nie istnieje, niech żyje in! Rozdział 9. Krotki, pliki i wszystko inne Krotki Krotki w akcji Właściwości składni krotek przecinki i nawiasy Konwersje, metody oraz niemutowalność Dlaczego istnieją listy i krotki Repetytorium: rekordy krotki nazwane Pliki Otwieranie plików Wykorzystywanie plików Pliki w akcji Pliki tekstowe i binarne krótka historia Przechowywanie obiektów Pythona w plikach i przetwarzanie ich Przechowywanie natywnych obiektów Pythona moduł pickle Przechowywanie obiektów Pythona w formacie JSON Przechowywanie spakowanych danych binarnych moduł struct Menedżery kontekstu plików Inne narzędzia powiązane z plikami Przegląd i podsumowanie podstawowych typów obiektów Elastyczność obiektów Referencje a kopie Porównania, testy równości i prawda Porównywania i sortowania typów mieszanych w Pythonie 2.x i 3.x Porównywanie słowników w Pythonie 2.x i 3.x Prawda czy fałsz, czyli znaczenie True i False w Pythonie Obiekt None Typ bool Hierarchie typów Pythona Obiekty typów Inne typy w Pythonie Pułapki typów wbudowanych Przypisanie tworzy referencje, nie kopie Powtórzenie dodaje jeden poziom zagłębienia Uwaga na cykliczne struktury danych Typów niemutowalnych nie można modyfikować w miejscu Sprawdź swoją wiedzę ćwiczenia do części drugiej Część III Instrukcje i składnia Rozdział 10. Wprowadzenie do instrukcji Pythona Raz jeszcze o hierarchii pojęciowej języka Python Instrukcje Pythona Historia dwóch if Co dodaje Python Co usuwa Python Nawiasy są opcjonalne Koniec wiersza jest końcem instrukcji Koniec wcięcia to koniec bloku Skąd bierze się składnia z użyciem wcięć Kilka przypadków specjalnych Przypadki specjalne dla reguły o końcu wiersza Przypadki specjalne dla reguły o wcięciach bloków Szybki przykład interaktywne pętle Prosta pętla interaktywna Wykonywanie obliczeń na danych wpisywanych przez użytkownika Obsługa błędów poprzez sprawdzanie danych wejściowych Obsługa błędów za pomocą instrukcji try Obsługa liczb zmiennoprzecinkowych Kod zagnieżdżony na trzy poziomy głębokości Rozdział 11. Przypisania, wyrażenia i wyświetlanie Instrukcje przypisania Formy instrukcji przypisania Przypisanie sekwencji Zaawansowane wzorce przypisywania sekwencji Rozszerzona składnia rozpakowania sekwencji w Pythonie 3.x Rozszerzona składania rozpakowania w działaniu Przypadki brzegowe Wygodny gadżet Zastosowanie w pętli for Przypisanie z wieloma celami Przypisanie z wieloma celami a współdzielone referencje Przypisania rozszerzone Przypisania rozszerzone a współdzielone referencje Reguły dotyczące nazw zmiennych Konwencje dotyczące nazewnictwa Nazwy nie mają typu, ale obiekty tak Instrukcje wyrażeń Instrukcje wyrażeń i modyfikacje w miejscu Polecenia print Funkcja print z Pythona 3.x Format wywołania Funkcja print z wersji 3.x w działaniu Instrukcja print w Pythonie 2.x Formy instrukcji Instrukcja print Pythona 2.x w działaniu Przekierowanie strumienia wyjściowego Program Witaj, świecie! Ręczne przekierowanie strumienia wyjścia Automatyczne przekierowanie strumienia Wyświetlanie niezależne od wersji Konwerter 2to3 Importowanie z __future__ Neutralizacja różnic w wyświetlaniu za pomocą kodu Rozdział 12. Testy if i reguły składni Instrukcje if Ogólny format Proste przykłady Rozgałęzienia kodu Obsługa domyślnych wartości wyboru Obsługa bardziej złożonych operacji Reguły składni Pythona raz jeszcze Ograniczniki bloków reguły tworzenia wcięć Unikaj mieszania tabulatorów i spacji nowa opcja sprawdzania błędów w Pythonie 3.x Ograniczniki instrukcji wiersze i znaki kontynuacji Kilka przypadków specjalnych Testy prawdziwości i testy logiczne Wyrażenie trójargumentowe if/else Rozdział 13. Pętle while i for Pętle while Ogólny format Przykłady Instrukcje break, continue, pass oraz else w pętli Ogólny format pętli Instrukcja pass Instrukcja continue Instrukcja break Klauzula else pętli Więcej o części pętli else Pętle for Ogólny format Przykłady Podstawowe zastosowanie Inne typy danych Przypisanie krotek w pętli for Rozszerzone przypisanie sekwencji w pętlach for w Pythonie 3.x Zagnieżdżone pętle for Techniki tworzenia pętli Pętle z licznikami range Skanowanie sekwencji pętla while z funkcją range kontra pętla for Przetasowania sekwencji funkcje range i len Przechodzenie niewyczerpujące range kontra wycinki Modyfikowanie list range kontra listy składane Przechodzenie równoległe zip oraz map Równoznaczność funkcji map w Pythonie 2.x Tworzenie słowników za pomocą funkcji zip Generowanie wartości przesunięcia i elementów enumerate Rozdział 14. Iteracje i listy składane Iteracje pierwsze spojrzenie Protokół iteracyjny iteratory plików Iterowanie ręczne iter i next Pełny protokół iteracji Iteracje ręczne Inne wbudowane typy iterowalne Listy składane wprowadzenie Podstawy list składanych Wykorzystywanie list składanych w plikach Rozszerzona składnia list składanych Klauzula filtrująca: if Zagnieżdżone pętle: klauzula for Inne konteksty iteracyjne Nowe obiekty iterowalne w Pythonie 3.x Wpływ na kod w wersji 2.x zalety i wady Obiekt iterowalny range Obiekty iterowalne map, zip i filter Iteratory wielokrotne kontra pojedyncze Obiekty iterowalne widoki słownika Inne zagadnienia związane z iteracjami Rozdział 15. Wprowadzenie do dokumentacji Źródła dokumentacji Pythona Komentarze ze znakami # Funkcja dir Notki dokumentacyjne __doc__ Notki dokumentacyjne zdefiniowane przez użytkownika Standardy i priorytety notek dokumentacyjnych Wbudowane notki dokumentacyjne PyDoc funkcja help PyDoc raporty HTML Python 3.2 i nowsze wersje: tryb PyDoc dla wszystkich przeglądarek Python 3.2 i wersje wcześniejsze: klient GUI Nie tylko notki docstrings pakiet Sphinx Zbiór standardowej dokumentacji Zasoby internetowe Publikowane książki Często spotykane problemy programistyczne Sprawdź swoją wiedzę ćwiczenia do części trzeciej Część IV Funkcje i generatory Rozdział 16. Podstawy funkcji Dlaczego używamy funkcji Tworzenie funkcji Instrukcje def Instrukcja def uruchamiana jest w czasie wykonania Pierwszy przykład definicje i wywoływanie Definicja Wywołanie Polimorfizm w Pythonie Drugi przykład przecinające się sekwencje Definicja Wywołania Raz jeszcze o polimorfizmie Zmienne lokalne Rozdział 17. Zasięgi Podstawy zasięgów w Pythonie Reguły dotyczące zasięgów Rozwiązywanie nazw reguła LEGB Inne zasięgi Pythona przegląd Przykład zasięgu Zasięg wbudowany Przedefiniowanie wbudowanych nazw: lepiej czy gorzej? Instrukcja global Projektowanie programów: minimalizowanie stosowania zmiennych globalnych Projektowanie programów: minimalizowanie modyfikacji dokonywanych pomiędzy plikami Inne metody dostępu do zmiennych globalnych Zasięgi a funkcje zagnieżdżone Szczegóły dotyczące zasięgów zagnieżdżonych Przykłady zasięgów zagnieżdżonych Funkcje fabrykujące: domknięcia Proste funkcje fabrykujące Funkcje fabrykujące kontra klasy, runda pierwsza Zachowywanie stanu zasięgu zawierającego za pomocą argumentów domyślnych Zasięgi zagnieżdżone, wartości domyślne i wyrażenia lambda Zmienne pętli mogą wymagać wartości domyślnych, a nie zasięgów Dowolne zagnieżdżanie zasięgów Instrukcja nonlocal w Pythonie 3.x Podstawy instrukcji nonlocal Instrukcja nonlocal w akcji Użycie zmiennych nielokalnych w celu modyfikacji Przypadki graniczne Czemu służą zmienne nonlocal? Opcje zachowania stanu Zachowanie stanu: zmienne nonlocal (tylko w wersji 3.x) Zachowanie stanu: zmienne globalne tylko jedna kopia Zachowanie stanu: klasy jawne atrybuty (wprowadzenie) Zachowanie stanu: atrybuty funkcji (w wersjach 3.x i 2.x) Zachowanie stanu: obiekty mutowalne duchy przeszłości języka Pyton? Rozdział 18. Argumenty Podstawy przekazywania argumentów Argumenty a współdzielone referencje Unikanie modyfikacji argumentów mutowalnych Symulowanie parametrów wyjścia i wielu wyników działania Specjalne tryby dopasowywania argumentów Podstawy dopasowywania argumentów Składnia dopasowania argumentów Dopasowywanie argumentów szczegóły Przykłady ze słowami kluczowymi i wartościami domyślnymi Słowa kluczowe Wartości domyślne Łączenie słów kluczowych i wartości domyślnych Przykłady dowolnych argumentów Nagłówki: zbieranie argumentów Wywołania: rozpakowywanie argumentów Ogólne zastosowanie funkcji Zlikwidowana wbudowana funkcja apply (Python 2.x) Argumenty tylko ze słowami kluczowymi (z Pythona 3.x) Reguły dotyczące kolejności Czemu służą argumenty ze słowami kluczowymi? Przykład z funkcją obliczającą minimum Pełne rozwiązanie Dodatkowy bonus Puenta Uogólnione funkcje działające na zbiorach Emulacja funkcji print z Pythona 3.0 Wykorzystywanie argumentów ze słowami kluczowymi Rozdział 19. Zaawansowane zagadnienia dotyczące funkcji Koncepcje projektowania funkcji Funkcje rekurencyjne Sumowanie z użyciem rekurencji Implementacje alternatywne Pętle a rekurencja Obsługa dowolnych struktur Rekurencja kontra kolejki i stosy Cykle, ścieżki i ograniczenia stosu Więcej przykładów rekurencji Obiekty funkcji atrybuty i adnotacje Pośrednie wywołania funkcji obiekty pierwszej klasy Introspekcja funkcji Atrybuty funkcji Adnotacje funkcji w Pythonie 3.x Funkcje anonimowe lambda Podstawy wyrażeń lambda Po co używamy wyrażeń lambda Wielotorowe rozgałęzienia kodu finał Jak (nie) zaciemniać kodu napisanego w Pythonie Zasięgi: wyrażenia lambda również można zagnieżdżać Narzędzia programowania funkcyjnego Odwzorowywanie funkcji na obiekty iterowalne map Wybieranie elementów obiektów iterowalnych funkcja filter Łączenie elementów obiektów iterowalnych funkcja reduce Rozdział 20. Listy składane i generatory Listy składane i narzędzia funkcyjne Listy składane kontra funkcja map Dodajemy warunki i pętle zagnieżdżone filter Formalna składnia list składanych Przykład listy składane i macierze Nie nadużywaj list składanych: reguła KISS Druga strona medalu: wydajność, zwięzłość, ekspresyjność Funkcje i wyrażenia generatorów Funkcje generatorów yield kontra return Zawieszanie stanu Integracja protokołu iteracji Funkcje generatorów w działaniu Dlaczego funkcje generatorów? Rozszerzony protokół funkcji generatorów send kontra next Wyrażenia generatorów obiekty iterowalne spotykają złożenia Dlaczego wyrażenia generatora? Wyrażenia generatora a funkcja map Wyrażenia generatora a filtry Funkcje generatorów a wyrażenia generatorów Generatory są obiektami o jednoprzebiegowej iteracji Generowanie wyników we wbudowanych typach, narzędziach i klasach Generatory i narzędzia biblioteczne: skanery katalogów Generatory i funkcje aplikacji Przegląd: obiekty iterowalne definiowane przez użytkownika w klasach Przykład generowanie mieszanych sekwencji Sekwencje mieszające Proste funkcje Funkcje generatora Wyrażenia generatora Funkcja tester Permutacje: wszystkie możliwe kombinacje Nie nadużywaj generatorów: reguła EIBTI Inne spojrzenie: miejsce i czas, zwięzłość, ekspresyjność Przykład emulowanie funkcji zip i map za pomocą narzędzi iteracyjnych Tworzymy własną implementację funkcji map Własna wersja funkcji zip(...) i map(None, ...) Podsumowanie obiektów składanych Zakresy i zmienne składane Zrozumieć zbiory i słowniki składane Rozszerzona składnia zbiorów i słowników składanych Rozdział 21. Wprowadzenie do pomiarów wydajności Pomiary wydajności iteracji Moduł pomiaru czasu domowej roboty Skrypt mierzący wydajność Wyniki pomiarów czasu Wpływ wywołań funkcji: map Inne rozwiązania dla modułu do pomiaru czasu Użycie argumentów ze słowami kluczowymi w wersji 3.x Inne sugestie Mierzenie czasu iteracji z wykorzystaniem modułu timeit Podstawowe reguły korzystania z modułu timeit Interaktywne użycie i wywołania API Korzystanie z poziomu wiersza polecenia Mierzenie czasu działania instrukcji wielowierszowych Inne tryby użytkowania: instalacje, podsumowania i obiekty Moduł i skrypt testujący z użyciem modułu timeit Wyniki działania skryptu testującego Jeszcze trochę zabawy z mierzeniem wydajności Wygrana funkcji map i rzadka porażka PyPy Jeszcze kilka słów o wpływie wywołań funkcji Techniki porównywania własne funkcje kontra moduł timeit Możliwości ulepszenia kod instalacyjny Inne zagadnienia związane z mierzeniem szybkości działania kodu test pystone Pułapki związane z funkcjami Lokalne nazwy są wykrywane w sposób statyczny Wartości domyślne i obiekty mutowalne Funkcje, które nie zwracają wyników Różne problemy związane z funkcjami Otaczanie zasięgów i zmiennych pętli: funkcje fabrykujące Ukrywanie wbudowanych funkcji przez przypisania: cieniowanie Część V Moduły i pakiety Rozdział 22. Moduły wprowadzenie Dlaczego używamy modułów Architektura programu w Pythonie Struktura programu Importowanie i atrybuty Moduły biblioteki standardowej Jak działa importowanie 1. Odszukanie modułu 2. Kompilowanie (o ile jest to potrzebne) 3. Wykonanie Pliki kodu bajtowego __pycache__ w Pythonie 3.2+ Modele plików kodu bajtowego w akcji Ścieżka wyszukiwania modułów Konfigurowanie ścieżki wyszukiwania Wariacje ścieżki wyszukiwania modułów Lista sys.path Wybór pliku modułu Kody źródłowe modułów Priorytety wyboru Importowanie punktów zaczepienia i plików ZIP Pliki zoptymalizowanego kodu bajtowego
Rozdział 23. Podstawy tworzenia modułów Tworzenie modułów Nazwy modułów Inne rodzaje modułów Używanie modułów Instrukcja import Instrukcja from Instrukcja from * Operacja importowania jest przeprowadzana tylko raz Kod inicjalizujący Instrukcje import oraz from są przypisaniami Modyfikowanie elementów mutowalnych w modułach Modyfikowanie nazw pomiędzy plikami Równoważność instrukcji import oraz from Potencjalne pułapki związane z użyciem instrukcji from Kiedy wymagane jest stosowanie instrukcji import Przestrzenie nazw modułów Pliki generują przestrzenie nazw Słowniki przestrzeni nazw: __dict__ Kwalifikowanie nazw atrybutów Importowanie a zasięgi Zagnieżdżanie przestrzeni nazw Przeładowywanie modułów Podstawy przeładowywania modułów Przykład przeładowywania z użyciem reload Rozdział 24. Pakiety modułów Podstawy importowania pakietów Pakiety a ustawienia ścieżki wyszukiwania Pliki pakietów __init__.py Role pliku inicjalizacji pakietu Przykład importowania pakietu Instrukcja from a instrukcja import w importowaniu pakietów Do czego służy importowanie pakietów Historia trzech systemów Względne importowanie pakietów Zmiany w Pythonie 3.0 Podstawy importowania względnego Do czego służą importy względne Importowanie względne w wersji 3.x Względne importy a bezwzględne ścieżki pakietów Zasięg importów względnych Podsumowanie reguł wyszukiwania modułów Importy względne w działaniu Importowanie spoza pakietów Importy wewnątrz pakietów Importy są nadal względne w stosunku do bieżącego katalogu roboczego Użycie importów względnych i bezwzględnych Importy względne przeszukują tylko pakiety Importy są nadal względne w stosunku do katalogu roboczego (cd.) Pułapki związane z importem względnym w pakietach: zastosowania mieszane Problem Rozwiązanie nr 1: podkatalogi pakietów Rozwiązanie 2: import bezwzględny z użyciem pełnej ścieżki Przykład: aplikacja z kodem autotestu modułu (wprowadzenie) Pakiety przestrzeni nazw w Pythonie 3.3 Semantyka pakietów przestrzeni nazw Algorytm importu Wpływ na zwykłe pakiety: opcjonalne pliki __init__.py Pakiety przestrzeni nazw w akcji Zagnieżdżanie pakietów przestrzeni nazw Pliki nadal mają pierwszeństwo przed katalogami Rozdział 25. Zaawansowane zagadnienia związane z modułami Koncepcje związane z projektowaniem modułów Ukrywanie danych w modułach Minimalizacja niebezpieczeństw użycia from * _X oraz __all__ Włączanie opcji z przyszłych wersji Pythona: __future__ Mieszane tryby użycia __name__ oraz __main__ Testy jednostkowe z wykorzystaniem atrybutu __name__ Przykład kod działający w dwóch trybach Symbole walut: Unicode w akcji Notki dokumentacyjne: dokumentacja modułu w działaniu Modyfikacja ścieżki wyszukiwania modułów Rozszerzenie as dla instrukcji import oraz from Przykład moduły są obiektami Importowanie modułów z użyciem nazwy w postaci ciągu znaków Uruchamianie ciągów znaków zawierających kod Bezpośrednie wywołania: dwie opcje Przykład przechodnie przeładowywanie modułów Przeładowywanie rekurencyjne Testowanie przeładowań rekurencyjnych Rozwiązania alternatywne Testowanie wariantów przeładowania Pułapki związane z modułami Kolizje nazw modułów: pakiety i importowanie względne w pakietach W kodzie najwyższego poziomu kolejność instrukcji ma znaczenie Instrukcja from kopiuje nazwy, jednak łącza już nie Instrukcja from * może zaciemnić znaczenie zmiennych Funkcja reload może nie mieć wpływu na obiekty importowane za pomocą from Funkcja reload i instrukcja from a testowanie interaktywne Rekurencyjne importowanie za pomocą from może nie działać Część VI Klasy i programowanie zorientowane obiektowo Rozdział 26. Programowanie zorientowane obiektowo wprowadzenie Po co używa się klas Programowanie zorientowane obiektowo z dystansu Wyszukiwanie atrybutów dziedziczonych Klasy a instancje Wywołania metod klasy Tworzenie drzew klas Przeciążanie operatorów Programowanie zorientowane obiektowo oparte jest na ponownym wykorzystaniu kodu Polimorfizm i klasy Programowanie przez dostosowanie Rozdział 27. Podstawy tworzenia klas Klasy generują wiele obiektów instancji Obiekty klas udostępniają zachowania domyślne Obiekty instancji są rzeczywistymi elementami Pierwszy przykład Klasy dostosowujemy do własnych potrzeb przez dziedziczenie Drugi przykład Klasy są atrybutami w modułach Klasy mogą przechwytywać operatory Pythona Trzeci przykład Zwracamy wyniki lub nie Po co przeciążamy operatory Najprostsza klasa Pythona na świecie Jeszcze kilka słów o rekordach: klasy kontra słowniki Rozdział 28. Bardziej realistyczny przykład Krok 1. tworzenie instancji Tworzenie konstruktorów Testowanie w miarę pracy Wykorzystywanie kodu na dwa sposoby Krok 2. dodawanie metod Tworzenie kodu metod Krok 3. przeciążanie operatorów Udostępnienie sposobów wyświetlania Krok 4. dostosowywanie zachowania za pomocą klas podrzędnych Tworzenie klas podrzędnych Rozszerzanie metod niepoprawny sposób Rozszerzanie metod poprawny sposób Polimorfizm w akcji Dziedziczenie, dostosowanie do własnych potrzeb i rozszerzenie Programowanie zorientowane obiektowo idea Krok 5. dostosowanie do własnych potrzeb także konstruktorów Programowanie zorientowane obiektowo jest prostsze, niż się wydaje Inne sposoby łączenia klas Krok 6. wykorzystywanie narzędzi do introspekcji Specjalne atrybuty klas Uniwersalne narzędzie do wyświetlania Atrybuty instancji a atrybuty klas Nazwy w klasach narzędziowych Ostateczna postać naszych klas Krok 7. i ostatni przechowywanie obiektów w bazie danych Obiekty pickle i shelve Moduł pickle Moduł shelve Przechowywanie obiektów w bazie danych za pomocą shelve Interaktywna eksploracja obiektów shelve Uaktualnianie obiektów w pliku shelve Przyszłe kierunki rozwoju Rozdział 29. Szczegóły kodowania klas Instrukcja class Ogólna forma Przykład Metody Przykład metody Wywoływanie konstruktorów klas nadrzędnych Inne możliwości wywoływania metod Dziedziczenie Tworzenie drzewa atrybutów Specjalizacja odziedziczonych metod Techniki interfejsów klas Abstrakcyjne klasy nadrzędne Abstrakcyjne klasy nadrzędne z Pythona 3.x oraz 2.6+: wprowadzenie Przestrzenie nazw cała historia Proste nazwy globalne, o ile nie są przypisane Nazwy atrybutów przestrzenie nazw obiektów Zen przestrzeni nazw Pythona przypisania klasyfikują zmienne Klasy zagnieżdżone jeszcze kilka słów o regule LEGB Słowniki przestrzeni nazw przegląd Łącza przestrzeni nazw przechodzenie w górę drzewa klas Raz jeszcze o notkach dokumentacyjnych Klasy a moduły Rozdział 30. Przeciążanie operatorów Podstawy Konstruktory i wyrażenia __init__ i __sub__ Często spotykane metody przeciążania operatorów Indeksowanie i wycinanie __getitem__ i __setitem__ Wycinki Wycinanie i indeksowanie w Pythonie 2.x Metoda __index__ w wersji 3.x nie służy do indeksowania! Iteracja po indeksie __getitem__ Obiekty iteratorów __iter__ i __next__ Iteratory zdefiniowane przez użytkownika Skanowanie pojedyncze i wielokrotne Klasy i generatory Wiele iteracji po jednym obiekcie Klasy i wycinki Alternatywa: metoda__iter__ i instrukcja yield Wielokrotne iteracje za pomocą instrukcji yield Test przynależności __contains__, __iter__ i __getitem__ Dostęp do atrybutów __getattr__ oraz __setattr__ Odwołania do atrybutów Przypisywanie wartości i usuwanie atrybutów Inne narzędzia do zarządzania atrybutami Emulowanie prywatności w atrybutach instancji Reprezentacje łańcuchów __repr__ oraz __str__ Po co nam dwie metody wyświetlania? Uwagi dotyczące wyświetlania Dodawanie prawostronne i miejscowa modyfikacja: metody __radd__ i __iadd__ Dodawanie prawostronne Stosowanie metody __add__ w __radd__ Eskalowanie typu klasy Dodawanie w miejscu Wywołania __call__ Interfejsy funkcji i kod oparty na wywołaniach zwrotnych Porównania __lt__, __gt__ i inne Metoda __cmp__ w 2.x Testy logiczne __bool__ i __len__ Metody logiczne w Pythonie 2.x Destrukcja obiektu __del__ Uwagi dotyczące stosowania destruktorów Rozdział 31. Projektowanie z użyciem klas Python a programowanie zorientowane obiektowo Polimorfizm to interfejsy, a nie sygnatury wywołań Programowanie zorientowane obiektowo i dziedziczenie związek jest Programowanie zorientowane obiektowo i kompozycja związki typu ma Raz jeszcze procesor strumienia danych Programowanie zorientowane obiektowo a delegacja obiekty opakowujące Pseudoprywatne atrybuty klas Przegląd zniekształcania nazw zmiennych Po co używa się atrybutów pseudoprywatnych Metody są obiektami z wiązaniem i bez wiązania W wersji 3.x metody niezwiązane są funkcjami Metody związane i inne obiekty wywoływane Inne obiekty wywoływane Klasy są obiektami uniwersalne fabryki obiektów Do czego służą fabryki Dziedziczenie wielokrotne klasy mieszane Tworzenie klas mieszanych Odczyt listy atrybutów obiektu __dict__ Wydobywanie atrybutów odziedziczonych z użyciem dir() Wypisywanie atrybutów dla każdego obiektu w drzewie klas Uruchomienie kodu wyświetlającego drzewo Inny przykład użycia: wyświetlenie nazw zawierających znaki podkreślenia Inny przykład użycia: uruchomienie kodu z większymi modułami Moduł kolektora Miejsce na udoskonalenia: algorytm MRO, sloty, interfejsy graficzne Inne zagadnienia związane z projektowaniem Rozdział 32. Zaawansowane zagadnienia związane z klasami Rozszerzanie typów wbudowanych Rozszerzanie typów za pomocą osadzania Rozszerzanie typów za pomocą klas podrzędnych Klasy w nowym stylu Jak nowy jest nowy styl Nowości w klasach w nowym stylu Pomijanie instancji we wbudowanych operacjach przy pobieraniu atrybutów Dlaczego zmieniło się wyszukiwanie? Implikacje wynikające z przechwytywania atrybutów Wymogi kodowania obiektów pośredniczących Więcej informacji Zmiany w modelu typów Konsekwencje z perspektywy kontroli typów Wszystkie obiekty dziedziczą po klasie object Implikacje wynikające z użycia metod domyślnych Zmiany w dziedziczeniu diamentowym Implikacje wynikające z dziedziczenia diamentowego Jawne rozwiązywanie konfliktów Zakres zmian kolejności wyszukiwania Więcej o kolejności odwzorowywania nazw Algorytm MRO Śledzenie algorytmu MRO Przykład wiązanie atrybutów ze źródłami dziedziczenia Nowości w klasach w nowym stylu Sloty: deklaracje atrybutów Podstawy slotów Sloty i słowniki przestrzeni nazw Wiele slotów w klasach nadrzędnych Generyczna obsługa slotów i innych wirtualnych atrybutów Zasady używania slotów Przykład stosowania slotów: klasa ListTree i funkcja mapattrs Co z szybkością slotów? Właściwości klas: dostęp do atrybutów Podstawy właściwości Narzędzia atrybutów: __getattribute__ i deskryptory Inne zmiany i rozszerzenia klas Metody statyczne oraz metody klasy Do czego potrzebujemy metod specjalnych Metody statyczne w 2.x i 3.x Alternatywy dla metod statycznych Używanie metod statycznych i metod klas Zliczanie instancji z użyciem metod statycznych Zliczanie instancji z metodami klas Zliczanie instancji dla każdej z klas z użyciem metod klas Dekoratory i metaklasy część 1. Podstawowe informacje o dekoratorach funkcji Pierwsze spojrzenie na funkcję dekoratora zdefiniowaną przez użytkownika Pierwsze spojrzenie na dekoratory klas i metaklasy Dalsza lektura Wbudowana funkcja super: zmiana na lepsze czy na gorsze? Wielka debata o funkcji super Tradycyjny, uniwersalny i ogólny sposób wywoływania klasy nadrzędnej Podstawy i kompromisy użycia funkcji super Stara semantyka: magiczny obiekt pośredniczący w wersji 3.x Pułapka: beztroskie stosowanie wielokrotnego dziedziczenia Ograniczenie: przeciążanie operatorów Różnice w użyciu w wersji 2.x: rozbudowane wywołania Zalety funkcji super: zmiany drzewa i kierowania metod Zmiana klasy w trakcie działania programu a funkcja super Kooperatywne kierowanie metod w drzewie wielokrotnego dziedziczenia Podstawy: kooperatywne wywołanie funkcji super w akcji Ograniczenie: wymóg zakotwiczenia łańcucha wywołań Zakresy: model wszystko lub nic Elastyczność założenia dotyczącego kolejności wywołań Dostosowywanie: zastąpienie metody Sprzęganie: zastosowanie w mieszaniu klas Dostosowywanie: wymóg takich samych argumentów Podsumowanie funkcji super Pułapki związane z klasami Modyfikacja atrybutów klas może mieć efekty uboczne Modyfikowanie mutowalnych atrybutów klas również może mieć efekty uboczne Dziedziczenie wielokrotne kolejność ma znaczenie Zakresy w metodach i klasach Różne pułapki związane z klasami Rozsądnie wybieraj miejsce przechowywania atrybutu w instancji lub w klasie Zazwyczaj wywołuj konstruktory klasy nadrzędnej Klasy wykorzystujące delegację w 3.x __getattr__ i funkcje wbudowane Przesadne opakowywanie Część VII Wyjątki oraz narzędzia Rozdział 33. Podstawy wyjątków Po co używa się wyjątków Role wyjątków Wyjątki w skrócie Domyślny program obsługi wyjątków Przechwytywanie wyjątków Zgłaszanie wyjątków Wyjątki zdefiniowane przez użytkownika Działania końcowe Rozdział 34. Szczegółowe informacje dotyczące wyjątków Instrukcja try/except/else Jak działa instrukcja try Części instrukcji try Przechwytywanie wybranych i wszystkich wyjątków Przechwytywanie wszystkich wyjątków: pusta instrukcja except i klasa Exception Część try/else Przykład zachowanie domyślne Przykład przechwytywanie wbudowanych wyjątków Instrukcja try/finally Przykład działania kończące kod z użyciem try/finally Połączona instrukcja try/except/finally Składnia połączonej instrukcji try Łączenie finally oraz except za pomocą zagnieżdżania Przykład połączonego try Instrukcja raise Zgłaszanie wyjątków Zakresy widoczności zmiennych w instrukcjach try i except Przekazywanie wyjątków za pomocą raise Łańcuchy wyjątków w Pythonie 3.x raise from Instrukcja assert Przykład wyłapywanie ograniczeń (ale nie błędów!) Menedżery kontekstu with/as Podstawowe zastosowanie Protokół zarządzania kontekstem Kilka menedżerów kontekstu w wersjach 3.1, 2.7 i nowszych Rozdział 35. Obiekty wyjątków Wyjątki powrót do przyszłości Wyjątki oparte na łańcuchach znaków znikają Wyjątki oparte na klasach Tworzenie klas wyjątków Do czego służą hierarchie wyjątków Wbudowane klasy wyjątków Kategorie wbudowanych wyjątków Domyślne wyświetlanie oraz stan Własne sposoby wyświetlania Własne dane oraz zachowania Udostępnianie szczegółów wyjątku Udostępnianie metod wyjątków Rozdział 36. Projektowanie z wykorzystaniem wyjątków Zagnieżdżanie programów obsługi wyjątków Przykład zagnieżdżanie przebiegu sterowania Przykład zagnieżdżanie składniowe Zastosowanie wyjątków Wychodzenie z głęboko zagnieżdżonych pętli: instrukcja go to Wyjątki nie zawsze są błędami Funkcje mogą sygnalizować warunki za pomocą raise Zamykanie plików oraz połączeń z serwerem Debugowanie z wykorzystaniem zewnętrznych instrukcji try Testowanie kodu wewnątrz tego samego procesu Więcej informacji na temat funkcji sys.exc_info Wyświetlanie błędów i śladów stosu Wskazówki i pułapki dotyczące projektowania wyjątków Co powinniśmy opakować w try Jak nie przechwytywać zbyt wiele unikanie pustych except i wyjątków Jak nie przechwytywać zbyt mało korzystanie z kategorii opartych na klasach Podsumowanie podstaw języka Python Zbiór narzędzi Pythona Narzędzia programistyczne przeznaczone do większych projektów Część VIII Zagadnienia zaawansowane Rozdział 37. Łańcuchy znaków Unicode oraz łańcuchy bajtowe Zmiany w łańcuchach znaków w Pythonie 3.x Podstawy łańcuchów znaków Kodowanie znaków Jak Python zapisuje ciągi znaków w pamięci Typy łańcuchów znaków Pythona Po co są stosowane różne typy ciągów? Pliki binarne i tekstowe Podstawy kodowania ciągów znaków Literały tekstowe w Pythonie 3.x Literały Unicode w Pythonie 2.x i 3.3 Literały tekstowe w Pythonie 2.x Konwersje typów ciągów Kod łańcuchów znaków Unicode Kod tekstu z zakresu ASCII Kod tekstu spoza zakresu ASCII Kodowanie i dekodowanie tekstu spoza zakresu ASCII Inne techniki kodowania łańcuchów Unicode Literały bajtowe Konwersja kodowania Łańcuchy znaków Unicode w Pythonie 2.x Mieszanie typów ciągów w wersji 2.x Deklaracje typu kodowania znaków pliku źródłowego Wykorzystywanie obiektów bytes z Pythona 3.x Wywołania metod Operacje na sekwencjach Inne sposoby tworzenia obiektów bytes Mieszanie typów łańcuchów znaków Obiekt bytearray w wersji 3.x (oraz 2.6 lub nowszej) Typ bytearray w akcji Podsumowanie typów ciągów znaków w Pythonie 3.x Wykorzystywanie plików tekstowych i binarnych Podstawy plików tekstowych Tryby tekstowy i binarny w Pythonie 2.x i 3.x Brak dopasowania typu i zawartości w Pythonie 3.x Wykorzystywanie plików Unicode Odczyt i zapis Unicode w Pythonie 3.x Kodowanie ręczne Kodowanie danych wyjściowych pliku Dekodowanie danych wejściowych pliku Dekodowanie błędnych dopasowań Obsługa BOM w Pythonie 3.x Pomijanie znacznika BOM w Notatniku Pomijanie znacznika BOM w Pythonie Pliki Unicode w Pythonie 2.x Unicode w nazwach plików i w strumieniach Nazwy plików: znaki i bajty Zawartość strumienia: zmienna PYTHONIOENCODING Inne zmiany w narzędziach do przetwarzania łańcuchów znaków w Pythonie 3.x Moduł dopasowywania wzorców re Moduł danych binarnych struct Moduł serializacji obiektów pickle Narzędzia do analizy składniowej XML Rozdział 38. Zarządzane atrybuty Po co zarządza się atrybutami Wstawianie kodu wykonywanego w momencie dostępu do atrybutów Właściwości Podstawy Pierwszy przykład Obliczanie atrybutów Zapisywanie właściwości w kodzie za pomocą dekoratorów Dekoratory setter i deleter Deskryptory Podstawy Argumenty metod deskryptorów Deskryptory tylko do odczytu Pierwszy przykład Obliczone atrybuty Wykorzystywanie informacji o stanie w deskryptorach Powiązania pomiędzy właściwościami a deskryptorami Deskryptory, sloty i nie tylko Metody __getattr__ oraz __getattribute__ Podstawy Unikanie pętli w metodach przechwytujących atrybuty Pierwszy przykład Metoda __getattribute__ Obliczanie atrybutów Metoda __getattribute__ Porównanie metod __getattr__ oraz __getattribute__ Porównanie technik zarządzania atrybutami Przechwytywanie atrybutów wbudowanych operacji Powrót do menedżerów opartych na delegacji Przykład sprawdzanie poprawności atrybutów Wykorzystywanie właściwości do sprawdzania poprawności Testowanie kodu Wykorzystywanie deskryptorów do sprawdzania poprawności Opcja 1: sprawdzanie z wykorzystaniem współdzielonego stanu deskryptora instancji Opcja 2: sprawdzanie z wykorzystaniem indywidualnego stanu instancji Wykorzystywanie metody __getattr__ do sprawdzania poprawności Wykorzystywanie metody __getattribute__ do sprawdzania poprawności Rozdział 39. Dekoratory Czym jest dekorator Zarządzanie wywołaniami oraz instancjami Zarządzanie funkcjami oraz klasami Wykorzystywanie i definiowanie dekoratorów Do czego służą dekoratory Podstawy Dekoratory funkcji Zastosowanie Implementacja Obsługa dekoracji metod Dekoratory klas Zastosowanie Implementacja Obsługa większej liczby instancji Zagnieżdżanie dekoratorów Argumenty dekoratorów Dekoratory zarządzają także funkcjami oraz klasami Kod dekoratorów funkcji Śledzenie wywołań Możliwości w zakresie zachowania informacji o stanie Atrybuty instancji klasy Zakresy zawierające oraz zmienne globalne Zakresy funkcji zawierających oraz zmienne nielokalne Atrybuty funkcji Uwagi na temat klas I dekorowanie metod klas Wykorzystywanie zagnieżdżonych funkcji do dekoracji metod Wykorzystywanie deskryptorów do dekorowania metod Mierzenie czasu wywołania Dekoratory a pomiar czasu wywołania Niuanse pomiaru czasu Dodawanie argumentów dekoratora Pomiar czasu z użyciem argumentów dekoratora Kod dekoratorów klas Klasy singletona Alternatywne rozwiązania Śledzenie interfejsów obiektów Śledzenie interfejsów za pomocą dekoratorów klas Stosowanie dekoratorów klas z wbudowanymi typami Uwagi na temat klas II zachowanie większej liczby instancji Dekoratory a funkcje zarządzające Do czego służą dekoratory (raz jeszcze) Bezpośrednie zarządzanie funkcjami oraz klasami Przykład atrybuty prywatne i publiczne Implementacja atrybutów prywatnych Szczegóły implementacji I Dziedziczenie a delegacja Argumenty dekoratora Zachowywanie stanu i zakresy funkcji zawierającej Wykorzystanie __dict__ oraz __slots__ (i innych nazw wirtualnych) Uogólnienie kodu pod kątem deklaracji atrybutów jako publicznych Szczegóły implementacji II Użycie nazw pseudoprywatnych __X Złamanie prywatności Kompromisy związane z dekoratorem Znane problemy Ograniczenie: delegacja metod przeciążania operatorów kończy się niepowodzeniem w Pythonie 3.x Sposoby redefiniowania metod przeciążających operatory w wersji 3.x Definicja śródwierszowa Nadrzędne klasy mieszane Warianty kodowania: routery, deskryptory, automatyzacja Czy metody operatorów należy weryfikować? Alternatywy implementacyjne: wstawianie __getattribute__, inspekcja stosu wywołań W Pythonie nie chodzi o kontrolę Przykład sprawdzanie poprawności argumentów funkcji Cel Prosty dekorator sprawdzający przedziały dla argumentów pozycyjnych Uogólnienie kodu pod kątem słów kluczowych i wartości domyślnych Szczegóły implementacji Dalsza introspekcja Założenia dotyczące argumentów Algorytm dopasowywania Znane problemy Niepoprawne wywołania Dowolne argumenty Zagnieżdżone dekoratory Argumenty dekoratora a adnotacje funkcji Inne zastosowania sprawdzanie typów (skoro nalegamy!) Rozdział 40. Metaklasy Tworzyć metaklasy czy tego nie robić? Zwiększające się poziomy magii Język pełen haczyków Wady funkcji pomocniczych Metaklasy a dekoratory klas runda 1. Model metaklasy Klasy są instancjami obiektu type Metaklasy są klasami podrzędnymi klasy type Protokół instrukcji class Deklarowanie metaklas Deklarowanie w wersji 3.x Deklarowanie w wersji 2.x Kierowanie metaklas w wersjach 3.x i 2.x Tworzenie metaklas Prosta metaklasa Dostosowywanie tworzenia do własnych potrzeb oraz inicjalizacja Pozostałe sposoby tworzenia metaklas Użycie prostych funkcji fabrycznych Przeciążenie wywołań tworzących klasę za pomocą zwykłych klas Przeciążenie wywołań tworzących klasę za pomocą metaklas Instancje a dziedziczenie Metaklasa a klasa nadrzędna Dziedziczenie: pełna historia Algorytm dziedziczenia w Pythonie: wersja prosta Specjalny przypadek deskryptorów Algorytm dziedziczenia w Pythonie: wersja nieco pełniejsza Dziedziczenie przypisań atrybutów Specjalny przypadek wbudowanych operacji Metody metaklas Metody metaklasy a metody klasy Przeciążanie operatorów w metodach metaklasy Przykład dodawanie metod do klas Ręczne rozszerzanie Rozszerzanie oparte na metaklasie Metaklasy a dekoratory klas runda 2. Rozszerzenie oparte na dekoratorach Zarządzanie instancjami zamiast klasami Metaklasa równoważna dekoratorowi klasy? Przykład zastosowanie dekoratorów do metod Ręczne śledzenie za pomocą dekoracji Śledzenie za pomocą metaklas oraz dekoratorów Zastosowanie dowolnego dekoratora do metod Metaklasy a dekoratory klas runda 3. (i ostatnia) Rozdział 41. Wszystko, co najlepsze Paradoks Pythona Opcjonalne cechy języka Przeciwko niepokojącym usprawnieniom Złożoność a siła Prostota a elitarność Końcowe wnioski Dokąd dalej? Na bis: wydrukuj swój certyfikat! Dodatki Dodatek A Instalacja i konfiguracja Instalowanie interpretera Pythona Czy Python jest już zainstalowany? Skąd pobrać Pythona Instalacja Pythona Konfiguracja Pythona Zmienne środowiskowe Pythona Jak ustawić opcje konfiguracyjne? Zmienne powłoki systemu Unix i Linux Zmienne DOS (system Windows) Graficzny interfejs użytkownika zmiennych środowiskowych Windows Rejestr systemu Windows Pliki ścieżek Opcje wiersza poleceń Pythona Uruchamianie skryptów z argumentami Uruchamianie kodu podanego w argumentach i pobranego ze standardowego wejścia Uruchamianie modułów umieszczonych w ścieżce wyszukiwania Tryby zoptymalizowany i niebuforowany Tryb interaktywny po wykonaniu skryptu Argumenty wiersza poleceń w Pythonie w.x Uruchamianie Pythona 3.3 za pomocą wiersza poleceń Windows Uzyskanie pomocy Dodatek B Uruchamianie Pythona 3.x w systemie Windows Dziedzictwo systemu Unix Dziedzictwo systemu Windows Wprowadzenie nowego programu uruchomieniowego w systemie Windows Podręcznik do programu uruchomieniowego Krok 1: dyrektywa wersji w pliku Krok 2: parametry w wierszu poleceń Krok 3: stosowanie i zmienianie ustawień domyślnych Pułapki nowego programu uruchomieniowego Pułapka 1: nierozpoznany w Uniksie wiersz #! uniemożliwia uruchomienie skryptu Wpływ zmian na przykłady użyte w książce i korekta Pułapka 2: domyślna wersja 2.x w programie uruchomieniowym Wpływ zmian na przykłady w książce i korekta Pułapka 3: nowa opcja modyfikacji zmiennej PATH Podsumowanie: ostateczny wynik dla systemu Windows Dodatek C Zmiany w języku Python a niniejsza książka Najważniejsze różnice między wersjami 2.x i 3.x Zmiany w wersji 3.x Rozszerzenia dostępne tylko w wersji 3.x Ogólne uwagi do zmian w wersji 3.x Zmiany w bibliotekach i narzędziach Zmiany w standardowej bibliotece Zmiany w narzędziach Migracja do wersji 3.x Zmiany opisane w piątym wydaniu: wersje 2.7, 3.2 i 3.3 Zmiany w wersji 2.7 Zmiany w wersji 3.3 Zmiany w wersji 3.2 Zmiany opisane w czwartym wydaniu: wersje 2.6, 3.0 i 3.1 Zmiany w wersji 3.1 Zmiany w wersjach 3.0 i 2.6 Niektóre elementy języka usunięte w Pythonie 3.0 Zmiany opisane w trzecim wydaniu: wersje 2.3, 2.4 i 2.5 Wcześniejsze i późniejsze zmiany w Pythonie Dodatek D Rozwiązania ćwiczeń podsumowujących poszczególne części książki Część I Wprowadzenie Część II Typy i operacje Część III Instrukcja i składnia Część IV Funkcje i generatory Część V Moduły i pakiety Część VI Klasy i programowanie zorientowane obiektowo Część VII Wyjątki oraz narzędzia
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Wszystkie egzemplarze są obecnie wypożyczone: sygn. 149860 N (1 egz.)
Książka
W koszyku
(O'Reilly)
U góry okł.: Najnowsze wcielenie najpopularniejszej dystrybucji Linuksa.
Indeks.
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 110432 (1 egz.)
Książka
W koszyku
Tytuł oryginału: Web Penetration Testing with Kali Linux.
Wydanie 3. odnosi się do oryginału.
Na stronie tytułowej, grzbiecie i okładce nazwa wydawcy oryginalnego: Packt.
Na książce także ISBN oryginału.
Indeks.
Dla studentów informatyki, programistów, i administratorów systemów, a także dla twórców aplikacji, administratorów systemów i specjalistów ds. cyberbezpieczeństwa.
Rozdział 1. Wprowadzenie do testów penetracyjnych i aplikacji sieciowych 19 Aktywne testowanie zabezpieczeń 20 Różne metodyki testowania 20 Co należy brać pod uwagę podczas przeprowadzania testów penetracyjnych 22 Reguły prowadzenia testu penetracyjnego 22 Ograniczenia testów penetracyjnych 24 Dlaczego należy testować aplikacje sieciowe 26 Dlaczego aplikacje sieciowe należy chronić przed atakami 27 Kali Linux 28 Aplikacje sieciowe - wprowadzenie dla pentesterów 28 Protokół HTTP 29 Żądania i odpowiedzi HTTP 29 Obsługa sesji HTTP 33 Dane HTML w odpowiedzi HTTP 36 Wielowarstwowe aplikacje sieciowe 37 Rozdział 2. Konfiguracja środowiska testowego z systemem Kali Linux 47 Kali Linux 48 Udoskonalenia wprowadzone w systemie Kali Linux 48 Instalowanie systemu Kali Linux 49 Instalacja systemu Kali Linux na platformie VirtualBox 51 Najważniejsze narzędzia w systemie Kali Linux 58 Narzędzia do identyfikacji frameworków i systemów CMS 59 Serwery proxy aplikacji sieciowych 60 Roboty sieciowe i siłowe przeszukiwanie struktury katalogów 64 Sieciowe skanery podatności i luk w zabezpieczeniach 65 Podatne aplikacje i serwery, których można użyć do ćwiczeń 70 Projekt OWASP Broken Web Applications 70 Hackazon 72 Web Security Dojo 72 Rozdział 3. Rekonesans i profilowanie serwerów WWW 75 Rekonesans 76 Rekonesans pasywny kontra rekonesans aktywny 77 Gromadzenie informacji 77 Szczegółowe informacje o rejestracji domeny 78 Identyfikacja powiązanych hostów za pomocą DNS 80 Używanie wyszukiwarek i publicznych usług sieciowych do zbierania informacji 86 Narzędzie Recon-ng - system gromadzenia informacji 89 Skanowanie - badanie celu 94 Skanowanie portów za pomocą skanera Nmap 95 Profilowanie serwera 98 Skanowanie serwerów sieciowych w poszukiwaniu luk i błędów konfiguracyjnych 106 Zastosowanie robotów indeksujących do przeszukiwania aplikacji sieciowych (web spidering) 112 Rozdział 4. Podatności uwierzytelniania i zarządzania sesjami 121 Schematy uwierzytelniania w aplikacjach internetowych 122 Uwierzytelnianie na poziomie platformy 122 Uwierzytelnianie oparte na formularzach 125 Uwierzytelnianie dwuskładnikowe 126 OAuth 127 Mechanizmy zarządzania sesjami 127 Sesje oparte na uwierzytelnianiu platformy 127 Identyfikatory sesji 127 Typowe błędy uwierzytelniania w aplikacjach internetowych 129 Brak uwierzytelnienia lub nieprawidłowa weryfikacja uwierzytelniania 129 Wyszukiwanie nazw kont użytkowników 129 Pozyskiwanie haseł za pomocą ataków typu brute force i ataków słownikowych 134 Mechanizm resetowania hasła 144 Luki w implementacjach mechanizmu 2FA 145 Wykrywanie i wykorzystywanie niewłaściwego zarządzania sesjami 146 Zastosowanie modułu Burp Sequencer do oceny jakości identyfikatorów sesji 147 Przewidywanie wartości identyfikatorów sesji 149 Ataki typu Session Fixation 154 Zapobieganie atakom na uwierzytelnianie i sesje 157 Wytyczne dotyczące uwierzytelniania 157 Wskazówki dotyczące zarządzania sesjami 159 Rozdział 5. Wykrywanie i wykorzystywanie podatności pozwalających na wstrzykiwanie kodu 161 Wstrzykiwanie poleceń 162 Identyfikacja parametrów do wstrzykiwania danych 164 Wykorzystywanie luki Shellshock 167 Wstrzykiwanie zapytań SQL 172 Podstawowe zagadnienia związane z językiem SQL 173 Przykład kodu podatnego na atak ze wstrzykiwaniem kodu 174 Metodologia testowania podatności na wstrzykiwanie kodu SQL 175 Pobieranie danych za pomocą wstrzykiwania kodu SQL 178 Automatyzacja procesu wykorzystywania luk typu SQL injection 187 Możliwości ataków z wykorzystaniem wstrzykiwania kodu SQL 194 Wstrzykiwanie kodu XML 195 Ataki typu XPath injection 195 Ataki ze wstrzykiwaniem kodu XML External Entity 199 Ataki typu Entity Expansion 201 Ataki ze wstrzykiwaniem kodu NoSQL 202 Testowanie podatności na wstrzykiwanie kodu NoSQL 203 Wykorzystywanie możliwości wstrzykiwania kodu NoSQL 203 Łagodzenie skutków i zapobieganie podatnościom na wstrzykiwanie kodu 205 Rozdział 6. Wyszukiwanie i wykorzystywanie podatności typu Cross-site scripting (XSS) 207 Przegląd podatności typu Cross-site scripting 208 Ataki typu Persistent XSS 210 Ataki typu Reflected XSS 211 Ataki typu DOM-based XSS 211 Ataki typu XSS z użyciem metody POST 213 Wykorzystywanie podatności typu Cross-site scripting 214 Wykradanie plików cookie 214 Podmiana zawartości witryny 216 Keylogger - rejestrowanie naciśnięć klawiszy 217 Przejmowanie kontroli nad przeglądarką użytkownika za pomocą pakietu BeEF-XSS 220 Skanowanie w poszukiwaniu luk typu XSS 223 XSSer 223 XSS-Sniper 225 Zapobieganie skutkom ataków typu Cross-site scripting 226 Rozdział 7. Wyszukiwanie i wykorzystywanie podatności typu Cross-site request forgery (CSRF/XSRF) 229 Wyszukiwanie podatności typu CSRF 230 Wykorzystywanie podatności typu CSRF 233 Wykorzystywanie podatności CSRF z użyciem żądania POST 233 Ataki typu CSRF na usługi sieciowe 236 Zastosowanie podatności XSS do ominięcia zabezpieczeń przed atakami CSRF 238 Zapobieganie atakom CSRF 242 Rozdział 8. Ataki z wykorzystaniem podatności kryptograficznych 245 Podstawowe zagadnienia związane z kryptografią 246 Algorytmy i tryby szyfrowania 247 Funkcje haszujące 250 Bezpieczna komunikacja z użyciem protokołu SSL/TLS 251 Bezpieczna komunikacja w aplikacjach sieciowych 252 Identyfikacja słabych implementacji SSL/TLS 254 Polecenie OpenSSL 254 SSLScan 257 SSLyze 258 Testowanie konfiguracji SSL za pomocą skanera Nmap 259 Wykorzystywanie luki Heartbleed 261 Luka POODLE 263 Niestandardowe protokoły szyfrowania 264 Identyfikacja zaszyfrowanych i zakodowanych informacji 264 Najczęstsze błędy popełniane podczas przechowywania i przesyłania poufnych danych 272 Używanie narzędzi do łamania haseł offline 273 Zapobieganie błędom w implementacjach kryptograficznych 277 Rozdział 9. AJAX, HTML5 i ataki po stronie klienta 279 Przeszukiwanie aplikacji AJAX 279 AJAX Crawling Tool 280 Sprajax 281 AJAX Spider - OWASP ZAP 281 Analizowanie magazynu danych i kodu po stronie klienta 283 Narzędzia programistyczne przeglądarki sieciowej 284 HTML5 dla pentesterów 288 Nowe wektory ataków XSS 288 Lokalne magazyny danych i bazy klienta 289 Web Messaging 291 WebSockets 291 Inne ważne cechy HTML5 296 Omijanie mechanizmów kontroli działających po stronie klienta 297 Łagodzenie skutków luk w zabezpieczeniach AJAX, HTML5 i innych podatności po stronie klienta 301 Rozdział 10. Inne często spotykane podatności aplikacji sieciowych 303 Niezabezpieczone bezpośrednie odwołania do obiektów 304 Bezpośrednie odwołania do obiektów w usługach sieciowych 306 Ataki typu path traversal 306 Ataki typu file inclusion 308 Ataki typu Local File Inclusion 309 Ataki typu Remote File Inclusion 312 Ataki typu HTTP parameter pollution 312 Wycieki informacji 313 Zapobieganie atakom 316 Niezabezpieczone bezpośrednie odwołania do obiektów 316 Ataki typu file inclusion 316 Ataki typu HTTP parameter pollution 317 Wycieki informacji 317 Rozdział 11. Skanowanie aplikacji sieciowych przy użyciu zautomatyzowanych skanerów podatności 319 Zanim zaczniesz używać automatycznego skanera podatności 320 Skanery podatności aplikacji sieciowych dostępne w systemie Kali Linux 321 Nikto 321 Skipfish 323 Wapiti 325 Skaner OWASP ZAP 327 Skanery podatności dla systemów CMS 329 WPScan 330 JoomScan 331 CMSmap 332 Fuzzing aplikacji internetowych 333 Korzystanie z fuzzera OWASP ZAP 334 Moduł Burp Intruder 338 Postępowanie po zakończeniu skanowania 342
Sygnatura czytelni BWEAiI: XII S 21
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 148056 N (1 egz.)
Książka
CD
W koszyku
(Biblia)
Na okł.: Dostosowanie środowiska graficznego GNOME lub KDE do własnych potrzeb. Red Hat Linux jako serwer wydruku i plików, pocztowy, FTP, WWW i DHCP. Współpraca Red Hat Linuksa z komputerami pracyjącymi w systemach Windows i Mac OS X. Zabezpieczenie Linuksa przed atakami z zewnątrz.
Płyty CD zawierają pełną wersję instalacyjną systemu Red Hat Linux 9.
Indeks.
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 108218 (1 egz.)
Książka
W koszyku
Na stronie tytułowej i okładce informacja o wydawcy oryginału - Apress.
U góry okładki.: Ochrona Twoich danych w epoce terabajtów.
Indeks.
Dla inżynierów systemowych i projektantów rozwiązań architektury IT w dużych firmach, administratorów systemów i kierowników działów IT.
Rozdział 1. Kopie zapasowe i odtwarzanie danych - wprowadzenie (13) Kopie zapasowe i odtwarzanie danych - podstawowe założenia (14) Kopie zapasowe (15) Archiwa danych (21) Parametry i definicje (27) Rozdział 2. Oprogramowanie do tworzenia kopii zapasowych (31) CommVault Simpana (31) Historia i tło (31) Terminologia (31) Symantec NetBackup (40) Historia i tło (40) NetBackup Master Server (42) Media Server (45) Klienty (45) Przepływ danych w środowisku NetBackup (46) Rozdział 3. Fizyczne nośniki danych (49) Taśmy (49) Taśmy DLT (Digital Linear Tape) (50) Taśmy LTO (Linear Tape Open) (50) Taśmy Oracle/StorageTek T10000 (T10k) (51) Charakterystyki nośników taśmowych (51) Dyski (63) RAID 10 (64) RAID 5 (65) RAID 6 (65) Implementacja i wydajność macierzy RAID (66) Pamięci dyskowe NAS (Network Attached Storage) (74) Rozdział 4. Wirtualne nośniki danych (85) Wirtualne biblioteki taśmowe (85) Typy bibliotek VTL (93) Modele alokacji przestrzeni wirtualnych nośników taśmowych (96) Dlaczego biblioteki VTL? (98) Inne nośniki wirtualne i ich przyszłość (107) Rozdział 5. Nowe technologie nośników (109) Deduplikacja (109) Deduplikacja na poziomie bloków o stałej wielkości (114) Deduplikacja na poziomie bloku o zmiennej wielkości (115) Ograniczenia typów danych: multimedia, tajemnice i Matka Natura (116) Rodzaje i definicje deduplikacji (117) Ciągła ochrona danych i replikacja zdalna (126) Rozdział 6. Architektura aplikacji - CommVault (133) Ogólna konfiguracja (133) Typy pamięci dyskowych i bibliotek MagLib (133) Procesy zapisujące na dyskach (134) Multipleksowanie (135) Mechanizm Fill/Spill czy Spill/Fill? (136) Zasady przechowywania danych (136) Pary interfejsów danych (138) Struktura CommCell z jednym urządzeniem docelowym (138) Struktura CommCell z pojedynczym serwerem MediaAgent (139) Zaawansowane metody połączeń z pamięciami masowymi (143) Struktura CommCell z wieloma serwerami MediaAgent (147) Zasoby sieciowe (148) Zasoby pamięci masowej (153) Środowisko z wieloma strukturami CommCell (161) Rozdział 7. Architektura aplikacji - NetBackup (165) Konfiguracja ogólna (165) Multipleksowanie i wielostrumieniowość (166) Deduplikacja w trybie inline (twinning) (167) Strojenie buforów pamięci (168) Zmienne SIZE_DATA_BUFFERS i NUMBER_DATA_BUFFERS (168) Zmienna NET_BUFFER_SZ (170) Tworzenie kopii dodatkowych (Vault/bpduplicate) (170) Konfiguracje ogólne (171) NetBackup Master z jednym urządzeniem docelowym (171) NetBackup Master z jednym serwerem Media Server (171) NetBackup Master z wieloma serwerami Media Server (179) Środowisko z wieloma domenami pamięci masowej (194) Rozdział 8. Strategie tworzenia kopii zapasowych (199) Strategie ogólne (199) Systemy plików (200) Normalny system plików (201) Systemy plików o dużej gęstości (HDFS) (205) Tworzenie kopii zapasowych na poziomie bloku danych (206) Deduplikacja po stronie źródła (208) Systemy plików - podsumowanie (209) Bazy danych (209) Kopie zapasowe dzienników baz danych (210) Kopie zapasowe baz danych inicjowane lokalnie (211) Skrypty wykonywane przed zadaniem i po nim (211) Migawkowe kopie zapasowe (212) SQL Server (217) Oracle (222) Serwery pocztowe (229) Exchange (230) Lotus Notes (236) Inne aplikacje (239) Maszyny wirtualne (239) Rozdział 9. Wszystko razem, czyli przykładowe środowiska tworzenia kopii zapasowych (245) Tworzenie kopii zapasowych w chmurze jako usługa (245) Bezpieczeństwo usług BaaS (246) Koszty usługi BaaS (247) Środowiska z jednym serwerem kopii zapasowych (249) Wybór urządzeń docelowych dla kopii zapasowych (250) Wydajność systemu (254) Wydajność klienta (256) Środowisko z jednym serwerem kopii zapasowych i jednym serwerem zapisującym (259) Środowisko CommVault z serwerem MediaAgent (262) Środowisko z jednym serwerem głównym i wieloma serwerami zapisującymi (264) Deduplikacja - kiedy i gdzie? (284) Deduplikacja po stronie celu (285) Deduplikacja po stronie źródła (285) Wdrożenia w zdalnych oddziałach firmy (287) Zdalny oddział firmy (289) Oddział regionalny (291) Zdalne centra przetwarzania danych (293) Zdalne oddziały firmy - podsumowanie (299) Tworzenie kopii zapasowych na dużych odległościach (299) Tworzenie kopii zapasowych w środowisku międzynarodowym (301) Rozdział 10. Monitorowanie i raportowanie (303) Oprogramowanie do tworzenia kopii zapasowych (306) Zadania zakończone powodzeniem lub niepowodzeniem (307) Kody błędów (307) Szybkość tworzenia kopii zapasowych dla poszczególnych klientów (308) Ilość danych objętych ochroną (308) Liczba nośników taśmowych w puli (308) Pojemność dyskowej pamięci masowej (308) Lokalizacja aktualnej kopii zapasowej katalogu kopii zapasowych (309) Serwery tworzące kopie zapasowe (309) Stopień obciążenia procesorów (310) Stopień wykorzystania pamięci operacyjnej (310) Stopień obciążenia połączeń sieciowych (311) Wykorzystanie pamięci masowej (312) Elementy opcjonalne (313) Wydajność klientów (313) Wydajność połączeń sieciowych (315) Wydajność pamięci SAN i pamięci dyskowych (316) Wartości współczynników deduplikacji (318) Rozdział 11. Podsumowanie (321) Dobra kopia zapasowa jest najważniejsza! (321) Obrona kosztów tworzenia kopii zapasowych (322) Jeden rozmiar nie zadowoli wszystkich... (324)
Sygnatura czytelni BWEAiI: XII Ń 63
Ta pozycja znajduje się w zbiorach 2 placówek. Rozwiń listę, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 151142, 151143 (2 egz.)
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 132961 N (1 egz.)
Książka
W koszyku
(Księga Eksperta)
Okł.: Kompendium wiedzy. Rzetelne omówienia architektury Windows XP. Instalowanie i konfigurowanie aplikacji. Informacje na temat pracy Windows XP w sieciach LAN i Internet.
Indeks.
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 105967 (1 egz.)
Książka
W koszyku
Na okładce: Wydanie 3 - dotyczy wydania oryginału.
Indeks.
Poznawanie systemu Android Wymagania wstępne Co nowego w trzecim wydaniu? Jak korzystać z tej książki? Jak zorganizowana jest ta książka Wyzwania Czy jesteś dociekliwy? Styl kodowania Konwencje typograficzne Wersje systemu Android Niezbędne narzędzia Pobieranie i instalowanie Android Studio Pobieranie starszych wersji środowiska SDK Urządzenie sprzętowe Twoja pierwsza aplikacja dla systemu Android Podstawowe elementy aplikacji Tworzenie projektu aplikacji dla systemu Android Poruszanie się w Android Studio Tworzenie układu interfejsu użytkownika Hierarchia widoków Atrybuty widgetów Tworzenie zasobów tekstowych Podgląd układu Od pliku układu XML do obiektów klasy View Zasoby i identyfikatory zasobów Podłączanie widgetów Pobieranie odwołań do widgetów Tworzenie obiektów nasłuchujących Tworzenie komunikatów toast Zastosowanie mechanizmu dopełniania kodu Uruchamianie aplikacji w emulatorze Dla dociekliwych: proces budowania aplikacji Narzędzia wspomagające budowanie aplikacji Wyzwania Wyzwanie: dostosowywanie komunikatów toast do własnych potrzeb System Android i wzorzec MVC Tworzenie nowej klasy Generowanie getterów i setterów Wzorzec MVC a system Android Zalety stosowania wzorca MVC Aktualizacje warstwy widoku Aktualizacja warstwy kontrolera Uruchamianie aplikacji na urządzeniu fizycznym Podłączanie urządzenia fizycznego Konfigurowanie urządzenia do pracy ze środowiskiem deweloperskim Dodawanie ikon Dodawanie nowych zasobów do projektu aplikacji Odwołania do zasobów w kodzie XML Wyzwanie: dodaj listener do widoku TextView Wyzwanie: dodaj przycisk Poprzednie Wyzwanie: od przycisku Button do przycisku ImageButton Cykl życia aktywności Logowanie cyklu życia aktywności Tworzenie dziennika komunikatów Zastosowanie panelu Logcat Badanie cyklu życia aktywności w praktyce Zmiana orientacji urządzenia a cykl życia aktywności Konfiguracje urządzeń i zasoby alternatywne Zapisywanie danych przy zmianie orientacji urządzenia Nadpisywanie metody onSaveInstanceState(Bundle) Jeszcze kilka słów o cyklu życia aktywności Dla dociekliwych: bieżący proces czyszczenia aktywności Dla dociekliwych: poziomy logowania i odpowiadające im metody Wyzwanie: zapobieganie wielokrotnym odpowiedziom na to samo pytanie Wyzwanie: ocena poziomu poprawności odpowiedzi Debugowanie aplikacji dla systemu Android Wyjątki i ślad stosu Diagnozowanie problemów Logowanie śladów stosu Ustawianie punktów przerwania w kodzie Zastosowanie pułapek z wyjątkami Mechanizmy debugowania specyficzne dla systemu Android Korzystanie z programu Android Lint Problemy z klasą R Wyzwanie: zastosowanie narzędzia Layout Inspector Wyzwanie: śledzenie alokacji zasobów pamięci Twoja druga aktywność Konfigurowanie drugiej aktywności Tworzenie nowej aktywności Podklasa nowej aktywności Deklarowanie aktywności w manifeście aplikacji Dodawanie przycisku podpowiedzi do aktywności QuizActivity Uruchamianie aktywności Komunikowanie się z intencjami Przekazywanie danych między intencjami Używanie danych typu extras w intencjach Pobieranie wyników z aktywności podrzędnej Jak system Android widzi Twoje aktywności Wyzwanie: zamykanie luk dla oszustów Wersje Android SDK i kompatybilność aplikacji Wersje środowiska Android SDK Kompatybilność aplikacji z różnymi wersjami systemu Android Rozsądne minimum Minimalna wersja SDK Docelowa wersja SDK Wersja kompilacji SDK Bezpieczne dodawanie kodu z nowszych wersji API Korzystanie z dokumentacji dla deweloperów aplikacji systemu Android Wyzwanie: raportowanie wersji SDK Wyzwanie: ograniczenie podpowiadania Fragmenty w interfejsie użytkownika i menedżer fragmentów Potrzeba elastyczności interfejsu użytkownika Wprowadzenie do zastosowania fragmentów Uruchamianie aplikacji CriminalIntent Tworzenie nowego projektu Dwa typy fragmentów Dodawanie zależności w Android Studio Tworzenie klasy Crime Hostowanie fragmentów interfejsu użytkownika Cykl życia fragmentu Dwa podejścia do hostowania fragmentów Definiowanie widoku kontenera Tworzenie fragmentu interfejsu użytkownika Definiowanie układu fragmentu CrimeFragment Tworzenie klasy CrimeFragment Dodawanie fragmentów interfejsu użytkownika do instancji klasy FragmentManager Transakcje fragmentów FragmentManager i cykl życia fragmentów Architektura aplikacji wykorzystującej fragmenty Powód, dla którego wszystkie nasze aktywności używają fragmentów Dla dociekliwych: fragmenty i biblioteka wsparcia Dla dociekliwych: dlaczego fragmenty z biblioteki wsparcia są bardziej użyteczne? Wyświetlanie list w widoku RecyclerView Aktualizacja warstwy modelu aplikacji CriminalIntent Wzorzec Singleton i scentralizowane przechowywanie danych Abstrakcyjna aktywność do przechowywania fragmentów Ogólny układ przechowujący fragmenty Abstrakcyjna klasa Activity Klasy RecyclerView, Adapter oraz ViewHolder Klasy ViewHolder i Adapter Adaptery Zastosowanie kontenera RecyclerView Widok do wyświetlenia Implementowanie klas ViewHolder i Adapter Dowiązywanie elementów listy Reagowanie na naciśnięcie Dla dociekliwych: kontenery ListView i GridView Dla dociekliwych: singletony Wyzwanie: typy widoków kontenera RecyclerView Tworzenie interfejsów użytkownika z układami i widgetami Korzystanie z graficznego narzędzia tworzenia układów Wprowadzenie do dynamicznych układów interfejsu - ConstraintLayout Korzystanie z układu ConstraintLayout Edytor graficzny Tworzenie miejsca dla widoków Dodawanie widgetów Wewnętrzne ustawienia układu ConstraintLayout Edytowanie właściwości Tworzenie dynamicznych elementów listy Jeszcze kilka słów o atrybutach układu Gęstość pikseli ekranu i jednostki dp oraz sp Marginesy i odstępy Style, motywy i atrybuty motywów Wytyczne dla deweloperów aplikacji dla systemu Android Graficzne narzędzia do tworzenia układów Wyzwanie: formatowanie daty Zastosowanie argumentów fragmentów Uruchamianie aktywności przez fragment Dodawanie danych extras Pobieranie danych extras Wypełnianie widoku fragmentu CrimeFragment danymi z obiektu Crime Wady bezpośredniego pobierania danych Argumenty fragmentu Przypisywanie argumentów do fragmentu Pobieranie argumentów Przeładowywanie listy Pobieranie wyników działania fragmentów Dla dociekliwych: dlaczego używamy argumentów fragmentów? Wyzwanie: efektywne przeładowywanie zawartości kontenera RecyclerView Wyzwanie: ulepszanie wydajności działania obiektu CrimeLab Zastosowanie klasy ViewPager Tworzenie klasy CrimePagerActivity Obiekty ViewPager i PagerAdapter Integrowanie aktywności CrimePagerActivity FragmentStatePagerAdapter kontra FragmentPagerAdapter Dla dociekliwych: jak naprawdę działa ViewPager Dla dociekliwych: rozmieszczanie widoków z poziomu kodu Wyzwanie: odtwarzanie marginesów fragmentu CrimeFragment Wyzwanie: dodawanie przycisków Pierwsza i Ostatnia Okna dialogowe Tworzenie instancji klasy DialogFragment Wyświetlanie fragmentu DialogFragment Dodawanie zawartości okna dialogowego Przekazywanie danych między fragmentami Przekazywanie danych do fragmentu DatePickerFragment Zwracanie danych do fragmentu CrimeFragment Wyzwanie: więcej okien dialogowych Wyzwanie: bardziej responsywny DialogFragment Pasek narzędzi Biblioteka AppCompat Używanie biblioteki AppCompat Menu Definiowanie menu w kodzie XML Tworzenie menu Reagowanie na wybranie elementu menu Włączanie nawigacji hierarchicznej Jak działa nawigacja hierarchiczna Alternatywny przycisk akcji Przełączanie tytułu przycisku akcji "Jeszcze tylko jedna sprawa..." Dla dociekliwych: pasek akcji a pasek narzędzi Wyzwanie: usuwanie przestępstw z listy Wyzwanie: zasoby tekstowe typu plural Wyzwanie: pusty widok dla kontenera RecyclerView Bazy danych SQLite Definiowanie schematu Tworzenie szkieletu bazy danych Eksploracja plików przy użyciu Android Device Monitor Debugowanie problemów z bazą danych Patroszymy CrimeLab Zapisywanie danych w bazie Zastosowanie klasy ContentValues Wstawianie i aktualizowanie wierszy tabeli Odczytywanie danych z bazy Zastosowanie klasy CursorWrapper Zamiana na obiekty modelu Dla dociekliwych: więcej baz danych Dla dociekliwych: kontekst aplikacji Wyzwanie: usuwanie przestępstw z listy Intencje niejawne Dodawanie przycisków Dodawanie podejrzanego do warstwy modelu Zastosowanie ciągów formatujących Zastosowanie niejawnych intencji Elementy składowe niejawnej intencji Wysyłanie raportu o przestępstwie Korzystanie z listy kontaktów Wyszukiwanie aktywności zdolnych do wykonania danego zadania Wyzwanie: klasa ShareCompat Wyzwanie: kolejna intencja niejawna Wykonywanie zdjęć przy użyciu intencji Miejsce do przechowywania zdjęć Miejsce na przechowywanie plików Zastosowanie klasy FileProvider Określanie lokalizacji zdjęć Zastosowanie intencji do uruchomienia aparatu fotograficznego Uruchamianie intencji Skalowanie i wyświetlanie bitmap Deklarowanie wymagań aplikacji Wyzwanie: wyświetlanie zdjęcia w pełnym rozmiarze Wyzwanie: efektywne ładowanie miniaturek zdjęć Dwupanelowy interfejs typu lista-szczegóły Dodawanie elastyczności do układu Modyfikowanie klasy SingleFragmentActivity Tworzenie układu z dwoma kontenerami dla fragmentów Używanie aliasów zasobów Tworzenie alternatywy dla tabletów Aktywność: nadzorca fragmentów Interfejsy zwrotne układów Dla dociekliwych: jeszcze kilka słów o sprawdzaniu rozmiarów ekranu urządzenia Wyzwanie: dodawanie funkcji "przeciągnij, aby usunąć" Lokalizacja Lokalizacja zasobów Zasoby domyślne Sprawdzanie pokrycia zasobów przy użyciu edytora tłumaczeń Translations Editor Dostosowywanie ustawień regionalnych Kwalifikatory konfiguracji Priorytetyzacja zasobów alternatywnych Wiele kwalifikatorów Odszukiwanie zasobów najlepiej dopasowanych do bieżącej konfiguracji Testowanie zasobów alternatywnych Wyzwanie: lokalizacja dat Ułatwienia dostępu Usługa TalkBack Eksploracja przez dotyk Nawigacja liniowa poprzez przeciąganie palcem po ekranie Jak spowodować, aby TalkBack odczytywał elementy nietekstowe? Dodawanie opisów zawartości Włączanie możliwości ustawienia fokusu dla wybranego widoku Jak zapewnić zbliżoną funkcjonalność aplikacji z ułatwieniami dostępu Zastosowanie etykiet do udostępniania kontekstu Dla dociekliwych: korzystanie z aplikacji Accessibility Scanner Wyzwanie: poprawianie listy Wyzwanie: dostarczanie kontekstu dla elementu danych Wyzwanie: powiadomienia o zdarzeniach Wiązanie danych i model MVVM Różne architektury - dlaczego warto sobie tym zaprzątać głowę Tworzenie aplikacji BeatBox Proste wiązanie danych Importowanie zasobów typu assets Pobieranie zasobów assets Podłączanie zasobów typu asset Wiązanie do danych Tworzenie modelu widoku Wiązanie do modelu widoku Observable data Korzystanie z zasobów typu asset Dla dociekliwych: jeszcze kilka słów o wiązaniu danych Wyrażenia lambda Jeszcze więcej cukru syntaktycznego BindingAdapter Dla dociekliwych: dlaczego zasoby typu asset, a nie zwykłe zasoby aplikacji? Dla dociekliwych: zasoby typu non-asset? Testy jednostkowe i odtwarzanie plików audio Tworzenie klasy SoundPool Ładowanie plików dźwiękowych Odtwarzanie plików dźwiękowych Zależności testów Tworzenie klasy testowej Konfigurowanie testu Zastosowanie zależności pozornych Pisanie testów Testowanie interakcji obiektów Wywołania zwrotne wiązania danych Usuwanie plików dźwięków z pamięci Zmiana orientacji urządzenia a ciągłość istnienia obiektów Zachowywanie fragmentów Obracanie urządzenia a zachowywanie fragmentów Dla dociekliwych: czy zachowywać fragmenty? Dla dociekliwych: Espresso i testy integracyjne Dla dociekliwych: obiekty pozorne i testowanie Wyzwanie: sterowanie szybkością odtwarzania Style i motywy Zasoby kolorów Style Dziedziczenie stylów Motywy aplikacji Modyfikowanie motywu Dodawanie kolorów motywu Nadpisywanie atrybutów motywu Eksplorowanie motywu Modyfikowanie atrybutów przycisków Dla dociekliwych: jeszcze kilka słów o dziedziczeniu stylów Dla dociekliwych: dostęp do atrybutów motywu Elementy XML drawable Tworzenie przycisków o jednolitym wyglądzie) Elementy typu shape drawable Lista stanów Lista warstw Dla bardziej dociekliwych: po co zawracać sobie głowę elementami XML drawable? Dla bardziej dociekliwych: obrazy Mipmap Dla dociekliwych: obrazy 9-patch Wyzwanie: motywy przycisków Więcej o intencjach i zadaniach Tworzenie aplikacji NerdLauncher Rozwiązywanie intencji niejawnych Tworzenie jawnych intencji w czasie działania programu Zadania i stos aktywności Przełączanie między zadaniami Uruchamianie nowego zadania Użycie launchera NerdLauncher jako ekranu głównego Wyzwanie: ikony Dla dociekliwych: procesy kontra zadania Dla dociekliwych: dokumenty równoległe HTTP i zadania drugoplanowe Tworzymy aplikację PhotoGallery Podstawowe zagadnienia sieciowe Uzyskiwanie uprawnień do korzystania z połączeń sieciowych Uruchamianie zadań asynchronicznych AsyncTask w wątku tła Ty i Twój wątek główny Poza głównym wątkiem Pobieranie danych w formacie JSON z serwisu Flickr Parsowanie danych zapisanych w formacie JSON Od zadania AsyncTask z powrotem do wątku głównego Porządkowanie zadań asynchronicznych AsyncTask Dla dociekliwych: jeszcze kilka słów o zadaniach AsyncTask Dla dociekliwych: alternatywy dla zadań AsyncTask Wyzwanie: Gson Wyzwanie: podział na strony Wyzwanie: dynamiczne modyfikowanie liczby wyświetlanych kolumn Obiekty Looper, Handler i HandlerThread Przygotowanie kontenera RecyclerView do wyświetlania obrazów Pobieranie wielu małych rzeczy Komunikacja z wątkiem głównym (544) Tworzenie wątku tła Komunikaty i handlery komunikatów Anatomia komunikatu Anatomia handlera Używanie handlerów Przekazywanie handlerów Dla dociekliwych: zadania AsyncTask kontra wątki Dla dociekliwych: rozwiązywanie problemu z pobieraniem zdjęć Dla dociekliwych: tryb StrictMode Wyzwanie: ładowanie wstępne i buforowanie danych Wyszukiwanie Wyszukiwanie zdjęć w serwisie Flickr Zastosowanie widoku SearchView Reagowanie na interakcję widoku SearchView z użytkownikiem Proste zachowywanie danych w plikach preferencji Wygładzanie aplikacji Wyzwanie: jeszcze bardziej ulepszamy aplikację Usługi działające w tle Tworzenie usługi IntentService Do czego służą usługi Operacje sieciowe bezpiecznie działające w tle Sprawdzanie, czy pojawiły się nowe wyniki wyszukiwania Opóźnione wykonywanie z wykorzystaniem usługi AlarmManager Jak używać alarmów we właściwy sposób Obiekty PendingIntent Zarządzanie alarmami przy użyciu PendingIntent Sterowanie alarmami Powiadomienia Wyzwanie: powiadomienia na urządzeniach typu Android Wear Dla dociekliwych: szczegóły usługi Czym zajmują się usługi (a czego nie powinny robić) Cykl życia usługi Usługi typu non-sticky Usługi typu sticky Wiązanie usług Dla dociekliwych: klasy JobScheduler oraz JobServices JobScheduler i przyszłość zadań drugoplanowych Wyzwanie: zastosowanie klasy JobService w systemie Lollipop Dla bardziej dociekliwych: adaptery synchronizacji Intencje rozgłoszeń Intencje a intencje rozgłoszeń Odbieranie rozgłoszeń systemowych - aktywowanie podczas uruchamiania systemu Tworzenie i rejestrowanie samodzielnego odbiornika rozgłoszeń Używanie odbiorników rozgłoszeń Filtrowanie powiadomień pierwszoplanowych Wysyłanie intencji rozgłoszenia Tworzenie i rejestrowanie odbiornika dynamicznego Ograniczanie zasięgu rozgłoszeń tylko do naszej aplikacji przy użyciu prywatnych uprawnień Przekazywanie i odbieranie danych przy użyciu rozgłoszeń uporządkowanych Odbiorniki i zadania działające przez długi czas Dla dociekliwych: zdarzenia lokalne Używanie biblioteki EventBus Używanie biblioteki RxJava Dla dociekliwych: sprawdzanie, czy fragment jest widzialny Przeglądanie sieci WWW i widoki WebView Ostatni kawałek danych z serwisu Flickr Prosty sposób - intencje niejawne Trudniejszy sposób - widok WebView Zastosowanie interfejsu WebChromeClient do ulepszenia wyświetlania stron internetowych Zmiana orientacji urządzenia a widok WebView Niebezpieczeństwa związane z obsługą zmian konfiguracji) Dla dociekliwych: wstrzykiwanie obiektów JavaScript Dla dociekliwych: aktualizacje widoku WebView Wyzwanie: używanie przycisku Wstecz do obsługi historii przeglądania Wyzwanie: obsługa łączy innych niż HTTP Widoki niestandardowe i zdarzenia związane z dotykiem Konfigurowanie projektu aplikacji DragAndDraw Tworzenie własnego, niestandardowego widoku Tworzenie widoku BoxDrawingView Obsługa zdarzeń związanych z dotykiem Śledzenie zdarzeń związanych z ruchem palca po ekranie Renderowanie z użyciem metody onDraw(Canvas) Wyzwanie: zapisywanie stanu Wyzwanie: obracanie prostokątów Animacja właściwości Budowanie sceny) Proste animacje Właściwości transformacji widoków Używanie różnych interpolatorów Modyfikowanie kolorów Uruchamianie kilku animatorów jednocześnie Dla dociekliwych: inne API animacji Starsze narzędzia animacyjne Transformacje Wyzwania Lokalizacja i usługi Play Lokalizacja i biblioteki Usługi Google Play) Tworzenie aplikacji Locatr Google Play Services a testowanie usług lokalizacji w emulatorze Symulowane dane lokalizacji Budowanie aplikacji Konfigurowanie Google Play Services Uprawnienia do wyznaczania lokalizacji Używanie Google Play Services Wyszukiwanie zdjęć w serwisie Flickr z użyciem geolokalizacji Pobieranie informacji o bieżącej lokalizacji) Żądanie udzielenia uprawnień po uruchomieniu aplikacji Sprawdzanie uprawnień Wyszukiwanie i wyświetlanie zdjęć z użyciem geolokalizacji Wyzwanie: uzasadnianie prośby o udzielenie uprawnień Wyzwanie: wskaźnik postępu wyszukiwania Mapy Importowanie biblioteki Play Services Maps Korzystanie z map w systemie Android Pobieranie klucza Maps API dla map Google Konfigurowanie map Pobieranie dodatkowych danych o lokalizacji Praca z mapą Rysowanie na mapie Dla dociekliwych: zespoły programistów i klucze API Interfejs Material Design Warstwy materiałów Elewacja i wartości osi Z Animatory listy stanów Narzędzia animacji Animacje typu circular reveal Transformacje współdzielonego elementu Komponenty widoków Karty Przyciski FAB Powiadomienia Snackbar Jeszcze kilka słów o interfejsie Material Design Posłowie Wyzwanie finałowe
Sygnatura czytelni BWEAiI: XII R 38
Ta pozycja znajduje się w zbiorach 2 placówek. Rozwiń listę, by zobaczyć szczegóły.
Wypożyczalnia
Wszystkie egzemplarze są obecnie wypożyczone: sygn. 145374 (1 egz.)
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 145174 N (1 egz.)
Książka
W koszyku
(Technologia i Rozwiązania)
Na okładce: Poznaj zagrożenia czyhające na Twoją sieć!
U dołu strony tytułowej i okładki logo wydawcy oryginału: Packt Publishing.
Indeks.
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 136710 N (1 egz.)
Książka
W koszyku
Wydanie II odnosi się do oryginału.
Na okładce nazwa wydawcy oryginalnego: Packt.
Indeks.
Rozdział 1. Testy penetracyjne ukierunkowane na osiągnięcie celu (23) Koncepcyjny przegląd testów bezpieczeństwa (24) Zmierzch klasycznych testów penetracyjnych, skanowania w poszukiwaniu podatności i działań zespołów Red Team (24) Metodologia przeprowadzania testów (26) Wprowadzenie do systemu Kali Linux - jego historia i przeznaczenie (28) Instalowanie i aktualizowanie systemu Kali Linux (30) Uruchamianie systemu Kali Linux z urządzenia przenośnego (30) Instalowanie systemu Kali Linux w maszynie wirtualnej (31) VMware Workstation Player (32) VirtualBox (34) Instalowanie aplikacji Docker (39) Instalowanie systemu Kali Linux w chmurze - tworzenie instancji AWS (41) Dostosowywanie systemu Kali Linux (43) Konfigurowanie i dostosowywanie systemu Kali Linux (44) Zmiana hasła użytkownika root (44) Dodawanie zwykłego konta użytkownika (44) Przyspieszanie działania systemu Kali Linux (45) Udostępnianie i współużytkowanie folderów z systemem operacyjnym hosta (46) Dostosowywanie systemu Kali Linux do własnych potrzeb przy użyciu skryptów powłoki bash (48) Budowanie środowiska testowego (49) Konfigurowanie sieci wirtualnej z usługą Active Directory (49) Instalowanie zdefiniowanych celów (52) Metasploitable3 (52) Mutillidae (53) Zarządzanie testami penetracyjnymi przy użyciu pakietu Faraday (54) Rozdział 2. OSINT oraz rozpoznanie pasywne (59) Podstawowe zasady przeprowadzania rozpoznania (60) Biały wywiad (OSINT) (61) Ofensywny biały wywiad (62) Maltego (63) CaseFile (66) Usługi Google Cache (67) Scraping (68) Pozyskiwanie nazw kont użytkowników i adresów e-mail (69) Zbieranie informacji o użytkownikach (70) Wyszukiwarki Shodan i censys.io (70) Google Hacking Database (71) Używanie zaawansowanych operatorów Google (72) Serwery szybkiej wymiany danych (73) Zastosowanie skryptów do automatycznego zbierania informacji OSINT (74) Defensywny biały wywiad (75) Profilowanie użytkowników pod kątem przygotowywania listy haseł (78) Tworzenie słowników do łamania haseł (78) Zastosowanie programu CeWL do mapowania witryny internetowej (79) Pozyskiwanie listy słów z serwisu Twitter przy użyciu programu Twofi (80) Rozdział 3. Aktywne rozpoznawanie zewnętrznych i wewnętrznych środowisk celu (83) Trudne do wykrycia techniki skanowania (84) Modyfikowanie źródłowych adresów IP i dostosowywanie ustawień używanych narzędzi (85) Modyfikowanie parametrów pakietów (86) Używanie serwerów proxy i sieci anonimowych (88) Rozpoznanie DNS i mapowanie sieci (91) Polecenie whois (92) Wykorzystywanie kompleksowych aplikacji wspomagających przeprowadzanie rozpoznania (94) Framework recon-ng (94) Protokół IPv6 - wybrane narzędzia (99) Mapowanie trasy do celu (100) Identyfikowanie zewnętrznej infrastruktury sieciowej (103) Mapowanie sieci poza zaporą sieciową (104) Identyfikacja systemów IDS/IPS (105) Wyszukiwanie hostów (107) Wykrywanie aktywnych hostów (108) Wykrywanie otwartych portów, systemu operacyjnego oraz działających usług (109) Skanowanie portów (109) Tworzenie własnego skanera portów przy użyciu programu netcat (110) Identyfikacja systemu operacyjnego zdalnego hosta (111) Wykrywanie usług działających na zdalnych hostach (112) Skanowanie dużych środowisk celu (113) Wykorzystanie danych DHCP (114) Wykrywanie oraz identyfikacja hostów w wewnętrznych sieciach środowiska celu (115) Wbudowane polecenia konsolowe systemu Windows (116) Rozgłoszenia ARP (117) Wykrywanie hostów w sieci za pomocą pakietów ping (117) Zastosowanie skryptów do łączenia skanów z użyciem programów masscan i nmap (119) Wykorzystanie protokołu SNMP (120) Pozyskiwanie informacji o kontach użytkowników Windows za pośrednictwem sesji SMB (121) Identyfikacja udziałów sieciowych (123) Rozpoznawanie serwerów w domenie Active Directory (124) Zastosowanie narzędzi złożonych (SPARTA) (125) Przykład konfiguracji pakietu SPARTA (126) Rozdział 4. Wyszukiwanie podatności i luk w zabezpieczeniach (129) Trochę nomenklatury (130) Lokalne i sieciowe bazy podatności i luk w zabezpieczeniach (131) Skanowanie w poszukiwaniu podatności przy użyciu programu nmap (135) Wprowadzenie do skryptów LUA (137) Dostosowywanie skryptów NSE do własnych potrzeb (137) Skanery podatności aplikacji sieciowych (139) Wprowadzenie do skanerów Nikto i Vega (140) Dostosowywanie skanerów Nikto i Vega do własnych potrzeb (142) Skanery podatności dla aplikacji mobilnych (146) Skaner podatności OpenVAS (148) Dostosowywanie skanera OpenVAS do własnych potrzeb (150) Specjalizowane skanery podatności (150) Modelowanie zagrożeń (151) Rozdział 5. Bezpieczeństwo fizyczne i metody socjotechniczne (155) Metodologia przeprowadzania ataków (157) Ataki z wykorzystaniem komputera (157) Ataki z wykorzystaniem telefonu (158) Ataki z dostępem fizycznym (159) Ataki z dostępem do konsoli systemu (159) Programy samdump2 i chntpw (160) Ułatwienia dostępu - opcja Sticky Keys (163) Ataki na pamięć systemową przy użyciu programu Inception (164) Tworzenie złośliwych urządzeń fizycznych (166) Ataki z wykorzystaniem urządzeń mikroprocesorowych (168) Pakiet SET (170) Ataki na witryny internetowe - atak ze zbieraniem poświadczeń logowania (174) Ataki na witryny internetowe - atak typu tabnabbing (176) Ataki na witryny internetowe - ataki złożone (177) Atak ze wstrzykiwaniem alfanumerycznego kodu shellcode z powłoki Powershell (178) Ataki z wykorzystaniem aplikacji HTA (179) Ukrywanie plików wykonywalnych oraz maskowanie adresu URL napastnika (181) Eskalowanie ataków przy użyciu przekierowań DNS (183) Ataki typu spear phishing (184) Przeprowadzanie kampanii phishingowej z wykorzystaniem pakietu Phishing Frenzy (188) Przeprowadzanie ataku phishingowego (192) Rozdział 6. Ataki na sieci bezprzewodowe (195) Konfigurowanie systemu Kali Linux do przeprowadzania ataków na sieci bezprzewodowe (196) Przeprowadzanie rozpoznania w sieciach bezprzewodowych (197) Kismet (200) Omijanie zabezpieczenia sieci z ukrytym identyfikatorem SSID (202) Omijanie zabezpieczenia sieci z filtrowaniem adresów MAC oraz otwartym uwierzytelnianiem (204) Atakowanie sieci z szyfrowaniem WPA i WPA2 (206) Ataki typu brute-force (207) Atakowanie routerów sieci bezprzewodowych przy użyciu programu Reaver (210) Ataki typu DoS na sieci bezprzewodowe (211) Ataki na sieci WLAN z szyfrowaniem WPA/WPA2-Enterprise (213) Praca z pakietem Ghost Phisher (217) Rozdział 7. Rozpoznawanie i przełamywanie zabezpieczeń aplikacji internetowych (221) Metodologia (222) Planowanie ataku (224) Przeprowadzanie rozpoznania witryny internetowej (225) Wykrywanie zapór WAF oraz systemów równoważenia obciążenia (227) Tworzenie sygnatur aplikacji internetowych i systemów CMS (228) Tworzenie lustrzanej kopii strony internetowej z poziomu wiersza poleceń (231) Serwery proxy po stronie klienta (232) Burp Proxy (232) Poszerzanie funkcjonalności przeglądarek internetowych (237) Przeszukiwanie sieci i ataki typu brute-force na struktury katalogów (239) Skanery podatności wykrywające podatności określonych usług i aplikacji (239) Ataki specyficzne dla określonych aplikacji (241) Ataki typu brute-force na poświadczenia logowania (241) Wstrzykiwanie poleceń systemu operacyjnego przy użyciu narzędzia commix (241) Ataki ze wstrzykiwaniem danych lub kodu do baz danych (243) Utrzymywanie dostępu za pomocą powłok webshell (245) Rozdział 8. Ataki na zdalny dostęp (249) Wykorzystywanie luk w zabezpieczeniach protokołów komunikacyjnych (250) Przełamywanie zabezpieczeń protokołu RDP (250) Przełamywanie zabezpieczeń protokołu SSH (253) Przełamywanie zabezpieczeń protokołu VNC (255) Ataki na połączenia SSL (257) Słabe strony i luki w zabezpieczeniach protokołu SSL (257) Praca z programem Testssl (259) Rozpoznawanie połączeń SSL (260) Zastosowanie programu sslstrip do przeprowadzania ataku man-in-the-middle (265) Ataki typu DoS na połączenia SSL (268) Ataki na wirtualne sieci prywatne z protokołem IPSec (269) Skanowanie w poszukiwaniu bramek VPN (270) Tworzenie cyfrowego odcisku palca bramy VPN (271) Przechwytywanie kluczy PSK (272) Łamanie kluczy PSK w trybie offline (272) Identyfikacja domyślnych kont użytkowników (273) Rozdział 9. Ataki po stronie klienta (275) Backdooring - tworzenie plików wykonywalnych wyposażonych w tylne wejścia (276) Atakowanie systemów przy użyciu złośliwych skryptów (279) Przeprowadzanie ataków za pomocą skryptów w języku VBScript (279) Atakowanie systemów przy użyciu skryptów powłoki PowerShell (282) Pakiet XSS Framework (285) Pakiet BeEF (289) Konfigurowanie pakietu BeEF (290) Praca z pakietem BeEF (293) Integracja pakietów BeEF i Metasploit (296) Używanie pakietu BeEF jako tunelującego serwera proxy (297) Rozdział 10. Omijanie mechanizmów zabezpieczających (301) Omijanie zabezpieczeń wprowadzanych przez mechanizm NAC (302) Weryfikacja przed uzyskaniem dostępu do sieci (303) Weryfikacja po uzyskaniu dostępu do sieci (305) Omijanie programów antywirusowych przy użyciu różnych narzędzi (305) Korzystanie z pakietu Veil Framework (307) Używanie programu Shellter (312) Omijanie zabezpieczeń działających na poziomie aplikacji (316) Zastosowanie protokołu SSH do tunelowania połączeń przez zapory sieciowe działające po stronie klienta (316) Omijanie białej listy aplikacji (320) Omijanie zabezpieczeń systemu operacyjnego Windows (322) Pakiet EMET (Enhanced Migration Experience Toolkit) (322) UAC - kontrola konta użytkownika (323) Inne zabezpieczenia systemu operacyjnego Windows (328) Rozdział 11. Wykorzystywanie podatności i luk w zabezpieczeniach (333) Pakiet Metasploit (334) Biblioteki (334) Interfejsy (335) Moduły (336) Tworzenie i konfiguracja bazy danych (337) Atakowanie celów przy użyciu pakietu Metasploit Framework (342) Atakowanie pojedynczych systemów z użyciem odwróconej powłoki (342) Atakowanie pojedynczych systemów z użyciem odwróconej powłoki PowerShell (344) Atakowanie wielu systemów przy użyciu plików zasobów pakietu Metasploit Framework (345) Atakowanie wielu systemów przy użyciu pakietu Armitage (346) Używanie publicznych exploitów (349) Lokalizowanie i weryfikowanie publicznie dostępnych exploitów (349) Kompilowanie i używanie exploitów (351) Tworzenie exploitów dla systemu Windows (353) Identyfikacja podatności i luk w zabezpieczeniach przy użyciu fuzzingu (354) Tworzenie exploita dla systemu Windows (360) Rozdział 12. Powłamaniowa eksploracja środowiska celu (365) Eksploracja skompromitowanego systemu lokalnego (366) Przeprowadzenie szybkiego rozpoznania skompromitowanego systemu (367) Wyszukiwanie i pobieranie wrażliwych danych - plądrowanie celu (368) Narzędzia wspomagające powłamaniową eksplorację systemu (MSF, framework Veil-Pillage, skrypty) (372) Pakiet Veil-Pillage (375) Eskalacja pozioma i atakowanie innych systemów (379) Kompromitowanie relacji zaufania między domenami oraz udziałów sieciowych (380) PsExec, WMIC i inne narzędzia (381) Eskalacja pozioma z użyciem usług (385) Pivoting i przekierowywanie portów (385) Rozdział 13. Podnoszenie uprawnień (389) Typowa metodologia podnoszenia uprawnień (390) Podnoszenie uprawnień w systemie lokalnym (391) Podnoszenie uprawnień z poziomu administratora na poziom systemu (392) Wstrzykiwanie bibliotek DLL (393) Narzędzie PowerShell Empire (395) Ataki pozwalające na zbieranie poświadczeń i podnoszenie uprawnień (400) Sniffery haseł (401) Responder (402) Ataki typu SMB relay (405) Podnoszenie uprawnień w Active Directory (405) Ataki typu Golden Ticket na protokół Kerberos (412) Rozdział 14. Sterowanie i kontrola (415) Używanie agentów persystencji (416) Używanie programu Netcat jako agenta persystencji (417) Zastosowanie programu schtasks do konfigurowania trwałych zadań (421) Utrzymywanie trwałego dostępu przy użyciu pakietu Metasploit (422) Używanie skryptu persistence (423) Tworzenie samodzielnego trwałego agenta z wykorzystaniem pakietu Metasploit (424) Utrzymywanie trwałego dostępu za pomocą mediów społecznościowych i poczty Gmail (426) Eksfiltracja danych (429) Korzystanie z istniejących usług systemowych (Telnet, RDP i VNC) (430) Eksfiltracja danych z wykorzystaniem protokołu DNS (431) Eksfiltracja danych z wykorzystaniem protokołu DNS (433) Pakiet Data Exfiltration Toolkit (DET) (435) Eksfiltracja danych z wykorzystaniem powłoki PowerShell (437) Ukrywanie śladów ataku (437)
Sygnatura czytelni BWEAiI: XII S 35
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 146106 N (1 egz.)
Książka
CD
W koszyku
(Vademecum Profesjonalisty)
Tytuł oryginału: Excel 2007 power programming with VBA.
Tłumaczenie na podstawie "Excel 2003 PL : programowanie w VBA : vademecum profesjonalisty" w tł. Piotra Pilcha oraz Radosława Meryka.
Na stronie tytułowej i okładce nazwa wydawcy oryginału: Wiley.
U góry okładki: Poznaj zaawansowane możliwości Excela i spraw, aby program pracował dla Ciebie [...].
Płyta CD-ROM zawiera przykłady objaśnione w książce.
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 124754 (1 egz.)
Pozycja została dodana do koszyka. Jeśli nie wiesz, do czego służy koszyk, kliknij tutaj, aby poznać szczegóły.
Nie pokazuj tego więcej

Deklaracja dostępności