Как стать автором
Обновить
0
0
Павел Фоменко @Lord_Genry

System Architect

Отправить сообщение

Самую холодную капельку во Вселенной уронили с высокой колокольни

Время на прочтение18 мин
Количество просмотров46K

И остались довольны результатом. Теперь хотят отправить ее на орбиту Земли.

Сегодня мы попробуем разобраться в физике пятого состояния материи и выясним, зачем ее сбрасывать с башни.
Читать дальше →
Всего голосов 80: ↑78 и ↓2+113
Комментарии38

Как Discord каждый день изменяет размер 150 млн картинок с помощью Go и C++

Время на прочтение7 мин
Количество просмотров20K


Хотя Discord — это приложение для голосового и текстового чата, каждый день через него проходит более ста миллионов изображений. Конечно, мы бы хотели, чтобы задача была простой: просто перенаправить картинки вашим друзьям по всем каналам. Но в реальности доставка этих изображений создаёт довольно большие технические проблемы. Прямая ссылка на картинки выдаст хосту с картинкой IP-адреса пользователей, а большие изображения расходуют много трафика. Чтобы избежать этих проблем, требуется промежуточный сервис, который будет получать изображения для пользователей и изменять их размер для экономии трафика.

Встречайте Image Proxy


Для выполнения этой работы мы создали сервис Python и креативно назвали его Image Proxy. Он загружает картинки с удалённых URL, а затем выполняет ресурсоёмкую задачу по ресайзингу с помощью пакета pillow-simd. Этот пакет работает удивительно быстро, используя где только возможно для ускорения ресайзинга инструкции x86 SSE. Image Proxy будет получать HTTP-запрос, содержащий URL, чтобы загрузить, изменить размер и, наконец, выдать окончательное изображение.
Читать дальше →
Всего голосов 41: ↑37 и ↓4+33
Комментарии12

Введение в нейронные сети на Golang

Время на прочтение2 мин
Количество просмотров32K
Привет читателям Habrahabr! В этой статье я продемонстрирую вам пример простой нейронной сети на языке Golang с использованием готовой библиотеки.

Немного предисловия


Начав изучать язык программирования Golang, мне стало интересно, что может этот язык в сфере машинного обучения. Тогда я начал искать примеры кода какой-либо НС на этом языке. К сожалению, ничего толкового найти не получилось. И вот тогда я решил переписать НС из этой статьи под GO.
Читать дальше →
Всего голосов 28: ↑20 и ↓8+12
Комментарии19

Настройка Sublime Text 3, SW4 и STM32CubeMX для разработки STM32 под Linux

Время на прочтение13 мин
Количество просмотров20K

Подобных статей достаточно много на просторах интернета, но хотелось бы написать актуальную вариацию. Лично я долгое время мучался в связке: Ubuntu — основная система, разработка под STM32 в виртуальной машине Windows 7. Но однажды меня это очень утомило и я таки решил потратить несколько дней на поиск решения и вылизывание полноценной среды под Linux Ubuntu. Забегу вперёд и скажу, что идеала я так и не добился, не удалось сделать realtime debug, как в Keil. В остальном всё очень пристойно.


Внимание, очень много текста и картинок!

Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии19

Типы struct, union и enum в Modern C++

Время на прочтение9 мин
Количество просмотров156K

Язык C++ сильно изменился за последние 10 лет. Изменились даже базовые типы: struct, union и enum. Сегодня мы кратко пройдёмся по всем изменениям от C++11 до C++17, заглянем в C++20 и в конце составим список правил хорошего стиля.

Читать дальше →
Всего голосов 64: ↑62 и ↓2+60
Комментарии63

Укрощаем мультимедиа с помощью ffmpeg

Время на прочтение3 мин
Количество просмотров88K

Внезапно ваш диск под завязку забит фотографиями и видео, а впереди новые поездки. Что делать, покупать новый, арендовать дисковое пространство на облаке, или может лучше сжать видео файлы через ffmpeg?





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

Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии33

DARPA заказало разработку мозговых имплантатов высокого разрешения для интерфейса «мозг-компьютер»

Время на прочтение3 мин
Количество просмотров13K

Иллюстрация: Paradromics

Управление перспективных исследовательских проектов Министерства обороны США (DARPA) заключило шесть контрактов на разработку нейроинтерфейсов по программе Neural Engineering System Design (NESD). Эта программа ставит целью «значительно улучшить возможности для исследований нейротехнологий и обеспечить основу для новых методов лечения».

На практике DARPA стремится разработать имплантируемый нейроинтерфейс, который обеспечит «беспрецедентные разрешение сигнала и скорость передачи данных между человеческим мозгом и цифровым миром». В техзадании указано, что интерфейс должен работать как конвертор-переводчик, преобразуя электрохимические сигналы мозга в цифровой код (нули и единицы), который используется в информатике. И выполнять обратное преобразование для записи данных в мозг. Цель — коммуникационное устройство для интерфейса «мозг-компьютер» объёмом не более 1 см3.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии32

Стабильность нейтрона в атомном ядре

Время на прочтение7 мин
Количество просмотров22K
Факт, ставящий в тупик многих из тех, кто впервые изучает природу обычной материи – то, что в ядре любого атома тяжелее водорода содержатся как протоны, так и нейтроны, но при этом нейтроны распадаются (дезинтегрируются в другие частицы) в среднем за 15 минут! Как же могут ядра углерода, кислорода, азота, кремния быть настолько стабильными, если нейтроны, из которых они состоят, не могут выживать сами по себе?

Ответ на этот вопрос оказывается очень простым после того, как вы поймёте, как работает энергия: это чистая бухгалтерия. Но понять энергию вовсе не просто. Для начала нужно прочесть статью о видах энергии. А до этого необходимо ознакомиться со статьёй об энергии, импульсе и массе. Эти концепции нужно представлять перед тем, как понять ответ на заданный вопрос.

Если вы прочли статью об энергии взаимодействия, вы знаете, что атом водорода состоит из протона и электрона, которые, из-за отрицательной энергии связи, неспособны убежать друг от друга – они заперты внутри атома. Отрицательная энергия связи происходит из отрицательной энергии взаимодействия, частично сбалансированной положительной энергией движения электрона (и немного – протона). Энергия взаимодействия происходит из воздействия электрона на электрическое поле близ протона (и наоборот).
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии11

Как проинвертировать три сигнала двумя инверторами или их роль в истории ЭВМ

Время на прочтение2 мин
Количество просмотров16K
Задачу «Можно ли проинвертировать три сигнала, если у вас есть только два инвертора, и неограниченное количество элементов „И“ и „ИЛИ“? мы решали в институте за одну пару. Сейчас ее решение ставит в тупик даже продвинутых специалистов. Давайте посмотрим как с ней справится geektimes-сообщество, а заодно попробую восстановить истории ее возникновения…
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии37

Как я боролся с комарами. Личный опыт и тесты на себе

Время на прочтение8 мин
Количество просмотров278K

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


Всего голосов 61: ↑54 и ↓7+47
Комментарии372

Переписываем домашний проект на микросервисы (Java, Spring Boot, Gradle)

Время на прочтение13 мин
Количество просмотров73K

Введение


Image


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


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


Всё это было реализовано в виде прототипа — были пользователи, один урок и одна задача для него, возможность отправить код, который компилировался и исполнялся. Кое-какой фронтенд, но в статье о нём речи не будет. Технологии — Spring Boot, Spring Data, Gradle.


В статье будет реализован такой же прототип, но уже на микросервисах. Реализация будет наиболее простым путём (точнее наиболее простым, из известных мне). Реализация будет доступна любому, кто знаком со Spring.

Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии34

Обзор 98 одноплатных компьютеров. Часть 3

Время на прочтение11 мин
Количество просмотров54K
Часть 1
Часть 2
Часть 3
Часть 4

NanoPC-T3



Компания/проект — FriendlyElec (FriendlyARM)
Обзор LinuxGizmos
Страница продукта
CPU — Samsung S5P6818 (8x Cortex-A53 @ 400MHz to 1.4GHz); Mali-400 MP GPU
Память — 1GB или 2GB DDR3 RAM; 8GB eMMC
Цена — $60

Компания FriendlyElec (также известная как FriendlyARM) предлагает сейчас как минимум дюжину одноплатников, что превышает наш порог в 10 устройств на компанию, и это заставило нас исключить некоторые из них из нашего первого списка. Несколько сходных продуктов мы объединили в один пункт, модель NanoPi. Размер платы NanoPC-T3 100 x 60mm. Это одна из наиболее развитых плат от FriendlyElec. Она оснащена восьмиядерным Samsung S5P6818. Плата NanoPC-T3 SBC практически идентична более ранним, четырёхядерным NanoPC-T2. В дополнение к более быстрому процессору, плата T3 добавляет опцию 2GB RAM. Также обе платы NanoPC имеют слот SD, GbE, WiFi, и Bluetooth 4.0. На платах установлены четыре USB host, micro-USB client, и медиапорты, включая HDMI, LVDS, LCD, MIPI-DSI, MIPI-CSI, и аудио. Вместо обычного разъёма 40-pin RPi, NanoPC-T3 имеет 30-pin разъём GPIO.
 
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии30

Обзор 98 одноплатных компьютеров. Часть 2

Время на прочтение12 мин
Количество просмотров36K
Часть 1
Часть 2
Часть 3
Часть 4

DE0-Nano-SoC Development Kit / Atlas-SoC Kit



Компания/проект — Terasic; RocketBoards.org
Страница продукта
CPU — Intel (Altera) Cyclone V SE (Cyclone V FPGA + 2x Cortex-A9 @ 952MHz)
Память — 1GB DDR3 RAM
Цена — $99

Плата DE0-Nano-SoC Development Kit выгладит как коммерческая отладочная плата, но имеет открытые спецификации и стоит всего $99, что выглядит разумной ценой для платы на основе Cyclone V. Плата DE0-Nano-SoC использует более low-end разновидность SE, которая примерно эквивалентна Xilinx Zynq-7020. Эта SoC объединяет FPGA и два ядра Cortex-A9 под управлением Angstrom v2014.12 Yocto 1.7 с ядром Linux 4.0. На плате есть GbE, USB OTG, порты micro-USB, и слот microSD катрочкой на 4GB. Также есть акселерометр, разъем расширения, подсоединённый к ARM, и различные интерфейсы, подсоединённые к FPGA, включая 40-pin разъём, совместимый с шилдами Ардуино. Есть идентичная версия Atlas-SoC, имеющая программное обеспечения, рассчитанное больше на программистов, чем на разработчиков железа. Есть сообщество на RocketBoards.org.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии5

Обзор 98 одноплатных компьютеров. Часть 1

Время на прочтение14 мин
Количество просмотров137K
Часть 1
Часть 2
Часть 3
Часть 4

От переводчика: Предлагаю вашему вниманию перевод отчёта по одноплатным компьютерам, который был опубликован на сайте LinuxGizmos.com. В отчёт включены краткие описания 98 плат стоимостью до 200 долларов. В отчёте такие платы называют «хакерскими», чтобы подчеркнуть их пригодность для различного творчества.
Так как объем информации весьма велик, я разбил перевод на несколько частей.

Также хочу предупредить, что под катом очень много картинок!

Итак, часть 1.



КДПВ

В течение последнего года, LinuxGizmos сообщал о дюжинах новых одноплатных компьютерах с открытыми спецификациями, дружественных к разработчикам и «хакерам», на которых можно запустить Linux и Android. Мы добавили их в наш каталог вместе со старыми платами. Платы, попавшие в наш обзор, стоят меньше 200 долларов без учёта пересылки, доступны для доставки в июле этого года, и удовлетворяют нашим (весьма гибким) критериям открытости.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии34

Используем template + constexpr для создания масок регистров периферии микроконтроллера на этапе компиляции (C++14)

Время на прочтение15 мин
Количество просмотров11K

Введение


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

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



Заинтересовавшихся в том, как это можно сделать, прошу под кат.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии9

Солнечная батарея на балконе: тестирование батареи ионисторов

Время на прочтение4 мин
Количество просмотров46K
Привет geektimes.

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

Конечно, параметры ионисторов можно найти в даташите и посчитать все что надо. Но так не интересно, куда интереснее померять самостоятельно. Для этого на ebay была заказана плата с длинным названием 6Pcs Farad Capacitor 2.7V 500F with Protection Board.



Как это работает, подробности под катом.
Всего голосов 50: ↑49 и ↓1+48
Комментарии127

Одна модель для обучения всему. Google открыла библиотеку Tensor2Tensor

Время на прочтение3 мин
Количество просмотров21K
Последние успехи глубинного обучения и нейросетей распространились на широкий спектр приложений и продолжают распространяться дальше: от машинного зрения до распознавания речи и на многие другие задачи. Свёрточные нейросети лучше всех проявляют себя в задачах на зрение, а рекуррентные нейросети показали успех в задачах обработки естественного языка, в том числе в приложениях машинного перевода. Но в каждом случае для каждой конкретной задачи проектируется специфическая нейронная сеть. Такой подход ограничивает применение глубинного обучения, потому что проектирование нужно выполнять снова и снова для каждой новой задачи. Это также отличается от того, как работает человеческий мозг, который умеет обучаться нескольким задачам одновременно, да ещё извлекает выгоду из переноса опыта между задачами. Авторы научной работы «Одна модель для обучения всему» из группы Google Brain Team задались естественным вопросом: «Можем ли мы создать унифицированную модель глубинного обучения, которая будет решать задачи из разных областей?»

Оказалось, что можем. Google сделала это — и открыла Tensor2Tensor для всеобщего пользования, код опубликован на GitHub.
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии6

Расширение, изменение и создание элементов управления на платформе UWP. Часть 1

Время на прочтение8 мин
Количество просмотров5.6K


В 2006 году вместе с .NET 3.0 разработчикам были предоставлены программные платформы WPF и Silverlight. На протяжении следующих десяти лет Microsoft выпускала новые версии своей операционной системы и соответствующие им платформы. И вот, в 2016 году вместе с Windows 10 была выпущена Universal Windows Platform.

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

Эти задачи обусловлены тем, что на любой платформе разработчик располагает ограниченным набором элементов управления необходимых для разработки приложений. Его инструментарий составляют элементы из поставки Microsoft (в случае с UWP — Windows Universal Platform SDK) и от сторонних поставщиков или разработчиков. Даже все вместе они не могут покрыть всех требований, которые появляются при разработке приложений. Имеющиеся элементы управления могут не устраивать по ряду причин: внешний вид, поведение или функционирование. К сожалению, по сей день нет единого источника информации, который подробно и доступно освещал бы решения данных задач. Все, что остается разработчикам на протяжении длительного времени — собирать информацию в интернете крупица за крупицей.

Целью данной серии из трех статей является систематизация способов изменения, расширения и создания новых элементов управления.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии7

GSM-сигнализация для автомобиля на базе Arduino Uno

Время на прочтение5 мин
Количество просмотров70K

Предисловие


Кражи автомобилей на протяжении последнего десятилетия занимают одно из значимых мест в структуре совершаемых в мире преступлений. Это обусловлено не столько удельным весом данной категории хищений относительно общего количества преступлений, сколько существенностью причиняемого ущерба ввиду большой стоимости автомобилей. Слабая эффективность принимаемых мер в области борьбы с кражами автотранспорта к концу 90-х годов привела к созданию устойчивых групп, специализирующихся на совершении данных преступлений и обладающих отличительными чертами организованной преступности; вы наверняка слышали термин «черный автобизнес». Автомобильный парк европейских государств ежегодно не досчитывается ≈ 2 % машин, которые становятся предметом преступных посягательств. Поэтому мне пришла идея сделать gsm-сигнализацию для своего автомобиля на базе Arduino Uno.


Начнём!
Читать дальше →
Всего голосов 19: ↑15 и ↓4+11
Комментарии81

Подборка полезных материалов по Azure

Время на прочтение4 мин
Количество просмотров9.1K
У нас накопилось много бесплатных материалов по работе с облаком, поэтому мы решили поделиться с вами самыми последними из них. Под катом вы найдёте описание 6 курсов и 12 книг/гайдов по обучению работе с Azure.


Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии2
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность