# HG changeset patch # User Michał Rudowicz # Date 1305297449 -7200 # Node ID f73176cba39bbff45e2c8680b4b24326c460ba02 # Parent 3a26da290650733bdbbedf39becb38be497eb2ac Zacząłem pracę nad prezentacją diff -r 3a26da290650 -r f73176cba39b frontend/doc/system.rst --- a/frontend/doc/system.rst Mon May 09 10:49:01 2011 +0200 +++ b/frontend/doc/system.rst Fri May 13 16:37:29 2011 +0200 @@ -1,143 +1,8 @@ -Instalacja i przygotowywanie systemu operacyjnego -================================================= - -Instalacja systemu Fedora 14 ----------------------------- - -Po włożeniu płyty DVD z systemem Fedora 14 i uruchomieniu systemu -powinien pojawić się ekran bootloadera pozwalający wybrać podstawowe -opcje instalacji. - -Jeśli ekran podobny do poniższego się nie pokazuje, możliwe, że -konfiguracja komputera nie przewiduje uruchamiania z płyty DVD. -Należy w takim wypadku sprawdzić ustawienia BIOSu. - -Należy wybrać pierwszą opcję (domyślnie uruchamianą po upływie -15 sekund). W przypadku problemów z wyświetlaniem należy wypróbować -drugą opcję "Install system with basic video driver". - -.. image:: images/fedora-install-boot.png - -Następnie instalator proponuje sprawdzenie nośnika instalacyjnego -w poszukiwaniu błędów. Wybieramy OK. - -.. image:: images/fedora-install-1.png - -Rozpoczyna się sprawdzanie nośnika. - -.. image:: images/fedora-install-2.png - -Po zakończeniu procesu sprawdzania nośnika instalator proponuje -sprawdzenie kolejnej płyty. Ponieważ instalator Fedory znajduje -się na jednym nośniku DVD, możemy wybrać **Continue**. Jeśli instalacja -przebiega przy użyciu kilku nośników CD możemy je w tym momencie -sprawdzić. - -.. image:: images/fedora-install-3.png - -Po chwili uruchomiona zostanie Anaconda, program instalacyjny systemu -Fedora. - -.. image:: images/anaconda-1.png - -Pierwszym krokiem instalacji jest wybranie domyślnego jezyka systemu i -domyślnego układy klawiatury. - -.. image:: images/anaconda-2.png -.. image:: images/anaconda-3.png - -Następnie należy wybrać typ urządzeń, z których ma korzystać instalator. -W większości wypadków należy pozostawić zaznaczoną domyślną opcję. - -.. image:: images/anaconda-4.png - -Kolejnym krokiem jest podanie nazwy, która będzie identyfikować ten komputer -w sieci. Na zrzucie ekranu podana jest nazwa przykładowa, nie ma ona wpływu -na działanie serwera aplikacji i powinna zostać wybrana według uznania. - -.. image:: images/anaconda-5.png - -Należy zauważyć, że na tym ekranie mamy możliwość konfiguracji sieci. Po -kliknięciu przycisku **Skonfiguruj sieć** pojawi się okno **Połączenia -sieciowe**. Można tam zmodyfikować domyślne połączenie o nazwie -*System eth0*. - -.. image:: images/anaconda-6.png - -Następnie instalator pyta os trefę czasową, w której znajduje się komputer. -Instalator stara się wykryć strefę czasową na podstawie języka wybranego -na wcześniejszym etapie instalacji. - -.. w tym momencie odkryłem adnotacje i bardzo mi się spodobały lol +Instalacja Frontendu +==================== -.. note:: - Jeśli na komputerze jest również zainstalowany system DOS/Windows, to - należy odznaczyć opcję "Zegar systemowy używa UTC". Oznacza ona, że - zegar systemowy jest ustawiony na czas Greenwich, dzięki czemu zmiana - strefy czasowej nie wymaga zmiany czasu w zegarze systemowym. Systemy - pochodzące od DOSa nie wspierają tej możliwości domyślnie, oczekując - czasu lokalnego. - -.. image:: images/anaconda-7.png - -Kolejnym krokiem jest podanie hasła dla tworzonego domyślnie konta administratora. - -.. attention:: - Powinno się wybrać trudne hasło i zapisanie go w zaszyfrowanym pliku lub - trudno dostępnym miejscu. - -.. important:: - Konto administratora nie powinno być pod żadnym pozorem używane do codziennej - pracy ani do uruchomienia serwera aplikacji, ponieważ stanowi to bardzo - poważne zagrożenie bezpieczeństwa systemu. Konto zwykłęgo użytkownika zostanie - utworzone po zakończeniu instalacji systemu. - -.. image:: images/anaconda-8.png - -Po kliknięciu *Dalej* instalator pyta o sposób partycjonowania dysku. Możliwe jest -ręczne utworzenie układu partycji, jednak w naszym przypadku wybieramy automatyczne -partycjonowanie wraz z wyczyszczeniem całego dysku twardego. - -.. danger:: - Partycjonowanie dysku należy robić ostrożnie, ponieważ wiąże się z ryzykiem - **nieodwracalnej utraty danych**. - -.. image:: images/anaconda-9.png +Wymagania systemowe +------------------- -Następny ekran pozwala na zmianę zestawu instalacyjnego. Należy wybrać instalację -**Minimalną** i zaznaczyć **Dostosowanie teraz**. - -.. image:: images/anaconda-10.png - -Następnie możliwe jest dostosowanie opcji instalacji. W dziale *Aplikacje* należy -zaznaczyć dział *Edytory*, a w dziale *Podstawowy System* - *Część podstawowa* i -*Narzędzia systemowe*. - -.. image:: images/anaconda-11.png -.. image:: images/anaconda-12.png - -Następnie rozpoczyna się proces instalacji systemu. - -.. image:: images/anaconda-13.png - -Po zakończeniu tego procesu należy wyjąć nośnik z napędu i uruchomić komputer -ponownie. - -.. image:: images/anaconda-14.png - -Konfiguracja systemu --------------------- - -W trakcie pierwszego uruchomienia pojawi się kreator konfiguracji systemu. -Można go pominąć. - -.. image:: images/fedora-firstboot.png - -Po instalacji systemu użytkownik zostaje przywitany ekranem logowania. Należy -zalogować się używając nazwy użytkownika *root* oraz hasła podanego w trakcie -instalacji. - -.. image:: images/fedora-system-1.png - -Pierwszą czynnością wykonaną na nowym systemie powinno być utworzenie konta -użytkownika normalnego. +System musi być wyposażony w następujące oprogramowanie: + * diff -r 3a26da290650 -r f73176cba39b frontend/mfrontend/templates/joblist.csv --- a/frontend/mfrontend/templates/joblist.csv Mon May 09 10:49:01 2011 +0200 +++ b/frontend/mfrontend/templates/joblist.csv Fri May 13 16:37:29 2011 +0200 @@ -2,6 +2,6 @@ {% if job is sameas None %} 0 {% else %} -1;{{job.method}};{{job.hash}};LISTA_ZNAKOW;{{job.last_checked}};{{job.min_pass_len}};{{job.max_pass_len}};{{job.id}};40{#pierwsze - zero, gdy nie ma zadania, jeden, gdy jest ostatnie - rozmiar podzadania#} +1;{{job.method}};{{job.hash}};0123456789;{{job.last_checked}};{{job.min_pass_len}};{{job.max_pass_len}};{{job.id}};40{#pierwsze - zero, gdy nie ma zadania, jeden, gdy jest ostatnie - rozmiar podzadania#} {% endif %} {% endfor %} diff -r 3a26da290650 -r f73176cba39b frontend/mfrontend/templates/layout.html --- a/frontend/mfrontend/templates/layout.html Mon May 09 10:49:01 2011 +0200 +++ b/frontend/mfrontend/templates/layout.html Fri May 13 16:37:29 2011 +0200 @@ -1,10 +1,10 @@ NASZA APLIKACJA! - - - - + + + +
@@ -67,6 +67,6 @@ {% endfor %} {% block body %} {% endblock %} - +
diff -r 3a26da290650 -r f73176cba39b prezentacja-django-flask/hello_basehttp.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/prezentacja-django-flask/hello_basehttp.py Fri May 13 16:37:29 2011 +0200 @@ -0,0 +1,29 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +import BaseHTTPServer + +class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler): + def do_HEAD(s): + s.send_response(200) + s.send_header("Content-type", "text/html") + s.end_headers() + def do_GET(s): + if (s.path == "/witaj"): + s.send_response(200) + s.send_header("Content-type", "text/html") + s.end_headers() + s.wfile.write("Witaj Swiecie!") + else: + s.send_response(404) + s.send_header("Content-type", "text/html") + s.end_headers() + s.wfile.write("404 not found") + +if __name__ == '__main__': + server_class = BaseHTTPServer.HTTPServer + httpd = server_class(('localhost', 60085), MyHandler) + try: + httpd.serve_forever() + except KeyboardInterrupt: + pass + httpd.server_close() diff -r 3a26da290650 -r f73176cba39b prezentacja-django-flask/hello_flask.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/prezentacja-django-flask/hello_flask.py Fri May 13 16:37:29 2011 +0200 @@ -0,0 +1,9 @@ +from flask import Flask +app = Flask(__name__) + +@app.route("/witaj") +def hello(): + return "Witaj Swiecie!" + +if __name__ == "__main__": + app.run() diff -r 3a26da290650 -r f73176cba39b prezentacja-django-flask/hello_werkzeug.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/prezentacja-django-flask/hello_werkzeug.py Fri May 13 16:37:29 2011 +0200 @@ -0,0 +1,12 @@ +from werkzeug.wrappers import Request, Response + +# Przyklad skopiowany ze strony glownej projektu Werkzeug +# http://werkzeug.pocoo.org/ + +@Request.application +def application(request): + return Response('Witaj Swiecie!') + +if __name__ == '__main__': + from werkzeug.serving import run_simple + run_simple('localhost', 4000, application) diff -r 3a26da290650 -r f73176cba39b prezentacja-django-flask/prezentacja.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/prezentacja-django-flask/prezentacja.tex Fri May 13 16:37:29 2011 +0200 @@ -0,0 +1,147 @@ +\documentclass{beamer} + +\mode +{ + \usetheme{Darmstadt} + + \setbeamercovered{transparent} +} + +\usepackage{listings} + +%\usepackage[english]{babel} +\usepackage[polish]{babel} + +\usepackage[MeX]{polski} +\usepackage[utf8]{inputenc} +\usepackage[OT4]{fontenc} + +\lstset{ % +language=Octave, % the language of the code +basicstyle=\small, % the size of the fonts that are used for the code +tabsize=4, % sets default tabsize to 2 spaces +captionpos=b, % sets the caption-position to bottom +breaklines=true, % sets automatic line breaking +breakatwhitespace=true, % sets if automatic breaks should only happen at whitespace +} + +\title[Short Paper Title] % (optional, use only with long paper titles) +{Django i Flask} + +\subtitle +{Porównanie frameworków webowych w języku Python} % (optional) + +\author[Michał Rudowicz] % (optional, use only with lots of authors) +{Michał Rudowicz\\171047} +% - Use the \inst{?} command only if the authors have different +% affiliation. + +\institute[PWr] % (optional, but mostly needed) +{ + Wydział Elektroniki\\ + Politechnika Wrocławska +} +% - Use the \inst command only if there are several affiliations. +% - Keep it simple, no one is interested in your street address. + +\date[Short Occasion] % (optional) +{13 maja 2011} + +\subject{Talks} + +\begin{document} + +\begin{frame} + \titlepage +\end{frame} + +\begin{frame}{Spis Treści} + \tableofcontents + % You might wish to add the option [pausesections] +\end{frame} + + +% Since this a solution template for a generic talk, very little can +% be said about how it should be structured. However, the talk length +% of between 15min and 45min and the theme suggest that you stick to +% the following rules: + +% - Exactly two or three sections (other than the summary). +% - At *most* three subsections per section. +% - Talk about 30s to 2min per frame. So there should be between about +% 15 and 30 frames, all told. + +\section{Ogólne informacje o frameworkach} + +\subsection{Django} + +\begin{frame}{Cechy Django} + \begin{itemize} + \item<1-> + Doskonale nadaje się do tworzenia dużych, skomplikowanych serwisów + \item<2-> + Duża ilość wbudowanych funkcjonalności + \begin{itemize} + \item ORM + \item System szablonów + \item Automatycznie generowany panel administracyjny + \item Zarządzanie użytkownikami + \item Wiele innych + \end{itemize} + \item<3-> + Stosunkowo dużo kodu koniecznego do napisania prostej aplikacji + \end{itemize} +\end{frame} + +\subsection{Python + BaseHTTPServer} + +\begin{frame}{Cechy programów napisanych z użyciem BaseHTTPServer} + \begin{itemize} + \item<1-> + Całkowita kontrola nad działaniem aplikacji + \item<2-> + Konieczność pisania dużej ilości kodu + \item<3-> + Korzysta tylko z bibliotek dodawanych do standardowej instalacji Pythona + \end{itemize} +\end{frame} + +\begin{frame}{Przykładowa aplikacja} +\lstinputlisting[language=Python, basicstyle=\tiny]{hello_basehttp.py} +\end{frame} + +\subsection{Werkzeug} + +\begin{frame}{Cechy Werkzeug} + \begin{itemize} + \item<1-> + Wbudowany debugger wykorzystujący JavaScript + \item<2-> + Obsługa sesji i podpisanych ciasteczek + \item<3-> + Nadal dość skomplikowana obsługa + \end{itemize} +\end{frame} + +\begin{frame}{Przykładowa aplikacja} +\lstinputlisting[language=Python]{hello_werkzeug.py} +\end{frame} + +\subsection{Flask} + +\begin{frame}{Cechy Flaska} + \begin{itemize} + \item<1-> + Oparty na Werkzeug, więc posiada wszystkie jego zalety + \item<2-> + Zintegrowany z systemem szablonów Jinja2 + \item<3-> + Uproszczona obsługa + \end{itemize} +\end{frame} + +\begin{frame}{Przykładowa aplikacja} +\lstinputlisting[language=Python]{hello_flask.py} +\end{frame} + +\end{document} \ No newline at end of file