• Трюк с тригонометрией

    • Translation

    Скорее всего, вам известны следующие соотношения еще со школы:


    $\sin(\alpha + \beta) = \sin\alpha \times \cos\beta + \cos\alpha \times \sin\beta \\ \cos(\alpha + \beta) = \cos\alpha \times \cos\beta - \sin\alpha \times \sin\beta$


    Когда вы в детстве впервые познакомились с этой формулой, скорее всего, вашим первым чувством была боль из-за того, что эту формулу надо запомнить. Это очень плохо, потому что на самом деле вам не нужно запоминать эту формулу — она сама выводится, когда вы поворачиваете треугольник на бумаге. На самом деле, я делаю то же самое, когда записываю эту формулу. Это толкование будет очевидным к середине этой статьи. Но сейчас, чтобы оставить все веселье на потом и отодвинуть момент, когда вы скажете "Эврика!", давайте подумаем, а зачем нам вообще задумываться об этой формуле.


    Читать дальше →
  • «Сгоревшие» сотрудники: есть ли выход?

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

      Но в твоём коллективе есть Грустный Игнат. Игнат всегда мрачный, циничный и уставший. Он отличный специалист, давно работает в компании и знает, как всё устроено. Игнату все хотят помочь. Особенно ты, ведь ты его менеджер. Но, поговорив с Игнатом, ты и сам начинаешь чувствовать, как много вокруг несправедливости. И тоже начинаешь грустить. Но особенно страшно, если грустный Игнат — это ты.

      Что же делать? Как работать с Игнатом? Добро пожаловать под кат!


      Читать дальше →
    • Кругом враги. Как параноику планировать свою работу

        Казалось бы, что сложного может быть в планировании своей работы? Берёшь листок бумаги, записываешь на нём задачи, делаешь — всё просто. Но в реальности планирование почему-то не работает «из коробки».



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

        Сейчас расскажу, почему так происходит. А главное — какие из «250 способов все успевать» работают и за счет каких механизмов нашего мозга.
        Читать дальше →
      • О простых вещах-сложно. Возвращаем девочке птицелет или RTFM по определению пластмасс в домашних условиях

        • Tutorial

        Посвящается моей дорогой маме, по совместительству лучшему эксперту в раздельной сортировке пластмасс...


        Если, дорогой читатель, у тебя никогда в жизни не возникал вопрос "что, черт побери, это за пластмасса такая?", то можешь статью не читать :) Вниманию же всех остальных — очередная статья из серии "положи в закладки!". Сегодня у нас тема — "Определение пластмасс в домашних условиях" и я продолжаю wikipedia-ровать Хабр полезной информацией, которая осталась у меня после выполнения моих научно-технических проектов. Сегодня под кат смело могут идти экологи, биотехнологи, мастера полимерных производств, инженеры по переработке пластмасс и все, кому приходилось сортировать пластики, клеить пластики, паять пластики — автолюбители, самодельщики и прочие заинтересованные лица. Традиционно — минимум FUN-а, максимум информации, полнее русскоязычную мануалку по пластикам просто не найти, "я гарантирую это" :)


        … И наконец-то руки дошли вспомнить советский детский роман 1966 года, в котором практических рекомендаций ребенку "которому нравится химия" гораздо больше чем в современных белорусских учебниках химии вместе взятых.


        Читать дальше →
      • Хакаем CAN шину авто. Виртуальная панель приборов



          В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.

          В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).

          Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.

          В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.

          1. CAN сниффер из Arduino Uno
          2. Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
          3. Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
          4. Софт панели приборов на Python и Kivy (UI framework)
          5. Видео работы цифровой панели приборов на базе Raspberry Pi

          Под катом полная реализация проекта, будет интересно!
          Читать дальше →
        • Монады с точки зрения программистов (и немного теории категорий)

            Введение


            Как узнать, что человек понял, что такое монады? Он сам вам об этом расскажет в первые 5 минут общения и обязательно попробует объяснить. А ещё напишет об этом текст и по возможности где-нибудь его опубликует, чтобы все остальные тоже поняли, что такое монады.


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


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


            Моё изложение во многом основывается на книге Бартоша Милевски "Теория категорий для программистов", которая создавалась как серия блогпостов, доступна в PDF, а недавно вышла в бумаге.


            Примеры приводятся на Haskell, предполагается, что читатель знаком с синтаксисом и основными понятиями языка. В упомянутой книге есть примеры и на С++, можете сравнить чистоту и понятность кода.


            Читать дальше →
          • REST страсти по 200



            Давно я хотел написать эту статью. Все думал — с какой стороны зайти правильнее? Но, вдруг, недавно, на Хабре появилась подобная статья, которая вызвала бурю в стакане. Больше всего меня удивил тот факт, что статью начали вбивать в минуса, хотя она даже не декларировала что-то, а скорее поднимала вопрос об использовании кодов ответа web-сервера в REST. Дебаты разгорелись жаркие. А апофеозом стало то, что статья ушла в черновики… килобайты комментариев, мнений и т.д. просто исчезли. Многие стали кармо-жертвами, считай, ни за что :)

            В общем, именно судьба той статьи побудила меня написать эту. И я очень надеюсь, что она будет полезна и прояснит многое.

            Предупреждаю, все ниже написанное является реальным опытом, а не когнитивной эквилибристикой. И так, погнали.
            Читать дальше →
          • Проблемные личности среди менеджеров проектов

            • Translation


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

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

              Пчеловоды за работой


              Одним из наиболее консервативных видов деятельности человека является пчеловодство!
              С момента изобретения рамочного улья и медогонки ~200 лет назад, прогресс коснулся данной области лишь незначительно.


              Это выразилось в электрификации некоторых процессов выкачки(извлечения) меда да использование зимнего подогрева ульев.


              Между тем, популяция пчел в мире сильно уменьшается — в силу изменения климата, широкого использования химии в сельском хозяйстве и того, что мы до сих пор не знаем чего-же хотят пчелы?


              Мои пропали по первой причине, и это сильно поменяло изначальную концепцию "умного улья"


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


              Ну и конечно-же вопрос цены — стоимость пчелиной семьи примерно равна стоимости простого улья и цене меда, производимой ими за сезон(год).


              А теперь возьмите цену какого-то из взлетающих проектов и умножьте на количество ульев на коммерческой пасеке (от 100 и выше).


              В общем, кому интересны пятничные размышления гика-пчеловода, прошу под кат!

              Читать дальше →
            • Генерация Close call в играх: «На волосок от поражения» или «Чуть-чуть не победил»

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

                Источник: 1877 Harpers Weekly November 24-MA barely saves GOP [1]

                Многие игры специально создают (или провоцируют) такие ситуации, чтобы встряхнуть своих игроков. Конечно, об использовании таких методик в пресс релизах не говорят. А особенно талантливые разработчики умело прячут эти свои «грязные хаки» даже от опытных игроков.
                Далее я перечислю известные мне примеры таких хаков, чтобы разработчики смогли взять из них самое хорошее, а игроки научились распознавать самое плохое и коварное.
                Читать дальше →
              • Манифест жёсткого программиста


                  Предисловие


                  Данный текст предполагает, что читатель ознакомлен с т.н. agile-манифестом разработки программного обеспечения и его т.н. основополагающими принципами.


                  В настоящий момент существует огромное количество людей, которые принимают данный "манифест", соглашаются с ним, и даже пытаются применять. Но лично для меня это выглядит как шутка, которая затянулась.



                  Содержание


                  1. Манифест жёсткого программиста
                  2. Основополагающие принципы манифеста жёсткого программиста
                  3. Комментарии


                  Манифест жёсткого программиста


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


                  Концепция важнее новых требований
                  Качество важнее скорости
                  Делать как надо важнее, чем делать как просят


                  То есть, не отрицая важности того, что справа, мы всё-таки более ценим то, что слева.

                  Читать дальше →
                • Повышаем сознательность граждан

                    Привет!

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



                    Почему это важно сделать на бумаге? Потому что она без батарейки, не требует подключения к сети и содержит самые важные номера законов. В общем, бумага очень отказоустойчивая. Естественно, есть и PDF, которую можно просто залить на телефон.
                    Читать дальше →
                  • Введение в SOLID: новый редецентрализованный интернет Тима Бернерса-Ли

                    • Translation
                    Создание нового децентрализованного интернета долгие годы волнует умы специалистов. Профессор Тим Бернерс-Ли пошел еще дальше и нашел способ редецентрализовать интернет. Что это значит, как с этим связан проект Solid и что такое «поды»? Читайте в нашем переводе статьи Arnav Bansal, опубликованной на сайте freeCodeCamp.
                    Читать дальше →
                  • Как сделать солнечный фонарик своими руками (часть 1)



                      Солнечные фонарики можно смело разделить на несколько групп, это «авторские», сделанные из каких — то достаточно уникальных вещей и остроумные по задумке, мини — прожекторы, предназначенные для освещения по направлению, или подсветки сверху цветочных клумб и рядовые солдаты дачного освещения — классические фонарики на столбике предназначенные для освещения дорожек. Как и из чего их можно сделать я расскажу в данной статье. Также будет рассмотрено несколько вариантов исполнения электроники для тенистых участков сада, где подзарядка фонарика от солнца затруднена и яркостью освещения придётся немного поступиться.
                      Узнать больше
                    • Вторая жизнь электродуховки «Харьков»

                      Всем привет.

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

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

                      Что делать?

                      Правильно! Воскрешать.
                      Читать дальше →
                    • Почему Wi-Fi не будет работать, как планировалось, и зачем знать, каким телефоном пользуется сотрудник



                        Привет!

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

                        Для разминки — небольшая задачка. Представьте себе беспроводную сеть Wi-Fi, состоящую из точки доступа (AP) и двух одинаковых клиентских устройств (STA1 и STA2).

                        Читаем надписи на коробках:
                        AP: 1733,3 Мбит/c
                        STA1, STA2: 866,7 Мбит/c

                        Внимание, вопрос. Оба клиента одновременно начинают загружать с сервера большой файл. На какую пропускную способность может рассчитывать каждое из устройств?
                        Читать дальше →
                      • «Давайте объясню: или зачем программисту математика». Книга о том, как не скучать на лекциях по математике

                          TL;DR Небольшая книжка про математику для программистов. Электронный и бумажный вариант по ссылке.

                          Я преподаю в университетах уже 9 лет. За это время студенты изменились. Моё субъективное впечатление — современный первокурсник гораздо сильнее ценит своё время. В условиях свободной посещаемости даже отличники должны быть уверены в том, что конкретная лекция принесёт им пользу, сопоставимую с 1.5 часами на Kaggle или Coursera. Кажется, доступность гарантированно качественных объяснений уже убивает классический лекционный формат. Поэтому вторая лекция курса у многих лекторов обычно проходит перед существенно меньшей аудиторией. В меньшей аудитории у студентов появляется больший манёвр для вопросов, и самый частый вопрос, который я слышал на парах по алгоритмам и дискретке — «Зачем?».
                          Читать дальше →
                          • +26
                          • 9.1k
                          • 9
                        • Микросервисы: размер имеет значение, даже если у вас Kubernetes

                            19 сентября в Москве состоялся первый тематический митап HUG (Highload++ User Group), который был посвящён микросервисам. На нём прозвучал доклад «Эксплуатация микросервисов: размер имеет значение, даже если у вас Kubernetes», в котором мы поделились обширным опытом компании «Флант» в области эксплуатации проектов с микросервисной архитектурой. В первую очередь он будет полезен всем разработчикам, задумывающимся о применении этого подхода в своём настоящем или будущем проекте.



                            Представляем видео с докладом (50 минут, гораздо информативнее статьи), а также основную выжимку из него в текстовом виде.

                            NB: Видео и презентация доступны также в конце этой публикации.
                            Читать дальше →
                          • Двадцать задачек (по безумной, восхитительной геометрии)

                            • Translation
                            Предупреждение врача. Остерегайтесь этих головоломок. Побочные эффекты могут включать потерянное послеобеденное время, скомканные волосы и восклицания «А-а-а-х, вот как это делается» настолько громкие, что могут треснуть оконные стёкла.

                            Несколько месяцев назад я наткнулся в твиттере на математические головоломки Катрионы Ширер. Они сразу меня увлекли: каждая головоломка такая осязаемая, ручной работы, словно просит её решить. И на каждую вы можете легко потратить час времени, а то и больше.

                            Катриона разрешила мне подвесить вас на эти задачки — и поделилась 20 своими любимыми головоломками. Она даже удовлетворила моё любопытство и восхищение, дав интервью (см. в конце статьи).

                            Наслаждайтесь. И не говорите, что врач не предупреждал.
                            Читать дальше →
                          • Опыт использования WebRTC. Лекция Яндекса

                              Что лучше использовать при разработке софта — нативные или веб-технологии? Холивар по этому поводу закончится ещё не скоро, но мало кто станет спорить, что нативные функции полезно продублировать для использования в браузерах или WebView. И если когда-то приложения для звонков существовали исключительно отдельно от браузера, то теперь их легко реализовать и в вебе. Разработчик Григорий Кузнецов объяснил, как пользоваться технологией WebRTC для P2P-соединений.


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