Архив за 24 июня 2014

Похоже, Oculus хочет выпустить на рынок очень красивые шлемы виртуальной реальности. Компания объявила о покупке одной из лучших в мире групп промышленного дизайна Carbon Design, на счету которой за её 20-летнюю историю — более 50 наград.

По условиям соглашения, Carbon Design становится ключевой группой инженерной разработки Oculus, которая будет плотно сотрудничать с научно-исследовательским подразделением Oculus.

«Несколько секунд с последним прототипом шлема Oculus — и ты понимаешь, что виртуальная реальность приходит к нам по-настоящему на этот раз. С точки зрения дизайна и инженерной разработки, создание продукта, который наконец-то даст людям виртуальную реальность — одна из самых интересных и захватывающих проблем в мире», — прокомментировал Питер Бристол (Peter Bristol), креативный директор компании.
Читать полностью »

в 21:43, , рубрики: Без рубрики

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

Астротрекер за два вечера

Погуглив, я обнаружил что их легко можно купить. Но вот цена кусалась. Например, самый дешевый Vixin Ploarie Star Tracker стоит от $400 + доствка. Да и грузоподъемность его вызывала сомнения. В перспективе я планировал от широкоугольного объектива перейти и к 70-200/2.8 который вместе с камерой весят под полтора кг.

В процессе поиска оказалось что люди делают себе так называемые Barn Door трекеры: раз, два и другие. Попросту говоря — дверь от сарая. Принцип действия прост — две доски соединенных дверным навесом. Один из них поворачивается с такой же скоростью как и земля вокруг своей оси. Ось навеса направляетя на Полярную звезду. Нижняя доска ставится на штатив, а на подвижную половинку ставится штативная голова с камерой.

Под катом много картинок.
Читать полностью »

image

Обход ограничений контейнера simfs OpenVZ — CVE-2014-3519.

Существует возможность получить доступ к файлам за пределами своего контейнера.

Функция open_by_handle_at () позволяет получить доступ к файлам на смонтированной файловой системе используя file_handle структуру.

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

Подробнее:

OpenVZ simfs container filesystem breakout

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

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

Самое очевидное решение — использовать акселерометр. Я купил один из первых попавшихся — BMA150 от Bosch.

image

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

Лэптоп Y50 компании Lenovo новинкой не является — анонс устройства состоялся еще в начале года на выставке CES 2014, тогда же было обещано, что в июле выйдет версия устройства с экраном 4К. И производитель сдержал свое обещание — модификация Lenovo Y50 с экраном 4К представлена официально в Японии.

Lenovo Y50

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

Mojolicious — восхитительный современный веб-фреймворк для Perl. Из недостатков я могу назвать только два: политика в отношении обратной совместимости и документация.

Содержание

  1. Недостатки
  2. Роутинг: внутреннее устройство
  3. Роутинг: настройка
  4. Параметры HTTP-запроса
  5. Парсинг
  6. Tips & Tricks
    1. Поддержка неблокирующих приложений в режиме CGI
    2. Как работает Mojo::UserAgent при тестировании своего приложения
    3. ojo и Mojolicious::Lite
    4. Переменные окружения

Недостатки

В официальном FAQ написано: "… we will always deprecate a feature before removing or changing it in incompatible ways between major releases … as long as you are not using anything marked experimental, untested or undocumented, you can always count on backwards compatibility …". Для начала, вторая фраза противоречит первой. Далее, вот цитата из Guides::Contributing «Features may only be changed in a major release or after being deprecated for at least 3 months.». Честно говоря, 3 месяца это и так смешной срок когда речь идёт об обратной совместимости, но похоже что даже этот срок соблюдается не всегда (поддержку «X-Forwarded-HTTPS» сделали deprecated два месяца назад, а удалили месяц назад — да, это был «major release» поэтому формально правила не нарушены, но общее отношение к обратной совместимости вполне показательно). Как много разработчиков обновляет фреймворк чаще чем раз в 3 месяца, да ещё и при этом тщательно вычитывает Changes или логи своего приложения на предмет deprecated-предупреждений? При этом, в течении последнего года было deprecated примерно 20 функций/фич. На практике, конечно, всё не так плохо, как это звучит — что-то ломается не так уж часто (лично меня за последний год коснулась только замена $app->secret() на $app->secrets()). Но факт остаётся фактом — обратную совместимость ломают, ломают часто, причём без по-настоящему веских причин: например, в случае с secret() абсолютно ничего не мешало добавить в код

sub secret { shift->secrets([shift]) }

либо просто добавить поддержку дополнительных параметров в secret() вместо добавления новой функции secrets() реализовав нужную фичу вообще не ломая совместимость.

Что касается документации, то многие считают её отличной, даже одним из серьёзных достоинств Mojolicious, но никак не недостатком. Проблема с документацией в том, что она вся сосредоточена на примерах. Это реально круто, когда ты начинаешь изучать фреймворк. Это экономит кучу времени, когда тебе нужно сделать фичу и ты быстро гуглишь пример аналогичной фичи в официальных guides. Но как только ты выходишь за рамки стандартных задач и возникает необходимость понять, как что-то устроено идеологически или архитектурно, какие конкретно параметры может принимать эта функция и что конкретно она может возвращать в разных ситуациях — выясняется, что для многих модулей Mojolicious такая документация отсутствует в принципе. И не потому, что эта информация относится к «недокументированным возможностям» — почти всё это мельком упоминается здесь и там в разных примерах, а значит считается «документированным». Нередко есть несколько способов получить доступ к определённым данным (параметры запроса, тело ответа, etc.) но не описано чем они друг от друга отличаются и в каких ситуациях правильнее пользоваться какими способами. И последнее — алфавитный порядок функций в доке, серьёзно?! Нет, я понимаю, все люди разные и кому-то наверняка это удобно, но многим всё-таки на порядок проще воспринимать документацию в которой функции сгруппированы по задачам. (Хотя в коде, особенно при чтении его через браузер, где не так удобно пользоваться поиском как в Vim, алфавитный порядок функций неожиданно оказался довольно удобным — кроме new/DESTROY/AUTOLOAD — их всё-таки лучше размещать в начале.) В результате, чтобы разобраться приходится вычитывать код (некоторые предпочитают вместо этого смотреть тесты!), что не так просто — во-первых он не является эталоном читабельности: автор любит использовать фишки перла, которые позволяют писать код компактно (и нередко такой код быстрее работает), но читабельность это ухудшает; во-вторых активное использование и наследования и обмена событиями между объектами усложняет понимание того, что и как происходит внутри 104 классов, из которых состоит Mojolicious-5.

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

Всем привет!

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

Ниже размещен топ-15 самых успешных на КикСтартере проектов из категории «Роботы», а еще ниже немного размышлений по этой выборке.

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

Самые популярные идеи роботов на КикСтартере
MOSS, робоконструктор из кубиков
Набор модулей для создания различных роботов для детей и подростков.
Читать полностью »

Компания Micromax делает серьезную ставку на устройства под управлением ОС Windows Phone: недавно индийская компания добавила в свой ассортимент сразу две бюджетные модели, а сейчас, как сообщает источник со ссылкой на официального представителя Micromax, фирма готовит к выпуску более дорогую модель с 6-дюймовым экраном.

Micromax готовит 6-дюймовый смартфон под управлением Windows Phone

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

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

Шива В мире софта есть два пути — есть linux-way: это набор небольших программ, каждая из которых делает одну функцию, но очень хорошо; и есть windows-way: это огромные кухонные комбайны, которые умеют делать всё, и немного больше. Главная проблема linux-way — это отсутствие интерфейса. Чтобы получить всю пользу придётся скурить маны (или хотя бы прочитать --help), и поэкспериментировать. А так же сообразить, что и с чем можно скомбинировать и как. Главная проблема windows-way — это потеря основной функции. Очень быстро при обрастании доп.функционалом теряются тесты ключевого функционала, и со временем начинаются проблемы даже с ним. А еще при этом начинается инерция мышления: «это главная функция, она оттестирована сильнее всего, там бага быть не может, пользователь делает что-то не то».
Читать полностью »

Сегодня Microsoft Mobile OY (бывш. Nokia Devices & Services) представила второе поколение линейки Nokia X, модель Nokia X2 и усовершенствованный интерфейс платформы (на базе Android Open Source Project).

Представлен Nokia X2: следующее поколение линейки X

При доступной цене (ориентировочная стоимость — 99 евро без учета налогов и сборов) новинка по сравнению с моделями первого поколения отличается рядом улучшений в аппаратном обеспечении, дизайне, программном обеспечении и сервисах.
Читать полностью »