You are viewing [info]altutov's journal

entries friends calendar user info Previous Previous
altutov
Add to Memories
Share
Решил в ближайшее будущее одним из обладателей десяти-дюймового сенсорного-планшета. И как следствие пользователем ОС Android.
На данный момент уже существуюет довольно большое количество всяческого софта под данную платформу. Конечно можно легко воспоьзоваться услугами своеобразного репозитария "Гугль-Маркет", но для этого необходимо интеренет соединение, которое не всегда бывает доступно под рукой. К тому же целая уйма присутствующих там прог доступны только в платной вариации :-(. Еще конечно остается возможность скачать огромные торрент-архивы программ, лежащих обычно целой кучей в одной директории и не имеющей к ним описания. А тем кто захочет во всем этом добре разобраться придется в осноном на угад поочередно устанавливать каждую из прог :-) Остается последний вариант найти русскоязычный андроидный варезник выкладывающий только бесплатный софт и дающий полноценные к нему описания. Единственный минус полследнего варианта -в том что обычно все ссылки выкладывают не прямыми линками, а с других бесплатных файлообменных серверов. Так что для того что бы скачать каждый файл -прийдется пройти разлиные процедуры авторизации :-(.

Итак представляю подопытного softportal.com. Великолепный в плане наполнения русскоязычный варезник для целой кучи платформ (в том числе и android). Кроме фирварности примечателен в первую очередь своей каталого-образной четкой и осмысленной структурой. Причем глубина вложенности минимальная -а значит до искомой программы очень легко добраться. Можно было бы попытаться скачать зеркально весь сайт целиком -но тут есть ряд тонкостей. Во первых сложно отделить свою конкретную платформу от прочих (разве что фильтровать по специфическому расширению файлов). Во вторых полное зеркалирование затребует проверку всех даже абсолютно посторонних и никчемных ссылок, по пусту нагружая сервер и затрачивая ваш трафик. И даже дайдя в конечном счете до странички скачивания (на которой приведены сразу несколько зеркал), будет закачивать абсолютно все доступные дублирующие софтины

Мне как линуксоиду -легко обойти большинство ограничений заложенные большинства разработчиков сайтов. Делается это довольно легко с помощью классических unix-утилит обработки текстов, входящих в стандартный набор абсолютно всех *NIX дистрибутивов, и даже у некоторого более специфического оборудования имеющего на своем борту хотя бы элементарный busybox.

Итак анализируем содержимое веб-контента:
Переходим броузером в любой тематический каталог и берем ее адрес за вводное исходное содержимое будущей shell-программы передаваемой через аргумент и сохраняем ее во временный файл 1.htm с которым и проводим дальнейшие операции

wget "$1" -O 1.htm

Из всего содержимого этой страници нам необходимо найти и сохранить список линков ведущий на странички с описанием программ. Если внимательно проссомтреть html-код то можно обнаружить что все такие ссылки, с картинками и кратким описанием заключены между тегов и Значит чтобы не касаться всего остального выведем только этот кусок с помощью шаблонов AWK, а URL-ссылки легко находятся с помощю обычного grep`а, но по скольку мы знаем что все они содержат в себе слово "software" то на всякий случай вклюяим в шаблон и его, а все полученные ссылки сохраним во временный файл links.txt.

cat 1.htm| awk '//,//'| grep -o "http.*software.*.html" >links.txt


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

cat tmp.htm |awk '/_start/,/_end/' |sed 's/a href.*//' |sed -e :a -e 's/<[^>]*>//g;/>info.txt;
echo '=============================================================' >> info.txt;


Таблица с элементами вкладок, в том числе и "Скачать" лежит в районе между по От всех остальных ссылок ее отличает наличие слова get, внутри тела ссылки.

cat tmp.htm |sed -n '/BEGUN L3/,/_start/ p' |grep -o "http.*get.*.html" >plink.txt

По полученной последней ссылке осталось лишь бегло прссмотреть структуру веб-странички, содержащей элементы зеркал с прямыми ссылками на интересующий файл. Единственное что хотелось бы отметить что на данной странице визуально помечена зелененькой галочкой рисунок которой лежит с таким адресом "/img/dj/tick.png" Видимо отмеченная ссылка имеет больший приоритет перед остальными. Кроме того все ссылки в исходном коде записаны одной строкой, а галочкой может быть отмечена любая из них, так что в один заход ее извлечь не удастся. Придется сначала разделить данную строку на несколько, среди которых одна будет содержать кроме прямой ссылки на файл еще и ссылку на картинку, по которой все и отфильтруем

wget -i plink.txt -O - |sed 's/http/\nhttp/g' |grep "tick.png" |grep -o "http.*.html" >glink.txt;

Еще следует отметить что ссылка указана только на данные, без учета расширения, так что если не указывать никаких опций, то все файлы буду скачиваться с расширением .html. Для того чтобы все сохранялось как положено для wget необходимо добавить опцию --content-disposition

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

#качалка файлов с softportal.com
wget "$1" -O 1.htm
cat 1.htm| awk '//,//'| grep -o "http.*software.*.html" >links.txt
for i in `cat links.txt`
do
{
wget "$i" -O tmp.htm
cat tmp.htm |awk '/_start/,/_end/' |sed -e :a -e 's/<[^>]*>//g;/>info.txt;
cat tmp.htm |sed -n '/BEGUN L3/,/_start/ p' |grep -o "http.*get.*.html" >plink.txt ;
echo '=============================================================' >> info.txt;
wget -i plink.txt -O - |sed 's/http/\nhttp/g' |grep "tick.png" |grep -o "http.*.html" >glink.txt;

}
done
rm links.txt tmp.htm plink.txt glink.txt 1.htm


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

Еще добавлю что (как некогда я упоминал в одном из своих постов) древовидная структура хранения файлов хотя и весьма удобна, но имеет один существенный недостаток -при одинаковых универсальных данных возможно одновременное дублирование одинаковых данных в разных каталогах. Например у броузера "Опера" есть несколько назначений (почтовика, rss-читалки и даже irc-клиента), или например плейер смотрящий мнтернет-видео одновременно может выступать и в качестве качалки фильмов и т.п. Решается данная проблема достаточно просто -созданием символических или прямых ссылок. Или более радикальным удалением файлов из второстепенных поддиректорий.
Найти же дублирующиеся данные тоже достаточно просто:

find /namedir/ -type f -print0 |xargs -0 md5sum |sort |uniq -w34 -D



P.S. В последнее время движусь по пути некого програмного самодастаточного минимализма. Для выполнения большинства самых распространненых задач вполне хватает и минимального busybox`а. Причем только тагда начинаешь понимать осваивая всю мощь и универсальность консоли.

Tags: , , , ,

Add to Memories
Share
Никогда не писал о личной жизни. Вот исправляюсь и небольшой пиарчик:
Всем кто еще не в курсе -моя любимая работает работает в сфере IT-технологий. Профессионально разрабатывает вэб-сайты.
Так что всем друзякам живущим в Донецке и желающих создать себе вэб-страничку (а еще познакомиться с моей очаровашкой :-)) милости прошу сюда web-site-pro.ru/  
От меня всем будет огромный респектище :-)
Add to Memories
Share
Ни кому не секрет что в *NIX`овых системах очень сильно развиты утилиты по оброботке текста, которые в совокупности с другими системными утилитами предоставляют невероятную мощь и в то же время простоту использования. С их помощью можно легко и быстро создавать парсеры.Что это такое и для чего они нужны, а так же какие приемущества предоставляют обычному пользователю?

Парсеры -это программы для сборки и обработки различной вэб информации и ее отображения в необходимом заданном виде.
Ну со сборкой информации все просто -в упрощенном виде это объединение множества различных ресурсов в один общий иформациионный поток (обычно конкретной тематики). Это и есть одно из основных преимуществ упрощающих повседневную работу, благодаря которой отпадает необходимость заходить на множество различных сайтов -когда все это можно увидеть на одном. Ну и кроме того вторым немаловажным фактором стоит экономия скачиваемого трафика путям урезаниея бесчисленного множества рекламных баннеров, ненужных статей, картинок и т.п. Упращенная модель такой системы отображение уже давно существует и имя ей RSS, вот только rss-рассылки существуют пока что не во всех вэб-ресурсах, а от обычных html их отличает разве что синтаксис xml разметки.
Другой немаловажный фактор заложенный в парсерах -это обработка текстовой информации. В обработку входит фильтрация поступаемой информации по определенным критериям, отсеевающей все лишнее и не нужное. Этот подпункт слишком разный и индивидуален и зависит лишь от конкретных целей заложенных в обработчик.

Все вышеизложенное уже давно реализованно стандартными *NIX-овыми утилитами, необходимо лишь правильно их скомпоновать. Например для неинтерактивного поиска вэб информации можно воспользоваться WGET. Эта утилита имеет огромное количество опций. Например если нет необходимости в сохранения скачиваемого контента его можно просто вывести на экран задав "wget http://exemple.net/ -O -" Естественно вся выдаваемая информация будет представлена в ее полном виде (включая и html-тэги разметки а так же кодировку). В конечном счете весь этот вывод можно перенаправить в стандартном *NIX-овом потке на любой другой обработчик текстовой информации преимущественно sed, greep, awk или perl.

Теперь попытаемся перейти к практической реализации.
Допустим что существует некий нравящийся вам сайт -допустим freloadz.net Из всего сайта лично вас интересует лишь раздел "Фильмы" доступный по адресу http://freeloadz.net/films/ Причем если быть более конкретным то даже не все старнички с фильмами (которые выкладывают лишь на различных файлообменных ресурсах) а лишь названия новинок кинопроката, для дальнейшего поиска их на ресурсах торрент-трекеров. Первое что бросается в глаза зайдя броузером на http://freeloadz.net/films/ -так это то что на данной вэб-страничке присутствует rss-рассылка, причем не просто общая для всего ресурса, а конкретная и тематическая. Следовательно для еще большей экономии трафика ею можно воспользоваться добавив в конце запроса лишь rss.xml
Осталось лишь разобраться в структуре исходного XML-файла. Она приблизительно следующая
<title> Имя фильма </title>
<guid isPermaLink="true"> Ссылка на ресурс с фильмом </link>
<description> Краткое описание </description>
<category><![CDATA[######]]></category>
<dc:creator>admin</dc:creator>
<pubDate>Wed, 02 Feb 2011 07:23:09 +0200</pubDate>
</item><item>


Нужная нам информация лежит на строчке содержащий тег <title>. Чтобы заполучить одни лишь эти строчки можно спользовать утилиту GREEP (или SED) greep '<title>' или sed -n '/<title>/ p' В итоге получаем лишь все строчки содержащие <title> с именем фильма. Если же хотим избавиться и от этих тегов то используем комбинацию замены в потокового редактора SED: sed 's/<title>//; s/<\/title>//'
Осталось только привести исходную кодировку сайта с отображаемой вашим терминалом с помощью iconv. В конечном счете целая строка выглядит так:
wget http://freeloadz.net/films/rss.xml |greep '<title>' ||sed 's/<title>//; s/<\/title>//' |iconv -f cp1251 -t utf8

Проводим этап отладки: смотрим получаемые выходные данные. Все правильно кроме первой строки -объявляющей заголовок всей веб-странички с фильмами. Ее удаление дело совсем пустячное: добавить в секции удаления ненужных тегов после точки запятой еще одну sed-команду 1 d. Все готово.

Теперь попробуем добавить в наш получившейся простенький микро-парсер какой нибудь фильтр. Например, если проанализировать полученные нами строчки с фильмами содержат в себе идентефикатор качества публикуемого видео HDRip,DVDRip,CAMRip,HDTVRip или TV. Допустим нас совсем не интересуют фильмы в плохом CAMRip-качестве, то их очень легко отсеять. Сделать это разными способами: например для того же greep присутствует ключ -v, позволяющий отображать только те строки которые не соответствуют шаблону. Знаяит что бы отсеять все камрипы нам необходимо всего лишь добавить |greep -v CAMRip


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


Совсем не сложно создавать такие скрипты-парсеров которые будут не просто отображать -но сами и генерировать html-запрос, взяб к примеру отображаемые картинки с одного вэб-ресурса, а иформацию совсем с другого, и т.д.
Короче вариантов и разнообразия -целая ТЬМА!!! Не знаю будет желание или время может даже напишу целый цикл статей на эту тематику. Ведь у того же wget`а куча опций, позволяющих выдавать себя за различные броузеры, отсылать специализированные запросы, авторизироваться с применением cookie и т.п. К тому же существуют различные вэб-сервисы даже предоставляющие полноценный API-инструментарий. И все это может как то взаимодействовать между собой, соединяясь в самых всевозможных и причудливых комбинациях -что иногда диву даешься :-)

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

Tags: ,

Add to Memories
Share
 Я частенько увлекаюсь чтением различной технической литературы конца 80-х начала 90-х годов. В основном это связанно с эмуляцией микро-ЭВМ. Вот и нынче решил освежить память о разлиных алгоритмах программирования для малоактуального на сегодня ВАСИК-а :-)
Естественно большинство приводимых примеров не абстрактные -а реально взятые из жизни. И как следствие их можно применять на практике например для составления расчетов банковских вкладов. Для подобных расчетов можно элементарно составить например такой листинг:
cls:v=0
for i=1 to 12 : v=v+v*.01+200 : next i 
print "годовая сумма на счету станет равна";v ;"грн"


Несложно подсчитать что при ежемесячном вкладе 200 грн., при процентной ставке в 1%, в конце года на счету получим 2536,5 грн, т.е за год мы получаем прибыли лишь 136,5 грн. И это все без учета рисков (инфляции, закрытия бынков, переворотов, войн и т.п). А при нынешнем правительстве (в лице Януковича) я бы вообще не рискнул делать каких либо вложений, на которые они хотят ввести дополнительный налог. Это вообще можно приравнять к явному и открытому ВОРОВСТВУ в лице государства!!! Снимать налог с суммы полученной легальным путем, с которой уже был снят налог. И к чему это приведет? Разве что большинство поснимают из оборота безналичные деньги и будут хранить их у себя в шкафу (лишний повод обрадоваться домушникам и бандюкам) либо втайне пооткрывают зарубежных счетов. Ну да бог сними, речь не об этом!

Проанализировав результаты выдаваемые вышеприведенной программой можно сделать очень плачевные экономические выводы, для будущего украинской нации. Достаточно взять среднестатистическую заработную плату обычного рабочего украинца на текущий момент равную 2 280 грн. в месяц ,а с учетом вычита налогов чистыми деньгами получем 2280-2280*0,20=1824 грн.
Основа всего государства -это люди, а если быть более точным то семьи. А для молодых семей (будущего нации) самое главное -наличие  крыши над головой.

Посчитаем насколько доступна для них такая крыша. Самые МИНИМАЛЬНЫЕ цены на жилье у меня в Донецке колеблятся в районе 24000 у.е для однокомнатных и 35000 у.е для двух-комнатных квартир. И это квартиры которые потребуют дальнейших вложений на ремонт и их обустройство. Теперь проверим сколько лет семье состоящий всего из двух человек, не имеющих никакой другой помощи, необходимо собирать на двух-комнатную квартиру если каждый месяц каждый будет откладывать по 1000 грн.  Для этого в программе достаточно лишь заменить число 200 на 1000, а в выводе PRINT добавить множитель количества лет и делитель на текущий курс доллара 8.

В итоге получаем за 8 лет - 25365 у.е и за 12 лет -38047 у.е. И это при том что семья из двух человек будет жить на 1648 грн в месяц, из которых еще необходимо заплатить за жилье, одежду и прочие нужды. И это все при условии что в семье еще нет ребенка, а то бы эти расходы пришлось бы троекратно увеличить! К тому же любое неблагоприятное  обстоятельство такое как болезнь, пожар и т.п  бедствия могут вмиг свести семейный бюджет на минимум.

А теперь подведем итог: если нормальное полноценное и полностью осознанное создание семьи среднестатистически приходится на 25-30 года жизни обычного человека, то получается без посторонней помощи что бы создать полноценную и квартирно-независимую семью потребуется хотя бы 8 лет жизни полных лишений и то для того чтобы потом ютится в однокомнатной квартирке. В итоге начать создать семью гипотетически возможно лишь к 33-38 годам и то -это при благоприятных стечениях обстоятельств и великолепном здоровье. На практике же эти сроки сильно увеличатся, ведь для поддержания того же здоровья нужны дополнительные средства (на отпуска, правильное питание и т.п).И о каком будущем нации можно говорить? Получается среднестатистическим молодым семьям приходится ютится в квартирах совместно с родственниками и другими лицами (иногда неблагоприятно к ним настроенными). Если же ожидать повременив с детьми и собирать деньги на свою квартиру в течении 8-12 лет, то еще не полноценная семья запросто может и развалиться. И даже в итоге по прошествии стольких лет собрав нужную сумму, человек не застрахован например от физиологической невозможности создания семьи.
И никакие тупые законы (как например хотят ввести налог на бездетность) это положение не исправят, пока не подымется финансовый уровень жизни населения.
В общем продолжать можно много. Но итог один -как нация потихоньку ВЫРОЖДАЕМСЯ! И это только одна из причин (а ведь есть еще куча других).  Далеко за примером ходить не нужно. Достаточно мне глянуть на мое окружение, где из большинства моих 30-летних друзей только у трех уже есть дети, один из которых уже в разводе :-(

Tags: ,

Add to Memories
Share
 Интересное дело - с каждым годом появляется все больше и больше самых разнообразных устройств с цифровым выводом звука, но самое странное что прослушать полноценный HD-аудио звук практически нечем. Множество бютжетных dvd, портативные mp4 -плейеры, игровые приставки и прочие девайсы имеют s/pdif цифровой или коаксинильный аудоио-выход. Понятное дело что  оправдано это все их  портативностью и/или бютджетностью таких устройств, которые  подразумевают передачу своего аудио контента более профессиональным устройствам.
Судя по всему под такими устройствами подразумевались полупрофессиональные A/V -ресиверы. Естественно что и цены на такие девайсы слишком высокие от 300.до некольки кило-баксов. И это все не считая пассивных акустических колонок, сабвуфера и специальных кабелей или даже стоек, общая стоимость которых может многократно превысить стоимость самого ресирвера. Так что что бы собрать самый бютджетный полноценный комплект 5.1 (состоящий например из ресивера Sven HR-970 + комплект пасивной аккустики Sven HP-530T+активный саб.Sven HA-620W) необходимо будет потратить минимум 500 вечнозеленых(цены взяты из mirpristavok.com.ua). Но из за отсутствия в продаже схожих компонентов эта сумма может многократно увеличится. Кстати людям  обожающим музыку -это будет наиболее простой вариант. К тому же если не хватает денег то не обязательно покупать пассивные колонки все сразу, можно сначала довольствоваться вариантами 2.0, 2.1, а в последствии докупить недостающие компонеты (хотя по отдельности это все равно будет дороже).

Но как быть тем кто не относится к требовательным аудофилам, а послушать многокональный звук всеравно хотел бы, не вкладывая при этом больших средств? Выход напрашивается только один купить готовую аккустическую систему (АС) с цифровым аудио входом. Но тут какраз и кроется подвох. Сам по себе цифровой вход без цифро-аналогового-преобразователя (ЦАП) и встроенных в него  аудио-декодеров (dolby digital, dts, dts-hd, dolby pro logic 2, aac, mpeg) безполезен, а включение их большого числа требует множества лицензий что удорожает их общую стоимость. К тому же они почему то, не особо распространены и для того чтобы купить себе подобную АС прийдется прилично поискать. Но самое порадоксальное что сам класс подобных устройств потдается слабой  классификации и относится как к мультимедийным АС, так и к акустическим комплектам для домашних кинотеатров. Так что не удивляйтесь если в большинстве магазинах вас будут отсылать поочередно то в компьютерные отделы, то для Hi-Fi аудио-видео.

Вот список всех найденных мною АС с цифровым входом (в скобках указана мощность колонок, а цены приведены на 31.08.2010 из  каталогов hotline.ua):
Gemix SD-08+011 (2*90, 2*60, 40, 75)
Gemix SD-08+SV6101/6102/6109 (5*15, 75) 177 у.е
Gemix SD-08+AV2002D (5*20,75) 137 у.е
Gemix SD-08+SAT200 (3*20, 2*18, 75) 125 у.е
Gemix RDV-24 (4*8, 30) 111 у.е
Gemix RDV-04 (4*8, 30) 89 у.е
JVC TH-L1 (4*40, 2*100) 245 у.е
Microlab AH500D (95 + 45 х 5) 280 у.е
Creative Inspire TD7700 (6*8,20,24) + Decoder DDTS-100 280 у.е

Если же по какм либо причинам не подходят оба вышеописанных варианта, или же если у вас есть старая аккустика очень приличного качества но без потдержки цифрового входа, то остается лишь найти ЦАП по отдельности. В наших краях найти такую экзотику практически невозможно, но как вариант всегда остается возможность заказать из интернет магазинов (некоторые модели можно найти например на lunashop.com/ebay.com и др.).

Список всех найденных ЦАП-ов (стоимостью ниже 300 вечнозеленых):

Edifier DE006 -$50
Creative Decoder DDTS-100 100 у.е
Jazz DE -005/006/007
HD52 2.1&5.1 sound decoder audio HD Rush Gear -$73 //lunashop.com
HDV-18A 5.1 Digital Audio Decoder Dolby Digital DTS AC3 Sound Decode -$100.00 //lunashop.com
MOCHA JY-M2 (ac3,dts) -$100 //ebay
HLLY Hi-End -$200 //ebay


Кроме вышеперечисленных способов еще есть возможность найти домашний кинотеатр (ДК) с возможностью декодирования аудиоданных с его цыфрового входа. К сожалению ДК имеющих s/pdif вход на текущий момент не очень много или же цены их неоправданно высоки, а из получаемых при этом плюсов разве что сразу встроенный DVD-проигрыватель и их немного проще найти в   оздничной продаже. Это как раз тот случай где при выборе между дорогими ДК и  профессиональный аудио-ресивером, я бы предпочел последний. Но на всякий случай выложу список найденных мною недорогих ДК с цифровым входом:

LG LH-T252SC (5*30, 70) -$115
LG LH-T2660X (5*30, 70) -$125
LG LH-T3039X (5*45, 75) -$155
Samsung HT-TZ222 (5*141, 145) -$237
Samsung HT-C350 (330 суммарная) -$231
Panasonic SC-PT85EE-K (4*125, 2*250)-$245


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

Creative HQ-2300D (беспроводный) - $43
Tritton TRI-GA600/AX-720/AX-Pro (нет dts,dpl2) -$150
Sharkoon X-Tatic Dolby certified 5.1 (dd,dpl) -$120(отдельно SCU -68E)
Panasonic RP-WF5500 (беспроводный) -$240
Pioneer SE-DIR800C (беспроводный) -$240
Amphony Model 2500 (беспроводный) -$269
Turtle Beach Ear Force X4 (беспроводный) -$200
JVC SU-DH1 (2.0)

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

USB 2.0 6 Channel 7.1 External Audio Sound Card S/PDIF -$13.99 //buyincoins.com
SB Terratec Aureon Dual USB (RTL) EXT -37 у.е
SB PCI Terratec Aureon 5.1 PCI (RTL) SPDIF Optical In/Out -35.9 у.е

Ну и на последок, я не был бы самим сабой если бы не перебрал все доступные возможности. Рад представить новый класс девайсов еще малоизвестных у нас в рунете. Ведь передавать цифровой сигнал можно не только по s/pdif-у, но и по hdmi 1.3. Так что если по каким либо причинам вам не доступен s/pdif или он использует не все возможности (как например у некоторых сетевых танках отстутсвует dts-hd), всегда остается возможнасть получить звук по hdmi. Знакомтесь с двумя из недорогих найденых мною (так как есть стимостью и под кило-баксы) многокональных hdmi-аудиодекодеров:

v1.3 HDMI Audio De-embedder with built in Repeater AU-11SA -113.92Е //lektropacks.co.uk
HDMI LPCM 7.1 5.1 Multi-Channel Audio Decoder With Amplifier -$128.00 //http://www.allaboutadapters.com/hddodtsdihdo.html

Tags: , ,

Add to Memories
Share
Че то потянуло найти кукую нибудь старенькую РПГ-шку, которую не смог когда то пройти. И с легкостью нашел такую - Arx Fatalis ( последний бастион). Игра довольно таки сложная, на прохождение. И хотя я не особо люблю использовать читы, но чтобы полностью ее пройти , не буду кривить душой пришлось пару раз в них  заглянуть. В свое время я так и не смог разобраться во всех секретах данной гамы, а тупо замочил практически всех доступных персонажов. Но даже теперь после полного прохождения поразился что смог пропустить некоторые дополнительны квесты, и даже умудрился обдурить сюжетную линию, перехетрив NPC которого не возможно было бы убить кроме как квестовым способом. Короче всем любителям РПГ-шек настоятельно рекомендую!

Tags:

Add to Memories
Share
 
При длительном использование окружения ОС GNU Linux, со временем невольно привыкаешь ко всей мощи командной строки, получаемой с помощью различных системных команд а так же их комбинаций. Но когда изредка перебирашеься на Widows окружение, по неволе замечаешь что для выполнения некоторых элементарных вещей для которых требовалось бы ввести однострочник состоящую из пары команд, то для MS-Windows потребуется нахождение специализированных программ и/или множественых и не всегда тривиальных манипуляций над ними.

Конечно существуют целые пакеты готвых программ например cygwin, но для одиночных операций устанавлиесть его нецелесообразно, из за очень крупного размера. Но к счастью уже давно существуют и прилично работают win32 аналоги самых распространенных GNU-утилит. Скачать их можно например с http://gnuwin32.sourceforge.net/packages.html. Причем кроме инсталляционных файлов, там же можно найти готовые варианты упакованных бинарников, документацию и исходные коды. Кроме того все архивы можно проверить по их хэш сумме с помощью md5sum.

Лично мене более удобным кажется без инсталляционный метод скидывания всех нужных инструментов в одну общую папку (например e:/gnu), которая и будет содержать в себе подкаталоги bin,etc,lib. Только кроме категории Binaries, необходимо скачать и Dependencies, содержащий в себе библиотеки зависимостей(кстати, в случае отсутсвия любой библиотеки или какого то конкретного файла его легко найти с помщью великолепного ftp-поисковика www.mmnt.ru) Единственное что необходимо будет сделать вручную -так это прописать данные папки в системный PATH. Делается это следующим образом:
В "свойствах системы" (которое вызвается win+pause_break), во вкладке "дополнительно" нежав кнопку "переменные среды", находим и выделяем в открывшемся окне переменную Path. Нажав кнопку "изменить" добавляем необходиме значения переменной добавив в конце строчки необходимый путь например E:\gnu\bin;E:\gnu\etc;E:\gnu\lib

Теперь можно пользоваться полноценными консольными GNU программами. Запускать их можно через диалог выполнить (win+R) введя в которм cmd, хотя на многое удобней использовать файловый менеджер far, в котором для перехода в консоль с текущей директорией достаточно нажать ctrl+O.

В предидущем посте я описывал технологию создания плейлистов, с помощью wget, grep и sed. Теперь проверим их работоспособность под ms-windows. Никаких проблем в работе с их win32 -аналогами у меня не возникло, разве что утилита sed негативно относится к параметрам в одинарных кавычках,  которые следует заменить двойными (при этом если появится необходимость в экранировании двойной кавычки как параметра то делается это не обратным слешем как у большинства shell-ов, а двойными кавычками "").

Перейдем к практической части. Итак имеем великолепный сайт di.fm, содержащий в себе кучу плейлистов интерент радио-станций, по одиночке сохранять которые очень медленно и не целесообразно. Смотрим исходный код (для Opera это делается ctrl+U). Строчки содержащие ссылки на аудио-потоки в 96к битрейт содержат в себе нижеследующие данные
<td><a href="http://listen.di.fm/public3/dubstep.pls" rel="nofollow"><img src="/images/live/blue_96k.gif" width="30" height="15" hspace="3" border="0"></a></td>
Осталось только отфильтровать строки содержащие в себе имя public3 и отсеять все лишнее (от начала строки до href=, а так же от символа " до конца строки, не забывая при этом об экранировании спецсимвола) и сохранить это все в один файл плей листа:
wget http://www.di.fm/ -O - |grep public3 |sed -e "s/^.*href=""//g" |sed -e "s/"".*$//g" >di.fm.pls

Вот и все, теперь можем открыть полученный плейлист в каком нибудь аудиоплейере (мне например нравится xmlay)! Желаю всем удачи в использовании gnu-утилит, а так же в прослушивании приятной музыки :-)

Tags: , ,

Add to Memories
Share
За последнее время интернет шагнул далеко вперед. И уже мало кого удивишь что количество и качество сетевых радиостанций с каждым годом пропорционально увеличивается. Существует много специализированных плейеров (на подобие VLC) ориентированных для такого прослушивания. Они с легкостью позволяют в ручную выбирать нужную радиостанцию по таким критериям как музыкальные жанры или заданного битрейта потока. Но как быть если рабочий музыкальный плейер не содержит в себе такого списка? На помощь придет возможность сетевого воспроизведения из списков M3U, которые понимают практически большинство существующих аудио и видео плейеров.
Единственна проблема -это ручное создание таких списков. Ведь вначале необходимо найти необходимую радиостанцию, а  только затем добавить ее в такой тематический список. К тому же, если учесть что прямые ссылки иногда получить не всегда легко, так как в последнее время намечается тенденции их сокрытия при помощи всяческих flash-интерфейсиков.  Хотя однажды я и описывал специализированные запросы для нахождения таких радиостанций (см http://altutov.livejournal.com/11992.html), но занятие это не из легких.
К счастью иногда в сети можно найти целые порталы на подобие shoutcast.com, предоставляющие свои услуги в удобном поиске и сортировки по различных критериям большого числа сетевых радиостанций. Но вся сложность что все предоставляемые ими ссылки разбросаны по всей страничке, и для их объединения вам пришлось бы каждую в отдельности сохранять и добавлять в единый список.

Как всегда чтобы облегчить всю эту ручную работу, на помощь приходит мощная linux(а возможно даже win :-)) консоль.
Для начала любым броузеером зайдем на тематический сайт http://yp.shoutcast.com/, где уже все ссылки представлены в winamp`по подобном стиле (т.е PLS). Выбираем на страничке поиска необходимый музыкальный жанр (например Industrial) и при необходимости нужный битрейт, а так же максимальное число из возможных одновременно отображаемых на странице (равное 100). После нажатия Search, мы попадем на соответсвующую веб страничку, с готовым списком радиостанций. Любую ссылку можно получить из имеющихся здесь кнопок с надписью "Tune In!", достаточно только навести курсор мышки на такую кнопку и в статусной строке броузера отобразится ссылка на подобие такой "http://yp.shoutcast.com/sbin/shoutcast-playlist.pls?rn=7588&file=filename.pls". Значит все что нам необходимо это собрать все такие ссылки с текущей страницы url которой будет равен "http://yp.shoutcast.com/directory/index.phtml?sgenre=Industrial&maxbitrate=999&numresult=100&s=".
При этом даже не обязательно сохранять эту страничку на жесткий диск, так как консольная утилита wget имеет в своем распряжении опцию вывода данных на экран, которые сразу же можно потоком перенаправить фильтру grep что бы отсеять все строки не содержащие в себе pls:
 wget 'http://yp.shoutcast.com/directory/index.phtml?sgenre=Industrial&maxbitrate=999&numresult=100&s=' -O - |grep  pls
В итоге получим множество строк с разным содержанимем на подобие следующей:
<td nowrap align="center" bgcolor="#001E5A"><a href="/sbin/shoutcast-playlist.pls?rn=7588&file=filename.pls"><img src="/images/tunein.gif" border="0" width="49" height="15"></a></font></td>

Проанализирова получиенный вывод приходим к выводу что во всех строчках необходимо удалить все данные от начала строки до слова href=" и от символов ">< до конца строки. Все это элементарно делается средствами потокового редактора sed, так же передав полученный результат через поток:
|grep  pls |sed -e 's/^.*href="//g' |sed -e 's/"><.*$//g'
В итоге получаем кучу практически готовых ссылок, но у которых почемуто вначале отсутствует http://yp.shoutcast.com. Это легко исправляется средствами того же sed`а: |sed -e 's/^/http:\/\/yp.shoutcast.com/g'
И на последок готовый результат пренаправляем в файл >industrial.m3u 
Для выполнения всех действий необходимо было ввести всего лишь одну строчку:
wget 'http://yp.shoutcast.com/directory/index.phtml?sgenre=Industrial&maxbitrate=999&numresult=100&s=' -O - |grep  pls |sed -e 's/^.*href="//g' |sed -e 's/"><.*$//g' |sed -e 's/^/http:\/\/yp.shoutcast.com/g' >industrrial.m3u


Таким же способом можно создать много других тематических списков воспроизведения. Единственное что следует учесть что некоторые радиостанции иногда дублируют свои каналы по разным IP адресам и или разным битрейтам, так что ненужные придется удалить, но уже в ручную. И еще особенно понравившиеся станции желательно переместить в начало такого списка. Кстати запускать полученные списки воспроизведения можно и под чистой консолью с помощью mplayer, необходимо лишь добавить опцию -playlist, а для перемещения между станциями использовать клавиши ">" и "<". Хотя чтобы постоянно не вводить длинный параметр, как всегда проще создать для этого alias radio='mplayer -playlist'

P.S. Простыми но очень мощными инструментами такими как wget, grep и sed можно с легкостью обрабатывать практически любую web-страницу.  Это касается не только shoutcast.com, но и любой другой. Ничего сложного в этом нет, главное это немного задействовать мозгов, а все остальное приложется :-) А если кому что непонятно советую посетить http://linsovet.com, там можно найти множество самых разны и великолепны примерчиков на любую тему.

Tags: , ,
Current Music: 91.121.11.196:13030

Add to Memories
Share
Заметил что чем больше живу, тем с каждым годом безграмотнее и халатней становятся повсеместно окружающее меня общество. Причем это касается не только одних каких то конкретных людей а вообще вцелом.
К приметру купил себе недавно бютжетную хлебопечь Orion OBM-206, но как только взял в руки прилагающуюся к ней инструкцию, то создалось впечатление что работали нед ней в попыхах какие то бездари. Подтверждению этому служит очень скудный список прилагаемых рецептов, да еще явно содранных с инструкций хлебопечей для совсем других объемов и режимов. Мой "орион" расчитан на выпекание буханок размеров 900 и 1125 грамм, а в большинстве приведенных рецептов их три, к тому же вес самого большого из них равен 850г. К тому же мера веса для основных рецептов даныа в чашках, а дополнительных в граммах. Тут и невооруженным глазом видна халатность производителя, поленившегося перевести все рецепты к одному виду и удалить лишние и ненужные режимы.

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

Так вот для таких людей недалеких от элементарной математики привожу как сделать такой перевод самому :-)

Самый простой способ это когда изветен объем выпекаемых буханок. Для того что бы преобразовать рецепт для 500 г буханки  в 1125 г., надо найти их соотношение 1125/500=2.25, и любой ингридиент в последствии умножать на этот коэффициент. Это значит  если в 500 г. буханку клали 300 г. муки, то для 1125 г. буханки нужно положить 300*2.25=675 г.

Если же объем выпекаемой буханки неизвестен, то его легко подсчитать, так как он состоит из суммы двух состовляющих сыпучей (муки или в редких случаях большого кол-ва сахара) и жидкости (воды, молока, сыворотки, яиц), всем остальным если их объемы незначительны можно принебречь. Например если основа простого пшеничного хлеба состовляет 300 г. пшеничной муки и 200 мл. воды, то и вес выпеченной буханки приблизительно будет равен 300+200=500 г.

И последнее что необходимо знать -это перевод всего веса  из граммных мерок в более практичные чашко-ложечный эквивалент. Это сделано специально для облегчения замеров, так как отпадает необходимость в использование весов. У любого нормального кулинара в хозяйстве должна быть таблица соответствий пищевых продуктов, которая есть практически в любой кулинарной книге или в крайнем случае ее можно найти в сети интернет :-)
Для выпечки хлеба необходимо запомнить лишь несколько таких соотношений:
1 ст. пшеничной муки (1 с.)=160 г.
1 ст. воды =250 г.
1 ст. молока =255 г.
1 среднее яйцо =50 г.
1 ст. масло подс.=230 г.
1 ст. сахар. пес. =230 г.

Теперь зная что для 1125 г. буханки нам требуется 675 г. пшеничной муки, приведем ее соотношение в стаканы 675/160=4.21. Теперь исходя из делений мерного стакана (1, 2/3, 1/3, 1/8) в итоге выбираем наиболее подходящие из них т.е. 4 1/8 стакана.

Приведенных выше данных хватит не только для составления переводов рецептов, но и даже для нахождения в них ошибок. Например в приложенной инструкции для выпечки обычного кекса требовалось: сухих дрожжей 1 ч.л, пш. муки 2 3/4 ст., ваниль 1 3/4 ч.л., сахар 1/3 ст.л., масло  2/3 ст., яйца 5 шт., и воды 1/3 ст.
Проверяем итоговый вес 2.75*160+0.66*230+5*50+0.33*250=924.30 г. То есть до 1125 г. буханки не хватает как минимум 200 г.  Если  внимательно проссмотреть список ингредиентов то можно заметить что 1/3 ст. ложки сахара для кекса это слишком мало, а значит он будет не слишком сладки. Попробуем заменить недостающие до полноценной буханки 352.5 г. сахаром т.е. 200/230=0.87 ст.
Вот и нашли предпологаемую ошибку вместо 1/3 ст.л необходимо было задать как минимум  3/4 ст или даже 1 ст. сахара.

P.S. Да чуть не забыл похвастаться конечным результатом. Пока что самый вкусный был вот такой французкий хлеб:

Tags: ,

Add to Memories
Share
Чем больше живу на Ураине, тем с каждым днем убеждаюсь что никогда здесь не будет порядка из за такого количества долбаебов населющих эту сраную страну! Причем куда не кинь взгляд: от самых низов и до так называемых "верхов" по сути клоунов возглавляющих это государство постоянно дерущихся между собой и прелюдно обкидывающихся яйцами :-)

Поразительно, вроде живу в цивилизованном веке а не могу даже в свой законный отпуск выехать на недельку в Крым. Оказывается теперь чтоб уехать в эти майские деньки билеты у нашей доблесной "Укрзализныци" нужно покупать за 45 дней вперед, так как даже на 44 и за неимоверной очереди это сделать практически невозможно. Причем не получится договориться напрямую даже с проводниками:-( То же касается и автобусных рейсов. Даже не представляю каких трудов и денег человеку будет стоить срочно добраться при непредвиденных обстоятельствах таких как похороны или сватьба.
Во всем цивилизованном мире при большом спросе обычно возрастает и количество предложений. У наших людей все наоборот: например наш торгаш продавая на рынке помидоры или мандарины скорее удавится или тоннами выкинет их на помойку уже гнилыми, чем снизит цену на фрукты не первой свежести.
Госодурство все пускает на самотек, и не выполняет абсолютно никаких функций по контролю и регулированию цен на товары. Естественно что при большом спросе и малых предложениях начинают появлятся спекулянты, на которых почемуто закрывают глаза наша нынешняя власть.

Да и вообще касательно "власти", мне за нее стыдно. По большес степени она занимается не тем чем положенно, а своими непосредственными обязаннастями принебрегает.
Примеров тут тысячи. К примеру все усилия прилагают на замыливание глаз к предстоящему евро-2012, в то время как зайди в любой двор Донецка и ужаснешся при виде гор невывозимого мусора!!! Всяческих кафе и фаст-фудов хоть пруд пруди, а бесплатных общественных туалетов практически нет, и даже более того те что были построины при союзе позамуровывали.
Или к примеру в нашем городе берут кредиты на постройку невероятно дорогостоящего памятника, которая между прочем ляжет на плечи простых граждан. И в то же время на день победы местные власти опозорились тем, что для той крупицы ветиранов великой отечественной войны что осталась, не могли даже сделать положенного солдатского пайка (каши и несчастных ста грамм водки), тем самым лешив ветиронов хоть какого общения. Куда же, строить памятники же ведь куда важнее!!!!!

Короче жить с каждым годом становится все хорошее и главное веселее :-) Люди опомнитесь пока не поздно! С каким ужасом на вас бы сегодня взлянули предки и ради кого проливали они свою кровь?
profile
altutov
User: [info]altutov
Name: altutov
calendar
Back May 2011
1234567
891011121314
15161718192021
22232425262728
293031
page summary
tags