kossmak
0
С базами данных при таком подходе часто бывают проблемы

Кто бы сомневался)
Печаль в том, что со временем все привыкают бояться задорого менять имеющиеся и закостеневшие сущности в БД, без страха только приносят новые.
kossmak
+1
Всё-таки авторитет, известность автора статьи/перевода имеет значение.
Если бы я эту статью сам в оригинале нашел, только лишь пробежал бы глазами «ага, можно будет потом вернуться, когда-нибудь, наконец, разобраться».
Из ваших же рук, материал уже отобранный, прошёл фильтрацию, одобрен и рекомендован к изучению читателю.
Спасибо, годный тьюториал. А то с Grunt'ом как-то сходу не пошло.
kossmak
+3
«Вот так заходишь в профиль к человеку, подкинуть кармы, а ты это уже сделал когда-то» ©
Спасибо за перевод!
kossmak
0
to:
Я использовал JSON. Кому-то по нраву XML. Структура данных будет довольно простая.

Самое утомительное это заполнять словарь.


есть YAML, в том числе и для Python — pyyaml
kossmak
0
Беда сжатых изложений и кратких схем в том, что ни черта они не хотят запоминаться хоть на сколько-нибудь. Но структурировать в голове вышеизложенный, чуть более подробный и человечекочитаемый текст — это да, удобно и просто.
kossmak
0
В коде, исправляющем plugin/runscript.vim вы, кажется, пропустили коды клавиш, которые мапятся на соответствующие команды. В противном случае для каждой команды nmap получаем варнинг при запуске vim: «No mapping found»

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

Остальное все получилось, спасибо еще раз.
kossmak
0
Не больше, чем тестирование вообще. Автору спасибо, и отдельное — за макет Бурана)
kossmak
+1
Вы зануда. Ставлю плюсик, люблю таких.
kossmak
+1
xxx: Общаясь с Мишей, надо осторожно выбирать слова. Он в WoW довел гильдию «Братья стали» до распада одним лишь невинным вопросом «Кем?».

© bash.org.ru
kossmak
+1
Мои извинения. Картинка из кэша пропала. Ссылку Vincent Driessen не разглядел. Включил картинки, каюсь, горе мне, горе.
kossmak
+1
Огромное спасибо за труд. Спасибо, что в примечании указали ссылку на хабра-ссылку на оригинал. Интересно, что помешало оформить хабра-переводом?
Стоит отметить, что предлагаемая модель ветвления подходит не исключительно для Git, но и Mercurial, а скорее всего и большинству распределенных систем контроля версий
kossmak
+1
Для таких ресурсов как раз и придумывается наипростейшая маска наименьшей защищенности.
Ex: passHA6p
kossmak
+1
Ивините, промахнулся, минусанул комментарий. Исправил кармой.
kossmak
+2
Толково изложили вещи, о которых уже многие догадались или догадывались. Отдельное спасибо за розовую обезьяну и картинку с блондинкой в пустыне) яркие образы.
kossmak
+1
Да, пожалуй, не хватает структуры, резюме, выводов.
kossmak
–2
По-моему, кто-то путает смыслы асинхронного криптования и ЭЦП.
kossmak
+7
Под заголовком "Практический Agile" ожидал увидеть пример организации, схемки, истории из жизни что ли. А читается легко, спасибо.
kossmak
0
> У меня постоянно в голове перекручиваются, как в мясорубке, тонные информации…

У меня тоже тараканов много, и все шевелятся, и часто засыпается с трудом.
В конце-концов пришел к режиму «не спать, пока не свалюсь». Неудобство — просыпаться на работу рано.
Больше физических нагрузок — мышечная усталость отлично к ночи срубает.
kossmak
+1
Но жидковато будет для поста. Я бы не решился.
kossmak
0
Олигархи начинают с малого.
kossmak
+2
Я бы сказал, что автор не осветил случаев, когда программа не является БД-клиентом, и на форму кроме корректного сохранения записи наложены другие обязанности.
Нет тут каши =) просто о другом.
То про что говорите вы, по сути является больше диалогом, когда от пользователя нужно не полное описание сущности, должной сохраниться в системе, а всего лишь один-два параметра, без которых дальнейшая работа алгоритма бессмысленна.
kossmak
0
Исправлено, спасибо.
kossmak
0
Мне правда-правда встречался такой перевод, и «джокер» там упоминался. Выбрал «дикая карта» для определенности.
kossmak
0
Скорее тут дело в том, что при удалении экрана больше, чем на n метров, оптическая система глаза настраивается «на бесконечность» и аккомодация (настройка резкости, оптической силы глаза, фокусного расстояния) на разноудаленные «в кино» объекты не происходит, глаз сфокусирован на экран и все что дальше, хрусталик и мышцы расслаблены.
15-20 метров до экрана, по-моему, должно хватить для комфортного просмотра с относительно минимальным вредом для глаз.
kossmak
0
Ну как же? Создается промежуточный словарь, в элементы которого копируются значения уже определенных объектов-переменных. Одни и те же значения таким образом дублируются в памяти.
kossmak
0
Извините, промахнулся, мышой, минус ткнул. Компенсировал кармой.
kossmak
0
Не мне, автору))))
kossmak
0
Исправил, спасибо.
Еще бы с таблицами придумать чего. В оригинале они без бордеров, атрибут <table border="0"> не очень помог.
Хоть бы ширину колонок подправить, чтобы картинки постройнее смотрелись.
kossmak
0
Да, всё ссылки. Методы неизменяемых объектов (например string'ов) возвращают новые экземпляры этих классов.
kossmak
0
Не могу утверждать, но, возможно, автор вскользь говорит о внутренних механизмах интерпретатора Python. Я вижу так, в примере:
= b = 1
= 2
print b
во второй строке «содается новый объект» типа int и назначается ссылка на него. Да, для пользователя в конечном счете это выглядит как работа с переменными по значению. Но с точки зрения «в Python все имена — объекты» для единообразия нужно считать, что присвоение числа создает новый полноценный объект, доступный по адресу-ссылке, со всеми доступными классу int методами и свойствами.
Приняв к сведению такую «идиому», можно прийти к выводу, что в Python нет необходимости, как таковой, управлять способом передачи значений: по ссылке или по значению.
kossmak
0
# вариант 1
if a = b and a >= 0‌:
    res = my_func(1'Joe''long_long_string'10)      
else:
    res = my_func(num=2, descr='another_string', name='Lissy', age=18)

# вариант 2
if a = b and a >= 0‌:
    res = my_func(descr = 'long_long_string2', num = 1, name = 'Bill')   
kossmak
0
Основной акцент всей статьи — удобочитаемость важнее всего. PEP-рулевые решили, что так красивее и практичнее.
Отбивать пробелы между именем и значением аргумента или не отбивать — все-таки на вашей совести остается, интерпретатор проглотит. Но я в этом месте склоняюсь к рекомендации PEP.
Python допускает указание аргументов функции в виде голых значений, но в строгом соответствии с их порядком в объявлении, для удобства после каждой запятой большинство кодеров отбивают пробел:

a = my_func(1, 2, 'arg3')

Но равновозможно и равноправильно допускается указать аргументы поименно. При этом, скорее всего, вы тоже отобьете пробелы после запятых. Визуально по количеству запятых-пробелов можно ухватить глазом, сколько аргументов передано в функцию.
При этом, если отщелкать пробелами еще и "=", то такое быстрое хватание взглядом становится затруднительным, сравните два варианта кода (я нарочно прилепил еще if с несколькими условиями):

def my_func(num, name, descr, age=20):
    ...

# вариант 1
if a = b and a >= 0:
    res = my_func(1, 'Joe', 'long_long_string', 10)      
else:
    res = my_func(num=2, descr='another_string', name='Lissy', age=18)

# вариант 2
if a = b and a >= 0:
    res = my_func(descr = 'long_long_string2', num = 1, name = 'Bill')      

Мне точно удобнее разобрать количество аргументов в первом варианте
kossmak
0
[irony]За родной язык и вправду страшно, и за порог входимости, и за культурный уровень его носителей, если вы про русский. [/irony]
Тут скорее не про участь речь должна быть, а про сферу применения, целевую аудиторию, сообщество, развивающее язык. В случае с Python все это чуточку упорядоченней, более академично что ли.
Не вижу связи между сложностью языка и качеством программистов. «Индусов», кодящих на C++ все хвалят? Мало удачных проектов на Delphi?
Все зависит от конкретных людей.
Python — боле-менее универсальный инструмент для решения различных задач, и в его философию заложено быть удобным к прочтению/пониманию. Не переживайте, язык не только перспективный, но и со светлым будущим.
kossmak
0
Я человек, измученный нарзаном немецким в школе. Знакомство с английским произошло через компьютеры, через них же и обучение. С произношением еще хуже, чем с грамматикой, определенно. Знал, что скорее всего неверно понял название, потому и оставил в заголовке оригинал. Все замечания учтем.
Для себя решил, Pythonista — питонист, Pythoneer — питонер. Созвучно, и недалеко от смысла. «Питонщик» как-то коробит (мойщик, грузчик, гладильщик)
kossmak
0
Нет, такое мог придумать только я) Вариант переводчиков мне понравился меньше. А вам спасибо, сейчас подправлю.
kossmak
+1
Движок Хабра чудеса творит порой.
Я два дня не мог опубликовать перевод из-за того, что скрипт проверки ссылки на оригинал статьи не пропускал URL, содержащий тильду "~".
Чудом догадался подменить ее на шестнадцатеричный код "%7E". Саппорту про багу отписал.
kossmak
–1
Спасибо, пожалуй, последую вашему совету, но чуть позже. Хочется посмотреть, как будет оценен сообществом именно мой труд.
Вообще, в планах было предоставить русскоязычный перевод автору статьи. По адресу http://python.net/~goodger/projects/pycon/2007/idiomatic/ он уже расположил ссылку на французский вариант. Собственно, это меня и подтолкнуло меня приложить старание.
Разумеется, автору будет выслан вариант, скорректированный с учетом замечаний читателей Хабра.
kossmak
0
Если использовать редактор, умеющий заменять табуляции на заданное (настраиваемое) число пробелов, то очень удобно.
Жмешь ли Таб, отщелкиваешь ли пробелы, умный редактор рисует именно пробелы.
В 21-м веке обещали в большинстве редакторов сделать автоотступ:
— по предыдущей строке
— даже по семантике, например, после условия if следующая строка, вложенный блок, будет отбиваться с необходимым сдвигом вправо.
Рекомендую посмотреть на notepad++ и особенно понравился Pyscripter
kossmak
0
Кстати, да, тоже показалось, не самый обычный и простой стиль изложения. Местами очень сложно решить, правильно ли понята мысль автора.