Pull to refresh
-22
0.6
авост, TRAP, а может быть даже и CRASH. @avost

Сижу, ни кого не трогаю, починяю примусы

Send message

Устройство умного приёмника звука в составе сетецентрической системы установления координат источника звука

Level of difficulty Medium
Reading time 9 min
Views 1.8K

Живый в помощи Вышняго,
в крове Бога Небеснаго водворится …

Псалом 90.

Данная статья является продолжением статьи «Концепции устройства приёмника умного звукового датчика на базе шины CAN»

Авторы настоящей статьи объединили свои усилия в разработке компактной малоресурсной дешевой сетецентрической системы контрбатарейной борьбы для защиты жизней людей.

В статье представлено наше понимание вопроса устройства умных приёмников звука и их совместной работы в составе сетецентрической системы для установления 3–х мерных координат источника звука.

Читать далее
Total votes 7: ↑6 and ↓1 +5
Comments 34

Основы тайм-менеджмента: как эффективно распоряжаться своим временем

Reading time 6 min
Views 29K

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

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

Читать далее
Total votes 38: ↑34 and ↓4 +30
Comments 29

Заблуждения программистов о времени

Reading time 12 min
Views 72K

Музей-скансен эпохи Средневековья в Дании в режиме обычной работы (слева) ставит целью воссоздать повседневную жизнь города на стыке XIV и XV веков. Для съёмок фильма (справа) он «погрязнел»

Для киносъёмок в музей под открытым небом Middelaldercentret внесли несколько изменений. Вместо аккуратной каменной улицы развели неприятную кашицу из грязи, не самые роскошные стеклянные окна прикрыли досками и развесили везде выцветшее тряпьё. Здания как следует измазали чем-то коричневым, кое-где зачем-то перемешав субстанцию с соломой. В случайное здание воткнули факел, а не попытались изобразить лучину или фонарь.

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

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

Попытки собрать заблуждения про время и часовые пояса на Хабре уже были шесть и десять лет назад. Но без контрпримеров не так интересно.

Заблуждение 1. В сутках 24 часа или 86 400 секунд


Иногда и кое-где стрелки часов переводят, создавая сутки длиной в 23 и 25 часов — всё очевидно. Будет неплохо углубиться в случаи поэкзотичней.
Читать дальше →
Total votes 191: ↑184 and ↓7 +177
Comments 313

Курс по Ruby+Rails. Часть 1. Императивное программирование

Reading time 11 min
Views 7.6K

Компания Evrone работает на рынке веб-разработки уже 13 лет. Ruby on Rails — одна из технологий, которую мы используем часто, поэтому накопили внушительный багаж знаний — от продвинутых приёмов программирования на Ruby до эффективного использования «магии» Rails.

Чтобы делиться этими знаниями, мы запускали в тестовом режиме Evrone Academy — платформу для обучения программированию. Сейчас она на паузе, но мы хотим публично поделиться лекциями и знаниями с теми, кто хочет поближе познакомиться с Ruby уже сейчас, в привычной хабра-обстановке.

Читать далее
Total votes 18: ↑17 and ↓1 +16
Comments 13

Удачный шаблон документации на API, который будут читать

Reading time 4 min
Views 52K

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

Вы бы стали читать рецепт из 10 страниц, чтобы приготовить салат? Что-то я сомневаюсь. Схожая ситуация бывает в документации, когда она пишется без шаблона по принципу "чем больше, тем лучше".

Если ваши  документы не читают, не понимают, или вы не знаете с чего начать описывать интеграцию,  то эта статья для вас.

Я тех.лид системных аналитиков и прошла долгий путь к шаблонам документации в разных компаниях.

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 11

«Как жить без стрелок» или не так страшен сплит…

Reading time 11 min
Views 27K

"Как жить без стрелок" или не так страшен сплит...


КДПВ
Источник


Введение


В последнее время на Хабре появляется всё больше статей о кастомных клавиатурах вообще и об эргономичных сплит клавиатурах (эргосплит) в частности. И это хорошо, ведь, глядя на ассортимент клавиатур в магазинах электроники, можно подумать, что альтернативы стандартным клавиатурам нет, а это далеко не так. Однако…
Не так давно вышла статья Эргономичная раздельная клавиатура. Iris. И знаете, какой комментарий набрал наибольшее количество голосов?


Что вы там этими клавиатурами набираете? Как жить без стрелок, PgUp/PgDn и прочего? А для почти всех IDE нужны F-клавиши.
Переключаться между десятком режимов, забивая ими голову, и скроллить через HJKL?
Каждый раз, когда вижу такие изделия, впечатление что это для того, чтобы было "как в кино у хакеров".
Эргономика должна быть не только для пальцев, но и для мозга.

Неужели с эргосплитами всё так плохо?

Читать дальше →
Total votes 43: ↑41 and ↓2 +39
Comments 116

8 ML/AI-проектов, которые украсят ваше портфолио

Reading time 6 min
Views 18K
Автор материала, перевод которого мы сегодня публикуем, предлагает вниманию читателей 8 идей проектов в сферах машинного обучения и искусственного интеллекта. Описание идей сопровождается ссылками на дополнительные материалы. Реализации этих идей способны украсить портфолио проектов профильного специалиста.


Читать дальше →
Total votes 38: ↑35 and ↓3 +32
Comments 1

Реализация offline режима для Yandex.Music

Reading time 9 min
Views 18K

Введение


Сегодня мы будем рассматривать такой достаточно известный музыкальный сервис, как Yandex.Music. Хороший в целом сервис, но с существенным недостатком — невозможностью работы оффлайн. Мы попробуем исправить это досадное недоразумение, используя подручные инструменты.


Инструментарий


Итак, нам понадобится:


  • Относительно свежий python: 3.7 и выше
  • Всякая асинхронщина: aiohttp и aiofile
  • Классический инструмент для работы с html-API: BeautifulSoup
  • Для развлечения пользователя во время процесса: tqdm
  • Для заполнения тэгов: mutagen
Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 9

База данных простых чисел до ста миллиардов на коленке

Reading time 7 min
Views 12K
image

Самый известный алгоритм для нахождения всех простых чисел, не больших заданного, – решето Эратосфена. Он замечательно работает для чисел до миллиардов, может быть, до десятков миллиардов, если аккуратно написан. Однако каждый, кто любит развлекаться с простыми числами, знает, что их всегда хочется иметь под рукой как можно больше. Как-то раз мне для решения одной задачи на хакерранке понадобилась in-memory база данных простых чисел до ста миллиардов. При максимальной оптимизации по памяти, если в решете Эратосфена представлять нечетные числа битовым массивом, его размер будет около 6 гигабайт, что в память моего ноутбука не влезало. Существует модификация алгоритма, гораздо менее требовательная по памяти (делящая исходный диапазон чисел на несколько кусков и обрабатывающая по одному куску за раз) – сегментированное решето Эратосфена, но она сложнее в реализации, и результат целиком в память все равно не влезет. Ниже предлагаю вашему вниманию алгоритм почти такой же простой, как и решето Эратосфена, но дающий двукратную оптимизацию по памяти (то есть, база данных простых чисел до ста миллиардов будет занимать около 3 гигабайт, что уже должно влезать в память стандартного ноутбука).
Читать дальше →
Total votes 36: ↑35 and ↓1 +34
Comments 28

Подборка академических и науч-поп источников

Reading time 5 min
Views 12K
Академическое знание давно уже обитает в интернете, и как и любая информация, индексируется поисковыми машинами и базами данных. Я говорю о более широкой категории знаний, чем STEM (Science Technology Engineering and Mathematics), основным критерием академических источников является их рецензирование (например, скопусовский журнал Modern Theology является рецензируемым источником, хотя не все согласятся назвать его научным, а вот академическим, пожалуйста). Однако, насколько обычный пользователь интернета представляет себе этот сектор Сети, знает где, что, и как искать, умеет различать надежность различных академических источников, имеет доступ к этим источникам, а также понимает всю сложность и объем академического знания? Мне не встречалось каких-либо обзоров на русском языке, в котором была бы представлена информация, рамочно характеризующая условный «Scholarnet», дающая общее представление, справку, прочтя которую, можно было эффективно академическим знанием пользоваться. Я решил составить обзор источников академической информации, и источников, вторичных к ним (пресс-релизы научных новостей и науч-поп). Сразу оговорюсь, обзор произволен, и не выведен из какой-то точной методологии, но это лучше чем его отсутствие. Описав при этом разные потоки данных, с которыми может взаимодействовать самые разные люди: от самих исследователей до, как принято говорить в аннотациях книг, «широкого круга читателей» (в т.ч. википедистов, журналистов, участников интернет-споров, и т.д.). Также прошу заранее извинить за огрехи оформления, по мере возможности постараюсь исправить то, на что укажет читатель (желательно в ЛС).
Читать дальше →
Total votes 27: ↑25 and ↓2 +23
Comments 25
Пока вы читаете это вступление, больше миллиарда людей на планете лишены свободного доступа к воде, пригодной для питья. Она всегда была ценнейшим ресурсом, а доступ к чистой воде часто определял уровень развития цивилизации. Откуда берется «нормальная» вода? Не только из промышленных систем очистки, но и из простых домашних фильтров, которые пора протестировать и досконально изучить.
Подробности – под катом
Total votes 50: ↑31 and ↓19 +12
Comments 97

Как «научиться учиться» — советы, рекомендации и научные исследования

Reading time 6 min
Views 135K

Часть 1. «Очевидные» советы


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

Все это, безусловно, хорошо, но чем конкретно эти прописные истины могут помочь студенту? Как организовать режим дня так, чтобы больше успевать и лучше запоминать материал? Есть ли реальная связь между чувством жажды и когнитивными способностями? Правда ли, что спорт помогает в учебе (и речь не только о дополнительных баллах к ЕГЭ за значок ГТО)?

Попробуем разобраться со всем ниже.

Читать дальше →
Total votes 26: ↑23 and ↓3 +20
Comments 18

Реактивная работа с Bluetooth в реальных условиях

Reading time 11 min
Views 11K

Небольшое предисловие, или в чем же боль


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


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


Опасности на пути джедая


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


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

Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 6

Знакомство с реактивными потоками – для Java-разработчиков

Reading time 12 min
Views 22K
Привет, Хабр!

Сегодня мы вернемся к одной из тем, затрагиваемых в нашей замечательной книге "Реактивные шаблоны проектирования". Речь пойдет об Akka Streams и потоковой передаче данных в целом — в книге Роланда Куна этим вопросам посвящены главы 10 и 15-17.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Comments 4

Конкурентность: Кооперативность

Reading time 6 min
Views 22K

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


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


В этой мы посмотрим на ещё две модели, одна из которых не делает такого вида, а вторая смотрит на конкурентные вычисления с более абстрактной стороны.


Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Comments 10

Магические битборды и русские шашки

Reading time 9 min
Views 11K
Данная статья — иллюстрация, каким образом битовые трюки могут быть использованы не только в задачах на собеседованиях, но и при решении реальных задач. В статье дано описание одного метода быстрой генерации ходов в русских шашках на основе магических битбордов (magic bitboard). Битборды — представление позиции в виде нескольких беззнаковых целых чисел, каждый бит которого отвечает за состояние некоторого элемента игры, например клетки. Обычно использование битбордов даёт выигрыш по производительности и по объёму используемой памяти, но связано с более изощрённым программированием. При этом часто возникает задача получения значения определённых бит в битборде, например, для последующего обращения к таблице. Есть два основных подхода к решению этой задачи. Первый — использование и поддержка избыточного представления в виде дополнительных битбордов с перенумерацией битов. Такие битборды асто называют вращаемые. Второй способ — умножение на магическую константу, сдвиг и обращение к таблице. О таких магических битбордах и пойдёт речь в этой статье.
Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Comments 2

Теория решения изобретательских задач на пальцах

Reading time 4 min
Views 123K
Представьте, перед вами встала проблема, как улучшить какую-то вещь, или как что-то заставить работать. Как придумать что-то новое? Для этого и была придумана Теория решения изобретательских задач. В данном топике я на пальцах попробую рассказать, о чем это


Читать дальше →
Total votes 19: ↑11 and ↓8 +3
Comments 26

Стилизация изображений с помощью нейронных сетей: никакой мистики, просто матан

Reading time 14 min
Views 91K

Приветствую тебя, Хабр! Наверняка вы заметили, что тема стилизации фотографий под различные художественные стили активно обсуждается в этих ваших интернетах. Читая все эти популярные статьи, вы можете подумать, что под капотом этих приложений творится магия, и нейронная сеть действительно фантазирует и перерисовывает изображение с нуля. Так уж получилось, что наша команда столкнулась с подобной задачей: в рамках внутрикорпоративного хакатона мы сделали стилизацию видео, т.к. приложение для фоточек уже было. В этом посте мы с вами разберемся, как это сеть "перерисовывает" изображения, и разберем статьи, благодаря которым это стало возможно. Рекомендую ознакомиться с прошлым постом перед прочтением этого материала и вообще с основами сверточных нейронных сетей. Вас ждет немного формул, немного кода (примеры я буду приводить на Theano и Lasagne), а также много картинок. Этот пост построен в хронологическом порядке появления статей и, соответственно, самих идей. Иногда я буду его разбавлять нашим недавним опытом. Вот вам мальчик из ада для привлечения внимания.


Читать дальше →
Total votes 145: ↑141 and ↓4 +137
Comments 38

«Паттерны» функционального программирования

Reading time 10 min
Views 70K

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

До недавнего времени такой взгляд на вещи действительно был недалек от истины: говорим ФП, подразумеваем Хаскель и теорию категорий. В последнее время ситуация изменилась и функциональная парадигма набирает обороты в web-разработке, не без помощи F#, Scala и React. Попробуем взглянуть на «паттерны» функционального программирования, полезные для решения повседневных задач с точки зрения ООП – парадигмы.

ООП широко распространено в разработке прикладного ПО не одно десятилетие. Все мы знакомы с SOLID и GOF. Что будет их функциональным эквивалентом?.. Функции! Функциональное программирование просто «другое» и предлагает другие решения.


Читать дальше →
Total votes 61: ↑56 and ↓5 +51
Comments 361

Введение в машинное обучение с tensorflow

Reading time 12 min
Views 193K
Если мы в ближайшие пять лет построим машину с интеллектуальными возможностями одного человека, то ее преемник уже будет разумнее всего человечества вместе взятого. Через одно-два поколения они попросту перестанут обращать на нас внимание. Точно так же, как вы не обращаете внимания на муравьев у себя во дворе. Вы не уничтожаете их, но и не приручаете, они практически никак не влияют на вашу повседневную жизнь, но они там есть.
Сет Шостак

Введение.


Серия моих статей является расширенной версией того, что я хотел увидеть когда только решил познакомиться с нейронными сетями. Он рассчитан в первую очередь на программистов, желающих познакомится с tensorflow и нейронными сетями. Уж не знаю к счастью или к сожалению, но эта тема настолько обширна, что даже мало-мальски информативное описание требует большого объёма текста. Поэтому, я решил разделить повествование на 4 части:

  1. Введение, знакомство с tensorflow и базовыми алгоритмами (эта статья)
  2. Первые нейронные сети
  3. Свёрточные нейронные сети
  4. Рекуррентные нейронные сети

Изложенная ниже первая часть нацелена на то, чтобы объяснить азы работы с tensorflow и попутно рассказать, как машинное обучение работает впринципе, на примере tensorfolw. Во второй части мы наконец начнём проектировать и обучать нейронные сети, в т.ч. многослойные и обратим внимание на некоторые нюансы подготовки обучающих данных и выбора гиперпараметров. Поскольку свёрточные сети сейчас пользуются очень большой популярность, то третья часть выделена для подробного объяснения их работы. Ну, и в заключительной части планируется рассказ о рекуррентных моделях, на мой взгляд, — это самая сложная и интересная тема.
Читать дальше →
Total votes 54: ↑49 and ↓5 +44
Comments 9

Information

Rating
1,485-th
Location
Россия
Registered
Activity

Specialization

Backend Developer