tag:blogger.com,1999:blog-73229236916618737662024-03-08T09:04:47.089+04:00ПроЭкт кодэнэйм "Ку!"Мультисервисная Информационная Система: От Замысла До Запуска. <br>
Пыхтелки, Сопелки, Хотелки и Мечталки...DremLIN.Ruhttp://www.blogger.com/profile/02806766767776580764noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-7322923691661873766.post-65487756770882916702016-01-04T21:55:00.002+04:002016-01-04T23:00:11.581+04:00Netgear Stora MS2000. Hard-resetНачну с процедуры восстановления, известной как «hard-reset». Для этого выполните следующие действия:<br />
<br />
<ul>
<li>Включить устройство и отсчитать <b>ровно 15 секунд</b>; </li>
<li>Нажать и удерживать кнопку «Reset», синий Power-LED будет моргать (порядка 30 секунд); </li>
<li>Дождаться пока не погаснет Power-LED, а HDD1-LED загорится оранжевым; </li>
<li>Отпустить кнопку «Reset». </li>
</ul>
Больше от пользователя действий не требуется. Устройство попытается получить IP по DHCP, а после того как получит, HDD2-LED загорится на 1 секунду. Если вдруг IP не удастся получить, то диоды HDD моргнут 3 раза, а затем погаснут. На этом механизм восстановления остановится.<br />
<br />
После того как устройство получит IP и доступ к интернет, начнется закачка и HDD-LED будут попеременно загораться. По окончании порядка 5 минут, если интернет достаточно быстр, закачка и запись образа в устройство завершится, все светодиоды загорятся на 5 секунд, устройство перезапустится.<br />
<br />
Если процедура закачки и записи провалится, HDD-LED будут одновременно моргать.
Итак, работоспособность устройства достаточно просто восстановить и нужно очень постараться, чтобы получить высокотехнологичный кирпич.<br />
<br />
После «hard-reset» я заново выполнил первичную настройку устройства – вбил Product Key, указал имя пользователя и пароль, сделал обновление прошивки через web-интерфейс — на текущий момент hbs-5044.upd.<br />
<br />
<span style="background-color: white; color: #222222; font-family: Menlo, Monaco, 'Courier New', monospace; font-size: 14px; line-height: 22.4px;">echo PATH=/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/sbin:/opt/sbin:/usr/sbin:/sbin >> </span><span style="background-color: white; color: #222222; font-family: Menlo, Monaco, 'Courier New', monospace; font-size: 14px; line-height: 22.4px;">/etc/environment</span><br />
<span style="background-color: white; color: #222222; font-family: Menlo, Monaco, 'Courier New', monospace; font-size: 14px; line-height: 22.4px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: Menlo, Monaco, 'Courier New', monospace; font-size: 14px; line-height: 22.4px;">echo LANG=ru_RU.utf-8 >> </span><span style="background-color: white; color: #222222; font-family: Menlo, Monaco, 'Courier New', monospace; font-size: 14px; line-height: 22.4px;">/etc/environment</span><br />
<br />
<br />
<a href="http://habrahabr.ru/sandbox/21939/">http://habrahabr.ru/sandbox/21939/</a>DremLIN.Ruhttp://www.blogger.com/profile/02806766767776580764noreply@blogger.com0tag:blogger.com,1999:blog-7322923691661873766.post-76028324333976659442014-11-06T00:50:00.001+04:002014-11-06T00:51:37.648+04:00Подключение SuperObject к FreePascal для MacOSSuperObject 1.2.4 Изменения!!! (Компилируется в Лазарусе 1.2.4 + FreePascal 2.6.4 и Delphi 2006)
<pre class="delphi" name="code">
В интерфейсной части:
{$IFDEF FPC}
function QueryInterface({$IFDEF FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} iid: tguid; out obj): longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
{$ELSE}
function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;
{$ENDIF}
В имплементации:
{$IFDEF FPC}
function TSuperObject.QueryInterface({$IFDEF FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} iid: tguid; out obj): longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
{$ELSE}
function TSuperObject.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
{$ENDIF}
И еще 2 метода подобным способом:
In TSuperObject, replace lines 655 and 656
function _AddRef: Integer; virtual; stdcall;
function _Release: Integer; virtual; stdcall;
with
function _AddRef: Integer; virtual; {$IFDEF UNIX}cdecl{$ELSE}stdcall{$ENDIF};
function _Release: Integer; virtual; {$IFDEF UNIX}cdecl{$ELSE}stdcall{$ENDIF};
Also replace line 5218
function TSuperObject._AddRef: Integer; stdcall;
with
function TSuperObject._AddRef: Integer; {$IFDEF UNIX}cdecl{$ELSE}stdcall{$ENDIF};
and line 5223
function TSuperObject._Release: Integer; stdcall;
with
function TSuperObject._Release: Integer; {$IFDEF UNIX}cdecl{$ELSE}stdcall{$ENDIF};
</pre>
DremLIN.Ruhttp://www.blogger.com/profile/02806766767776580764noreply@blogger.com0tag:blogger.com,1999:blog-7322923691661873766.post-51475923560666375682014-09-27T12:21:00.000+04:002014-09-27T12:40:42.170+04:00Джанго и СУБД hints (mysql, postgres)Установка MySQLdb на MacOSX
<br />
1. Установить MySQL на комп
<br />
2. Добавить переменную в систему
<br />
<pre class="python" name="code">
export PATH=$PATH:/usr/local/mysql/bin
</pre>
<br />
3. Установить MySQLdb
<br />
<pre class="python" name="code">
pip install MySQL-python<br />
</pre>
<br />
<br />
Установка psycopg2 на MacOSX<br />
1. Установить PostgreSQL на комп
<br />
2. Добавить переменную в систему
<br />
<pre class="python" name="code">
export PATH=$PATH:/Library/PostgreSQL/9.3/bin
export PATH=$PATH:/Library/PostgreSQL/9.3/lib
export DYLD_LIBRARY_PATH=/Library/PostgreSQL/9.3/lib
</pre>
3. Установить psycopg2
<br />
<pre class="python" name="code">
pip install psycopg2<br />
</pre>
<br />
DremLIN.Ruhttp://www.blogger.com/profile/02806766767776580764noreply@blogger.comtag:blogger.com,1999:blog-7322923691661873766.post-79310756828588567582009-09-20T06:39:00.001+05:002009-09-20T07:13:21.053+05:00WLW – Windows Live Writer или как публиковать программный код на Blogger'е.<p><a href="http://lh5.ggpht.com/_NWikPGefqB4/SrWPYJIXfUI/AAAAAAAAADo/-rahg9s5Jh4/s1600-h/HighLight2%5B5%5D.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="HighLight2" border="0" alt="HighLight2" src="http://lh6.ggpht.com/_NWikPGefqB4/SrWOQYTreZI/AAAAAAAAADs/Qi1wOMCUFJU/HighLight2_thumb%5B4%5D.jpg?imgmax=800" width="180" height="113" /></a> </p> <p>Пробуем вставить код, используя <a href="http://www.codeplex.com/wlwSyntaxHighlighter" target="_blank">SyntaxHighlighter for Windows Live Writer Plugin</a>:</p> <p></p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:8856af81-a347-471e-b272-8e8cd5d1e947" class="wlWriterEditableSmartContent"><pre name="code" class="js">/******************************************<br />Auto-readmore link script, version 2.0 (for blogspot)<br /><br />(C)2008 by Anhvo<br /><br />visit http://en.vietwebguide.com to get more cool hacks <br />********************************************/<br />function removeHtmlTag(strx,chop){ <br /> if(strx.indexOf("<")!=-1)<br /> {<br /> var s = strx.split("<"); <br /> for(var i=0;i<s.length;i++){ <br /> if(s[i].indexOf(">")!=-1){ <br /> s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length); <br /> } <br /> } <br /> strx = s.join(""); <br /> }<br /> chop = (chop < strx.length-1) ? chop : strx.length-2; <br /> while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++; <br /> strx = strx.substring(0,chop-1); <br /> return strx+'...'; <br />}<br /><br />function createSummaryAndThumb(pID){<br /> var div = document.getElementById(pID);<br /> var imgtag = "";<br /> var img = div.getElementsByTagName("img");<br /> var summ = summary_noimg;<br /> if(img.length>=1) { <br /> imgtag = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="'+img[0].src+'" width="'+img_thumb_width+'px"/></span>';<br /> summ = summary_img;<br /> }<br /> <br /> var summary = imgtag + '<div>' + removeHtmlTag(div.innerHTML,summ) + '</div>';<br /> div.innerHTML = summary;<br />}</pre></div><br />В режиме просмотра Windows Live Writer вижу то, что и должен был увидеть: блок раскрашенного кода на javascript. DremLIN.Ruhttp://www.blogger.com/profile/02806766767776580764noreply@blogger.com0tag:blogger.com,1999:blog-7322923691661873766.post-17119773126015809822009-09-20T04:35:00.001+05:002009-09-20T06:21:58.433+05:00Syntax Highlighter Widget для Blogger'а<p><a href="http://lh5.ggpht.com/_NWikPGefqB4/SrVq0tHhLvI/AAAAAAAAADI/qS5_GjG2zpc/s1600-h/HighLight2%5B8%5D.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="HighLight2" border="0" alt="HighLight2" src="http://lh3.ggpht.com/_NWikPGefqB4/SrVq147606I/AAAAAAAAADM/KUOlzGI7aaI/HighLight2_thumb%5B4%5D.jpg?imgmax=800" width="368" height="191" /></a> </p> <p>Здесь я попробовал применить знания, полученные на <a href="http://ferrohouse.blogspot.com/2007/12/syntax-highlighter-blogger.html" target="_blank">Syntax Highlighter в Blogger'е</a>. Вариант так сказать для ленивых: Щелкнуть по ссылке –> <a href="http://fazibear.googlepages.com/blogger.html" target="_blank">Добавить на страницу виджет</a> –> Установить виджет –> Использовать.</p> <p>Наука по использованию возможностей виджета - очень простая. Любой текст, помещенный в теги: </p> <pre><pre class="тип_хайлайтера" name="code"><br />... Какой-то код, соответствующий типу хайлайтера ...<br /></pre><br />или<br /><textarea name="code" class="тип_хайлайтера" cols="60" rows="10"><br />... Какой-то код, соответствующий типу хайлайтера ...<br /></textarea></pre><br />раскрасится виджетом без всяких там занудных правок шаблона блога, как в ранее рассмотренных вариантах подветки. Вот так то... Все гениальное - просто! <br /><br /><br />Подробности использования <a href="http://code.google.com/p/syntaxhighlighter/wiki/Usage" target="_blank">здесь</a>, типы хайлайтеров <a href="http://code.google.com/p/syntaxhighlighter/wiki/Languages" target="_blank">здесь</a>. <br /><br /><br />Пример использования для <strong>class="delphi"</strong>: <br /><br /><pre class="delphi" name="code">FUNCTION Utf8ToAnsi (Source : STRING; UnknownChar : CHAR = 'ї') : ANSISTRING;<br /> (* Converts the given UTF-8 String to Windows ANSI (Win-1252).<br /> If a character can not be converted, the "UnknownChar" is inserted. *)<br />VAR<br /> SourceLen : INTEGER; // Length of Source string<br /> I, K : INTEGER;<br /> A : BYTE; // Current ANSI character value<br /> U : WORD;<br /> {$IFDEF UNICODE} // #2009-09-17 DremLIN<br /> Ch : WIDECHAR; // Dest char<br /> {$ELSE}<br /> Ch : CHAR; // Dest char<br /> {$ENDIF}<br /> Len : INTEGER; // Current real length of "Result" string<br />BEGIN<br /> SourceLen := Length (Source);<br /> SetLength (Result, SourceLen); // Enough room to live<br /> Len := 0;<br /> I := 1;<br /> WHILE I <= SourceLen DO BEGIN<br /> A := ORD (Source [I]);<br /> IF A < $80 THEN BEGIN // Range $0000..$007F<br /> INC (Len);<br /> {$IFDEF UNICODE} // #2009-09-17 DremLIN<br /> Result [Len] := AnsiChar(Source[I]);<br /> {$ELSE}<br /> Result [Len] := Source [I];<br /> {$ENDIF}<br /> INC (I);<br /> END<br /> ELSE BEGIN // Determine U, Inc I<br /> IF (A AND $E0 = $C0) AND (I < SourceLen) THEN BEGIN // Range $0080..$07FF<br /> U := (WORD (A AND $1F) SHL 6) OR (ORD (Source [I+1]) AND $3F);<br /> INC (I, 2);<br /> END<br /> ELSE IF (A AND $F0 = $E0) AND (I < SourceLen-1) THEN BEGIN // Range $0800..$FFFF<br /> U := (WORD (A AND $0F) SHL 12) OR<br /> (WORD (ORD (Source [I+1]) AND $3F) SHL 6) OR<br /> ( ORD (Source [I+2]) AND $3F);<br /> INC (I, 3);<br /> END<br /> ELSE BEGIN // Unknown/unsupported<br /> INC (I);<br /> FOR K := 7 DOWNTO 0 DO<br /> IF A AND (1 SHL K) = 0 THEN BEGIN<br /> INC (I, (A SHR (K+1))-1);<br /> BREAK;<br /> END;<br /> U := WIN1252_UNICODE [ORD (UnknownChar)];<br /> END;<br /> Ch := UnknownChar; // Retrieve ANSI char<br /> FOR A := $00 TO $FF DO<br /> IF WIN1252_UNICODE [A] = U THEN BEGIN<br /> Ch := CHR (A);<br /> BREAK;<br /> END;<br /> INC (Len);<br /> {$IFDEF UNICODE} // #2009-09-17 DremLIN<br /> Result [Len] := AnsiChar(Ch);<br /> {$ELSE}<br /> Result [Len] := Ch;<br /> {$ENDIF}<br /> END;<br /> END;<br /> SetLength (Result, Len);<br />END;</pre><br />Смотрю на красивую подсветку кода Delphi. Радуюсь. <br /><br /><br /><strong>- DejaVu??? <br /> <br />- Ку!!!... </strong> DremLIN.Ruhttp://www.blogger.com/profile/02806766767776580764noreply@blogger.com0tag:blogger.com,1999:blog-7322923691661873766.post-862250120212424222009-09-18T14:10:00.009+05:002009-09-20T04:53:47.105+05:00Подсветка кода или Syntax Highlighter на Blogger’е<h4><a href="http://lh5.ggpht.com/_NWikPGefqB4/SrTwcsm2m9I/AAAAAAAAADA/-i2tpNl_16o/s1600-h/HighLight%5B9%5D.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="HighLight" border="0" alt="HighLight" src="http://lh3.ggpht.com/_NWikPGefqB4/SrTwdtFw3MI/AAAAAAAAADE/QT6elIuQ_z8/HighLight_thumb%5B5%5D.jpg?imgmax=800" width="412" height="274" /></a></h4> <h4>Прикручивание публикации кода с подсветкой синтаксиса к <a href="www.blogspot.com" target="_blank">Blogger’у</a>.</h4> <p>Задумалось мне, на досуге, реализовать подсветку кода в моем блоге. Погуглил. Нашел несколько вариантов реализации задуманного. Вот обзорчик по теме: </p> <ul> <li><a href="http://blogovod.co.cc/?p=232" target="_blank">Подсветка кодов в блоге. Часть первая.</a> </li> <li><a href="http://blogovod.co.cc/?p=233" target="_blank">Подсветка кодов в блоге. Часть вторая.</a> </li> <li><a href="http://blogovod.co.cc/?p=702" target="_blank">Подсветка специального текста в Blogger-блоге.</a> </li> <li><a href="http://hobbinsblog.blogspot.com/2008/03/blogger.html" target="_blank">Код в Blogger;</a> </li> <li><a href="http://ferrohouse.blogspot.com/2007/12/syntax-highlighter-blogger.html" target="_blank">Syntax Highlighter в Blogger'е (Syntax Highligter Widget)</a>. </li> </ul> <p>Решил пока остановиться на этом: <a href="http://softwaremaniacs.org/soft/highlight/" target="_blank">Highlight.js</a>. Причины выбора:</p> <ul> <li>Динамический; </li> <li>Не загромождает шаблон страницы; </li> <li>Поддержка Delphi/Object Pascal (а также много других, распознование - автоматом); </li> <li>Легко прикручивается к Blogger. </li> </ul> <p>Как я его прикручивал? Рассказываю.</p> <p>Во первых выяснилось, что для размещения скрипта подсветки, да и вообще любых пользовательских скриптов, нужен отдельный файловый хостинг, потому что <a href="http://www.blogger.com" target="_blank">blogger</a> пользовательские файлы не хранит. Обидно, досадно, ну да ладно. Зарегался значит, я на <a href="http://fileave.com/" target="_blank">fileave.com</a>, а там предоставляют на халяву всего 50М, но мне для скриптиков блоггера – достаточно. </p> <p>Скачиваю <a href="http://softwaremaniacs.org/soft/highlight/download/" target="_blank">Highlight.js</a> (нужно обязательно расставить галки напротив нужных вариантов) заливаю на <a href="http://fileave.com/" target="_blank">fileave.com</a>. Теперь действую по инструкции: <a href="http://blogohelp.blogspot.com/2008/08/bloggercom.html">Подсветка синтаксиса в блоге на Blogger.com</a>. Хотя описание несколько устарело, основную идею переделки шаблона оттуда я извлек. </p> <div class="warning">Особое внимание надо уделить чтению файла readme.rus.txt из дистрибутива <a href="http://softwaremaniacs.org/soft/highlight/download/" target="_blank">Highlight.js</a>, по поводу использованию файла highlight.pack.js. И все получиться… </div> <p>Затем я, путем проб и ошибок, добавил скроллинг в элемент отображения кода. Для этого пришлось немного поправить используемый мною, для раскраски кода, стиль “Magula”:</p> <pre><code class="css">/* highlight.js styles */<br /><br />pre {<br /> margin: .5em; padding: .5em;<br /> border-style: solid;<br /> border-width: thin;<br /> border-color: darkgrey;<br /> background-color: #f4f4f4;<br />}<br /><br />pre code,<br />.ruby .subst,<br />.lisp .title {<br /> display: block;<br /> height: 420px;<br /> overflow: scroll;<br /> word-wrap: normal; /* Для Internet Explorer 5.5+ */<br /> line-height: 1.2em;<br /> color: black;<br />}<br /><br />... Здесь пропущены прочие описания стилей ... :)<br /><br />/* End of highlight.js styles */</code></pre><br />Смотрю на красивую подсветку кода Delphi. Радуюсь. <strong>Ку!... </strong><br /><br /><pre><code class="delphi">FUNCTION Utf8ToAnsi (Source : STRING; UnknownChar : CHAR = 'ї') : ANSISTRING;<br /> (* Converts the given UTF-8 String to Windows ANSI (Win-1252).<br /> If a character can not be converted, the "UnknownChar" is inserted. *)<br />VAR<br /> SourceLen : INTEGER; // Length of Source string<br /> I, K : INTEGER;<br /> A : BYTE; // Current ANSI character value<br /> U : WORD;<br /> {$IFDEF UNICODE} // #2009-09-17 DremLIN<br /> Ch : WIDECHAR; // Dest char<br /> {$ELSE}<br /> Ch : CHAR; // Dest char<br /> {$ENDIF}<br /> Len : INTEGER; // Current real length of "Result" string<br />BEGIN<br /> SourceLen := Length (Source);<br /> SetLength (Result, SourceLen); // Enough room to live<br /> Len := 0;<br /> I := 1;<br /> WHILE I <= SourceLen DO BEGIN<br /> A := ORD (Source [I]);<br /> IF A < $80 THEN BEGIN // Range $0000..$007F<br /> INC (Len);<br /> {$IFDEF UNICODE} // #2009-09-17 DremLIN<br /> Result [Len] := AnsiChar(Source[I]);<br /> {$ELSE}<br /> Result [Len] := Source [I];<br /> {$ENDIF}<br /> INC (I);<br /> END<br /> ELSE BEGIN // Determine U, Inc I<br /> IF (A AND $E0 = $C0) AND (I < SourceLen) THEN BEGIN // Range $0080..$07FF<br /> U := (WORD (A AND $1F) SHL 6) OR (ORD (Source [I+1]) AND $3F);<br /> INC (I, 2);<br /> END<br /> ELSE IF (A AND $F0 = $E0) AND (I < SourceLen-1) THEN BEGIN // Range $0800..$FFFF<br /> U := (WORD (A AND $0F) SHL 12) OR<br /> (WORD (ORD (Source [I+1]) AND $3F) SHL 6) OR<br /> ( ORD (Source [I+2]) AND $3F);<br /> INC (I, 3);<br /> END<br /> ELSE BEGIN // Unknown/unsupported<br /> INC (I);<br /> FOR K := 7 DOWNTO 0 DO<br /> IF A AND (1 SHL K) = 0 THEN BEGIN<br /> INC (I, (A SHR (K+1))-1);<br /> BREAK;<br /> END;<br /> U := WIN1252_UNICODE [ORD (UnknownChar)];<br /> END;<br /> Ch := UnknownChar; // Retrieve ANSI char<br /> FOR A := $00 TO $FF DO<br /> IF WIN1252_UNICODE [A] = U THEN BEGIN<br /> Ch := CHR (A);<br /> BREAK;<br /> END;<br /> INC (Len);<br /> {$IFDEF UNICODE} // #2009-09-17 DremLIN<br /> Result [Len] := AnsiChar(Ch);<br /> {$ELSE}<br /> Result [Len] := Ch;<br /> {$ENDIF}<br /> END;<br /> END;<br /> SetLength (Result, Len);<br />END;</code></pre><br /><br /><p>Для полного счастья не хватает нумерации строк. Ну что ж… А так ли она нужна? Возможно прав автор проекта <a href="http://softwaremaniacs.org/soft/highlight/download/" target="_blank">Highlight.js</a> <a href="http://softwaremaniacs.org/about/" target="_blank">Сагалаев Иван Григорьевич</a> – <a href="http://softwaremaniacs.org/blog/2007/09/10/highlight-js-evolution/" target="_blank">Баловство все это…</a> Буду морщить ум с этой стороны… А пока – Пока! Чао – какао… :)</p> DremLIN.Ruhttp://www.blogger.com/profile/02806766767776580764noreply@blogger.com2tag:blogger.com,1999:blog-7322923691661873766.post-11137453745857084032009-09-17T01:06:00.002+05:002009-09-24T13:32:05.845+05:00Delphi dbXmlRpc (VCL). Часть 2. Delphi XML Parser.<p>Как я уже писал <a href="http://dremlin.blogspot.com/2009/09/dbxmlrpc.html" target="_blank">ранее</a>, выбранный мной для разработки проЭкта “Ку!”, базовый компонент <a href="http://sourceforge.net/projects/delphixml-rpc" target="_blank">Delphi XML-RPC</a>, использует для парсинга XML компонент <a href="http://www.destructor.de/xmlparser/index.htm" target="_blank">XML Parser</a> от Stefan Heymann.</p><p><a href="http://lh5.ggpht.com/_NWikPGefqB4/SrOHKNVV4OI/AAAAAAAAACo/d-nfDTFrQFQ/s1600-h/xml-icon1%5B10%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="xml-icon1" border="0" alt="xml-icon1" src="http://lh5.ggpht.com/_NWikPGefqB4/SrOHKp9vG8I/AAAAAAAAACs/TGh4TFBepi4/xml-icon1_thumb%5B8%5D.jpg?imgmax=800" width="83" height="42" /></a> </p><p>Мне удалось связаться со Штефаном Хейманном и предоставить ему результаты моей адаптации его библиотеки для работы со средами Delphi 2006, 2009 и 2010. Штефан, сославшись на нехватку времени, сообщил, что в данный момент не может продолжить разработку своего проекта. Он любезно предоставил эту почетную миссию моей скромной персоне, согласовав со мной некоторые детали реализации проекта и предоставив мне последнюю версию, неопубликованных нигде ранее, исходников ядра своей библиотеки.</p><p>В результате нашей с ним переписки,  возник небольшой проЭктик: <a href="http://code.google.com/p/delphi-xmlparser/" target="_blank">Delphi XML Parser</a>, который я буду активно использовать в “Ку!”. Он конечно требует дальнейшей доработки, в части полной поддержки UNICODE, но пока для моего проЭкта “Ку!” – в самый раз! </p><p>Цель данной разработки - модификация проекта, начатого когда-то Штефаном Хейманном. Подробней узнать о базовом проекте можно на сайте автора: <a href="http://www.destructor.de/xmlparser/index.htm" target="_blank">Stefan Heymann's .Free Site</a>. </p><p>Модификация и номера версий проекта согласованы с автором базового проекта, со Штефаном.</p><ul><li>На сегодня текущая версия <a href="http://code.google.com/p/delphi-xmlparser/" target="_blank">Delphi XML Parser</a> – 1.1.1; </li>
<li>Поддерживаются среды разработки: Delphi и C++Builder (версии 4, 5, 6, 7, 2005, 2006, 2009, 2010); </li>
<li>Библиотека собирается с предупреждениями, но приложенные “демы” – работают. Проверено “электроникой”. </li>
</ul><p><a href="http://lh6.ggpht.com/_NWikPGefqB4/SrJsNkid6VI/AAAAAAAAABg/ZPgtLb3ZZuw/s1600-h/Delphi%20XML%20Parser%5B10%5D.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Delphi XML Parser" border="0" alt="Delphi XML Parser" src="http://lh3.ggpht.com/_NWikPGefqB4/SrJsO6YtWmI/AAAAAAAAABk/wnaIIzoI2UY/Delphi%20XML%20Parser_thumb%5B8%5D.jpg?imgmax=800" width="485" height="304" /></a> </p><p><strong>Ку!!! </strong>До встречи…</p>DremLIN.Ruhttp://www.blogger.com/profile/02806766767776580764noreply@blogger.com1tag:blogger.com,1999:blog-7322923691661873766.post-56089865403832737092009-09-03T23:41:00.095+05:002009-09-18T00:49:52.223+05:00Delphi dbXmlRpc (VCL). Часть 1. Постановка задачи. Выбор базовых компонентов.<p><strong>Для реализации “Хотелки №1” необходимо создать прототип библиотеки компонентов для построения среды передачи данных посредством протокола XML-RPC.</strong> </p> <p>Свой проЭкт, на текущем этапе, я буду разрабатывать для платформы Windows. Возможно когда-нибудь я смогу реализовать кроссплатформенность, но это пока из разряда “мечталок”.</p> <p>Итак, в качестве среды разработки выбираю Delphi 2010, демо-версия которой доступна на сайте производителя. </p> <p>Составные части проектируемой библиотеки: </p> <ol> <li><em>Компонент “DdbXmlRpcClient”. (Для построения клиентских приложений).</em> </li> <li><em>Компонент “DdbXmlRpcServer”. (Для построения сервера<em> приложений</em>).</em> </li> <li><em>Источник данных. (Для обеспечения подключений к “Хранилищу данных”, дальше по тексту - ХД).</em> </li> </ol> <p>В рамках этой задачи необходимо: </p> <ul> <li><em>На стороне клиентского компонента обеспечить формирование и передачу запроса серверному компоненту на получение некоторых данных из ХД;</em> </li> <li><em>На стороне серверного компонента обеспечить парсинг клиентского запроса, затем сформировать и отправить запрос к ХД;</em> </li> <li><em>На стороне серверного компонента принять данные из ХД. Сформировать и отправить ответ клиентскому компоненту;</em> </li> <li><em>На стороне клиентского компонента обеспечить обработку ответа, полученного от серверного компонента, затем отобразить полученные данные на экране пользователя системы.</em> </li> </ul> <p><strong>Реализация “хотелки №1”. Начало.</strong></p> <p>Для начала я дал <strong>Имя</strong> нашей новой библиотеке, для последующего использования. Отныне она будет называться <strong>Delphi dbXmlRpc (VCL)</strong>, что на человеческом языке означает – “<a href="http://ru.wikipedia.org/wiki/Delphi_(язык_программирования)" target="_blank">Delphi</a> <a href="http://ru.wikipedia.org/wiki/Базы_данных" target="_blank">Database</a> <a href="http://ru.wikipedia.org/wiki/XML-RPC" target="_blank">XmlRpc</a> <a href="http://ru.wikipedia.org/wiki/Visual_Component_Library" target="_blank">(Visual Component Library)</a>”. Прошу любить и жаловать...</p> <p>В качестве базовой библиотеки для реализации задуманного буду использовать компонент <a href="http://sourceforge.net/projects/delphixml-rpc">Delphi XML-RPC</a> for Windows and Kylix for GNU/Linux (разработчики: Clifford E. Baeseman и Team-DXmlRpc):</p> <ul> <li>Последняя версия доступная на сайте - 2.0.0 в CVS - 2.1.0; </li> <li>Дата последнего обновления: 2004-04-20; </li> <li>Поддерживается работа в средах Delphi 6, 7; </li> <li>Для работы необходимы компоненты <a href="http://www.indyproject.org">INDY 9</a> и <a href="http://www.destructor.de/xmlparser/index.htm">XMLParcer</a> от Stefan Heymann (входит в комплект); </li> <li>Компонент уже достаточно давно не обновлялся авторами, но необходимый базовый функционал в нем заложен. </li> <li>Для использования в проЭкте – годен (потребуется относительно небольшая доработка). </li> </ul> <p>Я установил Delphi 2010, а с ним идет INDY 10. Для начала придется "довести до нужной кондиции" используемые сторонние компоненты <a href="http://sourceforge.net/projects/delphixml-rpc">Delphi XML-RPC</a>, и <a href="http://www.destructor.de/xmlparser/index.htm">XMLParcer</a>, а именно:</p> <ul> <li>Адаптировать для Delphi 2010 (желательно обеспечить совместимость с предыдущими версиями IDE и RAD Studio); </li> <li>Адаптировать для использования с INDY 10 (желательно сохранить совместимость с предыдущей версией INDY 9). </li> </ul> <p>Я использовал последние доступные версии библиотек 2.1.0 и 1.0.17 соответственно. После некоторых "танцев с бубном" удалось адаптировать код используемых библиотек для работы с UNICODE и собрать все это хозяйство в Delphi 2010. Поддержку предыдущих версий среды буду реализовывать позже... </p> <p>Сборка получилась на “скорую руку”, по-быстрому, короче – “рыба”, но мне, для испытания  возможностей выбранных базовых компонентов – достаточно. </p> <p>Кому интересно посмотреть что у меня получилось смотрим: <a href="http://www.opensvn.ru/project_info.php?id_project=dbxmlrpc">http://www.opensvn.ru/project_info.php?id_project=dbxmlrpc</a></p> <p><em><a href="http://lh6.ggpht.com/_NWikPGefqB4/SrHlxjjWeiI/AAAAAAAAABo/NdYWwqtjMtM/s1600-h/dXmlRcp%5B2%5D.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="dXmlRcp" border="0" alt="dXmlRcp" src="http://lh3.ggpht.com/_NWikPGefqB4/SrHlyjwfzlI/AAAAAAAAABw/n92LC2SW-dY/dXmlRcp_thumb%5B1%5D.jpg?imgmax=800" width="513" height="392" /></a> </em></p> <p><em>Читатель:</em> "А где же передача данных?" <br /><em>Писатель:</em> "Вот отшлифую текущие наработки - тогда продолжим..." </p> <p>За сим прощаюсь.</p> DremLIN.Ruhttp://www.blogger.com/profile/02806766767776580764noreply@blogger.com6tag:blogger.com,1999:blog-7322923691661873766.post-19472056478374030082009-09-02T18:00:00.112+05:002009-09-18T01:04:38.404+05:00"Ку!": Хотелки...<p>Итак перехожу от мечталок к хотелкам. <br />
<b><a href="http://lh4.ggpht.com/_NWikPGefqB4/SrKRuxUebFI/AAAAAAAAACI/_StklPVfHGw/s1600-h/vinni2%5B10%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="vinni2" border="0" alt="vinni2" src="http://lh5.ggpht.com/_NWikPGefqB4/SrKRv8bvoQI/AAAAAAAAACM/AV0DJPBcTbM/vinni2_thumb%5B4%5D.jpg?imgmax=800" width="368" height="251" /></a></b></p><blockquote><p><em>Здесь необходимо сказать о том, что основной интерес для меня представляют "Ку" в стилях:</em></p><ul><li><a href="http://ru.wikipedia.org/wiki/Стратегия_в_реальном_времени" target="_blank"><b><em>РТС (RTS)</em></b></a><em>: ДуняВторая(Dune2), ВарСтарКрафт(WarCraft, StarCraft), Аллоды и т.п.</em></li>
<li><a href="http://ru.wikipedia.org/wiki/RPG" target="_blank"><b><em>РПГ (RPG)</em></b></a><em>: Фаллауты 1 и 2 (Fallout1, Fallout2), ВизардриОсьмой(Wizardry8), Морровинды(Morrowind), Князи 1, 2, и 2.5, Златогорья 1 и 2 и т.п.</em></li>
</ul><p><em>Экшены на быстроту реакции пальцев - не люблю, но "погамал" изрядно. Симуляторы и прочие - тоже пожалуй не моё...</em></p></blockquote><p><b>Ку!..</b> Поехали!</p><ol><li>Хочу, чтобы "Ку!" состояла из <a href="http://ru.wikipedia.org/wiki/Сервер_(программное_обеспечение)" target="_blank">"Сервера"</a>, <a href="http://ru.wikipedia.org/wiki/Клиент_(программный)" target="_blank">"Клиента"</a>, и <a href="http://ru.wikipedia.org/wiki/Хранилище_Данных" target="_blank">"Хранилищ Данных"</a>;</li>
<li>Хочу, чтобы в "Ку!" были режимы интерфейса <a href="http://ru.wikipedia.org/wiki/Изометрическая_проекция" target="_blank">"Изометрия"</a>, <a href="http://ru.wikipedia.org/wiki/3D" target="_blank">"3D"</a>, <a href="http://ru.wikipedia.org/wiki/MUD" target="_blank">"Текстовый МУД"</a>;</li>
<li>Хочу, чтобы в "Ку!" были режимы геймплея <a href="http://ru.wikipedia.org/wiki/Синглплеер" target="_blank">"Одиночное прохождение"</a> и <a href="http://ru.wikipedia.org/wiki/Многопользовательская_игра" target="_blank">"Мультиплеер"</a>;</li>
<li>Хочу, чтобы "Ку!" могла работать во всех основных системах: <a href="http://ru.wikipedia.org/wiki/Windows" target="_blank">"Окны"</a>, <a href="http://ru.wikipedia.org/wiki/Linux" target="_blank">"Пингвины"</a>, <a href="http://ru.wikipedia.org/wiki/Mac_OS" target="_blank">"Яблоки"</a>, <a href="http://ru.wikipedia.org/wiki/BSD" target="_blank">"Бздишки"</a> и <a href="http://ru.wikipedia.org/wiki/Solaris_(операционная_система)" target="_blank">"Солярки"</a>.</li>
</ol><p>Продолжение следует...</p>DremLIN.Ruhttp://www.blogger.com/profile/02806766767776580764noreply@blogger.comtag:blogger.com,1999:blog-7322923691661873766.post-17689978740734322512009-09-01T17:00:00.037+05:002009-09-21T02:09:07.399+05:00Интродукция, или о чем мне хочется Вам рассказать…Всем привет! Я называю себя DremLIN. Я - мечтатель. <br /><a href="http://lh6.ggpht.com/_NWikPGefqB4/SrKI44MIGrI/AAAAAAAAAB4/Uo-HeSa-TKM/s1600-h/Sky1%5B3%5D.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Sky1" border="0" alt="Sky1" src="http://lh6.ggpht.com/_NWikPGefqB4/SrKI6IJn-4I/AAAAAAAAAB8/ZZTzoJAFJBo/Sky1_thumb%5B1%5D.jpg?imgmax=800" width="355" height="287" /></a> <br />Мечт у меня - тьма. От их множества пухнет и болит моя голова. Мой мозг готов вот-вот взорваться... Близится Большой Бадабум... И покинут мЕчты мой мозг... И растворятся они во мраке вселенной... И никто и никогда не узнает что же хранил мой бедный мозг в глубинах своих извилин... <br /> <br />СТОП! Дайте мне бумагу и карандаш. Буду марать... <br /> <br />- Получит ли кто удовольствие от прочтения моих записок? - Не уверен. <br />- Будет ли от них кому-то какая-нибудь практическая польза? - Возможно. <br />- Будет ли Большой Бадабум? - Когда-нибудь, но не здесь и не сейчас. <br />(<i><a href="http://news.mail.ru/society/1320600/" target="blank">Поговаривают про 21.12.12...</a> То есть всего-то через 3 года... Мда...</i>). <br /> <br />Итак я начинаю <a href="http://dremlin.blogspot.com/"><b>"Ку!"</b></a>. <br /> <br />Для начала приведу небольшую <a href="http://ru.wikipedia.org/wiki/Чатлано-пацакский_язык">справку</a>: <br /> <blockquote><i><b>Материал из <a href="http://ru.wikipedia.org/">Википедии</a> — свободной энциклопедии</b> <br /> <br />Чатлано-пацакский язык (чатланский язык) — вымышленный язык из кинофильма «Кин-дза-дза!». Чатлано-пацакский — родной язык коренных жителей планет Плюк и Хануд, называющих себя чатланами и пацаками. <br />Особенность языка заключается в том, что практически все понятия (за редким исключением) выражаются одним словом — <a href="http://ru.wikipedia.org/wiki/Ку">«ку»</a>. Столь маленький словарь языка обусловлен тем, что жители Плюка и Хануда обладают телепатией. <br />Возможно, также, что смысл может зависеть от интонации слова <a href="http://ru.wikipedia.org/wiki/Ку">«ку»</a>, которая не различаема иноговорящими.</i></blockquote> <br />Когда-то, Я как и многие другие до меня (во время меня и наверняка после меня) запоем играл в компутерные игрухи, или как сейчас говорят "гамился". Пройдено великое множество квестов, виртуальных дорог, перемещений, перевоплощений. Но всегда мне чего-то не хватало. Меня постоянно преследовала мысль, что "вот этот квест я бы составил иначе... а вот здесь я бы... а вот тут...". Иногда хотелось бы надавать приказов своим персонажам и пойти поспать (на учебу, на работу (нужное подчеркнуть)), а игра продолжалась бы без моего непосредственного участия. Утром я бы посмотрел результаты действий своих персонажей, оценил обстановку, накликал новых команд и все - можно заниматься обычными делами... или взять управление в свои руки и "гамиться", "гамиться", "гамиться". <br /> <br />Когда в нашу жизнь ворвались мобильные телефоны и предоставили нам возможность развлекаться вдали от компа, меня начало преследовать труднопреодолимое желание "гамиться" в любимую игрушку в ранее недоступных местах. В автобусах, в поездах, на работе, на учебе, на пляже, на даче... <br /> <br />А теперь все продвинутое человечество "гамиться" в разноразные <a href="http://ru.wikipedia.org/wiki/MMORPG">MMORPG'и</a> друг с другом и друг против друга... Реальные ведь люди, а не боты какие-то там... <br /> <br />И вот тогда я замечтал создать "Супер-Мега-Ультра" игруху которая могла бы покрыть все мои хотелки по идеальной (с моей скромной точки зрения) игре. И даже запыхтел с натугой в этом направлении... С энтузиазмом освоил Делфи, как самый быстрый вариант входа в программерство. И сразу начал писать код... Думаю, что даже не надо никому говорить, что в результате получилась полная фигня... Скажу лишь, что жизнь сложилась так, что геймдевелопером я так и не стал... <br /> <br />А вот мечта о такой игрухе - так и живет все эти годы в моём мозге, периодически наваливаясь и мешая спать. И тогда моё воображение рисует мне картины геймплея, где <br />я "строю" своих юнитов за "хреновую работу и за неуплату взносов" <a href="http://www.laertsky.com/">(с) Лаэртский</a>. <br /> <br />А ещё иногда мне приходят сны, в которых мне снится готовая реализация блоков программы, где всё просто и понятно. Предельно ясными становятся алгоритмы действий и все то, что для этого необходимо сделать, и как запрограммировать код... Но на утро я почти ничего не могу вспомнить. Только ощущение ясности и простоты реализации... Как же тогда товарищ Менделеев нарисовал свою таблицу? Тоже по ощущениям? Или ему во сне еще и яблоко упало на голову, как товарищу Ньютону? Не понятно... <br /> <br />Ну что ж... Буду попробовать вспомнить все... И флаг мне в руки... И барабан... DremLIN.Ruhttp://www.blogger.com/profile/02806766767776580764noreply@blogger.com0