Ну вот спустя уже НЕ пару дней… лол закончен Архив “Канадского Лося”. На прошлой неделе решил написать вторую версию Архива для моих подкастов. Первая версия была “проще не придумаешь” – просто листинг подкаст файлов. Просто включил листинг в Апаче и направил на папку с файлами… И вот спустя пару лет с начала моего персонального архива появилась вторая версия подкаст архива, но перед тем как рассказать что и как, стоит отправиться в прошлое и рассказать “почему?” архив вообще начал свое существование.
История:
Я начал записывать подкасты когда рпод был ещё молодым и “не обкатанным”. Соответственно иногда сайт падал… Далее на рпод-е не допускалась коммерческая музыка в подкастах – другими словами если в подкаст попала музыка скажем от ДДТ или других больших групп, то подкаст ( файл ) удалялся с рпода ( если я не ошибаюсь то сейчас происходит тоже самое, не знаю почему написал в прошедшем времени). Ну и третье: я – параноик и вбил себе в голову что не хочу, что бы моя работа пропала. В итоге решил держать копию подкастов у себя на сервере и за одно открыть доступ всему миру. И так была сделана первая версия подкаст архива… просто листинг файлов через Апач.
Версия 2.0 – предпосылки:
Почему я решил сделать вторую версию я не знаю. Один день сидел и подумал что было бы на много лучше если бы Архив был более полноценный… типо можно было посмотреть ноуты к подкастам и всё такое… Но потом меня сильно не пёрло делать сайт по типо rpod-a – где надо заполнять поля – типо “название подкаста”, “ноуты” и так далее… Я подумал и решил, нафиг!!! Не буду не чего делать… я же не обезьяна что бы заполнять формы по 2-а раза! ( я очень ленивый! ). Один день сидел и слушал музыку в iTunes ( я люблю музыку гы-гы ) и обратил внимание на ID3 таги… По скольку я был “сделан” старой школой, аля ДОС и всё такое то у меня концепция простая: “всё что моё, ношу с собой”. От сюда я всегда вставляю Cover Art в сами mp3 файлы ( а не как iTunes делает – типо картинки отдельно, музыка отдельно ). Мой подход не эффективен, так как занимает больше места ( из-за того что каждый mp3 файл содержит в себе картинку для песни )… но такой уж я! Но именно эта концепция дала мне идею… “Если iTunes может выдергивать информацию из ID3 тагов в mp3 файле, почему я не могу делать тоже самое?”. Так как я вставляю инфу в свои mp3 подкаст файлы уже как минимум подкастов 25 то я могу вытаскивать инфу из файла динамически и отображать её. Вот так всё и началось… Единственное что жалко так это то что я не вставлял ноуты с самого первого подкаста… но тогда я не знал о ID3 тагах… обидно…
Сверху:
И так вторая версия подкаст архива выглядет просто и интуитивно ( надеюсь ).
Выводиться название подкаста, длинна записи ( в минутах ), тип файла, лого и ноуты. Графики в архиве не какой ( кроме лого ) нету, так как я считаю что архив должен быть: простым, лёгким и функциональным – типо философия такая. Я думаю что я достиг своей цели… Надеюсь что услышу ваши отзывы на эту тему. Теперь если в файле ( mp3 – с записью подкаста ) нету ноутов или лого то информация не отображается… хе-хе так как не чего отображать…
Внутри:
Архив написан на PHP от начала и до конца… к тому же архив 100% динамический то есть страница проверяет файлы в директории и считывает информацию с них на лету. Я использовал открытую PHP ID3 библиотеку ( http://getid3.sourceforge.net/ ) – так как после дня поисков о том как написать твой ID3 парсер я понял, что это убийство… если кому интересно почему то почитайте про ID3 таги… ищите книгу в местных магазинах – “ID3 или Лорд Хауса”. Далее я разбирался в этой библиотекой где-то вечер… и всё оказалось не так уж и сложно… Но дальше были некоторые проблемы с графикой – типо как выводить лого в нормальных размерах, что бы каждое лого не весело по 127KB… пришлось использовать GD библиотеку ( у меня она по любому на сервере стоит для WordPress-а ). Написал что бы картинка из файла меняла размер на лету… Вот как это примерно выглядет:
Пользователь —-> запрос —-> Страница —-> запрос —-> Файл
Файл —-> ответ ~127KB —-> Страница ( меняет размер ) —-> ответ ~14KB —-> Пользователь
Дальше сделал переходник между страницами… типо на странице по 10 подкастов ( что бы не грузились все 147 подкастов за один раз )… ну и всякие маленькие твики и всё такое… Вроде и всё… конечно выглядет это просто… но по скольку я не знал PHP ( я на нём особо не чего не писал ) то пришлось наглотаться всякой гадости… Например я потратил 4 часа только что бы выяснить что у меня на сервере не работают короткие так для PHP… типо обычный таг идёт: <?php …. ?>; а короткий: <? … ?>; . Так вот у меня на моём компьютере короткие таги распознавались, а когда кидал файл на сервак, код не работал… за 4 часа я переписал весь код от начала до конца ( пробовал разные вещи )… А когда увидел что всё дело в этом маленьком незаметном таге, думал что умру от стыда… Думать надо! А не ручками строчить как заяц по клаве.
За/Против:
За: простой, динамический архив – который не надо трогать больше не когда ( я надеюсь ). Просто кидаешь подкаст файл на сервер и страница отображает всё… Не каких заполнений форм или какой либо подобной лабуды!
Против: Из-за высокой динамичности, а некоторые могут сказать лени или тупости при каждой перегрузке страницы файлы читаются и процесс парсинга проходит заного… Другими словами Оптимизации НУЛЬ!!! Если бы архив посещался большим количеством людей то сервак бы сдох быстро ( от нагрузки )… да и это не рациональное использование ресурсов.
Итого:
Архив был сделан как я его задумывал… Так как у моего сервака интернет канал маленький то не думаю что много кто будет посещать мой архив на постоянной основе… Другими словами мой архив – это просто запасной выход… Если будет существенная нагрузка то решение уже есть! Можно генерировать статические страницы каждый раз когда новый подкаст файл добавлен… Таким образом оптимизация = 100%. Ну поскольку это пока что не нужно то поживём так…
P.S. Забыл сказать новый подкаст архив находиться по старому адресу http://los.meirz.net