Как стать автором
Обновить
62
0

Пользователь

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

Фракталы в песках, или Больше трёх не собираться

Время на прочтение9 мин
Количество просмотров10K
Мы поговорим о модели песчаной кучи. Песок (не настоящий, модельный), пересыпаясь, создаёт вот такие картинки:



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

А ещё можно использовать эту штуку в качестве Hello world вместо игры «Жизнь».
Читать дальше →
Всего голосов 70: ↑70 и ↓0+70
Комментарии7

Мы ускорили планировщик Tokio в десять раз

Время на прочтение23 мин
Количество просмотров17K
Мы в поте лица готовим очередную мажорную версию Tokio, асинхронной среды выполнения для Rust. 13 октября для слияния в ветку оформлен пул-реквест с полностью переписанным планировщиком задач. Результатом станет огромное улучшение производительности и уменьшение задержки. В некоторых тестах зафиксировано десятикратное ускорение! Как обычно, синтетические тесты не отражают фактическую выгоду в реальности. Поэтому мы также проверили, как изменения в планировщике повлияли на настоящие задачи, такие как Hyper и Tonic (спойлер: результат замечательный).

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

Статья начинается с высокоуровневого обзора дизайна, в том числе политик захвата работы. Затем погрузимся в детали конкретных оптимизаций в новом планировщике Tokio.
Читать дальше →
Всего голосов 100: ↑99 и ↓1+98
Комментарии17

Пишем на Rust + CUDA C

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

Всем привет!

В данном руководстве хочу рассказать как подружить CUDA C/С++ и Rust. И в качестве примера напишем небольшую программу на Rust для вычисления скалярного произведения векторов, вычисление скалярного произведения будет производиться на GPU с использованием CUDA C.

Кому интересно под кат!
Читать дальше →
Всего голосов 58: ↑58 и ↓0+58
Комментарии44

Делаем сервис по распознаванию изображений с помощью TensorFlow Serving

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

image

Всегда наступает то самое время, когда обученную модель нужно выпускать в production. Для этого часто приходится писать велосипеды в виде оберток библиотек машинного обучения. Но если Ваша модель реализована на Tensorflow, то у меня для Вас хорошая новость — велосипед писать не придется, т.к. можно использовать Tensorflow Serving.


В данной статье мы рассмотрим как использовать Tensorflow Serving для быстрого создания производительного сервиса по распознаванию изображений.

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

Юзерскрипт для улучшения интерфейса Feedly в стиле Google Reader

Время на прочтение1 мин
Количество просмотров29K
В каталоге UserScripts.org появился удобный скрипт Readly, который оптимизирует интерфейс RSS-агрегатора Feedly для быстрого чтения сотен и тысяч фидов.

Скрипт растягивает строчки по всей ширине экрана и уплотняет разметку, заполняя максимум пространства.


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

Почему у пространства три измерения? Доказывается при помощи «Трех апельсинов»

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

Дворец китайского императора, парадная зала, заседание Дивана. Перед надменной принцессой Турандот влюбленный в нее принц Калаф.
Турандот: И ты, чужестранец, готов рискнуть жизнью в напрасной надежде добиться моей руки?
Калаф: Готов, моя возлюбленная принцесса.
Турандот: Ну отлично, ты подписал себе смертный приговор. Чтобы поскорей покончить с формальностями, ограничусь одним вопросом вместо трех. Вопрос такой: ПОЧЕМУ У ПРОСТРАНСТВА ТРИ ИЗМЕРЕНИЯ, А НЕ ДВА ИЛИ ЧЕТЫРЕ?
Калаф: Нет ничего проще. Но для ответа мне потребуется доска с принадлежностями для письма и три апельсина.
Турандот: Принесите ему, что просит. А палач пусть приготовится.

Читать дальше →
Всего голосов 99: ↑40 и ↓59-19
Комментарии276

Молекулярный компьютер 3000000 вековой давности

Время на прочтение5 мин
Количество просмотров44K
Говорят, что все изобретения человечества были «подмечены» у природы, или хотя бы имеют природные аналоги; например, у самолёта в природе есть аналог — птица. А есть ли аналог компьютера и компьютерных программ?
Это — биологическая клетка, которая и будет рассмотрена в этом посте с точки зрения программиста, как молекулярный компьютер. Вы узнаете, что многие современные способы и алгоритмы обработки информации появились не в 1980-х годах, а на многие миллионы лет раньше.

Читать дальше →
Всего голосов 125: ↑117 и ↓8+109
Комментарии73

Обзор методов эволюции нейронных сетей

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


Выбор топологии и настройка весов связей искусственной нейронной сети (ИНС) являются одними из важнейших этапов при использовании нейросетевых технологий для решения практических задач. От этих этапов напрямую зависит качество (адекватность) полученной нейросетевой модели, системы управления и т.д.

Построение искусственной нейронной сети по традиционной методике выполняется, фактически, методом проб и ошибок. Исследователь задает количество слоев, нейронов, а также структуру связей между ними (наличие/отсутствие рекуррентных связей), а затем смотрит, что же у него получилось — сеть обучается с помощью какого-либо метода, а затем тестируется на тестовой выборке. Если полученные результаты работы удовлетворяют заданным критериям, то задача построения ИНС считается выполненной успешно; в противном случае — процесс повторяется с другими значениями исходных параметров.

Естественно, бурное развитие теории и практики использования генетических алгоритмов, заставило исследователей (лень — двигатель прогресса) искать способы применить их к задаче поиска оптимальной структуры ИНС (эволюция нейронных сетей или нейроэволюция), тем более, что, так сказать, proof-of-concept был налицо, или, точнее, в голове — природа наглядно демонстрировала решаемость подобной задачи на примере эволюции нервной системы с последующим образованием и развитием головного мозга.

Обзор и сравнение методов нейроэволюции под катом
Всего голосов 65: ↑60 и ↓5+55
Комментарии32

Лямбда-выражения в Java 8 — Простые примеры того, как они могут облегчить вашу жизнь

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


Вот и состоялся релиз Java 8. Кто-то по-настоящему ждал её и тестировал предрелизную версию, считая недели до марта, для кого-то смена цифры в версии JDK была лишь поводом пару раз поиграть с обновленным языком в домашней IDE без отрыва от работы (ввод языка в production всегда занимает некоторое время), кто-то просто не нуждается в новых фичах, им и возможностей «семерки» хватает с лихвой. Тем не менее, восьмую Java ждать стоило — и не просто ждать, но и внимательно присмотреться к некоторым ее нововведениям, ведь в этой версии их действительно немало, и если ознакомиться с ними поближе, то не исключено, что хорошо знакомый язык предстанет перед вами в совершенно новом свете, порадовав возможностью писать еще более красивый и лаконичный код. И если уж говорить про новые возможности Java 8, было бы странно не начать с лямбда-выражений.
Читать дальше →
Всего голосов 45: ↑39 и ↓6+33
Комментарии33

Новое в Java 8

Время на прочтение15 мин
Количество просмотров507K
Java еще не умерла — и люди начинают это понимать.

Добро пожаловать в ведение по Java 8. Этот материал шаг за шагом познакомит вас со всеми новыми фичами языка. Вы научитесь использовать методы интерфейсов по умолчанию (default interface methods), лямбда-выражения (lambda expressions), ссылки на методы (method references) и повторяемые аннотации (repeatable annotations). Все это будет сопровождаться короткими и простыми примерами кода. В конце статьи вы познакомитесь с наиболее свежими изменениями в API, касающихся потоков, функциональных интерфейсов, расширений для ассоциативных массивов, а также с изменениями в API работы с датами.
Читать дальше →
Всего голосов 96: ↑95 и ↓1+94
Комментарии139

Как мы делали домашнего робота

Время на прочтение4 мин
Количество просмотров54K
Человечество давно мечтает о домашних роботах. За последние сто лет образ домашнего робота сформирован в фантастических фильмах и книгах: чаще всего это антропоморфное устройство с головой, руками и ногами. Такой робот всегда готов приготовить и принести хозяину чашечку кофе, подмести пол, протереть окно и выполнить другую домашнюю работу. А еще домашние роботы из фантастики всегда могут поговорить с хозяином. Не просто выполнять команды, а быть секретарем, помощником, партнером или даже другом!

image

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

И тогда пришло понимание, что домашнему роботу на первых порах совсем не обязательно ходить по дому. Вдохновением для нас стал Jarvis (Джарвис) — герой фильма «Железный человек». Это дворецкий, искусственный интеллект, не имеющий тела, но способный управлять различными устройствами в доме главного героя. В результате у нас получился Cubic — домашний робот, который живет дома и может полноценно (более или менее) разговаривать с его обитателями, а также управлять различными системами типа «умный дом».

Читать дальше →
Всего голосов 96: ↑93 и ↓3+90
Комментарии123

Ещё один формат хранения архивов: dar

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

Введение



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

Однако этого недостаточно, и сейчас для пользователя системы бэкапов важен такой параметр как скорость, причём не только скорость самого бэкапа, то есть архивирования файлов, но и восстановления.
Читать дальше →
Всего голосов 75: ↑69 и ↓6+63
Комментарии52

Два и более рабочих места на одном компьютере — бесплатное решение

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

В данной статье рассматривается идея и практическое руководство по создания многопользовательской рабочей станции (multiseat) с использованием виртуализации KVM, с возможностью удаленного управления через libvirt. С помощью этого руководства возможно создать два и более рабочих мест как в офисе, так и дома, которым может потребоваться возможность полного использования графической подсистемы компьютера. Причем можно на одном системном блоке реализовать одновременно работу различных операционных систем Windows, Linux, Mac OS X, остальное по вкусу.
Читать дальше →
Всего голосов 75: ↑67 и ↓8+59
Комментарии53

Простая модель сражения на Modelica

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

Доброго времени суток! Недавно узнав о таком инструменте моделирования, как язык Modelica и его свободной реализации OpenModelica, был удивлен тому, что на Хабре по этому поводу всего одна статья. Поскольку тема несколько необычна, детали пришлось постигать на собственной шкуре некотором взятом из головы примере. В этой статье пойдет речь о том, как построить простую модель сражения (для примера), попутно разобравшись с некоторыми концепциями языка (основное).

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

BITcommander — ваш следующий файловый менеджер

Время на прочтение2 мин
Количество просмотров21K
Мопед не мой, я просто хочу обратить внимание общественности на этот интересный проект. Может быть кто-то захочет его поддержать.



BITcommander это файловый менеджер нового поколения для Windows, целью которого является собрать лучшие из уже имеющихся решений и, переосмыслив их с точки зрения удобности использования, реализовать в виде новой программы, дающей пользователю более комфортный опыт навигации и управлении данными.
Далее вольный перевод страницы на Kickstarter
Всего голосов 105: ↑75 и ↓30+45
Комментарии93

Лучший учебник по Meteor — «Discover Meteor» — один день бесплатно

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

Саша Гриф (Sacha Greif), автор книги "Discover Meteor" в следующую субботу (14 декабря) в Сан Франциско проводит обучающий семинар по MeteorJS. Для тех же, кто не может лично прийти параллельно стартовала маркетинговая акция: "бесплатный доступ к книге на 1 день" — зарегистрироваться можно здесь (UPD: регистрироваться не нужно — доступ будет свободный по ссылке — http://free.discovermeteor.com/).
Читать дальше →
Всего голосов 26: ↑20 и ↓6+14
Комментарии38

Псевдоскоп, или что если поменять глаза местами

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

Если вы, увидев эту картинку, поняли, что ваша жизнь больше никогда не будет прежней, то вы меня понимаете. Довольно давно, более двух с половиной лет назад, совершенно случайно я увидел эту картинку на просторах интернета (кажется, на ffffound), и у меня в голове щёлкнул тумблер. Необратимый процесс был запущен.

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

графоманское словоблудие с обилием картинок, фотографий и даже схем
Всего голосов 294: ↑283 и ↓11+272
Комментарии162

Поиск пропавшего android-смартфона и управление удаленным девайсом. Сервис Reptilicus

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


Так уж повелось, что некоторые мои знакомые и родственники теряют достаточно дорогие смартфоны с завидной (или не очень) регулярностью. При этом некоторые умудряются брать дорогущие смартфоны в кредит, и терять их в первую же неделю (это случилось совсем недавно). Не так давно пара таких пострадавших спросили меня о программе/сервисе, которая позволяла бы находить утраченное. К своему стыду, я не смог сразу найти искомое – у самого телефон от HTC, у них есть простенький сервис поиска (рассчитанный скорее, на поиск телефона, оброненного среди кучи вещей в собственной квартире). Я решил все же найти что-то надежное, функциональное и отечественное. И нашел, причем оказалось, что и ходить далеко не нужно – искомый сервис/приложение относительно недавно создан соотечественником. Я видел несколько похожих сервисов, в процессе поиска, но этот оказался наиболее функциональным и да, как бы родным. Речь идет о Reptilicus. В продолжении — описание сервиса (двухэтапное: возможности сервиса + собственные примеры использования)…

Читать дальше →
Всего голосов 18: ↑9 и ↓90
Комментарии24

Сборка Qt 5.1 приложений под Android на Mac, seriously?

Время на прочтение2 мин
Количество просмотров33K
image
Привет, QHabr.

Сегодня хотел бы рассказать вам про адъ, который кроется за сборкой Qt 5.1 приложения для андрюши на Mac OS X. Чтобы никто их хабралюдей ни в коем случае не попал туда на 7-8 часов, я решил сделать подробный step-by-step гайд. Ну что, приступим к делу.

Совсем недавно, Qt Project анонсировал Qt 5.1 RC1. Это пока достаточно рабочий свежак, но с неплохими нововведениями. Одно из них — поддержка кросс-компиляции Android. Замечательно, не так ли? Они даже любязно предоставили нам сборку кьюта под android… для Linux. Но как же быть тем, кто использует Mac, или куда более ущербный Windows для разработки? А ничего, собирайте сами.

Но сборка последнего Qt из Git, с нужными параметрами под маком, не говоря о Windows — это адъ. Сегодня я помогу вам спасти свои души!
Читать дальше →
Всего голосов 55: ↑44 и ↓11+33
Комментарии14
1

Информация

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