11 дел, которыми вы можете заняться, пока не работает интернет

monday morning working hard in the office by brassaï wunderskatz.

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

Все форматы документа из одного исходника: asciidoc сотоварищи

Я уже давно использую asciidoc для написания сколько-нибудь больших текстов. Почти все статьи в этом блоге, включая эту, подготовлены с помощью Asciidoc.

Asciidoc — это транслятор простейшего языка разметки текста в любой другой язык разметки. Разметка asciidoc очень простая, практически вы пишете plain text, только выделяете заголовки знаками = в начале строки, полужирный текст — *звёздочками*, курсив — 'кавычками', итд. Абзацы разделяются пустой строкой. А на выходе может быть всё что угодно, это зависит от так называемого backend-a, поведение которого описывается в конфиге. В поставке доступны бэкенды для xhtml, html4 и docbook. Docbook, в свою очередь, теоретически можно отконвертировать во что угодно.

На днях я готовил доклад для одного семинара, и мне хотелось получить его сразу в нескольких форматах: html и pdf, как минимум. И ещё бы надо к нему презентацию… И хорошо бы план доклада. И, конечно, не хочется для каждого формата готовить текст.

HTML (точнее, xhtml 1.1) делается с помощью asciidoc. Все остальные форматы, теоретически, можно получить из docbook, который можно получить с помощью asciidoc. Только вот на практике мне так и не удалось за полдня заставить ни один из конверторов docbook нормально работать с русскими буквами. Также в комплекте asciidoc есть экспериментальный бэкенд latex, но он как-то странно работает с кусками кода, которые мне нужно поместить в tex-файл в неизменном виде (речь идёт о формулах): половина формул куда-то проглатываются.

Кроме всего прочего, мне нужно в доклад включать фрагменты диалога с консольными программами (в данном случае — с maxima и с R). Так как в ходе подготовки доклада что-то может меняться, неохота каждый раз делать copy-paste из консоли. Надо бы, чтобы в исходник вставлять только запросы к программам — а вызываются программы и вставляется вывод пусть автоматически.

В общем, в итоге я написал скрипт lmaxima.py, который делает следующее: читает входной файл, и копирует его в выходной. Если встречает строку вида «program>> команды», то по пайпу передаёт эти команды указанной программе, и её ответ вставляет в выходной файл. Если встречает строку вида «program|tex>> команды» — то указанные команды оборачивает в функцию tex(). Таким образом, lmaxima.py работает как препроцессор для asciidoc. Одна из тонкостей состоит в том, как вставлять в документ формулы, которые выдаёт maxima. Если выводить надо в html, то формулы пропускаются через tex, и в выходной файл вставляется картинка (строка image:chtoto.png[]). Если же выводить надо в pdf, то lmaxima указывается ключ -i, и в выходной файл вставляется непосредственно tex-код.

Т.к. latex-бэкенд к asciidoc работает странно, пришлось писать свой конвертер из подмножества asciidoc-разметки в tex (благо, основная часть разметки asciidoc очень простая). Называется он у меня vsml.py. Заодно vsml.py умеет следующее:

  • С ключом -c — добавляет в документ оглавление (latex-овская команда tableofcontents),

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

  • с ключом -b — создаёт исходник для презентации (класс beamer); в презентацию попадают заголовки и картинки.

vsml понимает ещё и некоторые «надстройки» над синтаксисом asciidoc. Так, с помощью строчек «//{» и «//}» (asciidoc их воспринимает как комментарии) можно создавать вложенные куски текста. По умолчанию они выводятся как обычно, однако vsml.py можно задать ключ -l с числовым параметром, и он будет выводить только текст с «уровнем вложенности» не больше заданного; это позволяет оформлять более и менее необязательные части текста, и из одного исходника создавать документы разной степени подробности. А с помощью строчки вида «//.Тут заголовок» можно создавать (под)заголовки, которые не будут видны нигде, кроме презентации.

Конечно, вручную писать все эти команды с ключами каждый раз долго, поэтому я написал небольшой Makefile:

all: report.pdf report.html presentation.pdf plan.pdf

clean:
rm report.pdf report.html presentation.pdf
rm presentation.tex report.asciidoc report.vsml
rm plan.tex plan.pdf

plan.pdf: plan.tex
pdflatex $<

plan.tex: report.vsml
vsml.py -p < $< > $@

report.pdf: report.tex
pdflatex $<

presentation.pdf: presentation.tex
pdflatex $<

report.html: r
eport.asciidoc
asciidoc $<

report.asciidoc: math-report
lmaxima.py $< $@

presentation.tex: report.vsml
vsml.py -b < $< > $@

report.tex: report.vsml
vsml.py < $< > $@

report.vsml: math-report
lmaxima.py -i $< $@

PS: мне тут подсказывают: добавь ещё festival, оно за тебя и доклад прочитает 🙂

Автор: Portnov

Украсьте свою жизнь: 3 подсказки от Томаса Эдисона

Thomas Edison, National Portrait Gallery by lreed7649.

Вообразите, что вы успешный предприниматель, и вот однажды страшный пожар сжигает фабрику, которая была делом всей вашей жизни, практически до фундамента. Этот пожар обходится вам в $106 миллионов. Страховка покрывает только 30 % убытков.

Что бы вы сделали? Читать

Вы ведете себя как маленький ребенок?

Day 282 > 365 Why grow up? by eye_capture.

Наверняка, вы заметили, что иногда маленькие дети плохо себя ведут. Это происходит оттого, что они еще не все понимают. Они обижаются и капризничают, когда дела идут не так, как они хотят и не знают, как позаботиться о себе. Это нормально в восьмилетнем возрасте, но не в восемнадцатилетнем, и уж точно это — ненормальное поведение для тридцати восьми лет. Некоторые взрослые продолжают вести себя как маленькие дети. В статье «Are You Behaving Like a Dumb Little Kid? » на сайте Dumblittleman описаны ошибки, которые они совершают: Читать

Базовый курс по раскрутке сайтов

Привет всем! Сегодня я хочу поднять немаловажную тему по раскрутке сайтов. Я  много изучала материалов, пользовалась различными технологиями, но…… результат пришел после  приобретения видеоуроков. Сегодня, я хочу представить видеоматериалы одного моего учителя, его зовут  Юсуф Габайдулин. Это — молодой человек, но его знания в этой области потрясают….. Итак…..

Базовый курс по раскрутке сайта

Кликните по любому видеоуроку из списка ниже, чтобы открыть его в новом окне.


Лучшие посты за ноябрь 2008

sharpened heart. by *northern star°.

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

Здоровье и фитнес

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

Умственное развитие и образование

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

Общественная жизнь и отношения

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

Дом и семья

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

Характер, честность, этика и достоинство

Из этого складывается ваша сущность. Если вы хотите добиться чего-нибудь, позаботьтесь о  развитии этих качеств. Работайте над собой, набирайтесь опыта, делайте работу над ошибками.

Жизненная цель и вклад

Для чего вы живете? Если у вас нет цели, ваша жизнь теряет смысл. Можно выжимать максимум из этой жизни, а можно просто комфортно существовать. Очень важно правильно выбрать цель.

Фото:*northern star°