1

Тема: Рекомендованные (знатоками) книги/ресурсы для новичков

У нас в форуме общаются люди разной глубины знания системы и навыков программирования. Есть и знатоки, которые легко ориентируются в возможностях и средствах, предоставляемых системой, и новички, для которых устройство выглядит как черный ящик. Остальные - занимающие некоторое промежуточное положение, но владеющие своей частью информации что/как.... Так! О чем это я?! ... Потерялся...
Вобчем просьба к людям, считающим, что владеют некоторым достаточным багажом знаний, чтобы давать советы - порекомендовать книжки (желательно на русском) или ресурсы (аналогично), которые помогли бы страждущим новичкам освоить средства разработки и языки программирования, которые можно применить на таблетке.
Вот конкретно - Питон и GTK+
Залез я в маемо http://maemo.org/development/documentation/apis/4-1/ и pyton.org http://python.org/doc/, начал читать. И захлебнулся. Толку мне от этих энциклопедических знаний! Мне бы постепенно - как окошко открыть, как в него список поместить, как к нему скролбары прикрутить и т.д.
Т.е. нужна какая никакая курва обучения ((С) Голубицкого) smile А это обычно есть в учебных книжках по языку/средствам разработки. Вот чтоньть такое бы было интересно почитать.

Nokia N800/Diablo_2008.43-7 + 4Gb Transced SDHC6 + 1Gb AData Speedy SD Duo / Philips Xenium 9@9d
DLink DUB-104 + 32Gb Transcend JetFlash + A4Tech KL-5UP / ACorp ADSL W422G
VITA BREVIS

2

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

Мне тож интересна данная тема. Интересует лит-ра как по хилдонизации портированных приложений, так и мануалы по разработке приложений под maemo c нуля. Конечно, предпочтительнее офф-лайн источники информации, чтоб не быть привязанным к инету.

Samsung i9001 | Nokia N91 | Acer Aspire 5535 | Acorp W422G
Продал таблетку... Теперь жалею...

3

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

DarkTroll пишет:

Конечно, предпочтительнее офф-лайн источники информации, чтоб не быть привязанным к инету.

Всегда можно на ББ скачать ресурс оффлайн-браузером в папку и натравить на нее конвертор в chm, который прекрасно показывает FBReader...

Nokia N800/Diablo_2008.43-7 + 4Gb Transced SDHC6 + 1Gb AData Speedy SD Duo / Philips Xenium 9@9d
DLink DUB-104 + 32Gb Transcend JetFlash + A4Tech KL-5UP / ACorp ADSL W422G
VITA BREVIS

4

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

Это же надо делать! А зачем, когда уже что-то есть(возможно)?
А насчет chm и fbreader не надо. Да, читает, ноо не все и не всегда правильно. Закончим оффтоп. Так что насчет лит-ры?

Samsung i9001 | Nokia N91 | Acer Aspire 5535 | Acorp W422G
Продал таблетку... Теперь жалею...

5

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

С русскоязычной документацией не очень-то, но кое-что есть.
Вот курсы от intuit.ru: http://www.intuit.ru/department/pl/python/
Вот перевод учебника: http://www.python.ru/files/book-ods.pdf, старый, правда, но для начала сойдет.

Здесь очень много книжек, есть и русские: http://slav0nic.org.ua/static/books/python/

Это, судя по названию, курсы от intuit.ru: http://slav0nic.org.ua/static/books/pyt … uit.RU.zip
Это для тех, кто вообще программировать не умеет: http://slav0nic.org.ua/static/books/pyt … thonRU.pdf

Насчет GTK стандартного учебника хватит: http://www.pygtk.org/pygtk2tutorial/index.html
Но оно на английском.
Ну и API reference, без которого тоже никуда: http://www.pygtk.org/docs/pygtk/index.html

Собственно стандартный учебник и library reference и для самого Питона незаменимы.
Вот здесь они живут:
http://www.python.org/doc/2.5/tut/tut.html
http://www.python.org/doc/2.5/lib/lib.html

Я даю версии для Python 2.5, потому, что она на таблетке используется.

И, наконец, PyMaemo: http://pymaemo.garage.maemo.org/documentation.html

на русском можно найти только всякие коротенькие примеры, типа этого:
http://gazette.linux.ru.net/lg78/articl … umar.html, но это просто гуглом находится на ура.

Можно еще поспрошать здесь: http://python.su/forum/
Там есть как раздел для новичков в Питоне, так и раздел, посвященный GUI тулкитам, в том числе и Gtk. Про maemo и hildon там вряд ли скажут, но зная Питон и Gtk все эти хилдоны и прочие специфичные для таблетки вещи уже будут не так страшны.

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


Если есть вопросы - спрашивайте. Я, собственно, не бог весть какой знаток, но попробую ответить.

770/800/810/900

6

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

maemo_4-0_tutorial - http://maemo.org/development/documentat … 0_tutorial
PyGTK блог на хабре - http://habrahabr.ru/blogs/PyGTK/
PyGTK tutorials - http://www.pygtk.org/articles.html

7

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

Перевод стандартного учебника: http://ru.wikibooks.org/wiki/%D0%A3%D1% … Python_2.6
В глубь языка Python (переведено не все): http://diveinto.python.ru/

770/800/810/900

8

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

Попался мне когда то в руки файлик с 26ю книжками о python - таскаю на таблетке всё на случай попадания на необитаемый остров smile
сейчас залью на ftp :

1. A Byte of Python, Version 1.2.0
2. Beginning Python
3. Dive into Python, Version 5.4
4. Foundations of Python Network Programming
5. Game Programming with Python, Lua, and Ruby
6. How to Think Like a Computer Scientist Learning with Python
7. Jython for Java Programmers
8. Learning Python, Second Edition
9. Making Use of Python
10. Programming Python, Third Edition
11. Python XML
12. Python 2.1 Bible
13. Python Cookbook, Second Edition
14. Python Developer's Handbook
15. Python How to Program
16. Python in a Nutshell, Second Edition
17. Python Phrasebook
18. Python Programming for the Absolute Beginner
19. Python Programming with the Java Class Libraries A Tutorial for
20. Python Scripting in Computational Science
21. Python Standard Library
22. Python Tutorial Learning to Program, Version 22 January 2006
23. Text Processing in Python
24. Учимся программировать вместе с Питоном (Start with Python), Rev
25. Язык программирования Python
26.Oracle 9i .Настольная книга администратора.

здесь : n8xx.n8xx.com/Python_book/

GNU/Linux Debian / Nokia N900 / N9

9

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

2dik: По линку, что я дал большинство из них уже есть. По-моему достаточно залить разницу. К тому же почти все они англоязычные.

Теперь по поводу изучения:

Начинающим я бы советовал не распыляться. Для начала достаточно вот этого: http://ru.wikibooks.org/wiki/%D0%A3%D1% … Python_2.6
и этого: http://diveinto.python.ru/toc.html

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

После этого приступить к GTK:
прочитать это: http://www.pygtk.org/pygtk2tutorial/index.html  и попробовать примеры оттуда, можно и на таблетке.
И опять придумать простенькую задачку и написать ее. Посерьезнее, чем hello, world, но не очень сложную.

И уже потом глянуть на дополнения maemo: http://pymaemo.garage.maemo.org/documentation.html
Там их немного, но знать и уметь ими пользоваться нужно.
И снова что-нибудь написать с использованием этих дополнений.

Вот и весь путь :)

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

Удачи!

770/800/810/900

10

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

Давайте что нибудь на голом питоне сделаем. Давайте Вашу простую задачку. ssd, Вы участвуете? smile

Samsung i9001 | Nokia N91 | Acer Aspire 5535 | Acorp W422G
Продал таблетку... Теперь жалею...

11

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

Давно лелею замысел сделать фронтенд для units с возможностью составления пользовательского набора единиц. Фингер-френдли. Может даже с синхронизацией курсов валют. Сам units в SDK компилируется без проблем.

N800 N900

12

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

Дайте мне задачку пожалуйста.

GNU/Linux Debian / Nokia N900 / N9

13

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

DarkTroll пишет:

Давайте что нибудь на голом питоне сделаем. Давайте Вашу простую задачку. ssd, Вы участвуете? smile

Для начала очень простая задачка: 
Нужно написать скрипт, который выведет самые большие по размеру файлы.
Параметры - каталог, с которого начинать поиск, максимально количество файлов для вывода.
Формат вывода - путь, размер. Отсортировано должно быть по размеру.

Это неважно, что это можно сделать в шеле одной строкой, нам важно попрактиковаться. Потом усложним, если захотите.

Устроит такое или хотите чего-нибудь посложнее?

770/800/810/900

14

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

mosfet пишет:

Давно лелею замысел сделать фронтенд для units с возможностью составления пользовательского набора единиц. Фингер-френдли. Может даже с синхронизацией курсов валют. Сам units в SDK компилируется без проблем.

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

770/800/810/900

15

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

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

770/800/810/900

16 Отредактировано wildMan (08-01-2009 20:11:35)

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

мой вариант задачки на прокачку.
есть xml вида

<node id="-1">
<tag k="name" v="АБВГД" />
<tag k="comment" v="ZZZZZ" />
</node>

и есть csv файлик вида

id;AAA;BBB

задача:
сделать гуи программу которая:
1. в случае если v=АБВГД в xml совпадает с единственным полем «BBB» в csv делается однозначный маппинг
2. если в xml есть несколько записей с одним АБВГД или в csv несколько с одним BBB - ghtljcnfdbnm возможность задать маппинг ручками
3. если в xml есть АБВГД не присутствующее в BBB csv и наоборот - предоставить возможность связать их ручками независимо от равенства
конечная цель получить кучу записей вида id_из_xml; id_из_csv; comment_из_xml; AAA_из_csv
зы. задача «из жизни». столкнулся при валидации карт OpenStreetMap.org и привязки данных из них к справочникам СОАТО smile
позволяет изучить след. темы: работа с xml, работа с csv, PyGTK или PyQT на выбор...
плюс море путей оптимизации по скорости/потребляемым ресурсам smile

upd: хотя это задачка тоже не для нулевого уровня. но её можно разбить на вполне простые и независимые подзадачки

17

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

Wall пишет:

Для начала очень простая задачка: 
Нужно написать скрипт, который выведет самые большие по размеру файлы.
Параметры - каталог, с которого начинать поиск, максимально количество файлов для вывода.
Формат вывода - путь, размер. Отсортировано должно быть по размеру.

Это неважно, что это можно сделать в шеле одной строкой, нам важно попрактиковаться. Потом усложним, если захотите.

Устроит такое или хотите чего-нибудь посложнее?

Примерно так. За оптимизацию не ручаюсь.

#!/usr/bin/env python2.5
# -*-coding: utf-8 -*-

# Указываем необходимые системные библиотеки
import sys
import os

# Проверяем, задал ли пользователь количество файлов на вывод (целым числом):
try:
   MAXFILES = int(sys.argv[1])
except:
   # Если нет, завершаемся
   print 'Сколько файлов выводыт?'
   sys.exit()

# Проверяем, задал ли пользователь корневой каталог:
try:
   basedir = sys.argv[2]
except:
   # Аналогично
   print 'Слюшай, каталог задай, да'
   sys.exit()

# Если задал, но не тот:
if os.path.isdir(basedir) == False:
   print 'Нэт такого каталога, мамой клянус!'
   sys.exit()

# Создаем список
filelist = []

# Объявляем функцию
def processDirectory(args, dirname, filenames):

   # Для всех файлов и каталогов, переданных в функцию
   for file in filenames:

      # Полный путь = каталога/файл
      fullpath = dirname + '/' + file

      # Добавляем в список элемент (размер файла, файл), являющийся кортежем,
      # каталоги пропускаем
      if os.path.isfile(fullpath):
         filelist.append( (os.path.getsize(fullpath), fullpath) )

# Используем функцию walk(), чтобы пройтись по всей иерархии, начиная с
# корневого каталога basedir. При этом для каждого пройденного файла выполняется
# наша функция processDirectory
os.path.walk(basedir, processDirectory, None)

# Сортируем список [ (размер1, файл1), (размер2, файл2) ...]
filelist.sort()

# Переворачиваем его большими файлами вверх
filelist.reverse()

# Выводим на экран i-элементы списка от 0 до MAXFILES-1
for i in range(MAXFILES):

   # Каждый элемент списка - кортеж (размер, файл), поэтому выводим как %d %s
   print '%d\t%s' % filelist[i]

Идея отсюда:
Working with files in os.walk

Еще полезная статья:
Защита от "дурака" в программах на языке Python

N800 N900

18 Отредактировано TWINc (09-01-2009 23:39:03)

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

# Проверяем, задал ли пользователь количество файлов на вывод (целым числом):
try:
   MAXFILES = int(sys.argv[1])
except:
   # Если нет, завершаемся
   print 'Сколько файлов выводыт?'
   sys.exit()

С параметрами так в питоне не работают. Вот кусочек моего кода:

from optparse import OptionParser

def parseOptions():
    parser = OptionParser()
    
    parser.add_option('--directory', dest='directory')    
    parser.add_option('--ip', dest='ip', default='0.0.0.0')
    parser.add_option('--port', dest='port', default=3623)
    parser.add_option('--interval', dest='interval', default=5)
    parser.add_option('--force', dest='force', default=False)

    (options, args) = parser.parse_args()
    return options
    
opt = parseOptions()
# ...
print opt.interval
# ...

19

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

Ребят, кажется у меня идея по-лучше.... Давайте сделаем что-нибудь полезное для многих. Все таблеточники знают про ущербность дефолтного файл-менеджера. Уважамый svs57 портировал по просьбам трудящихся (и моей в том числе) замечательный файл-менеджер XWC. Если эта тема прошла мимо кого-то, можете ознакомиться XWC. Но он не может восстать во всей красе без хилдонизации....
Так вот, товарищи, может объединимся да сделаем это вместе? Да, звучит пошло, но я думаю, по концовке каждый оценит проделанную работу. Wall, TWINc, как вы посмотрите на это?

Samsung i9001 | Nokia N91 | Acer Aspire 5535 | Acorp W422G
Продал таблетку... Теперь жалею...

20

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

DarkTroll пишет:

Ребят, кажется у меня идея по-лучше....

С этим, пожалуйста, в другой топик. Не уверен, что эта идея покажется лучшей для тех, кто хочет поучить Питон. Этот топик для них.

770/800/810/900

21

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

Еще варианты решения задачки будут?

770/800/810/900

22

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

TWINc пишет:

opt = parseOptions()
# ...
interval = int(opt.interval)
# ...

Вы проверяли свой скрипт?
В отличие от предложенного mosfet   варианта ваш отвалится, если задать не число в качестве интервала:

$ python test.py --interval bla
Traceback (most recent call last):
  File "test.py", line 17, in ?
    interval = int(opt.interval)
ValueError: invalid literal for int(): bla

Нормальным решением будет указать парсеру, что это число, он сам проверит.

770/800/810/900

23

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

Wall пишет:

Еще варианты решения задачки будут?

Я тоже хочу присоединиться к обучению - но боюсь пока не успеваю изучить теоретическую часть - я выложу решение попозже или подключаюсь со следующей задачи

Nokia N800 OS 5.2008.43-7 / Nokia 3110 Classic / Debian 5.0.0 Lenny

24 Отредактировано TWINc (09-01-2009 23:39:52)

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

Wall, поправил

25

Re: Рекомендованные (знатоками) книги/ресурсы для новичков

alex2ndr пишет:
Wall пишет:

Еще варианты решения задачки будут?

Я тоже хочу присоединиться к обучению - но боюсь пока не успеваю изучить теоретическую часть - я выложу решение попозже или подключаюсь со следующей задачи

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

Сейчас я собираюсь подождать немного, может еще кто подтянется. Потом прокомментирую решения, которые будут к тому времени.
Кстати, я не вижу вопросов по тому, коду, который уже есть. Всем все понятно?

770/800/810/900