Архив за 25 декабря 2014 - 6

Третий крупнейший производитель смартфонов Южной Кореи, компания Pantech, в начале осени была выставлена на продажу. Однако, несмотря на популярность на родном рынке, даже продление сроков принятия заявок не помогло — ни одна компания официально не заявила о желании купить Pantech.

Читать полностью »

За последние несколько лет мне довелось сделать немало дистанционно управляемых устройств. Некоторые управлялись локально, с обычного ПК или со смартфона. Некоторые — через Интернет. Все устройства объединяет общий принцип — управляет ими человек, ориентируясь по картинке с видеокамеры на борту устройства. А само управление, в итоге, сводится к выдаче управляющих сигналов на сервомоторы или регуляторы (драйверы) моторов.

Так что, набравшись опыта в данном деле, решил попробовать более-менее систематизировать различные типы управления устройствами, чтоб при создании нового девайса не приходилось кучу всего переписывать, а достаточно было лишь изменить некоторые параметры конфигурации. В результате родился программный комплекс RCboard, или РЦборда. Т.к. все управляемые штуки я делаю с контролером Virt2real (Виртурилка) в качестве главного бортового мозга, то и рцборда изначально писалась именно под неё. Так что всю связку можно пафосно называть «Программно-аппаратный комплекс РЦборда».

В общем, в продолжении топика попробую написать рецепт про то как с помощью Виртурилки и РЦборды из обычной радиоуправляемой машинки сделать машинку, управляемую через Интернет (ну и локально она тоже будет управляться). Каналом связи будет обычный Wi-Fi (выход в инет через домашний роутер) или 4G связь через свисток Yota.

Краулер BSD Racing 4WD RTR 2.4Ghz 1:10
Рцборда, или Как Сделать Управляемую через Интернет Машинку - 1

Сразу уточню — под термином «радиоуправляемая машинка» я подразумеваю не дешёвые китайские машинки, в которых вся электроника реализована на одной плате, а более-менее приличные машинки, построенные по модульной схеме — которые имеют регулятор оборотов двигателя (коллекторного, бесколлекторного — неважно) и сервомашинку для управления поворотом передних колёс.

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

Что понадобится для сборки

  • Машинка c регулятором двигателя, двигателем и сервой
  • Аккумулятор (любой с подходящим для регулятора напряжением)
  • Контролер Virt2real (Виртурилка) с камерой, переходник USB-OTG, флешка micro-SD
  • Свисток Wi-Fi или Yota (можно и любой другой 4G модем)
  • Руки умеренной линейности

Читать полностью »

Как мы уже сообщали, компания Olympus намерена выпустить камеру E-M5 II, которая станет развитием модели E-M5, открывшей серию Olympus OM-D в феврале 2012 года.

Важной особенностью E-M5 II считается система повышения разрешения сдвигом датчика изображения, которая позволит делать снимки разрешением 40 Мп, хотя разрешение датчика, унаследованного у модели E-M5, равно всего лишь 16 Мп.

Читать полностью »

Одной из наиболее интересных задач для команды наших инженеров-проектировщиков было построения единого «дерева неисправностей» для крупной корпоративной информационной системы мониторинга оборудования.

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

Компания Buffalo объявила о выпуске внешних оптических приводов BRXL-PT6U2V, поддерживающих диски BDXL и M-Disc.

Привод Buffalo BRXL-PT6U2V весит всего 220 г

Читать полностью »

Доброго времени суток!

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

Стоит напомнить, что в отличии от C++ в D классы и структуры имеют разное логическое предназначение и устроенны они по разному. Структуры не могут наследоваться, в структурах нет никакой другой информации, кроме полей (в классах есть таблица виртуальных функций, например), структуры хранятся по значению (классы всегда ссылками). Структуры прекрасно подходят для простых типов данных.
Читать полностью »

Scapegoat-деревья - 1Сегодня мы посмотрим на структуру данных, называемую Scapegoat-деревом. «Scapegoat», кто не в курсе, переводится как «козёл отпущения», что делает дословный перевод названия структуры каким-то странным, поэтому будем использовать оригинальное название. Деревьев поиска, как вы, возможно, знаете есть очень много разных видов, и в основе всех их лежит одна и та же идея: "А хорошо бы при поиске элемента перебирать не весь набор данных подряд, а только какую-то часть, желательно размера порядка log(N)".

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

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

К достоинствам Scapegoat-дерева можно отнести:

  • Отсутствие необходимости хранить какие-либо дополнительные данные в вершинах (а значит мы выигрываем по памяти у красно-черных, АВЛ и декартовых деревьев)
  • Отсутствие необходимости перебалансировать дерево при операции поиска (а значит мы можем гарантировать максимальное время поиска O(log N), в отличии от Splay-деревьев, где гарантируется только амортизированное O(log N))
  • Амортизированная сложность операций вставки и удаления O(log N) — это в общем-то аналогично остальным типам деревьев
  • При построении дерева мы выбираем некоторый коэффициент «строгости» α, который позволяет «тюнинговать» дерево, делая операции поиска более быстрыми за счет замедления операций модификации или наоборот. Можно реализовать структуру данных, а дальше уже подбирать коэффициент по результатам тестов на реальных данных и специфики использования дерева.

К недостаткам можно отнести:

  • В худшем случае операции модификации дерева могут занять O(n) времени (амортизированна сложность у них по-прежнему O(log N), но защиты от «плохих» случаев нет).
  • Можно неправильно оценить частоту разных операций с деревом и ошибиться с выбором коэффициента α — в результате часто используемые операции будут работать долго, а редко используемые — быстро, что как-то не хорошо.

Читать полностью »

В рамках пресс-конференции оператора KDDI в Токио состоялась презентация Fx0 – смартфона в прозрачном корпусе.

В качестве OEM-производителя выступила LG. Кроме того, над аппаратом работал Токюджин Йошиока, являющийся одним из наиболее признанных японских дизайнеров современности, который в 2004 году уже имел дело с KDDI — он создал телефон, ставший впоследствии экспонатом Нью-йоркского музея современного искусства.

Представлен прозрачный смартфон на Firefox OS

Читать полностью »

Как мы недавно сообщали, компании OnePlus запретили ввозить и продавать смартфоны в Индии. По словам источника, запрет уже снят.

OnePlus One

Китайская компания OnePlus Technology оказалась в сложной ситуации в связи с тем, что эксклюзивные права на распространение в Индии платформы CyanogenMod, которая используется в Читать полностью »

Небольшая вводная: системный администратор уволился, пароль не оставил. Изменения в законодательстве, необходимо обновить 1С. Вариантов несколько: сбросить список пользователей, сбросить пароль администратора или узнать его с помощью брутфорса. Мы пойдем другим путем — сделаем пользователя с известным нам паролем — администратором.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js