Ну и это... Python 2.6 вышел.
Сравнение С# и Python.Первый пример автора: itertools.islice (itertools.count (123), 5) Правильно: xrange (123, 128)
Для справки: программист в софтверных компаниях в Чехии приносит 250 тыс. евро дохода.
У справки есть надежный источник или одна баба сказала?
Мой вопрос оказался неконструктивным. Ну действительно, можно подумать за слова надо отвечать. «Программист в софтверных компаниях в Чехии приносит 250 тыс. евро дохода» либо заблуждение либо ложь. Таким «справкам» грош цена, увы.
(пришлось гуглить ОБС). Спасибо за ответ.
@Kixirosys.argv [1] — да, действительно.Насчет отладки, сейчас точно не скажу, попробуйте заменить paste.evalexception на weberror или pasteob.debug.eval.
Надо же, кто-то заметил =) Текущая версия декораторов доступна в WebOb/contrib/decorators.py (svn). Там же доки и тесты.Почему и как это работает недавно писал Бикинг.
Ваш вариант проще в реализации, а мой проще в использовании. Я предпочитаю последнее.
1) Закоммитил фикс.2) Действительно в статье куда-то потерялось. Патч:
else: bodies.append(unicode(subr.body or ’’))+ r.unicode_body = u’nn’.join(bodies) r.md5_etag() r.last_modified = max([subr.last_modified for subr in subresponses if subr.last_modified] or [None])
Вацлав, спасибо. Если у вас есть какие-то выводы идущие вразрез с тем что описываю я, то если найдется время коротко описать, было бы интересно. С чем не согласен я, так это с тем что фреймворки экономят время. На мой взгляд это верно только на этапе прототипа и только для неопытных в этой области программистов. daevaorn, хоть вопросы и не ко мне, я мог бы ответить только одним образом: попробуйте и так и так и сравните. Если не выйдет выигрыша, то и ладно, оставьте такой подход тем, кому так удобнее. С другой стороны, я не понимаю людей которые довольны фреймворками, я вот никогда не был доволен. Пользовался, потому что не представлял как иначе, но борьбы с фреймворком, чтения доков итп всегда было больше чем дела. Вот нашел как делать иначе и забыл фреймворки как страшный сон. Более того, плюсы подхода всплывают в самых неожиданных местах, что для меня всегда признак во всех отношениях лучшего решения. Насчет отличий применения Джанго и библиотек это извините сами разберитесь, если разницы вообще не видно, то мои соболезнования.
Если пользуетесь декоратором подобным моему, то можно использовать следующее исключение: raise HTTPException («Тут текст для отладки, если понадобится», wsgi_application) Это позволяет переопределять результат исполнения из глубины стека.Вопросы о том где вызывается start_response наводят на мысль что в middleware превращены на самом деле зависимые компоненты которые лучше реализовать обычными библитечными вызовами. Если говорить о XSLT-преобразователе применямом к любому WSGI-приложению, то я думаю такое наверняка уже кто-то реализовал (wsgi+xslt).
Смотреть на content-type запроса бесполезно, его всё равно никто не шлет. В webob/contrib/decorators есть detect_charset, сделал на всякий случай. Там же есть поддержка стратегий по типу Гугловской (? ie=) и вашу можно добавить без труда.Хак мне кажется удачный, но есть ли в нем нужда? Вот какой браузер шлет не в той кодировке?
Да, для внешних форм проблема есть, но не лучше ли тогда писать кодировку страницы в спрятанном поле? Вот у гугла ie= (input encoding) именно это и делает. В общем у меня проблема в таком виде не встречалась чтобы было необходимо делать определение, но если таки встретилась, то ваш вариант с известной строкой мне определенно нравится.
Продолжение будет, но врядли до нового года.
BigHo, ухты, спасибо. =) Не стесняйтесь такие каменты писать, я издателю покажу. =)
Посмотрел оглавление, там вообще другое, всякие нормы и шаблонные решения. У меня фристайл!)
@bitl, я поправлю только в одном. Почти каждый раз, возражая мне на эту тему говорят о том, что «может лучше быстрее с фреймворком», хотя я в статьях много раз повторил что без фреймворков я пишу в несколько раз быстрее. То есть в 2−3 раза быстрее.Статьи вообще не о том что «писать с нуля хорошо», а о том как правильно писать без фреймворков. Повторяю по слогам: как именно ПРАВИЛЬНО писать БЕЗ ФРЕЙМВОРКОВ. Не с нуля, а без фреймворков. И не лишь бы как, а как правильно.Если при этом кто-то думает про себя что «я не понимаю фреймворков, я сделаю свой лучше», то я тут ни при чем. Если я и говорю о простоте решений в лоб то это потому что они простые и есть. Но при этом бытует мнение что фреймворк необходим (свой или готовый). Да я и сам так считал. Но вот незадача, оказалось для того чтобы отделить обработку данных и их отображение фреймворк не нужен итп.
Я осадке от этой конструкции =)
byte[] array = new byte[1100000000]; array[array.Length - 1] = 1;
Т.е. зачем
array.Length - 1
брать?Если я правильно понял, то в питоне этому будет аналогом:
In [12]: x = int('1100000000', 2)In [13]: import bisectIn [14]: bisect.bisect([1, x], x)Out[14]: 2In [15]: bisect.bisect([1, x], 1)Out[15]: 1
Впрочем можно было догадаться что автоматическое int -> long преобразование должно справиться
стоп, речь о длинах списка вообще, затупил, сорри.
Кинет мне сетку? Из техникума? Почему вы обращаетесь ко мне с этими странными фантазиями? Если вам не понятна суть моего возражения, обьясняю на пальцах. Выпускники любого вуза, в любой профессии на 80−100% тупые профнепригодные *бланы. У остальных есть потенциал в процессе работы научиться делать своё дело хорошо. Какие алмазы? Какие проектировщики? Какие, так их разтак, оправданные амбиции? Очнитесь.Как понимает любой адекватный человек, большинство людей ничего не умеют делать хорошо, поэтому и требования к потребляемому подобное. Получается засилье отстоя во всех сферах. У кого-то говённый менеджер? Это потому что сам такой же программист. Те же, кто умеет делать продукт на уровне получают соотв. отдачу (см. Microsoft). Те кто умеют извлечь пользу из бестолковой толпы, получают отдачу (см. директор фирмы на завидной машине). А если кто-то обезьяна с претензиями, то отдачи не будет. Потому что мир ставит задачи — кто их решает получает конфетку, если человек хочет решать только такие задачи какие ему интересны, конфетки заберут не такие гордые.Вы говорите что проблема в том, что слишком много исследователей. Это те которые обсуждают паттерны — исследователи? Или те которых только на багфиксинг решаются посадить? А может те, которые задачи про гномов решают? Где эти исследователи, где они все прячутся, на башорге? Вы можете показать списки выпускников нескольких факультетов и расписаться в том что «тут большинтво — программисты-исследователи»? И главное, поясните, что за исследователи и зачем они нужны? Заодно скажу с чем согласен. С тем, что программирование — рабочая профессия. С тем что для больших компаний обучать своих работников — верный путь. Это не для дискуссии, поэтому несогласные могут не трудиться с разьяснениями, они не нужны.