Отправляет email-рассылки с помощью сервиса Sendsay

KirovLUG: пользователи Linux в Вятке

За 2005-01-14

Re: Генерация индексов для проекта lindocs.

Теперь пришла очередь Python.

Для начала создадим скрипт, который принимает со стандартного ввода
(stdin) строки с ключевыми словами и выводит их каждое слово в одну
строчку.

begin on_stat.py #!/usr/bin/python
# -*- coding: KOI8-R -*-

from sys import stdin

def main():
while 1:
line = stdin.readline()
if not line:
break
keywords = line.split()
for i in range(len(keywords)):
print keywords[i]

if __name__ == "__main__":
main()
end on_stat.py Пробежимся по тексту программы.

stdin.readline() - читает из стандартного ввода одну строку, если строка
пустая (не путать со строкой, заканчивающейся на "\n"), то данных на
стандартном вводе больше нет, поэтому цикл завершится в следующей
строке-условии.
line.split() - вызывается метод для объекта-строки "line". Метод считает
строку списком слов, разделенных стандартным разделителем - строка из
символов пробела (пробел, табуляция, новая строка, возврат, прогон
страницы). В результате формируется объект-список.
len(keywords) - вычисляем количество элементов в списке
range(len(keywords)) - создает список, содержащий арифметическую
прогрессию от 0 до длины списка keywords. Цикл "for" извлекает
поочередно элементы этого списка, которые затем используются для
обращения к каждому элементу списка. Поэтому если бы задача сводилась
просто к печати содержимого списка keywords, то цикл выглядел бы иначе:

for i in keywords:
print i
Чтобы посмотреть, что делает скрипт наш первоначальный конвейер нужно
удлинить:

$ find . -name "*.txt" -exec head -n 1 '{}' ';' | sed 's/\x0D//' | \
awk '/Keywords: [ a-z]/ {print}' | \
sed 's/Keywords: //' | sed 's/^ //' | sed 's/ $//' \
./on_stat.py

   2005-01-14 17:17:13 (#297145)

Re: Генерация индексов для проекта lindocs.

Генерация индексов для проекта lindocs. Часть 2

Продолжим сбор статистики по материалам с www.opennet.ru. Напомню, что в
этих материалах упоминаются ключевые слова, указывающие к каким темам
можно отнести тот или иной материал. Данные ключевые слова можно будет
использовать как индексы для проекта lindocs.

Также в данном материале я постараюсь рассмотреть некоторые аспекты
программирования на Shell и Python.

1. Найдем все txt-файлы в текущем каталоге и выведем строчку каждого
файла.

$ find . -name "*.txt" -exec head -n 1 '{}' ';'

2. После выполнения первой команды видно, что не все первые строчки
начинаются с "Keywords:" - не будем выводить такие строки. Построим
конвейер, добавив к предыдущей команде вот такую:

awk '/Keywords\:/ {print}'

3. Также нужно избавиться от строчек, которые содержат в себе только
"Keywords: " и больше никакой полезной информации. Сразу нужно сказать,
что некоторые строчки будут содержать непечатаемый символ 0x0D,
оставшийся в фалйике со времен Windows и DOS (в Unix конец строки 0x0A,
а в Windows 0x0D;0x0A), - это нужно учесть. Изменим предыдущую команду в
конвейере на

sed 's/\x0D//' | awk '/Keywords: [ a-z]/ {print}

4. Начальное слово "Keywords: " при составлении словаря ключевых слов
вообще не нужно, поэтому уберем его. Добавим к конвейеру следующую
команду:

sed 's/Keywords: //'

5. В некоторых строках пробелы стоят в начале и конце строк - уберем и
их, добавив к конвейеру

sed 's/^ //' | sed 's/ $//'

6. В итоге у нас должен получится конвейер следующего вида:

$ find . -name "*.txt" -exec head -n 1 '{}' ';' | sed 's/\x0D//' | \
awk '/Keywords: [ a-z]/ {print}' | \
sed 's/Keywords: //' | sed 's/^ //' | sed 's/ $//'

А результат его работы, примерно, следующего вида:

keyboard scancode print charset
linux rus koi8r unicode locale
linux rus slackware
mozilla print font rus
font size gtk
rus lyx tex
linux suse rus
freebsd rus locale
rus emacs gnus

Дополнение.
Если теперь в конце конвейера добавить команду "wc -l", то можно
получить количество проиндексированных статей (у меня 689).

   2005-01-14 16:13:14 (#297078)

Re: linuxовка

Kolotov Alexandr пишет:

>>Кто может опоздать - предупредите заранее - на сколько, чтобы мы вас
>>подождали.
>>
>>
>я и сам опоздаю... но точно приду - так что дождитесь...
>
>
>
я опоздаю ~20 минут.

   2005-01-14 15:52:12 (#297062)

предложи универу Opera бесплатно

Новость с www.fcenter.ru
(http://www.fcenter.ru/online.shtml?softnews#material_id=11545)

Бесплатный web-браузер Opera для ВУЗов
[13.01.2005 21:50:00]

Норвежская компания Opera Software объявила о программе бесплатного
предоставления лицензионных копий своего одноимённого web-браузера на
бесплатной основе высшим учебным заведениям. Представители Opera
Software считают, что меньшее число уязвимостей в их web-браузере
поможет ВУЗам снизить опасность использования лазеек в системе
безопасности и, как следствие - уменьшить число заражений компьютерных
систем.

В настоящее время Массачусетский Технологический Университет,
Гарвардский Университет, Оксфордский Университет - уже установили на
парке своих компьютерных систем альтернативный web-браузер от Opera
Software. При этом студентами отмечается возможность сохранения
web-сессий в Opera, что при периодических нагрузках на сеть позволяет
без проблем просматривать уже накопленные материалы, скачанные из
Интернет (и хранящиеся в кэшированном виде на диске).

Также предлагается с помощью настраиваемого интерфейса, цветовой схемы и
даже интеграции эмблем и логотипов - визуально индивидуализировать
web-браузер под конкретное учёбное заведение. Всем представителям ВУЗов,
заинтересованных в получении браузера Opera на бесплатной основе для
парка университетских машин - предлагается написать о своём предложении
по адресу educati***@o*****.com или перейти по ссылке
http://www.opera.com/education для получения дополнительной информации...

Внимание: ссылки работоспособны на момент публикации материала. Сайт
www.fcenter.ru не несёт ответственности за изменения на сторонних серверах.

   2005-01-14 10:47:42 (#296861)

Re: linuxовка

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

   2005-01-14 10:46:38 (#296856)