• N+7 полезных книг

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



      Думай медленно, решай быстро — Даниэль Канеман
      Это самое волшебное, что случалось за последние годы в плане гиковой литературы. Эта штука последовательно открывает когнитивные искажения и учит настраивать мышление. При этом увлекательно. Вообще, подход к тому, что мышление — это набор техник, которые можно тренировать и оттачивать, он, наверное, правильнее подхода «это шаманство». Канеман в отличие от следующей в списке книги, показывающей особенности реверсивного мышления, не даёт новых техник — но показывает, где и какие ошибки мы совершаем при обычных процессах. Такой серьёзный дебаг мозга.
      Читать дальше →
    • Зубы мудрости: удалить нельзя оставить

      image

      Уважаемые друзья, сегодня я предлагаю вам поговорить о зубах мудрости. Причём, поговорить о самом сложном и самом непонятном — показаниям к их удалению.

      Издавна с восьмёрками (третьими молярами или «зубами мудрости») связано очень много анекдотов, суеверий, легенд и историй, в том числе весьма страшных. И распространена вся эта мифология не только среди обычных людей, но и в медицинском сообществе. Постепенно, в ходе обсуждения, я попробую их развенчать и показать, что зубы мудрости — не такая уж проблема, как в плане диагностики, так и в плане удаления. Тем более, если речь идёт о современном докторе и современной клинике.
      Читать дальше →
    • Вейвлет — анализ.Часть 1

      • Tutorial

      Введение


      Рассмотрим дискретное вейвлет – преобразования (DWT), реализованное в библиотеке PyWavelets PyWavelets 1.0.3. PyWavelets — это бесплатное программное обеспечение с открытым исходным кодом, выпущенное по лицензии MIT.

      При обработке данных на компьютере может выполняться дискретизированная версия непрерывного вейвлет-преобразования, основы которого описаны в моей предыдущей статье. Однако, задание дискретных значений параметров (a,b) вейвлетов с произвольным шагом Δa и Δb требует большого числа вычислений.

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

      Дискретное вейвлет – преобразование (DWT), реализованное в библиотеке PyWavelets, обеспечивает достаточно информации как для анализа сигнала, так и для его синтеза, являясь вместе с тем экономным по числу операций и по требуемой памяти.

      Когда нужно использовать вейвлет-преобразование вместо преобразования Фурье


      Преобразования Фурье будет работать очень хорошо, когда частотный спектр стационарный. При этом частоты, присутствующие в сигнале, не зависят от времени, и сигнал содержит частоты xHz, которые присутствует в любом месте сигнала. Чем нестационарнее сигнал, тем хуже будут результаты. Это проблема, так как большинство сигналов, которые мы видим в реальной жизни, нестационарны по своей природе.
      Читать дальше →
    • Цена TypeScript

      • Translation
      В 2017-2019 годах можно было наблюдать серьёзный рост TypeScript. Происходило это по вполне понятным причинам. В этом языке есть много хорошего. Почти половина респондентов исследования State of JavaScript 2018 года уже пробовали TypeScript и собираются писать на нём в будущем. TypeScript весьма популярен, но стоит ли использовать его в крупномасштабных программных проектах?



      В этом материале предпринята попытка достаточно строго, опираясь на числовые показатели и практический опыт автора, проанализировать эффект от использования TypeScript при разработке больших проектов.
      Читать дальше →
    • Работа со структурами в C#

      • Translation
      По следам недавнего топика «Обработка больших объемов данных в памяти на C#» представляю перевод упоминавшейся там статьи о структурах.

      Структуры являются фундаментальными типами данных в C# и большинстве других современных языках программирования. По своей сути структуры просты, но вы можете удивиться, насколько быстро работа с ними может стать сложной. Чаще всего проблемы возникают, если вы должны работать со структурами, созданными в других языках и сохраненными на диске или полученными в результате вызова функций из библиотек или COM-объектов. В этой статье я подразумеваю, что вы знакомы с понятием структуры, умеете определять их и владеете базовыми навыками работы со структурами. Предполагается, что вы имеете представление о том, как вызывать API функции с использованием p/Invoke, а также что такое маршалинг. В случае неуверенности в своих знаниях вы можете обратиться к документации.
      Множество техник, описанных в данной статье, могут быть расширены и применены к любым типам данных.
      Читать дальше →
    • Три айфона, часы и ТВ. Что показали на презентации Apple

        Несколько часов назад закончилась очередная, юбилейная конференция Apple. Прошло десять лет с презентации первого iPhone Стивом Джобсом в 2007 году, и в честь круглой даты Apple постаралась всех очень удивить. Нам показали целых три новых айфона! И часы, работающие “сами по себе”. Хотя и без конфузов не обошлось. Бандеролька следила за презентацией (нам же всё это доставлять!) и делится сводкой событий.

        Читать дальше →
      • 40 эффектных ARKit демок, которые вскоре увидят мир



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

          Итак, перейдем к рассмотрению демоприложений с применением ARKit.
          Читать дальше →
        • Blockchain

            Данный текст будет являться новой главой для учебного пособия по защите информации кафедры радиотехники и систем управления МФТИ (ГУ). Полностью учебник доступен на github. На хабре я же планирую выкладывать новые «большие» куски, во-первых, чтобы собрать полезные комментарии и замечания, во-вторых, дать сообществу больше обзорного материала по полезным и интересным темам.

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

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

            В таких системах есть три группы действующих лиц:

            • источники событий (транзакций)
            • источники блоков (фиксаторы транзакций)
            • получатели (читатели) блоков и зафиксированных транзакций.

            В зависимости от реализации эти группы могут пересекаться. В системах типа BitCoin, например, все участники распределённой системы могут выполнять все три функции. Хотя за создание блоков (фиксацию транзакций) обычно отвечают выделенные вычислительные мощности, а управляющими их участников называют майнерами (см. раздел про децентрализованный blockchain далее).

            Основное требование к таким журналам таково:

            • Невозможность модификации журнала: после добавления транзакции в журнал должно быть невозможно её оттуда удалить или изменить.
            Читать дальше →
          • Куда пойти, что читать, с кем общаться на профессиональные темы: дорожная карта для iOS-разработчика

              В предыдущей статье я вскользь затрагивал тему развития мобильного разработчика. Когда вся твоя команда — это ты, это действительно острая тема. Некому помочь советом, поделиться интересной статьей или посоветовать годный видеокурс. Около года назад я решил бороться с этой проблемой и начал вести два Telegram-канала, в которых ежедневно публикую подборку самых актуальных материалов по iOS- и Android-разработке. За это время у меня накопилось множество отличных ресурсов, чатов, рассылок и событий, которыми стоит поделиться с сообществом. Начнем с iOS-разработки.


              Читать дальше →
              • +21
              • 12k
              • 2
            • Как двухлетний репозиторий на GitHub стал трендовым за 48 часов

              • Translation


              GitHub предоставил возможность миллионам разработчиков с легкостью публиковать свои проекты и тем самым привлекать пользователей и единомышленников. Часто перед разработчиками возникает проблема неэффективного использования ресурсов — они тратят сотни часов на создание проекта с целью продвинуть его на GitHub, а получают максимум две звезды.
              Читать дальше →
            • Серия видеоуроков по Git для новичков

              • Tutorial
              Скорее всего, если вас привлекло название статьи, то вы начинаете свой путь знакомства с системой контроля версий Git. В данной статье я приведу 10+ видео о пошаговом вхождении в контроль версии используя Git. Данного курса будет вполне чем достаточно для работы с такими популярными сервисами как GitHub и Bitbucket.

              Однажды мой знакомый, который только начинал свой путь в ИТ кинул мне данный мемчик что слева, с вопросом "А чем плохо то?", поэтому чтобы понимать данную шутку и уметь работать с самым популярным на сегодня VCS (Version Control System) рекомендую к ознакомлению серии видеоуроков, которую я привел ниже.
              Читать дальше →
            • Как «пробить» человека в Интернет: используем операторы Google и логику

              • Tutorial

              В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.


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


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

              Споры между основателями стартапов о принадлежности интеллектуальных прав на созданный продукт — не редкость. Вспоминается, например, судебный иск Регги Брауна к двум другим основателям Snapchat. В большинстве случаев конфликты заканчиваются уходом кого-то из основателей из проекта. Российской судебной практике также известно немало примеров, когда создатели сервисов и приложений спорят о правах на них (и о праве контроля над стартапом в целом). Чаще всего конфликты происходят в проектах, где один из основателей придумал идею стартапа и алгоритм функционирования сервиса, а другой написал исходный код программы. В этом материале мы расскажем несколько невыдуманных историй, как такие споры решаются в России, и попытаемся понять юридические причины конфликтных ситуаций. Возможно, кто-то в этих историях «увидит» себя, а кому-то наш пост поможет не повторить ошибок его героев.
              Читать дальше →
            • Минфин разъяснил порядок уплаты НДС при передаче программ через Интернет

              image

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

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

              Минфин подтвердил данный вывод, разъяснив что при получении прав на программное обеспечение по лицензионному договору независимо от способа передачи такого ПО, сохраняется право на освобождение лицензионного вознаграждения от НДС на основании пп.26 п.2 ст.149 НК РФ (см. Письмо от 12.01.2017 г. N 03-07-08/555).

              Поэтому тренд на получение льготы по НДС по лицензионным договорам должен сохраниться.

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

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

              Попробуем разобраться в данном вопросе более подробно.
              Читать дальше →
            • Расширение Visual C++ for Linux Development

              • Translation
              Расширение Visual C++ for Linux Development позволяет создавать решения на C++ для серверов, настольных ПК и устройств под управлением Linux. Управлять подключениями к ним можно непосредственно в Visual Studio. VS будет автоматически копировать и удалённо собирать исходный код программ. Также среда позволяет запустить ваше приложение в режиме отладки. Система управления проектами поддерживает создание решений для конкретных архитектур, в том числе APM. Под катом мы расскажем, как начать работу с новыми проектами для Linux.


              Читать дальше →
            • 30 толковых книг по бизнесу, саморазвитию и творчеству, которые изменили мою жизнь



              Полтора года назад я принял вызов прочитать 100 книг за год. Авантюра полностью себя не оправдала, так как некоторые книги я перечитывал, но однозначно оказалась полезной. По итогам последних двух лет я составил список книг, которые каким-то образом повлияли на мою жизнь. Составлял я его для себя, но позже решил, что он пригодиться и вам.
              Читать дальше →
            • Свободный формат Lepton сжимает файлы JPEG на 22% без потерь

                Арифметическое кодирование по образцу Pied Piper



                Предсказание коэффициентов дискретного косинусного преобразования в соседних 64-битных блоках JPEG

                Компания Dropbox опубликовала исходный код нового формата потокового сжатия изображений Lepton (репозиторий на Github). Исходный код Lepton опубликован под свободной лицензией Apache. Всех желающих приглашают оптимизировать новый свободный алгоритм.

                Lepton демонстрирует средний коэффициент компрессии 22% на файлах JPEG, предсказывая коэффициенты ДКП в JPEG-блоках и учитывая эти коэффициенты в качестве контекста для арифметического кодера, то есть кодируя дельту коэффициентов в соседних блоках.
                Читать дальше →
              • С 18 июля новый порядок регистрации программ для ЭВМ в Роспатенте. Что изменилось?

                18 июля 2016 года вступили в силу новый Административный регламент предоставления государственной услуги по государственной регистрации программы для ЭВМ, а также новые Правила регистрации программ и баз данных. Таким образом, прекращает действие Административный регламент 2008 года. Понятно, что если вы по каким-то причинам регистрируете программы в Роспатенте (зачем их регистрировать — мы обсуждали здесь ранее), то с 18 июля нужно пользоваться новой формой заявления.



                Больший интерес представляет анализ нового Регламента с целью понять, есть ли что-то существенно новое в регистрации программ, улучшающее или ухудшающее положение заявителей.
                Подробности
                • +15
                • 43.8k
                • 8
              • Вычисление значения многочлена. Все ли тривиально в этом вопросе?

                  Вычисление значения многочлена в точке является одной из простейших классических задач программирования.
                  При проведении различного рода вычислений часто приходится определять значения многочленов при заданных значениях аргументов. Часто приближенное вычисление функций сводится к вычислению аппроксимирующих многочленов.
                  Рядового читателя Хабрахабр нельзя назвать неискушенным в применении всяческих извращений. Каждый второй скажет, что многочлен надо вычислять по правилу Горнера. Но всегда есть маленькое «но», всегда ли схема Горнера является самой эффективной?

                  Читать дальше →