Любое несоблюдение требований законодательства влечет свои санкции. Под удар попадают как небольшие фирмы, так и гиганты индустрии: их штрафуют, иногда — топ-менеджеров отправляют на скамью подсудимых, и во всех случаях — общественное осуждение нередко достигает таких масштабов, что фирма, некогда успешно функционировавшая, оказывается на грани краха. Разберем относительно недавние кейсы.
Сижу, никого не трогаю, починяю примусы
Устройство умного приёмника звука в составе сетецентрической системы установления координат источника звука
Живый в помощи Вышняго,
в крове Бога Небеснаго водворится …
Псалом 90.
Данная статья является продолжением статьи «Концепции устройства приёмника умного звукового датчика на базе шины CAN»
Авторы настоящей статьи объединили свои усилия в разработке компактной малоресурсной дешевой сетецентрической системы контрбатарейной борьбы для защиты жизней людей.
В статье представлено наше понимание вопроса устройства умных приёмников звука и их совместной работы в составе сетецентрической системы для установления 3–х мерных координат источника звука.
Основы тайм-менеджмента: как эффективно распоряжаться своим временем
Многим из нас хочется больше времени проводить с семьей, чаще встречаться с друзьями, ходить в спортзал два-три раза в неделю, уделять время развитию, а ещё — заниматься любимым хобби. Но в будни обычно времени хватает на одну-две сферы, и для многих в ИТ работа занимает значительную часть дня. В выходные же на что-то активное часто нет сил.
Как соблюдать баланс между работой и личной жизнью? Как научиться эффективно управлять временем и успевать больше? Как перестать тратить ценное свободное время впустую и сконцентрироваться на важном? На все эти вопросы мы искали ответы в рамках 10-дневного марафона по принципам тайм-менеджмента для сотрудников МойОфис. И с удовольствием сейчас поделимся с вами опытом.
Заблуждения программистов о времени
Музей-скансен эпохи Средневековья в Дании в режиме обычной работы (слева) ставит целью воссоздать повседневную жизнь города на стыке XIV и XV веков. Для съёмок фильма (справа) он «погрязнел»
Для киносъёмок в музей под открытым небом Middelaldercentret внесли несколько изменений. Вместо аккуратной каменной улицы развели неприятную кашицу из грязи, не самые роскошные стеклянные окна прикрыли досками и развесили везде выцветшее тряпьё. Здания как следует измазали чем-то коричневым, кое-где зачем-то перемешав субстанцию с соломой. В случайное здание воткнули факел, а не попытались изобразить лучину или фонарь.
Причина проста: кинозритель должен узнать на экране эпоху. Приходится снабжать снимаемое полным набором заблуждений про грязных неграмотных горожан, непрекращающиеся войны и еду без специй.
При проектировании информационных систем задача стоит ровно обратная: необходимо отразить реальность и не допустить в код собственные заблуждения. Ошибок восприятия много. По крайней мере, про карты и почтовые адреса получаются длинные списки.
Попытки собрать заблуждения про время и часовые пояса на Хабре уже были шесть и десять лет назад. Но без контрпримеров не так интересно.
Заблуждение 1. В сутках 24 часа или 86 400 секунд
Иногда и кое-где стрелки часов переводят, создавая сутки длиной в 23 и 25 часов — всё очевидно. Будет неплохо углубиться в случаи поэкзотичней.
Курс по Ruby+Rails. Часть 1. Императивное программирование
Компания Evrone работает на рынке веб-разработки уже 13 лет. Ruby on Rails — одна из технологий, которую мы используем часто, поэтому накопили внушительный багаж знаний — от продвинутых приёмов программирования на Ruby до эффективного использования «магии» Rails.
Чтобы делиться этими знаниями, мы запускали в тестовом режиме Evrone Academy — платформу для обучения программированию. Сейчас она на паузе, но мы хотим публично поделиться лекциями и знаниями с теми, кто хочет поближе познакомиться с Ruby уже сейчас, в привычной хабра-обстановке.
Удачный шаблон документации на API, который будут читать
Представьте, что в рецепте для приготовления еды была бы вводная часть о том, откуда привезли продукты, как их упаковывали и доставляли.
Вы бы стали читать рецепт из 10 страниц, чтобы приготовить салат? Что-то я сомневаюсь. Схожая ситуация бывает в документации, когда она пишется без шаблона по принципу "чем больше, тем лучше".
Если ваши документы не читают, не понимают, или вы не знаете с чего начать описывать интеграцию, то эта статья для вас.
Я тех.лид системных аналитиков и прошла долгий путь к шаблонам документации в разных компаниях.
«Как жить без стрелок» или не так страшен сплит…
"Как жить без стрелок" или не так страшен сплит...
Введение
В последнее время на Хабре появляется всё больше статей о кастомных клавиатурах вообще и об эргономичных сплит клавиатурах (эргосплит) в частности. И это хорошо, ведь, глядя на ассортимент клавиатур в магазинах электроники, можно подумать, что альтернативы стандартным клавиатурам нет, а это далеко не так. Однако…
Не так давно вышла статья Эргономичная раздельная клавиатура. Iris. И знаете, какой комментарий набрал наибольшее количество голосов?
Что вы там этими клавиатурами набираете? Как жить без стрелок, PgUp/PgDn и прочего? А для почти всех IDE нужны F-клавиши.
Переключаться между десятком режимов, забивая ими голову, и скроллить через HJKL?
Каждый раз, когда вижу такие изделия, впечатление что это для того, чтобы было "как в кино у хакеров".
Эргономика должна быть не только для пальцев, но и для мозга.
Неужели с эргосплитами всё так плохо?
8 ML/AI-проектов, которые украсят ваше портфолио
Реализация offline режима для Yandex.Music
Введение
Сегодня мы будем рассматривать такой достаточно известный музыкальный сервис, как Yandex.Music. Хороший в целом сервис, но с существенным недостатком — невозможностью работы оффлайн. Мы попробуем исправить это досадное недоразумение, используя подручные инструменты.
Инструментарий
Итак, нам понадобится:
База данных простых чисел до ста миллиардов на коленке
Самый известный алгоритм для нахождения всех простых чисел, не больших заданного, – решето Эратосфена. Он замечательно работает для чисел до миллиардов, может быть, до десятков миллиардов, если аккуратно написан. Однако каждый, кто любит развлекаться с простыми числами, знает, что их всегда хочется иметь под рукой как можно больше. Как-то раз мне для решения одной задачи на хакерранке понадобилась in-memory база данных простых чисел до ста миллиардов. При максимальной оптимизации по памяти, если в решете Эратосфена представлять нечетные числа битовым массивом, его размер будет около 6 гигабайт, что в память моего ноутбука не влезало. Существует модификация алгоритма, гораздо менее требовательная по памяти (делящая исходный диапазон чисел на несколько кусков и обрабатывающая по одному куску за раз) – сегментированное решето Эратосфена, но она сложнее в реализации, и результат целиком в память все равно не влезет. Ниже предлагаю вашему вниманию алгоритм почти такой же простой, как и решето Эратосфена, но дающий двукратную оптимизацию по памяти (то есть, база данных простых чисел до ста миллиардов будет занимать около 3 гигабайт, что уже должно влезать в память стандартного ноутбука).
Подборка академических и науч-поп источников
Как «научиться учиться» — советы, рекомендации и научные исследования
Часть 1. «Очевидные» советы
Большинство рекомендаций для желающих учиться лучше выглядит довольно банально: помимо посещения лекций и выполнения домашних заданий важно правильно питаться, вести здоровый образ жизни, высыпаться, и следить за режимом дня.
Все это, безусловно, хорошо, но чем конкретно эти прописные истины могут помочь студенту? Как организовать режим дня так, чтобы больше успевать и лучше запоминать материал? Есть ли реальная связь между чувством жажды и когнитивными способностями? Правда ли, что спорт помогает в учебе (и речь не только о дополнительных баллах к ЕГЭ за значок ГТО)?
Попробуем разобраться со всем ниже.
Реактивная работа с Bluetooth в реальных условиях
Небольшое предисловие, или в чем же боль
В последнее время я активно работаю над приложениями, которые имеют модули работы с Bluetooth по не-очень-хорошо спроектированным протоколам с кастомными устройствами, что периодически добавляет мне интересных угу, как же проблем.
Поскольку я искренний фанат реактивности в приложениях, то такие проблемы приходилось решать собственными силами, поскольку решений в сети просто нет. Совсем. О получившейся архитектуре работы с Bluetooth-устройствами я и хотел бы вам рассказать.
Опасности на пути джедая
Первый важный момент, о котором должен помнить разработчик, при работе с Bluetooth – пакеты могут повреждаться по пути. А еще – они могут сопровождаться шумом. И это не один случай из миллиона, подобные явления могут встречаться довольно часто, и их нужно обрабатывать. Еще блютус может отключиться, или не подключиться, или сделать вид что подключился, но на самом то деле мы знаем, что это ничего не значит...
В качестве примера решения этих задач, спроектируем микро-фреймворк для процессинга эвентов, которые детерминируются по типам с помощью шапки (первые N байт) и валидируются с помощью какой-нибудь простенькой чек-суммы. Для того, чтобы не загромождать код, примем допущение, что шапка по протоколу имеет фиксированный размер. Все пакеты же разделим на два типа: с фиксированной длиной, и с динамической, передаваемой отдельным байтом.
Знакомство с реактивными потоками – для Java-разработчиков
Сегодня мы вернемся к одной из тем, затрагиваемых в нашей замечательной книге "Реактивные шаблоны проектирования". Речь пойдет об Akka Streams и потоковой передаче данных в целом — в книге Роланда Куна этим вопросам посвящены главы 10 и 15-17.
Конкурентность: Кооперативность
Я продолжаю свой небольшой цикл статей относительно средств организации и реализации конкурентных вычислений.
В прошлой статье мы посмотрели на абстракцию потоков, позволяющую делать вид, что код функций выполняется одновременно и непрерывно.
В этой мы посмотрим на ещё две модели, одна из которых не делает такого вида, а вторая смотрит на конкурентные вычисления с более абстрактной стороны.
- Параллелизм (часть 1)
- Кооперативность (часть 2, текущая)
- Асинхронность (часть 3)
Магические битборды и русские шашки
Теория решения изобретательских задач на пальцах
Стилизация изображений с помощью нейронных сетей: никакой мистики, просто матан
Приветствую тебя, Хабр! Наверняка вы заметили, что тема стилизации фотографий под различные художественные стили активно обсуждается в этих ваших интернетах. Читая все эти популярные статьи, вы можете подумать, что под капотом этих приложений творится магия, и нейронная сеть действительно фантазирует и перерисовывает изображение с нуля. Так уж получилось, что наша команда столкнулась с подобной задачей: в рамках внутрикорпоративного хакатона мы сделали стилизацию видео, т.к. приложение для фоточек уже было. В этом посте мы с вами разберемся, как это сеть "перерисовывает" изображения, и разберем статьи, благодаря которым это стало возможно. Рекомендую ознакомиться с прошлым постом перед прочтением этого материала и вообще с основами сверточных нейронных сетей. Вас ждет немного формул, немного кода (примеры я буду приводить на Theano и Lasagne), а также много картинок. Этот пост построен в хронологическом порядке появления статей и, соответственно, самих идей. Иногда я буду его разбавлять нашим недавним опытом. Вот вам мальчик из ада для привлечения внимания.
«Паттерны» функционального программирования
Многие люди представляют функциональное программирование как нечто очень сложное и «наукоемкое», а представителей ФП-сообщества – эстетствующими философами, живущими в башне из слоновой кости.
До недавнего времени такой взгляд на вещи действительно был недалек от истины: говорим ФП, подразумеваем Хаскель и теорию категорий. В последнее время ситуация изменилась и функциональная парадигма набирает обороты в web-разработке, не без помощи F#, Scala и React. Попробуем взглянуть на «паттерны» функционального программирования, полезные для решения повседневных задач с точки зрения ООП – парадигмы.
ООП широко распространено в разработке прикладного ПО не одно десятилетие. Все мы знакомы с SOLID и GOF. Что будет их функциональным эквивалентом?.. Функции! Функциональное программирование просто «другое» и предлагает другие решения.
Информация
- В рейтинге
- 1 703-й
- Откуда
- Россия
- Зарегистрирован
- Активность