Pull to refresh
0
0
Muff @Muff

User

Send message

Референсный код

Reading time5 min
Views26K

Только дурак учится на своих ошибках, умный предпочитает учиться на чужих


Мой активный корреспондент Чарльз Мэннинг отправил мне ссылку на вопрос с сайта Nordic Semiconductor. Вот этот вопрос, дословно: «Какой BLE профиль будет удовлетворять ЭКГ сигналам наилучшим образом и есть ли пример кода для АЦП из этого профиля? Искал какое-то время и не могу найти его ».

Чарльз, и я вместе с ним, были ошеломлены. Кто-то создает критическую часть медицинского оборудование с, как нам представляется, ограниченным знанием протокола связи, который он будет использовать Он также планирует построить эту часть на референсном (если кто предложит хороший перевод этого термина буду благодарен — «образцовый и эталонный» не очень подходят — в русском языке эти два термина содержат несколько иной смысл, а «примерный» не звучит -примечание переводчика) ( мне подсказали в комментариях демонстрационный код -пп) коде от поставщика.
И что нам с ним делать, с этим кем-то?
Total votes 24: ↑20 and ↓4+16
Comments30

Типограф — история продолжается

Reading time1 min
Views16K
В процессе подготовки 3-й версии Типографа написал небольшой jQuery-плагин, который обязательно войдет в релиз, способный облегчить жизнь многим разработчикам сайтов в вопросе типографики.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments51

Компьютер маленького человечка

Reading time3 min
Views38K
Все мы знаем машину Тьюринга и машину Поста. Это абстрактные вычислительные машины, придуманные математиками для теории алгоритмов. Компьютер маленького человечка (Little man computer) — модель компьютера, предназначенная для обучения тому, как устроен и работает компьютер. Эта модель была предложена профессором Стюартом Мэдником в 1965 году и успешно используется для обучения студентов начальных курсов как в области программирования, так и конструирования компьютеров.

Что делает этот человечек ?
Total votes 35: ↑33 and ↓2+31
Comments20

Высокопроизводительное сжатие DEFLATE с оптимизацией для геномных наборов данных

Reading time7 min
Views9.1K


igzip — высокопроизводительная библиотека для выполнения сжатия gzip или DEFLATE. Она была изначально описана в статье Высокопроизводительное сжатие DEFLATE для процессоров с архитектурой Intel. В этой статье описывается связанный выпуск исходного кода, содержащий необязательные (во время сборки) оптимизации для повышения степени сжатия геномных наборов данных в форматах BAM и SAM. igzip работает примерно в 4 раза быстрее, чем Zlib при настройке на максимальную скорость, и с примерно такой же степенью сжатия для геномных данных. Мы считаем, что igzip можно схожим образом оптимизировать для других областей применения, где наборы данных отличаются от обычных текстовых данных.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments2

Солнечные затмения: из прошлого в будущее, от Земли до Юпитера (исследование, проведённое с помощью Wolfram Language)

Reading time9 min
Views10K

Скачать статью в виде CDF-файла.
Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.

Возможно, Вы слышали, что 20 марта было солнечное затмение. Будет видно солнечное затмение или нет зависит от того, в какой точке планеты Вы находитесь. Если солнечное затмение будет видно, об этом всегда можно будет узнать из средств массовой информации, которые обычно создают некоторую шумиху вокруг этого события — сообщаются погодные условия на момент затмения, прочие детали. Если в месте, в котором Вы находитесь, солнечное затмение не будет видно, скорее всего Вы о нём даже и не узнаете. Однако, зачастую люди из сообщества Wolfram Community со всех частей света — как опытные, так и начинающие разработчики, принимают участие в обсуждении подобных вещей. И очень здорово наблюдать, как знание предмета и технологий Wolfram передаются друг другу от людей со всех уголков Земли.

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

Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments1

Распознавание физической активности пользователей с примерами на R

Reading time8 min
Views9K
Задача распознавания физической активности пользователей (Human activity Recognition или HAR) попадалась мне раньше только в качестве учебных заданий. Открыв для себя возможности Caret R Package, удобной обертки для более 100 алгоритмов машинного обучения, я решил попробовать его и для HAR. В UCI Machine Learning Repository есть несколько наборов данных для таких экспериментов. Так как тема с гантелями для меня не очень близка, я выбрал распознавание активности пользователей смартфонов.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments12

Использование драйвера ключей нижнего и верхнего уровней IR2110 — объяснение и примеры схем

Reading time7 min
Views272K


Быть может, после прочтения этой статьи вам не придётся ставить такие же по размерам радиаторы на транзисторы.
Перевод этой статьи.
Заинтересовал? Тогда поехали!
Total votes 31: ↑28 and ↓3+25
Comments14

Поиск по подобию. Поиск нечетких дубликатов. Лекции от Яндекса

Reading time28 min
Views20K
Сегодня мы публикуем шестую лекцию из курса «Анализ изображений и видео», прочитанного Натальей Васильевой в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба.



Всего в программе девять лекций, из которых уже были опубликованы:
  1. Введение в курс «Анализ изображений и видео».
  2. Основы пространственной и частотной обработки изображений.
  3. Морфологическая обработка изображений.
  4. Построение признаков и сравнение изображений: глобальные признаки.
  5. Построение признаков и сравнение изображений: локальные признаки.

Под катом, вы найдете план новой лекции, слайды и подробную расшифровку.
Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments3

Линейная алгебра: пробный заезд

Reading time7 min
Views144K
Привет, Хабр!

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

Часто первое знакомство с линейной алгеброй выглядит как-то так:

image

Не очень вдохновляет, правда? Сразу возникает два вопроса: откуда это все взялось и зачем оно нужно.

Начнем с практики


Когда я занимался вычислительной гидродинамикой (CFD), один из коллег говорил: «Мы не решаем уравнения Навье-Стокса. Мы обращаем матрицы.» И действительно, линейная алгебра — «рабочая лошадка» вычислительной математики:


Читаем дальше...
Total votes 36: ↑35 and ↓1+34
Comments15

Еще один проект на ESP8266 и счетчик воды

Reading time3 min
Views66K
Все началось с того, что в квартире наконец поставили счетчики воды (4 импульсных счетчика, так как 2 стояка) и встал вопрос как проще всего снимать показания. А если учесть что одна пара счетчиков оказалась внутри шкафа кухни, то было принято решения попробовать это автоматизировать.

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

Изыскания на тему, как сделать самом данное устройство, привели сначала к arduino + esp8266 в качестве wifi передатчика, а после погружения в тему оказалось, что сам esp8266 может прекрасно справиться с данной задачей.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments12

Исследование защиты PVS-Studio

Reading time4 min
Views55K
PVS-Studio

Приветствую! Это мой первый пост на Хабре в принципе, но не первая статья о взломе ПО вообще, поэтому навык писать все с начала и по шагам, для начинающих крякеров, у меня есть. В данной статье я расскажу о том, как был отучен от триальности PVS-Studio.
Читать дальше →
Total votes 144: ↑123 and ↓21+102
Comments131

Сахарные инжекции в C#

Reading time5 min
Views42K
C# — продуманный и развитый язык программирования, в котором предусмотрено немало синтаксического сахара, упрощающего написание рутинного кода. Но всё-таки существует ряд сценариев, где нужно проявить некоторую смекалку и изобретательность, чтобы сохранить стройность и красоту.

В статье мы рассмотрим некоторые такие случаи, как широкоизвестные, так и не очень.

Читать дальше →
Total votes 36: ↑29 and ↓7+22
Comments96

Алгоритмы быстрого вычисления факториала

Reading time6 min
Views226K
Понятие факториала известно всем. Это функция, вычисляющая произведение последовательных натуральных чисел от 1 до N включительно: N! = 1 * 2 * 3 *… * N. Факториал — быстрорастущая функция, уже для небольших значений N значение N! имеет много значащих цифр.

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

Наивный алгоритм

Итак, простейшая реализация (назовем ее наивной) получается прямо из определения факториала:

static BigInteger FactNaive(int n)
{
    BigInteger r = 1;
    for (int i = 2; i <= n; ++i)
        r *= i;
    return r;            
}

На моей машине эта реализация работает примерно 1,6 секунд для N=50 000.

Далее рассмотрим алгоритмы, которые работают намного быстрее наивной реализации.
Читать дальше →
Total votes 48: ↑41 and ↓7+34
Comments46

Очень субъективный обзор JS фреймворков. AmpersandJS, часть 0

Reading time20 min
Views61K
От переводчика: когда я начал разбираться с MVC-фреймворками для фронт-энда, каким-то чудом попалась на глаза эта статья Henrik Joreteg. Сейчас дошли руки перевести ее для Хабра, тем более, что об AmpersandJS на Хабре вообще не слышно. Попробую организовать цикл статей по этому инструменту ребят из &yet, мне кажется, он достоин внимания.

котики и велосипеды

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

Angular.js


за

  1. очень легко начать использовать. можно просто вставить тег script, добавить немного ng- атрибутов в ваше приложение, и вы волшебным образом получаете нужное вам поведение
  2. Angular хорошо поддерживается его основной командой разработчиков, многие из которых работают в Гугле на постоянной основе
  3. большая аудитория/сообщество

Читать дальше →
Total votes 45: ↑42 and ↓3+39
Comments104

Переходим с STM32 на российский микроконтроллер К1986ВЕ92QI. Генерируем и воспроизводим звук. Часть первая

Reading time15 min
Views26K

Вступление


В предыдущей статье мы поговорили о настройке тактовой частоты микроконтроллера. Сейчас мне хотелось бы рассмотреть варианты работы со звуком: его генерирование и воспроизведение. По началу мне хотелось написать одну большую статью, в которой было бы рассмотрено все. От генерации прямоугольных импульсов до воспроизведения FLAC с microSD карты. Но статья получилось просто гигантской. Так что я решил разбить ее на несколько статьей поменьше. В каждой из которых я разбираю по одному периферийному модулю.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments13

Systemd за пять минут

Reading time4 min
Views643K
Наша компания занимается администрированием веб-серверов на базе CentOS. Довольно часто наши клиенты используют веб-приложения на базе python, ruby или java. Для автозапуска подобных приложений есть готовые шаблоны для написания стартап-скриптов. Но прогресс не стоит на месте, вышел уже второй релиз CentOS 7 и, следуя старой традиции «не ставить dot-zero релизы на продакшен», мы начинаем предлагать клиентам сервера на базе CentOS 7.1 (1503).

В CentOS7, так же как и в его родителе RHEL7, используется systemd — менеджер системы и служб для Linux, совместимый со скриптами инициализации SysV и LSB. systemd обеспечивает возможности агрессивной параллелизации и много всего прочего.

image

Огромный монстр с множеством возможностей, гибкими настройками и мегабайтами документации…

Но что делать, если стоит задача быстро-быстро, вот прямо вчера, сделать автозапуск некоего сервиса?
Давайте выжмем из документации минимально необходимый набор информации для создания простых старт-стоп скриптов.
Знакомство с systemd
Total votes 70: ↑66 and ↓4+62
Comments58

Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть третья

Reading time26 min
Views348K

Предыдущие части




О чем будет рассказано в этой части


В этой части мы познакомимся:
  1. с выражением CASE, которое позволяет включить условные выражения в запрос;
  2. с агрегатными функциями, которые позволяют получить разного рода итоги (агрегированные значения) рассчитанные на основании детальных данных, полученных оператором «SELECT … WHERE …»;
  3. с предложением GROUP BY, которое в скупе с агрегатными функциями позволяет получить итоги по детальным данным в разрезе групп;
  4. с предложением HAVING, которое позволяет произвести фильтрацию по сгруппированным данным.

Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments3

Inno Setup: создание инсталлятора на примере развертывания C# приложения

Reading time13 min
Views202K

Введение



Я не являюсь профессиональным программистом. В том смысле, что не зарабатываю денег этим ремеслом, а использую свои навыки в качестве инструмента для основной, научной, деятельности. Поэтому все мои «поделки» живут лишь отведенный им на решение конкретной задачи период и не выходят за пределы каталогов проекта. Кроме того, уже довольно давно я отошел от разработки под ОС Windows, ибо Linux для решения моих задач более удобен.

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

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

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

  1. InstallShield — классика жанра, достаточно солидный проприетарный продукт
  2. Adnvanced Installer — проприетарный инструмент с широкими возможностями кастомизации через GUI. На сайте сказано, что если Вы блоггер и будете писать об этом продукте много хороших слов, то у Вас есть возможность получить Free License
  3. WiX — открытый бесплатный продукт, основанный на XML-скриптах. Мощная, хорошо документированная штука. Разбираться с ним я пока не стал, ибо время дорого (да и к XML душа лежит не очень). Возможно когда нибудь я к нему вернусь. Да, к нему есть плагины для Visual Studio, что несомненный плюс.
  4. Inno Setup — опенсорсный проект, код которого доступен на гитхабе. В силу бесплатности и низкого порога вхождения мой выбор остановился именно на нем, как инструменте позволившем выполнить работу быстро и качественно.


Так что в статье мы будем рассматривать пример использования Inno Setup, для которого имеется полезный фронтэнд Inno Script Studio, позволяющий выполнять создание простых инсталляторов с помощью мастера и менять настройки через GUI. GUI понадобился мне для первого знакомства, с продуктом, но мы не будем уделять ему большого внимания — мой «линукс головного мозга» в последнее время всё больше и больше уводит меня от желания использовать разного рода «мастера» (это субъективно, прошу не пинать). Мы рассмотрим хардкорный способ написания скрипта с чистого листа.

Поехали!
Total votes 20: ↑18 and ↓2+16
Comments14

Некапча Mail.Ru – капча, которая не показывается

Reading time5 min
Views60K
Привет, Хабр! Сегодня я хочу рассказать вам про наш относительно недавно созданный сервис капчи. Этот сервис отличается от аналогичных тем, что нашу капчу никогда чаще всего вообще не требуется разгадывать. Как известно, капча негативно влияет на конверсию — не все могут быстро ее разгадать, особенно если она неоправданно сложная, а часть пользователей уходят с ресурса. И я не знаю таких людей, которые любят ломать глаза и получают удовольствие от процесса разгадывания. Поэтому если избавить пользователя от необходимости вводить еще одно дополнительное поле, то это сделает его немножечко лояльнее.


Вряд ли кто-то сможет разгадать эту капчу :)

Если в двух словах, то Некапча — это сервис интеллектуальной капчи, не требующий от человека прохождения проверки. Естественно, без дополнительной информации сервис не может ничего сказать о пользователе. Откуда же ее взять? Дело в том, что у Mail.Ru более 100 млн пользователей, причем большая часть из них авторизована. А это значит, что с запросом на наши домены передаются сессионные куки, по которым мы определяем пользователя, а затем достаем его профиль, статистику, спам-рейтинг и т.д. Вся эта информация подается на вход алгоритма-классификатора, и на выходе мы получаем предположение о том, кем является пользователь — человеком или спам-ботом.
Читать дальше →
Total votes 86: ↑62 and ↓24+38
Comments120

Создание общей библиотеки кода в геймдеве и не только

Reading time9 min
Views17K
На днях я пообщалась с Артёмом Воробьёвым, техлидом игровой студии zGames, входящей в группу компаний Softeq, который, ничтоже сумняшеся, поделился опытом своей команды (а это более 5 лет разработки мобильных игр для мобилок, консолей и других модных девайсов). Представляем вашему вниманию элегантную инструкцию с конкретными практическими советами.

1. Мотивация: зачем оно надо


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

Задача создания библиотеки кода обычно усложняется тем, что:
а) Библиотеку используют и расширяют несколько человек
б) Библиотека задействована одновременно на нескольких проектах

Наша библиотека общего кода существует на протяжении уже четырёх лет. Начиналось всё с пары классов на Objective-C. Затем мы перешли на C++ и в несколько раз увеличили библиотеку. Сейчас работаем в Unity3d, и библиотека общего кода насчитывает уже около 400 классов.
Читать дальше →
Total votes 22: ↑17 and ↓5+12
Comments9

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity