• 0
    Что такое информационная архитектура? Торсионная сепулька?
    Как писать нормальные тексты на английском, не будучи носителем языка
  • 0
    Профильное образование полезно, но не критично. А «не желают слушать» — это как раз отсутствие уважения.
    Узники системы
  • 0
    Если мы не говорим про тривиальные изменения, то менеджер не может знать что творится у разработчиков, даже если он сам из бывших разработчиков. Потому что очень часто возражения или предложения идут не от экзистенциального, а от очень практичного. Может быть, так, что для сдвига иконки на один пиксел надо переписать пол-приложения, потому что используемый фреймворк такого не умеет. И толковый менеджер должен в этой ситуации не «продавить», а спросить «а как мы можем сделать чтобы это было на один пиксел левее?». И, возможно, окажется, что проще перерисовать иконку за 5 минут, чем ломать архитектуру на протяжении двух месяцев.

    Вот чтобы спросить — вот тут вот уважение и нужно. А у разработчиков должно быть уважение к менеджеру, чтобы не бояться говорить «можно вот так вот», даже если «вот так вот» грозит ужасом и авралами (распространённый метод саботажа «с низу» — не рассказывать про возможные решения, если решения грозят геморроем на местах).

    Второй признак токсичности (кроме неуважения) — это когда разрабочик не может сказать «я этого не знаю». Когда все всё знают и все чёткие ровные, обычно образуется крайне резкая и жёсткая среда, при которой удачные технические ршения не выживают.
    Узники системы
  • 0

    Да, разумеется. Менеджер представляет нетехнические ограничения (деньги, лицензии, пожелания клиента о странном и т.д.). Если программист игнорирует и не слушает такую информацию от менеджера, то это файл уже программиста. А основной причиной "не слушает" являетcя отсутствие уважения.

    Узники системы
  • +7
    Если менеджер не уважает программистов, которые пишут код, то не имеет значения, что внутри — ватерфалл, аджайл или телефонное право.

    Если уважает — аналогично.

    То есть проблема токсичных компаний состоит в том, что менеджер боится программистов (которые знают больше него), а программисты не чувствуют уважения (т.к. менеджер из страха вынужен использовать формальные метрики и игнорировать всё, что говорят программисты).

    Мораль: если ты менеджер — слушай программистов и уважай то, что они говорят.
    Если ты программист — объясняй, а если не слушают — ищи другую работу.
    Если ты начальник над менеджером (начальник отдела/CTO/CEO/etc) — гони прочь менеджера, который не уважает программистов.
    Узники системы
  • +1
    Лучше багрепорт. PartOf — отличная штука, если в ней есть дырки, то их лучше починить, чем плюнуть и забить.
    Автомонтирование файловых систем с systemd
  • 0
    Выглядит как баг. Сконструировать минимальный кейс и заслать в багтрекер: https://github.com/systemd/systemd/issues
    Автомонтирование файловых систем с systemd
  • 0
    Очевидно, что ДАЖЕ у GM есть какие-то компьютерные системы. Но есть большая разница, когда бизнес строится вокруг компьютерных систем, и когда компьютерные системы строятся вокруг бизнеса.
    Собеседования, рынок труда и прочее в городе Москве обр. лета 7525
  • 0
    Я не могу понять ваш пример, потому что он не похож на питон код, и python3 со мной в этом согласен.

    Второй пример, с password_min_length — либо у нас это статичное, и мы пишем self.min_length = DatabaseConfig.password_min_length, либо, если это берётся из базы данных, то мы пишем так:

    def __init__(self, db):
    self.min_length = db.password_min_length


    Но я всё ещё не понимаю, при чём тут паттерны. Лично у меня от всего этого есть ощущение, что для борьбы со сложностью авторы разводят ещё большую сложность.
    Интерфейс vs interface
  • +2
    Описана карьера офисного админа. Очевидно, именно так, как написано выше. И всякие облачные сервисы (вроде гульдоков и 365) стремительно едят рабочие места для админов «чуть выше эникея». Эникеить всё ещё надо, но всё меньше шаманства, и всё больше малых/чуть больше малых контор прекрасно живут без админов.

    А вот за пределами офисного админства работа разливается рекой. Хостинги и хостеры (от shared-хостингов до больших DC), миллионы софтварных контор, которым нужно не 1C поддерживать и мышки протирать, а деплоить и мейнтенить самописный софт…

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

    Под IT-услугами подразумевается не «услуги ИТ», а все услуги и бизнес-процессы, которые делаются с помощью софта. Просто подумайте, у кого больше админов: у General Motors (которая отгружает апдейты с помощью гаечного ключа) или у Tesla, которая их отгружает OTA?
    Собеседования, рынок труда и прочее в городе Москве обр. лета 7525
  • +3
    Основная проблема с аналоговостью состоит в том, что дав игроку много свободы, надо быть к этому готовым. Если игрок сделал что-то разумное (с точки зрения сторилайна), но «кто-то» не подумал про такой вариант, то это разрушит погружение куда больше, чем дискретный выбор.

    Я помню, какой-то копеечный escape room, начинающийся в тюрьме. Герой находит нож, находит вентиляционное отверстие с плоскими винтами… и тут герой комплейнится, что ему нужна отвёртка.

    Имея в руках хороший нож, который заточен только с одной стороны, не открутить (не попытаться?) винты… Фейл.

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

    Чтобы то же самое сделать с этическим выбором нужно сделать «этический симулятор», который может высчитать последствия действия героя. Например, дать в морду если герой сильно долго вертится возле кого-то, или заагриться, если герой крадётся (хотя простой проход мимо не будет агрить).

    Но чтобы такое сделать, нужно для начала придумать что-то уровня механики Ньютона для этики.
    Аналоговый мир и его иллюзия
  • –2
    В питоне принцип «клиенту не нужно иметь информации о конкретных типах объектов, которыми он пользуется, при условии, что все они имеют ожидаемый клиентом интерфейс;» реализован by default. Утиная типизация, всё такое.

    Если у нас есть .get, то нам всё равно у какого он типа. Если у метода есть .next(), то мы можем его итерировать.

    Пример с is_password_valid выглядит очень уродливо. Для таких вещей есть @staticmethod, а функция нас не «обманывает», так как в нормальном режиме (как член класса) она имеет ещё и self в аргументах. Если же self не нужен (для удобства тестирования) — то как раз @staticmethod поможет.

    90% процентов джавовских паттернов разработки — всего лишь борьба с уродствами самой java. В питоне оно из коробки или реализуется в пол-пинка. В том числе опциональные аргументы, keyword-аргументы, или вот это, вот, с «интерфейсами».
    Интерфейс vs interface
  • 0
    Я не до конца понял, где у вас хранятся данные. Прямо в файловой системе докера?
    Докеризация высокодоступного Postgres кластера
  • 0
    А если офис убирают каждое утро?
    Нематериальная мотивация — что туда включено
  • +7
    Ещё как может. Если мы не рассматриваем абстрактное «кровью и потом» (серьёзно? Айтишник, зарабатывающий уважение кровью? Брр...), то уважение зарабатывают хорошим решением сложных проблем.

    И у компании есть все возможности это предоставить или нет.
    — Во-первых достойные задачи для решения
    — Во-вторых время на поиск красивого и хорошо работающего решения (а не «надо вчера», и «некогда красоты разводить надо думать»)
    — В третьих в способности принять предложенное решение (нет, нам не нужны новомодные средства автоматизации, у нас и так есть 300 секретарш для заполнения полей)
    — В четвёртых в толерантности к ошибкам. Любой поиск решения чреват тем, что может не получиться. Время и ресурсы потрачены, результата нет. Если в компании токсичная атмосфера, то сказать «мдя, какая-то фигня получилась» без ущерба для своей карьеры нельзя.
    — Уважение коллег бывает разным. Если бухгалтер уважает эникейщика (который ей всё чинит) и не уважает программистов, занятых нейронными сетями (потому что они какую-то фигню всё время обсуждают), то это проблемы бухгалтера. А если «программист, занятый нейронными сетями» находится в окружении только бухгалтеров и эникейщиков, то чьё он уважение зарабатывать будет?

    Так что компания очень и очень влияет на возможность заработать уважение коллег.

    А при трудоустройстве эти моменты как раз и надо оценивать. Если, конечно, эти вопросы входят в круг интересов.
    Нематериальная мотивация — что туда включено
  • 0
    Вы описываете другой случай: по синтаксису функция должна возвращать значение, а она делает сайд-эффект. В принципе, это вопиюще, но все привыкли.

    А вот к обратному не привыкли: с точки зрения системы типов у меня написано, что бесконечный цикл возвращает значение. Это что-то из матанализа — после того, как мы n устремили к бесконечности, мы получаем результат и добавляем его к значению другой величины.
    Выпуск Rust 1.19
  • 0
    Разница в том, что x86 вылизывают две компании, а арм — куча конкурирующих. Не факт, что вылизывание будет лучше, но что будет дешевле, чем в случае олигополии — факт.
    Быстрое удаление пробелов из строк на процессорах ARM — альтернативный анализ
  • 0
    С интересом хочу послушать про процесс покупки уважения у коллег. В этом-то и смысл пирамиды — на следующем слое решаются проблемы, которые невозможно решить «всё большим удовлетворением» нижележащих.
    Нематериальная мотивация — что туда включено
  • 0
    Я собеседовал достаточно много людей, если мне такой список выдвинут и ни разу не попытаюся выяснить, с чем нужно работать (технологии, задачи), то такой человек будет просто не интересен.
    Нематериальная мотивация — что туда включено
  • +13
    До чего же уныл чеклист у вас…

    Я обычно начинаю с того, что пытаюсь понять, будет ли интересной работа. Зачем мне ДМС, если работа будет скучна и на неё надо будет «тащиться»?
    Следующее: возможность коммитить в тематический opensource (отдавать патчи в апстрим) и публиковать в opensource случайно образовавшиеся куски кода, не имеющие прямого business value для компании (всякие там роли ансибла, служебные утилиты)

    Ну и график свободный, или никак.
    Нематериальная мотивация — что туда включено
  • 0
    Я это понимаю, но экзестенциальная проблема остаётся: loop возвращает значение, не смотря на то, что он бесконечный цикл.
    Выпуск Rust 1.19
  • +2
    Есть ещё третий тип: Я никогда этого не делал, на чём мне его сделать? Выбираю…
    Выпуск Rust 1.19
  • 0
    loop, возвращающий значение, это что-то взрывающее мозг.

    let the_answer_to_everything: i8 = loop{ if false {break 42;}};

    То есть мы записываем значение 42 в the_answer_to_everything, но только никогда.
    Выпуск Rust 1.19
  • +1
    За использование барицентра — респект. Хотя у меня вопрос: будет ли совмещение барицентров двух любых фигур всегда ассоциироваться с «отцентрировано»?

    Второй вопрос: если изображение (вложенное) более чем одноцветное, надо ли учитывать цвет (яркость?) как коэфицент при вычислении «центра тяжести»?
    Оптическое выравнивание и пользовательские интерфейсы
  • 0
    Эх, по этому я и прошу — дайте возможность открыть ссылку в другой программе.
    Дели — сокращай, или как мы делали мобильный 2ГИС Онлайн
  • +2
    Допустим, такой код найден. Злоумышленник цедит деньги и через ближайший обменник выводит их во что-то другое. Постепенно начинают расходиться слухи о том, что «воруют деньги». Курс начинает падать. Злоумышленник увеличивает «норму отбора», слухи становятся паническими, биржи начинают отказываться принимать валюту, злоумышленник сливает сколько может через оставшиеся биржи, после чего продаёт за сколько-то (другой валюты) уязвимость какому-нибудь zero-day трейдеру или security researcher'у.

    После публикации баг исправляют, но…

    С потерянными деньгами-то что делать? Отменять продажу на бирже? Биржи против. Делать хардфорк всех валют, в которые были выведены деньги? Может, сразу вселенную форкнуть?
    Критическая уязвимость в multisig кошельке Parity, хакерами выведен $31 миллион в ethereum (обновлено)
  • +1
    «проаудировать» — это доказать, что в нём нет багов?

    (запасаюсь попкорном) Ну, расскажите мне про «проаудирование» кода указанных систем, после которых там не остаётся багов.

    Если остаются — возвращаемся к вопросу о том, что делать, если в коде хардфорка баг, который эксплуатируется.
    Критическая уязвимость в multisig кошельке Parity, хакерами выведен $31 миллион в ethereum (обновлено)
  • 0
    При этом предполагается, что уж на этот раз точно в коде не будет ошибок. В коде выбора authority, например.
    Критическая уязвимость в multisig кошельке Parity, хакерами выведен $31 миллион в ethereum (обновлено)
  • +3
    Легко проводить хардфорки == центральная authority, способная «блокировать активы в случае обнаружения подозрительной активности и в связи с отказом предоставить форму УФН-БМ-42 бис 4 в отведённый законом срок в отдел борьбы с экономической активностью ЦБ УРФ».

    Нафиг-нефиг.
    Критическая уязвимость в multisig кошельке Parity, хакерами выведен $31 миллион в ethereum (обновлено)
  • 0
    Спасибо за информацию, но на Кипре оно только маршрут показывает, без навигации. Либо особенность Кипра, либо баг.
    Дели — сокращай, или как мы делали мобильный 2ГИС Онлайн
  • +1
    Вместо этого можно прекрасно звонить...

    Seriously? Прекрасно звонить, мелодично разглядывать, ароматно ощупывать…
    Локализацию можно автоматизировать: опыт использования Lokalise в боевых условиях
  • 0
    У меня к вам есть большущая просьба: 2Gis не умеет делать навигацию и любим не за это. Дайте возможность открывать локацию в навигаторе. Нашли организацию через 2Gis, ткнули «открыть» в навигаторе, и едем.

    А сейчас либо вручную искать по карте место, либо ехать по маршруту без, собственно, голосовой навигации (и перепрокладки маршрута).
    Дели — сокращай, или как мы делали мобильный 2ГИС Онлайн
  • 0
    Главная проблема в том, что в С++ — МОЖНО. Можно почти всё. В том числе стрелять себе в ногу без предупреждения по модели С. В этом смысле совместимость с С — фатальна для языка, т.к. компилятор не имеет возможности защитить человека от ошибок, и уровень дисциплины что в С, что в С++ оказывается одинаковый.
    Разыменование нулевых указателей больше не проблема
  • +2
    Сменил. Всё равно не помогает. Наверное, дело в том, что sRGB не покрывает все цвета, которые я вижу.

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

    Что делать? А ведь это официальный вырвиглазный розовый с малиновым оттенком.
    Вы ни черта не понимаете в цветах
  • +2
    А ещё учёные называются. Давно же описан криптографический протокол для измерения длины, позволяющий посчитать среднюю (или общую) длину без раскрытия информации о размерах у каждого из участников.

    Алгоритм простой:
    — Первый участник придумывает очень большое случайное число. Например, 7969080087
    — Первый участник проводит измерения и добавляет размер к этому числу.
    — Первый участник сообщает сумму второму участнику.
    — N-ый участник проводит измерения и добавляет их к полученному числу.
    — N-ый участник сообщает результатат N+1 участнику.

    Последний участник сообщает результат первому участнику, тот вычитает исходное число и получает суммарную длину. Если её поделить на число участников — будет средняя длина, если не делить — совокупная длина.
    Как мы упоролись и откалибровали кофе-машину на спектрофотометре
  • +1
    Когда вы центрифугировали кофе, вы приводили к тому, что эмульсия разделяется на фракции. Из кофе при экстракции выделяется некоторое количество маслянистых веществ, и, насколько я понимаю, они сильно влияют на crema. Как вы учитывали наличие/отсутствие/избыток маслянистых веществ?

    Я в экспериментах с ручной эспрессо-машиной доводил экстракцию до уровня, когда у меня маслянистые капли плавали сверху — и это было ужасно невкусно.

    Аналогично невкусно если ничего жирного из кофе не выдавливается, то есть хороший кофе требует баланса. И его анализ должен учитывать.
    Как мы упоролись и откалибровали кофе-машину на спектрофотометре
  • +3
    Когда я читал первый раз про AFL, я не мог сдержать мысли «ну очевидно же!». Хотя на самом деле не очевидно, а настолько невероятно круто, что один раз прочитав идею, уже не можешь исключить её из основ мировоззрения. Не просто fuzz, а fuzz, пытающийся пробраться поглубже в код. Гениально.
    Динамическая инструментация — не просто, а тривиально*: пишем yet another инструментацию для American Fuzzy Lop
  • 0
    Я попытался подобрать бордовый цвет и обнаружил, что RGB моё видение бордового цвета не покрывает. Точнее, содержит только тоскливые разновидности. То же касается чёрного, белого, многих оттенков зелёного, розового и фиолетового.
    Вы ни черта не понимаете в цветах
  • +1
    Статическая типизация? Схема?
    Применение принципа poka-yoke в программировании на примере PHP