<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title></title>
  <link rel="alternate" href="http://monkeycode.ru/"></link>
  <id>http://monkeycode.ru/</id>
  <updated>2010-09-09T06:42:14Z</updated>
<entry>
  <title>Скачивание файлов с именем на русском языке (кириллице)</title>
  <link rel="alternate" href="http://monkeycode.ru/code/91"></link>
  <author>
    <name>monkeykong</name>
  </author>
  <id>91</id>
  <summary type="html">Если по FTP на сайт закачаны файлы с кириллическими именами, то скачивание напрямую может не работать из-за кириллицы. Все зависит от кодировок сервера и сайта.
Например кодировки сайта &quot;windows-1251&quot;.

Решение задачи без переименовывания файлов и правки php скриптов на примере файлов с расширением &quot;.doc&quot;.
В .htaccess: 
RewriteRule ^(.*\.doc)$ download.php?file=$1
В download.php приведенный выше код.
Так же может пригодится rawurldecode (применять только к отдельным сегментам uri)</summary>
</entry>
<entry>
  <title>$obj = new SomeClass() vs. $obj =&amp; new SomeClass()</title>
  <link rel="alternate" href="http://monkeycode.ru/code/90"></link>
  <author>
    <name>admin</name>
  </author>
  <id>90</id>
  <summary type="html">Итог: явное присваивание по ссылке &amp; в php5 не играет большой роли, только усложняет чтение кода</summary>
</entry>
<entry>
  <title>For vs. While</title>
  <link rel="alternate" href="http://monkeycode.ru/code/89"></link>
  <author>
    <name>admin</name>
  </author>
  <id>89</id>
  <summary type="html">Итог: цикл for действительно чуть-чуть быстрее</summary>
</entry>
<entry>
  <title>Real programmers don't comment their code</title>
  <link rel="alternate" href="http://monkeycode.ru/code/88"></link>
  <author>
    <name>monkeykong</name>
  </author>
  <id>88</id>
  <summary type="html">&quot;Real programmers don't comment their code. 
If it was hard to write, it should be hard to understand.&quot;</summary>
</entry>
<entry>
  <title>Подстава от php4</title>
  <link rel="alternate" href="http://monkeycode.ru/code/87"></link>
  <author>
    <name>admin</name>
  </author>
  <id>87</id>
  <summary type="html">Если переделать конструктор в php5 синтаксисе, то можно словить фатал:
class Object {
    public __construct(){
        ...
    }
...
}</summary>
</entry>
<entry>
  <title>Арифметические операции с символьными переменными</title>
  <link rel="alternate" href="http://monkeycode.ru/code/86"></link>
  <author>
    <name>admin</name>
  </author>
  <id>86</id>
  <summary type="html">Ответом будет: u0
Разъяснения: Оказывается, пыха разбирает регистры по отдельности, задавая каждому регистру свой диапазон из набора 0-9, a-z, A-Z. Так, я думал, что к 9 будет прибавлена единичка, 9 должна была стать a, как первый символ диапазона a-z. Оказалось, что он циклит их отдельно, и к 9 он прибавил 1, перевалив за границу диапазона 0-9, установил в этот регистр первый символ своего диапазона 0-9, накинув на соседний регистр единичку. Так получилось &quot;u0&quot;. 
http://juick.com/post?body=%23765002%2F8+</summary>
</entry>
<entry>
  <title>Интересные конструкции в php</title>
  <link rel="alternate" href="http://monkeycode.ru/code/85"></link>
  <author>
    <name>admin</name>
  </author>
  <id>85</id>
  <summary type="html">Т.е. если первая часть false, то остальная часть не выполняется</summary>
</entry>
<entry>
  <title>Странная логика</title>
  <link rel="alternate" href="http://monkeycode.ru/code/84"></link>
  <author>
    <name>admin</name>
  </author>
  <id>84</id>
  <summary type="html">почему не использовать 
if(isset($this-&gt;criteria)) 
или 
if(isset($this-&gt;criteria)) 
или
if($this-&gt;criteria instanceOf SOMEOBJECT)</summary>
</entry>
<entry>
  <title>И невозможное возможно!</title>
  <link rel="alternate" href="http://monkeycode.ru/code/83"></link>
  <author>
    <name>monkeykong</name>
  </author>
  <id>83</id>
  <summary type="html">Навеяно постом &quot;SQL в Битриксе&quot; :)</summary>
</entry>
<entry>
  <title>SQL в Битриксе</title>
  <link rel="alternate" href="http://monkeycode.ru/code/82"></link>
  <author>
    <name>monkeykong</name>
  </author>
  <id>82</id>
  <summary type="html">Один из 80 ти запросов, генерируемых страницей на сайте на битриксе.
Впрочем и друпал бывает нещаден к БД.</summary>
</entry>
<entry>
  <title>Download файлов</title>
  <link rel="alternate" href="http://monkeycode.ru/code/81"></link>
  <author>
    <name>admin</name>
  </author>
  <id>81</id>
  <summary type="html">Реализация в одном из маленьких проектов.</summary>
</entry>
<entry>
  <title>Malbolge - максимально запутанный и неудобный для понимания язык</title>
  <link rel="alternate" href="http://monkeycode.ru/code/80"></link>
  <author>
    <name>admin</name>
  </author>
  <id>80</id>
  <summary type="html">Эта программа на Malbolge отображает «Hello, world». 
http://ru.wikipedia.org/wiki/Malbolge</summary>
</entry>
<entry>
  <title>Задача на знание php</title>
  <link rel="alternate" href="http://monkeycode.ru/code/79"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>79</id>
  <summary type="html">Не сложно догадаться каков будет ответ.
Но в большом проекте сложно быстро отследить такие ошибки, просидел все утро с var_dump-ми</summary>
</entry>
<entry>
  <title>Ruby-Python-Perl-Lua-OCaml-Haskell-C-Java-Brainfuck-Whitespace-Unlambda Квайн</title>
  <link rel="alternate" href="http://monkeycode.ru/code/78"></link>
  <author>
    <name>monkeykong</name>
  </author>
  <id>78</id>
  <summary type="html">Воодушевляющий квайн, японского производства (http://d.hatena.ne.jp/ku-ma-me/20090916/p1)
Запускать так.
$ ruby QuineRelay.rb &gt; QuineRelay.py
$ python QuineRelay.py &gt; QuineRelay.pl
$ perl QuineRelay.pl &gt; QuineRelay.lua
$ lua QuineRelay.lua &gt; QuineRelay.ml
$ ocaml QuineRelay.ml &gt; QuineRelay.hs
$ runghc QuineRelay.hs &gt; QuineRelay.c
$ gcc -Wall -o QuineRelay QuineRelay.c &amp;&amp; ./QuineRelay &gt; QuineRelay.java
$ javac QuineRelay.java &amp;&amp; java QuineRelay &gt; QuineRelay.bf
$ beef QuineRelay.bf &gt; QuineRelay.ws
$ wspace QuineRelay.ws &gt; QuineRelay.unl
$ unlambda QuineRelay.unl &gt; QuineRelay2.rb

Программа на руби генерирует программу на питоне, которая генерирует программу на перле, которая генерирует программу на Lua, которая генерирует программу на окамле, которая генерирует на хаскелле, которая генерирует на Ц, которая генерирует на яве, которая генерирует на брейнфаке, которая генерирует на Whitespace, которая генерирует на Unlambda, которая генерирует исходную программу снова на руби.
</summary>
</entry>
<entry>
  <title>Язык программирования Brainfuck</title>
  <link rel="alternate" href="http://monkeycode.ru/code/77"></link>
  <author>
    <name>monkeykong</name>
  </author>
  <id>77</id>
  <summary type="html">Программа на языке Brainfuck, печатающая «Hello World!»</summary>
</entry>
<entry>
  <title>Прикольные комментарии 2</title>
  <link rel="alternate" href="http://monkeycode.ru/code/76"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>76</id>
</entry>
<entry>
  <title>Прикольные комментарии 1</title>
  <link rel="alternate" href="http://monkeycode.ru/code/75"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>75</id>
  <summary type="html">Других возможностей послать email нет, но комментарий просит не использовать эти функции.
В одном из старых проектов.
</summary>
</entry>
<entry>
  <title>Use turbo speed!</title>
  <link rel="alternate" href="http://monkeycode.ru/code/74"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>74</id>
  <summary type="html">Люблю прикольные названия функций и переменных.
В фреймворке Recess.</summary>
</entry>
<entry>
  <title>Code Monkey hymn</title>
  <link rel="alternate" href="http://monkeycode.ru/code/73"></link>
  <author>
    <name>monkeykong</name>
  </author>
  <id>73</id>
  <summary type="html">Всем Code Monkey посвящается!
http://www.jonathancoulton.com/2006/04/14/thing-a-week-29-code-monkey/comment-page-7/</summary>
</entry>
<entry>
  <title>Y-Combinator в PHP</title>
  <link rel="alternate" href="http://monkeycode.ru/code/72"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>72</id>
  <summary type="html">Загадочная функция предназначение и работу которой я до сих пор не могу понять.
Работает только в php5.3 
Подробнее http://php100.wordpress.com/2009/04/13/php-y-combinator/</summary>
</entry>
<entry>
  <title>перенаправление вывода одновременно на экран и в файл </title>
  <link rel="alternate" href="http://monkeycode.ru/code/71"></link>
  <author>
    <name>linuxoid</name>
  </author>
  <id>71</id>
  <summary type="html">Иногда бывает полезно сохранить вывод в файл для последующего просмотра и анализа сообщений.</summary>
</entry>
<entry>
  <title>количество файлов и каталогов в директории </title>
  <link rel="alternate" href="http://monkeycode.ru/code/70"></link>
  <author>
    <name>linuxoid</name>
  </author>
  <id>70</id>
</entry>
<entry>
  <title>Установка meta html данных в symfony 1.2</title>
  <link rel="alternate" href="http://monkeycode.ru/code/69"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>69</id>
</entry>
<entry>
  <title>Удаление файлов по маске</title>
  <link rel="alternate" href="http://monkeycode.ru/code/68"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>68</id>
</entry>
<entry>
  <title>Монтирование файловой системы по ssh</title>
  <link rel="alternate" href="http://monkeycode.ru/code/67"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>67</id>
</entry>
<entry>
  <title>Динамическое изменение layout  в symfony 1.2</title>
  <link rel="alternate" href="http://monkeycode.ru/code/66"></link>
  <author>
    <name>admin</name>
  </author>
  <id>66</id>
</entry>
<entry>
  <title>Валидатор телефонного номера в symfony 1.2</title>
  <link rel="alternate" href="http://monkeycode.ru/code/65"></link>
  <author>
    <name>admin</name>
  </author>
  <id>65</id>
</entry>
<entry>
  <title>Twitto - &quot;совершенный&quot; framework</title>
  <link rel="alternate" href="http://monkeycode.ru/code/64"></link>
  <author>
    <name>admin</name>
  </author>
  <id>64</id>
  <summary type="html">twitto.org</summary>
</entry>
<entry>
  <title>Как разрезать текстовый файл построчно</title>
  <link rel="alternate" href="http://monkeycode.ru/code/63"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>63</id>
  <summary type="html">Можно в любом скриптовом языке прогнать в цикле эту строку указывая начало и конец куска. В данном случае это 1 и 1000.</summary>
</entry>
<entry>
  <title>Шаблон проектирования Strategy</title>
  <link rel="alternate" href="http://monkeycode.ru/code/62"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>62</id>
  <summary type="html">Как обрабатывать группу или композицию структур обьектов одновременно?
Решение - определить классы для композитных и атомарных обьектов таким образом, чтобы они реализовывали один и тот же интерфейс.</summary>
</entry>
<entry>
  <title>Шаблон проектирования Factory</title>
  <link rel="alternate" href="http://monkeycode.ru/code/61"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>61</id>
  <summary type="html">Единственным уточнением может быть введение единого интерфейса для всех классов из папки 'Drivers/', а также модификатора private или protected для конструктора класса Example:
private __construct Example(){}

Взято с http://www.php.net/manual/ru/language.oop5.patterns.php</summary>
</entry>
<entry>
  <title>Шаблон проектирования Singleton</title>
  <link rel="alternate" href="http://monkeycode.ru/code/60"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>60</id>
  <summary type="html">Хрестоматийный пример шаблона проектирования Singleton на php5.
Взято с http://www.php.net/manual/ru/language.oop5.patterns.php</summary>
</entry>
<entry>
  <title>&quot;Красота кода&quot;</title>
  <link rel="alternate" href="http://monkeycode.ru/code/59"></link>
  <author>
    <name>admin</name>
  </author>
  <id>59</id>
  <summary type="html">Самое интересное здесь (не для слобонервных)
http://pyha.ru/forum/topic/1483.0</summary>
</entry>
<entry>
  <title>Лишние проверки усложняют код</title>
  <link rel="alternate" href="http://monkeycode.ru/code/57"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>57</id>
  <summary type="html">Зачем проверять что $oInstance есть объект класса Router, когда $oInstance есть protected.

Взято с движка со скандального движка http://livestreet.ru/</summary>
</entry>
<entry>
  <title>Быдло проверка существования email-адреса</title>
  <link rel="alternate" href="http://monkeycode.ru/code/55"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>55</id>
  <summary type="html">Собственно товарищи из студии &quot;Синий птеродатиль&quot; отжигают не по детски.
http://netbird.ru/articles/view/email_verification

Сколько можно изобретать велосипед
http://ru2.php.net/manual-lookup.php?pattern=dns</summary>
</entry>
<entry>
  <title>криптомаразм</title>
  <link rel="alternate" href="http://monkeycode.ru/code/54"></link>
  <author>
    <name>haligali</name>
  </author>
  <id>54</id>
  <summary type="html">В нашей конторе как-то думали над методами запутывания кода, при сохранении его в открытом виде.

Из всех предложенных решений верхом совершенства был признан следующий метод: имена всех переменных и функций заменяются на символы подчеркивания. А чтоб не перепуталось, каждой переменной присваивается собственное количество подчеркиваний.

$attempt_no = $___, $email = $____, $login = $_____, $pass = $______, crypt() = ____() и так далее.

Представляешь себе код?</summary>
</entry>
<entry>
  <title>Всеядный php</title>
  <link rel="alternate" href="http://monkeycode.ru/code/52"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>52</id>
  <summary type="html">навеяно цитатой:
Destruction: PHP - он сцуко всеядный, в плане типов данных. Если прикажешь - он тебе правду на 10 умножит, или ложь на пополам поделит..!

http://bash.org.ru/quote/395688</summary>
</entry>
<entry>
  <title>&quot;Русская Рулетка&quot; или доработанный &quot;Патч Бармина&quot;</title>
  <link rel="alternate" href="http://monkeycode.ru/code/51"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>51</id>
  <summary type="html">Перед игрой желательно запастись успокаительным или пузырем водки.
Выполнять команду нужно исключительно под рутом и после нажатия enter иди пить &lt;подставить_свой_напиток&gt;.

</summary>
</entry>
<entry>
  <title>Незатейливый скрипт для нубов</title>
  <link rel="alternate" href="http://monkeycode.ru/code/50"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>50</id>
  <summary type="html">Рекомендуется выполнять от рута
Хорошее описание на http://lurkmore.ru/Rm_-rf</summary>
</entry>
<entry>
  <title>Подстраховка</title>
  <link rel="alternate" href="http://monkeycode.ru/code/49"></link>
  <author>
    <name>admin</name>
  </author>
  <id>49</id>
</entry>
<entry>
  <title>HTML-код в предпросмотре не виден</title>
  <link rel="alternate" href="http://monkeycode.ru/code/47"></link>
  <author>
    <name>haligali</name>
  </author>
  <id>47</id>
  <summary type="html">HTML-код в предпросмотре не виден, но появляется в html коде страницы.
Надо заменять &lt;&gt; на &amp;lt;&amp;gt;, хотя типа кода html то и нету.</summary>
</entry>
<entry>
  <title>косяк на главной в фоксе 2.0</title>
  <link rel="alternate" href="http://monkeycode.ru/code/46"></link>
  <author>
    <name>haligali</name>
  </author>
  <id>46</id>
</entry>
<entry>
  <title>Определение константы</title>
  <link rel="alternate" href="http://monkeycode.ru/code/44"></link>
  <author>
    <name>broderix</name>
  </author>
  <id>44</id>
  <summary type="html">В одном из крупных проектов</summary>
</entry>
<entry>
  <title>test</title>
  <link rel="alternate" href="http://monkeycode.ru/code/43"></link>
  <author>
    <name>shaelf</name>
  </author>
  <id>43</id>
  <summary type="html">foo</summary>
</entry>
<entry>
  <title>Зарплата реального программера</title>
  <link rel="alternate" href="http://monkeycode.ru/code/40"></link>
  <author>
    <name>monkeyking</name>
  </author>
  <id>40</id>
</entry>
</feed>