Как стать автором
Обновить
70
Карма
0
Рейтинг
Zaur Nasibov @BasicWolf

Software Engineer

Объясняю Pattern Memento (Снимок)

def set_vacancy_count(count):
    if abs(count) == count:
        self._vacancy_count = count

Ну зачем такое зло? Я понимаю, что это пример, но даже в примере такое писать нельзя. Это же чистой воды "неочевидное поведение". Почему операция сеттера молча проглатывает неправильные значения?

Хакер собрал робота, вскрывающего популярные кодовые замки

Вообще, называть произведения Master "замками" - это неуважение к настоящим замкам. Классика от LockPickingLawyer: https://www.youtube.com/watch?v=bfDPtt-bnAI&t=31s

Нужна ли команде Цель спринта в Scrum?

Вы всё детально разложили по полочкам! Из личного - в зависимости от характера ПО, стоит объяснять заказчику что это не проект типа "сделал-запустил-забыл", а продукт "сделал-запустил-развиваю". И техническая составляющая - большАя часть этого развития, от которой никуда не деться.

P.S. тем паче, частые релизы помогают узнать, не сломалось ли что-то из технической составляющей.

Нужна ли команде Цель спринта в Scrum?

А как вы узнаете, сделали ли вы "то что надо клиенту", или нет, не релизнув? :)

Нужна ли команде Цель спринта в Scrum?

Андрей, я вам очень рекомендую посмотреть это гениальное выступление Кевина Хенней под названием Agility ≠ Speed. А после - выступление Аллена Холуба: The Death of Agile. Они внесут немного хаоса в ваши взгляды и помогут посмотреть на знакомые вещи под другим углом.

Как в Финляндии учат программистов. Tampere University of Technology

В University of Joensuu, 2008м году, на курсе С, домашние задания заливались на сервер и прогонялись через тесты. Но это была личная инициатива и разработка препода.

Как подобрать пароль к аккаунту/странице/сайту

Взрыв из прошлого. Как-будто вернулся в начало 2000-х и открыл свежий номер "Хакера".

Процессы и люди в IT: Иерархия в организации

Спасибо за статью! Вы очень хорошо описали преимущества команд взаимодействие которых основано на доверии и стремлении к выполнению общей цели.
Одна из любимых книг на эту тему - "Turn the ship around". У Дэвида Маргуеэта, капитана атомной подводной лодки, получилось из строго иерархической структуры воспитать культуру доверия, взаимодействия и самостоятельности в принятии решений. Это потребовало немало сил и стоического терпения. Тем не менее, лишь за пол-года лодка прошла путь от "худшего места во всём флоте" до "лучшей во всех отношениях".
Если такая трансформация возможна на подводной лодке, то значит она возможна в любой организации.

Лямбда-функция в Python простыми словами

Питер, вам не стыдно? Давайте ещё статью о том как объявлять переменные опубликуем на Хабре. Более того, в статье даются откровенно вредные советы.

Из коротенького параграфа документации посвящённому лямбда-функциям:

Small anonymous functions can be created with the lambda keyword.  Semantically, they are just syntactic sugar for a normal function definition.

Код вроде этого в корне не верен:

sorted_list = lambda x: (sorted(i) for i in x)
second_largest = lambda x, func: [y[len(y)-2] for y in func(x)]

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

Не уверен насчёт взломать, но программировать так судя по этому комиксу можно:

30 потерянных лет. О российской микроэлектронике до и после 1991 г

Поймите же, история повторяется! Невозможно её изменить оставаясь в порочном круге. Вырезали в начале 1917 "врагов народа" (причём дважды за год!), потом в 30-х стали вырезать других "врагов народа", в 50-х оказалось что те, кто вырезал врагов - тоже враги, а предыдущих надо амнистировать, в 90-х амнистировали тех, кого вырезали в самом начале, потом начали амнистировать тех, кого резали в 50-х...

Чтобы остановить это сумасшедствие нужен другой механизм. Без насилия и ненависти. Иначе всё опять вернётся на круги своя.

Ты еще не знаешь, что враг не столько вне твоих солдат, сколько внутри них. Ты еще, может быть, свалишь Орден, и волна крестьянского бунта забросит тебя на Арканарский трон, ты сравняешь с землей дворянские замки, утопишь баронов в проливе, и восставший народ воздаст тебе все почести, как великому освободителю, и ты будешь добр и мудр — единственный добрый и мудрый человек в твоем королевстве. И по доброте ты станешь раздавать земли своим сподвижникам, а на что сподвижникам земли без крепостных? И завертится колесо в обратную сторону. И хорошо еще будет, если ты успеешь умереть своей смертью и не увидишь появления новых графов и баронов из твоих вчерашних верных бойцов. Так уже бывало, мой славный Арата, и на Земле и на твоей планете.

(А. и Б. Стругацкие, "Трудно быть Богом")

30 потерянных лет. О российской микроэлектронике до и после 1991 г

"Смазкой будут враги народа". Сколько же злости и ненависти в одной только этой фразе! А судьи кто? Навскидку вспоминаю одного такого врага народа, соучастника контрреволюционной троцкистской организации внутри РНИИ, «ставящей своей целью ослабление оборонной мощи в угоду фашизму», С. П. Королёва.

Сотни дружеских глаз смотрят в нашу сторону, как бы успокаивая, теперь все будет хорошо. А меня берет оторопь -- значит, это правда, значит, все они -- арестованы, но ведь это -- катастрофа!
Нас рассаживают на свободные места... Действительно, котелок и ложка, которые в лагере можно было оставить, только отправляясь на кладбище, здесь выглядели бы смешно. Ножи, вилки, тарелки, от которых мы порядком отвыкли, подчеркивают нелепость моих котелка и ложки. Девушка в переднике приносит мясо с макаронами и спрашивает: "Вам (это мне-то, месяц назад именовавшемуся "падло") чай или какао?"

(Леонид Кербер, "Туполевская шарага").

Вы к этому предлагаете вернуться?

30 потерянных лет. О российской микроэлектронике до и после 1991 г

@Lex812, срочно добавьте тег "сарказм"! А то, такими темпами слишком серьёзные камрады заминусуют вашу карму в минус сингулярность.

Мысли о Python 3

Ну вот опять. Куда же вы так торопитесь?

Wikipedia: UTF-8 was designed for backward compatibility with ASCII: the first 128 characters of Unicode, which correspond one-to-one with ASCII, are encoded using a single byte with the same binary value as ASCII, so that valid ASCII text is valid UTF-8-encoded Unicode as well.

Python: потоки по-другому

Ваши начинания в Питоне заслуживают лишь похвалы! Искать собственное решение и видеть его в работе приносит огромное удовольствие. Но вам не кажется, что категорично заявлять о том, что "у Питона с потоками всё плохо" может лишь человек глубоко разбирающийся в предмете?

Вы захотели поделиться с миром своими исследованиями. Отлино! Но тут ваш первый промах - вы показываете своё решение, не сравнивая его с решениями существующими. Открывая вашу статью, я ожидал увидеть:
1. Постановку задачи.
2. Существующие пути её решения и их анализ.
3. Ваше решение.
4. Сравнительный анализ.

Но вместо этого - "Удобнее чем было, так ведь?". А ведь банальное гугление "start thread in decorator" выдаёт вопрос на StackOverflow 2013го года, рецепт с ActiveState 2009го года и ещё огромную кучу материала, в котором вопрос обсасывается со всех сторон.
Куда уместнее ваш код был бы в контексте "ребята, я изучаю Питон и многопоточность и написал вот это, прокомментируйте пожалуйста".

Я надеюсь вы не принимаете вышесказанное близко к сердцу. У меня самого парочка исследовательских проектов и статей о них на Хабре, которые писались именно в таком ключе. Не мы первые, не мы последние :) Успехов вам!

Python: потоки по-другому

Товарищ, вы однако садист. Может немного окунуться в тему о синхронизации потоков, узнать о мьютексах, семафорах, очередях и т.д.? Тот же раздел Threading и concurrent.futures из документации почитать? На последний советую обратить особое внимание, т.к. лёгким движением руки заменив ThreadPoolExecutor на ProcessPoolExecutor можно запускать функции не в потоках, а в процессах!

Ещё желательно обязательно PEP-8.

И если идею первого декоратора (который, кстати, требует большой доработки напильником) ещё можно понять, то что до нас вы пытаетесь донести в остальной простыне кода?

Синтаксис Python — в чем главные подводные камни на первый взгляд легкого ЯП. Перспективы языка

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

def parse(iterator):
    data = (
        combine(*matches)
        for matches in read_triplets(iterator)
    )
    yield from process(data)

def read_triplets(iterator):
    while all((        
        (match_1 := grok1.match(next(iterator, EOF))) != EOF,
        (match_2 := grok2.match(next(iterator, EOF))) != EOF,
        (match_3 := grok3.match(next(iterator, EOF))) != EOF,
    )):
        yield (match_1, match_2, match_3)

Синтаксис Python — в чем главные подводные камни на первый взгляд легкого ЯП. Перспективы языка

Да пожалуйста, если не хотите StopIteration:

class Sentinel: ...

if x := next(foo, Sentinel):
     ...

Только это не нормальный Питоний код же. Вы часто видели, чтобы next() вызывался явным образом, а не в контексте for? Или вам часто приходится кидать StopIteration вручную?

Мне кажется, что вы не до конца рассмотрели идею со StopIteration .
Это исключение появилось как часть протокола итераторов и генераторов. А генераторы можно соединять, даже не имея yield from.
А как в цепочке генераторов проще всего сигнализировать на самый верх, что глубинный генератор истощён? Бросаем исключение, которое просто всплывает наверх.
И да, этот механизм - противоречивый и далеко не самый эффективный. Мне лично больше импонирует функциональный подход Раста. А с другой стороны - этот механизм чертовски простой и проверенный временем :)

Синтаксис Python — в чем главные подводные камни на первый взгляд легкого ЯП. Перспективы языка

А по-моему это гениально. Или как в других языках, будем иметь два метода вместо одного, типа Iterator.hasNext() -> boolи Iterator.next().

Maven vs Gradle различия использования в Java-проектах

И самое обидное, что "vs." так и не раскрыт. Единственное, что понятно из статьи - это что в одном случае используется декларативный pom.xml, в другом - скрипт на groovy / kotlin script. А что же дальше? Какие плюсы у первого и второго?

Информация

В рейтинге
Не участвует
Откуда
Азербайджан
Зарегистрирован
Активность