• A/B тесты не нужны*
    +2
    Мне что-то подсказывает, что А/B тестирование — это немного не «посмотрим продажи в январе, потом скруглим кнопку и посмотрим продажи в мае». Как минимум нужно сравнивать в одинаковых условиях. И метрики нужно брать вменяемые. И выборки побольше.
  • Проектирование и рефакторинг: по стопам Эвклида
    +2
    А вот эти Apr(x) и Qd(x) как-нибудь вычисляются, или их наличие обусловлено исключительно флером научности?
  • GoddamnConsole — библиотека для проектирования консольного UI
    +14
    Ух ты, TurboVision!
  • Как подобрать ITшника в России: миф №2, №3
    +11
    Я, конечно, не свежеиспеченный выпускник, но все же с удовольствием послушаю про промышленные языки Smalltalk и Eiffel и их активное применение в «промышленном программировании».
  • MSLibrary. ПРОСТО: объявляем глобальные переменные с помощью класса singleton, для iOS и не только…
    +2
    Жутковато.

    Если вам очень нужно (в 2016 году очень нужно?) объявить глобальную переменную — просто объявите ее в заголовочном файле как extern. После этого в реализации объявляете эту переменную и работаете с ней сколько угодно.
  • Математика на пальцах: мендосинский двигатель и теорема Ирншоу
    +1
    Хотите я вам скину ссылку на видео с вечным двигателем?
  • Комментарий из публикации, перенесённой в черновики.
  • Комментарий из публикации, перенесённой в черновики.
  • Мультиисключение или Хочу поделиться одним интересным архитектурным приемом
    0
    Ну я, если честно, не очень понимаю, почему при вводе неверных креденшалов у вас «дальнейшее выполнение программы невозможно».

    Пользователь облажался в одной букве, а вы в ответ АЛЯРМ ААА ПАНИКА НЕПРАВИЛЬНЫЙ ПАРОЛЬ ВСЕ В ИСКЛЮЧЕНИЕ.

    Ну несерьезно это.
  • Мультиисключение или Хочу поделиться одним интересным архитектурным приемом
    +1
    Я и не утверждаю, что это неудобно. Я утверждаю, что это некорректно.
  • Мультиисключение или Хочу поделиться одним интересным архитектурным приемом
    0
    На это очень тяжело отвечать серьезно, потому что в plain old C именно так и делали, и выглядело это вот так:
    https://www.openssl.org/docs/manmaster/crypto/ERR_error_string.html

    Конечно, подход не самый красивый, но он связан в первую очередь с ограниченим языка. Вы в PHP с объектной моделью можете возвращать некий ValidationResult, который содержит всю необходимую информацию.
  • Мультиисключение или Хочу поделиться одним интересным архитектурным приемом
    +1
    Ok, let's talk 'bout philosophy.

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

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

    Где-то между ними болтается класс ситуаций, которые невозможно распознать напрямую, но в то же время их возможно изолировать без нарушения внутреннего состояния приложения. Например, если вы внезапно получили через web api вмеcто json какой-то странный html с 200 кодом возврата. Понятно, что сделать с ним вы ничего не можете, но совершенно необязательно это разрушает ваше приложение.

    Я утверждаю, что обрабатывать штатные исключительные ситуации необходимо с помощью кодов возврата. Это может быть что угодно, принятое для вашего языка — от getlasterror до монады error. Нештатные исключительные ситуации должны выбрасывать терминальные исключения и завершать работу приложения (с 500 ошибкой для веба). То что болтается посередине обрабатывается исходя из возможности восстановить работоспособность приложения.

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

    Я, конечно, не могу утверждать, что это единственно возможный подход, однако мой опыт подсказывает мне, что он самый оправданный.
  • Мультиисключение или Хочу поделиться одним интересным архитектурным приемом
    +9
    Данные не проходят валидацию — это не исключительная ситуация, поэтому такой код семантически некорректен.
  • Немного размышлений и советов по оптимизации кода на С++
    0
    Я не очень понял насчет RVO. Есть же rvalue reference и move semantics?
  • Большой опрос по алгоритмам
    +4
    Результаты опроса следует читать так: 96% людей считают, что могут реализовать binary search. Впрочем, написанный ими код наверное будет иногда работать https://habrahabr.ru/post/203398/
  • А нужно ли знать программисту алгоритмы?
    0
    Апологеты MVP с вами радикально несогласны. Впрочем, я тоже, так как вначале должен быть proof of concept, а для него допустимо использовать любые средства, вплоть до вероятностных алгоритмов.
  • KTV. Грабли на пути к маршалингу
    0
    А в чем фетиш писать все на Свифте? ObjC никуда не делся и в силу его природы работать с ним для парсинга JSON-подобных структур куда проще.
  • А нужно ли знать программисту алгоритмы?
    +4
    Вообще говоря, было бы очень неплохо. Не в подробностях, но хотя бы в общих чертах.
  • А нужно ли знать программисту алгоритмы?
    +3
    В той БД, которую вы используете каждый день — какие-то другие вещи, а не алгоритмы?

    Думаю, пора выпускать дистрибутивы БД с надписью «без алгоритмов».
  • А нужно ли знать программисту алгоритмы?
    +6
    Простое решение — собрать мапредьюс из грязи и веток и залить процессорами. Развернуть все абстракции, вытащив наружу только то, что реально нужно — решение сложное.
  • А нужно ли знать программисту алгоритмы?
    +1
    А особенности используемой БД разве не выражаются в тех алгоритмах, которые там используются?
  • А нужно ли знать программисту алгоритмы?
    +22
    А потом получается, что простейшая задача решается с помощью трех десятков слабо совместимых между собой библиотек в соответствии с принципом чайника, из-за чего умудряются тормозить даже на ферме из 20 блейдов не самых чахлых конфигураций. Зато с реактом, редисом и монетизацией через микротранзакции, все как у больших мальчиков.

    До сих пор ситуация в мире разработки напоминала мне *вырезано ибо политика* — любую мало-мальски сложную проблему пытались залить процессорными мощностями, памятью и каналами данных. Они росли и было круто. Теперь они расти перестали и снова пора начинать думать, отсюда все больше требований к математике среди девелоперов.

    Да, конечно, можно и за отпуск собрать мапредьюс в облаке из грязи и веток, однако как же удивляется разработчик, когда понимает, что накладываемый такими решениями оверхед настолько велик, что очищенная от него задача спокойно выполняется на втором пентиуме.
  • Правильная работа с датой и временем
    0
    Это я к вопросу о передачи дат без преобразований и часовых поясов. Довольно шаткое положение, как по мне.
  • Правильная работа с датой и временем
    0
    Сыграем в смешную игру. Давно хотел в нее сыграть, а тут отличный повод выдался.

    Менеджер Иванов, находясь в Москве, 2 марта 2016 года выдал поручение инженеру Петрову, находящемуся в командировке в Хабаровске. Сроком исполнения поручения в системе документооборота Ивановым было установлено 11 марта 2016 года без указания времени.

    Вопрос — какой срок исполнения поручения должен быть отображен Петрову? При решении задачи учитывать, что:
    1. система документооборота, используемая Ивановым и Петровым поддерживает установку времени для поручений;
    2. рабочий день Иванова по нормативным документам — с 9 утра до 6 вечера, рабочий день Петрова не нормирован, график — 2/1, 11 марта у него выходной.
  • Возражения против принятия Coroutines с await в C++17
    +2
    Для этого оператору await нужно знать слишком много — о том, что бывает UI и не-UI поток, о том, что он выполняется в UI потоке и о том, что нужно выполнить специальный код, который «прокрутит» очередь сообщений (для каждой ОС разный).
  • Возражения против принятия Coroutines с await в C++17
    0
    Ох уж эти программисты с их выдуманными терминами. Спасибо.
  • Возражения против принятия Coroutines с await в C++17
    +1
    Можете вкратце пояснить, в чем разница suspend-down и suspend-up моделей? Загуглить сходу не удалось, а из комментариев не вполне понятно.
  • Почему технический долг — это хорошо
    +5
    Вот вроде неплохо, но эти ваши примечания переводчика, да еще и красным выделенные, чтобы не дай Б-же не пропустил ни одну умную мысль (особенно про программистов, которые хотят домой и пива), бесят неимоверно.
  • Рефлексия и кодогенерация в C++
    +7
    Значимые комментарии — это ад, никогда так не делайте.

    Хотите сделать аттрибуты, которые понимает внешний парсер? Используйте пустой макрос типа #define custom_attributes(...)
  • Шаблонный метод
    –4
    А это точно шаблонный метод, а не стратегия?
  • Шизоидный язык программирования самообучающихся алгоритмов «Автор»
    0
    Я вам больше скажу. Любой алгоритм можно преобразовать в поток инструкций с условными переходами. Компиляторы именно этим и занимаются. Но я подозреваю, что у вас нет алгоритма такого преобразования.
  • Шизоидный язык программирования самообучающихся алгоритмов «Автор»
    +9
    Матерь Б-жья, вот это шиза.

    А вы точно осваивали все известные ныне языки программирования? А то у вас язык си-подобный, файлы TXT, AST-деревом и не пахнет, плюс всякие там rozpad.

    Я тут кстати только что на Ruby получил доступ к исходному коду исполняемого скрипта и распарсил его, получив AST. Дальше я могу его изменить, собрать заново и запустить, причем безо всякого rozpad'а. Что я делаю не так?
  • Реализуем свой dropDown ViewController (aka iOS 8 Mail app) в 200 строк
    +1
    Не знаю, что там насчет вуду и хаков, свиззлинг — вполне нормальное средство при соблюдении нескольких условий. Необходимо перекрывать только публичные методы, не изменять собственного состояния объекта и однократно вызывать оригинальный метод in any case.

    В отличие от этого подхода, перекрытие через категории — это undefined behavior.
  • Скорректированный скользящий экзамен, соклассификаторы, фрактальные классификаторы и локальная вероятность ошибки
    +3
    Не могли бы вы сделать что-нибудь, чтобы формулы стали чуть более человекочитаемыми, пожалуйста? Сейчас для меня довольно затруднительно их разобрать, думаю остальные испытывают сходные проблемы.
  • Iosevka — ещё один шрифт для кодинга
    +21
    Жутковатый шрифт. Очень узкий и клаустрофобичный, читать его тяжело. Начертание символов неприятное.
  • Приложение для apps.com на PHP — особенности и грабли
    +3
    Первый раз слышу о такой радости, зашел посмотреть, что же это такое и зачем нужно (из статьи ничего не понятно), а там такая радость:
    The identity of this website has not been verified.
    • Server's certificate does not match the URL.

    Вот и думаю.
  • Нужен ли C#-у «state»?
    0
    А живой рабочий пример есть, когда это бывает полезно?
  • Как я писал гитарный тюнер под iOs на Swift. А так же немного о ЦОС, стоячих волнах и как добиться точности в ±0,1Гц
    +9
    А440 – это не «ми», а «ля» первой октавы, простите.
  • Исследование Yandex – правда или вымысел?
    +15
    Потому что ради вас троих нет никакого смысла их добавлять, вероятно. Вы вполне можете указать «другое».
  • Примеры тестовых заданий для iOS-разработчиков
    +1
    И каковы зарплатные ожидания в местах с подобными тестовыми заданиями, если не секрет?