АРХИВ ПО ТЭГУ "ПРОГРАММИРОВАНИЕ"
АВГУСТ 9, 2011

Hola.

Как делишки!

Простейший пример реализации SOAP Contract-First сервера на PHP.

Архив исходника качать тут.

WSDL

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <wsdl:definitions name="sserver"
  3.    targetNamespace="http://mycom.com/wsdl/"
  4.    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  5.    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  6.    xmlns:tns="http://mycom.com/wsdl/"
  7.    xmlns:my-xsd="http://mycom.com/types/"
  8.    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  9.  
  10.    <wsdl:types>
  11.       <xsd:schema elementFormDefault="qualified"
  12.                         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  13.                         targetNamespace="http://mycom.com/types/">
  14.  
  15.          <xsd:element name="MyResult" type="my-xsd:MyResult"/>
  16.          <xsd:complexType name="MyResult">
  17.             <xsd:sequence>
  18.                <xsd:element name="OutputStr" type="xsd:string" minOccurs="0" maxOccurs="1"/>
  19.             </xsd:sequence>
  20.          </xsd:complexType>
  21.           </xsd:schema>
  22.         </wsdl:types>
  23.  
  24.    <wsdl:message name="testSrvRequest">
  25.    </wsdl:message>
  26.    
  27.    <wsdl:message name="testSrvResponse">
  28.          <wsdl:part name="MyResult" element="my-xsd:MyResult"/>
  29.    </wsdl:message>
  30.    
  31.    <wsdl:portType name="Srv_PortType">
  32.       <wsdl:operation name="testSrv">
  33.          <wsdl:input message="tns:testSrvRequest" />
  34.          <wsdl:output message="tns:testSrvResponse"/>
  35.       </wsdl:operation>
  36.    </wsdl:portType>
  37.    
  38.    <wsdl:binding name="Srv_Binding" type="tns:Srv_PortType">
  39.       <soap:binding style="document"  transport="http://schemas.xmlsoap.org/soap/http"/>
  40.       <wsdl:operation name="testSrv">
  41.          <soap:operation soapAction=""/>
  42.          <wsdl:input>
  43.             <soap:body use="literal" />
  44.          </wsdl:input>
  45.          <wsdl:output>
  46.             <soap:body use="literal" />
  47.          </wsdl:output>
  48.       </wsdl:operation>
  49.    </wsdl:binding>
  50.  
  51.    <wsdl:service name="testService">
  52.       <wsdl:documentation>WSDL File for Test Server side</wsdl:documentation>
  53.       <wsdl:port binding="tns:Srv_Binding" name="Srv_Port">
  54.          <soap:address
  55.             location="http://localhost/1.php" />
  56.       </wsdl:port>
  57.    </wsdl:service>
  58. </wsdl:definitions>

Сервер

  1. class MyServer {
  2.  
  3.         public function testSrv() {
  4.                 return array('OutputStr' => "Ololo testeg result");
  5.         }
  6. }
  7.  
  8. $wsdlFile = "file:///tmp/tmp.wsdl";
  9.  
  10. $srv = new SoapServer($wsdlFile);
  11. $srv->setObject(new MyServer());
  12. $srv->handle();

Клиент

  1. // Send through SOAP
  2. try {
  3.         $cln = new SoapClient("file:///tmp/tmp.wsdl");
  4.         $resp = $cln->testSrv();
  5.         echo "\nDetailed response: " . print_r($resp, true) . "\n";
  6. } catch (\Exception $e) {
  7.         echo "ERROR Unknown:" . $e->getMessage();
  8. }
  9.  
  10. echo "\n";
ИЮЛЬ 1, 2011

nice easy file rename in mac os x tiger leopard Nice File Rename for Mac OS X %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

Hi.

Дудекос.

По запросу свыше я сегодня заимплементил UI‘ную утилиту на Cocoa, которая эмулирует фукнционал ниже приведенного скприта:

#!/bin/bash
  1.  
  2. for i in *"some text"*.*
  3. do
  4.         newname=`echo $i | sed -e 's/some text/some replacement/'`;
  5.         echo "Renaming $i -&gt; $newname";
  6.         mv "$i" "$newname";
  7. done

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

Не всех радует перспектива пользоваться консолью, а ведь она удобней! icon smile Nice File Rename for Mac OS X %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

PS Дурацкий Xcode 4 — выключили поддержку 10.5, чтоб собрать под 10.5 нужно Xcode 3 скачать, выдернуть оттуда SDK, и куда нить себе сохранить а еще лучше линку в /Developer/SDKs/ сделать.

Скачать приложение.

Скачать исходники.

ИЮНЬ 24, 2011

nginx logo ussr Nginx модуль   Получение строкового параметра из конфига %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

Hi.

ngx_str_t

Еба!

Получаете сообщение от модуля(?): nginx: [emerg] «my_str_param» directive is duplicate in ./conf/nginx.conf:60
Не переживайте, это не ошибка в конфиге, просто просетайте в нуль значение этого параметра при создании конфига (ваша функция ngx_some_shit_create_loc_conf):

  • Для интов например: conf->connection_timeout = NGX_CONF_UNSET_UINT;
  • Для строк(!!!): conf->connection_str.len = 0; conf->connection_str.data = (u_char *)NULL;

Соответственно конфиг такой:

typedef struct {
  1. ngx_uint_t    connection_timeout;
  2. ngx_str_t    connection_string;
  3. } ngx_some_shit_loc_conf_t;

Как то так.

ИЮНЬ 22, 2011

zend framework logo php I18N in Zend %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

Hi.

Простецкая локализация всякого говнеца в зенде (Zend Framework) без кэша.

В бутстрапе втыкаем такое:

function _initTranslator() {
  1.   //
  2.   // Locale default (use session)
  3.   $sess = new Zend_Session_Namespace('session');
  4.   $lang = isset($sess-&gt;lang) ? $sess-&gt;lang : new Zend_Locale('ru');
  5.   Zend_Registry::set('Zend_Locale', $lang);
  6.  
  7.   //
  8.   // Translator
  9.   $translator = new Zend_Translate(array(
  10.     'adapter' =&gt; Zend_Translate::AN_INI,
  11.     'content' =&gt; APPLICATION_PATH . '/../files/trans/ru.ini',
  12.     'locale' =&gt; 'ru',
  13.   ));
  14.   $translator-&gt;addTranslation(APPLICATION_PATH . '/../files/trans/en.ini', 'en');
  15.   $translator-&gt;setLocale($lang-&gt;toString());
  16.  
  17.   // Set translator
  18.   Zend_Registry::set('Zend_Translate', $translator);
  19.   Zend_Form::setDefaultTranslator($translator);
  20.  }

Ну а уж переключение локалей в сессии все сами наговнякают.

Сия

МАРТ 22, 2011

vkontakte ru share button link 1024x567 Установка кнопки вконтакте %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

Хаи.

Вчера в егоркиным по приколу добавили кнопку Вконтакте Share на сайто skokalet.ru, расшарили несколько результатов у себя вконтакте и получили за день 1000 просмотров страниц (80 уников). Для сравнения до этого было примерно 100 просмотров (15 уников) в день.

Google analytics:

vkontakte social network share button effect Установка кнопки вконтакте %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

Ох уж эти соц сети, настоящий вирусняк! Я это назвал Social Network Share Button Effect icon smile Установка кнопки вконтакте %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

Вобщем кнопку добавить элементарно, достатчно вставить в HTML <head> тэг подгрузку скрипта, и в теле страницы в нужном месте вызвать JS код генерации кнопки и вуаля — воркин найс!

О том, как вставить кнопку vkontakte share.

ФЕВРАЛЬ 8, 2011

Hi.

Наговнякал тестовую апликуху под андроид, юзаем на пленинг геймах теперь на работе в ексиджене. Возможно полезно будет Scrum, Agile и ExP разработчикам/ПМам.

Planning Game Cards on Android Market.

Страницы:1...45678...11