• Математика восхождения по лестнице богатства


      (с)

      С точки зрения программиста среднемесячная зарплата в России составляет 44 тыс. руб. — ниже всяческих ожиданий богатства и успеха. Но откуда вообще берутся представления об успехе, финансовом достатке и о методах их достижения?

      Как изменится ваша жизнь, если дать вам 10 тыс. руб.? А как насчет 1 млн руб.? Или 100 млн руб.? Ответ на этот вопрос не так прост, как кажется, и зависит от вашего возраста, семейного положения и текущих накоплений. Еще более важно, что изменения, которые произойдут с вашим поведением после того, как у вас появится такая сумма, могут многое рассказать о текущем финансовом положении.

      Стюарт Баттерфилд, создатель Flickr и Slack, развил эту мысль до самобытной концепции «пирамиды богатства», которая помогает прийти к парадоксальному выводу: даже большие деньги не обязательно улучшат вашу жизнь каким-либо заметным образом.
      Читать дальше →
    • Работаем с аудио: прогресс и визуализация

      • Tutorial


      Доброго времени суток, друзья!

      Хочу поделиться опытом работы с аудио. Под «аудио» я подразумеваю HTMLAudioElement и Web Audio API.

      Что будем делать?

      Мы создадим нечто вроде плеера для одного трека (о полноценном проигрывателе — в одной из следующих статей).

      Условия:

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

      В сети полно материалов как по HTMLAudioElement, так и по WAAPI, поэтому я сделаю акцент на практической составляющей. Кроме аудио, мы будем работать с drag-drop и canvas.

      Без дальнейших предисловий…
      Читать дальше →
    • Blazor WebAssembly 3.2.0 Preview 1 теперь доступна

      • Translation
      Сегодня мы выпустили новое предварительное обновление для Blazor WebAssembly с множеством замечательных новых функций и улучшений.

      Вот что нового в этом выпуске:

      • Версия обновлена до 3.2
      • Упрощенный запуск
      • Улучшения размера загрузки
      • Поддержка клиента .NET SignalR

      Читать дальше →
    • Мой переезд в Испанию

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



        (Много фото)
        Читать дальше →
      • Citrus: Набор стилей для AvaloniaUI

        • Tutorial

        citrus avalonia


        В комментариях к новостям об изменениях и улучшениях в новых версиях кроссплатформенного GUI-фреймворка AvaloniaUI довольно часто можно увидеть критику тем оформления, используемых по умолчанию. Дело в том, что данные темы были созданы на основе Metro — художественного стиля оформления графического интерфейса, используемого в Windows 8 и Windows 8.1. Данный стиль обрёл как поклонников, так и противников. Темы оформления MahApps.Metro для WPF по-прежнему остаются одними из наиболее популярных, имея более 6 с половиной тысяч звёзд на GitHub, догоняя MaterialDesignInXaml с его 8-ю тысячами поклонников.


        Поскольку в Avalonia тема оформления является обособленным компонентом и может быть совершенно безболезненно заменена на любую другую, имело смысл порадовать противников Metro и сделать альтернативный набор стилей. Стоит заметить, что силами сообщества уже была изготовлена alpha-версия темы Material с переключателями и анимациями, поэтому в процессе было решено попробовать задизайнить велосипед в современном плоском стиле. В Avalonia 0.9.0 была добавлена поддержка сенсорного ввода, поэтому было бы неплохо улучшить UX для пользователей с сенсорными экранами. В результате получилась тема Citrus.Avalonia.

        Читать дальше →
        • +37
        • 3.4k
        • 4
      • Динамическая память в системах жёсткого реального времени

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



          (КДПВ – см. аннотацию к диаграмме в конце)

          Читать дальше →
        • BlazingPizza: приложение на Blazor от начала и до конца. Часть 1. Настройка среды

          • Tutorial
          Всем привет! Если вы слышали о Blazor, но до сих пор не понимаете, что это такое. То вы по адресу. Это первая статья из цикла 12 статей, которая проведет вас через все круги ада весь процесс создания приложения на Blazor. В конце у нас будет готовый сайт небольшой пиццерии, вполне на уровне готовый сайтов некоторых пиццерий. Поэтому вам будет чем гордиться;)
          Читать дальше →
        • Драйвер-фильтр операций в реестре. Практика

          Привет, Хабр!

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

          К сожалению, единственное, что удалось найти — статью 2003 года, код из которой вы никогда не соберете в своей новенькой VS19.

          К счастью же, есть прекрасный пример от Microsoft на GitHub (сразу кидаю ссылочку), на котором и будет строиться бОльшая часть этого разбора.

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

          Читать дальше →
          • +16
          • 1.9k
          • 3
        • Необходимый минимум по психологии для руководителя

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

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



            В этом поможет Андрей Макаров — директор по счастью в Neti. За 17 лет в IT он вырос от специалиста службы поддержки до совладельца компании Neti. Последние 8 лет активно изучает менеджмент, методы вовлечения сотрудников и психологию. На основе «экспериментов» над окружающими и отдельного обучения на психолога собрал упрощенную модель системы восприятия человека. Если ее использовать, можно научиться лучше понимать заказчиков, руководителей, коллег и себя самого.

            Через реальные кейсы, Андрей покажет, как эта модель помогает добиваться от других и от себя самого того, что вам хочется. Под катом от первого лица: как ужиться с тараканами в головах заказчиков и сотрудников, как соображать быстрее, не терять энергию и эффективность, как распознать «сложных» людей, как создавать комфортные отношения с людьми.
            Читать дальше →
            • +38
            • 17k
            • 4
          • IT техническая сторона яхтинга

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


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



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

              Читать дальше →
            • 15 лучших и крупнейших библиотек иконок

              • Translation


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

              Сразу уточняем: это не 15 самых лучших библиотек, а 15 из лучших. Разумеется, есть и другие, не менее замечательные, о которых я не упомянул или не знаю.
              И, нет, это не рейтинг — список маркированный, а не нумерованный.
              Читать дальше →
            • Compile time обфускация используя NAND/NOR

                Введение.


                Все, кто хорошо знаком с современным С++ слышал, что начиная с С++11 в стандарт был введен спецификатор constexpr, при помощи которого можно проводить лимитированные compile-time вычисления. В последующие стандарты были добавлены if constexpr и constexpr lambdas которые в некоторой степени снимают ограничения и помогают писать код с compile time вычислениями. Сегодня мы поговорим о случайной кодогенерации в compile time.
                Читать дальше →
              • Rhasspy — опенсорсный и полностью офлайновый речевой тулкит. Распознавание русского языка. Никаких утечек в облако


                  Фото из сравнения микрофонных массивов для DIY-устройств типа самодельной умной колонки

                  Системы вроде Amazon Echo передают в облако для хранения ваши конфиденциальные разговоры (даже записанные случайно). В некоторых случаях записи прослушиваются живыми операторами. Это не просто потеря конфиденциальности. Это как добровольно впустить в свою квартиру «товарища майора», который стоит рядом 24 часа в сутки, слушает и внимательно записывает, притворяясь услужливым ассистентом.

                  Вместо покупки коммерческой системы у корпораций типа Google, Amazon или «Яндекс», вы можете собрать аналогичную опенсорсную систему на базе Raspberry Pi 2-3 B/B+, персонального компьютера или ноутбука.

                  Rhasspy — безопасный голосовой помощник, который работает автономно. Он ничего не передаёт на удалённые сервисы, при этом успешно справлятся с распознаванием речи и голосовых команд.
                  Читать дальше →
                • Keylogger для Windows с изменением прав в DACL

                  Здесь будет рассмотрено создание Keylogger на базе .Net C# с вызовами системных функций. Сами системные функции в кратце описываются, но лучше прочитать официальную документацию от Microsoft. Ссылка на репозиторий с рабочей сборкой приведена в конце, так же как и ссылка на доккументацию.

                  Что будет реализовано:

                  • Логирование ввода с клавиатуры.
                  • Логирование активного окна.
                  • Блокировка процесса от пользователя без привилегий администратора.
                  • Остановка процесса по сочетанию клавиш.
                  Читать дальше →
                  • +12
                  • 6.3k
                  • 8
                • Письмо начинающему изучать Data Science

                  Я бы хотел получить такое письмо три года назад, когда только начинал изучать Data Science (DS). Чтобы там были необходимые ссылки на полезные материалы. Статья не претендует на полноту охвата необъятной области DS. Однако для начинающего специалиста будет полезна.


                  Нейронные сети – это...

                  Читать дальше →
                • Приготовься к введению в России социального рейтинга

                  image

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

                  Вам может показаться, что получение низкой ставки по кредиту за социально полезные действия- перспектива далекого будущего. Но уже сегодня ставка ипотеки для молодой семьи находится в районе 10%, тогда как остальные предложения близки к 20%. Т.е. это уже давно реальность, просто вы не придавали этому значения.

                  Я считаю, что ряд непопулярных решений будет принят в течении последнего президентского срока Владимира Путина: этому человеку больше не надо «сохранять лицо». Поэтому до 2024 года мы увидим новый виток «закручивания гаек», в том числе введение социального рейтинга в России.
                  Читать дальше →
                • Как я прохожу Online Master of Science in Computer Science, и кому это может не подойти

                  Закончила свой первый год учебы по программе Online Master of Science in Computer Science (OMSCS) в Georgia Institute of Technology (3 курса из 10). Захотелось поделиться некоторыми промежуточными выводами.


                  Не стоит туда идти, если:

                  Читать дальше →
                • Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.9

                    Avalonia — кроссплатформенный .NET UI-тулкит с открытым исходным кодом, вдохновлённый технологиями WPF и UWP. Он полностью поддерживает Windows, macOS и Linux, .NET Core 2.0-3.1, XAML, дата-биндинги, lookless-контролы и многое другое.



                    (на ВДПВ показана работа без XOrg)


                    Версия 0.9 стала большим обновлением с набором давно ожидаемых фич: компилируемый XAML, поддержка глобальных меню, возможность плавной прокрутки виртуализированных списков с элементами произвольного размера, поддержкой сенсорного ввода и ещё кое-чем.


                    За подробностями прошу под кат.

                    Читать дальше →
                  • Второй год Q#

                    • Translation
                    Прошло уже больше 2 лет с момента первого публичного выпуска языка квантового программирования Q#. К случаю годовщины ребята из команды Q# подготовили рассказ про второй год этого развития. Читайте о нем под катом!

                    Читать дальше →
                  • Руководство Google по стилю в C++. Часть 1

                    • Translation
                    Часть 1. Вступление

                    Часть 8. Именование
                    Часть 9. Комментарии



                    Все мы при написании кода пользуемся правилами оформления кода. Иногда изобретаются свои правила, в других случаях используются готовые стайлгайды. Хотя все C++ программисты читают на английском легче, чем на родном, приятнее иметь руководство на последнем.
                    Эта статья является переводом части руководства Google по стилю в C++ на русский язык.
                    Исходная статья (fork на github), обновляемый перевод.
                    Это вступительная часть руководства, в которой рассматриваются общие вопросы «Зачем?»
                    Также после перевода будет несколько ответов на возможные вопросы.
                    Читать дальше →