Hatred's Log Place

DON'T PANIC!

May 10, 2010 - 1 minute read - projects programming

Crowns 0.4.0

Выпустил версию 0.4.0 из основных изменений:

  • добавлена поддержка подложки (фоновой картинки), для реализации отображения синнузий
  • поддержка импорта из текстовых файлов данных с возрастом, плюс реализована совместимость со старыми форматами
  • оптимизация отрисовки проекций крон: реализована отрисовка кривыми Безье
  • экспорт построений в SVG

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

Полный список изменений: ChangeLog

Скачать: Download

May 1, 2010 - 1 minute read - life

Спокойствие

Как оказывается спокойно с выключенным IM.

Да, вот тут раздача свена, друг, ещё будучи в VL LUG начинал портировать, потом долго мутили немцы: http://www.linux.org.ru/forum/games/4773950

Apr 26, 2010 - 6 minute read - туризм

Нет, мы не эльфы...

Сегодня ходили с Настей на Фалазу в однодневку. В субботу вечером погода пугала серыми низкими облаками, хотя на вопрос от Насти по поводу погоды в воскресенье, уверенно ответил - все отлично, прогноз погоды я ещё не знал. Перед сном таки заглянул и, надо же, действительно - отлично :)

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

По дороге на горнолыжку, несколько не доходя до Пасеки, случился, не нарочно, классический акт стопа попутки (ну откровенно говоря водитель сам остановился..): Настя отходит с дороги по своим делам, я высматриваю корягу, говорю, рядом с ней полежу. Пока делаю сиё труднейшее дело, слышу шум приближающейся машины и, чуть недоезжая, она останавливается. Мне любопытно, поднимаю голову: Настя вышла на дорогу, дверь открыта, разговаривает с водителем, и тут из-за коряги выруливаю я… А ситуация получилась такая: она вышла на дорогу и водителеть притормозил, открыл дверь, спросил куда и предложил садиться, Настя сказала, что не одна (в этот момент выруливаю я). Таким образом с ветерком доезжаем до самой горнолыжке за что, Человеку, большое спасибо :)

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

Тропа пока хорошая, достаточно прочная, но временами таки проваливались по самый пояс. Ненароком вспомнилась сцена из фильма “Властелин колец”, когда герои передвигались по снегу - все проваливались, а эльф бежал по снегу, тогда и родилась присказка которой сопровождалось каждое проваливание: эх, все таки мы не эльфы :)

По тропе вышли на хребет, подниматься было тяжко, решено сделать привал. Находим, как грачи, проталину, Настя быстро собирает “порох” на растопку, я пока подыскивают полешки, что бы удобно сложить костер - вскипятить чаю. Пока собираю, поддтаскиваю, она разводит огонь. Перекусываем, пьем чай, тратим около 40-60 минут, но душевно. Формируем программу-максимум и несколько вариантов программ-минимумов.

Программа максимум:

  • Дойти до вершины, насладиться видом, спуститься, сделать чаю в термос, сделать чаю на привал, дойти и успеть на электричку

Программы минимумы:

  • Дойти до вершины, быстро спуститься, успеть на электричку. Чай не делаем.
  • Не дойти до вершины, топать до часа Ч, поворачивать назад, делать чай, успевать на электричку
  • Не дойти до вершины, топать до часа Ч, поворачиваться назад, не делать чай, успевать на электричку
  • Предыдущее с неуспеванием на электричку :simple_smile:

Выполнили, забегая вперед, программу-максимум :)

Костер после привала затушили: большие палешки повтыкал в снег, мелкие угли присыпали снегом, на всякий. После перекуса стало заметно веселее идти, атож, организм не дурак покушать :) Кроме того, развился навык болталогии, хотя дыхание сбивалось, но болтали о всякой ерунде и не только, вставляя “мы не эльфы” время от времени. По пути встрели группу туристов из пяти человек, судя по рюкзакам - были с ночевой или шли откуда-то далеко (типа траверса или..) из за больших рюкзаков, были тяжелее, поэтому они были точно не эльфы) Кроме того, попутно представляли как будет выглядеть обратная дорога, прикидывали, как лучше, сразу на пятой точке скатываться или использовать её только как средство экстренного торможения, сошлись на том, что на месте решим.

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

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

На старом бивуаке вновь разводим костер, достаточно быстро кипятим воду для термоса и прямо в нем завариваем чай. Ставим второй котелок, малость перекусываем. Только поспевает чай, подходят девчата, те, которых встретили наверху, тут уж знакомимся, представляемся. Угощаемся чаем и шоколадками. Обратную дорогу идем вместе. Настя подсушивает обувь, носки, у меня влажно, но не хлюпает - польза от бахил явная.

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

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

За время похода и поездки в электричке пришел к выводу, что болтологию нужно рассматривать с точки зрения релятивисткой механики: расстрояния проходятся быстрее за разговором. Правда пока затрудняюсь сейчас ответить, что именно происходить: сокращение расстояния или убыстрение тока времени. Нужно, однако, садиться за научный труд :laughing: Хотя иногда трудно говорить при ходьбе, да и дышать больше ртом приходится, что бывает чревато.

Кроме того, заметил, что рюкзак нужно иметь всегда с поясным ремнем (пошел со своим спортивно-городским), потому как, даже не очень тяжелый рюкзак, который давит только на плечи, значительно утомляет спину, а с ремнем можно часть нагрузки перенести на поясницу, тем самым повысив комфорт в движении.

Ну все, до новых встреч и новых знакомст в лесу, если всопмню что интересного - допишу.

UPD:

Фото, которые сделала Надя

А это стихи, которые она написала пока обратно ехали в электричке:

№1 Когда не на пару и не на работу Встается легко в без пятнадцати пять, И адреналин прогоняет дремоту Когда начинаешь ботинки искать… Но завтрак сготовлен и собран рюкзак, Созрел в голове план коварный похода, Нельзя упустить электричку никак И вдаль повела нас тропа от порога. Нас лес повстречает прохладой весенней, Прибавив для вкусу дорожную грязь. И после цепочка из этих мгновений Нас в каменных джунглях согреет опять. Дорога к вершине – в капризах из наста, И снег норовит заползти в башмаки Еще б потеплей - и нужны будут ласты, Но в них не удобно по лесу ползти… Нас мало по малу пускает Фалаза, И небо к нам ближе стало чуть-чуть Становиться жить разноцветнее сразу, И рядом маячит Вселенская Суть!

№2 Как-то раз на выходные Мы ударились в бега. Взяли тапки запасные, Взяли в термосе чайка. Без потерей мы добрались, На вершине - солнца свет. Мы б от счастья разорались, Но там был уже дуэт! Саша с Настей не орали, И не прыгали везде, Ну, мы их зауважали, Расспросили: че, да где. Они стрелку нам забили, На хребте да у костра Там все вместе чай попили, Но дорога нас ждала. Электрон не за горами Пешкодрапом – два часа. Восхищались небесами, Говорили про леса… По пути нас провожали Два дворняги – другана, Колбасы когда им дали Обещали ждать всегда. Вобщем мы в больших надеждах На совместный вновь поход, Может, на вершинах снежных, Может и наоборот!

Apr 17, 2010 - 3 minute read - туризм

Из весны в зиму и обратно

Сегодня ходили на водопад на ключе Левый Горбатый (один из “шкотовских водопадов”) в составе трех человек: Я, Юс, Лиза (хотя должно было быть 7 мордолиц), планировали на два дня но так сложилось, что обратились в однин. Но по порядку.

Для начала, на сайте Зеленого есть описание маршрутов на Шкотовское плато, от себя внесу небольшие коррективы как добираться туда, и выбираться от туда, описание для безлошадных :)

Для начала добираемся до Шкотово, сделать это можно на первой электричке, что идет из Владивостока до Тихоокеанской, отправляется в 6.21. Прибывает она примерно в 8.10-8.15, почти сразу есть автобус до Сергеевки, можно сесть до него, или в 9.05 есть автобус 564 (???) Уссурийск-Партизанск (уточните в кассе), если будет задержка.

На автобус садимся, берем билеты до села Центрального, но объясняем водителю, что не на повороте выходим, а чуть дальше “фазенды” (это определение услышал сегодня от водителя, говорит: тут выходят люди, которе потом напрямую в Центральное идут пешком, с поворота слишком круто), где выезд на лесовозную дорогу (географически находится точно севернее самого Центрального). В прошлом году водитель был злой, особо объяснений слушать не стал, сегодня почти как карета остановилась :) и всего 50 руб с человека, даже за багаж не взял - тут видать как повезет, но вообще, спасибо мужику :)

Ну а дальше топаем по дороге, проходим серпантин, дальше, когда обрыв станет слева от дороги, а сопка справа (до этого будет наоборот), спуск к водопаду отмечен кучей наклеек, веревочек на дереве, сегодня там висели буддийские флажки.

Ладно, теперь о впечатлениях.

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

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

На место пришли около 13 часов, натянули тент, что бы защитить себя и рюкзаки от снега, на печке сделали чаю, попили, перекусили, немного накатили коньячку из фляжки. А вокруг красота: хвойные с толстыми снежными шапками, почти как в фильмах, сам водопад ещё подо льдом, но красоту и впечатления это не отменило: обзор шикарный. И воздух…

Ещё как пришли, все несколько мокрые - снег не сухой же, Юрка переоделся в сухое, я по старинной привычке - нет (лучше двигаться и не мерзнуть или развести костер), сидим, получился такой диалог:

Ю: тебе нормально, не мерзнешь?

Я: неа, нормально

Ю: как так, я в сухом и у меня жира больше!

Я: ну дык, зато у меня - качественней! :laughing:

Вот так, настоящие мужики всегда найдутся чем помериться :)

Обратно выдвинулись примерное в 15 часов. И вот стали замечать, обратный процесс со негом и температурой: ближе к дороге снега вообще не стало, зато дорога превратилась в наглядную демонстрацию весенней распутицы на Руси, а место въезда на грунтовку в сплошное глиняное болото - еле прошли.

Как вышли, в кустах на противоположной стороне дороги, разбили пикничок, почистили обувь, пока подъехал знакомый и добросил до Шкотово. Там, пока ждали, подъехали велосипедисты, что ехали с нами на первой электричке, оказалось с одним, Сашей, уже познакомились, буквально неделю назад - они с нашим общим знакомым ехали на сплав под Партизанск, в общем - Земля квадратная :) Они оказались из турклуба Гринтур, катались до Стеклянухи, там сплавлялись, тоже поделились впечатленями. В общем, доехали вместе в приятной компании, ведь турист туристу, друг, брат и лишняя банка тушенки :laughing:

Apr 5, 2010 - 1 minute read - linux

OpenSource #058

В этом выпуске вторая часть моей статьи по схемотехнике в Linux: “Схемотехника в Linux с помощью gEDA. Часть 2: pcb”

Скачать выпуск: http://osa.samag.ru/get/OpenSource058.zip

PS выпуск первоапрельский, но вредительства нет :)

Apr 4, 2010 - 1 minute read - programming

Интересная нотация switch/case в gcc

Относится к расширениям gcc, не претендует на переносимость, но все же: в gcc у case можно указывать диапазоны значений:

case LOWVAL ... HIVAL:

Например:

switch(var) 
{
     case 0 ... 2:
        /* какой-то код */
        break;
     case 3 ... 5:
        /* какой-то другой код */
        break;
     default:
        /* что делаем, когда ничего не помогает */
}

этот код эквивалентен такому:

switch(var) 
{
     case 0:
     case 1:
     case 2:
        /* какой-то код */
        break;
     case 3:
     case 4:
     case 5:
        /* какой-то другой код */
        break;
     default:
        /* что делаем, когда ничего не помогает */
}

ЗЫ про одно полезное расширение gcc я уже писал: 0b00100100

Apr 3, 2010 - 3 minute read - programming

Qt Creator и Generic Projects

Или: можно ли использовать Qt Creator не для Qt? Если коротко - можно.

Почему он? Потому что оказалось, что он достаточно функционален в мелочах, в частности индексирования кода и автодополнения. Крайне удобен в применении его Locator (что вызывается по стандартному сочетанию клавиш Ctrl+K), применение Локатора вообще сводит использование мыши в Qt Creator к минимуму (что удивительно для среды ориентированной на тулкит Qt4 и создание, в основном, графических приложений). Да, правда обвыкнутся по началу нужно, но потом… Если плагин (http://gitorious.org/creator-plugins), который добавляет функционал по автоматическому созданию реализации функции/метода по его прототипу, так же Я, до того, как узнал про этот плагин, делал свой патч, со схожим функционалом. В общем, все что нужно для удобной работы с проектом (навигация, дополнения, подсветка синтаксиса, отстройка, отладка и т.п.) здесь есть.

Осталось понять, как это добро использовать. Вопросов нет, когда речь идет о родных средствах, типа .pro файла и qmake, а вот при использовании с не qmake/cmake проектами, можно воспользоваться Generic Project, который используют вашу систему сборки, не вмешиваясь в неё. Подробности всегда можно посмотреть на официальном сайте: http://doc.qt.nokia.com/qtcreator-snapshot/creator-project-generic.html

Собственно по ссылке выше и рассказано все, что нужно знать. Тезисно:

  1. используется ваша система сборки, порядок шагов по сборке можно задать в свойствах проекта, по умолчанию, это выполнение команды make all, соответственно там можно задать любую нужную последовательность, которая соответствует вашей системе сборки.
  2. аналогично задаются шаги по очистке проекта.
  3. аналогично задается цель для запуска.
  4. аналогично задаются зависимости между проектами (они должны быть открыты).
  5. при создании указывается директорий вашего проекта, по умолчанию просканируется дерево и добавятся все *.c, *.cpp, *.cc, *.h, *.hpp файлы (как сказано - все известные типы).
  6. после создания проекта и сохранения настроек на диске будет создано несколько файлов: * project_name.files - тут список файлов входящих в проект, обычно исходники, в помощь парсеру, можно править вручную, обновляются автоматически, при добавлении файла в проект из самого Creator'а * project_name.includes - тут список include директорий, в помощь парсеру, можно править вручную * project_name.config - заявляется как обычный C файл, в котором можно записывать ваши макроопределения:#define VERSION "0.0.1" и т.п. * project_name.creator - собственно сам файл проекта, его открывать в Creator'е для загрузки проекта, сейчас никаких настроек больше не содержит. * в процессе работы появится файл project_name.creator.user в котором будут сохранены ваши параметры сборки, очистки проекта, информация о запускаемых модулях.

Теперь как это можно использовать? Покажу на примере своего небольшого Makefile:

PROJECT_NAME=empty-test
EXE = $(PROJECT_NAME)

CC = gcc
CXX = g++

CFLAGS   += -include $(PROJECT_NAME).config
CXXFLAGS += -include $(PROJECT_NAME).config

BIN_DIR = bin

SRC_CPP = ${shell cat $(PROJECT_NAME).files | grep '.cpp$$'}
SRC_C   = ${shell cat $(PROJECT_NAME).files | grep '.c$$'}

OBJ := $(SRC_CPP:.cpp=.o)
OBJ += $(SRC_C:.c=.o)

.PHONY : all clean

all: $(OBJ)
	$(CXX) -o $(BIN_DIR)/$(EXE) $(LDFLAGS) $(OBJ)

%.o : %.cpp
	$(CXX) -c $(LDFLAGS) $(CFLAGS) $(CXXFLAGS) $< -o $@

%.o : %.c
	$(CC) -c $(LDFLAGS) $(CFLAGS) $< -o $@

clean:
	rm -f $(OBJ) $(BIN_DIR)/$(EXE)

Что тут делается, во первых - автоматически получается список файлов проекта из project_name.files, далее, компилятором автоматически подключается project_name.config, и все объявленные там макросы будут доступны внутри кода.

Естественно тут нет и намека на множественные цели, но проект можно разбивать на подпроекты, их зависимости друг от друга задавать в Creator'е, а самих объединять в рабочие области (workspace). В общем и целом - ограничено все только вашей фантазией, и, по сути, данные действия превращают Qt Creator в продвинутый редактор кода, с базовыми функциями управления проектами, чего часто бывает достаточно.

Да, индексация проекта происходит при его загрузке, что требует времени, поэтому есть лишний повод бить большие проекты на части :)

Apr 1, 2010 - 1 minute read - programming

Qwt - Qt виджеты для технических приложений

Ссылка в мемориз: http://qwt.sourceforge.net/

Из описания: библиотека включает визуальные виджеты, вспомогательные не визуальные классы, полезные в первую очередь для программ технической направленности. Так виджет для 2D построений предоставляет возможности масштабирования, ползунки, круговые органы управления, компасы, термометры, колеса прокрутки, кнопки для контроля или отображения значений переменных, массивов и т.д. Посмотреть все это добро можно на снимках: http://qwt.sourceforge.net/controlscreenshots.html

Библиотека распространяется на условиях модифицированной версии GPL, и достаточно либеральными исключениями, в частности разрешается статическая линковка, без раскрытия исходников, обязательному открытию подлежат только изменения в самой библиотеке. Подробности: http://qwt.sourceforge.net/qwtlicense.html

На странице проекта можно найти ссылки на производные работы, например:

  • QwtPolar, виджет для построения в полярной системе координат
  • QwtPlot3D, виджет для 3D построений и использованием OpenGL.
  • QtiPlot, готовое приложение, использующее виджет QwtPlot, для анализа и построения данных.

Существуют биндинги к питону и ruby.

Для пользователей ArchLinux в extra есть пакеты:

  • extra/qwt
  • extra/qwtplot3d Т.е. сама библиотека и её 3D вариант.

Mar 25, 2010 - 2 minute read - life

Про часовые пояса

Навеяно 615012 от камрадки mountain-diu

У всех на слуху очередное нововведение нашего замечательного правительства, о сокращении количества часовых поясов. Что не за очередное блеяние с экрана в исполнении ВВП или МДА, то бред полнейший. А все как мыши: плачут, колются, но продолжают жрать кактус.

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

Россия переводит время зря и цитата отсюда, мне она о многом говорит, особенно если вспомнить, люди из какой партии у власти стоят:

Есть у реформы и сторонники. Они поголовно находятся в административном корпусе регионов. Приблизившись к Москве на час, можно будет оперативнее и полнее взаимодействовать со столичными властями, хором заявляют чиновники в разных концах России.

или:

Недовольны и жители Камчатского края, что отныне и без того короткий световой день (особенно зимой) стал еще меньше. Правда, теперь жители Чукотки и Камчатки в новогоднюю ночь будут смотреть обращение президента не в час ночи, а в полночь. о да! как же, не услышат ровно в 12 часов очередную порцию бреда с экрана телевизора..

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

Ну и ещё один пример отжига в подтверждение первой ссылки: Чукотка перейдет из девятого часового пояса в восьмой:

12 марта дума Чукотского автономного округа поддержала идею о переходе региона в восьмой часовой пояс из девятого. Соответствующее обращение было направлено премьер-министру России Владимиру Путину. Сейчас временная разница между Москвой и Чукоткой — девять часов.

и сразу же:

Стоит отметить, что работники чукотского филиала Северо-восточного НИИ идею о переходе из одного часового пояса в другой не поддержали. “Смена временного пояса скажется на здоровье и производительности труда жителей”, — считают они.

Да нахрена эти ученые нужны, зачем нужна эта какая-то РАН (особенно с последними порывами лихо реформировать академию)!

PS у меня ощущение, что вместо людей в думах у нас зомби и/или манекены, а решения принимает электронный (или даже механический) бредогенератор.

Mar 23, 2010 - 3 minute read - linux programming

Графический индикатор разряда батареи в IceWM

Решил тут собрать небольшое окружение на основе IceWM, вернуться, так сказать к истокам (работал он у меня в бытность ещё P100/24RAM). Но т.к. теперь ему предстояло работать на ноутбуке, в режиме питания от батареи было бы хорошо иметь возможность наблюдать статус разряда.

Mar 23, 2010 - 1 minute read - life

Хрень

Можно сказать научно-популярный фильм, да.

Mar 20, 2010 - 1 minute read - programming

Не люблю цитатники, но...

это меня проняло:

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

Отсюда: http://ibash.org.ru/quote.php?id=12598 по наводке l1feh4ck3r'а

Mar 20, 2010 - 2 minute read - programming

Повелся :-)

Задачка: http://bishop-it.ru/2010/03/codeinrussian

Ну там в комментах я написал, в gcc такое не проканывает (пока точно известно, что проканывает в MSVC, а как дела обстоят с компиляторами Intel/Sun/Borland мне не известно). Но… в транслите так же сделал вариант: http://codepad.org/zEs0pjLl или тут:

/*
 * Собирать: 
 *      gcc -include stih.h -o stih stih.c
 * Посмотреть вывод препроцессора:
 *      gcc -E -include stih.h -o stih stih.c
 */

/*
 * stih.h
 */
#include <stdio.h>

#define NACHALO int main() {<br/>
                  char *out = NULL; <br/>
                  char *txt = NULL; <br/>
                  FILE *fp  = NULL;
#define KONETS    return 0;}
#define PROGRAMMY

#define Vyvedi
#define tekst
#define na
#define v
#define ekran out = NULL
#define fajl out =

#define nachalo ; if (out == NULL) <br/>
                    fp = stdout;<br/>
                  else <br/>
                    fp = fopen(out, "w"); txt =
#define konets ; if (fp != NULL)<br/>
                 {<br/>
                  if (txt != NULL) fprintf(fp, "%s", txt);<br/>
                  if (fp != stdout) fclose(fp); <br/>
                 }
#define teksta


/*
 * stih.c
 * Тут перевел в транслит, т.к. gcc (только ли он?) не поддерживает #define РУССКИЙ
 * в общем, сути не меняет
 */
NACHALO PROGRAMMY

Vyvedi tekst na ekran

nachalo teksta
"YA pomnyu chudnoe mgnoven'e: <br/>n<br/>
Peredo mnoj yavilas' ty, <br/>n<br/>
Kak mimoletnoe viden'e, <br/>n<br/>
Kak genij chistoj krasoty."
konets teksta

Vyvedi tekst v fajl "Stikh.txt"

nachalo teksta
"V tomlen'yakh grusti beznadezhnoj<br/>n<br/>
V trevogakh shumnoj suety,<br/>n<br/>
Zvuchal mne dolgo golos nezhnyj<br/>n<br/>
I snilis' milye cherty."
konets teksta

KONETS PROGRAMMY