Pull to refresh
24
0
Влад Старостин @savados

User

Send message
Музыка делалась для гиков? Почитайте любую книгу про 19 век, там основное развлечение — опера да балет. Аншлаги были адские. Это что, все гики? Кто ж тогда не гики были?

Исполнение музыки стоило дорого, ибо не было звукозаписи. Музыку могли слушать только аристократы. Аристократы имели музыкальное образование. Человеку с музыкальном образованием нравится слушать качественную музыку.

Появились граммофоны. Исполнение музыки удешевилось. Музыку начало слушать большинство людей. У большинства людей нет музыкального образования. Большинству людей нравится слушать примитивную музыку.

Без всяких гиков и копирастов объясняется.
Ну так это прекрасная новость. Вы очень продуктивно работаете с текстом и без всякого Вима. И Вим вам не нужен. Как бонус вы экономите месяц времени, который можете потратить на другие, более полезные дела.

Никто ж не говорит «Вим — в каждый дом». Кому нравится — тот пользуется, кому не нравится — тот не пользуется. Мне нравится.

Что касается вашего примера, то мне, например, неприятно было бы жать 10 раз вверх, а потом 20 раз вниз (держа шифт). А вот мозговых усилий мне как-то не жалко. Каждому — свой инструмент.
Еще удобно удалять по номерам строк. Чтобы удалить с 5-й по 10-ю (включительно):

:5,10d
Скажите, пожалуйста, чем плох следующий велосипед. Выбираем некий шаг, например, 5%. Выбираем элементы, где процент положительных оценок ⊂ (95—100]. Сортируем по количеству положительных оценок. То же — для диапазона (90—95]. И так далее.

Чем меньше шаг, тем выше точность. Из плюсов вижу интуитивную понятность, какие минусы?
История #N.

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

“Мартин, — раздался голос начальника, заходящего к нему в кабинет. – Нам нужно поговорить. Это насчет того хренового происшествия”.

Мартин зашел в кабинет начальника и, удостоверившись, что его никто не слышит, признался, что тут ничего нельзя поделать.

Начальник был раздосадован, но Мартин объяснил, что их текущее решение никуда не годится, так что все логично.

“Ах, если бы использовали решения компании NetWrix”, — вздохнул Мартин.

“Да, Мартин, да”, — согласился начальник.

Какие возможные решения существуют, чтобы не допускать такого впредь?

Дисклеймер: У NetWrix имеются такие решения.
Итерации — это инструмент. Который может хорошо подходить для решения задачи, а может и плохо. Это, впрочем, относится почти ко всем вещам, которые «рулят».

Во-первых, нужно «сразу спланировать большую и сложную систему решения задачи» в случае, когда у нас нет второй попытки. Например, так можно готовиться к сложному экзамену, собеседованию, публичному выступлению, военной операции, видеосъемке единичного явления и кучи других вещей. Во-вторых, когда цена каждой новой итерации слишком высока — планирование бюджета страны, например. Это с ходу, если хотите, придумаю и «в-третьих», и «в-четвертых».

Возьмем человека, который мечтает выучить английский язык. Он пытается сразу взяться за чтение книг или фильмов, осознает, сколько ему нужно трудиться, и бросает задачу. Задача кажется неразрешимой и большой.

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


Давайте лучше возьмем ребенка, который хочет научиться играть на пианино. Он идет в музыкалку, где все плевать хотели на какие-то итерации, и, о чудо, выучивается хорошо играть. Это, кстати, в-третьих: когда существуется многократно проверенный неитерационный подход решения типовой задачи.

И еще, причем тут шахматы? В шахматах как раз и нужно «сразу спланировать большую и сложную систему решения задачи», причем в двух смыслах: как план игры и как конкретные варианты. Если, конечно, это не адский блиц и играешь серьезно. Можете показать, как можно играть в шахматы итерациями?
Вот и вот хорошие способы выйти «за рамки базы» в Last.fm
Ладно, это уже начинает надоедать. Остается только порадоваться, что есть-таки люди, которые в ладах с логикой и мыслят прямолинейно. Иначе мы бы до сих пор охотились на мамонтов.
«Если вы считаете, что логика может быть только та, которой учат в техническом вузе на, то вы ошибаетесь». :-)
Ок, откуда следует это? Как это вообще коррелирует с многозадачностью?
Во-первых, это не факты. Я вам уже третий раз говорю, что на мамонтов не охотились в одиночку, а вы упорно продолжаете звать свое незнание фактом.

Во-вторых, я вас третий же раз прошу объяснить, почему «эти факты приводят к описанным выводам». Я ведь готов признать, что вы используете логику, которой нигде не учат. Я готов признать, что мыслить тут надо не прямолинейно, а по какой-то особой траектории, ок. Но объяснить-то можно?

Откуда вы взяли, что мужчине нужно работать одному?

Вот из этой вашей фразы: «обеспечьте программисту возможность в течение долгого времени быть одному и не отвлекать его от работы». Кстати, опять же без обид, фраза неграмотная, «обеспечьте программисту возможность… не отвлекать его от работы» (или «обеспечьте программисту возможность… и не отвлекать его от работы»).
Ок, обменялись впечатлениями друг о друге, теперь по существу.

Почему из того, что надо долго готовиться, следует, что мужчина не может выполнять несколько дел одновременно?

Почему из того, что мужчина не многозадачен, следует, что ему надо работать одному?

Как это согласуется с историческим фактом, что на мамонтов охотились коллективом?
Без обид, но по-моему у автора сильные проблемы с логикой.

Чтобы охотиться, мужчина очень долго готовился, точил топор, готовил стрелы и лук. Потом он долго сидел в засаде и наконец делал выстрел или наносил удар. Эта особенность поведения трансформировалась и дожила до наших дней… В отличие от женщины мужчина не может выполнять несколько дел одновременно.

Где здесь связь? Почему из того, что надо долго готовиться, следует, что мужчина не может выполнять несколько дел одновременно? Может быть он одной рукой точил топор, а другой — готовил стрелы?

Отсюда следует 1-й вывод: обеспечьте программисту возможность в течение долгого времени быть одному и не отвлекать его от работы.

Да не следует же! Из того, что мужчина многозадачен, никак не может следовать, что ему надо работать одному. Где здесь логика вообще? Плюс это неправда. Вы представляете, какого размера был мамонт? Вы всерьез полагаете, что на него охотились одиночки? Мамонтов ловили в ловушки (которые делали вместе), либо вместе же окружали и убивали.

После долгого сидения охотник показывал чудеса доблести и отваги. 2-й вывод: обеспечьте возможность признания достижений программиста внутри организации. Необходимо организовывать периодически сборища, где программисты будут обсуждать технологии и показывать себя перед другими.

Опять же, как это выводится? Как из «Петя увидел черепаху» можно вывести «Обязательно хвалите Петю каждый раз, как он видит черепаху»?..

Если слишком долго готовиться, то мамонт убежит.

У вас мужчина сидит в засаде. Куда от него убежит мамонт?

Из-за… способности… начинающий программист не может...

Ок.

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

Ссылку на исследование в студию.
И да, я не совсем верно понял задание. :-) Мое решение вернет первый символ, сразу перед которым нет такого же символа, и сразу после которого нет такого же символа, например для 'aabbccaf' вернет 'a'. Но задание сформулировано не очень четко.
По поводу первого не повторяющегося символа. Не уверен, что самое быстрое решение, но зато короткое и элегантное.

from itertools import groupby

def non_repeating(line):
    for k, g in groupby(line):
        g_list = list(g)
        if len(g_list) == 1:
            return g_list[0]
    return None
А вообще, если вы так гонитесь за скоростью, перепишите первый вариант на sed, по скорости это решение порвет 99% других (на любом языке), а по соотношению (скорость) / (скорость разработки) — так и все 100%.
Если вам нужно заменить символы одного алфавита на соответствующие им символы другого алфавита. можно обойтись и без циклов, и без регулярок. Есть же string.translate и его верный друг string.maketrans.

Для замен, в которых участвую строки длиннее одного символа все-так понадобится цикл. Но таких замен сильно меньше односимвольных.
1. Пароль действительно нельзя сообщить быстро, именно поэтому его очень тяжело запомнить. Придумать длинный словесный пароль элементарно: «ехали1медведи2на3велосипеде», я свой шестизначный символьный пароль я забыл через пару секунд.
2. Ввести пароль с клавиатуры и нажать Enter — секундное дело. Тут же вы заставите пользователя разгадывать капчу. Ладно еще при регистрации это неизбежное (?) зло, но при каждом логине!
3. Пароль элементарно подсматривается из-за спины.
По поводу 2, тут, скорее, дело вкуса (поэтому «лучше», а не «нужно» :-)), но во view этому коду точно не место. Можно в менеджер, можно в отдельный сериализатор. Даже если его предполагается использовать один раз, есть и другие причины. Например, чтобы протестировать, как работает сериализация, вам нужно «прогнать» view полностью, с контекстом, реквестом и прочим. Если вынести его куда-нибудь, тестирование становится приятным. Документировать код проще, глядя на менеджер, я сразу вижу, что он сериализуется в json, тут логика не так ясна. Сильное связывание опять же, получается, что я не могу сериализовать объект без атрибута name.

Плюс менеджеры не менее «реюзабельны», чем CBV, тот самый межпроектный DRY.

> Мне нравится идея выделения отдельной части представления, ответственной за конечное преобразование данных в ответ.
В вашем случае это HttpResponse(data, content_type='application/json'). Если очень необходимо это выделить, то почему бы не так?
Примерно так:

from django.core import serializers

class MyModelManager(models.Manager):
    def to_json(self):
        return serializers.serialize('json', self.all(), fields=('name',), ensure_ascii=False)

class MyModel(models.Model):
    # всякие поля тут
    # ...
    objects = MyModelManager()

Ну и затем вызывать MyModel.objects.to_json().

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity