php5.com.ua - мы знаем о PHP все http://www.php5.com.ua ru info@php5.com.ua php5.com.ua - мы знаем о PHP все <![CDATA[Продается сайт w2.com.ua]]> http://www.php5.com.ua/blog/php-programming/189.html http://www.php5.com.ua/blog/php-programming/189.html /** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .php.php {color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;} .php.php a:link {color: #000060;} .php.php a:hover {background-color: #f0f000;} .php.php .imp {font-weight: bold; color: red;} .php.php .kw1 {color: #b1b100;} .php.php .kw2 {color: #000000; font-weight: bold;} .php.php .kw3 {color: #990000;} .php.php .co1 {color: #666666; font-style: italic;} .php.php .co2 {color: #666666; font-style: italic;} .php.php .co3 {color: #0000cc; font-style: italic;} .php.php .co4 {color: #0000ff; font-style: italic;} .php.php .coMULTI {color: #666666; font-style: italic;} .php.php .es_h {color: #000099; font-weight: bold;} .php.php .es_h {color: #000099; font-weight: bold;} .php.php .br0 {color: #009900;} .php.php .sy0 {color: #339933;} .php.php .st0 {color: #0000ff;} .php.php .st_h {color: #0000ff;} .php.php .nu0 {color: #cc66cc;} .php.php .nu8 {color: #208080;} .php.php .nu12 {color: #208080;} .php.php .nu19 {color:#800080;} .php.php .me1 {color: #004000;} .php.php .me2 {color: #004000;} .php.php .re0 {color: #000088;} .php.php span.xtra { display:block; }
Ко мне обратился мой товарищ с просьбой разместить объявление о продаже его детища. Долгое время он поддерживал данный ресурс своим сайтом и с него шел отличный трафик. Ниже объявление:


Добрый день, уважаемые читатели.

Продаю сайт http://w2.com.ua/

Долгое время я и команда единомышленников поддерживали его, за время существования с 2007 года, проект стал одним из самых посещаемых блогов об интернете в Украине.

Сейчас настало время, когда мы хотим сосредоточится на других проектах. А http://w2.com.ua/ отдать тому, кто сможет сделать его еще лучше.

Это совершенно не значит что если я его не продам, то закрою. Мы и дальше будем его поддерживать. Просто мы утратили былой интерес и я верю найдется человек который сможет вывести его на совершенно новый уровень, сделать его интересней.

О сайте

Web 2.0 magazine — интернет издание, ежедневно рассказывающее о событиях в мире Веб 2.0, о социальных сетях и стартапах, о слияних& поглощениях, внутренностях больших и маленьких компаний, а также, о многом-многом другом из жизни Веба нового поколения.

На сегодняшний день на сайте зарегистрировано более 10 тыс. пользователей.

Сайт посещает более 2500 человек в день (см. статистику Bigmir).

Технические требования: PHP, MySQL.

Цена

Я хочу получить за сайт $3000, цену готов обсуждать. Сайт приносит небольшой, но все же доход.

Основной проблемой является отсутствие времени. Из-за этого нет возможности плотнее работать с аудиторией. Брать интервью, выступать с аналитическими докладами на barcamp, привлекать новых авторов.

Как связаться

Mail — info@w2.com.ua
Телефон — +380 98 692 77 98 (на этот номер смс не приходят, только звонить)
Skype -andrei.vasiliadi

Спасибо за внимание!
Буду благодарен если Вы расскажете своим друзьям, кому проект может быть интересен, а он своим.]]>
Fri, 11 Feb 2011 00:06:45 +0200 igorok объявление
<![CDATA[Суровые будни]]> http://www.php5.com.ua/blog/fun/181.html http://www.php5.com.ua/blog/fun/181.html ]]> Thu, 21 Oct 2010 17:22:23 +0300 igorok работа IE <![CDATA[Юмор о девелоперах]]> http://www.php5.com.ua/blog/fun/176.html http://www.php5.com.ua/blog/fun/176.html

]]>
Fri, 24 Sep 2010 16:53:06 +0300 igorok видео работа
<![CDATA[Смешные комментарии в коде]]> http://www.php5.com.ua/blog/fun/175.html http://www.php5.com.ua/blog/fun/175.html /** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .php.php {color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;} .php.php a:link {color: #000060;} .php.php a:hover {background-color: #f0f000;} .php.php .imp {font-weight: bold; color: red;} .php.php .kw1 {color: #b1b100;} .php.php .kw2 {color: #000000; font-weight: bold;} .php.php .kw3 {color: #990000;} .php.php .co1 {color: #666666; font-style: italic;} .php.php .co2 {color: #666666; font-style: italic;} .php.php .co3 {color: #0000cc; font-style: italic;} .php.php .co4 {color: #0000ff; font-style: italic;} .php.php .coMULTI {color: #666666; font-style: italic;} .php.php .es_h {color: #000099; font-weight: bold;} .php.php .es_h {color: #000099; font-weight: bold;} .php.php .br0 {color: #009900;} .php.php .sy0 {color: #339933;} .php.php .st0 {color: #0000ff;} .php.php .st_h {color: #0000ff;} .php.php .nu0 {color: #cc66cc;} .php.php .nu8 {color: #208080;} .php.php .nu12 {color: #208080;} .php.php .nu19 {color:#800080;} .php.php .me1 {color: #004000;} .php.php .me2 {color: #004000;} .php.php .re0 {color: #000088;} .php.php span.xtra { display:block; }
/*
 * OK; before you read the following code know what I am trying to do.
 * I needed to get the list of child catagories from the root node so that
 * the root node didn't appear in the selection box. But for some stupid
 * fucking reason the stupid fucking DBA wont let me access the items using
 * indices and I instead have to use their stupid fucking Iterator
 * implementation. So there.
 */

$firstList = $this->getRootNode()->getChildren();
foreach ($firstList as $node)
{
    $nodes = $node->getChildren();
    break;                // wtf?
}


// if i ever see this again i'm going to start bringing guns to work


//hack for ie browser (assuming that ie is a browser)


/**
* For the brave souls who get this far: You are the chosen ones,
* the valiant knights of programming who toil away, without rest,
* fixing our most awful code. To you, true saviors, kings of men,
* I say this: never gonna give you up, never gonna let you down,
* never gonna run around and desert you. Never gonna make you cry,
* never gonna say goodbye. Never gonna tell a lie and hurt you.
*/


//
// Dear maintainer:
//
// Once you are done trying to 'optimize' this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
//
// total_hours_wasted_here = 16
//


// TODO: Fix this. Fix what?


// no comments for you
// it was hard to write
// so it should be hard to read


// I will give you two of my seventy-two virgins if you can fix this.


options.BatchSize = 300; //Madness? THIS IS SPARTA!


// I am not responsible of this code.
// They made me write it, against my will.


//Dear future me. Please forgive me.
//I can't even begin to express how sorry I am.


double penetration; // ouch


# To understand recursion, see the bottom of this file.


Что пишут в футерах:


# To understand recursion, see the top of this file.


//I am not sure why this works but it fixes the problem.


//somedev1 - 6/7/02 Adding temporary tracking of Logic screen
//somedev2 - 5/22/07 Temporary my ass


/*
 * You may think you know what the following code does.
 * But you dont. Trust me
 * Fiddle with me, and youll spend many a sleppless
 * night cursing the moment you thought you be clever
 * enough to "optimize" the code below.
 * Now close this file and go play with something else.


// drunk, fix later


// Magic. Do not touch.


// I dedicate all this code, all my work, to my wife, Darlene, who will
// have to support me and our three children and the dog once it gets
// released into the public


Exception up = new Exception("Something is really wrong.");
throw up; //ha ha


//When I wrote this, only God and I understood that I was doing
//Now, God only knows
]]>
Wed, 22 Sep 2010 16:02:46 +0300 igorok программирование работа комментарии
<![CDATA[IT-ишникам]]> http://www.php5.com.ua/blog/perepost/174.html http://www.php5.com.ua/blog/perepost/174.html Обращение Михаила Бродского. У меня нет слов.

Хочу напомнить вам, как мы пришли к ставке в 1000 грн.

Сначала было предложение всех IT-ишников вообще исключить из единого налога и запретить им заниматься ВЭД.

Дальше были большие встречи с представителями отрасли, обсуждения, споры. Мы изучили конкурентную среду и решили оставить ВЭД. IT-ишники тогда соглашались на ставку в 1500 грн.

А потом началось нытье, стоны, возмущения. В результате оставили ставку 1000 грн и разрешили ВЭД. А вы теперь так себя ведёте…

Ещё не поздно. Может поставить ставку 600 грн и отменить ВЭД?

А те, кто плачет, что 300 тысяч оборота — это мало, переходите на общую форму. 3 млн грн. без налога на прибыль — прекрасные условия для бизнеса. Что же вам не нравиться? Налог на прибыль — 0%!… А НДС — это не ваши деньги. Ни химичить не нужно, ни придумывать ничего. Работай себе честно и все.

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

Источник и обсуждение здесь: http://mihailobrodskiy.livejournal.com/446127.html

Как все начиналось: http://php5.com.ua/blog/perepost/168.html]]>
Tue, 21 Sep 2010 14:40:10 +0300 igorok работа программист налоги закон
<![CDATA[Не будите программиста]]> http://www.php5.com.ua/blog/perepost/169.html http://www.php5.com.ua/blog/perepost/169.html
Не знаю полезно это или нет — отвлечься вот так от работы на почти целый месяц. Я пока не понял какой это возъимеет эффект на производительность труда. Зато во время отпуска я понял кое что о чём много раньше думал и никак не мог осознать.

Меня всегда мучал вопрос — как объяснить людям никогда не занимавшимся такого рода трудом, каким занимаюсь я то что вот происходит у меня и у таких как я в голове когда мы работаем. Как НЕ программисту представить себе работу программиста и понять наконец чего же происходит и как вообще с этим быть.

И вот я кажется понял. Наверное именно благодаря тому что почти на целый месяц выключился из этого процесса, но помнил что скоро придётся вернуться у нему опять.

Ну вобщем хватит предъистории. Как работает программист.

Работа программиста — это СОН.

Звучит нелепо, правда?

Если вы хотите представить что именно делает программист во время работы, то легче всего это представить именно так. Он спит!

Продукт труда программиста это продукт сна — химера. Сновидение записанное специальным языком и переданное электронному устройству для того чтобы продолжаться там когда программист уже проснулся или просто сменил один сон на другой.

Это вы думаете что программист взял задачу, написал программу и задача решилась. Всё не так.

Если взять к примеру задачу нахождения пути выхода из лабиринта. Программист в решении этой задачи не перст который ведёт воображаемую маленькую заблудившуюся девочку незнакомой тропой к выходу. Он и не эта девочка тоже. И не стены лабиринта. Он не выход который надо найти. Он всё это вместе разом.

Для решения задачи программисту приходится стать в своём сознании и лабиринтом, и искомым выходом, и заблудившейся девочкой, и тем перстом что ведёт её куда-то, и теми камушками которые она разбрасывает по дороге чтобы узнавать уже пройденные места. Всё это СНИТСЯ программисту во время работы.

Я не фигурально выражаюсь. Это БУКВАЛЬНО снится. Программист при решении задачи виртуально живёт в создаваемом мире химер, похожих каким-то образом на условия решаемой задачи.

Внешне наблюдение за работающим программистом это тоже самое что наблюдение за спящим человеком. Вы вот сразу засыпаете когда решаете отойти ко сну?

Большинство людей процесс засыпания воспринимают как определённый ритуал. У кого-то он довольно короткий, а у кого-то довольно сложный и длинный. У кого что. Кому-то надо непременно почитать перед сном, кто-то не засыпает если тридцать приседаний не выполнит перед тем как лечь. Так или иначе отход ко сну у каждого происходит по своему и это не просто ЧИК — и заснул. Хотя бывает у некоторых и так.

Вот тоже самое и в работе программиста. Процесс начала работы это тоже самое. Программист не может просто сесть и начать работать точно также как вот вы не можете сказать себе «СПИ УЖЕ СКОРЕЙ!» и отключиться. И общего какого-то способа тоже нет, как нет его в ритуале засыпания.

Кто-то вот считает баранов, которые будучи вызваны к жизни этим вот самым процессом счёта вынуждены потом как-то дальше жить у нас здесь в Новой Зеландии. А кто-то фантазирует. Кто-то следит за своим дыханием, а кто-то просто прилепит чаю с ромашкой и готов.

Это ведь ещё и меняется со временем. Сегодня вот вы легли спать и всё — уже сладкие грёзы. А завтра ворочаетесь час, два, три и ну никак. Тоже самое и в работе программиста. буквально тоже самое.

Ну и что делать всвязи с этим?

Ну скажем так. Если вы НЕ программист и вы каким-то образом заинтересованы впрямую или косвено в том чтобы он производил-таки продукт своего труда, то вам надлежит понять вот это всё хоть в какой-то более-менее мере.

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

Представили?

Вот это именно так выглядит для нас — программистов. БУКВАЛЬНО ТАК.

Это вам со стороны кажется что вы просто подошли и спросили который час.

А давайте я вас подойду и спрошу в три часа ночи который час?
Чего страшного-то? Ну и что такого что вы только что заснули?
Я просто спрошу, вы ответите и спите дальше. Чего такого-то?

Так легче понять я думаю будет. На таком примере.

Вот вы представляйте что от вашего сна зависит ВСЁ! Всё при всё. Вот от того как вы сегодня поспите зависит будет завтра чего дома жрать или нет. Зависит будет ваша дочть замужем или нет. Вырастет ваш сын неудачником или добьётся чего-то в жизни. Всё это зависит от того как продуктивно вы сегодня поспите.

Представили?

И вот вы собираетесь начать этот сон. Этот вот самый сон от которого ВСЁ зависит и вы это отчётливо осознаёте.

Скажите вот теперь. Как насчёт спать и одновременно немножко, краем глаза разговаривать, чуть чуть помогать сыну решать арифметику, немножко подглядывать в телевизор и чуть чуть так совсем немного съездить в магазин? Не на долго…

Как спится, сладко?

Вот теперь подумайте что происходит с программистом к которому раза два-три в час подходят и просят чего-то подсказать, чего-то помочь там вот и тут, чего-то просят его где-то заполнить, отметить и ещё о чём-то не забыть.

Вы бы так смогли КАЖДЫЙ ДЕНЬ?

Ну тоесть каждый день вот вы ложитесь спать ЗНАЯ что от вашего сна зависит всё при всё при всё и даже больше. И вот в процессе вашего сна происходит вот это всё — напоминания, запоминания, помогания, звонки, разговоры посторонние под ухом и всё такое. И так каждую ночь. Как вам такая жизнь?

Хотите?

Призодите работать программистом в нашу контору. Получите в полной мере!

Хотя не всё так трагично. Конечно есть люди которые способны кимарить просто постоянно. Водители такие бывают что чуть-ли не на каждом сфетофоре способны чуток вздремнуть. Ну вы знаете — им чуть бибикнуть приходится чтобы вернуть к жизни. Наверняка вы знакомы с такой ситуацией.

Ну так вот и программисты тоже такие бывают. Они всегда находятся в состоянии близком ко сну. Чуть не мешает никто — сразу «брык» и в сон. Не глубоко, только на чуть чуть. Особо серьёзных никаких химер не успеешь понагрезить, но чуть-чуть немножко слабо-туманных вполне успеешь. Вот в такой сон.

Именно так и производится большая часть программного продукта. Она производится людьми которые либо вообще не понимают что они делают, либо теми кто в силу каких-то причин просто не может погрузиться в сон достаточно глубоко. Соответственные и результаты.

Ну потому что отвлекают постоянно. Потому что БУДЯТ же бля постоянно! Потому что люди не понимают что ты же спишь и что их ебучая менеджерская «организационная» активность она на самом деле только мешает работать. Большинство людей НЕ программистов этого не понимают.

Я надеюсь что осознав аналогию работы программиста со сном может быть люди лучше поймут как надо обходиться с программистами и откуда вообще берутся хорошие программы. Поймут наконец что вот этот ебучий ЖЖ — это то что пишу и читаю ПЕРЕД СНОМ. Вот также как вы. Вы не можете спать пока неначитаетесь или пока телевизор не насмотритесь. Не можете ведь?

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

Хотите хороших программ?

Хотите чтобы ваш муж-программист был успешен и заработал все деньги?

Хотите чтобы ваши подчинённые программисты наконец-то сделали всё как надо?

Тогда вот вам простой рецепт:

НЕ БУДИТЕ СЛИШКОМ ЧАСТО ПРОГРАММИСТА!

Источник: http://alexthunder.livejournal.com/290612.html]]>
Wed, 25 Aug 2010 15:54:08 +0300 igorok программист работа отпуск
<![CDATA[Обсуждение проекта Налогового Кодекса в ГосКомПредпринимательства]]> http://www.php5.com.ua/blog/perepost/168.html http://www.php5.com.ua/blog/perepost/168.html
От чиновников были: керівник служби Віце-прем’єр-міністра України з питань економіки, Воробей С. И., голова Держкомпідприємництво України, Бродский М.Ю.

От компаний: АктівМедиа, lemon.ua, Мірасофт Груп, Софт-Индастри, Сіклум, представитель Ukrainian Hi-Tech Initiative и АПІТУ. Я официально представлял интересы фрилансеров и самозанятых.

Не было представителей ИТ Украина. Они вроде бы как лоббируют свои интересы через другой комитет и поэтому вероятно не пришли на эту встречу. Напомню, что месяц назад состоялась первая встреча с ИТ.

Встреча заняла чуть больше двух часов. Первые минут 30 Бродский рассказывал, что будет в НК и почему. По его словам, та версия, что была опубликована в Урядовом Кур’єрі уже безнадежно устарела. Это был первый сюрприз.

Дальше началось обсуждение. Собственно, обсуждением это можно назвать с некоторой натяжкой, в том смысле, что нас проинформировали о том, что будет, но честно сказали, что никаких предложений от нас не ждут и не принимают.

Тем не менее, обсуждение было и в общем довольно эффективное. Хорошо, чтобы было где-то 10 человек, так что «базар-вокзала» не было.

Суть изменений (по отношению к той редакции, что была опубликована):

1. Деятельность в сфере автоматизации и ВЭД на упрощенке оставят, но только для одной категории — ИТ. При этом будет и специальная «акционная» цена, 1500 грн единого налога в месяц. Лимит — 300 тыс. грн. При превышении лимита автоматически переводят на общую систему налогообложения. Платеж в ПФ (320 грн) тоже остается, т.е. получается 1820 грн.
2. Для не-ИТ будет ставка единого налога от 200 до 600 грн плюс ПФ.
3. Для ИТ уберут пункт 12.1 (требование о том, что на одного заказчика/клиента для СПД разрешено не более 50% дохода за 3-6-9 месяцев).
4. Для юрлиц на упрощенке будет два варианта: 3 млн плюс 0% на прибыль на пять лет («дает лично Янукович») плюс 5% налог на дивиденды и второй вариант — 2 млн и 5% с оборота.

В твиттере меня спрашивали, откуда взялась цифра в 1,5 тыс. грн единого. Объясняю как я это понял.

Средняя зарплата шахтера абстрактного рабочего это 4 тыс. грн. Он платит 53% налогов — ФОТ + НДФЛ. Программисты получают больше и если бы работали как сотрудники платили бы 4-5 тыс. грн. Мы понимаем, что они такие деньги платить не будем, поэтому компромисс — возможность работать на едином налоге, но будьте добры платить 1,5 тыс. грн. Разница в цене с «обычным» единым в 600 грн за привилегию вести ВЭД плюс ИТ.

Компании пытались поторговаться. Вот только чтобы торговаться, нужны рычаги давления, а с этим проблемы. Тем не менее, предложение было такое: оставьте 600 грн единого для ИТ, но запретите ВЭД для физлиц. Тогда ВЭД будет вести украинская компания-юрлицо и работать по привычной схеме с СПД, но платить 600 грн вместо 1500. На это получили категорическое нет, хотя в какой-то момент мне показалось, что ВЭД действительно могут забрать.

Еще над одним предложением пообещали подумать. Вариант следующий: 6% с оборота вместо 1500 грн, при этом компании-юрлица не смогут относить на валовые расходы операции за наличный расчет, только безнал. Т.е. смысл в том, что компании будут платить СПД на 2600* и соответственно эти потоки легко проконтролировать. При этом 6% от 15 тыс. грн это 900 грн, а не 1500. Какая-то, но экономия. Насколько мне показалось, шансы что это пройдет совсем небольшие.

Если доход меньше 10 тыс. грн то физлицам предлагают не оформляться как СПД на едином, а оформляться как независимое самозанятое лицо и платить 15% НДФЛ.

По срокам — по-прежнему считается, что новый НК вступит в действие с 1-го января 2011, максимум — со второго квартала.

Вопрос о том, где и когда можно будет увидеть новую версию НК остался без ответа.

По лимиту в 300 тыс. грн — нам сказали, что это требование МВФ. И если мы хотим его убрать придется сначала вернуть 15 млрд. долларов МВФ. Все тот же пресловутый МВФ оказывается вообще требовал убрать упрощенку, но ее «отстояли».

Такие дела. Выводы: так или иначе, платить будем в разы больше. Как именно все будет работать и что конкретно будет с ВЭД и физиками — пока до конца непонятно.

Комментарии других участников ожидаются, дополню по мере поступления.

UPDATE: Размышления на тему.
Несколько раз включался тезис о том, что государство пытается создать равные условия для бизнеса. При этом наличие упрощенной vs. общей системы налогообложения – это уже неравные условия. Упрощенка появилась только потому, что нагрузка в 55% на общей системе просто делает невозможной легальную работу многих видов бизнеса.

С отчислениями в ПФ кстати ровно то же. Система у нас солидарная — т.е. отчисления, которые мы делаем сегодня идут сегодняшним пенсионерам, а не плательщику как будущему пенсионеру. Иными словами, если у вас нет родственников пенсионеров вы автоматически в неравных условиях с теми, у кого такие родственники есть. Т.е. сирота платит вообще непонятно за кого и по сути это не ПФ, а просто еще один налог.

А вот вместо того, чтобы решать системную проблему, мы лепим новые патчи. Отдельно для ИТ, отдельно для рекламщиков, отдельно для торговцев. Любой программист знает, к чему это в итоге приводит.

Источник: http://www.developers.org.ua/archives/max/2010/08/16/mihailobrodskiy-2/]]>
Tue, 17 Aug 2010 16:52:38 +0300 igorok налоги программист жизнь закон
<![CDATA[Scroll плагин для Jquery]]> http://www.php5.com.ua/blog/javascript-programming/167.html http://www.php5.com.ua/blog/javascript-programming/167.html хороший плагин для Jquery]]> Tue, 17 Aug 2010 14:46:15 +0300 igorok jquery scroll plugin <![CDATA[Установка Zend Framework на Denwer]]> http://www.php5.com.ua/blog/shpargalki/165.html http://www.php5.com.ua/blog/shpargalki/165.html http://www.denwer.ru/
2. Качаем пакет расширений http://www.denwer.ru/packages/php5.html
3. Ставим.
4. Пробуем инициализировать PEAR запускаем \usr\local\php5\go-pear.bat если ошибка does not have a signature тогда меняем файл. Изменения выделены.

===========================================================================
@ECHO OFF
set PHP_BIN=php.exe
%PHP_BIN% -d phar.require_hash=0 -d output_buffering=0 PEAR\go-pear.phar
pause
===========================================================================

Запускаем снова и следуем указаниям скрипта.

5. pear channel-discover pear.zfcampus.org
6. pear install zfcampus/zf

Тестируем: zf show version => Zend Framework Version: 1.10.0]]>
Mon, 05 Jul 2010 23:30:02 +0300 igorok zend framework установка denwer
<![CDATA[Java 4-ever]]> http://www.php5.com.ua/blog/fun/164.html http://www.php5.com.ua/blog/fun/164.html ]]> Wed, 30 Jun 2010 14:11:20 +0300 igorok java видео <![CDATA[3 июля в Киеве пройдет конференция по Symfony]]> http://www.php5.com.ua/blog/news/163.html http://www.php5.com.ua/blog/news/163.html Конференция Symfony Camp UA 2010

Программа
08:30 — Начало регистрации участников
1 час

09:30 — Открытие конференции
30 мин

10:00 — LESS, SASS, HAML: 4 буквы, изменившие frontend development
Константин Кудряшов
30 мин

10:30 — Многоязычные сайты на Symfony. Проблемы и их решения
Игорь Бровченко
30 мин

11:00 — Symfony как платформа для open-source проектов, (Sympal, Apostrophe, Diem)
Александр Демченко
30 мин

11:30 — Кофе-брейк
30 мин

12:00 — Сontinuous Integration для Symfony
Игорь Бровченко
30 мин

12:30 — Перевод боевого сайта с ветки 1.0 на ветку 1.4
Руслан Ханов
30 мин

13:00 — Философия сервисов. Практическое применение в Symfony 1.3/1.4
Николай Зык
25 мин

13:25 — Автоматизируем деплоймент проекта с помощью Capistrano
Константин Кудряшов
20 мин

13:45 — Перевыв на обед
1 час

14:45 — Symfony Task – задачи батча (пакетной обработки). Как использовать, как улучшить
Александр Безрученко
30 мин

15:15 — Кастомизация генераторов в Symfony 1.3/1.4. Эффективное управление функционалом и структурой плагинов
Николай Зык
30 мин

15:45 — Внедрение компонента templating + Twig в существующий проект
Станислав Сметанин
30 мин

16:15 — Кофе-брейк
30 мин

16:45 — Symfony 2 – перезагрузка?
Александр Демченко
30 мин

17:15 — Этапы разработки реального проекта на Symfony 2 + Doctrine 2
Александр Скорней
30 мин

17:45 — Закрытие конференции]]>
Tue, 29 Jun 2010 11:39:26 +0300 igorok конференция symfony
<![CDATA[Зачем нужен IPad ([:|||:] - баян)]]> http://www.php5.com.ua/blog/fun/158.html http://www.php5.com.ua/blog/fun/158.html темы об использовании IPad, предлагаю вашему вниманию старый добрый баян.

]]>
Thu, 08 Apr 2010 09:23:43 +0300 igorok ipad баян
<![CDATA[Зачем нужен IPad и как ним пользоваться]]> http://www.php5.com.ua/blog/fun/155.html http://www.php5.com.ua/blog/fun/155.html ]]> Tue, 06 Apr 2010 16:35:33 +0300 igorok apple ipad видео <![CDATA[Согласен]]> http://www.php5.com.ua/blog/fun/154.html http://www.php5.com.ua/blog/fun/154.html ]]> Thu, 18 Mar 2010 17:36:19 +0200 igorok учиться программирование c++ <![CDATA[Загрузка файла при помощи Ajax]]> http://www.php5.com.ua/blog/shpargalki/152.html http://www.php5.com.ua/blog/shpargalki/152.html /** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .php.php {color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;} .php.php a:link {color: #000060;} .php.php a:hover {background-color: #f0f000;} .php.php .imp {font-weight: bold; color: red;} .php.php .kw1 {color: #b1b100;} .php.php .kw2 {color: #000000; font-weight: bold;} .php.php .kw3 {color: #990000;} .php.php .co1 {color: #666666; font-style: italic;} .php.php .co2 {color: #666666; font-style: italic;} .php.php .co3 {color: #0000cc; font-style: italic;} .php.php .co4 {color: #0000ff; font-style: italic;} .php.php .coMULTI {color: #666666; font-style: italic;} .php.php .es_h {color: #000099; font-weight: bold;} .php.php .es_h {color: #000099; font-weight: bold;} .php.php .br0 {color: #009900;} .php.php .sy0 {color: #339933;} .php.php .st0 {color: #0000ff;} .php.php .st_h {color: #0000ff;} .php.php .nu0 {color: #cc66cc;} .php.php .nu8 {color: #208080;} .php.php .nu12 {color: #208080;} .php.php .nu19 {color:#800080;} .php.php .me1 {color: #004000;} .php.php .me2 {color: #004000;} .php.php .re0 {color: #000088;} .php.php span.xtra { display:block; } Как отправить файл на сервер аяксом.

Имеем форму:
<form method='post' enctype='multipart/form-data'>
<input type="file" id="imf" name="imf"/>
<input type="button" id="Save"/>
</form>

Отправляем методом пост содержимое файла и имя файла. Замечу, что данные придут в переменной $_POST. Далее, используя fwrite пишем файл, куда надо.
$("#Save").live("click", function(){

var photo = document.getElementById("imf");
var file  = photo.files[0];

   $.post('/user/saveNewPhoto', {'imf':file.getAsDataURL(), fname:file.fileName }, function( data ){
   alert ( data );
    });

});

На больших файлах не опробовано.]]>
Thu, 25 Feb 2010 10:20:48 +0200 igorok file jquery post JavaScript
<![CDATA[Польский говнокод]]> http://www.php5.com.ua/blog/govnokod/150.html http://www.php5.com.ua/blog/govnokod/150.html /** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .php.php {color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;} .php.php a:link {color: #000060;} .php.php a:hover {background-color: #f0f000;} .php.php .imp {font-weight: bold; color: red;} .php.php .kw1 {color: #b1b100;} .php.php .kw2 {color: #000000; font-weight: bold;} .php.php .kw3 {color: #990000;} .php.php .co1 {color: #666666; font-style: italic;} .php.php .co2 {color: #666666; font-style: italic;} .php.php .co3 {color: #0000cc; font-style: italic;} .php.php .co4 {color: #0000ff; font-style: italic;} .php.php .coMULTI {color: #666666; font-style: italic;} .php.php .es_h {color: #000099; font-weight: bold;} .php.php .es_h {color: #000099; font-weight: bold;} .php.php .br0 {color: #009900;} .php.php .sy0 {color: #339933;} .php.php .st0 {color: #0000ff;} .php.php .st_h {color: #0000ff;} .php.php .nu0 {color: #cc66cc;} .php.php .nu8 {color: #208080;} .php.php .nu12 {color: #208080;} .php.php .nu19 {color:#800080;} .php.php .me1 {color: #004000;} .php.php .me2 {color: #004000;} .php.php .re0 {color: #000088;} .php.php span.xtra { display:block; }
if($rs===false){
        $rs='false';
}
elseif($rs=="dup"){
        $rs = "dup";
}
elseif($rs=="bad_link"){
        $rs = "bad_link";
}
else{
        $rs = 'true';
}
]]>
Tue, 19 Jan 2010 14:23:51 +0200 igorok говнокод php
<![CDATA[Асинхронность с помощью fastcgi_finish_request()]]> http://www.php5.com.ua/blog/php-programming/148.html http://www.php5.com.ua/blog/php-programming/148.html /** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .php.php {color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;} .php.php a:link {color: #000060;} .php.php a:hover {background-color: #f0f000;} .php.php .imp {font-weight: bold; color: red;} .php.php .kw1 {color: #b1b100;} .php.php .kw2 {color: #000000; font-weight: bold;} .php.php .kw3 {color: #990000;} .php.php .co1 {color: #666666; font-style: italic;} .php.php .co2 {color: #666666; font-style: italic;} .php.php .co3 {color: #0000cc; font-style: italic;} .php.php .co4 {color: #0000ff; font-style: italic;} .php.php .coMULTI {color: #666666; font-style: italic;} .php.php .es_h {color: #000099; font-weight: bold;} .php.php .es_h {color: #000099; font-weight: bold;} .php.php .br0 {color: #009900;} .php.php .sy0 {color: #339933;} .php.php .st0 {color: #0000ff;} .php.php .st_h {color: #0000ff;} .php.php .nu0 {color: #cc66cc;} .php.php .nu8 {color: #208080;} .php.php .nu12 {color: #208080;} .php.php .nu19 {color:#800080;} .php.php .me1 {color: #004000;} .php.php .me2 {color: #004000;} .php.php .re0 {color: #000088;} .php.php span.xtra { display:block; } При оптимизации приложения важно не забывать о том, что оптимизируем мы прежде всего для клиента. Сайт, который работает медленно, это всегда неудобно и плохо.

Главный критерий оптимизации для клиента — это скорость ответа (т.е. время, за которое Web сервер отвечает на запрос). Если не брать во внимание клиентскую оптимизацию, есть ряд практик, позволяющих быстрее генерировать ответ клиенту (по сути без оптимизации внутренностей).

Одна из распространенных практик — это переводить необязательную для ответа часть логики в асинхронную обработку. Для этой задачи применяются очереди сообщений.

Если Вы счастливый обладатель связки PHP + PHP-FPM, то существует более простой (хотя и несколько ограниченный) подход для реализации асинхронности. После сборки патча php-fpm, Вам станет доступна функция:

fastcgi_finish_request();

После ее вызова из скрипта, php-fpm получает сигнал о завершении запроса (т.е. отправляет ответ Web серверу), но сам скрипт не завершается. Т.е. вся логика, которая находится после вызова этой функции будет выполнена на фоне.

Для примера рассмотрим задачу отправки письма (зачастую, весьма медленный процесс):

$to = $_POST['to'];
$body = $_POST['body'];
$subject = $_POST['subject'];

if ( $to && $body && $subject )
{
        echo 'Ваше письмо успешно отправлено';
        # После этой инструкции посетителю уйдет ответ
        fastcgi_finish_request();
        # Сама отправка будет выполнена на фоне
        mail($to, $subject, $body);
}
else
{
        echo 'Вы не ввели все необходимые данные';
}

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

Вам приходилось пользоваться fastcgi_finish_request(), и если да, то в каких случаях?]]>
Tue, 22 Dec 2009 11:33:47 +0200 igorok оптимизация php fastcgi
<![CDATA[Переход от php4 к php5 (Статические члены класса. Исключения, определённые пользователем. Пространства имен)]]> http://www.php5.com.ua/blog/php-programming/146.html http://www.php5.com.ua/blog/php-programming/146.html /** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .php.php {color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;} .php.php a:link {color: #000060;} .php.php a:hover {background-color: #f0f000;} .php.php .imp {font-weight: bold; color: red;} .php.php .kw1 {color: #b1b100;} .php.php .kw2 {color: #000000; font-weight: bold;} .php.php .kw3 {color: #990000;} .php.php .co1 {color: #666666; font-style: italic;} .php.php .co2 {color: #666666; font-style: italic;} .php.php .co3 {color: #0000cc; font-style: italic;} .php.php .co4 {color: #0000ff; font-style: italic;} .php.php .coMULTI {color: #666666; font-style: italic;} .php.php .es_h {color: #000099; font-weight: bold;} .php.php .es_h {color: #000099; font-weight: bold;} .php.php .br0 {color: #009900;} .php.php .sy0 {color: #339933;} .php.php .st0 {color: #0000ff;} .php.php .st_h {color: #0000ff;} .php.php .nu0 {color: #cc66cc;} .php.php .nu8 {color: #208080;} .php.php .nu12 {color: #208080;} .php.php .nu19 {color:#800080;} .php.php .me1 {color: #004000;} .php.php .me2 {color: #004000;} .php.php .re0 {color: #000088;} .php.php span.xtra { display:block; } Начало:
http://php5.com.ua/blog/php-programming/133.html
http://php5.com.ua/blog/php-programming/134.html
http://php5.com.ua/blog/php-programming/135.html

Статические члены класса


Статические члены и статические методы могут использоваться для реализации того, что в ООП называется «методы класса» и «переменные класса».

«Статическим методом класса» называют метод, который можно вызвать без создания объекта этого класса.
«Переменной класса» называют переменную, к которой можно обратиться без создания объекта этого класса (и метод доступа при этом не потребуется).

Пример: методы класса и переменные класса
<?php
class calculator {
  static public $pi = 3.14151692;

  static public function add($x,$y) {
    return $x + $y;
  }
}

$s = calculator::$pi;
$result = calculator::add(3,7);
print("$result");
?>

Исключения — это общепринятый подход к обработке ошибок и неожиданных ситуаций в таких языках как Java и C++; в PHP5 перехват исключений реализован с помощью пары «try» — «catch».

Пример: Исключения
<?php class foo {

  function divide($x,$y) {
    if($y==0) throw new Exception("деление на ноль недопустимо");
    return $x/$y;
  }
}

$x = new foo();

try {
  $x->divide(3,0);  
} catch (Exception $e) {
    echo $e->getMessage();
    echo "\n<br />\n";
    // Какие-нибудь драконовские меры
}
?>


Как вы видите, «try» используется для обозначения блока, в котором находятся ошибки, обрабатываемые оператором «catch», стоящим в конце блока. В блоке «catch» вам нужно реализовать вашу собственную политику обработки ошибок. В итоге получаем удобочитаемый код и всего один блок обработки ошибок.

Исключения, определённые пользователем


Для обработки непредвиденных проблем в ваших программах вы можете определить ваши собственные исключения. Всё, что вам нужно — это просто дополнить (extend) класс Exception, определив конструктор класса и метод getMessage.

Пример: Исключения, определённые пользователем

<?php
class WeirdProblem extends Exception {

   private $data;

   function WeirdProblem($data) {
        parent::exception();
        $this->data = $data;
    }

    function getMessage() {
        return $this->data . " вызвало какое-то странное исключение!";
    }
}
?>


Потом, для возбуждения определённого вами исключения используйте конструкцию throw new WeirdProblem($foo); если исключение происходит внутри блока try{}, то PHP5 передаст управление в «catch»-блок для обработки.

Пространства имён


В целях удобства классы и функции могут быть сгруппированы в пространства имён (namespaces).

Примечение: разработчики отказались от поддрежки этой возможности.

Пример: Пространство имён
<?php
namespace Math {

  class Complex {
    //...код...
    function __construct() {
      print("привет");
    }
  }
}

$m = new Math::Complex();
?>

Обратите внимание на синтаксис использования именного пространства для обозначения класса, объект которого мы создаём. Пример практического применения: создание одноимённых классов в разных именных пространствах; при этом классы делают отличную друг от друга работу (имея одинаковый интерфейс).]]>
Fri, 18 Dec 2009 11:33:39 +0200 igorok php try ошибки исключения static class
<![CDATA[Что с сервером случилось?]]> http://www.php5.com.ua/blog/fun/142.html http://www.php5.com.ua/blog/fun/142.html Коннект: Нащяльника, мая сервира паставиль, фрибизьдя инсталя сделаль, апачи сабраль, пыхапе патключиль, сапускаю, а ано — ажамбех пашамбе эшельбе шайтанама!
Lotox: Кирилл, если не начнешь выражаться нормально, мы найдем нового системного администратора. Повторяю вопрос — что случилось?
Коннект: Што-о?… Слуцилась… )
Lotox: Блядь )]]>
Thu, 26 Nov 2009 11:05:17 +0200 igorok сервер юмор админ
<![CDATA[Must see :) Ну просто гимн уставшего багофиксера]]> http://www.php5.com.ua/blog/news/141.html http://www.php5.com.ua/blog/news/141.html
]]>
Wed, 25 Nov 2009 12:30:29 +0200 igorok видео песня quality