Dark Magus ([info]_darkus_) wrote,
@ 2006-08-03 18:21:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:ФП

Издание книги — следующий этап
Всех, кого это может заинтересовать, уведомляю, что сегодня я встречался с издателем, у которого лежит в планах моя книга «Функциональное программирование на языке Haskell», и он дал мне корректуру рукописи, чтобы я внёс исправления в текст. Корректоры скрупулёзно проверили весь текст книги на наличие орфографических ошибок (удивляюсь, сколько должно быть терпения у человека, чтобы читать непростой наукоёмкий текст на 500 страницах формата А4 и выискивать там ошибки, которых не должно быть много, ибо я сам дважды прочитал его до этого). Договорились, что через неделю я подготавливаю PDF-файл с требуемым выходным форматом полосы́ и исправленными ошибками. В свою очередь, я передал компакт-диск, на котором записано много всячины по языку Haskell. В первую очередь, это трансляторы (GHC и HUGS 98); разные библиотеки для HUGS 98, которые я нашёл на сайте этого интерпретатора; дополнительные утилиты (Happy, Lambda Bot, Cabal, Haddock, Alex, GreenCard и GTK2HS); а также примеры программ, которые разбираются в книге и не только (но только моего исполнения). И вот возникает несколько вопросов:

1. Кто подскажет, что ещё можно было бы записáть на CD? Особенно меня иинтересуют примеры программ. Статьи по ФП и языку Haskell не предлагать, ибо у меня их много, но мы решили их не выкладывать, т. к. много мороки с авторскими правами.

2. Кто поможет мне оформить оригинал-макет в соответствии с требованиями издательства? Само собой, попадёт в раздел с благодарностями. Дело в том, что базовую разметку (La)TeX я более или менее освоил, но как там размеры полей и шрифты менять — надо ещё учиться, а тратить время на изучение сего, когда надо работать над содержанием, считаю неправильным.



(Post a new comment)


[info]thesz
2006-08-03 02:33 pm UTC (link)
Можно дополнить утилитой darcs - удобной системой контроля версий для распределенной разработки.

На сайта http://freearc.narod.ru/ лежит пример реальной и значительной по объему программы FreeArc и некоторое количество библиотечек для Haskell.

(Reply to this)


[info]lomeo
2006-08-03 03:12 pm UTC (link)
Может редакторы? haskell-mode там.

(Reply to this)(Thread)


[info]_darkus_
2006-08-03 06:08 pm UTC (link)
Давай подробнее. Со ссылками, если можно.

(Reply to this)(Parent)(Thread)


[info]lomeo
2006-08-04 08:19 am UTC (link)
http://haskell.org/haskellwiki/Libraries_and_tools/Program_development

тут всё.

(Reply to this)(Parent)

Ссылки.
[info]az_from_belarus
2006-08-03 03:23 pm UTC (link)
Ссылки на самые разнообразные интернет ресурсы, относящиеся к содержанию. С краткой характеристикой.
Воспроизводить содержимое - морока по авторским правам. Дать анонс и ссылку - довольны все - и читатели и авторы. С авторами впоследствии можно еще и договориться о перекрестной ссылке.

(Reply to this)(Thread)

Re: Ссылки.
[info]_darkus_
2006-08-03 06:09 pm UTC (link)
Вот это уже сложнее. В своё время накачал PDF-ов разных, где теперь найдёшь источник их получения?

(Reply to this)(Parent)(Thread)

Re: Ссылки.
[info]az_from_belarus
2006-08-03 08:10 pm UTC (link)
Для наиболее значимых (а их предварительно прийдется отобрать) - погуглить, взяв достаточно длинную и достаточно уникальную подстроку.
Кроме того, для читателя как правило интересны еще и сайты на которых есть тексты по заданной теме.
Гугля PDF тоже индексирует.

(Reply to this)(Parent)(Thread)

Re: Ссылки.
[info]_darkus_
2006-08-04 04:39 am UTC (link)
Мне сейчас, честно говоря, некогда. :/

(Reply to this)(Parent)(Thread)

Re: Ссылки.
[info]az_from_belarus
2006-08-04 12:22 pm UTC (link)
И это тоже понятно.
Кстати неплохой подход практикуют многие авторы. В тексте книги дают ссылку на ресурс в интернете относящийся к книге.
А этот ресурс при желании можете пополнить нужными ссылками, можете там же дать какие-то дополнения или комментарии. И все по мере возможности и появления свободного времени :-).
Кстати, взялся помаленьку читать. Но перед этим по обыкновению наметил себе некоторые вопросы. И на один из них, кажется, явных ответов нет. Есть такая штука, как техника программирования, в которую, по хорошему, входит обработка исключений и ошибок, отладка кода.
Простейшие приемы отладки для императивной парадигмы ясны на интуитивном уровне. Расставляется ряд контрольных точек и в этих точках при прохождении сливаются параметры характеризующие текущее состояние процесса. Кроме того в наиболее сомнительных местах можно поставить обработчики ошибок, определяющие типы ошибок времени исполнения. Такой подход позволяет отловить основную часть багов - останутся разве что некоторые ошибки алгоритмического характера.
Но что-то (внутренний голос :-) ) говорит мне, что для ФП приемы отладки должны быть немного другими.
Не сочтите меня занудой, но Ваша книга уже даже после пролистывания дала мне многое - посодействовала упорядочению и оживлению некоторых разрозненных знаний. За что очень благодарен. И потому же высказываюсь о том, что, по моему мнениею, могло бы сделать книгу еще лучше.
Понимаю, что сейчас уже не может быть речи о серьезных дополнениях - финишная суета. Но, человек начавший писать, зачастую обнаруживает, что не писать уже не может :-). Потому полагаю, что часть моих замечаний пригодится для следующей Вашей публикации.

(Reply to this)(Parent)(Thread)

Re: Ссылки.
[info]_darkus_
2006-08-06 05:09 pm UTC (link)
1. Да, в книге есть ссылка на «официальный ресурс книги». Не знаю, смогу ли я им заниматься, но по крайней мере какую-нибудь страницу с информацией и некоторыми дополнительными данными я там сделаю.

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

Благодарю за советы, для меня они весьма важны.

(Reply to this)(Parent)

Нужна мультиплатформенность
[info]dzhu
2006-08-03 04:37 pm UTC (link)
Либо на сам диск это записать, либо дать ссылки такого свойства, что бы компиляторы, интерпретаторы, среды разработки и прочие утилиты были пригодны для любой операционной системы.

Правда, мне не знакомы среды разработки для Хаскелла под *nix. Ну, хотя бы компиляторами и интерпретаторами ограничиться, причём, дать их, как в виде исходного кода, так и откомпилированные под наиболее популярные системы.

(Reply to this)(Thread)

Re: Нужна мультиплатформенность
[info]_darkus_
2006-08-03 06:16 pm UTC (link)
Это есть. Набрал версий компиляторов и интерпретаторов под разные платформы.

(Reply to this)(Parent)

Re: Нужна мультиплатформенность
[info]lomeo
2006-08-04 08:17 am UTC (link)
> Правда, мне не знакомы среды разработки для Хаскелла под *nix

М? А e-macs?

(Reply to this)(Parent)(Thread)

Re: Нужна мультиплатформенность
[info]dzhu
2006-08-04 09:15 am UTC (link)
Ну да, можно ещё Eclipse припомнить, и ещё ряд редакторов. Как таковой среды нет.

(Reply to this)(Parent)(Thread)

Re: Нужна мультиплатформенность
[info]lomeo
2006-08-04 09:31 am UTC (link)
А под винду какая среда есть?

(Reply to this)(Parent)(Thread)

Re: Нужна мультиплатформенность
[info]_darkus_
2006-08-04 09:54 am UTC (link)
Я Notepad использую.

(Reply to this)(Parent)(Thread)

Re: Нужна мультиплатформенность
[info]lomeo
2006-08-04 10:02 am UTC (link)
Согласно [info]dzhu (и я подписываюсь), это не среда, а редактор.

(Reply to this)(Parent)(Thread)

Re: Нужна мультиплатформенность
[info]zerthurd
2006-08-04 02:15 pm UTC (link)
UNIX - это и есть среда разработки. Emacs, vim, etc. - это редакторы для этой среды.

(Reply to this)(Parent)(Thread)

Re: Нужна мультиплатформенность
[info]lomeo
2006-08-04 02:19 pm UTC (link)
5! :-)

(Reply to this)(Parent)

Re: Нужна мультиплатформенность
[info]dzhu
2006-08-04 10:34 am UTC (link)
Про винду не знаю. Даркус писал, что у них вроде на работе какая-то есть...

(Reply to this)(Parent)(Thread)

Re: Нужна мультиплатформенность
[info]lomeo
2006-08-04 10:51 am UTC (link)
Он писал про VisualHaskell или как то так - это плагин к Visual Studio, функционально не сильнее haskell-mode для emacs.

Ну, значит, сред для хаскеля нет вообще (вот hIDE выйдет ;-))

(Reply to this)(Parent)(Thread)

Re: Нужна мультиплатформенность
[info]dzhu
2006-08-04 11:34 am UTC (link)
Ну тогда, действительно, получается, что сред для Хаскелла нет. Тогда нужно дать ссылки на популярные редакторы, которые распознают структуру документа.

Тот же Eclipse (http://www.eclipse.org/)

Потом - The Nirvana Editor (http://www.nedit.org/) Его даже стоит записать на дист, я думаю.

Ну и Emacs (http://www.gnu.org/software/emacs/emacs.html) с добавлением haskell-mode.

(Reply to this)(Parent)

Re: Нужна мультиплатформенность
[info]cattusnocturnus
2006-08-05 11:27 am UTC (link)
Еще VIM. Еще есть Eclipse http://eclipsefp.sourceforge.net/haskell/ и KDevelop.

(Reply to this)(Parent)


[info]gendalf_vrn
2006-08-03 06:48 pm UTC (link)
Я в основном, когда диссер верстал, подгонял все следующими командами:

\textwidth=163mm \textheight=247mm \hoffset=-15mm \voffset=-20mm
\makeatletter
\renewcommand{\@evenfoot}{\hfil \thepage \hfil}
\renewcommand{\@oddfoot}{\hfil \thepage \hfil}
\renewcommand{\@evenhead}{}
\renewcommand{\@oddhead}{}
\makeatother

\begin{document}
\fontsize{14}{23} \selectfont %размер шрифта
\parindent=1.25cm % размер красной строки
\footskip=1cm% размер нижнего колонтитула
%\count0=3 % начало нумерации страниц


А вот кусок моей шапки:
\documentclass[a4paper,12pt]{amsart}
\usepackage{mathtext}
\usepackage{pscyr} % for PDFLatex compile with PSCYR fonts
\usepackage[T2A]{fontenc}
\usepackage[cp866]{inputenc}
\usepackage[russian]{babel}
\usepackage{amsfonts,amssymb}
\usepackage{amsmath}
\usepackage{graphics}
\usepackage {longtable}

(Reply to this)(Thread)


[info]_darkus_
2006-08-03 07:04 pm UTC (link)
А ты со смыслом писал, или списывал откуда? Я вот списывал многое из Львовского, а кое-что мне и добрые люди подсказывали. Так что я даже объяснить многое, что у меня в исходниках написано, не смогу. Впрочем вопрос — обращаться-то к тебе за советом можно?

(Reply to this)(Parent)(Thread)


[info]gendalf_vrn
2006-08-04 04:32 am UTC (link)
Я писал руководствуясь "Львовским".
Спрашивай. Объясню.

(Reply to this)(Parent)(Thread)


[info]_darkus_
2006-08-04 04:41 am UTC (link)
Хорошо. Когда будет, что спросить — спрошу. Ты в ицыке что-то не появляешься в последнее время.

(Reply to this)(Parent)(Thread)


[info]gendalf_vrn
2006-08-04 06:50 am UTC (link)
Бываю. Может я случайно удалился из твоих контактов?

(Reply to this)(Parent)


[info]asviraspossible
2006-08-21 10:20 pm UTC (link)
Впринципе, я могу помочь с Латексом, хотя в тоже не сильно разбираюсь, вообще приведённый фрагмент довольно полон (разве что cp866 надо заменить на используемую кодировку, cp1251 или скажем utf-8). Вот формат страницы книги, которую я верстал:

%%%% Формат страницы
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setlength{\hoffset}{-1in}
\setlength{\voffset}{-1in}

\setlength{\paperwidth}{148mm}
\setlength{\paperheight}{210mm}

\setlength{\oddsidemargin}{20mm}
\setlength{\evensidemargin}{20mm}
\setlength{\marginparwidth}{0pt}
\setlength{\marginparsep}{0pt}
\setlength{\topmargin}{5mm}
\setlength{\headheight}{\baselineskip}
\setlength{\headsep}{10pt}
\setlength{\topskip}{0pt}
\setlength{\footskip}{\baselineskip}
\addtolength{\footskip}{1.3mm}

\setlength{\textwidth}{108mm}

\newcommand{\settextheight}[1]{%
\setlength{\textheight}{#1}
\addtolength{\textheight}{-\headheight}
\addtolength{\textheight}{-\headsep}
\addtolength{\textheight}{-\footskip}
}


\settextheight{175.0mm} % для 11pt в мягком переплёте

\special{papersize=148mm,210mm}
\pagestyle{headings}

(Reply to this)(Parent)(Thread)


[info]_darkus_
2006-08-22 03:12 am UTC (link)
Насколько я понял, всё это можно запихнуть в одну строку при помощи пакета geometry. Ну да не в этом дело, окончательный PDF, который мне надо сдать в издательство, всё равно получается на странице формата А4. Т. е. формат полосы такой, каким я его задачю, но он размещается на А4, т. к. правое и нижнее поля «добираются» по размерам до этого формата. Как исправить — пока не ведаю.

(Reply to this)(Parent)


[info]gilmor
2006-08-28 02:51 pm UTC (link)
Это хорошо, что вы разбираетесь в латексе. А ЛаТеХ вам тоже знаком?

(Reply to this)(Parent)


[info]gilmor
2006-08-28 02:51 pm UTC (link)
"for PDFLatex compile with PSCYR fonts". При чём тут пдфлатех?!

(Reply to this)(Parent)


[info]cattusnocturnus
2006-08-05 11:38 am UTC (link)
Рекомендую латеховые пакеты: geometry, fancyhdr, fancyvrb

(Reply to this)


[info]npopok
2006-08-05 01:22 pm UTC (link)
1. Не просто дать набор средств, но и предоставить (для каждой ОС) готовую к работе среду программирования. Например, если это редактор Vim, то для него все скриптики, связывающие редактор с компилятором и прочими средствами разработки.

(Reply to this)(Thread)


[info]_darkus_
2006-08-06 06:33 pm UTC (link)
Кстати, а кто-нибудь пишет викиучебни по (La)TeX'у? Надо бы найти волонтёров... :)

(Reply to this)(Parent)(Thread)


[info]npopok
2006-08-06 06:46 pm UTC (link)
Потенциаловцы верстаются, кажется, ЛаТеХом. Можыть, у них в Физтехе есть какой-то внутренний учебник, не знаю.

(Reply to this)(Parent)(Thread)


[info]_darkus_
2006-08-06 06:50 pm UTC (link)
Да, я им статьи в (La)TeX пишу :)

(Reply to this)(Parent)(Thread)


[info]gilmor
2006-08-28 02:52 pm UTC (link)
А что, может, они умеют указатели делать?

(Reply to this)(Parent)


[info]gilmor
2006-08-28 02:52 pm UTC (link)
Чепуха. Есть Львовский.

(Reply to this)(Parent)


Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…