changeset 26:f73176cba39b

Zacząłem pracę nad prezentacją
author Michał Rudowicz <michal.rudowicz@fl9.eu>
date Fri, 13 May 2011 16:37:29 +0200
parents 3a26da290650
children 6a9e2b3b4398
files frontend/doc/system.rst frontend/mfrontend/templates/joblist.csv frontend/mfrontend/templates/layout.html prezentacja-django-flask/hello_basehttp.py prezentacja-django-flask/hello_flask.py prezentacja-django-flask/hello_werkzeug.py prezentacja-django-flask/prezentacja.tex
diffstat 7 files changed, 209 insertions(+), 147 deletions(-) [+]
line wrap: on
line diff
--- 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:
+ * 
--- 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 %}
--- 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 @@
 <html>
 <head>
 <title>NASZA APLIKACJA!</title>
-<script type="text/javascript" src="http://mild.net.pl/aiir/jquery.js"></script>
-<script type="text/javascript" src="http://mild.net.pl/aiir/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
-<link rel="stylesheet" href="http://mild.net.pl/aiir/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
-<link rel="stylesheet" type="text/css" href="http://mild.net.pl/aiir/style.css">
+<script type="text/javascript" src="/static/jquery.js"></script>
+<script type="text/javascript" src="/static/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
+<link rel="stylesheet" href="/static/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
+<link rel="stylesheet" type="text/css" href="/static/style.css">
 </head><body>
 <div id="content">
 <div style="display:none">
@@ -67,6 +67,6 @@
   {% endfor %}
   {% block body %}
 {% endblock %}
-<script type="text/javascript" src="http://mild.net.pl/aiir/general.js"></script>
+<script type="text/javascript" src="/static/general.js"></script>
 </div>
 </body></head>
--- /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()
--- /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()
--- /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)
--- /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<presentation>
+{
+  \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