среда, 12 октября 2011 г.

FPC-Notes: «Hello, World!»

program Hello;

begin
 WriteLn('Hello, World!') 
end.
$ fpc hello
Target OS: Linux for x86-64 
Compiling hello.pp
Linking hello
5 lines compiled, 0.9 sec
$ ./hello
Hello, World!
$

Начнем по традиции с простейшей программы, делающей хоть что-то... Кто сказал «что-то полезное»? До чего-то полезного нам еще пилить и пилить. Достаточно типовой «Hello, World!» можно увидеть во врезке. Теперь можно сохранить этот текст в файл (например, hello.pp1), скомпилировать командой fpc hello и запустить. См. консольный фрагмент — если вы работаете в Linux или FreeBSD, результат должен быть похож. Да и в других системах отличия не особо существенны. Еще тут может выпасть предупреждение от компоновщика — на него внимания обращать не надо. Получилось? Теперь будем разбираться, что именно.

вторник, 11 октября 2011 г.

Что такое Free Pascal?

Free Pascal [1], точнее Free Pascal Compiler aka FPC — это свободный1 кроссплатформенный компилятор языка программирования Pascal. В отличие от другой свободной реализации этого языка — GNU Pascal, FPC ориентирован не на стандарт, а на популярные диалекты — то, что когда-то называлось Object Pascal, а теперь Delphi Language.

Существует также проект Lazarus [2] — основанная на FPC свободная среда программирования, реализующая значительную часть функционала собственно среды Borland Delphi (см. врезку). Простые проекты можно переносить практически без ручной работы, после чего они могут быть скомпилированы для систем, отличных от Win32.

FPC-Notes

Подумал я и решил написать серию заметок про Free Pascal. Причем, в перспективе эти заметки, начерно опубликованные в блоге, должны превратиться в полноценные статьи для FreePascal.ru, а там, чем черт не шутит, и в книгу. Первую, совсем-совсем вводную, выложу сегодня, вторую, тоже отчасти вводную, скорее всего — завтра, ее чуть-чуть доделать надо.

Очень надеюсь на комментарии — зачем бы еще публиковать черновики...

Вся эта серия будет маркироваться тегом «fpcnotes».

Выделение «маркером» в LaTeX

Иногда бывает полезно выделить в тексте небольшой фрагмент так, как это делается на бумаге маркером. В HTML это делается посредством указания атрибута стиля background-color соответствующему элементу (<span> в предыдущем предложении). В LaTeX для этой цели используется \colorbox{цвет}{текст}. Но есть нюанс.

понедельник, 10 октября 2011 г.

Git-dybr

По сути, пара ссылок.

Во-первых, с некоторых пор git-репозитории начал поддерживать сервис BitBucket. Преимущество у него перед GitHub'ом в том, что бесплатный аккаунт разрешает создавать и приватные репозитории, при этом сильно ограничивая количество их участников, что делает разумной покупку платных услуг для коммерческого проекта, и в то же время позволяет бесплатно разместить на сервере всяческие свои скрипты, конфиги, проекты в зачаточной стадии... Дизайн там оставляет желать лучшего, функциональность в чем-то превосходит GitHub, а в чем-то ему уступает. Лично я таки перенес туда то, что следовало сделать приватным, а публичные RDot и ppRuby продублировал, т.е. они сейчас и на BB, и на GH. Опять же, не помешает, если один из сервисов в какой-то момент окажется недоступным.

Соответственно, мои профили: shikhalev и shikhalev.

Во-вторых, хочу дать ссылку на актуальный форк QGit4, оригинальный — тот который находится в репозиториях Gentoo (и, подозреваю, других дистрибутивов тоже) — не совсем корректно работает с новыми версиями Git. Брать тут: https://github.com/scalm/qgit4. Инструкции по сборке там в README указаны.

суббота, 8 октября 2011 г.

Интервью со мной на RubyDev

Про RDot, немного про ppRuby, и вообще... (ссылка в заголовке)

суббота, 1 октября 2011 г.

LaTeX: некоторая тонкость с окружением wrapfloat

Обнаружил особенность окружения wrapfloat из пакета wrapfig (оно же wrapfigure и wraptable — принципиально они ничем не отличаются): это окружение плохо себя чувствует внутри определяемых пользователем окружений. Следующий фрагмент не работает так, как надо.

\newenvironment{mywrap}{%
\begin{wrapfloat}{figure}{O}{5cm}%
}{%
\end{wrapfloat}%
}

Это могло бы быть очень печально, но... Вспоминаем, как выглядят окружения с точки зрения TeX, пробуем, и ага — такая конструкция уже прекрасно работает.

\newenvironment{mywrap}{%
\wrapfloat{figure}{O}{5cm}%
}{%
\endwrapfloat%
}

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