slav0nic's blog

Заметки о python, linux и других занимательных вещах

Exception #07 video

Нашёл в блоге у Муркта ссылки на долгожданное видео с Exception #7.

Выложено 5 докладов:

Все части доступны на YouTube

SIQ (icq server for win32) exploit

Года 3 назад страдал фигнёй, пытаясь написать модуль для работы с ICQ, осилил только авторизацию и потерял интерес =)

Так вот, тестил я своё поделие на SIQ (http://www.kht.ru/homepage/apt/siq.htm) - простенький icq сервер от "профессионала, с большим опытом автоматизации бизнес-задач"(кстати opensource), но вот проверять длину uin'a видать не кошерно, а вот и зря..., как раз в то время страдал написанием сплойтов и тп ерундой, ниже код с PoC с биндшеллов для win2ksp4ru ( ну как минимум DoS сплойт отправляющий сервер авторизации SIQAuth в даун В) )

Код никакой ценности не несёт, а вотм мне он дорог как память =), может кому будет интересно (хотя как модуль для перебора паролей к icq либо как убийца корпоративной аси и сгодитя):

more...

Подсветка кода в markdown при помощи pygments

Решил прикрутить подсветку к markdown, благо он поддерживает плагины, но писать самоу не пришлось, ибо он уже написан и имя ему CodeHilite. Поддерживает 3 способа подсветки кода:

  • GNU Enscript
  • dp.SyntaxHighlighter
  • Pygments

Для добавления к работе с mardown достаточно скачать mdx_codehilite.py и кинуть его с sys.path. Для работы с pygments необходимо сгенерировать css-файл подсветки кода ну и подключить его к странице в которой будет выводиться код:

pygmentize -f html -S colorful -a .codehilite > pygments.css

Далее всё просто:

>>> import markdown
>>> txt = """
...     :::python
...     #comment
...     print "hello"
... """
>>> markdown.markdown(txt, ['codehilite(hiliter=pygments)'])
u'<div class="codehilite"><pre><span class="c">#comment</span>\n<span class="k">print</span> 
<span class="s">&quot;hello&quot;</span>\n</pre></div>'

Для смены способа подсветки кода необходимо лишь сменить hiliter, за вывод номеров строк отвечает параметр force_linenos (значения on/off).

Удобная штука;]

fcgi vs scgi vs cherrypy (web.py dev server)

Приспичило посмотреть что есть scgi и чем он лучше. Тестил на lighttpd 1.49, возможно по этому результаты немного отличается от предыдущих тестов

Тестил при помощи ab на локалхосте. На простом приложении на web.py 0.23 для scgi:

slav0nic@sl:~$ cat /var/www/test/code.fcgi

#!/usr/bin/python2.5
import web, sys

urls = (
        '/', 'index'
    )
class index:
        def GET(self):  
            web.header("Content-Type","text/html; charset=utf-8")
            print web.ctx   

web.wsgi.runwsgi = lambda func, addr=("127.0.0.1", 4000): web.wsgi.runscgi(func, addr)
if __name__ == '__main__':  
    sys.stderr = open("/dev/null", "a") #не выводим в консоль инфу о коннектах
    web.run(urls, globals())

конфиг для mod_scgi:

scgi.server = ( "/code.fcgi" => ((   
    "host" => "127.0.0.1",
    "port" => 4000,
    "max-procs" => 1,
    "bin-environment" => ("REAL_SCRIPT_NAME" => ""),
    "check-local" => "disable")

))

для mod_fcgi:

fastcgi.server =  ".fcgi" => 
    (("bin-path"=>"/var/www/test/code.fcgi",
     "socket" => "/tmp/python.socket",
       "bin-environment" => (
            "REAL_SCRIPT_NAME" => "",
            "check-local" => "disable"),
       "max-procs" => 1,
    ))

SCGI-приложение запускалось как простой файл ./code.fcgi c lighttpd общалось через tcp socket (через unix-socket оно похоже и не умеет, увы с доками к mod_scgi полная ж@#$). stderr редиректил в /dev/null, без этого на ~30-50 запросов в секунду меньше (при запусуке в gnome-terminal) Длина документа примерно 2Кб.

Максимальное число запросов в секунду выделено жирным, 2й - курсив, выдача статики приведена просто для сравнения и интеерса не представляет =)

Итакс результаты:

more...

markitUp

На днях возжелал прикрутить к админке какой-нибудь редактор, поддерживающих markdown, при этом являющимся чем-то средним между textarea и WYSIWYG Наткнулся на wmd-editor, но что-то он показался уж сильно простым=). С посыла piranha глянул markitUp. На нём и остановился:). Из особенной отмечу:

  • используей jQuery
  • поддерживает:
    • html
    • bbcode
    • textile
    • wiki
    • dotclear
    • markdown
  • легко расширяем + поддерживает плагины
  • нелохо выглядит=) :

markit

more...

Python.com.ua -> python.su

Всё таки Денис Откидач подарил нам su домен, за что ему большое спасибо=)

link

Google App Engine

Тихо и незаметно гугл ведёт разработку своего вэб-фреймворка. Только сегодня был открыт блог разработчиков  googleappengine.blogspot.com .

Офсайт фреймворка: appspot.com

Готовые/разрабатываемые приложения: appgallery.appspot.com

Docs/SDK/etc : code.google.com/appengine

Пока что фрейморк довольно простой, включает в себя db api, user api, email api, url fetch api  и в принципе всё, ну диспатчер, шаблоны имеются (взятые с django, которая каким-то боком также прикручивается).

Многим он напоминает web.py :] Основной девелопер которого, даже выложил маленький код с использованием ORM из "gappe" и web.py 0.3 (dev): http://webpy.appspot.com

PS: поделка довольно забавная, но имхо  по душе прийдётся лишь тем, кому не тошнить стиль webpy приложений) Джангистам он врядли прийдётся по душе. Надеюсь девелоперы webpy выдерут из него что-то полезное В)

 

 

Свежая мукулатура :]

Выложил пару новых книжек. Одна по pygame, 2я - по QT.

 Beginning Game Development with Python and Pygame


Rapid GUI programming with Python and QT (2008)

more...

Книга Building Skills in Python

book cover

    Очередная книжка по Python. Стоит отметить, что она бесплатная  и о python 2.5 (весомые аргументы=), ибо большая часть существующих книг - переиздания и о 2.2-2.4 версиях )

Сайт книги: Steven F. Lott

   Книжка довольно объёмная, состоит из ~500страниц и 42 главы. Последние  вроде довольно неплохие.

 

more...

web.py