пятница, 26 декабря 2008 г.

Руда, Д.З. от 24 декабря

Руда, Д.З. от 24 декабря

24 20:23 День 5. Творческий конвейер By: sheremetev http://webinar2.com/den-5-tvorcheskii-konveier

Д.З. минимум. Найти творческий рудник по вашему направлению выложить на вебинаре.

Д.З. максимум. Поиск руды для своего проекта. Найти пять цитат из сайтов и выложить на своем блоге


Д.З. минимум.
Программы, их использование, идеи, как их улучшить, как лучше использовать.
Книги по ФП, ОС, тематические сайты, журналы, списки рассылки.

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

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

Да, действительно мало руды. Синдром чистого листа. :)


Д.З. максимум.

1. http://pcl.catap.ru/doku.php?id=pcl:введениепочемуlisp
Например, в одном из отпусков, имея около недели на опыты с Lisp, я решил попробовать написать версию программы, написанной мною на Java в начале программистской карьеры. Эта программа применяла генетические алгоритмы для игры в Го. Даже с моими зачаточными знаниями Common Lisp написание всего-лишь основных функций было намного продуктивнее, чем если бы я решил переписать всё на Java заново. Для написания программы на Java потребовалось несколько лет работы с этим языком.

В качестве девиза для Common Lisp лучше всего подходит похожее на дзенский коан описание «программируемый язык программирования». Хотя и несколько запутанный, данный девиз, тем не менее, выделяет суть преимущества, которое Lisp до сих пор имеет перед другими языками программирования. Больше, чем другие языки, Common Lisp следует философии: что хорошо для разработчика языка, то хорошо для его пользователей. Программируя на Common Lisp, вы, скорее всего, никогда не обнаружите нехватки каких-то возможностей в языке, которые упростили бы программирование, потому что, как будет показано далее, вы можете просто добавить эти возможности в язык.

Следовательно, программы на Common Lisp стараются предоставить наиболее прозрачное отображение между вашими идеями о том, как программа должна работать, и кодом, который вы пишете. Ваши идеи не замутняются нагромождением кода и бесконечно повторяющимися выражениями. Это делает ваш код более управляемым, потому что вам больше не приходится бродить по нему всякий раз, когда вы хотите внести какие-то изменения. Даже систематические изменения в программе могут быть достигнуты относительно малыми изменениями исходного кода. Это также означает, что вы будете писать код быстрее; вы будете писать меньше кода и не будете терять время на поиск пути для выражения своих идей в ограничениях, накладываемых языком программирования2).

Это вдохновляет. Новый подход к рутине - старый Лисп.

2. Не совсем источник, а впечатление от книги:
http://mustread.ru/isbn/5791300727.html
Вот теперь, дочитав до конца, я по-настоящему пожалел, что не прочел эту книгу раньше, до бейсика, паскаля, с, асма, с++, окемла, лиспа, пролога, эрланга, хаскела и др. Еще в первой половине списка я начал находить много общего, потом уже я узнал про императивное, функциональное, логическое программирование, посылку сообщений и т.д. Примерно понимал и устройство компа, знал что такое интерпретаторы, компиляторы и их помеси. Но, черт возьми, это все было от деталей к туманному общему, а не наоборот, от разжеванного общего к деталям на практике.
А если Вы программист со стажем, то следует почитать хотя бы для наведения порядка в голове.
PS: Paul Graham сказал про SICP:
“Я впервые прочел ее 15 лет назад и до сих пор не уверен, что усвоил все, чему эта книга может научить.”

Это вдохновляет. Важен не синтаксис, а идеи, опыт.
Это даже не руда. Концетрат!

3. А вот сам источник:
http://newstar.rinet.ru/~goga/sicp/sicp.pdf


4. http://lisp.ru/
В 1960 Джон Маккарти опубликовал выдающуюся статью, в которой он сделал для программирования примерно то же, что Евклид когда-то сделал для геометрии. Он показал, как имея в наличии только простые операторы и представление для функций, можно создать целый язык программирования.
Lisp - это целое множество языков программирования, код программ в которых, также как и данные, представляются системами линейных списков символов. Lisp считается вторым в истории высокоуровневым языком программирования после Фортрана и применяется до сих пор. Как и Фортран, Lisp претерпевал большие изменения в течение своей жизни и имел несколько диалектов. На сегодняшний день наиболее широкую известность приобрели диалекты «Common Lisp» и «Scheme».

5. http://lisp.ru/forums.php?m=posts&q=10
С чего начать? -- разумеется, с NewLisp
Один живущий в Штатах немец по фамилии Lutz создал на мой взгляд удивительно удачный скриптовый вариант ЛиспоСхемы. Весь язык из себя около 200 кб, это один executable, т.е. язык не требует "системной установки. Он работает на Маках, Windows и юниксах. Он позволяет создать интерактивно по шагам ваш скрипт, а затем, если угодно, "упаковать" его в подобие одной независимой програмы (на самом деле скрипт приписывается к executable-языку и остается скриптом, но упаковка очень удобна для раздачи результата наивным пользователям)
Наконец, NewLisp имеет прекрасную, современную документацию с примерами и "книгами рецептов", что резко отличает его от официоза, который был принят до-Интернетную эпоху и который так замедляет новичков в традиционном Common Lisp и Scheme.
Ну и наконец сам автор языка доступен в форуме, разговаривает с народом, откликается на проблемы и даже может внести по просьбе новые features (правда, если они ему понравятся самому ;)) )
ВЕБ САЙТ ЯЗЫКА:
http://www.newlisp.org

по-моему начинать надо с CL или Схемы, по крайней мере можно очень быстро перейти к продакшн использованию


6. Lisp.Ru - Русскоязычное сообщество лисперов, форумы
http://lisp.ru/forums.php
Lisp - с чего начать?
Раздел для начинающих. Начать с NewLisp ;))
Программирование на языке Lisp
Обсуждения любых тем, касающихся языка Lisp. Передача функции как параметр...
Алгоритмы, решенияОцениваем и обсуждаем готовые решения. рефакторинг
Lisp vs Другие языки
Сравниваем Lisp с другими языками программирования. Lisp и Java

7. http://lisp.ru/forums.php?m=posts&q=5
Императивные языки это средства разработки программ, которые принуждают программиста описывать процесс решения задачи. В противовес императивным существуют декларативные языки, которые принуждают программиста описывать решение (а не его процесс).
Лисп это язык который поддерживает обе парадигмы

8. intuit.ru Добро пожаловать в Интернет-Университет Информационных Технологий!
Здесь Вы найдете много бесплатных учебных курсов, которые помогут получить новые знания и повысить профессиональную квалификацию с максимальным для Вас комфортом.
Учиться просто:
1. Зарегистрируйтесь.
2. Выберите бесплатный курс.
3. Учитесь, учитесь, учитесь и учитесь!

Как-то однобоко получилось.
Буду добавлять.

2 комментария:

  1. Я нашла то, чем ты интересовался.
    http://community.livejournal.com/ru_lifehack/25585.html
    Легкий способ замотивировать себя
    Вам наверняка знакомо это чувство: нужно работать, делать дела, а вы бессмысленно ползаете по интернету (телевизору, книгам), ища неизвестно что… И даже мысли о работе как будто блокируются чем-то. Отчего ВСЕ-ТАКИ это происходит? И что с этим ДЕЛАТЬ?

    Я расскажу вам свой способ. Сразу предупрежу: я не буду вам рассказывать о «великих целях», о «награждениях и наказаниях», о «поиске смысла жизни». Наверняка вы все это уже пробовали. И наверняка это у вас не сработало. Более того, наверняка вам было просто ЛЕНЬ этим заниматься. И это — НОРМАЛЬНО.

    И я объясню, почему это так. Потому что в глубине души вы чувствуете, что ни «целей», ни «смысла» — нет. Вы уже живы, сыты и здоровы — зачем вам что-то еще? Вы это понимаете, а значит делаете что-то (когда вы все-таки что-то делаете) НЕ ПОЭТОМУ.

    А почему?

    Ответ будет таким:

    Вы делаете что-то, потому что делать ИНТЕРЕСНЕЕ, чем не делать.

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

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

    И что же тогда ДЕЛАТЬ?

    Ответ прост. Помимо интернета есть еще один источник информации — ваш собственный мозг. Причем он как раз обладает всеми необходимыми исходными данными. Надо просто активировать его, чтобы он решил эту задачу. И я объясню, как это сделать.

    Мозг активируется, когда ему ставишь вопрос. Он тут же начинает искать ответ. Главное — сформулировать вопрос. А, поскольку проблема заключается в том, что вы СЕЙЧАС НЕ ДЕЛАЕТЕ НИЧЕГО, ЧТО СЧИТАЕТЕ НУЖНЫМ, вопрос выглядит так:

    ЧТО ДЕЛАТЬ СЕЙЧАС?

    Итак, все, что вам надо делать — это повторять этот вопрос про себя: «Что делать сейчас? Что делать сейчас? Что делать сейчас?». И вы почувствуете, что ваше мышление активировалось. Начали лезть в голову варианты, расставляться приоритеты.

    И в конце-концов вы ПОЙМЕТЕ, что вам делать, и НАЧНЕТЕ ЭТО ДЕЛАТЬ. Если вы только поймете, но НЕ начнете, значит ПОЛНОГО понимания еще не сложилось. И надо продолжать спрашивать себя: «Что делать сейчас?».

    Пока все-таки не начнете что-то ДЕЛАТЬ.

    Еще раз, ОЧЕНЬ важно. Повторять надо ДО ТЕХ ПОР, пока не начнете что-то делать. Если лезут в голову мысли "хотел бы это, надо бы то, но не хочу или почему-то не делаю", значит, еще РАНО. Надо ПРОДОЛЖАТЬ повторять вопрос. Это с первого раза может занять время. Но ЛУЧШЕ потратить время на это, чем на еще пять часов бессмысленного ползания по интернету.

    Лучше делать ЧТО-ТО, чем не делать НИЧЕГО.

    Итак, начинайте спрашивать себя прямо сейчас. Что делать сейчас? Что делать сейчас? Что делать сейчас?

    Дмитрий Лейкин aka DileSoft
    dilesoft@dilesoft.ru

    Данный текст копировать можно и нужно.

    ОтветитьУдалить
  2. Спасибо огромное!
    Буду с Вашей помощью избавляться от вредных привычек.
    Константин положил этому начало (аськи, чаты, форумы формата "каждый день одно и то же"), а Вы дали способ переключиться на полезную работу.


    Сегодня по пути на работу вспомнил, что читаю А. Солженицына "В круге первом", а текст - это знаковая система, которая рождает идеи, образы.
    Забыл написать, что книги с таким насыщенным языком - это и руда, а каждая фраза, способ построения фразы у Солженицына, Бродского, Лермонтова, Достоевского - это источник для наблюдения, анализа, подражания.
    Видишь слова, понимаешь смысл написанного, но как это они делают?!

    Вот такой плотности слова добиться бы в интерфейсе, функциональности, коде.
    Так что кубики свои"знаковые" можно делать расчленяя классику, да простят меня за такой глагол.

    ОтветитьУдалить