Обновить
18
0
Кривушин Михаил @Deepwalker

Программист

Отправить сообщение
А модели шлюзов не секрет?
А на мой взгляд главный косяк HTC Desire в микро размере внутренней памяти. Наглядно сравниваю с планшеткой — там все просто работает вообще без какого либо вмешательства, а я тут рутую и a2sd завожу.

А если я блин не гик, который с понятием root лет 10 как знаком? «Извините, обломитесь поставить instagram, место ёк».

Хотя звук да, тоже «отличный».
Регулярка ничего не меняет, но вы не поняли меня.
from gevent import http
import re
root = re.compile('^/$')

def callback(request):
    if root.match(request.uri):
        request.add_output_header('Content-Type', 'text/html')
        request.send_reply(200, "OK", '<b>hello world</b>')
    else:
        request.add_output_header('Content-Type', 'text/html')
        request.send_reply(404, "Not Found", "<h1>Not Found</h1>")

print 'Serving on 8088...'
http.HTTPServer(('0.0.0.0', 8088), callback).serve_forever()


Хелловорлды несерьезно, и я вам наглядно показал, что питон в хелловорлдах ну просто ой какой шустрый, что конечно же неправда, так как не может питон быть шустрым, все же знают.

Поэтому и предлагаю продолжить на более серьезном материале — вы подаете статью, а я пытаюсь побить Go на python :) Будет весело.
from gevent import http

def callback(request):
    request.add_output_header('Content-Type', 'text/html')

print 'Serving on 8088...'
http.HTTPServer(('0.0.0.0', 8088), callback).serve_forever()

Requests per second: 16830.99 [#/sec] (mean)

Ваш пример на Go — Requests per second: 10671.47 [#/sec] (mean), машинка четырехядерная.
Всем понятно что в данном случае чистый C победил, но уж если тестировать хелловорлды, то честно, задействуя все возможности обширных библиотек ;)

Я пожалуй потрачу немного времени, и разделю с вами любовь к питону в комментариях к вашим постам.
Да нет, код нормальный, все ок. Но в общем тестировать хелло ворлды бесполезно, это про производительность — есть мнение, что тормозить будет не питоно код на некоторых задачах.
Второе — библиотека под Го бедна как мышь в коммунистической церкви.
Но как я понимаю будут следующие части, и там вы учтете мои замечания и разгромите по всем фронтам.
Спокойно поставил по ссылке с сайта на перепрошитый HTC Desire. Теперь осталось понять зачем.
Я не автор, но прокомментирую. Тут в принципе не REST демонстрировался, но в любом случае такие действия по GET не делаются, тут я с вами согласен.
А вот этот ручной разбор аргументов в request — это так и надо?
Запись выложите ) Жаль на kharkivpy не получилось нормального видеомоста, не доработали мы с Егором этот момент.
Можно без архитектора — надо писать на том языке, который лучше знают имеющиеся разработчики.
Дизайн его блогов и докладов многим нравится. Есть тема оформления для sphinx, которую сейчас ставят все подряд.
Но в общем дизайн это же так. Что мне нравится гораздо больше в Армине, это что за написанием кода, хорошего на мой вкус, хоть и не все его идеи удачны, он не забывает писать прекрасную документацию, ясно и доступно выражая свои мысли. Я вот пока так не могу. Донести до хабра прелести trafaret я так и не смог, по всей видимости.
Андрей, да! Мне кажется сейчас самое время для такого рассказа.
Кстати pypy пока тройку еще не поддерживают. А так мы конечно все на тройку согласны.
Ну предыдущий вариант явно разрешает принять аргументы, потом пихает их в первый вызов __init__, а последующие тупо игнорит.
Сказать `хрен вам` и то в сто раз прекраснее чем подложить такую свинью :)
В общем надо подумать и запилить абсолютно правильную реализацию синглтона на все случаи жизни, пусть и, эх эх, не столь краткую.
Да, правы, __init__ вызывается, косяк.

Аргументы. Давайте рассудим — вот я вызываю a = Singleton(234), а в другом месте вызову b = Singleton(8903890). Вот тут я как-то в замешательстве, а что с этим делать? То есть как бы я уже создал один синглетон, который 234, а что делать с новым, у которого 8903890?
Примеры кривые, вот краткий python:

class Singleton(object):
    def __new__(cls):
        if not hasattr(cls, 'instance'):
             cls.instance = super(Singleton, cls).__new__(cls)
        return cls.instance
Зато когда в erlang пишут — наши процессы это не те процессы которые ОС, а полностью контролируются виртуальной машиной erlang — это ого-го :)
Генераторы это генераторы, они explicit. То что вы показываете это скорее greenlet или stackless python.
В общем сейчас дефакто используют greenlet. Так как в самом python есть генераторы. которые типа тоже корутины, то гринлетов в корелиб не будет никогда.
Ой, это же скользкая тема :) Во первых сам cpython быстрее, но не критично. А во вторых, если не выходим за рамки stdlib, легким движением запускаем через pypy и взлетаем в космос. Сейчас прогнал свой древний raytracing пример на pypy, скорость меня приятно удивила.

Информация

В рейтинге
Не участвует
Откуда
Самара, Самарская обл., Россия
Дата рождения
Зарегистрирован
Активность