← All posts tagged Python

iorlas

Пока болею, решил исследовать вопрос тестирования в рабочем проекте(там это сильно запущено). Читал о mocking, случайно, и тут РАЗ. До меня дошло для чего mocking вообще применяется! А самое главное, что я как-раз думал о том, как оттестировать элементы логики, что используют экстернальные ресурсы. И ВОТ ОНО, ХАХА

iorlas

Знаете что бесит меня сейчас больше всего? Нет не знаете, но речь о том, что на самом деле бесит незаметно, надоедает и просто тратит время: работа с однотипными конструкциями. Каков у меня был БУГУРТ когда введя в js-коде arr.append(x) я получил ОШИБКУ. Как же бесит что нигде не придерживаются стандартов — более того, не думают о их создании.

iorlas

Тут бродя по сети увидел страшно знакомое слово "Beautiful Soup". Секунд 10 думал, где и что же это такое за решение. Может в PHP когда-то ооочень давно что-то такое встречал/использовал. А может вообще в Ruby среди статей где-то видел?
Залез в гугл и вспомнил что это парсер html/xml, который я использовал для нескольких хитрых вещей года 3 назад, если не больше.
СТарость не в радость, что называется, такие вещи запяматовал, это надо же...

iorlas

Хоть я в старые времена и считал что у буста хорошая документация, сравнивать одни доки boost::regex с python.re даже не хочется, на столько качество разное, хотя вот для буста люди явно старались не мало.

iorlas

Пилю сейчас пару небольших вкусняшек для ST2. Для начала, занялся TODO-списком. Для самого начала — списком локальным(только с текущего файла). Для поиска используется find_all метод текущего view. Фишка в том, что там поддерживаются регекспы, форматирование, пара флагов, но всё это сделано не через Python, а через Boost. Следовательно, там нет поддержки некоторых фишек re-модуля питона и форматирование там совсем иное. Жаль что в доках этого не было упомянуто. Хорошо хоть я сам сообразил почти сразу, после нулевого результата попытки форматировать результат через строку "{0}".
Продолжение следует.

iorlas

Хотел посмотреть что на замену Twisted питонского. Ну, вдруг что изобрели или советуют помимо EM. И что бы вы подумали? Изобрели и советуют. Что? Node.js. Занавес.
На хабре прочитал о том, что "Node.js сами рубисты используют для нестандартных задач, а рельсы для остальной части сайта", в то время как питонисты используют твистед и в ус не дуют, а EM загибается и остаётся эдаким Pylons, который мало кто уже использует, никому он не нужен, да и не советуют его юзать-то.

iorlas

Сейчас для себя поднял сильный вопрос: так что же делать?
Я много времени трачу на вебдев, мне нравится то, что в вебдеве проще реализоваться, реализовать некоторые вещи, да и веб банально удобнее — это если не наше будущее, то наше настоящее.
Я использую PHP, чуть Ruby и крайне уже редко Python(за последние лет 5 он потерял ну очень много и слишком мало не приобрёл, в сравнении с, например, Ruby).
Около года назад(когда мне пришлось начать достаточно активно писать на PHP), у меня появилось полное отвращение к вебдеву. Сейчас чуть свыкся уже, но ощущаю, что не хочу писать на этом через даже год и уж тем более, не хочу перебиваться и писать то на одном, то на другом(скажем так, работа позволяет выбрать инструмент). Уже сейчас хочу переплыть, уйти на то, что буду юзать долгое, очень долгое время. Вопрос в том, на что. Проблема в том, что я не уверен, что будет лучшей идеей.
Варианта я вижу два, а ещё 1 такой, которого, увы, нет.
1) Ruby + Rails + Что-нибудь ещё для мелких вещей(Sinatra советуют).
2) Python + Django(для всяких типичных проектов, где не хочется писать всё с нуля) + Pyramid(для мелких проектов с хитрыми задачами или где многие фишки Django будут "мимо кассы").
3) Популярный язык со статической типизацией, развитым вебфреймворком и большим коммьюнити. Лучше всего подходит D, но просто не подходит — тема для другой беседы. Java тоже не то. CPP тоже. Если в будущем появится такой вариант, то будет не жалко потраченное время.

Руби не хочу выбирать из-за относительно гнилого коммьюнити, "end", нагромождения слоёв и перегрузки многих решений(капистрано иногда пугает) — всё это до жути бесит и думаю что может помешать получению удовольствия от Ruby и Rails. Нет, это всё уже мешает.
Python не хочу уже использовать особо, так как коммьюнити превращается в странную кашу, которая особо никуда не спешит, не стремится, только Python3 зачем-то создали, продвигают. Django слишком слаб и всё-равно заставляет писать очень много с нуля или почти с нуля. При том, что с Django мне работать не на много приятнее чем с рельсами, оно того не стоит. Язык привлекает почти только индентами, в сравнением с Ruby.

Так что же посоветуете? Перестать брезговать "end"-ами, использовать что-то вместо капистрано/разобраться в нём более детально, да использовать Ruby? Или же взять на себя груз, да пилить модули для Django, Пирамиды, терпеть изменения и катаклизмы в коммьюнити и фреймворках(как когда Pylons канул в лету)?

iorlas

Есть фильтр, который вызывается в базовом темплейте. Ему нужно передать значение, которое будет известно только в дочернем(наследующем) темплейте. Т.е. нужен аналог blocks для переменных. На Mako делал просто: дефайнил в родительском и менял в дочернем, но здесь, думается, должно быть что-то более красивое. Пока сделал как костыль: вызов фильтра в дочернем через блок.

iorlas

Чуть допилил thumb.py для джанги и выложил на гитхаб. Суть в том, что оригинальная логика работала так(вообще, тупо вызывался PIL.thumbnail, поэтому это его логика): если изображение больше нужного и не соответствует аспекту нужного, то всё изображение врисовывается в нужный размер, сохраняя аспект, в результате изображение становится меньше нужного. Я сделал создание тамба по минимальному размеру, а потом кропом обрезаю излишки(всё как надо, изображение по центру). Получается что создаётся тамбнейл какой нужно, идеально вписанный в нужные размеры.
Потом полностью перепишу модуль, так как сейчас оно может выдавать на 1 пиксель меньше нужного, да и работает только для не квадратных размеров. Для квадратных, к слову, может оно работает и верно, но мне лень было тестить, лол.
Можете форкать @ постить баги @ постить предложения и баги. Займусь ими как только — так сразу.
Всё тут: github.com

iorlas

Сейчас с уверенностью могу сказать что Django перешагнул Rails и продвинулся дальше, он стал лучше и многим продуманнее "рельс". Пока, увы, не игрался с формами, тегами, валидацией, темплейтами, сессиями и самой БД(т.е. запросами), но общая структура фреймворка, логика работы с контроллерами(видами), админка, дженерики etc — выше всяческих похвал, многим лучше аналогов в Rails.

iorlas

nichol.as Сравнение различных веб-серверов для деплоя пайтона. uWSGI, как я и думал, оказался в лидерах, а конкретнее — на втором месте после Gevent. Надо сказать что от Gevent отставание небольшое, очень малое.