Пишу книгу по Lazarus. Кто поможет издать?

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение AShen » 30.11.2009 18:26:18

Посмотри ещё такую книгу:
http://www.kodges.ru/16653-chislennye-m ... jjsik.html
Аватара пользователя
AShen
постоялец
 
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение kazakpav » 30.11.2009 18:38:32

Моя книга не про численные методы. Я там рассматриваю и много других задач.
kazakpav
новенький
 
Сообщения: 16
Зарегистрирован: 27.11.2009 12:14:31

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение Mr.Smart » 30.11.2009 18:40:44

kazakpav
Ещё добавьте в описание такие конструкции как generics и for-in, а так судя по содержанию книга получится даже ничего;)

Добавлено спустя 2 минуты 12 секунд:
И также не забывать про использование новых Си подобных операциях += -= ++ -- и т.д.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение kazakpav » 30.11.2009 18:49:07

Mr.Smart писал(а):Ещё добавьте в описание такие конструкции как generics и for-in, а так судя по содержанию книга получится даже ничего;)

Mr.Smart писал(а):И также не забывать про использование новых Си подобных операциях += -= ++ -- и т.д.


Спасибо, обязательно учту!

Добавлено спустя 7 минут 38 секунд:
PapaNT писал(а):Про удобство...
2. Попробуй KDE поменять на Gnome. ИМХО, будет проще привыкнуть... На жене (юристке) испытывал...
Про издательство...


Завтра буду скачивать LInux школьный. Буду в книге на него ориентироваться. Там и посмотрим.
PapaNT писал(а):Про издательство...

3. На счет издательства... ИМХО, torrents.ru + ссылка на PayPal и прочие системы. Я бы заплатил за толковую книжку.


Нельзя ли подробнее? Только не надо про заработок в Интернете!
kazakpav
новенький
 
Сообщения: 16
Зарегистрирован: 27.11.2009 12:14:31

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение Odyssey » 30.11.2009 19:36:06

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

По содержанию несколько предложений:
kazakpav писал(а):2.1.9. Русский язык в консольных приложениях

Было бы здóрово здесь показать работу с функцией UTF8ToConsole, но не CharToOEM.
kazakpav писал(а):Глава VI. Программирование Windows-приложений в среде Lazarus 347
6.1. Элементы окон Windows 347
6.2. Различия между консольными и Windows приложениями 352
...
6.3.1. Создание Windows приложения 355

Если есть желание сделать книгу по-настоящему "кроссплатформенной", может быть не стоит привязывать целые главы к определённой ОС? Windows-приложения можно назвать очень похоже -- "оконными приложениями", или "графическими приложениями". И было бы просто замечательно, если бы окна и их элементы были рассмотрены не только на примере Windows, но и на примере одного из дистрибутивов Linux, и скриншоты тоже приводились для разных ОС.
kazakpav писал(а):6.3.6. Организация ввода данных. Однострочные редакторы TEdit, TLabeledEdit 383
...
6.3.6.2. Компонент TLabeledEdit 388

Вот именно LabeledEdit я бы рассматривать не стал, по следующей причине. Правильный подход к разработке пользовательского интерфейса для разных платформ -- использование редактора привязок, по это этому поводу есть отличная статья Алексея Лагунова. Так вот LabeledEdit некорректно работает с привязками, потому что привязывается только Edit, а Label приставляется к нему абы как. Я пока не смотрел, есть ли по этому поводу багрепорт, и не знаю будет ли проблема исправлена и когда именно. Но ИМХО: (1) имеет смысл хотя бы упомянуть о редакторе привязок, потому что это хорошая практика и (2) не имеет смысла учить использованию компонентов, которые не поддерживают хорошую практику, или работают с ошибками на момент написания книги. Если к выходу книги ошибка не будет исправлена (а этого нельзя гарантировать), то многих читателей это может надолго отвернуть и от Lazarus, и от книги.
kazakpav писал(а):6.3.10.2. Компонент TStringList 424

Похоже на опечатку, наверное имелся в виду TListBox, TStringList -- невизуальный. Хотя работа с TStringList тоже полезная штука.
Mr.Smart писал(а):for-in

Хорошее предложение, но опять же, имхо, это стоит добавлять только если к моменту выхода книги for-in будет в релизе FPC и Lazarus, а не в транке, и не в nightly-build'ах.
Mr.Smart писал(а):а так судя по содержанию книга получится даже ничего;)

Полностью согласен ) Я бы даже сказал "очень даже ничего" :)
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение kazakpav » 30.11.2009 19:58:41

Спасибо за поддержку и конструктивные предложения по существу!
Это, знаете ли, ободряет и прибавляет сил для работы. Конечно же, я не пропущу ни одного замечания!

Odyssey писал(а):Похоже на опечатку, наверное имелся в виду TListBox, TStringList -- невизуальный. Хотя работа с TStringList тоже полезная штука.

Это опечатка. Забыл обновить оглавление. Там должно быть TStringGrid.

Odyssey писал(а):Если есть желание сделать книгу по-настоящему "кроссплатформенной", может быть не стоит привязывать целые главы к определённой ОС? Windows-приложения можно назвать очень похоже -- "оконными приложениями", или "графическими приложениями". И было бы просто замечательно, если бы окна и их элементы были рассмотрены не только на примере Windows, но и на примере одного из дистрибутивов Linux, и скриншоты тоже приводились для разных ОС.


Если Вы читали весь топик, то вы поймете, что я сейчас интенсивно над этим думаю. В этом смысле очень ценное замечание!
Odyssey писал(а):Было бы здóрово здесь показать работу с функцией UTF8ToConsole, но не CharToOEM.


В Windows в консольных приложениях есть проблемы с русским языком. В книге я просто написал элементарную функцию и всюду ей пользовался. В главе о функциях я подробно ее разбираю. Но, конечно, я учту и это.
Просто книга раздувается в размерах буквально на глазах. Не хотелось бы, чтобы книга была похожа на книги Архангельского. Все же я пишу не справочник, а пытаюсь заставить читателя думать.
Odyssey писал(а):LabeledEdit я бы рассматривать не стал

Я этого не знал, честное слово!

Добавлено спустя 8 минут 16 секунд:
И еще. Убедительно прошу Вас и всех, кто будет давать замечания и предложения, не забывать о предназначении книги - для начинающих!
Поэтому я и отложил главу об ООП на будущее, потому что, не уверен, что для начинающих это будет нужно и понятно. Можно об этом долго и до хрипоты спорить, но, на мой взгляд, "с первого прохода" (компилятор?!) давать ООП не стоит, а если и давать, то только бегло, лишь для того, чтобы объяснить основные начальные понятия и просто термины.
kazakpav
новенький
 
Сообщения: 16
Зарегистрирован: 27.11.2009 12:14:31

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение Odyssey » 30.11.2009 21:01:44

kazakpav писал(а):Я этого не знал, честное слово!

Я тоже до недавнего времени не знал :( Бывают такие грабли, постараюсь предупредить о тех, о которых помню.
Вот например ещё одни -- с кодировками. Например, пользователи Linux не смогут повторить этот пример с корректировкой сообщения, выводимого в консоль:
kazakpav писал(а):В Windows в консольных приложениях есть проблемы с русским языком. В книге я просто написал элементарную функцию и всюду ей пользовался. В главе о функциях я подробно ее разбираю.

Проблема в том, что в Linux консоль обычно работает с кодировкой UTF-8, т.е. строки, получаемые оттуда и записываемые туда, закодированы именно в этой кодировке. А это значит две вещи:
1) Под Linux функция "руссификации" строки будет не исправлять, а искажать её
2) Под Linux не получиться работать с символами строки по индексу. Т.е. в строке s = 'привет' s[3] не равно 'и'.

То же самое (проблема другой кодировки) относится и к MacOSX. Т.е. для обучения именно кроссплатформенному программированию все примеры нужно заставить работать на любой платформе. Для этого нужно приводить все поступающие "извне" (из консоли, функций работы с ФС и т.п.) строки к единой известной кодировке.

В визуальных компонентах Lazarus в качеcтве такой единой кодировки используется UTF-8, а для неё не работает обращение к символу по индексу. Всмысле, нельзя сделать так: s[3], но зато можно сделать так: UTF8Copy(s,3,1);

Возможно, некоторые уроки по работе со строками потребуется переделать с учётом кодировок, но имхо, если не рассказать это начинающим сразу, потом им будет достаточно больно переучиваться. Чтобы не усложнять всё чрезмерно, можно просто объяснить, например, что получение третьего символа строки -- это копирование из строки одного символа начиная с третьей позиции. А поскольку строка в кодировке UTF-8 -- то используем UTF8Copy(s,3,1); Это если изучение кодировок не входит в планы для этой книги. А если входит -- то можно с этого начать, а дальше объяснить что к чему.

Если будут затруднения в адаптации уроков под кроссплатформенную работу, я думаю можно смело задавать вопросы в этом форуме ;)
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение kazakpav » 30.11.2009 21:36:42

Odyssey писал(а):Возможно, некоторые уроки по работе со строками потребуется переделать с учётом кодировок, но имхо, если не рассказать это начинающим сразу, потом им будет достаточно больно переучиваться.


Конечно теперь, когда книгу все-равно надо переделывать, все это придется учитывать. Кстати, проблемы с кодировками возникают и при работе с текстовыми файлами в Windows, поскольку Lazarus и там использует кодировку UTF-8.

Odyssey писал(а):Т.е. для обучения именно кроссплатформенному программированию все примеры нужно заставить работать на любой платформе.


Мне кажется для начинающих обучать кросплатформенному программированию "слишком высокая цель". Я вижу свою задачу просто показать как будет выглядеть код программы для различных ОС, примерно в том духе, что в твоем примере. Т.е. в строке

s:= 'привет';

p:=s[3] равно 'и' в Windows, а в Linux не равно и нужно писать

p:=UTF8Copy(s,3,1);

Конечно, кое-где будет вполне уместным сделать замечание типа "а если сделать вот так, то это будет кроссплатформенно".
kazakpav
новенький
 
Сообщения: 16
Зарегистрирован: 27.11.2009 12:14:31

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение and » 30.11.2009 22:24:36

kazakpav писал(а):p:=s[3] равно 'и' в Windows, а в Linux не равно и нужно писать
p:=UTF8Copy(s,3,1);
Не так. p:=s[3] равно 'и' в кодировке Win1251 (KOI-8, DOS866 или другой однобайтовой). Это зависит только от кодировки, в которой задана строка, но не от ОС. Просто укажите читателям на этот момент: поскольку Вы ссылаетесь на книги по TPas/Delphi, они (читатели) наверняка при чтени этих книг столкнутся с приёмом s[3]. Следует их предупредить, что приём в свете использования новомодных кодировок устарел и стал некорректным.
Аватара пользователя
and
постоялец
 
Сообщения: 124
Зарегистрирован: 16.09.2009 17:11:01
Откуда: г. Гомель, Беларусь

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение Mr.Smart » 30.11.2009 22:25:42

Odyssey писал(а):
Mr.Smart писал(а):for-in

Хорошее предложение, но опять же, имхо, это стоит добавлять только если к моменту выхода книги for-in будет в релизе FPC и Lazarus, а не в транке, и не в nightly-build'ах.

Я всёже считаю, что ориентироваться нужно на версию FPC как минимум 2.4.0, которая вот-вот выйдет и конструкция for-in в ней реализована :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение xcod » 01.12.2009 07:46:27

по поводу объектно-ориентированного программирования и создания Windows приложений от себя порекомендовал бы книгу "Иванова Г.С., Ничушкина Т.Н., Пугачев Е.К. Объективно-ориентированное программирование."
там и описание UML есть, думаю для общего развития можно включить это в книгу
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение Light13 » 01.12.2009 07:58:19

Ну вот, попросил оглавление и не успел отреагировать :)

Вроде дельные замечания дают.
Вот мое
kazakpav писал(а):Среда разработки Lazarus 59 ... 64

Уделите, пожалуйста, больше внимания этой IDE. Имхо нужно больше информации: затроньте настройки компилятора для кроссплатформенного программирования, для уменьшения бинарного файла, установка уровней оптимизации...

Удачи Вам.
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение kazakpav » 01.12.2009 09:07:22

Спасибо! Поскольку пишу для начинающих, указанные вопросы лучше, если будут затронуты в конце. Может быть даже в виде приложения.
kazakpav
новенький
 
Сообщения: 16
Зарегистрирован: 27.11.2009 12:14:31

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение bw » 01.12.2009 23:35:01

Прежде чем говорить о Lazarus следует упомянуть о таких вещах как VCL, FCL, LCL и т.д.
А так же о существующих пакетах для разработки GUI - MseGUI, FpGUI, GTK+, Qt и т.д. По возможности, со сравнениями. Всё же на Lazarus (как и на Delphi) свет клином не сошелся, нужно дать понять читателю, что есть альтернативы и что бы он до конца осознал, что же из себя представляет Lazarus и почему автор рекомендует в данном издании знакомство с GUI начать с Lazarus, а не с GTK+. Еще не помешает объяснить, что визуальный редактор (IDE) это всего-лишь улучшайзер, а избранные богом программисты используют vi :-). Дело в том, что на вторую книгу (или самостоятельное изучение материала) юнлинга может и не хватить, и родится на свет еще один кнопко-шлёпец.

Ну и по себе могу сказать, читать API ну очень скучно, не нужно в книги его печатать, лучше научить читателя самостоятельно работать с доступными источниками информации. И еще. Я отдаю предпочтение литературе изобилующей примерами реального или псевдокода, UML и/или другими схемами. Просто информационная отдача от них в разы больше чем от человеческого языка (лично для меня, повторюсь). Хотя делать большие листинги в книге, наверное, не самая лучшая идея (просто читать не удобно), но никто не мешает выложить их на диск/сайт, а на бумаге оставить только обсуждаемые фрагменты.

p.s. Буду с нетерпением ждать книжки. Может наконец, что-то дельное появится :-).

..bw
Аватара пользователя
bw
постоялец
 
Сообщения: 359
Зарегистрирован: 01.12.2005 11:36:23
Откуда: Усть-Илимск

Re: Пишу книгу по Lazarus. Кто поможет издать?

Сообщение kazakpav » 02.12.2009 07:20:41

Для начинающих (школьников и студентов 1 курса) API? Функциями API я в книге практически не пользуюсь.
Под созданием Windows приложений я понимаю создание приложений с GUI для Windows.
В свете последних обсуждений решено включить особенности программирования в Linux.
Что же касается других средств разработки, то их, конечно же, надо упомянуть, но сравнение? Разве что лишь в общих чертах, не забывайте о предназначении книги.
kazakpav
новенький
 
Сообщения: 16
Зарегистрирован: 27.11.2009 12:14:31

Пред.След.

Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru