<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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" version="2.0">

<channel>
	<title>Блог FX'а</title>
	
	<link>http://blog.fxposter.org</link>
	<description>Записки [web]девелопера</description>
	<pubDate>Thu, 27 Nov 2008 22:21:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/fxposter" type="application/rss+xml" /><item>
		<title>Аналог PHP-шной asort() на JavaScript</title>
		<link>http://blog.fxposter.org/2008/11/28/asort-in-javascript/</link>
		<comments>http://blog.fxposter.org/2008/11/28/asort-in-javascript/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 22:21:23 +0000</pubDate>
		<dc:creator>FX Poster</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<category><![CDATA[Программирование]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=589</guid>
		<description><![CDATA[На днях попросили меня помочь написать функцию сортировки массива на JavaScript, чтобы сохранилась связь между ключами и их значениями, т.е. аналог asort() в PHP. Поверхностный поиск в Google ничего подобного найти не смог, поэтому родилась вот такая функция (принимает массив или хеш, на выходе - хеш):
function asort(arr, sort_function) {
  if (sort_function == undefined)
  [...]]]></description>
			<content:encoded><![CDATA[<p>На днях попросили меня помочь написать функцию сортировки массива на JavaScript, чтобы сохранилась связь между ключами и их значениями, т.е. аналог asort() в PHP. Поверхностный поиск в Google ничего подобного найти не смог, поэтому родилась вот такая функция (принимает массив или хеш, на выходе - хеш):</p>
<pre><code class="javascript">function asort(arr, sort_function) {
  if (sort_function == undefined)
    sort_function = function(a, b) { return a - b }

  var b = [];
  for (var i in arr)
    b.push([i, arr[i]]);
  b.sort(function(a, b) { return sort_function(a[1], b[1]) });

  c = {};
  for (var i in b)
    c[b[i][0]] = b[i][1];
  return c;
}</code></pre>
<p>Примеры использования:</p>
<pre><code class="javascript">// сортировка по возрастанию
var h = asort([1, 10, 2, 5, 4]);
for(i in h)
  alert(h[i]);

// сортировка по убыванию
var j = asort([1, 10, 2, 5, 4], function(a, b) { return b - a });
for(i in j)
  alert(j[i]);</code></pre>
<p><em><strong>PS</strong>. В JS я не спец, так что, возможно, всё сделано абсолютно неправильно :)</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/fxposter?a=oLZiN"><img src="http://feeds.feedburner.com/~f/fxposter?i=oLZiN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=UvzLn"><img src="http://feeds.feedburner.com/~f/fxposter?i=UvzLn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=UbhCn"><img src="http://feeds.feedburner.com/~f/fxposter?i=UbhCn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=s6mhN"><img src="http://feeds.feedburner.com/~f/fxposter?i=s6mhN" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/fxposter/~4/467760069" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/11/28/asort-in-javascript/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=fxposter&amp;itemurl=http%3A%2F%2Fblog.fxposter.org%2F2008%2F11%2F28%2Fasort-in-javascript%2F</feedburner:awareness></item>
		<item>
		<title>jQuery, AJAX и CP1251</title>
		<link>http://blog.fxposter.org/2008/11/28/jquery-ajax-and-cp1251/</link>
		<comments>http://blog.fxposter.org/2008/11/28/jquery-ajax-and-cp1251/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 22:05:15 +0000</pubDate>
		<dc:creator>FX Poster</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<category><![CDATA[Программирование]]></category>

		<category><![CDATA[Работа]]></category>

		<category><![CDATA[Ajax]]></category>

		<category><![CDATA[CP1251]]></category>

		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=585</guid>
		<description><![CDATA[Да, да, я знаю, что в наш век все уже давно перешли на использование utf-8 при построении веб-сайтов, но остались еще и такие, которые пользуються &#8220;допотопными&#8221;, &#8220;отстойными&#8221;, и вообще &#8220;не-тру&#8221; кодировками типа CP1251 (также известной как Windows-1251), KOI8-R и прочих.
Ни для кого ни секрет, что кодировкой получаемых через Ajax данных по-умолчанию принимается UTF-8. Не все [...]]]></description>
			<content:encoded><![CDATA[<p>Да, да, я знаю, что в наш век все уже давно перешли на использование utf-8 при построении веб-сайтов, но остались еще и такие, которые пользуються &#8220;допотопными&#8221;, &#8220;отстойными&#8221;, и вообще &#8220;не-тру&#8221; кодировками типа CP1251 (также известной как Windows-1251), KOI8-R и прочих.</p>
<p>Ни для кого ни секрет, что кодировкой получаемых через Ajax данных по-умолчанию принимается UTF-8. Не все знают, что это умолчание можно изменить, указав кодировку явно через заголовок &#8220;Content-Type: text/html; charset=cp1251&#8243;. Сегодня вот столкнулся с интересным багом, на который убил довольно много времени.</p>
<p>Сервер отдает некоторый текст по запросу (ajax) в кодировке CP1251, предварительно установив соответствующий заголовок - &#8220;Content-Type: text/html; charset=cp1251&#8243;. На клиенте использовалась библиотека jQuery:</p>
<pre><code class="javascript">$('#books').load('books.php', {action: 'list'});</code></pre>
<p>Всё работало замечательно&#8230; До тех пор, пока я не открыл страничку в IE7. Как ни странно, но ничего не загрузилось. После длительных раздумий, установки alert-ов куда нужно, и куда нет код был заменен следующим кодом:</p>
<pre><code class="javascript">$.ajax({
  method: 'get',
  url: 'books.php',
  success: function(data) {
    $('#books').html(data);
  },
  error: function(xhr, textStatus, errorThrown) {
    alert(textStatus);
  },
  data: {action: 'list'}
});</code></pre>
<p>В FF всё продолжало работать, а вот IE начал выдавать странную надпись &#8220;parsererror&#8221;. Гугление никаких результатов не дало - ни одного похожего случая&#8230; После, примерно, 10 минут попыток &#8220;запустить&#8221; страничку в IE, что-то меня дернуло посмотреть на серверный код. Глаза сразу упали на строку установки Content-Type-а. Недолго думая, я поставил charset=utf-8, и, о чудо, IE загрузил всё как положено (правда в неправильной кодировке, но всё же - уже плюс). Догадавшись в чем может быть дело, я установил кодировку в &#8220;windows-1251&#8243;, после чего всё заработало на ура.</p>
<p>Собственно, мораль сей басни такова - юзайте, люди, юникод, и будет вам счастье.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/fxposter?a=qugKN"><img src="http://feeds.feedburner.com/~f/fxposter?i=qugKN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=o4dXn"><img src="http://feeds.feedburner.com/~f/fxposter?i=o4dXn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=vB42n"><img src="http://feeds.feedburner.com/~f/fxposter?i=vB42n" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=sF2cN"><img src="http://feeds.feedburner.com/~f/fxposter?i=sF2cN" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/fxposter/~4/467750068" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/11/28/jquery-ajax-and-cp1251/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=fxposter&amp;itemurl=http%3A%2F%2Fblog.fxposter.org%2F2008%2F11%2F28%2Fjquery-ajax-and-cp1251%2F</feedburner:awareness></item>
		<item>
		<title>MySQL 5.1 зарелизилась</title>
		<link>http://blog.fxposter.org/2008/11/28/mysql-51/</link>
		<comments>http://blog.fxposter.org/2008/11/28/mysql-51/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 21:38:08 +0000</pubDate>
		<dc:creator>FX Poster</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<category><![CDATA[Программирование]]></category>

		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=582</guid>
		<description><![CDATA[Вышел релиз очередной версии, наверное, самой популярной СУБД - MySQL 5.1. Качаем и читаем нововведения. А я пойду ставить.
]]></description>
			<content:encoded><![CDATA[<p>Вышел релиз очередной версии, наверное, самой популярной СУБД - MySQL 5.1. <a href="http://dev.mysql.com/downloads/mysql/5.1.html">Качаем</a> и <a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html">читаем нововведения</a>. А я пойду ставить.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/fxposter?a=NxVON"><img src="http://feeds.feedburner.com/~f/fxposter?i=NxVON" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=31c5n"><img src="http://feeds.feedburner.com/~f/fxposter?i=31c5n" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=L99gn"><img src="http://feeds.feedburner.com/~f/fxposter?i=L99gn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=SvyxN"><img src="http://feeds.feedburner.com/~f/fxposter?i=SvyxN" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/fxposter/~4/467736320" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/11/28/mysql-51/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=fxposter&amp;itemurl=http%3A%2F%2Fblog.fxposter.org%2F2008%2F11%2F28%2Fmysql-51%2F</feedburner:awareness></item>
		<item>
		<title>Data Mapper на PHP</title>
		<link>http://blog.fxposter.org/2008/10/13/data-mapper-in-php/</link>
		<comments>http://blog.fxposter.org/2008/10/13/data-mapper-in-php/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 21:23:24 +0000</pubDate>
		<dc:creator>FX Poster</dc:creator>
		
		<category><![CDATA[Программирование]]></category>

		<category><![CDATA[Работа]]></category>

		<category><![CDATA[Data Mapper]]></category>

		<category><![CDATA[ORM]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=580</guid>
		<description><![CDATA[Начинаю писать Data Mapper на PHP. На вопрос &#8220;почему&#8221; всего лишь 2 ответа - &#8220;хочется&#8221; и &#8220;нужен по работе простой, но удобный ORM&#8221;. Кто захочет присоединиться и в свободное время помогать мне его развивать - милости прошу.
На данный момент это всё находится в ОЧЕНЬ начальной стадии - ничего не работает, да и как будут работать [...]]]></description>
			<content:encoded><![CDATA[<p>Начинаю писать <a href="http://martinfowler.com/eaaCatalog/dataMapper.html">Data Mapper</a> на PHP. На вопрос &#8220;почему&#8221; всего лишь 2 ответа - &#8220;хочется&#8221; и &#8220;нужен по работе простой, но удобный ORM&#8221;. Кто захочет присоединиться и в свободное время помогать мне его развивать - милости прошу.</p>
<p>На данный момент это всё находится в ОЧЕНЬ начальной стадии - ничего не работает, да и как будут работать некоторые вещи я еще не решил. Сейчас работа с бд строиться через mysqli, переход на PDO или поддержка других СУБД не планируется (но если кто-нибудь захочет - сделаем, там не так уж и много работы).</p>
<p>Текущее состояние можно будет посмотреть в <a href="http://svn2.assembla.com/svn/datamapper">SVN</a>. Тем, кто захочет помочь, нужно будет зарегистрироваться на Assembla и сказать мне свой логин.</p>
<p>Буду ОЧЕНЬ рад обсудить технические стороны проекта, а также его нужность.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/fxposter?a=TQPaM"><img src="http://feeds.feedburner.com/~f/fxposter?i=TQPaM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=ICZcm"><img src="http://feeds.feedburner.com/~f/fxposter?i=ICZcm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=wf9Um"><img src="http://feeds.feedburner.com/~f/fxposter?i=wf9Um" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=2SVjM"><img src="http://feeds.feedburner.com/~f/fxposter?i=2SVjM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/fxposter/~4/418892262" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/10/13/data-mapper-in-php/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=fxposter&amp;itemurl=http%3A%2F%2Fblog.fxposter.org%2F2008%2F10%2F13%2Fdata-mapper-in-php%2F</feedburner:awareness></item>
		<item>
		<title>Nokia 5800</title>
		<link>http://blog.fxposter.org/2008/10/03/nokia-5800/</link>
		<comments>http://blog.fxposter.org/2008/10/03/nokia-5800/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 11:44:07 +0000</pubDate>
		<dc:creator>FX Poster</dc:creator>
		
		<category><![CDATA[Мобильная жизнь]]></category>

		<category><![CDATA[Nokia 5800]]></category>

		<category><![CDATA[Nokia E61]]></category>

		<category><![CDATA[Nokia E71]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=576</guid>
		<description><![CDATA[Уже давно ищу интересную замену своему старенькому E61. До вчерашнего дня собирался брать N79 - более-менее нормальный экран, хорошая камера, WiFi, S60 FP3. Думаю, к середине-концу декабря его можно было бы взять за ~450$, максимум 500$ (при стартовой стоимости в 350 евро), но вчера произошло нечто неожиднное, по крайней мере для меня - состоялся анонс [...]]]></description>
			<content:encoded><![CDATA[<p>Уже давно ищу <strong>интересную</strong> замену своему старенькому <a href="http://www.mobile-review.com/phonemodels/nokia/nokia-e61.shtml">E61</a>. До вчерашнего дня собирался брать <a href="http://www.nseries.com/index.html#l=products,n79,landing,news">N79</a> - более-менее нормальный экран, хорошая камера, WiFi, S60 FP3. Думаю, к середине-концу декабря его можно было бы взять за ~450$, максимум 500$ (при стартовой стоимости в 350 евро), но вчера произошло нечто неожиднное, по крайней мере для меня - <a href="http://mobile-review.com/review/nokia-5800.shtml">состоялся анонс 5800</a>. О телефоне я знал и раньше, но как-то не особо на него посматривал - изначально он мне виделся очень дорогой штучкой, не более того. Но после прочтения анонса я понял - это то, что я хотел.</p>
<p>Мне от телефона на самом деле нужно немногое:</p>
<ul>
<li>Хороший, большой дисплей (хотя бы 2.4&#8243;)</li>
<li>WiFi</li>
<li>Скорость работы, а то с этим у E61наблюдаются некоторые проблемы</li>
</ul>
<p>Но главное, как я уже отметил выше, телефон должен быть в первую очередь <strong>интересным</strong> для меня. Под словом &#8220;интересный&#8221; я понимаю какие-нибудь фишки телефона, непохожесть на то, что у меня было раньше, камеру хотелось бы в телефоне всё-таки. :) Вот <a href="http://www.mobile-review.com/phonemodels/nokia/nokia-e71.shtml">E71</a> - замечательный телефон, но&#8230; В общем он мало отличается от E61 - да, там много новых фишек, но&#8230; кардинальной разницы между E61 и E71 я не вижу. Как продолжатель идеи - замечательный телефон, а в остальном&#8230;</p>
<p>В общем - увидел я 5800 на фотках, на видео и понял - это то, что я хочу. Знакомая Symbian S60 на новый лад, с новыми фичами, новым, большим и качественным дисплеем, разьемом для наушником (да, это я тоже хочу). И самое главное - стартовая официальная цена должна составлять 279 евро, т.е. ~400$ (ну пусть даже 450 - всё равно). Это просто замечательно!</p>
<p>В общем и целом - сейчас я жду полноценный обзор телефона. Хотелось бы услышать что-нибудь об удобстве ввода - это единственное, что меня пока немного смущает. А в остальном - если я не увижу до середины декабря <a href="http://www.t-mobileg1.com/">T-Mobile G1</a> в свободной продаже у нас в городе за приемлемые деньги (скажем, 500$) - не задумываясь куплю 5800.</p>
<p><em><strong>PS</strong>. Давно не писал - нет ни времени, ни особого желания. Но буду стараться.</em></p>
<p><em><strong>PPS</strong>. Спеки есть <a href="http://www.forum.nokia.com/devices/5800_XpressMusic">на форуме Nokia</a>.</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/fxposter?a=7oaIM"><img src="http://feeds.feedburner.com/~f/fxposter?i=7oaIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=tYkwm"><img src="http://feeds.feedburner.com/~f/fxposter?i=tYkwm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=3zfvm"><img src="http://feeds.feedburner.com/~f/fxposter?i=3zfvm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=L6TBM"><img src="http://feeds.feedburner.com/~f/fxposter?i=L6TBM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/fxposter/~4/410181078" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/10/03/nokia-5800/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=fxposter&amp;itemurl=http%3A%2F%2Fblog.fxposter.org%2F2008%2F10%2F03%2Fnokia-5800%2F</feedburner:awareness></item>
		<item>
		<title>День программиста</title>
		<link>http://blog.fxposter.org/2008/09/12/programmer-day/</link>
		<comments>http://blog.fxposter.org/2008/09/12/programmer-day/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 22:57:37 +0000</pubDate>
		<dc:creator>FX Poster</dc:creator>
		
		<category><![CDATA[Разное]]></category>

		<category><![CDATA[Праздники]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=570</guid>
		<description><![CDATA[С днем программиста, коллеги. :)
]]></description>
			<content:encoded><![CDATA[<p>С днем программиста, коллеги. :)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/fxposter?a=pLzzL"><img src="http://feeds.feedburner.com/~f/fxposter?i=pLzzL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=ISQql"><img src="http://feeds.feedburner.com/~f/fxposter?i=ISQql" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=vWnGl"><img src="http://feeds.feedburner.com/~f/fxposter?i=vWnGl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=vhuCL"><img src="http://feeds.feedburner.com/~f/fxposter?i=vhuCL" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/fxposter/~4/390095284" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/09/12/programmer-day/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=fxposter&amp;itemurl=http%3A%2F%2Fblog.fxposter.org%2F2008%2F09%2F12%2Fprogrammer-day%2F</feedburner:awareness></item>
		<item>
		<title>D-Link DIR-400 (часть 3)</title>
		<link>http://blog.fxposter.org/2008/09/07/d-link-dir-400-part-3/</link>
		<comments>http://blog.fxposter.org/2008/09/07/d-link-dir-400-part-3/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 15:02:41 +0000</pubDate>
		<dc:creator>FX Poster</dc:creator>
		
		<category><![CDATA[Разное]]></category>

		<category><![CDATA[D-Link DIR-400]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=565</guid>
		<description><![CDATA[Предыдущий пост про DIR-400.
Итак, я собрасля перепрошивать свой рутер неофициальной прошивкой&#8230; что я, собственно, и сделал. Между гарантией и стабильной работой я выбрал последнее и ни разу не пожалел о содеянном.
Установка прошивки DD-WRT v24 SP1
Инструкция по установке была взята отсюда, я приведу её здесь в вольном переводе и с моими комментариями:

Скачиваем все файлы отсюда, всё [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.fxposter.org/2008/08/22/d-link-dir-400-part-2/">Предыдущий пост про DIR-400</a>.</p>
<p>Итак, я собрасля перепрошивать свой рутер неофициальной прошивкой&#8230; что я, собственно, и сделал. Между гарантией и стабильной работой я выбрал последнее и ни разу не пожалел о содеянном.</p>
<h3>Установка прошивки DD-WRT v24 SP1</h3>
<p>Инструкция по установке была взята <a href="http://www.dd-wrt.com/wiki/index.php/Installation#D-Link_Dir-400">отсюда</a>, я приведу её здесь в вольном переводе и с моими комментариями:</p>
<ol>
<li>Скачиваем все файлы <a href="http://www.dd-wrt.com/dd-wrtv3/dd-wrt/downloads.html">отсюда</a>, всё кладем в одну директорию, и распаковываем tftpsrv.zip в ту же директорию. После чего в ней должно находиться минимум 3 файла: tftpsrv.exe, dir400-firmware.bin, linux.bin.</li>
<li>Скачиваем <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">Putty</a>.</li>
<li>Изменяем IP рутера на 192.168.0.1 (по умолчанию оно на этот IP и так настроено, но если это не так - нужно поставить ), а IP вашего компьютера на 192.168.0.2. А маску подсети ставим в обоих случаях в 255.255.255.0.</li>
<li>Выключаем рутер из сети (но оставляем подключенным к компу). Запускаем Putty и настраиваем на telnet-сессию с ip = 192.168.0.1 и port = 9000, но <strong>еще не коннектимся</strong>.</li>
<li>Запускаем в консоли <code>ping 192.168.0.1 -n 900</code> и подключаем рутер к сети.</li>
<li>Консоль отводим на задний план, но так, чтобы её было видно, на передний выводим Putty. Когда в консоли выведется два успешных пинга к рутеру - запускаем telnet-сессию в Putty (какая-то ерунда, в общем, до двух или после трех пингов к рутеру уже сконнектится будет нельзя). После того, как сконнектились - можно отключать пингование (Ctrl-C).</li>
<li>Если не получилось сконнектится - переходим к пункту 4.</li>
<li>Запускаем tftpsrv.exe (если не помним, что это такое - переходим к пункту 1).</li>
<li>Теперь мы будем работать исключительно с Putty.</li>
<li>Вводим <code>ip_address -l 192.168.0.1/24 -h 192.168.0.2</code> (когда я перепрошивал в этой строке был бок). Enter:
<pre><code>RedBoot&gt; ip_address -l 192.168.0.1/24 -h 192.168.0.2
IP: 192.168.0.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.0.2</code></pre>
</li>
<li>Вводим <code>fis init</code> и Enter:
<pre><code>RedBoot&gt; fis init
About to initialize [format] FLASH image system - continue (y/n)?</code></pre>
</li>
<li>Вводим <code>y</code> и снова нажимаем Enter. Ждем-с&#8230;
<pre><code>About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
And a descriptor for the configuration data size = 10000
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .</code></pre>
</li>
<li>Вводим <code>load -r -b 0x80041000 linux.bin</code>. Enter.
<pre><code>RedBoot&gt; load -r -b 0x80041000 linux.bin
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x803bafff, assumed entry at 0x80041000</code></pre>
</li>
<li>Вводим <code>fis create linux</code>. Enter. Снова ждем. :)
<pre><code>RedBoot&gt; fis create linux
... Erase from 0xbfc40000-0xbffba000: ........................................................
... Program from 0x80041000-0x803bb000 at 0xbfc40000: ........................................................
prog_ok
flash_addr = 0xbfc40000
mem_addr = 0x80041000
entry_addr = 0x80041000
length = 0x37a000
img_size = 0x37a000
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . </code></pre>
</li>
<li>Вводим <code>fconfig</code>. Enter.
<pre><code>RedBoot&gt; fconfig
Run script at boot: true</code></pre>
</li>
<li>Enter.
<pre><code>Run script at boot: true
Boot script:
.. fis load -l linux
.. exec
Enter script, terminate with empty line</code></pre>
</li>
<li>Вводим <code>fis load -l linux</code>. Enter.
<pre><code>&gt;&gt; fis load -l linux</code></pre>
</li>
<li>Вводим <code>exec</code>. Enter.
<pre><code>&gt;&gt; exec</code></pre>
</li>
<li>Enter.
<pre><code>&gt;&gt;
Boot script timeout (1000ms resolution): 2</code></pre>
</li>
<li>Enter.
<pre><code>Use BOOTP for network configuration: false</code></pre>
</li>
<li>Enter.
<pre><code>Gateway IP address:</code></pre>
</li>
<li>Enter.
<pre><code>Local IP address: 192.168.0.1</code></pre>
</li>
<li>Enter.
<pre><code>Local IP address mask: 255.255.255.0</code></pre>
</li>
<li>Enter.
<pre><code>Default server IP address: 192.168.0.100</code></pre>
</li>
<li>Enter.
<pre><code>Console baud rate: 9600</code></pre>
</li>
<li>Enter.
<pre><code>GDB connection port: 9000</code></pre>
</li>
<li>Enter.
<pre><code>Force console for special debug messages: false</code></pre>
</li>
<li>Enter.
<pre><code>Network debug at boot time: false</code></pre>
</li>
<li>Enter.
<pre><code>Update RedBoot non-volatile configuration - continue (y/n)?</code></pre>
</li>
<li>Вводим <code>y</code>. Enter.
<pre><code>Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .</code></pre>
</li>
<li>Вводим <code>reset</code>. Enter.
<pre><code>RedBoot&gt; reset</code></pre>
</li>
</ol>
<p>Рутер начнет перезагружаться, но Putty остается &#8220;висеть&#8221;. Я на всякий случай подождал 2 минуты и выключил Putty.</p>
<p>Рутер будет доступен по адресу 192.168.1.1, соответственно, нужно будет изменить настройки сети на компьютере (например, изменить IP на 192.168.1.2).</p>
<p>Всё. Перед нами полноценно работающий рутер, доступный как по веб интерфейсу, так и через telnet (потом можно будет настроить SSH) по адресу 192.168.1.1, а также имеющий полноценный линукс внутри. :)</p>
<p>Пользуйтесь. Был рад помочь.</p>
<p><em>Вышеописанные действия приведут к потери гарантии на рутер. Пользуйтесь инструкцией на свой страх и риск. Автор не несет ответственности за приход в негодность Вашего оборудования в связи с выполнением вышеописанных действий.</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/fxposter?a=1QNIL"><img src="http://feeds.feedburner.com/~f/fxposter?i=1QNIL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=v751l"><img src="http://feeds.feedburner.com/~f/fxposter?i=v751l" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=hYqHl"><img src="http://feeds.feedburner.com/~f/fxposter?i=hYqHl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=b5MIL"><img src="http://feeds.feedburner.com/~f/fxposter?i=b5MIL" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/fxposter/~4/385842554" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/09/07/d-link-dir-400-part-3/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=fxposter&amp;itemurl=http%3A%2F%2Fblog.fxposter.org%2F2008%2F09%2F07%2Fd-link-dir-400-part-3%2F</feedburner:awareness></item>
		<item>
		<title>Google Chrome</title>
		<link>http://blog.fxposter.org/2008/09/02/google-chrome/</link>
		<comments>http://blog.fxposter.org/2008/09/02/google-chrome/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 20:28:20 +0000</pubDate>
		<dc:creator>FX Poster</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<category><![CDATA[Chrome]]></category>

		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=556</guid>
		<description><![CDATA[Качаем.
Впечатлений у меня не очень много - браузер как браузер. Дизайн приятный, юзабилити тоже на уровне. Ожидал увидеть приросты в скорости исполнения JS, но как-то не увидел:

Firefox 3.0.1

Google Chrome
Да, &#8220;Хром&#8221; в среднем быстрее, местами в два раза, но тотального превосходства (в несколько раз), которое я надеялся увидеть, нет. :(
Несмотря на этот тест, работа с Gmail, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.google.com/chrome/">Качаем</a>.</p>
<p>Впечатлений у меня не очень много - браузер как браузер. Дизайн приятный, юзабилити тоже на уровне. Ожидал увидеть приросты в скорости исполнения JS, но как-то не увидел:</p>
<p><a href="http://blog.fxposter.org/wp-content/uploads/2008/09/slickspeed_firefox_3.png"><img class="alignnone size-medium wp-image-558" title="Slickspeed Firefox 3" src="http://blog.fxposter.org/wp-content/uploads/2008/09/slickspeed_firefox_3-300x9.png" alt="" width="300" height="9" /></a></p>
<p>Firefox 3.0.1</p>
<p><a href="http://blog.fxposter.org/wp-content/uploads/2008/09/slickspeed_google_chrome.png"><img class="alignnone size-medium wp-image-559" title="Slickspeed Google Chrome" src="http://blog.fxposter.org/wp-content/uploads/2008/09/slickspeed_google_chrome-300x11.png" alt="" width="300" height="11" /></a></p>
<p>Google Chrome</p>
<p>Да, &#8220;Хром&#8221; в среднем быстрее, местами в два раза, но тотального превосходства (в несколько раз), которое я надеялся увидеть, нет. :(</p>
<p>Несмотря на этот тест, работа с Gmail, по ощущениям, стала быстрее. Может, меня глючит, а может действительно работа с JS оптимизирована, но заметно это не на всём.</p>
<p>Часто посещаемые сайти и автокомплит omniweb&#8217;а понравились - действительно удобные и приятные штучки, к которым даже не нужно привыкать - просто берешь и пользуешься - всё привычно. А также хочется отметить исключительную плавность всего происходящего - лёгкость и отсутствие всего лишнего в браузере подкупают, даже несмотря на то, что я привык к FF, в котором установлено не так уж мало плагинов.</p>
<p>Что ж, на мой взгляд, в полку хороших браузеров прибыло. Особенно радует то, что это пополнение никак негативно не скажется на web-программистах - затачиваться под &#8220;Хром&#8221; не нужно, так как движок рендеринга в нём - всем известный Webkit, используемый в Safari, отличий в рендеринге между браузерами не заметил, так что всё замечательно.</p>
<p><em><strong>PS</strong>. Если вы не тестируете свои браузеры на Safari-compability - пора, да. Уже пора. :)</em></p>
<p><strong>Update</strong>: Ну не совсем всё, конечно. Лично мне не хватает аналога &#8220;autoscrolling&#8221;-а из Firefox, а также плавного скроллинга оттуда же. В настройках тут я этого не нашел.</p>
<p><em><strong>PPS</strong></em><em>. Браузер запускается просто моментально, кстати!</em></p>
<p><strong>Update</strong>: Google Spreadsheets в &#8220;Хроме&#8221; глючат, по крайней мере у меня. Нажимаю на ячейку - выбирается ячейка, выше выбранной на 2 строки, нажимаю на самую верхнюю ячейку в столбце - выделяется весь столбец. :(</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/fxposter?a=lfi9ML"><img src="http://feeds.feedburner.com/~f/fxposter?i=lfi9ML" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=Fs0oVl"><img src="http://feeds.feedburner.com/~f/fxposter?i=Fs0oVl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=67jE9l"><img src="http://feeds.feedburner.com/~f/fxposter?i=67jE9l" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=67KwtL"><img src="http://feeds.feedburner.com/~f/fxposter?i=67KwtL" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/fxposter/~4/381678406" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/09/02/google-chrome/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=fxposter&amp;itemurl=http%3A%2F%2Fblog.fxposter.org%2F2008%2F09%2F02%2Fgoogle-chrome%2F</feedburner:awareness></item>
		<item>
		<title>Наследование шаблонов в Symfony</title>
		<link>http://blog.fxposter.org/2008/08/26/template-inheritance-in-symfony/</link>
		<comments>http://blog.fxposter.org/2008/08/26/template-inheritance-in-symfony/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 17:54:36 +0000</pubDate>
		<dc:creator>FX Poster</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<category><![CDATA[Программирование]]></category>

		<category><![CDATA[Работа]]></category>

		<category><![CDATA[Django]]></category>

		<category><![CDATA[Symfony]]></category>

		<category><![CDATA[Template Inheritance]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=554</guid>
		<description><![CDATA[Вопрос, так, невзначай. Хотели бы вы аналог получить в Symfony аналог наследования шаблонов из Django?
PS. Палюсь&#8230; Ой как палюсь. :)
]]></description>
			<content:encoded><![CDATA[<p>Вопрос, так, невзначай. Хотели бы вы аналог получить в Symfony аналог наследования шаблонов из Django?</p>
<p><em><strong>PS</strong>. Палюсь&#8230; Ой как палюсь. :)</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/fxposter?a=YCcuDK"><img src="http://feeds.feedburner.com/~f/fxposter?i=YCcuDK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=uK9Ykk"><img src="http://feeds.feedburner.com/~f/fxposter?i=uK9Ykk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=vj7rfk"><img src="http://feeds.feedburner.com/~f/fxposter?i=vj7rfk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=7fWMJK"><img src="http://feeds.feedburner.com/~f/fxposter?i=7fWMJK" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/fxposter/~4/375417209" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/08/26/template-inheritance-in-symfony/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=fxposter&amp;itemurl=http%3A%2F%2Fblog.fxposter.org%2F2008%2F08%2F26%2Ftemplate-inheritance-in-symfony%2F</feedburner:awareness></item>
		<item>
		<title>Наследование шаблонов в Smarty</title>
		<link>http://blog.fxposter.org/2008/08/26/template-inheritance-in-smarty/</link>
		<comments>http://blog.fxposter.org/2008/08/26/template-inheritance-in-smarty/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 10:12:48 +0000</pubDate>
		<dc:creator>FX Poster</dc:creator>
		
		<category><![CDATA[Разное]]></category>

		<category><![CDATA[Django]]></category>

		<category><![CDATA[Smarty]]></category>

		<category><![CDATA[Symfony]]></category>

		<category><![CDATA[View]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=552</guid>
		<description><![CDATA[На Хабре появилась замечательная статья &#8220;Наследование шаблонов в Smarty&#8220;. Впервые эта штука мне встретилась в Django, теперь вот есть и для Smarty. Посмотрел на систему view в Symfony&#8230; Эх&#8230; Для реализации подобного, навскидку, прийдется довольно сильно переделать внутренности этого фреймворка.
]]></description>
			<content:encoded><![CDATA[<p>На Хабре появилась замечательная статья &#8220;<a href="http://habrahabr.ru/blogs/php/37962/">Наследование шаблонов в Smarty</a>&#8220;. Впервые эта штука мне встретилась в Django, теперь вот есть и для Smarty. Посмотрел на систему view в Symfony&#8230; Эх&#8230; Для реализации подобного, навскидку, прийдется довольно сильно переделать внутренности этого фреймворка.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/fxposter?a=g6hYxK"><img src="http://feeds.feedburner.com/~f/fxposter?i=g6hYxK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=JXWduk"><img src="http://feeds.feedburner.com/~f/fxposter?i=JXWduk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=WxN7Sk"><img src="http://feeds.feedburner.com/~f/fxposter?i=WxN7Sk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/fxposter?a=p7ERBK"><img src="http://feeds.feedburner.com/~f/fxposter?i=p7ERBK" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/fxposter/~4/375092136" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/08/26/template-inheritance-in-smarty/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=fxposter&amp;itemurl=http%3A%2F%2Fblog.fxposter.org%2F2008%2F08%2F26%2Ftemplate-inheritance-in-smarty%2F</feedburner:awareness></item>
	<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetFeedData?uri=fxposter</feedburner:awareness></channel>
</rss>
