Pull to refresh

Создаём парсер для ini-файлов на C++

C++ *
В данной статье я расскажу как написать свой парсер ini-файлов на C++. За основу возьмём контекстно-свободную грамматику, построенную в моей предыдущей статье. Для построения парсера будет использоваться библиотека Boost Spirit, которая позволяет строить свои собственные парсеры комбинируя готовые примитивные парсеры при помощи парсерных комбинаторов.

Важно: в данной статье предполагается, что читатель знаком с основами C++ (в том числе будет активно использоваться STL). Если вы не очень в себе уверены, то я советую сначала прочитать пару статей для новичков по С++ и по STL.
Читать дальше →
Total votes 68: ↑58 and ↓10 +48
Views 35K
Comments 43

Высокочувствительный софтверный приёмник ГЛОНАСС+GPS портирован на архитектуры Intel Atom и ARM7

Global Positioning Systems *
Четыре дня назад я упоминал о качественном скачке миниатюризации приёмников ГЛОНАСС+GPS в связи с появлением чипа NAVIS, размером меньшего рублёвой монетки, и со стомилливаттным потреблением.

[Intel Atom]Этот рекорд NAVIS, однако, не долго оставался выдающимся на общем фоне. Позавчера компания SPIRIT-Telecom объявила о том, что её приёмник ГЛОНАСС+GPS является вообще софтверным, так что способен работать на обычном процессоре Intel Atom через внешнюю (в USB воткнутую) антенну. Процессор же Intel Atom, как известно, по размеру весьма невелик (см. фото справа). Кроме того, во многих устройствах (нетбуках и MID) чип Atom ужé установлен, так что тратиться на его доустановку не придётся.
Читать дальше →
Total votes 77: ↑69 and ↓8 +61
Views 4.3K
Comments 72

Практическое использование Boost.Spirit

C++ *
Я заметил, у разработчиков совершенно полярное отношение к библиотеке Boost.Spirit: либо она им жутко не нравится, либо они фанатеют от нее. Конечно, описывать грамматику на C++ – занятие на любителя. Таким любителем оказался и я, когда познакомился со Спиритом. Хочу показать, как с помощью Спирита можно довольно просто решать повседневные задачи разбора текста.

Простая задача – как два пальца


На Спирите очень удобно писать маленькие парсеры «не отходя от кассы» – прямо в C++ коде. Вот например, как вы поступите если нужно распарсить строку вида «число-число», которая задает диапазон страниц для печати? На Спирите – одна строчка:

bool ok = parse(First, Last, (uint_ >> L"-" >> uint_), MinMax) && (First == Last);


Посложнее…


Более того – можно ненамного сложнее создавать и парсеры побольше. В качестве примера рассмотрю парсер мини-языка, который я делал для API Яндекс.Бара. Задача была такова: для облегчения загрузки плагинов в баре используется XML, который довольно избыточный сам по себе. Но зато XML легче грузить из JavaScript-а, чем парсить произвольный формат (на JS пишутся расширения под FireFox, в том числе и Я.Бар).

Итак, что мне было нужно – имея на входе обычную инфиксную нотацию:
Читать дальше →
Total votes 53: ↑48 and ↓5 +43
Views 29K
Comments 31

Spirit! не навсегда…

Lumber room
image

Пару дней назад один из хакеров команды Dev-Team, а именно неких Comex, выпустил в свет "отвязанный джейлбрейк" для iPhone и iPad. Наконец то пользователи iPhone 3GS перестали зависеть от компьютера, а пользователи iPad смогли оценить все прелести джейлбрейка на новом устройстве. Но не все так сладко как казалось бы…
Читать дальше →
Total votes 18: ↑14 and ↓4 +10
Views 244
Comments 13

«Spirit»: Node.js MVC Framework

Node.JS *

Привет, ребята! С этого момента я хочу начать цикл статтей с подробностями по созданию сообственного MVC фреймворка для node.js, название которому будет — Spirit.

Первая статья будет состять из четырех частей:
1. Идея и миссия фреймворка
2. Настройка сервера
3. Создание каркаса фреймворка
4. Создание продвинутого и удобного роутера

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

Читать дальше →
Total votes 77: ↑65 and ↓12 +53
Views 8K
Comments 87

NASA прекратила попытки связаться со «Спиритом»

Popular science


Жаль конечно, но сегодня NASA официально заявило о том, что уже не надеется восстановить связь со «Спиритом», и не будет предпринимать дальнейших попыток по этому поводу. Появилась даже шутка, что «Спирит» вознесся на марсианские небеса. В принципе, агентство и так долго тянуло с завершением работы со «Спиритом», поскольку связи с ним нет уже более года и двух месяцев. Последний раз марсоход «ответил» 22 марта 2010 года.

Читать дальше →
Total votes 27: ↑25 and ↓2 +23
Views 327
Comments 11

Марсоход Spirit опустился на Марс 9 лет назад

Robotics


Оказывается, вчера исполнилось ровно девять лет с того волнующего момента, когда марсоход Spirit высадился на поверхности Красной планеты. Изначально планировалось, что марсоход будет работать около трех месяцев. Но конструкция оказалась настолько удачной, что марсоход проработал вплоть до марта 2010 года. К слову, через три недели после Spirit на Марс прилетел «брат-близнец» Opportunity, марсоход, который работает и по сей день.

Читать дальше →
Total votes 84: ↑73 and ↓11 +62
Views 35K
Comments 45

Задай вопрос водителю марсохода

Robotics
Обычно NASA представляется такой далекой и закрытой махиной, за деятельностью которой можно только следить издалека. Но люди там работают вполне открытые, и они не перегружены излишними ограничениями «режимного предприятия». Я вышел на контакт с одним из «водителей» марсоходов Opportunity и Curiosity, и он сказал, что с радостью ответит на вопросы Хабра. Так что спрашивайте все, что вы давно хотели узнать.
image
Читать дальше →
Total votes 160: ↑158 and ↓2 +156
Views 56K
Comments 249

Водитель марсохода Curiosity отвечает Хабру

Robotics Photographic equipment Interview
Это свершилось! Долгожданные ответы «водителя» MSL Curiosity на вопросы, которые ему задал Хабр. Паоло Беллутта работал еще с Opportunity и Spirit, поэтому у него богатый опыт, а главное он не стесняется о нем рассказывать.

Этот замечательный перевод осуществлен Singerofthefall. Текст Паоло прислал объемный, так что мы разделили ответы напополам, и вторую часть опубликует сам переводчик. Поэтому можете его поблагодарить сейчас, а сможете и позже, когда он закончит работу над второй частью и выложит ее.[1]
[1]В квадратных скобках примечания переводчика.
Полный английский текст я выложил на гуглодоке и кто желает, может обратиться к нему, но, поверьте, в этом нет необходимости ибо перевод отличный.

Итак, начнем наше интервью:

Читать дальше →
Total votes 369: ↑364 and ↓5 +359
Views 126K
Comments 133

Мистерия марсианской воды

Popular science Astronautics


Вода на Марсе. Сколько копий сломано в спорах на эту тему, сколько книг и статей написано, научных и не очень. Сколько карикатур и демотиваторов нарисовано… Воду на Марсе нашли. Потом еще раз нашли. Потом еще раз… И еще… Даже за 2015 год нашли уже два раза, но все равно, каждый новый раз в СМИ подается как сенсация. Давайте уже разберемся с этой темой.
Читать дальше →
Total votes 88: ↑88 and ↓0 +88
Views 26K
Comments 5

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

Timeweb Cloud corporate blog Robotics Popular science Astronautics
В замечательном научно-популярном фильме “Луна” Павла Клушанцева был эпизод с хождением по Луне на лыжах. Якобы поверхность покрыта хрупким слоем разной толщины, который не держит человека. А на лыжах ходить можно, но неудобно. Предсказание оказалось верным, но для Марса — там есть самые настоящие песчаные ловушки, в худшем случае даже прикрытые безобидно выглядящей коркой. На Луне же люди обошлись галошами, а луноходы — вполне пропорциональных размеров колесами. Вы, кстати, не задумывались, почему так получилось — на Земле по бездорожью часто ездит гусеничная техника, колесная обычно имеет худшую проходимость и привязана к дорогам, но вот луноходы и марсоходы ездят не на гусеницах, а на колесах? Сегодня мы поговорим про самые разные способы передвижения по другим небесным телам, про аппараты прыгающие, ездящие, летающие.


Марсоход Perseverance с вертолетом Ingenuity на Марсе, фото NASA
Читать дальше →
Total votes 140: ↑140 and ↓0 +140
Views 20K
Comments 79