Автор Тема: Задача 3 - 13.11.2007 - 27.12.2007  (Прочетена 50459 пъти)

tarator

  • Участник
  • *****
  • Публикации: 849
    • Профил
Задача 3 - 13.11.2007 - 27.12.2007
« Отговор #15 -: Дек 15, 2007, 01:27 »
Като се има предвид, че около два пълнителя за Калашников ще са достатъчни за да очистят голяма част от потребителите на Plan9, броят на българи, които са му фенове е доста голям '<img'> Във fortune файла на Plan9 има поговорка "Never smack a Bulgarian" '<img'>
Активен

A gentleman is one who is never rude unintentionally. - Noel Coward

radoulov

  • Участник
  • *****
  • Публикации: 116
    • Профил
Задача 3 - 13.11.2007 - 27.12.2007
« Отговор #16 -: Дек 16, 2007, 20:15 »
Още една shell версия:

Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3. source="$1"
  4. dest="$2"
  5. export source dest
  6.  
  7. find "${source:=source}" -name '*.mp3' -exec bash -c '
  8.     filename="$1"
  9.     id3 -l "$filename"|while read -r; IFS=: read -r t s ar;IFS=: read -r a al j; do
  10.          song="${s%                          Artist}"
  11.          artist="${ar%                      }"
  12.          album="${al%                         Year}"
  13.          dst="${dest:=dest}/${artist# }/${album# }"
  14.          [ -d "$dst" ]||mkdir -p  "$dst"
  15.          mv -v "$filename" "$dst/${artist# } - ${song# }.mp3"
  16. done' - {} \;
« Последна редакция: Ное 18, 2010, 21:10 от VladSun »
Активен

zeridon

  • Killmode enabled
  • Administrator
  • Участник
  • *****
  • Публикации: 1398
  • Distribution: Debian/Ubuntu
  • Window Manager: console/Gnome
  • BOfH
    • Профил
    • WWW
Задача 3 - 13.11.2007 - 27.12.2007
« Отговор #17 -: Яну 04, 2008, 17:23 »
И така дойде време да теглим чертата и да видим кой какъв какво и как ':p'

Равносметката
Имаме 3-ма участници vladsun, radulov i tarator с общо 5 решения. 3 скриптови и две компилирани. 4 от тях що годе нормални и едно дето ми издуха главата.

По идейност смятм че едноличен победител е tarator (аплодисменти, хвърчащи цветя и жени).

Кратък разбор по задачки

vladsum - mp3o.c
Стилистично добре издържана, добре четима, има си опцийка колко да е шумна. Добра идея е ограничението за дълбочина на рекурсията. Не чак толкова добра идея е да се използва собствено парсене на ID3 информацията защото може да се намира на доста места (дори v1)

vladsum - mp3o.pl
Perl защо ли не съм учуден '<img'> Разчита се на външен модул (дано той да се справя добре). С итератора идеята е добра. Няма хендлинг на грешки (освен ако в използваните модули няма свестен). Като цяло изглежда добре и си бачка добре.

radulov - mp3awk.sh
The power of awk. Кратко сладко, семпло, ефективно. Има умно използване на специални променливи от средата. И единственотко което не мога още да зацепя е страшно странният сепаратор на полета който се ползва (но работи)

radulov - mp3bash.sh
Bash Magic '<img'>. Интересно попълване на полетата, но полето за артист не се изчита цялото. По стандарт е 30 знака.

tarator - mp3fs.c
Doctor where is my head!!!
Аммм ако може такова нали да не коментирам. Бях останал с впечатлението че се изгъбарка но не би ... организация на музика посредством файлова система.
Кодът изглежда подреден, макар че стилът не е от най-четливите. Цялостен е до толкова до колкото библиотеките се оправят с проблемите. Тъй като не съм много запознат със spfs не мога да съм по точно аргументиран.

Крайната ситуация
За мен лично победител в този кръг е tarator - поздравления.

Моля сега всички да си изкажат тяхното мнение.

пс: Очаквайте следващия кръг. Само да драсна някакво референтно решение.
Активен

Внмимавай имам клещи за кабел
http://www.netsecad.com/
http://theregister.co.uk/odds/bofh/

tarator

  • Участник
  • *****
  • Публикации: 849
    • Профил
Задача 3 - 13.11.2007 - 27.12.2007
« Отговор #18 -: Яну 04, 2008, 21:39 »
Виновник за лошия стил е софтуера на форума, стилът ми не се различава от стандартния на Линукс ядрото.
Активен

A gentleman is one who is never rude unintentionally. - Noel Coward

VladSun

  • Moderator
  • Участник
  • *****
  • Публикации: 2166
    • Профил
Задача 3 - 13.11.2007 - 27.12.2007
« Отговор #19 -: Яну 06, 2008, 18:45 »
Решението на tarator определено ми харесва - заради него се зачетох в този български проект '<img'> И аз гласувам за неговото решение '<img'>

По отношение на забележката за парсването на ID3 тага на zeridon - познай кой сорс съм разглеждал за повече инфо за ID3 тага - id3 ':p' '<img'> В този смисъл, моето С решение работи толкова добре, колкото и решенията с bash/awk ползващи id3 инструмента.
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

VladSun

  • Moderator
  • Участник
  • *****
  • Публикации: 2166
    • Профил
Задача 3 - 13.11.2007 - 27.12.2007
« Отговор #20 -: Яну 06, 2008, 18:46 »
Цитат
Виновник за лошия стил е софтуера на форума, стилът ми не се различава от стандартния на Линукс ядрото.
Мдам, всеки път и аз забравям за това. Решението е tabs-to-spaces :)
« Последна редакция: Яну 19, 2009, 14:47 от zeridon »
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Мандрива 2007 сървъри за ъпдейт
Настройка на програми
enemam 3 6167 Последна публикация Ное 02, 2006, 18:42
от Nik123
Проблем с видеото на Мандрива 2007
Настройка на програми
eka 9 7362 Последна публикация Яну 09, 2007, 04:45
от Nik123
Мандрива 2007
Настройка на хардуер
angelfire 1 5691 Последна публикация Яну 08, 2007, 15:16
от nfsto
Xgl проблем мандрива 2007
Настройка на хардуер
komara_mnt 9 7780 Последна публикация Фев 07, 2007, 12:38
от TheNightmare
БАЙТ експо 2007
Коментар
tsukevboyan 1 7754 Последна публикация Окт 24, 2007, 09:04
от boyan7640