Pull to refresh
8
0
Роман Чеботарев @convex

Архитектор

Send message

Самодельные лампы-индикаторы из стеклоблоков и диодной ленты (и, конечно, raspberry pi)

Reading time2 min
Views73K
Во время последнего ремонта над ванной комнатой обнаружилось место между потолками высотой примерно в 20см, выходящее в том числе и в кухню. Было решено не закрывать его обратно полностью, а вставить несколько цветных стеклоблоков с лампочками позади. Время шло, стеклоблоки стояли на месте уже полгода, и наконец у меня дошли руки до лампочек. Конечно, просто включать их вместе с верхним светом было неинтересно, и хотелось заставить их что-то показывать.



Тут приехал компьютер raspberry pi, и проект начал обретать очертания. Не буду рассказывать, что спаял всё за один вечер, это были скорее месяцы.

Читать дальше →

Как создать новый продукт для рынка электроники. Часть 2

Reading time6 min
Views36K

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

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

Одноэкземплярные приложения на Qt

Reading time3 min
Views27K
Сейчас я активно пишу под Qt. И встала у меня задачка проверить при запуске приложения, а не запущено ли оно уже. Под линуксом. Велосипеды городить не хотелось, хотелось родить что-то используя готовые классы Qt, чтобы сразу было кроссплатформенно. В винде, например, есть готовое решение — именованные мьютексы (или семафоры, неважно, главное именованные). Стал гуглить. Ага, в Qt есть нечто подобное, называется QSystemSemaphore.
Читать дальше →

Oracle ADF. Business Components

Reading time10 min
Views10K
Доброе время суток хабравчане. Моя предыдущая статья была небольшим интро в ADF. И так как по результатам опроса я вижу, что тема оказалась интересна, то я продолжаю писать об ADF.

Теперь после небольшого рассказа о данном фреймворке, можно «ринуться в бой» и рассмотреть фичи ADF более конкретно. Данная статья будет об ADF Business Components. О том как работать с ними декларативно и программно.
Читать дальше →

Как запустить программу без операционной системы

Reading time13 min
Views184K

Так вышло, что в нашей статье, описывающей механизм опроса PCI шины, не было достаточно подробно описано самого главного: как же запустить этот код на реальном железе? Как создать собственный загрузочный диск? В этой статье мы подробно ответим на все эти вопросы (частично данные вопросы разбирались в предыдущей статье, но для удобства чтения позволим себе небольшое дублирование материала).

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

Итак, цель: затратив как можно меньше усилий, создать собственную загрузочную флешку, которая всего-навсего печатает на экране компьютера классический “Hello World”.

Читать дальше →

Съемка Матрицы в домашних условиях с помощью 15-ти камер GoPro

Reading time1 min
Views61K
Создатель студии Permagrin Films кинематограф-любитель Marc Donahue с помощью дугового массива 15-ти камер GoPro сумел превратить обычные фотографии катания на велосипеде или приготовления пищи в сцены похожие на фильм Матрица.



Читать дальше →

Записи докладов с конференций по высоким нагрузкам HPC

Reading time1 min
Views17K
Записи с последней конференции HPC — High Performance Conference, состоявшейся 6 декабря 2012, никак не анонсировались, хотя заслуживают внимания.

Под катом видеозаписи следующих докладов:

  1. Практические вопросы использования NOSQL в высоконагруженном проекте
    Дмитрий Ананьев, Руководитель группы разработки новых сервисов, Мамба
  2. Как работает «умная живая миграция» в Jelastic
  3. Дмитрий Лазаренко, Директор R&D, Jelastic Russia
  4. Parallels Cloud Server как платформа для высокопроизводительных систем
    Дмитрий Мишин, Team-lead отдела серверной виртуализации, Parallels
  5. Облачная платформа Windows Azure для высоконагруженных проектов
    Владимир Юнев, Technical evangelist, DPE, Microsoft Russia


и одно видео с фестиваля профессионального развития BitByte:

  1. Badoo Desktop: оптимизация приложения на миллион юзеров
    Руководитель проекта десктопных приложений компании Badoo.



Читать дальше →

Кулинарный путеводитель по архитектурам AI

Reading time21 min
Views54K
image

Мне постоянно приходится слышать от студентов и начинающих гейм-дизайнеров – да, честно говоря, и от бывалых программистов тоже – один и тот же вопрос, который звучит примерно так: “Какую архитектуру AI мне выбрать для своего проекта?”. Этим вопросом пестрят форумы, его можно услышать на конференции разработчиков игр GDC, и, конечно же, его не один раз вспоминают во время пре-продакшна создатели любой игры – от AAA-класса до инди. Я работаю консультантом по игровому AI, поэтому я постоянно слышу ее от своих клиентов.

Обычно, самый лучший ответ на этот вопрос – «Когда как». Вот только подобный ответ мало кого устраивает, поэтому после него мне приходится устраивать самый настоящий допрос.
Читать дальше →

Некоторые простейшие принципы автовекторизации

Reading time21 min
Views28K
Предыдущий мой пост был посвящен цикловым перестановочным оптимизациям, проблемам распознавания циклов, разрешению неоднозначности при работе с памятью, определению и важности зависимостей. Теперь я хочу сделать обзор одной из самых эффективных цикловых оптимизаций — автовекторизации. Хочется обсудить вопросы эффективности оптимизации, а также попытаться понять, какие факторы эту эффективность определяют. Всем, кому это интересно – добро пожаловать. При обсуждении я буду ориентироваться на интеловский автовекторизатор и автовекторизатор gcc 4.7.2. gcc я буду исследовать, чтобы подтвердить, что те принципы векторизации, которые я здесь пытаюсь сформулировать, имеют достаточно общую природу. Заодно мне, конечно, хочется понять уровень автовекторизации в gcc. Тут, конечно, есть некий элемент неравенства, поскольку я использую последний компилятор Интел, но не самую топовую версию gcc, но в основном я буду ориентироваться при сравнении на SSE инструкции. (Кстати, Intel активно участвует в разработке автовекторизатора gcc). Поскольку Intel и интеловский компилятор мне ближе, то ему я уделю кое-где больше внимания. Я не претендую на то, что я векторизаторный гуру и буду рад, если кто-то увидит мои ошибки и меня поправит. Букв будет много.
Читать дальше →

MapReduce для обработки слабоструктурированных данных в HDInsight

Reading time8 min
Views5.3K
В данном примере мы разберем создание и выполнение типового задания MapReduce в облачной реализации Hadoop от Microsoft, которая носит название HDInsight.
В предыдущем примере мы создали 3-узловой кластер Hadoop и загрузили абстрактный журнал слабоструктурированного формата, который сейчас предстоит обработать. Журнал представляет собой в общем случае большой (в нашем конкретном примере маленький, но на принципиальную демонстрацию идеи это не влияет) текстовый файл, содержащий строки с признаками TRACE, DEBUG, INFO, WARN, ERROR, FATAL. Наша элементарная задача будет состоять в том, чтобы подсчитать количество строк с каждым признаком, т.е. сколько раз возникала ситуация WARN, сколько ERROR и т.д.
Читать дальше →

Корреляции для начинающих

Reading time6 min
Views221K
Апдейт для тех, кто сочтет статью полезной и занесет в избранное. Есть приличный шанс, что пост уйдет в минуса, и я буду вынужден унести его в черновики. Сохраняйте копию!

Краткий и несложный материал для неспециалистов, рассказывающий в наглядной форме о различных методах поиска регрессионных зависимостей. Это все и близко не академично, зато надеюсь что понятно. Прокатит как мини-методичка по обработке данных для студентов естественнонаучных специальностей, которые математику знают плохо, впрочем как и автор. Расчеты в Матлабе, подготовка данных в Экселе — так уж повелось в нашей местности


Введение


Зачем это вообще надо? В науке и около нее очень часто возникает задача предсказания какого-то неизвестного параметра объекта исходя из известных параметров этого объекта (предикторов) и большого набора похожих объектов, так называемой учебной выборки. Пример. Вот мы выбираем на базаре яблоко. Его можно описать такими предикторами: красность, вес, количество червяков. Но как потребителей нас интересует вкус, измеренный в попугаях по пятибалльной шкале. Из жизненного опыта нам известно, что вкус с приличной точностью равен 5*красность+2*вес-7*количество червяков. Вот про поиск такого рода зависимостей мы и побеседуем. Чтобы обучение пошло легче, попробуем предсказать вес девушки исходя из ее 90/60/90 и роста.
Читать дальше →

Intel Distribution for Apache Hadoop: чтобы «большим данным» было комфортно

Reading time2 min
Views4K

Хабражителям, интересующимся «большими данными», наверное, не имеет смысла рассказывать о проекте Apache Hadoop. В последнее время этот фреймворк стал особенным популярным и часто упоминаемым на Хабре – так, совсем недавно специалисты Mail.ru рассказали о миграции своей поисковой машины на Hadoop.
А как сделать хорошую программную систему еще лучше? Например, добавить в нее аппаратные компоненты. Именно таким путем пошла компания Intel, выпустив Intel Distribution for Apache Hadoop – «локализацию» Hadoop под платформу Intel Xeon, снабженную многими полезными функциями для облегчения ее управления и эксплуатации.
Читать дальше →

Управление складскими запасами по Теории Ограничений Голдратта

Reading time1 min
Views20K
Летом обещал, что осенью начнем выкладывать функционал с алгоритмами Теории Ограничений в области управления запасами и производства.

Вот, начинаю с запасов.

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

Мы реализовали в виде ПО положения Теории Ограничений Голдратта — лучшей, революционной системы менеджмента, применяемой с успехом сегодня на западе в тысячах предприятий. В России эта система только появляется и я считаю, что она требуем максимальной популяризации, потому как приносит потрясающие результаты, которые я наблюдал лично.



Читать дальше →

Что вы хотели бы узнать о системе радиоуправления освещением NooLite?

Reading time1 min
Views41K
imageЯ думаю, система NooLite (о ней уже писали на хабре) — очень клевый проект: она дает недоступные ранее возможности, имеет низкую стоимость, ее очень легко подключить и использовать. Такие выключатели стоят у меня дома и это очень удобно. Но, на мой взгляд, о системе NooLite знают мало людей (в основном, гики), хотя подключить/использовать ее не сложнее обычного проводного выключателя и с этим справится практически любой человек.
Читать дальше →

Использование Loader в QML

Reading time6 min
Views39K
Добрый день! В этой статье я расскажу про такой компонент из QML как Loader.

Он позволяет создать контейнер, в который затем можно вложить необходимый qml-элемент, использовать разные элементы в зависимости от состояния программы, а также сделать редко используемые части загружаемыми по требованию и сэкономить ресурсы. Loader является контейнером для QML-компонента и сам по себе не отображается.

Я рассматриваю компонент из QtQuick 2.0 которая входит в Qt пятой версии. В более ранней версии этот компонент также есть, но функционал немного меньше.

Читать дальше →

Шок будущего: Добро пожаловать!

Reading time6 min
Views86K


Уверен, что многие на Хабрахабре читали замечательную книгу британского публициста Элвина Тоффлера «Шок будущего», написанную еще в 1970-х годах, но не потерявшей актуальности и сегодня. Я позволил себе позаимствовать заголовок этого замечательного произведения, потому как считаю, что он как нельзя лучше подходит к теме этого хабрапоста.

Мы с вами, человечество, люди, живем в эпоху, предсказанную еще в 70-х годах прошлого столетия. Шок будущего — это то, что окружает нас каждую минуту, и производители новой техники и технологий только приближают момент, когда широким массам придется столкнуться с изменениями, уже произошедшими в окружающей среде.

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

Читать дальше →

Citavi: профессиональный органайзер научной работы

Reading time9 min
Views99K
imageКаждый, чья деятельность связана с изучением больших объемов литературы и написанием собственных текстов, рано или поздно сталкивается с необходимостью систематизации стремительно растущей библиотеки и еще более стремительно накапливающихся заметок и набросков. Для решения этой задачи существуют десятки решений: библиографические менеджеры, менеджеры знаний, персональные информационные менеджеры. Испробовав за последние несколько лет, пожалуй, все существующие в этой области решения (по крайней мере, для Windows), могу сказать, что каждое из них предлагает свой набор замечательных возможностей, но универсального варианта, в котором были бы объединены они все, увы, обнаружить долго не удавалось.
Читать дальше →

Архитектура базы данных: унификация (на примере ERP)

Reading time3 min
Views16K

Есть концепции работы с базой, основанные на ORM, CodeFirst со своими преимуществами и недостатками. Предлагаемая здесь унификация базы основана в первую очередь на подходе Database First.

Схема базы данных приложений со сложной доменной моделью (к которым относятся системы ERP) обычно состоит из
нескольких сотен таблиц.
Поэтому на начальном этапе проектирования базы для избежания многократных дублирований и разбухания схемы важно
определиться с несколькими базовыми таблицами для хранения общих свойств базовых сущностей приложения
и все остальные таблицы уже проектировать как вспомогательные или дополнения основных таблиц.
Читать дальше →

Обзор систем сборок для Raspberry Pi

Reading time9 min
Views48K
В прошлом мой выбор пал на OpenEmbedded (OE) и по заслугам, она одна из лучших систем сборок. К выбору на тот момент не подходил осознанно и захотел исправить это, поэтому решил посмотреть на текущие решения.

Мысль бы не пришла в голову, если под руками не оказалась плата Raspberry Pi (RPi), популярность которой зашкаливает — это означает одно, что попробовать новые системы сборки должно быть как никогда просто.

Забегая вперед, хочу сказать, что мне хотелось выбрать систему сборки для любой платы, RPi это или нет — не важно и был приятно удивлен количеством решений, которые уже сделаны под эту плату.

Читать дальше →

Энтропия и деревья принятия решений

Reading time8 min
Views122K
Деревья принятия решений являются удобным инструментом в тех случаях, когда требуется не просто классифицировать данные, но ещё и объяснить почему тот или иной объект отнесён к какому-либо классу.

Давайте сначала, для полноты картины, рассмотрим природу энтропии и некоторые её свойства. Затем, на простом примере, увидим каким образом использование энтропии помогает при создании классификаторов. После чего, в общих чертах сформулируем алгоритм построения дерева принятия решений и его особенности.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity