<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Void and Null &#187; tech</title>
	<atom:link href="http://blog.ivanatora.info/tag/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ivanatora.info</link>
	<description>Code, Linux and Shits</description>
	<lastBuildDate>Wed, 01 Feb 2012 17:48:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Бюджетно GPS решение</title>
		<link>http://blog.ivanatora.info/2010/05/31/%d0%b1%d1%8e%d0%b4%d0%b6%d0%b5%d1%82%d0%bd%d0%be-gps-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25d0%25b1%25d1%258e%25d0%25b4%25d0%25b6%25d0%25b5%25d1%2582%25d0%25bd%25d0%25be-gps-%25d1%2580%25d0%25b5%25d1%2588%25d0%25b5%25d0%25bd%25d0%25b8%25d0%25b5</link>
		<comments>http://blog.ivanatora.info/2010/05/31/%d0%b1%d1%8e%d0%b4%d0%b6%d0%b5%d1%82%d0%bd%d0%be-gps-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b5/#comments</comments>
		<pubDate>Mon, 31 May 2010 18:02:00 +0000</pubDate>
		<dc:creator>ivanatora</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[k800i]]></category>

		<guid isPermaLink="false">http://blog.ivanatora.info/?p=364</guid>
		<description><![CDATA[0. Какво очакваме от такова решение. Не очаквам рутиране. Трябва да може да ми показва къде съм, гледка от птичи поглед. Да може да пази маршрути и тракове. Да ме насочва към контролни точки (waypoints). Трябва цялата система да е компактна и да се събира в джоб. Трябва да работи с телефона, който в момента [...]]]></description>
			<content:encoded><![CDATA[<p><strong>0. Какво очакваме от такова решение.</strong><br />
Не очаквам рутиране. Трябва да може да ми показва къде съм, гледка от птичи поглед. Да може да пази маршрути и тракове. Да ме насочва към контролни точки (waypoints). Трябва цялата система да е компактна и да се събира в джоб. Трябва да работи с телефона, който в момента имам (Sony Ericsson K800i), т.е. софтуера да е Java. Естествено, трябва да има карти (включително импорт от картинка) и възможност сам да си ги правя лесно.</p>
<p><strong>1. Телефон (Java/Symbian)</strong><br />
Трябва ви какъвто и да е телефон с поддръжка на MIDP-2.0 и CLDC-1.1. Телефона ви трябва да има поне 500KB оперативана памет и доста повече за карти. В момента карта на регион с размери 3 на 3 км (Пловдив) с приближение от 11 до 18 заема 16МВ на телефона ми. Карта на цяла България с приближение от 8 до 13 заема 55МВ.</p>
<p><strong>2. GPS приемник</strong><br />
Всякакъв приемник, който се свързва по Bluetooth е подходящ. Доста разпространен и евтин модел е Holux M-1000. Нов струва около 80лв, а моя го взех от Ebay за 20. Малък е (като кибритена кутия), събира се във всякакви джобове. Батерията му държи към 10+ часа (из нета пишат за 20+ часа) и приемането му е добро, дори когато сте в кола, влак и т.н. MTK чипсет. В комплекта има зарядно за кола и USB кабел, който може да се използва пак само за зареждане на батерията. Батерията е Nokia-съвместима, така че за под 10 лв може да си вземете втора от руския пазар. Скоростта не се дава много коректно - разлика от до 5 km/h е допустима във кола. Във влак, където няма неравномерни ускорения като че ли е малко по-точно. За пешеходци текущата скорост варира между 0-10 km/h и не може да се гледа. Но ако правите трак накрая може да видите средна аритметична скорост.<br />
<strong>3. Софтуер</strong><br />
- MapNav - http://mapnav.spb.ru/site/download.php?list.3 - изисква регистрация (става бързо и безплатно) - това се инсталира на телефона ви.<br />
- mobile map creator - http://mapnav.spb.ru/site/download.php?list.4 - също - това се инсталира на компютъра ви (дори работи с Wine)<br />
- Ozi Explorer - http://www.oziexplorer.com/ - програмата струва $95, но който държи да си пиратства - има я из торентите. Програмата служи за калибриране на растерни карти и не е необходима, ако не мислите да правите това. Също се инсталира на компютъра (и пак работи с Wine)</p>
<p><strong>MapNav</strong><br />
1. Features<br />
- език на интерфейса - руски, английски, български и др.<br />
- 18 нива на приближение, като на най-високото разделителната способност е около метър на пиксел.<br />
- правене на трак, като слага точките по изминато разстояние, минало време или при промяна на посоката. Без проблеми прави трекове с 3000+ точки, като има опция за олекотяване да показва само последните 100 точки. Дава профили на на пътя по височина и по скорост. Траковете могат да се експортват/импортват в GPX, KML или Ozi формат.<br />
- компас, който показва посоките релативно на посоката на движение.<br />
- водене по маршрут или контролни точки - waypoints.<br />
- заключване на клавиатурата<br />
- затъмняване на екрана - върши добра работа за пестене на батерия<br />
- смяна на картите по време на работа.<br />
- използване на ваши карти (в MNO формат - правят се с mobile map creator, виж по-долу) или онлайн такива (ако имате мобилен интернет).<br />
- спортен режим на засичане на обиколки - не съм го пробвал.<br />
- в основния екран се показват картата, текущата позиция на нея, координати, скорост, надморска височина и др.<br />
- слагане на измерителна скала върху картата<br />
- ръчно задаване на път<br />
- слагане на белязки, които после може да ползвате за waypoints или Points Of Interest<br />
- импорт и експорт на трaкове, waypoints, маршрути и др. Поддържа GPX формат и няколко други.<br />
- настройки за всичко, което можете да се сетите.<br />
- правене на скрийншот<br />
- описание на mapnav на английски - http://mapnav.spb.ru/site/page.php?15 и на руски - http://mapnav.spb.ru/site/page.php?10</p>
<p><strong>Карти</strong><br />
<em>1. Калибриране с Ozi</em><br />
1.1. В Ozi Explorer (бих пуснал снимки, ако притежавах програмата)<br />
File -> Load and Calibrate Map Image<br />
Избиране на растерната карта.<br />
Избиране Point 1 -> клик в единия ъгъл на картата; в дясно на Degrees &#038; mins се попълват координатите на точката<br />
Избиране Point 2 -> клик в друг ъгъл на картата; попълват се новите координати<br />
Point 3 - по същия начин<br />
Save -> избирате къде да бъде запазен .MAP файла - това е информацията за калибровката на картата и ще се използва в следващата стъпка.<br />
1.2. В Mobile Map Creator<br />
Горе трябва да е избран таба Convertor.<br />
Кликате на първата иконка (текста на нея е нещо като Select map to convert).<br />
<a href='http://blog.ivanatora.info/wp-content/uploads/2010/05/mobilemapcreator-1.jpg'><img src="http://blog.ivanatora.info/wp-content/uploads/2010/05/mobilemapcreator-1.jpg" alt="mobilemapcreator-1" title="mobilemapcreator-1" class="alignnone size-full wp-image-366" /></a><br />
В нея зареждате .MAP файла, който имате от Ozi-то. Внимание: ако сте свалили МАР файл от нета, отворете го и оправете пътя до растерното изображение да сочи правилно към изображението което имате (C:\Ozi\superdupermap.map при един ще е D:\Documents And Settings\usr\My Documents\plovdiv.map при друг). Пътя до изображението е на третия ред във МАР файла, който се отваря като текстов с Notepad. Ако сам сте си направил МАР файла, няма нужда от подобна манипулация.<br />
Зареждате МАР файла и избирате къде да запазите крайните карти. Ще получите два файла с разширения MNM и MNO. Този с разширението MNМ се използва като вътрешна карта, която може да вградите в самата програма MapNav, но авторите й препоръчват да не се прави така. Използвайте MNO файла и си работете с външна карта.<br />
<em>2. Сваляне на уеб карти (Virtual Earth)</em><br />
Горе трябва да е избран таба Map.<br />
<a href="http://blog.ivanatora.info/wp-content/uploads/2010/05/mobilemapcreator-2.jpg"><img src="http://blog.ivanatora.info/wp-content/uploads/2010/05/mobilemapcreator-2.jpg" alt="mobilemapcreator-2" title="mobilemapcreator-2" class="alignnone size-full wp-image-367" /></a><br />
Първия плъзгач е за zoom level-a на избраната карта. Картата източник се избира от падащото меню. В момента са налични VirtualEarth, Google, OSM и др. Могат да се добавят още с директно редактиране на maps.ini. В прозореца с картата можете да влачите докато намерите областта, която ви интересува. Кликате на Set to map и избирате с мишката района. Трябва да се появи с инвертиран цвят. Под този бутон се намира Map Zoom - стойността вътре показва какво приближение ще имате в получената карта накрая. С бутона "+" добавяте селекцията в компилацията. Внимание: изберете всичките приближения, които искате да имате после в MapNav-a! Примерно ако искате да имате от ниво 11 до ниво 13, задавате ниво 11, кликате "+", задавате ниво 12, кликате "+", задавате ниво 13, кликате "+".<br />
<a href="http://blog.ivanatora.info/wp-content/uploads/2010/05/mobilemapcreator-3.jpg"><img src="http://blog.ivanatora.info/wp-content/uploads/2010/05/mobilemapcreator-3.jpg" alt="mobilemapcreator-3" title="mobilemapcreator-3" class="alignnone size-medium wp-image-368" /></a><br />
Цифрите ви показват колко плочки (tiles) ще се свалят от нета. Това е и горе долу показател за размера на картата накрая. Когато сте доволни от селекцията, кликате Compile Map и избирате къде да се запазят двете карти MNO и MNM. </p>
<p><em>Инструменти за визуализиране на трекове</em><br />
1. Онлайн</p>
<p>http://www.everytrail.com/</p>
<p>- може да ъплоудвате тракове в GPX формат - public (всеки може да гледа трака) и private (само вие можете да го гледате) режими<br />
- дава профил на терена по скорост и по височина<br />
- ъплоудване на снимки и геотагване<br />
- пътепис<br />
- търсене и браузване на тракове<br />
2. Десктоп<br />
- Google Earth - да се провери какво става там. Вероятно трябва да работи с KML.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivanatora.info/2010/05/31/%d0%b1%d1%8e%d0%b4%d0%b6%d0%b5%d1%82%d0%bd%d0%be-gps-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b5/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Geekbench &#8211; интересен бенчмарк</title>
		<link>http://blog.ivanatora.info/2009/09/06/geekbench-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%b5%d1%81%d0%b5%d0%bd-%d0%b1%d0%b5%d0%bd%d1%87%d0%bc%d0%b0%d1%80%d0%ba/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=geekbench-%25d0%25b8%25d0%25bd%25d1%2582%25d0%25b5%25d1%2580%25d0%25b5%25d1%2581%25d0%25b5%25d0%25bd-%25d0%25b1%25d0%25b5%25d0%25bd%25d1%2587%25d0%25bc%25d0%25b0%25d1%2580%25d0%25ba</link>
		<comments>http://blog.ivanatora.info/2009/09/06/geekbench-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%b5%d1%81%d0%b5%d0%bd-%d0%b1%d0%b5%d0%bd%d1%87%d0%bc%d0%b0%d1%80%d0%ba/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 17:00:39 +0000</pubDate>
		<dc:creator>ivanatora</dc:creator>
				<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://ivanatora.info/?p=321</guid>
		<description><![CDATA[Попаднах на един интересен бенчмарк - Geekbench. Това което тества е производителност на процесор и памет. Детайлно описание можете да намерите на страницата им. Интересните моменти в него са: върви на Windows, Linux и Mac OS пуска се с 1 клик и дава бърз резултат резултатите са разделени на няколко секции: целочислени операции, операции с [...]]]></description>
			<content:encoded><![CDATA[<p>Попаднах на един интересен бенчмарк - <a href='http://www.primatelabs.ca/geekbench/'>Geekbench</a>. Това което тества е производителност на процесор и памет. Детайлно описание можете да намерите на страницата им. Интересните моменти в него са:</p>
<ul>
<li>върви на Windows, Linux и Mac OS</li>
<li>пуска се с 1 клик и дава бърз резултат</li>
<li>резултатите са разделени на няколко секции: целочислени операции, операции с плаваща запетая, памет и цялостен резултат. Точките са линейно пропорционални - ако компютър А има 500 точки, компютър Б има 1000 точки, а компютър В има 2000 точки, то Б е два пъти по-бърз от А, В е два пъти по-бърз от Б и четири пъти по-бърз от А.</li>
<li>бенчмаркът е написан така че да се възползва от произволен брой ядра на процесора, с или без Hyperthreading</li>
<li>може да изпратите резултата си до <a href='http://browse.geekbench.ca/'>онлайн базата с данни</a>, която и без това е доста богата</li>
</ul>
<p>Естествено не трябва да се забравя че това е обикновен тъп синтетичен бенчмарк и поведението на тестваните машини в реални условия може да е друго.<br />
Тествах четири машини тук и ето резултатите:</p>
<p>1) Celeron 500MHz (66MHz FSB), i440zx, 128+64MB PC100 SDRAM - <strong>overall performance 230</strong><br />
2) Pentium Dual Core T2390 (1.8Ghz, 533Mhz FSB), GS965, 2*1GB DDR2 667MHz - <strong>overall performance 2030</strong><br />
3) Pentium 4 Prescott (3GHz, 800MHz FSB), i945, 512+512+1 DDR2 667MHz - <strong>overall performance 1740</strong><br />
4) C2D T2400 (1.8Ghz, 667Mhz FSB), GM945, 2GB DDR2 667Mhz - <strong>overall performance 2135 (governor - ondemand)</strong></p>
<p>Като се прибера в Пловдив ще го пусна и на виртуалната машина <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (Ъпдейт: излезе много близко до реалния пеформанс - около 1500)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivanatora.info/2009/09/06/geekbench-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%b5%d1%81%d0%b5%d0%bd-%d0%b1%d0%b5%d0%bd%d1%87%d0%bc%d0%b0%d1%80%d0%ba/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Компютрите на космическите совалки</title>
		<link>http://blog.ivanatora.info/2009/05/06/%d0%ba%d0%be%d0%bc%d0%bf%d1%8e%d1%82%d1%80%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-%d0%ba%d0%be%d1%81%d0%bc%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d1%82%d0%b5-%d1%81%d0%be%d0%b2%d0%b0%d0%bb%d0%ba%d0%b8/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25d0%25ba%25d0%25be%25d0%25bc%25d0%25bf%25d1%258e%25d1%2582%25d1%2580%25d0%25b8%25d1%2582%25d0%25b5-%25d0%25bd%25d0%25b0-%25d0%25ba%25d0%25be%25d1%2581%25d0%25bc%25d0%25b8%25d1%2587%25d0%25b5%25d1%2581%25d0%25ba%25d0%25b8%25d1%2582%25d0%25b5-%25d1%2581%25d0%25be%25d0%25b2%25d0%25b0%25d0%25bb%25d0%25ba%25d0%25b8</link>
		<comments>http://blog.ivanatora.info/2009/05/06/%d0%ba%d0%be%d0%bc%d0%bf%d1%8e%d1%82%d1%80%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-%d0%ba%d0%be%d1%81%d0%bc%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d1%82%d0%b5-%d1%81%d0%be%d0%b2%d0%b0%d0%bb%d0%ba%d0%b8/#comments</comments>
		<pubDate>Wed, 06 May 2009 20:25:12 +0000</pubDate>
		<dc:creator>ivanatora</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[любопитно]]></category>

		<guid isPermaLink="false">http://ivanatora.info/?p=299</guid>
		<description><![CDATA[Ако някой си мисли че горе хвърчи нещо от рода на двуядрени процесори и терабайтови хардове - жестоко се лъже Совалките на НАСА са технология от преди 30 години (и по последни данни ще бъдат бракувани за скрап до 2010та година) и авиониката им е на съответното равнище. The IBM AP-101 computers originally had about [...]]]></description>
			<content:encoded><![CDATA[<p>Ако някой си мисли че горе хвърчи нещо от рода на двуядрени процесори и терабайтови хардове - жестоко се лъже <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Совалките на НАСА са технология от преди 30 години (и по последни данни ще бъдат бракувани за скрап до 2010та година) и авиониката им е на съответното равнище.</p>
<blockquote><p>The IBM AP-101 computers originally had about 424 kilobytes of magnetic core memory each. The CPU could process about 400,000 instructions per second. They have no hard disk drive, and load software from magnetic tape cartridges.</p></blockquote>
<p>Процесора има 16 броя 32-битови регистри, а наборът му от инструкции се състои от 154 инструкции, които могат да се променят чрез смяна на микрокода. Интересното е че целия процесор е в TTL изпълнение (!!!) и има скромните размери от 15/25/45 см. Тежи 25 кг.<br />
През 1990 г. компютърът е бил ъпгрейднат с новата версия - AP-101S. Този звяр е имал около 1МВ памет и три пъти по-бърз процесор (изпълнявал е около 1.2 млн инструкции в секунда). Паметта вече не използва магнитно ядро, а CMOS технология с батерийно захранване. Това са данните за ъпгрейднатите части:</p>
<blockquote><p>The main memory of each GPC (General Purpose Computer) is non-volatile (the software is retained when power is interrupted). The memory capacity of each CPU is 81,920 words, and the memory capacity of each IOP is 24,576 words; thus, the CPU and IOP constitute a total of 106,496 words.</p></blockquote>
<p>Сто хиляди думи програма. Софтуера на совалката може да се събере в паметта на микроконтролера, който ползвам за дипломната си работа.<br />
В совалката е имало шест компютъра с общо предназначение (GPC-та). Пет от тях са правили едни и същи изчисления. Резултатите се сравняват и ако някой от компютрите даде различен резултат, останалите го приемат за грешка и го изключват от системата. На шестият компютър върви същата програма, но написана от съвсем независим източник. Той е последната възможност на астронавтите ако всички други компютри откажат.<br />
Всеки от AP-101 компютрите използва по 600 вата мощност.</p>
<p>Интересни са прогнозите през годините за това колко памет ще иде за програмата на совалката.</p>
<blockquote><p>Most estimates in the 1969 to 1971 period ranged around 28K words. Rockwell International settled on 32K in its bid and won the contract partially because of that estimate. NASA, trying to save itself from later difficulties, bought 64K of memory for each computer, hoping that doubling the estimate would be enough (despite memory increases in previous programs of several hundred percent). Unfortunately, the<br />
software grew to over 700K, requiring not only more computer memory, but the addition of mass memory units to hold programs that would not fit into the extended core. Parten said after this, "I don't know how<br />
you ensure proper memory size ahead of time, unless you're incredibly lucky".</p></blockquote>
<p>Програмите за излитане, за поддържане на орбита и за обратно навлизане в атмосферата са се съхранявали на отделни ленти, които астронавтите са зареждали в съответните случаи. След ъпгрейда с AP-101S, вече всички програми е можело да бъдат съхранявани в главната памет.<br />
Интересен е бил бъгът в софтуера, който е рестартирал компютрите при всяка смяна на годината от 31 декември към 1 януари. За това совалките не са правели полети, които включват тези дати. Този бъг е бил оправен чак през 2003 г.<br />
Компютрите са можели да бъдат препрограмирани в полет, ако се появи критична ситуация:</p>
<blockquote><p>The memory can be altered in flight. The ground can uplink bursts of 64 16-bit halfwords at a time, which can replace data already in the specified addresses. The crew can also change up to six 32-bit words simultaneously by using their displays and keyboards. However, those changes must be hand keyed in hexadecimal.</p></blockquote>
<p>Представяте ли си как астронавта за три секунди набира сто инструкции по машинни думи <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Понеже видео обработката по онова време е била трудоемка работа, цял отделен компютър е бил посветен на обслужването на дисплеите, където се извеждала информацията от останалите компютри.</p>
<blockquote><p>Displays placed on the CRTs are controlled by a special-purpose computer with a 16-bit word size and 8K of memory. This computer provides display control and can create circles, lines, intensity<br />
changes (highlighting), and flashing messages.</p></blockquote>
<p>Интересни неща могат да се намерят за компютрите в космоса <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
По материали от <a href='http://en.wikipedia.org/wiki/Space_shuttle#Flight_systems'>Wikipedia</a> и изходящите й връзки.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivanatora.info/2009/05/06/%d0%ba%d0%be%d0%bc%d0%bf%d1%8e%d1%82%d1%80%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-%d0%ba%d0%be%d1%81%d0%bc%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d1%82%d0%b5-%d1%81%d0%be%d0%b2%d0%b0%d0%bb%d0%ba%d0%b8/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SE k800i Linux Modem Part 2</title>
		<link>http://blog.ivanatora.info/2009/02/22/se-k800i-linux-modem-part-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=se-k800i-linux-modem-part-2</link>
		<comments>http://blog.ivanatora.info/2009/02/22/se-k800i-linux-modem-part-2/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 18:27:57 +0000</pubDate>
		<dc:creator>ivanatora</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[k800i]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[линукс]]></category>

		<guid isPermaLink="false">http://ivanatora.info/?p=260</guid>
		<description><![CDATA[В миналата част си поговорихме как да закачим телефона към компютъра така че да се работи с USB CDC драйвъра. Сега ще стане дума как да си пуснете реален интернет на компютъра. Тук имам само карта към МТЕЛ и съм писал за него, така че всички читатели които ползват услугите на евентуален друг оператор ще [...]]]></description>
			<content:encoded><![CDATA[<p>В <a href='http://ivanatora.info/2009/02/18/se-k800i-linux-modem/'>миналата част</a> си поговорихме как да закачим телефона към компютъра така че да се работи с USB CDC драйвъра. Сега ще стане дума как да си пуснете реален интернет на компютъра. Тук имам само карта към МТЕЛ и съм писал за него, така че всички читатели които ползват услугите на евентуален друг оператор ще трябва леко да си редактират настройките.<br />
<strong>PPP</strong><br />
Трябва ви point-to-point protocol поддръжка под някаква форма. Дали вградено в ядрото или на модул - по ваш избор. Нужните отметки в конфигурацията на ядрото са следните:</p>
<ul>
<li>Device Drivers  --->[*] Network device support  ---><M>   PPP (point-to-point protocol) support</li>
<li>Device Drivers  --->[*] Network device support  ---><M>     PPP support for async serial ports</li>
</ul>
<p>Ако решите да ги компилирате като модули, първия модул ще се казва ppp_generic, а втория ppp_async. Трябват ви и двете неща, иначе ще получавате странни грешки от рода на:</p>
<blockquote><p>
The PPP daemon has died: Fatal pppd error (exit code = 1)<br />
       1      An  immediately  fatal error of some kind occurred, such as an<br />
              essential system call failing, or running out of virtual  mem-<br />
              ory.
</p></blockquote>
<p><strong>Wvdial</strong><br />
Хубавото на Wvdial е че само си открива поддържаните настройки от модема и само си създава конфигурационен файл. Освен това не е нужно да се мъчите с /etc/ppp/* скриптове и настройки и даже не е нужно да сте прочели и ред от pppd man-страницата <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Създаване на конфигурационен файл:</p>
<blockquote><p>
# wvdialconf<br />
Editing `/etc/wvdial.conf'.</p>
<p>Scanning your serial ports for a modem.</p>
<p>WvModem<*1>: Cannot set information for serial port.<br />
ttyS0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud<br />
ttyS0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud<br />
ttyS0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.<br />
WvModem<*1>: Cannot set information for serial port.<br />
ttyS1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud<br />
ttyS1<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud<br />
ttyS1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.<br />
Modem Port Scan<*1>: S2   S3<br />
WvModem<*1>: Cannot get information for serial port.<br />
ttyACM0<*1>: ATQ0 V1 E1 -- OK<br />
ttyACM0<*1>: ATQ0 V1 E1 Z -- OK<br />
ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK<br />
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &#038;C1 -- OK<br />
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &#038;C1 &#038;D2 -- OK<br />
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &#038;C1 &#038;D2 +FCLASS=0 -- OK<br />
ttyACM0<*1>: Modem Identifier: ATI -- Sony Ericsson K810<br />
ttyACM0<*1>: Speed 4800: AT -- OK<br />
ttyACM0<*1>: Speed 9600: AT -- OK<br />
ttyACM0<*1>: Speed 19200: AT -- OK<br />
ttyACM0<*1>: Speed 38400: AT -- OK<br />
ttyACM0<*1>: Speed 57600: AT -- OK<br />
ttyACM0<*1>: Speed 115200: AT -- OK<br />
ttyACM0<*1>: Speed 230400: AT -- OK<br />
ttyACM0<*1>: Speed 460800: AT -- OK<br />
ttyACM0<*1>: Max speed is 460800; that should be safe.<br />
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &#038;C1 &#038;D2 +FCLASS=0 -- OK<br />
WvModem<*1>: Cannot get information for serial port.<br />
ttyACM1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud<br />
ttyACM1<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud<br />
ttyACM1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.</p>
<p>Found an USB modem on /dev/ttyACM0.
</p></blockquote>
<p>Отваряме /etc/wvdial.conf и редактираме редовете Phone, Username, Password. Добавяме и ред Init3. Това е крайното състояние при мен (за МТЕЛ) :</p>
<blockquote>
<p>[Dialer Defaults]<br />
Init1 = ATZ<br />
Init2 = ATQ0 V1 E1 S0=0 &#038;C1 &#038;D2 +FCLASS=0<br />
Init3 = AT+CGDCONT=1,"IP","inet-gprs.mtel.bg"<br />
Modem Type = USB Modem<br />
ISDN = 0<br />
Phone = *99#<br />
Modem = /dev/ttyACM0<br />
Username = dada<br />
Password = dada<br />
Baud = 460800
</p></blockquote>
<p>По принцип интернета на МТЕЛ се използва с каквито и да е Username и Password, но wvdial не ви позволява да оставяте тези полета празни. Из нета на разни места пишат че може и да се сложи следния ред:<br />
Stupid Mode = 1<br />
ако wvdial не може да си комуникира добре с модема ви. За k800i нямаше нужда.<br />
<strong>Connect</strong><br />
Стартирането на pppd, което става автоматично от wvdial изисква отново да сте root.</p>
<blockquote><p>
# wvdial<br />
--> WvDial: Internet dialer version 1.60<br />
--> Cannot get information for serial port.<br />
--> Initializing modem.<br />
--> Sending: ATZ<br />
ATZ<br />
OK<br />
--> Sending: ATQ0 V1 E1 S0=0 &#038;C1 &#038;D2 +FCLASS=0<br />
ATQ0 V1 E1 S0=0 &#038;C1 &#038;D2 +FCLASS=0<br />
OK<br />
--> Sending: AT+CGDCONT=1,"IP","inet-gprs.mtel.bg"<br />
AT+CGDCONT=1,"IP","inet-gprs.mtel.bg"<br />
OK<br />
--> Modem initialized.<br />
--> Sending: ATDT*99***1#<br />
--> Waiting for carrier.<br />
ATDT*99***1#<br />
CONNECT<br />
~[7f]}#@!}!}!} }9}#}%B#}%}(}"}'}"}"}&#038;} } } } }%}&#038;VKD}1[7f])~<br />
--> Carrier detected.  Starting PPP immediately.<br />
--> Starting pppd at Sun Feb 22 19:48:09 2009<br />
--> Pid of pppd: 26823<br />
--> Using interface ppp0<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> local  IP address 10.161.47.249<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> remote IP address 10.64.64.64<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> primary   DNS address 213.226.7.34<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> secondary DNS address 213.226.7.35<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
^CCaught signal 2:  Attempting to exit gracefully...<br />
--> Terminating on signal 15<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> Connect time 1.5 minutes.<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> pppd: 8[07][08]X¢[07][08][07][08]<br />
--> Disconnecting at Sun Feb 22 19:49:38 2009
</p></blockquote>
<p>CTRL+C спира връзката.<br />
Има няколко важни неща, които трябва да се видят тук. Това че сте свързан към GPRS access point при оператора ви все още не означава че компютъра ви може да ползва интернет. Трябва да се добави default route, със следния gateway:<br />
--> remote IP address 10.64.64.64<br />
Съответно:<br />
# route add default gw 10.64.64.64<br />
Ако преди това сте бил свързан към друг доставчик явно ще трябва да махнете default gw, който ви е от него.<br />
При спирането на връзката може да забележите следния ред, който показва за колко време сте били connected:<br />
--> Connect time 1.5 minutes.<br />
Други статистики може да видите от ifconfig ppp0:</p>
<blockquote><p>
ppp0      Link encap:Point-to-Point Protocol<br />
          inet addr:10.161.47.249  P-t-P:10.64.64.64  Mask:255.255.255.255<br />
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1<br />
          RX packets:64 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:317 errors:0 dropped:0 overruns:0 carrier:0<br />
          collisions:0 txqueuelen:3<br />
          RX bytes:7125 (6.9 KiB)  TX bytes:53884 (52.6 KiB)
</p></blockquote>
<p>Конкретно това което ви интересува е RX и TX bytes, защото те струват пари. Не съм сигурен дали оператора отчита трафика по същия начин, за това не бих приел тези цифри много твърдо.</p>
<p>И финалния най-важен въпрос: колко бърз интернет можете да си пуснете - при мен стигна до четвърт мегабит:</p>
<blockquote><p>
wget http://mirrors.unixsol.org/linuxpackages//Slackware-12.0/ken/google-earth-4.2.205-i486-1kjz.tgz<br />
--19:54:57--  http://mirrors.unixsol.org/linuxpackages//Slackware-12.0/ken/google-earth-4.2.205-i486-1kjz.tgz<br />
           => `google-earth-4.2.205-i486-1kjz.tgz'<br />
Resolving mirrors.unixsol.org... 193.110.159.35<br />
Connecting to mirrors.unixsol.org|193.110.159.35|:80... connected.<br />
HTTP request sent, awaiting response... 200 OK<br />
Length: 22,863,884 (22M) [application/x-tar]</p>
<p> 1% [>                                                             ] 442,690       37.82K/s    ETA 10:23
</p></blockquote>
<p>Това зависи от мрежата, която ви покрива. Максималните скорости са съответно:</p>
<ul>
<li>CSD (WAP dial-up) - 9.6 Kbps</li>
<li>GPRS - 90 Kbps</li>
<li>EDGE - 236 Kbps</li>
<li>UMTS - 384 Kbps</li>
<li>HSDPA - 14.4 Mbps downlink</li>
</ul>
<p><strong>Внимание: всичко различно от WAP CSD може сериозно да ви бръкне в сметката!</strong> MTEL дават 1MB трафик за 2.50 лв. Тарифата за WAP е 11 ст. на минута. Горното howto е писано за всичко от GPRS нагоре. За чист WAP ще експериментирам и тези дни вероятно ще пусна <em>Part 3</em> на това howto.</p>
<p>Update: Операторката от телефон 1010 ми съобщи че MTEL от една година насам не предлагат CSD достъп, а само GPRS.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivanatora.info/2009/02/22/se-k800i-linux-modem-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SE k800i Linux modem</title>
		<link>http://blog.ivanatora.info/2009/02/18/se-k800i-linux-modem/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=se-k800i-linux-modem</link>
		<comments>http://blog.ivanatora.info/2009/02/18/se-k800i-linux-modem/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 17:42:27 +0000</pubDate>
		<dc:creator>ivanatora</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[k800i]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[линукс]]></category>

		<guid isPermaLink="false">http://ivanatora.info/?p=233</guid>
		<description><![CDATA[Фен съм на GSM-модемите. Това е идеалната и най-проста backup линия за връзка с домашното (или сървърното) ви PC. Предполага се че това PC е винаги в зоната на покритие на някой от GSM операторите, така че телефона ви винаги ще е online. По-старите телефони с RS-232 комуникация имат един недостатък - батерията им пада [...]]]></description>
			<content:encoded><![CDATA[<p>Фен съм на GSM-модемите. Това е идеалната и най-проста backup линия за връзка с домашното (или сървърното) ви PC. Предполага се че това PC е винаги в зоната на покритие на някой от GSM операторите, така че телефона ви винаги ще е online. По-старите телефони с RS-232 комуникация имат един недостатък - батерията им пада с времето и трябва да пачвате буксата за да я вържете в постоянно включено в контакта зарядно. Иначе какъв backup е ако телефона ви остане без ток на третия ден <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Този недостатък го няма в по-съвременните телефони с USB кабели, където батерията постоянно се дозарежда през кабела. (От USB порта може да се извади максимум до 100mA ток, което е повече от колкото може да извади зарядното ви.)<br />
Удивително успях да се свържа с модема на k800 за по-малко от час ръчкане. Ето нужните стъпки:<br />
0) Телефона се свързва с кабел към компютъра. На екранчето излиза меню, което ви пита в какъв режим да работи телефона. Избирате "Phone Mode". Във "File transfer" режим телефона се рестартира и се mount-ва като флаш драйв, а това не ви трябва в момента.<br />
1) Трябва ви CDC ACM драйвър, който служи като виртуален сериен порт под USB. Драйвърът обикновено върви в комплект с линукс кернела. Когато телефона ви е свързан с кабел към компютъра трябва да виждате устройства /dev/ttyACM*. Ако не виждате такива устройства вероятно нямате ACM драйвър. Може да се разминете без прекомпилиране на кернела, ако го добавите драйвъра като модул:<br />
Device Drivers  ---> USB support  ---> <M>     USB Modem (CDC ACM) support (за кернел 2.6.25.6)<br />
След това следват:<br />
$ make modules<br />
# make modules_install<br />
при което ще бъде компилиран и инсталиран само този модул.<br />
Можете да го заредите с:<br />
# modprobe cdc_acm<br />
Ако все още не се появяват устройства /dev/ttyACM*, проверете какво се вижда в lsusb. Трябва да виждате нещо като това:<br />
Bus 5 Device 16: ID 0fce:d0a1 Sony Ericsson Mobile Communications AB<br />
2) По подразбиране само root потребителя може да работи с тези устройства. При засичане на модем, драйвъра автоматично си създава ttyACM*, но режима на достъп обикновено е root:root 0600. Едно временно решение е:<br />
# chmod a+rw /dev/ttyACM*<br />
Но след презакачане на телефона udev ще възстанови 0600 режима.<br />
За да направите така че всеки потребител да има достъп по всяко време, добавете следния ред в /etc/udev/rules.d/50-udev.rules:<br />
KERNEL="ttyACM*", NAME="%k", GROUP="uucp", MODE="666"<br />
3) След като имате виртуалните серийни портове, можете да използвате любимата си програма за серийна комуникация. Обикновено трябва да зададете порт с който да се свърже и настройки. Тук идва интересната част, защото при мен се появяват обикновено няколко виртуални порта (ttyACM0, ttyACM1, ttyACM2) на всяко свързване. Може да експериментирате с всеки от портовете докато откриете къде ви е модема. Слава богу поне не се грижите да следите на какъв default baud rate работи модема, защото той е умен и се синхронизира към скоростта на вашето предаване.<br />
Полезна програмка, която можете да използвате и за dialing е wvdial. Хубавото в нея е че изследва какво имате вързано по портовете и сама се конфигурира.<br />
За финал - написвате си daemon програмка, която следи за състоянието на модема и при дадено събитие изпълнява нещо. Например аз следя за входящо повикване от другия си номер и когато се появи, изпълнява командата `xmms -f` и сменя песните в XMMS-a. Ето на това му викам полезен backup и дистанционно за случаите когато ме мързи да стана от леглото <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Друго примерно приложение е при получаване на SMS да се изъплнява шелска команда, която се съдържа в него. За целта обаче първо трябва да си разкодирате SMS-а, което е готина задачка. Прочетете повече за PDU формата на съобщенията <a href='http://www.dreamfabric.com/sms/'>тук</a>.<br />
Ето ви и едно примерно съобщение, с което можете да си поиграете за домашна работа (цялото съобщение е на един ред без интервали, които го разбиват):<br />
AT+CMGL=4<br />
+CMGL: 1,1,,86<br />
07915389080003F104048111110000902061904403805146F9BBAD034DE<br />
961777ACE0EDB413CFA7B3E9FC96280733B9C66BBC6EFB60F442DE3E93A<br />
10A8999ECFD36F3768FC6EC3D9657A991C025DC3697ADA7D0699DF72D05<br />
B4E2ECB4320<br />
OK</p>
<p>P.S. Документацията с АТ командите може да си дръпнете от <a href='http://developer.sonyericsson.com/getDocument.do?docId=65054'>девелоперската секция</a> в сайта на Sony Ericsson.</p>
<p>P.S.2. Подозирам че горното писание важи за всеки телефон с USB връзка и модем, не само за k800 <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivanatora.info/2009/02/18/se-k800i-linux-modem/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Apacer AU231 0MB, inside</title>
		<link>http://blog.ivanatora.info/2009/02/17/apacer-au231-0mb-inside/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apacer-au231-0mb-inside</link>
		<comments>http://blog.ivanatora.info/2009/02/17/apacer-au231-0mb-inside/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 17:23:42 +0000</pubDate>
		<dc:creator>ivanatora</dc:creator>
				<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://ivanatora.info/?p=227</guid>
		<description><![CDATA[Имам такъв mp3 плеър от доста време. Типичната евтинийка е - 7-сегментна индикация вместо шарен дисплай, без вградена памет, чете песните от SD карта, която се споделя с фотоапарата, черпи ток от една ААА батерия. Доволно свири музиката. В един момент обаче след година и кусур терор, спря да свири и въобще да чете картата. [...]]]></description>
			<content:encoded><![CDATA[<p>Имам такъв mp3 плеър от доста време. Типичната евтинийка е - 7-сегментна индикация вместо шарен дисплай, без вградена памет, чете песните от SD карта, която се споделя с фотоапарата, черпи ток от една ААА батерия. Доволно свири музиката. В един момент обаче след година и кусур терор, спря да свири и въобще да чете картата. Без карта се стартира със съобщение "No-Sd", а когато бъде пуснат с карта се опитва да прочете броя песни и забива. Проблема беше че в слота имаше някакъв боклук и трябваше да бъде издухан, но това ми беше готин повод да отворя плеъра. И да споделя снимки с вас <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Първо плеъра в търговски вид:<br />
<a href="http://ivanatora.info/wp-content/uploads/2009/02/au231_big.jpg"><img src="http://ivanatora.info/wp-content/uploads/2009/02/au231_big-248x300.jpg" alt="" title="au231_big" width="248" height="300" class="aligncenter size-medium wp-image-231" /></a><br />
Махнат преден капак. Вижда се че вътрешността се състои от две платки, свързани с лентов кабел. Слота за SD картата е просто огромен в сравнение с останалото. Виждат се и микро-USB и стерео жак.<br />
<a href="http://ivanatora.info/wp-content/uploads/2009/02/dsc01120.jpg"><img src="http://ivanatora.info/wp-content/uploads/2009/02/dsc01120-300x225.jpg" alt="" title="dsc01120" width="300" height="225" class="aligncenter size-medium wp-image-228" /></a><br />
Google е чувал за големия чип, но не можа да ми каже нищо повече от "Made in Taiwan". Не намерих datasheet - маймуните дето сглобяват плеърите на плажа си крият продукцията. Белия правоъгълник над mp3 кодека е светодиодната подсветка на дисплея. Малката платка като че ли се занимава само с управлението на дисплея.<br />
<a href="http://ivanatora.info/wp-content/uploads/2009/02/dsc01118.jpg"><img src="http://ivanatora.info/wp-content/uploads/2009/02/dsc01118-300x225.jpg" alt="" title="dsc01118" width="300" height="225" class="aligncenter size-medium wp-image-229" /></a><br />
Подсветката в действие.<br />
<a href="http://ivanatora.info/wp-content/uploads/2009/02/dsc01119.jpg"><img src="http://ivanatora.info/wp-content/uploads/2009/02/dsc01119-300x225.jpg" alt="" title="dsc01119" width="300" height="225" class="aligncenter size-medium wp-image-230" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivanatora.info/2009/02/17/apacer-au231-0mb-inside/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Какво е HFSC и има ли почва у нас</title>
		<link>http://blog.ivanatora.info/2009/01/29/%d0%ba%d0%b0%d0%ba%d0%b2%d0%be-%d0%b5-hfsc-%d0%b8-%d0%b8%d0%bc%d0%b0-%d0%bb%d0%b8-%d0%bf%d0%be%d1%87%d0%b2%d0%b0-%d1%83-%d0%bd%d0%b0%d1%81/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba%25d0%25b2%25d0%25be-%25d0%25b5-hfsc-%25d0%25b8-%25d0%25b8%25d0%25bc%25d0%25b0-%25d0%25bb%25d0%25b8-%25d0%25bf%25d0%25be%25d1%2587%25d0%25b2%25d0%25b0-%25d1%2583-%25d0%25bd%25d0%25b0%25d1%2581</link>
		<comments>http://blog.ivanatora.info/2009/01/29/%d0%ba%d0%b0%d0%ba%d0%b2%d0%be-%d0%b5-hfsc-%d0%b8-%d0%b8%d0%bc%d0%b0-%d0%bb%d0%b8-%d0%bf%d0%be%d1%87%d0%b2%d0%b0-%d1%83-%d0%bd%d0%b0%d1%81/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 12:59:23 +0000</pubDate>
		<dc:creator>ivanatora</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[bsd]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[линукс]]></category>
		<category><![CDATA[нет]]></category>

		<guid isPermaLink="false">http://ivanatora.info/?p=214</guid>
		<description><![CDATA[Снощи нямах какво да правя, та взех и преведох текст от разни места и го събрах в едно материалче което разглежда принципа на действие на HFSC. Има примери как се прави това в Linux и *BSD. Статията може да е скучна за доста хора, така че който го интересува да чете навътре Има различни реализации [...]]]></description>
			<content:encoded><![CDATA[<p>Снощи нямах какво да правя, та взех и преведох текст от разни места и го събрах в едно материалче което разглежда принципа на действие на HFSC. Има примери как се прави това в Linux и *BSD.</p>
<p>Статията може да е скучна за доста хора, така че който го интересува да чете навътре <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-214"></span></p>
<p>Има различни реализации на алгоритми за подобряване Качеството на услугата (QoS), които са известни още под името "планировчици". Повечето от тях използват клас-базирани опашки (CBQ) - трафика се разделя по класове. Всеки клас има лимит (част от общия лимит на връзката), който не може да се надвиши от сесиите, които попадат в класа. Различни планировчици са: RED, ECN, CBQ, HTB, WFQ, WRR, HFSC... "HFSC" означава "честна йерархична крива на услугата". Целта на алгоритъма е да гарантира адаптивно и гъвкаво изменение на трафика в реално време; плавно споделяне между йерархчно разположените класове. Какви са ползите от подобен тип алгоритъм:</p>
<ul>
<li>може да се направи филтър, който вкарва ACK пакетите в клас с по-висок приоритет. Така трансферите ще преминават с нормална скорост, дори и при натоварена връзка.</li>
<li>може да се контролира забавянето на пакетите (latency) както и скоростта им на преминаване (bandwidth)</li>
<li>може да се задават точни параметри на пиковите трансфери (burst), които са с малка продължителност, но използват връзката на максимум. Тези параметри включват големина на пика и плавното му намаляване след максимално определената продължителност. По този начин кратки трансфери ще преминават по-бързо (каквито са HTTP заявки и отговорите), докато големите трансфери ще се ограничават и няма да заемат целия капацитет на връзката.</li>
<li>гарантиране поведение на услугата във всички крайни класове</li>
<li>честно разпределение на свободния трафик към крайните класове</li>
</ul>
<p>Планирането чрез HFSC се основава на два принципа: предаване на трафик в реално време, което гарантира сервизната крива на крайните класове и споделяне между класовете, което се стреми да разпредели свободните ресурси. Политиката на планировчика е да активира първия принцип, когато има опастност крайните класове да не могат да получат минималния им гарантиран ресурс. През останалото време е активиран втория критерий. За да се разбере принципа на действие на HFSC трябва да се вникне в няколко модела на управление на качеството на услугата.</p>
<h3 id="section-HFSC-_D0_9C_D0_BE_D0_B4_D0_B5_D0_BB_D0_9D_D0_B0_D0_A3_D0_BF_D1_80_D0_B0_D0_B2_D0_BB_D0_B5_D0_BD_D0_B8_D0_B5_D0_9A_D0_B0_D1_87_D0_B5_D1_81_D1_82_D0_B2_D0_BE_D1_82_D0_BE_D0_9D_D0_B0_D0_A3_D1_81_D0_BB_D1_83_D0_B3_D0_B0_D1_82_D0_B0_D0_A7_D1_80_D0_B5_D0_B7_D0_A1_D0_B5_D1_80_D0_B2_D0_B8_D0_B7_D0_BD_D0_B0_D0_9A_D1_80_D0_B8_D0_B2_D0_B0">Модел на управление качеството на услугата чрез сервизна крива</h3>
<p>Сервизна крива - Service curve - това е графика на преминалите данни за единица време.</p>
<table class=".." style="margin-left: auto; margin-right: auto;" border="0">
<tbody>
<tr>
<td><img src="http://ivanatora.info/test/service_curve.jpg" alt="" width=".." height=".." /></td>
</tr>
</tbody>
</table>
<p>Кривата има три параметъра:</p>
<ul>
<li><em>m1</em> - наклон на първия сегмент</li>
<li><em>m2</em> - наклон на втория сегмент</li>
<li><em>d</em>- пресечна точка на двата сегмента по оста Х</li>
</ul>
<p>Според подобра на параметрите могат да се направят криви с различен наклон, вдлъбнати или изпъкнали. Вдлъбнатата крива работи добре с кратки пикове, които не стигат до максимално разрешеното време - точката d. Тази крива пропуска началото на трансфера и го ограничава ако се окаже че той не е пик, а изисква голям ресурс по цялата си дължина. Изпъкналата крива потиска първоначалния трафик и дава приоритет на връзки, които преминат точката d. Естествено може да се постигне и линейна сервизна крива, когато двата наклона са еднакви: m1 = m2.<br />
Настройването на сервизна крива дава основен инструмент за управление качеството на услугата. Все пак това не стига за честно разпределяне на свободните ресурси между крайните класове.</p>
<h3 id="section-HFSC-_D0_9C_D0_BE_D0_B4_D0_B5_D0_BB_D0_9D_D0_B0_D0_92_D0_B8_D1_80_D1_82_D1_83_D0_B0_D0_BB_D0_BD_D0_BE_D1_82_D0_BE_D0_92_D1_80_D0_B5_D0_BC_D0_B5">Модел на виртуалното време</h3>
<p>Всеки от класовете в йерархията има параметър vt - виртуално време, който представлява броя обслужени байтове за единица време. ВТ е въведено за първи път в PFQ (Packet Fair Queueing) алгоритъма и целта на параметъра е да синхронизира дъщерните класове в йерархията в принципа за споделяне на връзката. Когато стане възможно да се изпрати пакет се претърсва всеки от класовете в йерархията за най-малка стойност на виртуалното време. Крайният клас, който съвпадне с това изискване изпраща пакет и виртуалното време на този и на всеки друг клас нагоре по йерархията (до коренния клас) се увеличава. Винаги когато един клас изпраща пакет виртуалното му време се увеличава.</p>
<h3 id="section-HFSC-_D0_9C_D0_BE_D0_B4_D0_B5_D0_BB_D0_9D_D0_B0_D0_A3_D0_BF_D1_80_D0_B0_D0_B2_D0_BB_D0_B5_D0_BD_D0_B8_D0_B5_D0_9A_D0_B0_D1_87_D0_B5_D1_81_D1_82_D0_B2_D0_BE_D1_82_D0_BE_D0_9D_D0_B0_D0_A3_D1_81_D0_BB_D1_83_D0_B3_D0_B0_D1_82_D0_B0_D0_A7_D1_80_D0_B5_D0_B7_D0_A0_D0_B0_D0_B7_D0_BF_D1_80_D0_B5_D0_B4_D0_B5_D0_BB_D1_8F_D0_BD_D0_B5_D0_98_D0_A7_D0_B5_D1_81_D1_82_D0_BD_D0_B0_D0_A1_D0_B5_D1_80_D0_B2_D0_B8_D0_B7_D0_BD_D0_B0_D0_9A_D1_80_D0_B8_D0_B2_D0_B0">Модел на управление качеството на услугата чрез разпределяне и честна сервизна крива</h3>
<p>Не само крайните класове, а всеки клас в йерархията има собствена сервизна крива. Целта е едновременно да се задоволят сервизните криви на крайните класове и излишъка от ресурс да бъде честно разпределен. HFSC използва този модел.<br />
Всеки краен клас има следните три параметъра:</p>
<ul>
<li><em>d</em> - максимално допустимото време на престой за пакет на края на опашката на класа</li>
<li><em>e</em> - желателното време за престой</li>
<li><em>v</em> - виртуалното време, свързано с класа</li>
</ul>
<p>Класовете, които не са крайни имат само v параметър. Максималните времена на престой се изчисляват така че, сервизната крива е гарантирана когато всички пакети от дадена сесия имат време по-малко от d. Времето e се използва за избор на кой от двата планиращи принципа ще се активира за следващия пакет. Ако текущия пакет е престоял по-малко от времето e - продължил е нататък по връзката за кракто време, алгоритъма преценява има излишък от ресурс и се стреми да го разпредели. Ако текущия пакет е престоял повече от желателното време e, това е сигнал за потенциално претоварване и алгоритъма активира критерия за минимален гарантиран ресурс.</p>
<h3 id="section-HFSC-_D0_98_D0_BC_D0_BF_D0_BB_D0_B5_D0_BC_D0_B5_D0_BD_D1_82_D0_B0_D1_86_D0_B8_D1_8F_D0_92Linux">Имплементация в Linux</h3>
<p>За контролиране качеството на услугата в Linux може да се използва инструмента tc, който е част от комплекта iproute2. Този документ няма да описва действието на tc и се предполага че читателите са запознати с него. Първата стъпка е да се инсталира обслужваща дисциплина (qdisc) към мрежовия интерфейс. Може да се добави и опция за използване на клас по подразбиране, в който ще попадне некласифицирания трафик. Общ синтаксис:<br />
<tt>tc qdisc add dev $dev root handle $ID: hfsc [default $classID]</tt><br />
Пример:<br />
<tt>tc qdisc add dev eth0 root handle 1: hfsc default 10</tt><br />
Добавяне на класове и изграждане на йерархия, чрез връзката parrent &lt;-&gt; classid.<br />
Общ синтаксис:<br />
<tt>tc add class dev $dev parent parentID classid $ID hfsc [ [ rt SC ] [ ls SC ] | [ sc SC ] ] [ ul SC ]</tt><br />
<tt>SC := [ umax bytes dmax ms ] rate BPS </tt><br />
Крайните класове могат да имат параметър за гарантиран ресурс в реално време (rt) както и параметър за сервизната крива, когато е активиран принципа за споделяне (ls). Вътрешните класове имат само параметъра ls, който е свързан с виртуалното време. Параметъра ul показва максимално заделения трафик, който може да попадне в класа. Параметрите rt и ls могат да бъдат изпуснати и вместо тях да се ползва описание на сервизната крива (sc). Тя се описва чрез:</p>
<ul>
<li><em>rate</em> - скорост на предаване - височина на втория сегмент на кривата</li>
<li><em>dmax</em> - максимално закъснение - времето където се съединяват двата сегмента</li>
<li><em>umax</em> - скорост на предаване - височина на първия сегмент на кривата</li>
</ul>
<h4 id="section-HFSC-_D0_9F_D1_80_D0_B8_D0_BC_D0_B5_D1_80_D0_BD_D0_B0_D0_99_D0_B5_D1_80_D0_B0_D1_80_D1_85_D0_B8_D1_8F_D0_9E_D1_82_D0_9A_D0_BB_D0_B0_D1_81_D0_BE_D0_B2_D0_B5">Примерна йерархия от класове</h4>
<p><tt>tc class add dev eth0 parent 1: classid 1:1 hfsc sc rate 1000kbit ul rate 1000kbit<br />
tc class add dev eth0 parent 1:1 classid 1:10 hfsc sc rate 500kbit ul rate 1000kbit<br />
tc class add dev eth0 parent 1:1 classid 1:20 hfsc sc rate 500kbit ul rate 1000kbit<br />
tc class add dev eth0 parent 1:10 classid 1:11 hfsc sc umax 1500b dmax 53ms rate 400kbit ul rate 1000kbit<br />
tc class add dev eth0 parent 1:10 classid 1:12 hfsc sc umax 1500b dmax 30ms rate 100kbit ul rate 1000kbit </tt><br />
Другата част, която не засяга HFSC планировчика и няма да бъде разглеждана е създаване на филтър, който да класифицира трафика.<br />
Пример:<br />
<tt>tc filter add dev eth0 protocol ip parent 1: u32 match ip sport 80 0xffff classid 1:10</tt></p>
<h3 id="section-HFSC-_D0_98_D0_BC_D0_BF_D0_BB_D0_B5_D0_BC_D0_B5_D0_BD_D1_82_D0_B0_D1_86_D0_B8_D1_8F_D0_92BSD">Имплементация в *BSD</h3>
<p>HFSC за първи път бива вградено в open source решение за контрол качеството на услугата - това е ALTQ. ALTQ се използва в комбинация с пакетния филтър pf. Този документ няма за цел да описва пакетния филтър, така че ще се концентрираме върху HFSC. Използват се следните параметри:</p>
<ul>
<li><em>bandwidth</em> - капацитета на връзката за даден клас. Стойността за bandwidth на дъщерните класове винаги трябва да е по-малка от bandwidth на родителския клас. Стойността за подразбиране на bandwidth е 100% от възможното за родителския клас. Стойността може да се задава в проценти, mbit, kbit...</li>
<li><em>priority</em> - приоритет на обслужване на класовете. Тази директива е прост начин за определяне на кои класове ще могат да изпратят пакет. Допустимите стойности за priority в HFSC и CBQ са от 0 до 7, като колкото по-високо е числото, толкова по-голям е приоритета. Също така priority влиза в сила когато връзката е натоварена и има опастност да не може да се изпълни принципа за гарантиране на минимална скорост.</li>
<li><em>qlimit</em> - брой "клетки" във FIFO опашка, използвана за запазване на изходящите пакети. Това се налага когато капацитетът на връзката не е достатъчен. В случай на насищане може да се случи някой от класовете да не може да предава. Тогава класовете запазват пакетите в определен брой клетки от паметта по реда им на пристигане. Когато се освободи ресурс, опашката ще бъде изпразнена навън. Използването на qlimit трябва да е само в крайни случаи, тъй като FIFO опашка противоречи на идеята за адаптивност и проспособимост на HFSC алгоритъма. Все пак запазване в паметта е по-добрата алтернатива от изпускане на пакети. Стойността на qlimit по подразбиране е 50.</li>
<li><em>realtime</em> - минимална гарантирана скорост, с която краен клас може да предава, независимо какво става с другите класове. Стойността на realtime може да бъде от 0% до 80% от общия капацитет на връзката.</li>
<li><em>upperlimit</em> - капацитет, който краен клас никога не може да надвиши.</li>
<li><em>linkshare</em> - същото като bandwidth, но важи само за вътрешните класове по йерархията. Ако за клас е сложена стойност на bandwidth, може да не се задава стойност за linkshare</li>
</ul>
<p>Общ синтаксис за опашките в pf.conf:<br />
<tt>altq on $interface $scheduler bandwidth $bw [priority $pri] [qlimit $qlim] queue { $q1, $q2, $q3...}}}<br />
</tt></p>
<ul>
<li><em>interface</em> - мрежовия интерфейс, където се инсталира дисциплината за обслужване</li>
<li><em>scheduler</em> - алгоритъм на планировчика</li>
<li><em>bandwidth</em> - капацитет на връзката. Задава се в b, Kb, Mb за bits, kilobits, megabits за една секунда. Стойността за подразбиране е 100% от капацитета на родителския клас.</li>
<li><em>q1, q2, q3 ...</em> - списък с имена на класове, които се описват по-долу</li>
</ul>
<p>Общ синтаксис за описване на опашка (клас):<br />
<tt>queue $name [on $interface] bandwidth $bw [priority $pri] [qlimit $qlim] $scheduler ( $sched_options ) { $queue_list } </tt></p>
<ul>
<li><em>name</em> - име на опашката. Трябва да съвпада с някое от имената на класовете, описани в списъка { $q1, $q2, $q3...} на родителския клас. Максималната дължина на името е 15 символа</li>
<li>sched_options - допълнителни настройки и опции, които контролират поведението на планировчика
<ul>
<li><em>default</em> - дефинира класа като клас в който попада всичкия некласифициран трафик. Трябва да има само една default дефиниция за всички класове, които са към един мрежов интерфейс.</li>
<li><em>red</em> - активира алгоритъма Random Early Detection (RED) за опашката</li>
<li><em>ecn</em> - активира алгоритъма Explicit Congestion Notification (ECN) за опашката</li>
<li><em>realtime</em> $bw - задава параметъра realtime в HFSC</li>
<li><em>upperlimit</em> $bw - задава параметъра upperlimit в HFSC</li>
<li><em>linkshare</em> $bw - задава параметъра linkshare в HFSC</li>
</ul>
</li>
</ul>
<h4 id="section-HFSC-_D0_9F_D1_80_D0_B8_D0_BC_D0_B5_D1_80_D0_BD_D0_B0_D0_99_D0_B5_D1_80_D0_B0_D1_80_D1_85_D0_B8_D1_8F_D0_9E_D1_82_D0_9A_D0_BB_D0_B0_D1_81_D0_BE_D0_B2_D0_B5">Примерна йерархия от класове</h4>
<p><tt>altq on rl0 bandwidth 744Kb hfsc queue { ack, dns, ssh, bulk, bittor, spamd }<br />
queue ack bandwidth 80% priority 7 qlimit 500 hfsc (realtime 50%)<br />
queue dns bandwidth  7% priority 6 qlimit 500 hfsc (realtime  5%)<br />
queue ssh bandwidth 10% priority 5 qlimit 500 hfsc (realtime 10%) {ssh_bulk, ssh_login}<br />
queue 	ssh_login bandwidth 90% priority 5 qlimit 500 hfsc<br />
queue 	ssh_bulk bandwidth 10% priority 4 qlimit 500 hfsc<br />
queue bulk bandwidth  1% priority 4 qlimit 500 hfsc (realtime 5% default)<br />
queue bittor bandwidth  1% priority 3 qlimit 500 hfsc (upperlimit 99%)<br />
queue spamd bandwidth  1% priority 2 qlimit 500 hfsc (upperlimit 1%)</tt></p>
<h3 id="section-HFSC-_D0_98_D0_B7_D0_BF_D0_BE_D0_BB_D0_B7_D0_B2_D0_B0_D0_BD_D0_B0_D0_9B_D0_B8_D1_82_D0_B5_D1_80_D0_B0_D1_82_D1_83_D1_80_D0_B0">Използвана литература</h3>
<p><a class="external" href="http://www.cs.cmu.edu/%7Ehzhang/papers/SIGCOM97.pdf">http://www.cs.cmu.edu/~hzhang/papers/SIGCOM97.pdf</a><img class="outlink" src="http://dsnet.tu-plovdiv.bg/wiki/images/out.png" alt="" /> - A Hierarchical Fair Service Curve Algorithm for LinkSharing, RealTime and Priority Services<br />
<a class="external" href="http://linux-ip.net/articles/hfsc.en/">http://linux-ip.net/articles/hfsc.en/</a><img class="outlink" src="http://dsnet.tu-plovdiv.bg/wiki/images/out.png" alt="" /> - HFSC Scheduling with Linux<br />
<a class="external" href="https://calomel.org/pf_hfsc.html">https://calomel.org/pf_hfsc.html</a><img class="outlink" src="http://dsnet.tu-plovdiv.bg/wiki/images/out.png" alt="" /> - Hierarchical Fair Service Curve (HFSC) of OpenBSD<br />
<a class="external" href="http://www.openbsd.org/faq/pf/queueing.html">http://www.openbsd.org/faq/pf/queueing.html</a><img class="outlink" src="http://dsnet.tu-plovdiv.bg/wiki/images/out.png" alt="" /> - PF: Packet Queueing and Prioritization</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivanatora.info/2009/01/29/%d0%ba%d0%b0%d0%ba%d0%b2%d0%be-%d0%b5-hfsc-%d0%b8-%d0%b8%d0%bc%d0%b0-%d0%bb%d0%b8-%d0%bf%d0%be%d1%87%d0%b2%d0%b0-%d1%83-%d0%bd%d0%b0%d1%81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Енкодване на клипове за k800 с mencoder и ffmpeg</title>
		<link>http://blog.ivanatora.info/2008/09/01/%d0%b5%d0%bd%d0%ba%d0%be%d0%b4%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%ba%d0%bb%d0%b8%d0%bf%d0%be%d0%b2%d0%b5-%d0%b7%d0%b0-%d1%82%d0%b5%d0%bb%d0%b5%d1%84%d0%be%d0%bd%d0%b0/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25d0%25b5%25d0%25bd%25d0%25ba%25d0%25be%25d0%25b4%25d0%25b2%25d0%25b0%25d0%25bd%25d0%25b5-%25d0%25bd%25d0%25b0-%25d0%25ba%25d0%25bb%25d0%25b8%25d0%25bf%25d0%25be%25d0%25b2%25d0%25b5-%25d0%25b7%25d0%25b0-%25d1%2582%25d0%25b5%25d0%25bb%25d0%25b5%25d1%2584%25d0%25be%25d0%25bd%25d0%25b0</link>
		<comments>http://blog.ivanatora.info/2008/09/01/%d0%b5%d0%bd%d0%ba%d0%be%d0%b4%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%ba%d0%bb%d0%b8%d0%bf%d0%be%d0%b2%d0%b5-%d0%b7%d0%b0-%d1%82%d0%b5%d0%bb%d0%b5%d1%84%d0%be%d0%bd%d0%b0/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 17:37:18 +0000</pubDate>
		<dc:creator>ivanatora</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[bsd]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[k800i]]></category>
		<category><![CDATA[mplayer]]></category>

		<guid isPermaLink="false">http://ivanatora.info/?p=131</guid>
		<description><![CDATA[От месеци се мъчех да си смачкам някое друго видео, което да мога да си го гледам на телефона. GSM е Sony Ericsson k800. По спецификации поддържа: - видео 3GPP (H263, H264), MP4, Real8 - аудио MP4 (AAC, AAC+, E-AAC+), MP3, M4A, WMA, 3GP, AMR, WAV, G-MIDI 1, Real 8 - максимална разделителна способност 320х240 [...]]]></description>
			<content:encoded><![CDATA[<p>От месеци се мъчех да си смачкам някое друго видео, което да мога да си го гледам на телефона. GSM е Sony Ericsson k800. По спецификации поддържа:<br />
- видео 3GPP (H263, H264), MP4, Real8<br />
- аудио MP4 (AAC, AAC+, E-AAC+), MP3, M4A, WMA, 3GP, AMR, WAV, G-MIDI 1, Real 8<br />
- максимална разделителна способност 320х240<br />
- максимален битрейт - 400 kb/s - като това е общо видео битрейт + аудио битрейт<br />
До сега имам поне към 500 неуспешни опита да енкодна видео с mencoder и то да тръгне на телефона. Във файловия мениджър се появява една иконка с пакетче и контекстен бутон Send (като на всички непознати файлове) и толкоз. Никакъв опит за по-съществен дебъг. Какво не му харесва? Тук вече става въпрос за много сложна комбинация от видео енкодер, аудио енкодер, видео формат, видео контейнер, аудио кодек, битрейти...<br />
Ето някой от неуспешните опити с mencoder:</p>
<blockquote><p>mencoder input.avi -ovc lavc -lavcopts acodec=ac3:abitrate=64:vcodec=mpeg4:vbitrate=300 -oac mp3lame -lameopts br=64 -vf scale=320:240 -of lavf -lavfopts format=mp4 -o output.mp4</p></blockquote>
<p>Сега като го гледам този, не ми е чудно че не тръгва. Опитвам се да ползвам за аудио кодек АС3, а телефона май не го поддържа</p>
<blockquote><p>mencoder input.avi -ovc x264 -x264encopts bitrate=350 -oac mp3lame -lameopts br=64 -vf scale=320:240 -o output.mp4</p></blockquote>
<p>Едно време си мислех че x264 == MPEG-4, сега си мисля че не е точно така. Вече почнах да се обърквам кое е енкодер, кое е кодек и кое е контейнер...<br />
Та това са само последните два от няколкостотин опита и килограми изхабени нерви по mencoder. Не искам да кажа че mencoder си върши работата зле - виновно е задклавиатурното устройство <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  В други случаи mencoder върши чудесна работа, примерно това рипване на DVD:</p>
<blockquote><p>mencoder dvd://3 -dvd-device /mnt/cdrom/ -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate="800" -oac mp3lame -lameopts br=128 -o dvd.avi</p></blockquote>
<p>По едно време ми писна и се залових за алтернативния софтуер - ffmpeg. Не ми хареса man страницата му, където са описани по-малко от половината опции. Въпреки това, работата горе долу стана.<br />
Първо пробвах да преобразувам клипчето в 3GP, но се оказа че формата има комплект валидни разделителни способности, най-високата от които да ми върши работа беше 176х144. Не мерси.<br />
Съсредоточих се върху MP4:</p>
<blockquote><p>ffmpeg -i input.avi -ar 8000 -ac 1 -acodec libfaac -vcodec mpeg4 -s 320x240 -r 24 -b 300000 -ab 48000 -t 30 output.mp4</p></blockquote>
<p>Видеото излезе с подходящия thumbnail в мениджъра на телефона, даже и тръгна. Единствения кусур беше звука, който беше с отвратително качество.<br />
Ето подобрение:</p>
<blockquote><p>ffmpeg -i input.avi -ar 44100 -ac 1 -acodec libfaac -vcodec mpeg4 -s 320x240 -r 24 -b 250000 -ab 64000 output.mp4</p></blockquote>
<p>Аудио енкодера не ми даде да вдигна аудио битрейта докато не вдигнах и sampling rate-а. Намалих и видео битрейта, понеже на някои места видеото забавяше и се получаваше framedrop ефект. Накрая всичко тръгна на сто процента <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivanatora.info/2008/09/01/%d0%b5%d0%bd%d0%ba%d0%be%d0%b4%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%ba%d0%bb%d0%b8%d0%bf%d0%be%d0%b2%d0%b5-%d0%b7%d0%b0-%d1%82%d0%b5%d0%bb%d0%b5%d1%84%d0%be%d0%bd%d0%b0/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Quest for these RJs</title>
		<link>http://blog.ivanatora.info/2008/08/15/the-quest-for-these-rjs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-quest-for-these-rjs</link>
		<comments>http://blog.ivanatora.info/2008/08/15/the-quest-for-these-rjs/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 11:32:42 +0000</pubDate>
		<dc:creator>ivanatora</dc:creator>
				<category><![CDATA[ежедневие]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[любопитно]]></category>
		<category><![CDATA[размисли]]></category>

		<guid isPermaLink="false">http://ivanatora.info/?p=119</guid>
		<description><![CDATA[След като трябваше да прекарам всички кабели за мрежата наново, днес отидох да търся RJ-45. Излезе че е много трудно да си намериш RJ-та в Стара Загора. Обиколих целия град. Опит 0 - Магазин 'First' се намира до компютърната зала 'First' (с два компютъра) и е от гаражния тип. В магазина нямаше никой. Аз се [...]]]></description>
			<content:encoded><![CDATA[<p>След като трябваше да прекарам всички кабели за мрежата наново, днес отидох да търся RJ-45. Излезе че е много трудно да си намериш RJ-та в Стара Загора. Обиколих целия град.</p>
<p>Опит 0 - Магазин 'First' се намира до компютърната зала 'First' (с два компютъра) и е от гаражния тип. В магазина нямаше никой. Аз се въртях пет минути, през които можех да изнеса половината инвентар, и все пак никой не дойде.</p>
<p>Опит 1 - Магазин 'Solaris' - видях че вътре се продават кабели и ел. инсталации, та си рекох че ще има и букси. Вътре ме посрещна една лелка:<br />
- Добър ден.<br />
- Добър ден, имате ли букси RJ-45? - питам аз.<br />
- За какво са тези букси?<br />
- Ами за LAN кабел, компютърна мрежа...<br />
- Имаме букси за телевизори. Ако ви трябва нещо за компютъра не мога да ви помогна.<br />
И толкова в магазин 'Solaris' <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Знам още няколко подобни магазина за кабели и ел. обзавеждане, в които щях да получа същия отговор.</p>
<p>Опит 2 - Магазин 'Millenium' - на центъра. Голям магазин - сглобяват конфигурации, продават аксесоари, има си и зала с 10-20 компютъра. (Сайта им изглежда не е поддържан от както е направен из 90-те години, но това само помага за схващането колко е древен и могъщ въпросния магазин). Имаше двама продавачи, мен ме пое едно момченце.<br />
- Добър ден, имате ли RJ-45?<br />
- Какво? - поглед тип 'заек пред фарове', явно беше нов.<br />
- Букса RJ-45 търся.<br />
Малкия отиде при някакъв чичка, който явно беше старши и му шепне:<br />
- Имаме ли NJ-45? - ('енджи' си е същото като 'ержи', нали така...)<br />
Чичката ме зяпна умно и само дето не чувам празния ход на механизмите в главата му. Вече взе да ми писва, та орязах десетина нива от техническата терминология:<br />
- Букса за кабела си търся!<br />
В този момент се включи продавач номер 3, който дочу че нещо се търси и схвана за какво става въпрос. Извади един кабел от някакъв switch и показа на първите двама за какво става въпрос. Младия захапа:<br />
- Ааа, имаме такова! Колко искате?<br />
- Ами колко струват? - бях излязъл с 2 лева в джоба и трябваше да ми стигнат за поне десетина, щото съм калпав кримпвач.<br />
- 30 стотинки. - и избяга някъде отзад.<br />
При такъв пладнешки обир само успях да кажа 'аз ей сега се връщам' и си излязох от магазина.</p>
<p>Опит 3 - Магазин 'Тодор Петров' в телевизионния сервиз. Ето това вече е магазин. В него има всичко. От дискретни елементи през интегрални схеми, сглобени изделия, car audio, уреди, кабели...<br />
- Добър ден, какво ще желаете? - една от четирите продавачки.<br />
- Десет букси Rj-45.<br />
- Лев и двадесет, благодаря.<br />
Всъщност в телевизионния сервиз има 3-4 магазина, всеки от които е така зареден. Само че въпросния ТВ сервиз ми е на половин час от вкъщи. Защо няма други нормални магазини за компютърна техника из града? В Пловдив само в един малък район около центъра и военна болница знам поне 20 места от където може да се намерят RJ-та...</p>
<p>Имаше вариант и за Опит 4 - магазин 'Викинг' на бул. Руски. Само че не съм очарован от тях - обслужване и цени, и ако не е въпрос на живот и смърт не бих стъпил вътре.<br />
Сега се сещам и за номер 5 - магазина на 'MOST', където обаче не знам дали щях да намеря RJ-та.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivanatora.info/2008/08/15/the-quest-for-these-rjs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Здравей, Opera!</title>
		<link>http://blog.ivanatora.info/2008/07/24/%d0%b7%d0%b4%d1%80%d0%b0%d0%b2%d0%b5%d0%b9-opera/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25d0%25b7%25d0%25b4%25d1%2580%25d0%25b0%25d0%25b2%25d0%25b5%25d0%25b9-opera</link>
		<comments>http://blog.ivanatora.info/2008/07/24/%d0%b7%d0%b4%d1%80%d0%b0%d0%b2%d0%b5%d0%b9-opera/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 10:02:14 +0000</pubDate>
		<dc:creator>ivanatora</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[bsd]]></category>
		<category><![CDATA[нет]]></category>

		<guid isPermaLink="false">http://ivanatora.info/?p=109</guid>
		<description><![CDATA[На скоро Firefox си изтегли последния ъпдейт от 2.х.х.х серията и се почнаха едни забивания, увивания... За няколко дена бях вбесен. А за версия 3 още дума не може да става да ми дойде вкъщи. Преди това бях забелязъл че в complete install-a на FreeBSD-то се включва и Opera, та реших да й дам шанс. [...]]]></description>
			<content:encoded><![CDATA[<p>На скоро Firefox си изтегли последния ъпдейт от 2.х.х.х серията и се почнаха едни забивания, увивания... За няколко дена бях вбесен. А за версия 3 още дума не може да става да ми дойде вкъщи.<br />
Преди това бях забелязъл че в complete install-a на FreeBSD-то се включва и Opera, та реших да й дам шанс. Поразцъках я малко... и се влюбих <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Това няма нищо общо с онова отроче на софтуерната индустрия, което помня от преди години. Дръпнали са светлинни години напред. Няма 'дай пари за лиценз', няма 'иди да хапнеш докато ти заредя страницата'...<br />
<b>Скорост</b> - браузъра зарежда за 1/3 от времето за което зареждаше FF. Отваря нови табове още преди да си кликнал два пъти и сменя от таб на таб за същото време. Това елементарно упражнение в FF си беше мъка. Всъщност сменянето от таб на таб беше единственото нещо, което правеше лампичката за HDD activity да свети непрекъснато.<br />
<b>Speed dial</b> - може да задавате няколко страници, на които да се прехвърлите. Нещо като bookmarks @ home page, но тук виждате в реално време съдържанието на страниците още преди да сте ги посетили в малки thumbnails.<br />
<b>Преотваряне на затворени табове</b> - до колкото помня във FF тази функционалност се добавяше от Tab Mix Plus и подобните му добавки.<br />
<b>Zoom</b> - реален zoom на страниците, а не само увеличаване на шрифта както беше във 2.х версиите на FF. Разликата между двете е че, когато се увеличава само шрифта, другите елементи остават несъразмерни и страницата започва да се размества (я пъхнете голям шрифт в малък div елемент)<br />
<b>Skins</b> - само си тегли скиновете, като имате прозорче за preview. Можете да четете коментари, да гледате ревюта и рейтинг на същото място.<br />
<b>Mail, Chat, RSS</b> - Opera има вградени клиенти. Обаче съм свикнал като цъкна на RSS линк да ми се отваря страницата за добавяне към Google Reader и малко ми е мъчно за FF <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <br />
<b>Още thumbnails</b> - има опция за добавяне на thumbnails към Ctrl+Tab превключването и към самите табове. Като задържите мишката върху затворен таб, пада един thumbnail със съдържанието на страницата. Не ми допада много, ама си е екстра гъзария.<br />
<b>Image control</b> - може да се изключи показването на картинки, или да се направи да се показват от локалния кеш.<br />
<b>User stylesheets</b> - ако не ви харесва как изглежда някоя страница, можете да й зададете ваш stylesheet, който да ползва. Във FF това ставаше с добавка.<br />
<b>Mouse gestures</b> - никога няма да привикна към каквито и да е жестове с мишката, така че това влиза в категория 'гъзария' <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <br />
<b>Notes</b> - има си прозорче за добавяне на кратки бележки. Аз отдавна съм си свикнал да си пазя бележките в браузъро-независима среда като тесктови файлове, така че това ми изглежда още една ненужна 'гъзария'.<br />
<b>AdBlock</b> - забрана за зареждане на определени елементи от страниците - които вие посочите. Много голям плюс - мразя да гледам банери. Това ставаше с добавка във FF.</p>
<p>Липсва ми Web Developer добавката от FF. Тук има нещо подобно - Tools -> Advanced -> Developer Tools, но е далече от версията на FF.<br />
В заключение на сравнението Opera <> Firefox (без да усетя съм почнал да ги сбивам <img src='http://blog.ivanatora.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) ще кажа че Opera ми изглежда като всичко добро от FF събрано на куп и на стероиди. Бързината на зареждане - ако някога FF стигне до там, ще стане революция.<br />
И все пак навика си е навик, и ако в някой скорошен ъпдейт на FF оправят забиванията и memory usage-то - пак ще почна да си го ползвам.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivanatora.info/2008/07/24/%d0%b7%d0%b4%d1%80%d0%b0%d0%b2%d0%b5%d0%b9-opera/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

