• Совмещение труда в разработке программного обеспечения

    • Tutorial
    Думаю, многим хабролюдям довелось побывать в роли человека-оркестра в таких самобытных конторках, где и программу разработать, самому же к ней инструкцию написать, установить у всех на ПК и далее активно принимать участие в разборе ситуаций «я тут весь день потратила, а оно куда-то всё пропало», меняя между делом картриджи и вытаскивая бумагу в (из) принтерах(-ов).



    Противоположность этому – работа в крупных компаниях с высоким уровнем зрелости процессов (типа CMMI 3 и выше), где специалист с некоторого момента начинает ощущать себя мелким винтиком в большом механизме, выполняющим кусок работы, не особо понимая, для чего это, кто это будет эксплуатировать, с какими проблемами сталкивается сейчас и будет сталкиваться после внедрения программного продукта.

    Где же золотая середина, баланс базара и матрицы? Навряд ли в обозримом будущем появится однозначный универсальный ответ на этот вопрос. Но есть принципы планирования и совершенствования совмещения труда на отдельно взятом производстве (организации), которые и представлены в данной статье с упором на сферу разработки программного обеспечения.

    Мне поисковики на запросы типа «совмещение труда» выдают в топе всевозможные статьи для кадровиков, объясняющих, каким образом правильно оформить совмещение труда, не нарушая Трудовой кодекс РФ. Мне же хочется в данной статье раскрыть тему с позиции экономики труда, организации производственных отношений, планирования разделения и кооперации труда на предприятии.

    После прочтения прошу всех пройти опрос.
    Читать дальше →
  • Моноиды, полугруппы и все-все-все

    • Перевод

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


    Mark Seeman расскажет о функциональном программировании просто и быстро. Для этого он начал писать цикл статей, посвященных связи между паттернами проектирования и теорией категорий. Любой ООПшник, у которого есть 15 минут свободного времени, сможет заполучить в свои руки принципиально новый набор идей и инсайтов, касающихся не только функциональщины, но и правильного объектно-ориентированного дизайна. Решающим фактором является то, что все примеры — это реальный код на C#, F# и Haskell. Этот хабрапост — перевод самого начала цикла, первых трех статей, слитых воедино для удобства понимания.


    Кроме того, с Марком можно пообщаться вживую, посетив конференцию DotNext 2017 Moscow, которая состоится 12-13 ноября 2017 г. в Москве, в «Славянская Рэдиссон». Марк прочитает доклад на тему «From dependency injection to dependency rejection». Билеты можно взять здесь.

    Читать дальше →
  • Деловая переписка на английском языке: фразы и советы

      Соловьева Елена, менеджер проектов в компании Лаборатория Касперского, специально для блога Нетологии поделилась советами о том, как вести деловую переписку с иностранными коллегами и партнерами на английском языке. Статья участвует в конкурсе.

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

      Задача становится сложнее, если вы общаетесь на неродном английском языке с представителями других культур. В статье я поделюсь, на что в этом случае обратить внимание, как избежать ошибок и достичь взаимопонимания с иностранными коллегами и партнерами.
      Читать дальше →
    • Необразованная молодёжь. Вавилонские младенцы

      Приветствую тебя, Хабросообщество! Данная статья — плод размышлений о серии статей «Необразованная молодёжь»: "Необразованная молодёжь", "Необразованная молодёжь. Ответ преподавателя-совместителя" и "Необразованная молодёжь. Ответ бизнеса". Содержание во многом опирается на мой личный опыт. Поэтому может показаться, что я пытаюсь вас в чем-то убедить. Но единственная цель моей статьи — попытка осознать суть действительности, в которой я оказался, поделиться некоторыми соображениями. Возможно, после этой публикации, у меня могут появиться некоторые проблемы. Статья затрагивает не только сферу IT, но и некоторые этические аспекты.


      image

      Читать дальше →
    • Рекомендательная система на коленке как средство против экзистенциального кризиса

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

        image

        Рекомендательные системы сильно помогают в выборе, но не везде и не всегда так как хотелось бы. Часто не учитывается семантика содержания. Кроме того, во весь рост встает проблема "длинного хвоста", когда рекомендации сосредоточены только на самых популярных позициях, а интересные, но не очень популярные в массе вещи ими не охвачены.

        Cвой эксперимент в этом направлении я решил начать с поиска интересных текстов взяв для этого довольно небольшое, но пишущее сообщество авторов, которые еще остались на блоговой платформе Живой Журнал. О том как сделать собственную рекомендательную систему а в результате получить еще и помощник в выборе вина на вечер — под катом.
        Читать дальше →
        • +15
        • 5,2k
        • 6
      • Ардуино головного мозга: импульсный датчик положения

        • Tutorial

        Задача на сегодня: как определить угол поворота инкрементального энкодера?


        Сегодня в серии публикаций про ардуино головного мозга коротенькая статья с небольшим экспериментом и парой рецептов. В комментариях к одной из моих прошлых статей меня обвинили в том, что ардуиной подсчитывать импульсы энкодера — фу так делать:
        Оптически энкодер 1000/оборот и ATMega не имеющая аппаратной схемы работы с энкодером (как у серий STM32, например) — это тупик.
        Дальше в комментариях было много теоретизирования, которое лучше пропустить. Давайте лучше попробуем протестировать в железе, насколько это тупик. Для начала, что такое инкрементальный энкодер? Тот, кто помнит эпоху до-оптических мышек, ответ знает точно. Внутри энкодера есть диск с прорезями, вот для наглядности я сделал фотографию диска с пятьюстами прорезями:


        Читать дальше →
      • [CppCon 2017] Matt Godbolt: Что мой компилятор сделал для меня?

        • Tutorial

        Продолжение цикла обзорных статей с конференции CppCon 2017.



        На этот раз очень интересное выступление от автора Compiler Explorer (godbolt.org). Обязательно читать всем, кто для быстроты умножает на 2 с помощью сдвига (по крайней мере, на x86-64). Если вы знакомы с ассемблером x86-64, то можете перемотать до разделов с примерами ("Умножение", "Деление" и т.д). Далее слова автора. Мои комментарии в квадратных скобках курсивом.


        Моя цель сделать так, чтобы вы не боялись ассемблер, это полезная вещь. И использовали его. Не обязательно все время. И я не говорю, что вы должны все бросить и учить ассемблер. Но вы должны уметь просмотреть результат работы компилятора. И когда вы это сделаете, то оцените, как много работы проделал компилятор, и какой он умный.


        Читать дальше →
        • +31
        • 6,8k
        • 3
      • Платформа обмена знаниями и управления авторскими правами. Посмотрим на госзаказ?



          Давеча отечественный государственный заказчик разместил интересный заказ. (Документация)

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


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


          • Целесообразность проекта
          • Необходимость в этом проекте технологии типа "блокчейн"
          • Варианты архитектуры и способы реализации проекта
          • Прочие мысли по этому поводу

          На чём можно ставить кат, под коим я оставлю некоторые свои мысли и интересные выдержки из текста.

          Читать дальше →
        • Умный интернет вещей — кто он и с чем его едят?

            Тренд интернета вещей сейчас набирает всё большую популярность. Чаще всего понятие интернета вещей неразрывно связано с чем-то умным: умные дома, умный транспорт, умные предприятия… Но когда смотришь на эту интеллектуальность внимательнее, то часто разочаровываешься: удаленное управление лампочкой в доме — это в лучшем случае автоматизация, но никак не умный дом. Кажется, что и интернет получается не таким уж и умным… А что же такое умный интернет вещей?
            Читать дальше →
          • Математика игры 2048

            • Перевод

            Часть 1. Расчёт минимального количества ходов для победы с помощью цепей Маркова


            Screenshot of 2048

            После недавнего обновления экран «You win!» игры 2048 начал показывать количество ходов, потребовавшихся для победы, и я задался вопросом: сколько же нужно ходов, чтобы выиграть?

            В первой части статьи мы ответим на этот вопрос, смоделировав игру 2048 в виде цепи Маркова и проанализировав её, чтобы показать, что вне зависимости от мастерства игрока для победы в среднем нужно не менее 938,8 ходов. Это даёт нам неплохое мерило отсчёта — если вы можете выигрывать примерно за такое количество ходов, то неплохо играете.

            Количество ходов, необходимых для победы, зависит от случайности, потому что игра добавляет тайлы 2 и 4 случайным образом. Анализ также покажет, что распределение минимального количества ходов до победы имеет стандартное отклонение в 8,3 хода, и что его общая форма хорошо аппроксимируется смесью биномиальных распределений.
            Читать дальше →