SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Сепвепмая
пазпабнсйа

Акейрамдп Бейбткаснв
Сепвепмая пазпабнсйа
Чсн лы матцилря декась?

• Обпабасъвасы GET и POST заопнръ
• Въвндисы HTML опи онлнши чабкнмнв
• Пнзмайнлилрю р Django
Тиоицмые задаци репвепмнй пазпабнсйи
• Оснбпажемие нбщейснв (роирйи, оагимахию, рспамихъ

нбщейснв)
• Излемемие нбщейснв (CRUD)
• Взаилндейрсвие р онкызнвасекел (унплъ, wizard)
2
Языйи дкя репвепмнй пазпабнсйи
Йнлоикиптелые:

• С/С++ лндтки й Web репвепал
• Java (Tomcat, Jetty)
Имсепопесиптелые:
• Perl – CGI, mod_perl, PSGI

• PHP – mod_php, FastCGI (FPM)
• Ruby – Rack (mongrel)
• Python – WSGI (Tornado)
• JavaScript (NodeJS)

3
Языйи дкя репвепмнй пазпабнсйи
Ннвая внкма?

• Go
• Erlang
• Scala
• Groovy
• …

4
Ппнснйнк CGI
#!/usr/bin/python
import os
import sys
print
print
print
print

"Content-type: text/html"
"Status: 200"
""
"<h1>Hello, world!</h1>"

for k, v in os.environ.items():
print "%s = %s<br>" % (k, v)
print >> sys.stderr, "Nice to meet you"
5
Ппнснйнк CGI
#!/usr/bin/python
print
print
print
print

"HTTP/1.0 301 Found"
"Location: http://go.mail.ru/"
"Set-Cookie: name=value"
""

6
Загнкнвйи нсвеса
Booking.com
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 27 Oct 2013 10:08:40 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 42510
Connection: keep-alive
Cache-Control: private
Vary: User-Agent, Accept-Encoding
Content-Encoding: gzip
X-Recruiting: Like HTTP headers? Come write ours:
booking.com/jobs
7
Загнкнвйи нсвеса
Reddit.com
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Vary: accept-encoding
Content-Encoding: gzip
Content-Length: 19879
Server: '; DROP TABLE servertypes; -Date: Sun, 27 Oct 2013 10:10:10 GMT
Connection: keep-alive

8
GET оапалеспы
Гиоепррыкйа
<a href=‘/hello.cgi?name=me&greeting=hello’>Hello!</a>
Пепелеммая нйптжемия
QUERY_STRING=name=me&greeting=hello
CGI рйпиос
import urlparse
params = urlparse.parse_qs('name=me&greeting=hello')
9
POST оапалеспы
Фнпла
<form method=”post” action=”/hello.cgi”>
<input name=”name” value=”me”/>
<input name=”greeting” value=”hi”/>
<input type=”submit”/>
</form>
CGI рйпиос
qs = sys.stdin.read()
ики
cgi.FieldStorage()
10
Файкы и ме-ASCII
multipart/form-data
<form method=”post” action=”/hello.cgi” enctype=”multipart/formdata”>
<input name=”name” value=”me”/>

<input name=”pic” type=”file”/>
<input type=”submit”/>
</form>

URI percent encoding
<a href=”/hello.cgi?name=%D0%B8%D0%BC%D1%8F”>опивес</a>

11
Обпабнсйа оапалеспнв
import cgi
form = cgi.FieldStorage()
# Наличие параметров
if not 'name' in form:
raise ValidationError('panic')
# Валидация
if not re.match('[a-z]+', form['name']):
raise ValidationError('panic')
# Очистка
story = re.sub('<[^>]+>', ' ', form['story'])
# Экранирование
story = form['story']
story = story.replace('<', '&lt;')
story = story.replace('>', '&gt;')
12
Пепелеммые нйптжемия
 HTTP_COOKIE
 HTTP_USER_AGENT
 PATH_INFO
 QUERY_STRING
 REMOTE_ADDR
 REQUEST_METHOD
 SCRIPT_FILENAME
 SCRIPT_NAME
 …
13
Акьсепмасивы CGI
1. Кнлоикипнвамие опнгпаллъ
2. Дптгнй опнснйнк (FastCGI, SCGI, PCGI, WSGI)
3. Сепвкесъ в Java

14
Ппнснйнк WSGI
def application(environ, start_response):
status = '200 OK'
output = 'Hello World!'

response_headers = [
('Content-type', 'text/plain'),
('Content-Length', str(len(output)))
]
start_response(status, response_headers)
return [output]

15
Werkzeug
Днйтлемсахия
http://werkzeug.pocoo.org/

Ппилеп опикнжемия
https://github.com/mitsuhiko/werkzeug/blob/master/examples/
shortly/shortly.py

16
Werkzeug
from werkzeug.wrappers import Request, Response
def application(environ, start_response):
request = Request(environ)
text = 'Hello %s!' %
request.args.get('name', 'World')
response =
Response(text, mimetype='text/plain')
return response(environ, start_response)

17
Werkzeug Middleware
from werkzeug.wsgi import DispatcherMiddleware
app = DispatcherMiddleware(app, {
'/app2': app2,
'/app3': app3
})

from werkzeug.debug import DebuggedApplication
app = DebuggedApplication(app)

18
Йай заотрсись?
<VirtualHost *>
ServerName example.com
WSGIScriptAlias /myapp /usr/local/www/wsgiscripts/myapp.wsgi
WSGIDaemonProcess example.com processes=2
threads=15
WSGIProcessGroup example.com
<Directory /usr/local/www/wsgi-scripts>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
19
Акьсепмасивы
1. UWSGI (C)
2. Tornado (Python)

3. Gunicorn (Python)

20
Речаелые задаци

21
Обпабнсйа унпл
request = Request(environ)
error = None
url = ''
if request.method == 'POST':
url = request.form.get('url')
if not is_valid_url(url):
error = 'Please enter a valid URL'
else:
short_id = insert_url(url)
return redirect('/%s' % short_id)
return
render_template('new_url.html', error=error, url=ur
l)

22
Обпабнсйа унпл
1. Одим нбпабнсций дкю нснбпажемию и излемемию нбщейса
2. Сннбшемие нб нчибйе и троефе

3. Ппнвепйа даммъф ма репвепе и йкиемсе
4. Редипейс онрке въонкмемию дейрсвию

23
Пепемаопавкемия
Ссастры нсвеса
301 Moved Permanently
302 Found
Йтда?

Location: http://go.mail.ru/

24
Ajax Frontend
var request = $.ajax({
url: ”/like/",
type: "POST",
data: {id : itemId},
dataType: "json"
});
request.done(function(result) {
if (result.status) { $("#log").html( result.msg );
}
});
request.fail(function(jqXHR, textStatus) {
alert("Request failed: " + textStatus);
});
25
Ajax Backend
Загнкнвнй X-Requested-with дкя AJAX заопнрнв
import json

request = Request(environ)
json_data = json.dumps({
'status': True,
'msg': u'Лайк!'
})
response =
Response(json_data, mimetype='text/plain')
return response(environ, start_response)
26
Хпамемие даммыф ма йкиемсе
Чсн мтжмн фпамись н онкьзнвасеке?
 Пнкызнвасекырйие марспнййи

 Впелеммтэ имунплахиэ
 Авснпизнвам ки онкызнвасекы
Cookie и реррии

 Cookie оепедаэсрю влерсе заопнрнл
 Серрии фпамюсрю ма репвепе (в уайкаф, в базе), идемсиуийаснп
реррии оепедаэсрю в йтйаф

27
Cookie и реррии
Cеррии
 бнкее топавкюелъе (лнжмн рбпнрисы)
 рмилаэс нгпамицемие ма пазлеп

 спебтэс онддепжйи бьйемда
 лнгтс възъвасы опнбкелъ опи върнйиф магптзйаф

Cookie
 Огпамицемию ма пазлеп и йнкицерсвн
 опайсицерйи ме топавкюелъе

 оепедаэсрю он реси р йаждъл заопнрнл
28
Cookie
Загнкнвйи
Set-Cookie: name=val; path=/; domain=domain.ru;
expires=Tue, 20 Mar 2012 11:52:54 GMT
Cookie: name=val;name2=val2;is_visited=2011-13-15

Урсамнвйа
import Cookie
cookie = Cookie.SimpleCookie()
cookie['name'] = 'val'
cookie['name']['path'] = '/path'

Пнктцемие
cookie.load('a=b;c=d')
for name in cookie:
print '%s => %s' % (name, cookie[name])
29
Шабкнмизаснпы
'''
<html><body>
<h1>%s</h1>
</body></html>'’’ % name

VS

context = {
'user' : get_user(form['name']),
'friends' : get_friends(form['name'])
}

render('tpl/home.html', context)
30
Шабкнмизаснпы

31
Шабкнмизаснпы
Jinja2 ~ Django
{% extends "layout.html" %}
{% block body %}
<ul>
{% for user in users %}
<li> {% include helper %}</li>
{% endfor %}
</ul>
{% endblock %}

32
SSI

<!--# echo var=”Email" default="" -->

<!--# include
virtual="/remote/body.php?argument=value" -->
<!--#
->
<!--#
<!--#
<!--#

if expr="$name = /(.+)@(?P<domain>.+)/" echo var="1" -->
echo var="domain" -->
endif -->

33
Фпейлвнпйи

34
 Гнснваю апфисейстпа опнейса
 Эйнмнлию пертпрнв

 Уцарсие в Open Source опнейсаф
 Вре иф иронкызтэс

35
Flask

Днйтлемсахия
http://flask.pocoo.org/

Ппилепы опикнжемий

https://github.com/mitsuhiko/flask/tree/master/examples

36
Flask
app = Flask(__name__)
@app.route('/')
def index_page():
db = get_db()
cur = db.execute('select title, text from
entries order by id desc')
entries = cur.fetchall()
return
render_template('show_entries.html', entries=entrie
s)
@app.route('/contact/')
def contact_page():
return render_template('contact_page.html')

37
MVC
Model-view-controller – рфела иронкызнвамию мерйнкыйиф
чабкнмнв опнейсипнвамию, р онлншыэ йнснпъф лндекы даммъф
опикнжемию, онкызнвасекырйий имсепуейр и взаилндейрсвие р
онкызнвасекел паздекемъ ма спи нсдекымъф йнлонмемса сай, цсн
лндиуийахию ндмнгн из йнлонмемснв нйазъваес лимилакымне
внздейрсвие ма нрсакымъе.

38
39
• PHP (CodeIgniter, Yii)
• ASP (ASP.NET MVC Framework)
• Perl (Catalyst)

• Python (Django, Pyramid)
• Ruby (Ruby on Rails)

40
41
42
Instagram
 40+ ликкинмнв онкызнвасекей

 100+ випстакымъф репвепнв в EC2
 Ппнейс йтокем Facebook за 1 лкпд. днкк
 1 ликкинм пегирспахий за 12 царнв онрке заотрйа Androidвеприи
 5 пазпабнсцийнв

43
Pinterest
 3 ликкинма тмийакымъф онресисекей в демы

 18 ликкинмнв тмийакымъф онресисекей в лерюх
 4-ю он оноткюпмнрси рнхиакымаю ресы в США онрке
Facebook, Twitter и LinkedIn

 410Тб онкызнвасекырйиф даммъф

44
Disqus
 500 ликкинмнв тмийакымъф онресисекей в лерюх

 750 сърюц райснв иронкызтэс Disqus
 1,5 ликкинма ндмнвпелеммъф онкызнвасекей
 165 сърюц рннбшемий в рейтмдт
 8 имжемепнв-пазпабнсцийнв

45
Дптгие опилепы ма
http://www.djangosites.org/

46
47
Внзлнжмнрси
 Гибйаю ORM

 Легйн марспаиваелъй имсепуейр адлимирспаснпа
 Дироесцеп тпкнв ма нрмнве пегткюпмъф въпажемий
 Наркеднвамие чабкнмнв

 Кечиптэший упейлвнпй
 Имсепмахинмакизахию
 Шабкнмъ утмйхий йнмспнккепа

 Community
48
Ппикнжемия
 Ппнейс рнрснис из мерйнкыйиф опикнжемий

 Мнгтс кежасы в кэбнл лерсе PythonPath
 Мнгтс иронкызнвасырю пазмъли опнейсали
 Ппикнжемие – паздек райса кибн рйвнзмнй утмйхинмак

49
Development
python manage.py runserver

Дптгие онкезмые внзлнжмнрси
python manage.py help

Deploy
WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com

50
 https://docs.djangoproject.com/

 http://django.me/render
 https://github.com/django/django
 http://www.djangosites.org/with-source/

 http://stackoverflow.com/

51
Соарибн за вмиламие
Акейрамдп
Бейбткаснв, a.bekbulatov@corp.
mail.ru

Weitere ähnliche Inhalte

Was ist angesagt?

Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NETPositive Hack Days
 
PHP Tricks
PHP TricksPHP Tricks
PHP TricksBlackFan
 
Эффективное программирование на NodeJS
Эффективное программирование на NodeJSЭффективное программирование на NodeJS
Эффективное программирование на NodeJSYura Bogdanov
 
О безопасном использовании PHP wrappers
О безопасном использовании PHP wrappersО безопасном использовании PHP wrappers
О безопасном использовании PHP wrappersPositive Hack Days
 
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...zfconfua
 
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноKrivoy Rog IT Community
 
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Dmitry Evteev
 
Vipolnenie komand na servere
Vipolnenie komand na servereVipolnenie komand na servere
Vipolnenie komand na servereygoltsev
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Andrew Mayorov
 
11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБДRoman Brovko
 
Михаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, AjaxМихаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, AjaxYandex
 
Mihail davidov js-ajax
Mihail davidov js-ajaxMihail davidov js-ajax
Mihail davidov js-ajaxYandex
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиZestranec
 
CC HackQuest 2010 Full Disclosure (мастер-класс)
CC HackQuest 2010 Full Disclosure (мастер-класс)CC HackQuest 2010 Full Disclosure (мастер-класс)
CC HackQuest 2010 Full Disclosure (мастер-класс)Dmitry Evteev
 
Метапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScriptМетапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScriptTimur Shemsedinov
 
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложенийZestranec
 
Ice Php Framework Preview Release
Ice Php Framework Preview ReleaseIce Php Framework Preview Release
Ice Php Framework Preview ReleaseDenis Shestakov
 

Was ist angesagt? (20)

Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
 
PHP Tricks
PHP TricksPHP Tricks
PHP Tricks
 
176023
176023176023
176023
 
Эффективное программирование на NodeJS
Эффективное программирование на NodeJSЭффективное программирование на NodeJS
Эффективное программирование на NodeJS
 
О безопасном использовании PHP wrappers
О безопасном использовании PHP wrappersО безопасном использовании PHP wrappers
О безопасном использовании PHP wrappers
 
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
Хранение, обработка и отдача статики с использованием \Zend\File. Опыт социал...
 
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
 
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
 
Vipolnenie komand na servere
Vipolnenie komand na servereVipolnenie komand na servere
Vipolnenie komand na servere
 
бегун
бегунбегун
бегун
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
 
11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД11 - Web-технологии. Работа с СУБД
11 - Web-технологии. Работа с СУБД
 
Михаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, AjaxМихаил Давыдов — Транспорт, Ajax
Михаил Давыдов — Транспорт, Ajax
 
Mihail davidov js-ajax
Mihail davidov js-ajaxMihail davidov js-ajax
Mihail davidov js-ajax
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 
Erlang tasty & useful stuff
Erlang tasty & useful stuffErlang tasty & useful stuff
Erlang tasty & useful stuff
 
CC HackQuest 2010 Full Disclosure (мастер-класс)
CC HackQuest 2010 Full Disclosure (мастер-класс)CC HackQuest 2010 Full Disclosure (мастер-класс)
CC HackQuest 2010 Full Disclosure (мастер-класс)
 
Метапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScriptМетапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScript
 
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложений
 
Ice Php Framework Preview Release
Ice Php Framework Preview ReleaseIce Php Framework Preview Release
Ice Php Framework Preview Release
 

Ähnlich wie Web осень 2013 лекция 5

Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй этоRoman Dvornov
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорьdrupalconf
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов ИгорьPVasili
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиSQALab
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полнойОмские ИТ-субботники
 
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПKirill Chebunin
 
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Vladimir Kochetkov
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеbeched
 
Использование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияИспользование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияSQALab
 
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demomegakott
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр Егурцов
 
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...Vadim Kruchkov
 

Ähnlich wie Web осень 2013 лекция 5 (20)

Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
 
Спецификация WSGI (PEP-333)
Спецификация WSGI (PEP-333)Спецификация WSGI (PEP-333)
Спецификация WSGI (PEP-333)
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 
PowerShell
PowerShellPowerShell
PowerShell
 
Enter: legacy code
Enter: legacy codeEnter: legacy code
Enter: legacy code
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
 
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОП
 
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!
 
php frameworks
php frameworksphp frameworks
php frameworks
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновение
 
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
 
Использование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияИспользование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестирования
 
JPHP
JPHPJPHP
JPHP
 
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demo
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
 
бегун
бегунбегун
бегун
 
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
 

Mehr von Technopark

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelTechnopark
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuTechnopark
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARNTechnopark
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. SparkTechnopark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache MahoutTechnopark
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeperTechnopark
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveTechnopark
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Technopark
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Technopark
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Technopark
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSTechnopark
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы HadoopTechnopark
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceTechnopark
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"Technopark
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...Technopark
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"Technopark
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"Technopark
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...Technopark
 

Mehr von Technopark (20)

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 

Web осень 2013 лекция 5