Statyczna analiza kodu źródłowego
|
|
- Magdalena Tomaszewska
- 8 lat temu
- Przeglądów:
Transkrypt
1 Statyczna analiza kodu źródłowego Tomasz Nowak, Zespół Bezpieczeństwa PCSS Poznań, r. Szkolenie Działu Komputerów Dużej Mocy
2
3 Informacje organizacyjne Ankieta krótka anonimowa bardzo pomocna w organizacji przyszłych szkoleń Lista obecności nie jest anonimowa ;-) proszę zaznaczyć, jeśli NIE życzycie sobie Państwo otrzymywania informacji o kolejnych szkoleniach Prezentacja dostępna na stronach WWW: 3
4
5
6 Szkolenia Zespołu Bezpieczeństwa PCSS Szkolenia Działu KDM PCSS (otwarte) Możliwość zgłoszenia tematu Szkolenia projektowe Centrum Innowacji Microsoft (otwarte GN3 bezpieczne programowanie (dla uczestników projektu) Szkolenia dla firm i organizacji (nowość) Wprowadzenie do kwestii bezpieczeństwa IT 6
7 Szkolenie bezpieczne programowanie 2-dniowe szkolenie angielskojęzyczne Wykorzystanie technologii podnoszących bezpieczeństwo usług Przegląd podatności bezpieczeństwa (C/C++, Java, PHP) Statyczna analiza kodu źródłowego Materiały z czerwca 2010: strona ZB PCSS Styczeń 2011: kolejna edycja (prawdopodobnie udostępnione zostaną nagrania wykładów) 7
8 Szkolenie wprowadzenie do bezpieczeństwa IT 2-4 godzinne szkolenie dla wszystkich pracowników korzystających z infrastruktury IT Dlaczego bezpieczeństwo jest ważne? Ochrona mojego komputera Bezpieczne korzystanie z Internetu Tworzenie i wykorzystywanie silnych haseł Gdy celem jest człowiek spam, łańcuszki, socjotechniki Szkolenie w siedzibie PCSS lub organizacji Warunki podlegają indywidualnym negocjacjom Kontakt: gerard.frankowski@man.poznan.pl 8
9 Statyczna analiza kodu źródłowego 9
10 Agenda Problemy z błędami w oprogramowaniu Analizatory w praktyce (wg języków) Automatyzacja narzędzi i rozwiązania Continuous Integration 10
11 Cel: niezawodne oprogramowanie Czasem: błędy nie mają znaczenia Niższe koszty utrzymania Telefony / e od klientów Wykonanie poprawek Wydanie nowych wersji (Płatny support szczególne wymagania) Utrzymanie zadowolenia klienta Klienci z polecenia Zadowolenie zespołu Nowe projekty 11
12 Droga do niezawodnego oprogramowania Dobre praktyki tworzenia kodu Właściwy paradygmat (obiektowo/deklaratywnie...) Zrozumiały kod (identyfikatory, unikanie skrótów, komentarze) Unikanie trudnych w analizie konstrukcji (goto, eval) Współtworzenie programu i dokumentacji Analiza kodu statyczna Testy (wszelkiego rodzaju) dynamiczne Security best practices for administrators, developers and users 12
13 Dwa ważne pytania: Statyczna analiza kodu Automatyczne skanery czy czytanie kodu? Narzędzia dla programisty czy specjalisty do spraw bezpieczeństwa? 13
14 Cechy skanerów kodu źródłowego (1) Zalety Duża szybkość działania Możliwość uruchamiania okresowego w celu wykrycia nowych błędów lub weryfikacji usunięcia poprzednio wykrytych podatności Istnieje szereg narzędzi dostępnych bez opłat, jak również możliwych do samodzielnego rozszerzania (tworzenie reguł, dodatkowych wtyczek np. YASCA) 14
15 Cechy skanerów kodu źródłowego (2) Wady Nie zawsze mamy dostęp do kodu źródłowego Wykrywają jedynie błędy najłatwiejsze do strukturalnego zdefiniowania Bezwzględnie wymagają uzupełnienia przez manualny przegląd kodu Wysokie prawdopodobieństwo wystąpienia false positive Niektóre darmowe narzędzia działają nieoptymalnie, mają skomplikowany interfejs, niekompletną dokumentację, brak wsparcia 15
16 Dla kogo? Automatyczne skanery kodu wykorzystują przede wszystkim programiści Prezentujemy Państwu punkt widzenia eksperta bezpieczeństwa Narzędzia dedykowane do wykrywania błędów bezpieczeństwa to tylko część tego obszaru Takie narzędzia również mogą przydać się programistom (niekoniecznie w pełnym zakresie) Znajomość dobrych praktyk bezpiecznego programowania pomoże programistom w stosowaniu narzędzi i wykryciu false positives 16
17 C/C++ Analizatory w praktyce cppcheck rats (splint potrzebuje wszystkich nagłówków) PHP Java Python Języki webowe 17
18 C, C++: cppcheck Narzędzie do analizy kodu w C i C++ Napisane w C++ Wielowątkowość Dostępne z CLI, GUI i jako biblioteka Raporty w txt, XML, HTML Więcej: 18
19 Błędy w zarządzaniu pamięcią C/C++: wycieki pamięci Wyjście z funkcji pozostawia niezwolnioną pamięć Destruktor nie zwalnia pamięci zaalokowanej w konstruktorze Zwolnienie struktury bez zwalniania pamięci jej pól C/C++: niezgodne metody alokacji/dealokacji malloc() / free() new / delete new [ ] / delete [ ] g_malloc() / g_free() 19
20 Przykład wykrycia błędu w zarządzaniu pamięcią $ apt-get source libcroco3 $ cppcheck -quiet libcroco-0.6.2/src/*.c [cr-sel-eng.c:1381]: (error) Common realloc mistake: "stmts_tab" nulled but not freed upon failure [cr-sel-eng.c:1438]: (error) Common realloc mistake: "stmts_tab" nulled but not freed upon failure stmts_tab = g_try_realloc (stmts_tab, (tab_size + stmts_chunck_size) * sizeof (CRStatement *)); if (!stmts_tab) { cr_utils_trace_info ("Out of memory"); status = CR_ERROR; goto error; } /*... */ error: if (stmts_tab) { g_free (stmts_tab); stmts_tab = NULL; 20
21 Błędy w używaniu wskaźników [cr-statement.c:626]: (error) Possible null pointer dereference: stringue - otherwise it is redundant to check if stringue is null at line g_string_append (stringue, "}"); 626 result = stringue->str; if (stringue) { 629 g_string_free (stringue, FALSE); 630 stringue = NULL; 631 } ==================== $ apt-get source asterisk-espeak && cppcheck asterisk-espeak-*/*.c Checking asterisk-espeak-0.1/app_espeak.c... [asterisk-espeak-0.1/app_espeak.c:258]: (error) Memory leak: handle handle = (void *) malloc(sizeof(void *)); 258 handle = resample_open(1, ratio, ratio); 259 if (!handle) { 260 ast_log(log_error, "espeak: Failed open resampler\n"); 21
22 C++ Standard Template Library poprawność korzystania z API std::vector<int>::iterator iter = ints.begin() + 5; ints.insert(ints.begin(), 1); ++iter; (error) After insert, the iterator 'iter' may be invalid list<int> l1; list<int> l2; for (list<int>::iterator it = l1.begin(); it!= l2.end(); ++it) (error) Same iterator is used with both l1 and l std::vector<int> foo; for (unsigned int ii = 0; ii <= foo.size(); ++ii) { foo[ii] = 0; } (error) When ii==foo.size(), foo[ii] is out of bounds std::list<int> x; if (x.size()!= 0) {} (style) Use x.empty() instead of x.size() to guarantee fast code 22 more test cases: cppcheck/test/teststl.cpp
23 Używanie zasobów [samba/testsuite/nsswitch/getpwent_r.c]: Wrong condition used to check fopen() PATCH: - if ((fptr = fopen(fname, "w")) < 0) { + if ((fptr = fopen(fname, "w")) == NULL) { fprintf(stderr, "ERROR: could not open file %s: %s\n", fname, sys_errlist[errno]); [strongswan-4.4.1/libcharon/plugins/ha/ha_kernel.c:176]: (error) Resource leak: fd int fd; fd = open(file, O_RDONLY); if (fd == -1) { DBG1(DBG_CFG, "opening CLUSTERIP file '%s' failed: %s", file, strerror(errno)); return 0; } /*...*/ return; 23
24 C/C++: RATS Rough Auditing Tool for Security Odnajduje wystąpienia ryzykownych funkcji Obsługa wielu języków: C, C++, Perl PHP Python 24
25 RATS: wyniki print-bgp.c:2132: High: fixed size local buffer addrtoname.c:115: High: gethostbyaddr addrtoname.c:125: High: strcpy print-lldp.c:719: High: printf print-atalk.c:559: High: sscanf tcpdump.c:542: High: vfprintf tcpdump.c:603: High: getopt... 25
26 Kompilator też ostrzega gcc.gnu.org/onlinedocs/gcc/warning- Options.html pedantic ostrzeżenia wg standardów Issue all the warnings demanded by strict ISO C and ISO C++ Wall ostrzeżenia o podejrzanych konstrukcjach, które łatwo wyeliminować (nieużywane zmienne, return w funkcjach void, używanie niezainicjowanych zmiennych) Wextra (dawniej W) ostrzeżenia o trudniejszych problemach (np. wykrycie sprawdzeń wartości zmiennej unsigned < 0) 26
27 C/C++ PHP Pixy RIPS Java Python Języki webowe Analizatory w praktyce 27
28 PHP: Pixy Analizator przepływu danych w plikach PHP4 Szczególnie w poszukiwaniu błędów skutkujących podatnością na: SQL Injection Cross Site Scripting (XSS) Napisany w Javie 28
29
30 Pixy: kod potwierdza użycie zmiennej 210 if($info['userinfo']['name']){ 211 msg('you are currently logged in as '. $_SERVER['REMOTE_USER']. ' ('.$INFO['userinfo']['name'].')',0); 212 msg('you are part of the groups '.join($info['userinfo']['grps'],', '),0); 213 }else{ 214 msg('you are currently not logged in',0); 215 } Funkcja msg nie zakoduje znaków specjalnych HTML do encji (np. < lt;) Oznacza to, że w nazwie użytkownika można przemycić kod Javascript i uruchamiać go z każdym wyświetleniem strony (persistent XSS) 30
31 PHP: RIPS Analizator kodu PHP (napisany w PHP) XSS, SQL injection i inne Wizualizacja zmiennych, powiązanych funkcji, warunków Filtrowanie wyników (verbosity, type) Generator exploitów dla przeglądarki CURL 31
32 32
33 C/C++ PHP Java FindBugs PMD Python Języki webowe Analizatory w praktyce 33
34
35 Usage FindBugs Uruchamianie: pobranie, java -jar ze źródeł (Ant) pluginy do IDE, np. Eclipse, NetBeans zadanie Ant i wtyczka do maven report WebStart findbugs.cs.umd.edu/demo/ Dodatkowe wzorce fb-contrib.sourceforge.net Materiał: bytecode warto jednak podłączyć kod źródłowy i wykorzystywane biblioteki Opisy znalezisk w Google 35
36 FindBugs screenshot 36
37
38
39
40 Java: PMD PMD skaner kodu Java Crossplatform (Java) 40
41 Uruchamianie ręczne: Używanie PMD Z binarnej paczki lub ze źródeł Generowanie raportu w HTML Użycie wtyczki wiele dostępnych: JDeveloper, Eclipse, JEdit, JBuilder, BlueJ, CodeGuide, NetBeans/Sun Java Studio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, and Emacs Plugins for IDEs, e.g. Eclipse and NetBeans Zadanie Anta, wtyczka do Maven Report 41
42 PMD screenshot (DEMO) 42
43 Otrzymane wyniki Dziesiątki zbiorów reguł pod adresem Większość znalezisk nie jest poważna Eclipse może poprawić wiele ostrzeżeń Clean up Specjalny moduł Copy/Paste Detector Wsparcie dla wielu języków programowania Przykład: 43
44 C/C++ PHP Java Python pylint pychecker pyflakes Języki webowe Analizatory w praktyce 44
45 Python pylint użycie i definicje zmiennych, importy, klasy wiele reguł dotyczących stylu kodowania Na podobnej zasadzie: pychecker, pyflakes Framework Django: django-lint 45
46 Przerwa (a następnie część II) Statyczna analiza kodu źródłowego Poznań, r.
47 Analizatory w praktyce C/C++ PHP Java Python Języki webowe JavaScript XML / HTML CSS Inne 47
48 JavaScript: jslint Głównie styl kodowania Dostępny na kilka sposobów skrypt WSH (Windows) skrypt Rhino ( JavaScript engine in Java ) 48
49 XML / HTML: tidy Validate, correct, and pretty-print HTML files Ciekawe możliwości, np.: HTML XHTML <FONT>, <CENTER>,... CSS Bardzo konfigurowalny moje ulubione parametry dla XML: -indent -xml -utf8 -wrap
50
51 CSS: W3C Validator Usługa Walidacji CSS W3C Spisuje się najlepiej, generuje ładny raport Inne programiki głównie pretty-printing csslint csstidy 51
52 (X)HTML poprawne łącza linklint przykładowa składnia: linklint -error -http -host 52
53 Integracja narzędzi z SVN (1) Cel: z listą wykrytych błędów Użycie punktu zaczepienia po zatwierdzeniu transakcji: repozytorium/hooks/post-commit Kroki svn update uruchomienie narzędzia sprawdzenie liczby błędów i wysłanie a Przykład dla FindBugs: 53
54 Integracja narzędzi z SVN (2) Cel: zablokowanie zatwierdzenia kodu z błędami Użycie punktu zaczepienia przed zatwierdzeniem: repozytorium/hooks/pre-commit Kroki svnlook changed repozytorium (dla każdego pliku) svnlook cat repozytorium plik uruchomienie narzędzia wykrycie błędów, wypisanie ich na stderr i zwrócenie kodu różnego od zera Przykład dla Pythona: 54
55 Continous Integration (3) Ciągła integracja polega na budowaniu przez serwer bieżącej wersji oprogramowania Przeprowadzenie najróżniejszych testów i analiz Serwer CI Hudson (open-source) posiada zestaw wtyczek 55
56 Więcej informacji FindBugs Pixy PMD Python Frama-C analyzer 56
57 PCSS Dane kontaktowe Zespół Bezpieczeństwa PCSS Autor prezentacji 57
58 Pytania, dyskusja 58
59 Dziękuję za uwagę!
REFERAT PRACY DYPLOMOWEJ
REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany
Bardziej szczegółowoKrótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.
GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans
Bardziej szczegółowoBadania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid
Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid Tomasz Kuczyński Dział Aplikacji Tomasz Nowak Zespół Bezpieczeństwa Wrocław, 2.12.2010 r. Konferencja i3: internet
Bardziej szczegółowoSposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby
Bardziej szczegółowoProgramowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych
Bardziej szczegółowoProgram szkolenia: Continuous Integration i Git
Program szkolenia: Continuous Integration i Git Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Continuous Integration i Git tools-git-ci Narzędzia developerzy testerzy 2 dni 50%
Bardziej szczegółowoAplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework
Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework mgr inż. Łukasz Stefanowicz dr inż.
Bardziej szczegółowoDokumentacja kompilacji źródeł aplikacji 1.0
Projekt dofinansowany ze środków Mechanizmu Finansowego Europejskiego Obszaru Gospodarczego Dokumentacja kompilacji źródeł aplikacji Projekt: Wypracowanie i wdrożenie innowacyjnych metod integracji danych
Bardziej szczegółowoJak efektywnie wykrywać podatności bezpieczeństwa w aplikacjach? OWASP 19.11.2014. The OWASP Foundation http://www.owasp.org
Jak efektywnie wykrywać podatności bezpieczeństwa w aplikacjach? dr inż. Jakub Botwicz CISSP, ECSA, GWAPT 19.11.2014 jakub.botwicz@gmail.com Copyright The Foundation Permission is granted to copy, distribute
Bardziej szczegółowoTworzenie oprogramowania
Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja
Bardziej szczegółowoGerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań, 04.03.2010
Bezpieczeństwo interoperacyjnego hostingu Gerard Frankowski, Zespół Bezpieczeństwa PCSS 4. Konferencja MIC Nowoczesne technologie bliżej nas Poznań, 04.03.2010 1 Agenda Wprowadzenie Zespół Bezpieczeństwa
Bardziej szczegółowoProgramowanie Komponentowe WebAPI
Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,
Bardziej szczegółowoDokumentacja techniczna API systemu SimPay.pl
Wprowadzenie Dokumentacja techniczna API systemu SimPay.pl Wersja 1.0 z dnia 24.03.2015 r. API serwisu SimPay.pl opiera się o danych wysyłanych i zwracanych w formie JSON. W przypadku napotkania jakiegokolwiek
Bardziej szczegółowoDYNAMICZNE PRZYDZIELANIE PAMIECI
DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne
Bardziej szczegółowoBudowanie interfejsów do baz danych
Budowanie interfejsów do baz danych Wprowadzenie Organizacja zajęć O sobie O Projekcie Termin rozpoczęcia Tematyka (propozycje?) Narzędzia (pendrive lub hosting) 2008 Szczepan Bednarz 2 z 20 Bazy danych
Bardziej szczegółowoProgramowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
Bardziej szczegółowoLaboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą
Bardziej szczegółowoWdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x
Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie
Bardziej szczegółowoWdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5
Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie
Bardziej szczegółowoEwolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2
Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Statyczne strony HTML Wczytanie statycznej strony HTML sprowadza się do odebrania żądania przez serwer, odnalezienia właściwego pliku
Bardziej szczegółowoBiblioteka standardowa - operacje wejścia/wyjścia
Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline
Bardziej szczegółowoWYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java
WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH Mirosław Gołda, Programista Java Agenda Kilka słów o języku Groovy Wpięcie Grooviego w projekt Springowy Testy jednostkowe
Bardziej szczegółowoTemat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Bardziej szczegółowoPodstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie
Bardziej szczegółowoBudowa aplikacji ASP.NET z wykorzystaniem wzorca MVC
Akademia MetaPack Uniwersytet Zielonogórski Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Krzysztof Blacha Microsoft Certified Professional Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Agenda:
Bardziej szczegółowoAutomatyzacja Testowania w WEB 2.0
Automatyzacja Testowania w WEB 2.0 Wojciech Pająk, Radosław Smilgin XXIV Jesienne Spotkania PTI Wisła, 20-24 października 2008 Agenda Wprowadzenie do automatyzacji testowania Technologie WEB 2.0 Narzędzia
Bardziej szczegółowoPHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:
PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS
Bardziej szczegółowoPixy - analiza statyczna skryptów PHP
- analiza statyczna skryptów PHP MIMUW 4 kwietnia 2012 - analiza statyczna skryptów PHP Co to jest? Analiza statyczna Bezpieczeństwo skryptów PHP Analiza programu bez jego uruchamiania Zazwyczaj pod konkretnym
Bardziej szczegółowoZadanie 1. Wykonał: Grzegorz Pol Komputer: 237-16
Ćwiczenie 3. Wykonał: Grzegorz Pol Komputer: 237-16 Zadanie 1 Skanery stanu zabezpieczeń Rys. 1.1 (poniżej) Obraz okna programu Microsoft Baseline Security Analyzer zawierającego nagłówek (strona View
Bardziej szczegółowoUsługa: Audyt kodu źródłowego
Usługa: Audyt kodu źródłowego Audyt kodu źródłowego jest kompleksową usługą, której głównym celem jest weryfikacja jakości analizowanego kodu, jego skalowalności, łatwości utrzymania, poprawności i stabilności
Bardziej szczegółowoLaboratorium Informatyka (I) AiR Ćwiczenia z debugowania
Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Krzysztof Kluza, Janusz Miller 1 Debugowanie Debugowanie, czy też po polsku odpluskiwanie, to proces polegający na kontrolowanym wykonaniu programu
Bardziej szczegółowoProduktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i
Program szkolenia: Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Produktywne tworzenie aplikacji webowych z
Bardziej szczegółowoŚrodowisko NetBeans. Paweł Boguszewski
Środowisko NetBeans Paweł Boguszewski Plan prezentacji Wprowadzenie Historia Funkcjonalność Kierunek Rozwoju Wtyczki Platforma NetBeans Podsumowanie Wprowadzenie NetBeans.org projekt OpenSource zapoczątkowany
Bardziej szczegółowoMeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty
MeetingHelper Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania Instrukcja obsługi dla programisty W tej części został zawarty opis uruchamiania projektu programistycznego,
Bardziej szczegółowoPodstawy programowania obiektowego
Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie
Bardziej szczegółowoCo to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).
Zarządzanie pamięcią Pamięć: stos i sterta Statyczny i dynamiczny przydział pamięci Funkcje ANSI C do zarządzania pamięcią Przykłady: Dynamiczna tablica jednowymiarowa Dynamiczna tablica dwuwymiarowa 154
Bardziej szczegółowoObiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych
Katedra Mikroelektroniki i Technik Informatycznych Łódź, 14 października 2005 roku Wstęp DOM Document Object Model zapewnia: Zbiór obiektów reprezentujących dokumenty XML i HTML. Model łączenia obiektów.
Bardziej szczegółowoKurs rozszerzony języka Python
Środowisko Django, cz. 3 19 stycznia 2018 Plan wykładu 1 2 Konstrukcja formularzy Walidacja i zapis 3 Ograniczenie dostępu 4 Plan wykładu 1 2 Konstrukcja formularzy Walidacja i zapis 3 Ograniczenie dostępu
Bardziej szczegółowoImię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz
SYLLABUS na rok akademicki 01/013 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/ semestr II/4 Specjalność Bez specjalności Kod katedry/zakładu
Bardziej szczegółowoPodstawy programowania. Wprowadzenie
Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne
Bardziej szczegółowoMETODY REPREZENTACJI INFORMACJI
Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Magisterskie Studia Uzupełniające METODY REPREZENTACJI INFORMACJI Ćwiczenie 1: Budowa i rozbiór gramatyczny dokumentów XML Instrukcja
Bardziej szczegółowoProgramowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.
Programowanie w Javie cz. 1 Wstęp Łódź, 24 luty 2014 r. Prawdy i mity o Javie Java jest techniką webową? (tak, platforma Java EE, aplety) Java jest bezpieczna? (tak, aplety, brak operowania na pamięci)
Bardziej szczegółowoPROGRAMOWANIE w C prolog
PROGRAMOWANIE w C prolog dr inż. Jarosław Stańczyk Uniwersytet Przyrodniczy we Wrocławiu Wydział Biologii i Hodowli Zwierząt Katedra Genetyki 1 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014
Bardziej szczegółowoWskaźniki. Informatyka
Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą
Bardziej szczegółowoCODE::BLOCKS & VALGRIND OPRACOWAŁ MICHAŁ BETHKE
CODE::BLOCKS & VALGRIND OPRACOWAŁ MICHAŁ BETHKE O CZYM PREZENTACJA? Code::Blocks Informacje wstępne Skąd ściągnąć? Jak zainstalować? (wersja linuksowa) Rzut okiem na panel główny Tworzenie naszego pierwszego
Bardziej szczegółowoThe current software tools for the JEE platform
Wysłane: 2017-05-29 Przyjęte: 2017-06-06 Aktualne narzędzia wytwarzania oprogramowania na platformie JEE Paweł Ozdoba*, Beata Pańczyk Politechnika Lubelska, Instytut Informatyki, Nadbystrzycka 36B, 20-618
Bardziej szczegółowoOpen Source w służbie developerom
5 grudnia 2011 Wstęp Plan prezentacji Agenda Dyskusja problemu Wstęp Plan prezentacji Agenda Dyskusja problemu Etapy Wstęp Plan prezentacji Agenda Dyskusja problemu Etapy Przykłady Wstęp Plan prezentacji
Bardziej szczegółowoProjektowani Systemów Inf.
Projektowani Systemów Inf. Wykład VII Bezpieczeństwo Copyrights by Arkadiusz Rzucidło 1 Bezpieczeństwo Bezpieczeństwo związane z danymi Konstrukcja magazynów danych Mechanizmy zapisu i modyfikacji danych
Bardziej szczegółowoJava - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński
Java - wprowadzenie Programowanie Obiektowe Mateusz Cicheński O języku Czym jest Java Cechy charakterystyczne języka Przykładowe zastosowania Składnia języka Podstawowe typy Wybrane słowa kluczowe Plan
Bardziej szczegółowoBazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, 85 321 Bydgoszcz
Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, 85 321 Bydgoszcz 1 BSB dziś Jesteśmy producentem i integratorem rozwiązań informatycznych 100% udziałów w kapitale zakładowym posiada Narodowy Bank Polski
Bardziej szczegółowoContinuous Integration i jakość kodu. Michał Prajs
Continuous Integration i jakość kodu Michał Prajs Agenda Michał Prajs SMT Software Prowadzący Continuous Integration Jenkins CI Statyczna analiza kodu Checkstyle Pokrycie kodu testami jednostkowymi Cobertura
Bardziej szczegółowoTOPIT Załącznik nr 3 Programowanie aplikacji internetowych
Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć
Bardziej szczegółowoZaawansowane programowanie w języku C++
Kod szkolenia: Tytuł szkolenia: C/ADV Zaawansowane programowanie w języku C++ Dni: 3 Opis: Uczestnicy szkolenia zapoznają się z metodami wytwarzania oprogramowania z użyciem zaawansowanych mechanizmów
Bardziej szczegółowoZakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów
Aplikacje internetowe KL. III Rok szkolny: 011/01 Nr programu: 31[01]/T,SP/MENIS/004.06.14 Okres kształcenia: łącznie ok. 180 godz. lekcyjne Wojciech Borzyszkowski Zenon Kreft Moduł Bok wprowadzający Podstawy
Bardziej szczegółowoZagrożenia związane z udostępnianiem aplikacji w sieci Internet
Zagrożenia związane z udostępnianiem aplikacji w sieci Internet I Ogólnopolska Konferencja Informatyki Śledczej Katowice, 8-9 stycznia 2009 Michał Kurek, Aleksander Ludynia Cel prezentacji Wskazanie skali
Bardziej szczegółowoProgram szkolenia: Jenkins - Continuous Integration
Program szkolenia: Jenkins - Continuous Integration Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Jenkins - Continuous Integration tools-jenkins-ci Narzędzia developerzy DevOps
Bardziej szczegółowoJęzyk JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po
Bardziej szczegółowoTypy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone
Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Bardziej szczegółowodlibra 3.0 Marcin Heliński
dlibra 3.0 Marcin Heliński Plan prezentacji Wstęp Aplikacja Redaktora / Administratora Serwer Aplikacja Czytelnika Aktualizator Udostępnienie API NajwaŜniejsze w nowej wersji Ulepszenie interfejsu uŝytkownika
Bardziej szczegółowoCI/CD - CO TO? PO CO? JAK?
CI/CD - CO TO? PO CO? JAK? JERZY WICKOWSKI PROGRAMUJĘ 10 LAT.NET I INNE CLEAN CODE REFAKTORING DEVOPS CI/CD - CO TO? PO CO? JAK? AGENDA WPROWADZENIE POJĘĆ SPOSOBY KONFIGURACJI CI IMPLEMENTACJA CONTINOUS
Bardziej szczegółowoPrzygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)
Program szkolenia: Przygotowanie do nowoczesnego programowania po stronie przeglądarki (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania:
Bardziej szczegółowoProgramowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści
Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne
Bardziej szczegółowoAplikacje WWW - laboratorium
Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,
Bardziej szczegółowoJęzyki programowania wysokiego poziomu. PHP cz.4. Bazy danych
Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł
Bardziej szczegółowoWykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki
Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,
Bardziej szczegółowoProgramowanie poprzez testy z wykorzystaniem JUnit
Programowanie poprzez testy z wykorzystaniem JUnit Programowanie ekstremalne (XP) XP zaproponowano w 1999 (K. Beck: Extreme Programming Explained ) XP dedykowane jest do projektów: O małym lub średnim
Bardziej szczegółowoProgram szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk
Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem
Bardziej szczegółowoRok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -
Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3 Wydział: Zarządzania Kierunek: Informatyka i Ekonometria Specjalność: - Poziom studiów: Studia I stopnia
Bardziej szczegółowoSzkolenie: Podstawy automatyzacji z Selenium IDE
Szkolenie: Podstawy automatyzacji z Selenium IDE Selenium IDE to bardzo użyteczne narzędzie do szybkiej i skutecznej automatyzacji testów aplikacji internetowych. Jest ono kompromisem między typową automatyzacją,
Bardziej szczegółowoTworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski
Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski Agenda Dlaczego PhoneGap i co to jest? Możliwości PhoneGap Jak pisać aplikacje z PhoneGap? Konfiguracja i przykład aplikacji
Bardziej szczegółowoWdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9
Wdrożenie modułu płatności eservice dla systemu Magento 1.4 1.9 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do
Bardziej szczegółowoLock Manager Deadlock Źródła Jak starczy czasu. Dreadlocks. Konrad Błachnio MIMUW 19 maja 2010
Konrad Błachnio K.Blachnio@students.mimuw.edu.pl MIMUW 19 maja 2010 1 Co to jest? API Implementacja 2 ILockManagerWithDetecting s - straszny zamek 3 4 Obecna implementacja Lock vs. Synchronized Hashtable
Bardziej szczegółowoPrzetwarzanie danych w chmurze
Materiały dydaktyczne Katedra Inżynierii Komputerowej Przetwarzanie danych w chmurze Podstawy Google App Engine dr inż. Robert Arsoba Robert.Arsoba@weii.tu.koszalin.pl Koszalin 2017 Wersja 1.0 Podstawy
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład
Bardziej szczegółowoJava jako język programowania
Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)
Bardziej szczegółowoWybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej JSP - Java Server Pages dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2019 Aplikacje i skrypty WWW klasyfikacja
Bardziej szczegółowoPrzegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD).
Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD). Rapid Application Development RAD Szybkie tworzenie programów użytkowych (Rapid Application Development RAD) jest mającą
Bardziej szczegółowoProgramowanie MorphX Ax
Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn
Bardziej szczegółowoArchitektury Usług Internetowych. Laboratorium 2. Usługi sieciowe
Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache
Bardziej szczegółowoWprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2
Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Narzędzia i środowiska programistyczne Laboratorium 1 Wprowadzenie Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 O Sobie Od 2014
Bardziej szczegółowoMDW. (Moduł Dystrybucji Wysyłek) (Moduł Magento) v Strona 1 z 11
MDW (Moduł Dystrybucji Wysyłek) (Moduł Magento) v.1.25.0 Strona 1 z 11 Spis treści Zgodny z Magento... 3 Instalacja... 3 Opis... 6 Metody wysyłki... 6 Ręczne mapowanie metod... 7 Użycie tworzenie wysyłek...
Bardziej szczegółowoTester oprogramowania 2014/15 Tematy prac dyplomowych
Tester oprogramowania 2014/15 Tematy prac dyplomowych 1. Projekt i wykonanie automatycznych testów funkcjonalnych wg filozofii BDD za pomocą dowolnego narzędzia Jak w praktyce stosować Behaviour Driven
Bardziej szczegółowoAutomatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli
Automatyczne generowanie testów z modeli Numer: 1 (33) Rozkmina: Projektowanie testów na podstawie modeli (potem można je wykonywać ręcznie, lub automatycznie zwykle chce się automatycznie) A ja mówię
Bardziej szczegółowoFull Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia
Kod szkolenia: Tytuł szkolenia: DED/FSJS Full Stack JavaScript z Angular i Nest Dni: 5 Opis: Adresaci szkolenia Kurs przeznaczony jest dla programistów posiadających podstawową wiedzę w zakresie JavaScript,
Bardziej szczegółowoSystem kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010
System kontroli wersji - wprowadzenie Rzeszów,2 XII 2010 System kontroli wersji System kontroli wersji (ang. version/revision control system) służy do śledzenia zmian głównie w kodzie źródłowym oraz pomocy
Bardziej szczegółowoKurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017
Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania
Bardziej szczegółowoANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH
ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH szkolenie dla webdeveloperów ze znajomością przynajmniej podstaw HTML i JavaScript INFORMACJE PODSTAWOWE AngularJS to framework JavaScript stworzony przez inżynierów
Bardziej szczegółowoDotacje na innowacje. Inwestujemy w waszą przyszłość.
PROJEKT TECHNICZNY Implementacja Systemu B2B w firmie Lancelot i w przedsiębiorstwach partnerskich Przygotowane dla: Przygotowane przez: Lancelot Marek Cieśla Grzegorz Witkowski Constant Improvement Szkolenia
Bardziej szczegółowoWykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
Bardziej szczegółowoJęzyki i narzędzia programowania III. Łukasz Kamiński Wykład II - 2012-10-08
Języki i narzędzia programowania III Łukasz Kamiński Wykład II - 2012-10-08 Wykład II Wprowadzenie kontynuacja Cookie HTML (JS/CSS/Flash/Java) Instalacja Apache, PHP, MySQL Konfiguracja Hosting i domeny
Bardziej szczegółowo5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów
Aplikacje internetowe KL. III Rok szkolny: 013/01 Nr programu: 31[01]/T,SP/MENIS/00.06.1 Okres kształcenia: łącznie ok. 170 godz. lekcyjne Moduł Bok wprowadzający 1. Zapoznanie z programem nauczania i
Bardziej szczegółowoProgramowanie w języku C++
Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi
Bardziej szczegółowozautomatyzować przepływ pracy w branży opakowań
3 powody, aby zautomatyzować przepływ pracy w branży opakowań 1. Najwyższa jakość każdego zlecenia 2. Wszystkie zadania wymagane do wykonania pracy 3. Połączenie z systemami do administracji zleceniami
Bardziej szczegółowoPraca w środowisku Visual Studio 2008, Visual C
Praca w środowisku Visual Studio 2008, Visual C++ 2008 mgr inż. Tomasz Jaworski tjaworski@kis.p.lodz.pl http://tjaworski.kis.p.lodz.pl/ Tworzenie aplikacji konsolowych 2 3 Tworzenie nowego projektu aplikacji
Bardziej szczegółowoPodstawy języka Java. przygotował: pawel@kasprowski.pl
Podstawy języka Java przygotował: pawel@kasprowski.pl Początki: PDA Star7 (*7) PDA do obsługi urządzeń domowych. (1992) (język OAK) Autorzy Javy Green Team Ojciec Javy: James Gosling Poszukiwanie zastosowania
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i
Bardziej szczegółowo