<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3257173</guid>
        <pubDate>Mon, 31 Dec 2012 01:57:24 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3257173</link>
        <description><![CDATA[Serafim: Добавил в ветку сырцы враппера сервера: <a class='tag-url' href='https://github.com/SerafimArts/Xphp/tree/master/wrapper' target='_blank'>https://github.com/SerafimArts/Xphp/tree/master/wrapper</a>]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3256760</guid>
        <pubDate>Sat, 29 Dec 2012 13:17:41 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3256760</link>
        <description><![CDATA[Serafim: Обновил ветку в репозитории: <a class='tag-url' href='https://github.com/SerafimArts/Xphp' target='_blank'>https://github.com/SerafimArts/Xphp</a>]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3256603</guid>
        <pubDate>Sat, 29 Dec 2012 04:38:50 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3256603</link>
        <description><![CDATA[Serafim: Обновление версии до 2.0.1:<br>
<span class="b-attach" data-size="4194304" data-hits="212" data-attach-id="25966" data-attach-post-id="3256603">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3256603&amp;attach_id=25966' title='Скачать файл' target='_blank'>sources.part1.rar</a> (, : 212)
		</span><br>
<span class="b-attach" data-size="1624801" data-hits="210" data-attach-id="25967" data-attach-post-id="3256603">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3256603&amp;attach_id=25967' title='Скачать файл' target='_blank'>sources.part2.rar</a> (, : 210)
		</span> <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-12-29T04:52:20+00:00">29.12.12, 04:52</time></span></span><br>
Устройство враппера (рендер HTML&#092;JS&#092;CSS):<br>
* режим по умолчанию - IE7, для перевода в IE9 в каталоге лежит ключик реестра.<br>
- Клиент запускает сервер на свободном порте<br>
- После запуска - идёт запрос на открытие страницы и отображение её в компоненте<br>
- Клиент принимает 5 команд:<br>
  1) Свернуть (#min)<br>
  2) Развернуть (#max)<br>
  3) Нормальный размер (#normal)<br>
  4) Закрыть (#exit)<br>
  5) Ресайз (#resize:100:100)<br>
<br>
- После получение команды на закрытие - сервер останавливается.<br>
<br>
Устройство системы:<br>
В каталоге sources/ лежат исходники, после запуска программы - php собирается в phar архив, который кладётся в корень системы. Исходники будут собираться каждый раз, до тех пор, пока существуют php исходники в sources/. Вся статика (css/js/изображения и проч.) берётся из sources. У меня пока не получилось собрать её в архив. После сборки бинарника - php исходники можно удалить.<br>
<br>
Весит: около 5 метров<br>
Язык: PHP 5.5<br>
Расширения:<br>
- COM и .NET<br>
- Curl<br>
- Mbstring<br>
- Sqlite3 и PDO Sqlite<br>
- Sockets<br>
<br>
<br>
Скриншот программы:<br>
<img class='tag-img' src='http://cs405126.userapi.com/v405126981/3fd5/HnqIzfZO2g4.jpg' alt='user posted image'>]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3090769</guid>
        <pubDate>Mon, 05 Mar 2012 08:52:41 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3090769</link>
        <description><![CDATA[Serafim: Выложил: <a class='tag-url' href='http://tpg.su/Xphp%20Setup.exe' target='_blank'>Бета версия</a><br>
<br>
После установки - все файлы с расширением *.xphp могут запускаться как php :)]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3090007</guid>
        <pubDate>Sun, 04 Mar 2012 08:45:56 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3090007</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=3089964'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Мяут&#045;Настоящий &#064; <time class="tag-quote__quoted-time" datetime="2012-03-04T07:16:15+00:00">04.03.12, 07:16</time></span><div class='quote '>Куда кстати интересен обратный подход - использование обычных приложений в Web </div></div><br>
Для клиента уже сейчас используют HTML - Chrome и ChromeOS, Win8&#092;Metro App, даже игры используют элементы веба - Ведьмак 2, StarCraft 2... <br>
Обратный же процесс - полная чушь. Создать свой собственный уникальный интерфейс можно за пол дня на HTML. В обратном порядке - пару недель <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-03-04T08:50:44+00:00">04.03.12, 08:50</time></span></span><br>
Вообще система рассчитана для разработки приложений в короткие сроки, когда совершенно не важна производительность. А веб - та среда, где именно это и происходит. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-03-04T08:56:58+00:00">04.03.12, 08:56</time></span></span><br>
Не, ну производительность конечно важна, но не в такой степени))]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3089964</guid>
        <pubDate>Sun, 04 Mar 2012 07:16:15 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3089964</link>
        <description><![CDATA[Мяут-Настоящий: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=3089948'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2012-03-04T06:13:45+00:00">04.03.12, 06:13</time></span><div class='quote '>Овер возник только для разработки такого же стиля. Придётся из винапи или gdi+ что-нибудь мутить, ибо стандартные кнопки таким модификациям не подвергаются ;)</div></div><br>
А зачем модифицировать стандартные кнопки? Это по-моему самая низко-приоритетная задача из всех возможных при разработке :) А фреймворков для не использования WinAPI - дофига, начиная от многострадального MFC и кончая .NET.<br>
<br>
Хотя в той же Java как я понимаю, не требуется никаких GDI+, там это встроенная фишка Swing. У Qt, предполагаю, тоже есть подобное. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-03-04T07:17:50+00:00">04.03.12, 07:17</time></span></span><br>
Куда кстати интересен обратный подход - использование обычных приложений в Web (тренд именно такой) - например GTK3 поддерживает рендеринг в HTML5]]></description>
        <author>Мяут-Настоящий</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3089948</guid>
        <pubDate>Sun, 04 Mar 2012 06:13:45 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3089948</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=3089729'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>kanes &#064; <time class="tag-quote__quoted-time" datetime="2012-03-03T20:39:14+00:00">03.03.12, 20:39</time></span><div class='quote '>Судя по скрину фугкционал там минимальный</div></div><br>
ну естественно :) Но можно и замутить нечто более крутое за то же время) <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-03-04T06:17:27+00:00">04.03.12, 06:17</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=3089729'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>kanes &#064; <time class="tag-quote__quoted-time" datetime="2012-03-03T20:39:14+00:00">03.03.12, 20:39</time></span><div class='quote '>откуда овер-то возник</div></div><br>
Овер возник только для разработки такого же стиля. Придётся из винапи или gdi+ что-нибудь мутить, ибо стандартные кнопки таким модификациям не подвергаются ;)]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3089729</guid>
        <pubDate>Sat, 03 Mar 2012 20:39:14 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3089729</link>
        <description><![CDATA[kanes: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=3089275'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2012-03-03T09:01:37+00:00">03.03.12, 09:01</time></span><div class='quote '>против овер 100500 на C++&#092;C# и проч. с таким же дизайном и функционалом</div></div><br>
Судя по скрину фугкционал там минимальный, и откуда овер-то возник, на шарпе за тоже время такой минимализм сваять можно]]></description>
        <author>kanes</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3089289</guid>
        <pubDate>Sat, 03 Mar 2012 10:14:51 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3089289</link>
        <description><![CDATA[Besha: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=3089275'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2012-03-03T09:01:37+00:00">03.03.12, 09:01</time></span><div class='quote '>Но если интересно - могу кинуть на какую-нибудь файлопомойку </div></div><br>
кидай) хочу пощупать  :D]]></description>
        <author>Besha</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3089275</guid>
        <pubDate>Sat, 03 Mar 2012 09:01:37 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=3089275</link>
        <description><![CDATA[Serafim: Проект на стадии завершения :)<br>
Как это работает.<br>
<br>
1) Устанавливаем среду запуска (так же как flash для swf файлов к примеру)<br>
<span class="b-attach" data-size="164625" data-hits="628" data-attach-id="16534" data-attach-post-id="3089275">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3089275&amp;attach_id=16534' title='Скачать файл' target='_blank'>1.jpg</a> (, : 628)
		</span><br>
<br>
<span class="b-attach" data-size="68724" data-hits="631" data-attach-id="16535" data-attach-post-id="3089275">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3089275&amp;attach_id=16535' title='Скачать файл' target='_blank'>2.jpg</a> (, : 631)
		</span><br>
<br>
<span class="b-attach" data-size="68144" data-hits="624" data-attach-id="16536" data-attach-post-id="3089275">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3089275&amp;attach_id=16536' title='Скачать файл' target='_blank'>3.jpg</a> (, : 624)
		</span><br>
<br>
2) Когда среда установлена - можно запускать любые приложения на языке php. К примеру вот ну очень маленький текстовый редактор. Написан он был за 10 минут (против овер 100500 на C++&#092;C# и проч. с таким же дизайном и функционалом)<br>
<span class="b-attach" data-size="63804" data-hits="528" data-attach-id="16537" data-attach-post-id="3089275">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3089275&amp;attach_id=16537' title='Скачать файл' target='_blank'>4.jpg</a> (, : 528)
		</span><br>
<br>
3) Двойным кликом запускаем и набираем что-нибудь:<br>
<span class="b-attach" data-size="48846" data-hits="633" data-attach-id="16538" data-attach-post-id="3089275">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3089275&amp;attach_id=16538' title='Скачать файл' target='_blank'>5.jpg</a> (, : 633)
		</span><br>
<br>
4) Нажимаем &quot;Сохранить&quot;. Выбираем куда сохранить и нажимаем &quot;ОК&quot;. (к примеру на рабочий стол)<br>
<span class="b-attach" data-size="66338" data-hits="646" data-attach-id="16539" data-attach-post-id="3089275">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3089275&amp;attach_id=16539' title='Скачать файл' target='_blank'>6.jpg</a> (, : 646)
		</span><br>
<br>
5) Запускаем его с помощью Xphp и видим тоже самое, что в п.3 :) Вуаля&#33; <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2012-03-03T09:03:54+00:00">03.03.12, 09:03</time></span></span><br>
Среда весит 15 метров, поэтому сюда не выложить. Но если интересно - могу кинуть на какую-нибудь файлопомойку]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2738722</guid>
        <pubDate>Thu, 28 Oct 2010 16:47:54 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2738722</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2738670'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ho Im &#064; <time class="tag-quote__quoted-time" datetime="2010-10-28T16:19:59+00:00">28.10.10, 16:19</time></span><div class='quote '>var_dump(0 == &#39;all&#39;); // TRUE, take care<br>
var_dump(0 === &#39;all&#39;); // false</div></div><br>
 :blink: ничёссе :crazy:]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2738670</guid>
        <pubDate>Thu, 28 Oct 2010 16:19:59 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2738670</link>
        <description><![CDATA[Ho Im: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2738615'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-10-28T15:38:47+00:00">28.10.10, 15:38</time></span><div class='quote '>один символ строки - обычная переменная, которая при динамической типизации - равна нулю.</div></div><br>
То есть, &quot;0&quot; — обычная, а &quot;00&quot; — необычная? В PHP есть отдельный тип «односимвольная строка»? А если это &quot;0&quot; в UTF-16? Почему пробел не считается пустым? Почему (это вообще высший пилотаж) пустым не считается символ &#092;0? Откуда вообще исключение, что строка из одного ASCII-символа &quot;0&quot; — это false?<br>
<br>
Далее. Почему false при приведении в строку кастуется в пустую строку, а true — в &quot;1&quot;? Почему не &quot;0&quot; и &quot;1&quot;? Почему не &quot;true&quot; и &quot;false&quot;?<br>
<br>
Дальше еще лучше. Вот прекрасный пример логичности логических типов похапэ из комментариев к официальному букварю.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">var_dump(0 == 1); // false</div><div class="code_line">var_dump(0 == (bool)&#39;all&#39;); // false</div><div class="code_line">var_dump(0 == &#39;all&#39;); // TRUE, take care</div><div class="code_line">var_dump(0 === &#39;all&#39;); // false</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
Это очень весело, учитывая, что и левый, и правый параметры в var_dump() могут быть формальными параметрами функции и туда может попасть что угодно. Учитывать все неувязки — это очень легко увеличивает объем кода раза эдак в два, особенно если пишешь не для себя.<br>
<br>
Я знаю ответ на эти вопросы, это стандартный ответ разработчиков похапэ почти на все неувязки: «да, мы тут лоханулись, но если мы все сделаем правильно, то куча существующего кода сломается и нам устроят холокост».<br>
<br>
А разгадка одна — <s class='tag-s'>безблагодатность</s> постоянное втыкание очередных костылей вместо продумывания архитектуры языка и среды.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2738615'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-10-28T15:38:47+00:00">28.10.10, 15:38</time></span><div class='quote '>Это ты как узнал, что там происходит? :blink: </div></div><br>
А что, нельзя было знать? ;-)<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2738615'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-10-28T15:38:47+00:00">28.10.10, 15:38</time></span><div class='quote '>Ээээм, что? :wacko: Из объекта делаешь массив? </div></div><br>
<a class='tag-url' href='http://ua.php.net/ArrayAccess' target='_blank'>Да вот где-то так</a>.]]></description>
        <author>Ho Im</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2738615</guid>
        <pubDate>Thu, 28 Oct 2010 15:38:47 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2738615</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737579'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ho Im &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T22:51:52+00:00">27.10.10, 22:51</time></span><div class='quote '>Строка из одного символа тоже не является пустой. И однако же. </div></div><br>
один символ строки - обычная переменная, которая при динамической типизации - равна нулю.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737579'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ho Im &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T22:51:52+00:00">27.10.10, 22:51</time></span><div class='quote '>Почему PHP считает нужным привести строку &quot;0&quot; сперва в целочисленный, а затем в булевский тип, но строку &quot;0.0&quot; в вещественный не хочет приводить и сразу приводит в булевский? Чем именно целочисленный тип такой особый?</div></div><br>
Это ты как узнал, что там происходит? :blink: <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737579'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ho Im &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T22:51:52+00:00">27.10.10, 22:51</time></span><div class='quote '>тогда как если &#036;foo — это объект, реализующий ArrayAccess, то я не смогу этого сделать?</div></div><br>
Ээээм, что? :wacko: Из объекта делаешь массив?]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737579</guid>
        <pubDate>Wed, 27 Oct 2010 22:51:52 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737579</link>
        <description><![CDATA[Ho Im: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737578'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T22:45:02+00:00">27.10.10, 22:45</time></span><div class='quote '>Не пустая строка - всегда true. В первом и втором случае - строка из 3х символов, это как бы и думать не надо почему так :blink: </div></div><br>
Строка из одного символа тоже не является пустой. И однако же. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2010-10-27T23:00:05+00:00">27.10.10, 23:00</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737578'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T22:45:02+00:00">27.10.10, 22:45</time></span><div class='quote '>За 7 лет работы - не задают таких банальных вопросов.</div></div><br>
За 7 лет работы возникают еще более интересные (и да, банальные) вопросы, особенно если PHP — не единственный язык, с которым работаешь. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2010-10-27T23:07:26+00:00">27.10.10, 23:07</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737578'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T22:45:02+00:00">27.10.10, 22:45</time></span><div class='quote '>Может я ошибаюсь, но это же очевидно, почему true, а почему false.</div></div><br>
<br>
Хорошо. Давай поговорим про очевидное-невероятное. Почему PHP считает нужным привести строку &quot;0&quot; сперва в целочисленный, а затем в булевский тип, но строку &quot;0.0&quot; в вещественный не хочет приводить и сразу приводит в булевский? Чем именно целочисленный тип такой особый?<br>
<br>
Потом. Почему в обычном массиве я могу делать присваивания вида<br>
<br>
&#036;foo[&#39;bar&#39;][&#39;baz&#39;] = somestuff,<br>
<br>
тогда как если &#036;foo — это объект, реализующий ArrayAccess, то я не смогу этого сделать? Еще и подленький такой notice:<br>
<br>
<em class='tag-i'>PHP Notice:  Indirect modification of overloaded element of MyArray has no effect</em><br>
<br>
а подленький он потому, что по-хорошему, хорошо было бы бросить exception, а не по нескольку дней ловить интересные баги.]]></description>
        <author>Ho Im</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737578</guid>
        <pubDate>Wed, 27 Oct 2010 22:45:02 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737578</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737575'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ho Im &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T22:30:06+00:00">27.10.10, 22:30</time></span><div class='quote '>empty(&#39;000&#39;) == false; // WTF?</div></div><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737575'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ho Im &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T22:30:06+00:00">27.10.10, 22:30</time></span><div class='quote '>empty(&#39;0.0&#39;) == false; // WTF?</div></div><br>
Не пустая строка - всегда true. В первом и втором случае - строка из 3х символов, это как бы и думать не надо почему так :blink: <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2010-10-27T22:48:30+00:00">27.10.10, 22:48</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737575'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ho Im &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T22:30:06+00:00">27.10.10, 22:30</time></span><div class='quote '>Я никогда не пойму, что это за логика и последовательность такая:</div></div><br>
За 7 лет работы - не задают таких банальных вопросов. Может я ошибаюсь, но это же очевидно, почему true, а почему false.]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737575</guid>
        <pubDate>Wed, 27 Oct 2010 22:30:06 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737575</link>
        <description><![CDATA[Ho Im: Я никогда не пойму, что это за логика и последовательность такая:<br>
<br>
empty(0) == true;<br>
empty(&#39;0&#39;) == true;<br>
empty(&#39;000&#39;) == false; // WTF?<br>
empty(0.0) == true;<br>
empty(&#39;0.0&#39;) == false; // WTF?<br>
<br>
Какова закономерность, по которой PHP прыгает себе со строкового контекста на числовой, с числового на булевский?<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Хочешь сказать, что 9 мегабайт на сервер - это очень много? У меня уже неделю комп не вырубается, где я гоняю сайты туда-сюда на локальном серваке. Сейчас процесс занимает 8 927 Кб </div></div><br>
А ты напиши <em class='tag-i'>скрипт</em>, который безостановочно будет бегать недельку-вторую, причем пусть он ворочает какими-нибудь данными (while(true) sleep(1); неинтересно потому что). Узнаешь много нового. В частности, почему особо никто не рвется пользовать тот же PHP-GTK для долгоиграющих скриптов.<br>
Это две большие разницы — когда скрипт поработал и убился, и когда он работает и работает и работает.]]></description>
        <author>Ho Im</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737551</guid>
        <pubDate>Wed, 27 Oct 2010 21:57:37 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737551</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737544'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ho Im &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T21:43:15+00:00">27.10.10, 21:43</time></span><div class='quote '>Предсказуемой типизации нет. </div></div><br>
Есть, нужен только опыт, ни разу (я серьёзно и без преувеличений) не сталкивался с проблемой того, что прорамма работает не так, как от неё ожидалось, просто из-за проблемы с типизацией.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737544'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ho Im &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T21:43:15+00:00">27.10.10, 21:43</time></span><div class='quote '>Поэтому у PHP в глобальном пространстве имен тысячи функций.</div></div><br>
В C++ тоже<br>
<br>
Остальные критерии либо не понял, либо просто не работал и не могу судить <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2010-10-27T22:00:13+00:00">27.10.10, 22:00</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737544'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ho Im &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T21:43:15+00:00">27.10.10, 21:43</time></span><div class='quote '>но на практике память как текла, так и дальше течет.</div></div><br>
Хочешь сказать, что 9 мегабайт на сервер - это очень много? У меня уже неделю комп не вырубается, где я гоняю сайты туда-сюда на локальном серваке. Сейчас процесс занимает 8 927 Кб]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737544</guid>
        <pubDate>Wed, 27 Oct 2010 21:43:15 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737544</link>
        <description><![CDATA[Ho Im: <ul class="tag-list"><li> Предсказуемой типизации нет. Как и в родителе, который перл, но в последнем хотя бы есть use strict.</li><li> Вменяемой и целостной архитектуры языка нет: все писалось по принципу втыкания очередного кривого костыля. Поэтому у PHP в глобальном пространстве имен тысячи функций.</li><li> Нормальный (т. е. который вообще работает) сборщик мусора появился только теперь, да и то с множественными оговорками: я слышал о нем, но на практике память как текла, так и дальше течет.</li><li> Мультипоточности ни в каком виде нет. Есть многопроцессность, при этом реализованная через одно место (и поэтому никем всерьез не используемая).</li><li> Объектная модель динамического языка содрана по образу и подобию языка статического, причем ограничения всплывают в самых интересных местах.</li><li> Несмотря на то, что язык уж очень веб-ориентирован, нормальных инструментов собственно для веба там тоже, как ни странно, нет. По-хорошему, тот же Symfony должен идти к PHP в комплекте поставки.</li><li> Также, несмотря на то, что среда сервер-ориентирована, масштабирование ее сопряжено с большими накладными расходами и для улучшения никаких изкоробочных средств не предоставляется. </li><li> Модульности как таковой нет. Если сравнить PEAR со CPAN&#39;ом или PyPI, станет очень грустно. Все становится понятным, если сравнить культуру программирования в PHP и в том же перле: в PHP в основном обитают новички, в Perl — умудренные опытом, первые стремятся вовсю изобрести свой лучший в мире велосипед, вторые делают ставку на то, что велосипеды давно изобретены (и оказываются правы, чаще всего).</li><li> Как в перле, так и в питоне есть привязки к родным оконным библиотекам систем, на которых они выполняются (Cocoa, WinAPI), да к паре-тройке кроссплатформенных (GTK+, Tk, Qt, WxWidgets). В PHP привязка только к GTK+, что нельзя назвать лучшим выбором (те же Qt и Wx стремятся использовать средства отрисовки и элементы из целевой платформы, тогда как GTK+ старается всюду все делать по-своему). Впрочем, в связи с тем, как течет память у PHP, никто и не рассчитывает писать на нем </li><li> долгоиграющие программы с GUI.</li><li> Нормального быстродействия, из-за того, что среда в PHP на каждый запрос переинициализируется по новой, тоже нет и не будет. By design. А переконнекчиваться к базам данных, между прочим, дорогая операция. Как и открыть-закрыть сотню рабочих файлов.</li></ul>Не убедил? Впрочем, я с 2003 до 2010 года плотно работал с PHP. Сейчас работаю с Python и счастлив безмерно. Поэтому каждый пункт выше — это кусок личного опыта.]]></description>
        <author>Ho Im</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737537</guid>
        <pubDate>Wed, 27 Oct 2010 21:19:26 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737537</link>
        <description><![CDATA[Serafim: <strong class='tag-b'>Ho Im</strong>, категорически не согласен с тобой. Чего нет в PHP, что есть в других языках? :huh:]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737531</guid>
        <pubDate>Wed, 27 Oct 2010 21:00:01 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737531</link>
        <description><![CDATA[Ho Im: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737522'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T20:35:31+00:00">27.10.10, 20:35</time></span><div class='quote '>А как же PHP? :( </div></div><br>
Как я и говорил, PHP — ущербен. Его для клиентских программ не особо используют даже на более родных платформах: память течет, медленный, с особыми неповторимыми багами. Вместо него почему-то перл да перл. Ну теперь уже питон.<br>
PHP используют веб-программисты-новички, которые по разным причинам не доросли до Python или Java. А для этих двух технологий костылей надо меньше не в разы, а в разы разов.]]></description>
        <author>Ho Im</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737522</guid>
        <pubDate>Wed, 27 Oct 2010 20:35:31 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737522</link>
        <description><![CDATA[Serafim: А как же PHP? :( <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2010-10-27T20:36:15+00:00">27.10.10, 20:36</time></span></span><br>
Хотя он и не понадобится там должно быть...]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737517</guid>
        <pubDate>Wed, 27 Oct 2010 20:24:20 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737517</link>
        <description><![CDATA[Ho Im: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2737332'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-10-27T17:49:19+00:00">27.10.10, 17:49</time></span><div class='quote '>Ну я понял только, что XULRunner - это непонятная Моззиловская штукень. Это всё((( </div></div><br>
Это ты ее не видел пару версий тому назад. Теперь она мало того что понятна, любой Firefox версии 3 и выше можно использовать как XULRunner в чистом виде.<br>
<br>
А так ­— это такая хрень, с помощью которой можно рисовать элементы управления на XUL (и HTML, кстати, тоже), а события обрабатывать на яваскрипте. Причем яваскрипт не простой, а привилегированный: может файлы читать-писать, сокеты любого вида создавать, к SQLite из коробки присасываться. И все это под любой платформой ­— венда так венда, линакс так линакс, макось так макось, FreeBSD, не будь помянута к вечеру — так почему бы и нет? И все можно на Javascript чистейшем писать.<br>
<br>
Вот если бы ты сделал такое окружение, в котором программировать для того же XULRunner&#39;а было бы приятно и ненапряжно, то за мной не постояло бы... Ну там jQuery портировать, то-сё...]]></description>
        <author>Ho Im</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737332</guid>
        <pubDate>Wed, 27 Oct 2010 17:49:19 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737332</link>
        <description><![CDATA[Serafim: Ну я понял только, что XULRunner - это непонятная Моззиловская штукень. Это всё(((]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737324</guid>
        <pubDate>Wed, 27 Oct 2010 17:39:31 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2737324</link>
        <description><![CDATA[Ho Im: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2736504'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>amk &#064; <time class="tag-quote__quoted-time" datetime="2010-10-26T22:05:31+00:00">26.10.10, 22:05</time></span><div class='quote '>Не говоря уж о том, что программа может просто изобразить из себя http-сервер - например, зацепиться за сокет, ловить http-запросы и возвращать HTML-страничку. </div></div><br>
Только вот если программа предназначена сугубо для локального выполнения, то приделывать к ней сравнительно медленный TCP/IP — это оверкилл немного, вам, господа, не кажется?<br>
<br>
Ну и потом, установка <em class='tag-i'>нескольких</em> приложений параллельно — это будут такие грабли, что мало не покажется. Причем будет одно из двух: либо придется забыть о существующих веб-приложениях (на мысль приходят phpGroupware всякие, вики локальные, RoundCube&#39;ы, и какие там еще достаточно вылизанные вещи есть), потому что разработчики будут вынуждены следовать некоторым конвеншонам, дабы их программы между собой на этой платформе уживались, либо показать конечному пользователю, что ему таки придется конфигурировать этот долбанный апач, чего, кажется, автор стремится избежать.<br>
<br>
Сделай лучше такую яваскриптовую библиотеку для использования внутри XULRunner и инсталлятор к этому добру, чтобы под него стало приятно писать программы. Тогда тебе много кто, я в том числе, в ножки будут кланяться.]]></description>
        <author>Ho Im</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2736514</guid>
        <pubDate>Tue, 26 Oct 2010 22:37:14 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2736514</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2736504'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>amk &#064; <time class="tag-quote__quoted-time" datetime="2010-10-26T22:05:31+00:00">26.10.10, 22:05</time></span><div class='quote '>Так что твоя программа будет полезна главным образом PHP-программистам</div></div><br>
Да  :yes:  :tong:]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2736504</guid>
        <pubDate>Tue, 26 Oct 2010 22:05:31 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2736504</link>
        <description><![CDATA[amk: <strong class='tag-b'>Serafim</strong>, HTML вообще-то не только из PHP доступен. Не говоря уж о том, что программа может просто изобразить из себя http-сервер - например, зацепиться за сокет, ловить http-запросы и возвращать HTML-страничку. Их формат достаточно простой - так что особого труда это не составит. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2010-10-26T22:06:35+00:00">26.10.10, 22:06</time></span></span><br>
Так что твоя программа будет полезна главным образом PHP-программистам]]></description>
        <author>amk</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2736476</guid>
        <pubDate>Tue, 26 Oct 2010 20:20:18 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2736476</link>
        <description><![CDATA[Ho Im: Чего только люди не делают, лишь бы на Python и Qt не писать.<br>
<br>
Предложенное автором топика решение — ущербный язык в ущербной обвязке из костылей на ущербной платформе.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2690038'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-09-06T15:48:56+00:00">06.09.10, 15:48</time></span><div class='quote '>FullArcticFox, угу :) Только здесь фишка немного другая - использование HTML для создания пользовательского интерфейса приложений - это только один из моментов ;)<br>
</div></div><br>
<br>
Я думаю, рассказать о XULRunner или подождать еще немного.]]></description>
        <author>Ho Im</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2735376</guid>
        <pubDate>Mon, 25 Oct 2010 17:36:48 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2735376</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2735240'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>amk &#064; <time class="tag-quote__quoted-time" datetime="2010-10-25T14:03:33+00:00">25.10.10, 14:03</time></span><div class='quote '>Думаешь, я, взяв PHP, смогу такой интерфейс быстрее разработать? Скорее наоборот - на C++ у меня будет готовая программа с нужным интерфейсом быстрее, чем я вообще приступлю к написанию ее на PHP.</div></div><br>
на ХТМЛ, а не на PHP ;)]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2735240</guid>
        <pubDate>Mon, 25 Oct 2010 14:03:33 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2735240</link>
        <description><![CDATA[amk: Простые типы обычно проще передать через стек. Дополнительное разыменование ссылки съедает весь выигрыш от передачи ссылки, не говоря уж о том, что выигрыша может и не быть.<br>
Аналогично, если аргумент предполагается модифицировать внутри функции, не возвращая результат изменений обратно. При передаче ссылки все равно придется его скопировать внутри функции. Передавая аргумент по значению, можно избавиться от копирования, когда аргумент вычисляется или конструируется при вызове (если компилятор догадается соптимизировать копирование). Хотя в некоторых случаях все еще остается лишнее копирование, я так понимаю rvalue-reference для таких случаев и предназначен.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2733794'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-10-23T05:43:19+00:00">23.10.10, 05:43</time></span><div class='quote '>были случаи, когда я ради эксперимента засекал время и PHP обыгрывал по скорости С++</div></div><br>
Вариант первый - PHP умеет компилировать программу в нативный код.<br>
Вариант второй - вызывались некие процедуры, для которых в C++ нет аналога. При этом в библиотеке PHP использован какой-то оптимизированный алгоритм, а в C++ аналог написан вручную. Скорее всего для решения использован простой, надежный алгоритм, без особой оптимизации.<br>
Вариант третий - при сравнении просто что-то не было учтено, из-за чего программа на C++ делала еще какую-нибудь работу, повлиявшую на результат. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2010-10-25T14:28:42+00:00">25.10.10, 14:28</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2733908'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-10-23T11:36:16+00:00">23.10.10, 11:36</time></span><div class='quote '>сколько времени ты будешь разрабатывать необычный пользовательский интерфейс?</div></div> Вопрос не мне, но я тоже выскажусь.<br>
Зависит от того, сталкивался ли с такой задачей раньше. Для того же C++ есть библиотеки, но их надо найти и научиться ими пользоваться. Думаешь, я, взяв PHP, смогу такой интерфейс быстрее разработать? Скорее наоборот - на C++ у меня будет готовая программа с нужным интерфейсом быстрее, чем я вообще приступлю к написанию ее на PHP.]]></description>
        <author>amk</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733908</guid>
        <pubDate>Sat, 23 Oct 2010 11:36:16 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733908</link>
        <description><![CDATA[Serafim: <strong class='tag-b'>schooler</strong>, скажи мне, сколько времени ты будешь разрабатывать необычный пользовательский интерфейс? ;)]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733816</guid>
        <pubDate>Sat, 23 Oct 2010 07:36:05 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733816</link>
        <description><![CDATA[schooler: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2733794'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-10-23T05:43:19+00:00">23.10.10, 05:43</time></span><div class='quote '>И у меня были случаи, когда я ради эксперимента засекал время и PHP обыгрывал по скорости С++. </div></div><br>
На каких задачах?<br>
<br>
В чем заключается простота разработки клиентских приложений на PHP?]]></description>
        <author>schooler</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733794</guid>
        <pubDate>Sat, 23 Oct 2010 05:43:19 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733794</link>
        <description><![CDATA[Serafim: Единственное, что могу утверждать, что PHP 5 в несколько раз быстрее PHP 4, PHP 5.3 (даже без Zend Optimyzer) тоже на порядок быстрее PHP 5.2, а PHP 5.4 (который доступен с сентября) не сильно, но тоже выигрывает по скорости PHP 5.3. Все привыкли говорить о 4ой версии - но она многократно отстаёт по скорости от последних версий.<br>
<br>
И у меня были случаи, когда я ради эксперимента засекал время и PHP обыгрывал по скорости С++. Если откопаю тесты - выложу сюда. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2010-10-23T05:45:16+00:00">23.10.10, 05:45</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2733791'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>amk &#064; <time class="tag-quote__quoted-time" datetime="2010-10-23T05:24:34+00:00">23.10.10, 05:24</time></span><div class='quote '>Передача по ссылке - не всегда хорошо. Иногда лучше передавать значение.</div></div><br>
Почему? :huh: Если компилятор сам следит за всем этим, так что в этом плохого? Кроме ускорения работы и уменьшения объёма оперативной памяти - разницы никакой :huh:]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733791</guid>
        <pubDate>Sat, 23 Oct 2010 05:24:34 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733791</link>
        <description><![CDATA[amk: Передача по ссылке - не всегда хорошо. Иногда лучше передавать значение.<br><br>Что такое байт-код я знаю. И знаю, как он интерпретируется.<br>Имеется указатель (обычно хранится в регистре). На каждом цикле по этому указателю считывается код, преобразуется в адрес (обычно не берется из таблицы, а вычисляется - сдвиг+сложение), и управление передается туда. Там выполняются нужные действия (еще команды 4-5, иногда больше) и управление передается на начало цикла. Итого на каждую команду байт-кода имеется десяток машинных команд и две передачи управления. Получаем, что байт-код по крайней мере раз в десять медленнее нативного кода. Это если не рассматривать клинические случаи.<br>Байт-код отыгрывается только при обработке сложных данных, когда одной команде байт-кода соответствует достаточно сложная процедура. Здесь часто возникает ситуация, что в том же C++ выбирается не совсем оптимальный алгоритм, например. В этой ситуации интерпретация может оказаться даже быстрее.]]></description>
        <author>amk</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733788</guid>
        <pubDate>Sat, 23 Oct 2010 05:13:50 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733788</link>
        <description><![CDATA[Serafim: <strong class='tag-b'>schooler</strong>, это значит, что пока не было изменено значение переданной переменной - они передаются по ссылке. Фактически это можно проверить - отобразив поэтапно занимаемую память.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">$a = 2;</div><div class="code_line">echo memory_get_usage();</div><div class="code_line">$b = $a;</div><div class="code_line">echo memory_get_usage();</div><div class="code_line">$b++;</div><div class="code_line">echo memory_get_usage();</div></ol></div></div></div></div><br>
<br>
Функция не помню как называется, вроде так - поправьте, если я ошибся]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733783</guid>
        <pubDate>Sat, 23 Oct 2010 02:40:29 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733783</link>
        <description><![CDATA[schooler: Что значит &#39;переменные передаются по ссылке вначале&#39;?]]></description>
        <author>schooler</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733673</guid>
        <pubDate>Fri, 22 Oct 2010 19:41:41 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733673</link>
        <description><![CDATA[Serafim: <strong class='tag-b'>amk</strong>, а при чём тут Perl  :blink: <br>
PHP преобразуется в байт-код, который <strong class='tag-b'>иногда</strong> даже быстрее C++ варианта, тупо из-за того, что ты напишешь одно, а внутри это работает совершенно по-другому.<br>
<br>
Как пример - в PHP все переменные <strong class='tag-b'>вначале</strong> передаются по-ссылке, хотя ты этого не писал. Разницы никакой, а работает быстрее и памяти жрёт меньше. ;)]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733671</guid>
        <pubDate>Fri, 22 Oct 2010 19:34:40 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733671</link>
        <description><![CDATA[amk: Мы на работе как-то столкнулись с шелловским скриптом, который запускает программу на перле, чтобы подсчитать контрольный хэш файла. То, что у программы md5sum занимает десяток секунд считалось полчаса, после чего мы попросту прервали скрипт.]]></description>
        <author>amk</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733652</guid>
        <pubDate>Fri, 22 Oct 2010 19:04:39 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733652</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2733576'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>schooler &#064; <time class="tag-quote__quoted-time" datetime="2010-10-22T16:27:10+00:00">22.10.10, 16:27</time></span><div class='quote '>Но, когда я реализовал один из алгоритмов нахождения наибольшей общей подпоследовательности на PHP, я понял, что PHP проигрывает компилируемым языкам (конкретно Паскалю) как по скорости работы, так и по расходу памяти. Причем не просто проигрывает, а отстает на порядок.<br>
</div></div><br>
Эта ситуация была примерно лет 5 назад ;)]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733576</guid>
        <pubDate>Fri, 22 Oct 2010 16:27:10 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2733576</link>
        <description><![CDATA[schooler: <div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Оффтоп</div><div class="body">Говоря о несомненных преимуществах TeX&#39;а над Word&#39;ом при подготовке математических текстов наш преподаватель по ЭВМ задался вопросом, почему Microsoft Word тормозит даже на самых простых задачах. В итоге пришел к гипотизе, что во всем виновато объектно-ориентированное программирование. <br>
Но при этом отметил, что время программиста стоит дороже, чем машинное. Поэтому нет ничего страшного в повышении удобства работы программиста в ущерб быстродействию программ.<br>
<br>
Но, когда я реализовал один из алгоритмов нахождения наибольшей общей подпоследовательности на PHP, я понял, что PHP проигрывает компилируемым языкам (конкретно Паскалю) как по скорости работы, так и по расходу памяти. Причем не просто проигрывает, а отстает на порядок.<br>
<br>
Конечно, PHP создан не для объемных вычислений.<br>
<br>
Я не против, например, HTML. Это действительно упрощает разработку web-страниц.<br>
<br>
С одной стороны, кажется, что замедление какой-нибудь небольшой программы не даст существенного замедления всей системы (под замедлением понимаю уменьшение объема доступных системных ресурсов). Но, с другой стороны, в системе работает множество разнообразных сервисов и приложений.<br>
<br>
Сугубо мое личное мнение.<br>
</div></div>]]></description>
        <author>schooler</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2728830</guid>
        <pubDate>Sun, 17 Oct 2010 20:35:15 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2728830</link>
        <description><![CDATA[Serafim: :D  ;)<br>
<br>
<span class="b-attach" data-size="673693" data-hits="574" data-attach-id="3300" data-attach-post-id="2728830">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=2728830&amp;attach_id=3300' title='Скачать файл' target='_blank'>Screenshot.png</a> (, : 574)
		</span>]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2728463</guid>
        <pubDate>Sat, 16 Oct 2010 23:07:16 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2728463</link>
        <description><![CDATA[Serafim: Изменён интерфейс<br>
Добавлена возможность сворачивания<br>
Анимированы кнопки<br>
Исправлена ошибка со &quot;скаканием&quot; кнопки<br>
Исправлена ошибка со скруглёнными углами снизу формы<br>
Добавлена возможность передачи данных в приложение (название приложения (пока не выводится) и размер окна для выбранного приложения)<br>
<br>
Найденные ошибки, которые ещё не пофиксены:<br>
В настройках, при вводе символа в поле &quot;размер приложения&quot; (разрешение) - приложение вываливается с критической ошибкой<br>
<br>
<span class="b-attach" data-size="39827" data-hits="246" data-attach-id="3288" data-attach-post-id="2728463">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=2728463&amp;attach_id=3288' title='Скачать файл' target='_blank'>Xphp.rar</a> (, : 246)
		</span><br>
<br>
Скрин программы с запущенным чатом ВК:<br>
<br>
<span class="b-attach" data-size="191776" data-hits="565" data-attach-id="3289" data-attach-post-id="2728463">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=2728463&amp;attach_id=3289' title='Скачать файл' target='_blank'>Без_имени_3.jpg</a> (, : 565)
		</span>]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2728303</guid>
        <pubDate>Sat, 16 Oct 2010 15:44:43 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2728303</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2728298'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>amk &#064; <time class="tag-quote__quoted-time" datetime="2010-10-16T15:32:43+00:00">16.10.10, 15:32</time></span><div class='quote '>Ну, он наверно уже развернут на этой флэшке. Ничего не пытается писать за пределами своего каталога, да и в своем старается не мусорить. Если что вне его и пишет, то в профиле текущего пользователя</div></div><br>
Если внимательно прочитать как устроена моя программа - можно понять что я запускаю скрипты из исполняемой среды, которую я эмулирую через Апач+ПхП. Осталось только дописать некоторые места. Мне не нужены мегабольшие права, что бы запустить чат ;) <br>
<br>
З.Ы. Для проекта попытался использовать Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.7.12) Gecko/20051002, но потерпел поражение. Всё работает, но глючит страшно, так что вернулся обратно на ИЕ7 :(]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2728298</guid>
        <pubDate>Sat, 16 Oct 2010 15:32:43 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2728298</link>
        <description><![CDATA[amk: Ну, он наверно уже развернут на этой флэшке. Ничего не пытается писать за пределами своего каталога, да и в своем старается не мусорить. Если что вне его и пишет, то в профиле текущего пользователя]]></description>
        <author>amk</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2728229</guid>
        <pubDate>Sat, 16 Oct 2010 12:52:01 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2728229</link>
        <description><![CDATA[Serafim: <strong class='tag-b'>amk</strong>, а почему Денвер умеет запускаться с флешки? :huh:]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2728203</guid>
        <pubDate>Sat, 16 Oct 2010 12:04:28 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2728203</link>
        <description><![CDATA[amk: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2727984'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2010-10-16T02:17:19+00:00">16.10.10, 02:17</time></span><div class='quote '>сервак будет развёртываться при первом старте программы</div></div> Ты уверен, что это ему просто так удастся?<br>
<br>
1. Программа может быть запущена из под непривелигированного пользователя (у меня на компе (что дома, что на работе), например, других и нет (есть конечно, но они (точнее я) на компьютере не работают, а только обслуживают его (что интересно, я на работе к своему компу системщиков не подпускаю - они, того и гляди, все испортят))).<br>
2. В Windows (да и в других ОС тоже) существует такая вещь, как квоты на использование дискового пространства.]]></description>
        <author>amk</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2727984</guid>
        <pubDate>Sat, 16 Oct 2010 02:17:19 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2727984</link>
        <description><![CDATA[Serafim: <strong class='tag-b'>amk</strong>, сказал же, что сервак будет развёртываться при первом старте программы в фоновом режиме, не заметном пользователю. Фактически он будет видеть рабочее приложение по которому надо щёлкнуть двойным щелчком, что бы запустить :)]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2727982</guid>
        <pubDate>Sat, 16 Oct 2010 02:11:37 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2727982</link>
        <description><![CDATA[amk: Просто, если сервак установлен, то как бы нет проблем выполнить скрипт на нем. А если не установлен, то, ты пишешь программа и работать не будет.<br>Соответственно, если человек занимается Web-разработкой, он и так имеет доступ к серверу и может обойтись без твоей программы.<br>Если не занимается, то программа оказывается ему бесполезна.]]></description>
        <author>amk</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2727981</guid>
        <pubDate>Sat, 16 Oct 2010 02:05:32 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2727981</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=312646&view=findpost&p=2727980'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>amk &#064; <time class="tag-quote__quoted-time" datetime="2010-10-16T02:02:47+00:00">16.10.10, 02:02</time></span><div class='quote '>Но, я так понял, эта программа может выполнить php-скрипт без установки web-сервера и интерпретатора php, эмулируя таким образом на локальном компьютере web-сервер.</div></div><br>
Пока что нет. Фактически он работает используя уже готовое окружение (установленное ранее). Теперь я займусь как раз вставкой сервака в программу, т.е. как ты сказал будет эмуляция сервера на локальном компе :yes: Это как раз на стадии разработки]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2727980</guid>
        <pubDate>Sat, 16 Oct 2010 02:02:47 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2727980</link>
        <description><![CDATA[amk: Не знаю, как насчет пользовательских приложений. Не думаю, что кто-то специально будет изучать для этого php.<br>Но, я так понял, эта программа может выполнить php-скрипт без установки web-сервера и интерпретатора php, эмулируя таким образом на локальном компьютере web-сервер.]]></description>
        <author>amk</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2727974</guid>
        <pubDate>Sat, 16 Oct 2010 01:31:53 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2727974</link>
        <description><![CDATA[Serafim: Так, вроде закончил предварительную версию. Встречайте первую полноценную бета-версию.  :blush: <br>
<br>
При открытии exe&#39;шника - по умолчанию открываются настройки:<br>
<span class="b-attach" data-size="104926" data-hits="692" data-attach-id="3270" data-attach-post-id="2727974">
			<span class="b-attach__title">настройки</span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=2727974&amp;attach_id=3270' title='Скачать файл' target='_blank'>prev.jpg</a> (, : 692)
		</span><br>
Поля:<br>
1) Путь к папке с исполняемой средой (там где на жёстком диске находится локалхост например)<br>
2) Путь к файлу через http (путь, где можно открыть этот файл через браузер)<br>
3/4) Размер окна, открываемого по-умолчанию<br>
<br>
Что бы запустить php файл на исполнение, требуется открыть его с помощью этого приложения.<br>
<br>
Пожалуйста, сообщите, если найдёте ошибку, буду очень признателен :thanks: <br>
<span class="b-attach" data-size="35903" data-hits="279" data-attach-id="3272" data-attach-post-id="2727974">
			<span class="b-attach__title">первая бэта-версия</span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=2727974&amp;attach_id=3272' title='Скачать файл' target='_blank'>Xphp.rar</a> (, : 279)
		</span><br>
<span class="b-attach" data-size="24134" data-hits="273" data-attach-id="3274" data-attach-post-id="2727974">
			<span class="b-attach__title">исходники, просьба не слишком пинать :rolleyes:  :D </span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=2727974&amp;attach_id=3274' title='Скачать файл' target='_blank'>Xphp_VB6.rar</a> (, : 273)
		</span>]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2690512</guid>
        <pubDate>Tue, 07 Sep 2010 07:49:23 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2690512</link>
        <description><![CDATA[qpayct: люди, у кого нибудь работает webgl? <br>тестил на mozilla firefox 4 Beta 4, делал about:config менял там на true - не работает.<br>на chrome 7.0.503.0 beta тоже самое....<br><br>как тестить webgl?]]></description>
        <author>qpayct</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2690054</guid>
        <pubDate>Mon, 06 Sep 2010 16:01:55 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2690054</link>
        <description><![CDATA[Serafim: А нафиг это всё? :huh: Только работа со знакомым языком? А в чём такое особое ускорение разработки этих приложений? ;)]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2690044</guid>
        <pubDate>Mon, 06 Sep 2010 15:53:39 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2690044</link>
        <description><![CDATA[Sunny: http://ru.wikipedia.org/wiki/PHP-GTK]]></description>
        <author>Sunny</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2690038</guid>
        <pubDate>Mon, 06 Sep 2010 15:48:56 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2690038</link>
        <description><![CDATA[Serafim: <strong class='tag-b'>FullArcticFox</strong>, угу :) Только здесь фишка немного другая - использование HTML для создания пользовательского интерфейса приложений - это только один из моментов  ;)]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2690032</guid>
        <pubDate>Mon, 06 Sep 2010 15:38:56 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2690032</link>
        <description><![CDATA[FullArcticFox: <strong class='tag-b'>Serafim</strong> ты слышал о такой вещи http://habrahabr.ru/blogs/php/85092/ ?]]></description>
        <author>FullArcticFox</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2689957</guid>
        <pubDate>Mon, 06 Sep 2010 14:20:48 +0000</pubDate>
        <title>Использование PHP для клиентских приложений</title>
        <link>https://forum.sources.ru/index.php?showtopic=312646&amp;view=findpost&amp;p=2689957</link>
        <description><![CDATA[Serafim: <strong class='tag-b'>Идея:</strong><br>
Использование сетевых языков для клиентских приложений.<br>
<br>
<strong class='tag-b'>Структура:</strong><br>
Создание приложения происходит следующим образом: <br>
Программная оболочка (создание&#092;программирование расширенного PHP файла, файл в формате *.phpa (php advance)) -&gt; интерпретатор (обрабатывает и заменяет некоторые значения для совместимости с оригинальным PHP, сохраняет файл в формате *.php) -&gt; компилятор (исполняемый байт-код) -&gt; выполнение программы.<br>
<br>
Выполнение приложения:<br>
- Установка (в идеале) общего окружения для всех программ данного типа (подразумеваю хранение php_****.dll в System32 и прочее, что-то вроде C++ Redistrutable)<br>
- Запуск скомпилированного (сархивированного) файла с помощью предустановленного приложения (что-то вроде флеш - файл запускается приложением)<br>
- Открывается заданное приложение (визуализация XHTML&#092;HTML + CSS, исполнение JS&#092;AJAX&#092;PHP, хранение данных - любая PHP-совместимая БД)<br>
<br>
<strong class='tag-b'>Цель:</strong><br>
Ускорение в десятки раз создания небольших клиентских приложений, в основном направленные на работу с базами данных и сетью.<br>
<br>
<strong class='tag-b'>Примеры внедрения:</strong><br>
Справочники, Реестр данных, Даунлоадеры, Менеджеры (изображений&#092;видео и так далее), Небольшие игры, Чаты, Почтовые клиенты и так далее.<br>
<br>
<strong class='tag-b'>Реализация:</strong><br>
<em class='tag-i'>Итерация 1 - сборка тестового окружения:</em><br>
Язык VB6. Папка с приложением содержит каталог bin и исполняемый *.exe файл. Каталог bin содержит отредактированную версию Denwer. Каталог bin/home/***/www/ (вместо символов *** - набор любых числобуквенных символов, например md5 времени создания каталога) содержит исполняемый файл *.php (имеется ввиду исполняемый в данной среде).<br>
Реализация *.exe файла (алгоритм работы приложения):<br>
- Запуск Denwer<br>
- Ожидание завершения запуска<br>
- Использование движка (стандартного контрола) IE для визуализации&#092;запуска приложения<br>
- Открытие (по умолчанию адреса http://***/index.php) в &quot;псевдо&quot; браузере файла *.php<br>
<br>
Итог: Решил использовать язык VB6 ради ускорения создания тестового окружения.<br>
<br>
<em class='tag-i'>Итерация 2 - сборка конечного (идеального) окружения:</em><br>
Язык C++. Используется только один файл данных любого формата (определённого ранее), содержащего данные о приложении.<br>
Реализация предустановленного приложения:<br>
- Открытие файла данных в приложении<br>
- Распаковка БД (если есть) из файла данных в папку приложения (предустановленная среда)<br>
- Распаковка Файлов (в идеале только байт-кода) в папку приложения<br>
- Распаковка изображений и т.д. (в идеале - должны содержаться в файле БД) в папку приложения<br>
- Все распакованные данные можно сохранить, для ускорения следующей загрузки (т.е. как бы установка), либо удалить после завершения работы с приложением<br>
- Получение данных о приложении из файла данных (размер создаваемого окна, название приложения и прочее)<br>
- Инициализация движка WebKit с и передача туда выполненного (откомпилированного) байт-кода<br>
<br>
Результат в идеале должен быть следующий: Пользователь не будет видеть разницы между запуском обычного приложения и запуском псевдо-PHP приложением - двойной клик по файлу открывает саму программу. Для программиста же это значительное ускорение разработки. Можно сравнить просто, что быстрее вёрстка страницы сайта или попытка реализовать такой же интерфейс в приложении. Дальше PHP позволяет очень много вольности, что очень незначительно сказывается на скорости и значительно на приятности работы&#092;скорости разработки.<br>
<br>
Нюансов уйма, например если использовать WebKit, то можно получить аппаратное ускорение приложения, плюс использовать OpenGL (WebGL) для реализации 3х- и 2х-мерных игр. Язык C++ используется именно из-за того, что PHP&#092;WebKit и прочее написаны именно на нём.<br>
<br>
Я об этом проекте долго думал, может это глупость, но тестовую сборку я всё-таки сделаю, работы на денёк, а если понравится идея, почему бы не реализовать её. :) Если есть какие-то вопросы и недопонятки - задавайте  :)]]></description>
        <author>Serafim</author>
        <category>Обсуждаем новые идеи</category>
      </item>
	
      </channel>
      </rss>
	