Участник:VitaliyFilippov/Закладки — различия между версиями

Материал из YourcmcWiki
Перейти к: навигация, поиск
(Добавлена закладка The Bulbdial Clock Kit - Evil Mad Scientist Laboratories)
м
Строка 1: Строка 1:
 
'''[[Файл:Rss16.png|link={{#listfeedurl:Закладки У Виталия}}]] На мои закладки можно [{{#listfeedurl:Закладки У Виталия}} подписаться по RSS] — просто кликните по ссылке.'''
 
'''[[Файл:Rss16.png|link={{#listfeedurl:Закладки У Виталия}}]] На мои закладки можно [{{#listfeedurl:Закладки У Виталия}} подписаться по RSS] — просто кликните по ссылке.'''
 
<listfeed name="Закладки У Виталия" date="^\s*(?:\[[^\:]*\]\s*)?%d\s+%b,\s*%H:%M:%S:\s*" headingdate="%Y" />
 
<listfeed name="Закладки У Виталия" date="^\s*(?:\[[^\:]*\]\s*)?%d\s+%b,\s*%H:%M:%S:\s*" headingdate="%Y" />
<!--BookmarkHeadings:"%Y","%B %Y"--><!--BookmarkDate:%d %B, %H:%M:%S:-->
+
<!--BookmarkHeadings:"%Y", «%B %--><!--BookmarkDate:%d %B, %H:%M:%S:-->
  
 
== 2011 ==
 
== 2011 ==
 +
 
=== Ноябрь 2011 ===
 
=== Ноябрь 2011 ===
  
* 14 Ноябрь, 18:19:54: [http://www.evilmadscientist.com/article.php/bulbdialkit The Bulbdial Clock Kit - Evil Mad Scientist Laboratories]
+
* 14 Ноябрь, 18:19:54: [http://www.evilmadscientist.com/article.php/bulbdialkit The Bulbdial Clock Kit Evil Mad Scientist Laboratories]
* 14 Ноябрь, 02:47:58: [https://sites.google.com/site/indy256/algo_cpp/ Список алгоритмов и структур данных на C++ - Algorithms in Java]
+
* 14 Ноябрь, 02:47:58: [https://sites.google.com/site/indy256/algo_cpp/ Список алгоритмов и структур данных на C++ Algorithms in Java]
* 11 Ноябрь, 11:19:06: [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=270852 #270852 - iptables: (patch) to add userspace support for kernel patch per-program per-connection filtering - Debian Bug report logs]
+
* 11 Ноябрь, 11:19:06: [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=270852 #270852 iptables: (patch) to add userspace support for kernel patch per-program per-connection filtering Debian Bug report logs]
 
* 10 Ноябрь, 23:55:26: [http://demotivators.ru/media/posters/97794_beregovaya-ohrana.jpg 97794_beregovaya-ohrana.jpg (760×575)]
 
* 10 Ноябрь, 23:55:26: [http://demotivators.ru/media/posters/97794_beregovaya-ohrana.jpg 97794_beregovaya-ohrana.jpg (760×575)]
 
* 10 Ноябрь, 00:21:10: [http://www.component-reaktiv.ru/ Компонент-Реактив | Компонент-Реактив]
 
* 10 Ноябрь, 00:21:10: [http://www.component-reaktiv.ru/ Компонент-Реактив | Компонент-Реактив]
* 09 Ноябрь, 12:38:57: [http://rushim.ru/ Группа компаний "РусХим"]
+
* 09 Ноябрь, 12:38:57: [http://rushim.ru/ Группа компаний «РусХим»]
* 09 Ноябрь, 03:33:43: [http://stackoverflow.com/questions/77718/java-operator-overload c++ - Java operator overload - Stack Overflow]
+
* 09 Ноябрь, 03:33:43: [http://stackoverflow.com/questions/77718/java-operator-overload c++ Java operator overload Stack Overflow]
*: <html><p>There are a lot of posts complaining about operator overloading.</p>  <p>I felt I had to clarify the "operator overloading" concepts, offering an alternative viewpoint on this concept.</p>  <h1>Code obfuscating?</h1>  <p>This argument is a fallacy.</p>  <h2>Obfuscating is possible in all languages...</h2>  <p>It is as easy to obfuscate code in C or Java through functions/methods than it is in C++ through operator overloads:</p>  <pre class="default prettyprint"><code><span class="com">// C++</span><span class="pln"><br>T </span><span class="kwd">operator</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">const</span><span class="pln"> T </span><span class="pun">&amp;</span><span class="pln"> a</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">const</span><span class="pln"> T </span><span class="pun">&amp;</span><span class="pln"> b</span><span class="pun">)</span><span class="pln"> </span><span class="com">// add ?</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp;T c </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp;c</span><span class="pun">.</span><span class="pln">value </span><span class="pun">=</span><span class="pln"> a</span><span class="pun">.</span><span class="pln">value </span><span class="pun">-</span><span class="pln"> b</span><span class="pun">.</span><span class="pln">value </span><span class="pun">;</span><span class="pln"> </span><span class="com">// substract !!!</span><span class="pln"><br>&nbsp; &nbsp;</span><span class="kwd">return</span><span class="pln"> c </span><span class="pun">;</span><span class="pln"><br></span><span class="pun">}</span><span class="pln"><br><br></span><span class="com">// Java</span><span class="pln"><br></span><span class="kwd">static</span><span class="pln"> T add </span><span class="pun">(</span><span class="pln">T a</span><span class="pun">,</span><span class="pln"> T b</span><span class="pun">)</span><span class="pln"> </span><span class="com">// add ?</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp;T c </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> T</span><span class="pun">()</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp;c</span><span class="pun">.</span><span class="pln">value </span><span class="pun">=</span><span class="pln"> a</span><span class="pun">.</span><span class="pln">value </span><span class="pun">-</span><span class="pln"> b</span><span class="pun">.</span><span class="pln">value </span><span class="pun">;</span><span class="pln"> </span><span class="com">// substract !!!</span><span class="pln"><br>&nbsp; &nbsp;</span><span class="kwd">return</span><span class="pln"> c </span><span class="pun">;</span><span class="pln"><br></span><span class="pun">}</span><span class="pln"><br><br></span><span class="com">/* C */</span><span class="pln"><br>T add </span><span class="pun">(</span><span class="pln">T a</span><span class="pun">,</span><span class="pln"> T b</span><span class="pun">)</span><span class="pln"> </span><span class="com">/* add ? */</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp;T c </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp;c</span><span class="pun">.</span><span class="pln">value </span><span class="pun">=</span><span class="pln"> a</span><span class="pun">.</span><span class="pln">value </span><span class="pun">-</span><span class="pln"> b</span><span class="pun">.</span><span class="pln">value </span><span class="pun">;</span><span class="pln"> </span><span class="com">/* substract !!! */</span><span class="pln"><br>&nbsp; &nbsp;</span><span class="kwd">return</span><span class="pln"> c </span><span class="pun">;</span><span class="pln"><br></span><span class="pun">}</span><span class="pln"><br></span></code></pre>  <h2>...Even in Java's standard interfaces</h2>  <p>For another example, let's see the <code>Cloneable</code> interface in Java: <a href="http://download.oracle.com/javase/7/docs/api/java/lang/Cloneable.html" rel="nofollow">http://download.oracle.com/javase/7/docs/api/java/lang/Cloneable.html</a></p>  <p>You are supposed to clone the object implementing this interface. But you could lie. And create a different object. In fact, this interface is so weak you could return another type of object altogether, just for the fun of it:</p>  <pre class="default prettyprint"><code><span class="kwd">class</span><span class="pln"> </span><span class="typ">MySincereHandShake</span><span class="pln"> </span><span class="kwd">implements</span><span class="pln"> </span><span class="typ">Cloneable</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="kwd">public</span><span class="pln"> </span><span class="typ">Object</span><span class="pln"> clone</span><span class="pun">()</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp;</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MyVengefulKickInYourHead</span><span class="pun">()</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br></span><span class="pun">}</span><span class="pln"><br></span></code></pre>  <p>As the <code>Cloneable</code> interface can be abused/obfuscated, should it be banned on the same grounds C++ operator overloading are supposed to be?</p>  <p>We could overload the <code>toString()</code> method of a <code>MyComplexNumber</code> class to have it return the stringified hour of the day. Should the <code>toString()</code> overloading be banned, too? We could sabotage <code>MyComplexNumber.equals</code> to have it return a random value, modify the operands... etc. etc. etc..</p>  <p><b>In Java, as in C++, or whatever language, the programmer must respect a minimum of semantics when writing code. This means implementing a <code>add</code> function that adds, and <code>Cloneable</code> implementation method that clones, and a <code>++</code> operator than increments.</b></p>  <h1>What's obfuscating anyway?</h1>  <p>Now that we know that code can be sabotaged even through the pristine Java methods, we can ask ourselves about the real use of operator overloading in C++?</p>  <h2>Clear and natural notation: methods vs. operator overloading?</h2>  <p>We'll compare below, for different cases, the "same" code in Java and C++, to have an idea of which kind of coding style is clearer.</p>  <h3>Natural comparisons:</h3>  <pre class="default prettyprint"><code><span class="com">// C++ comparison for built-ins and user-defined types</span><span class="pln"><br></span><span class="kwd">bool</span><span class="pln"> &nbsp; &nbsp;isEqual &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> A </span><span class="pun">==</span><span class="pln"> B </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">bool</span><span class="pln"> &nbsp; &nbsp;isNotEqual &nbsp; &nbsp; &nbsp; </span><span class="pun">=</span><span class="pln"> A </span><span class="pun">!=</span><span class="pln"> B </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">bool</span><span class="pln"> &nbsp; &nbsp;isLesser &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">=</span><span class="pln"> A </span><span class="pun">&lt;</span><span class="pln"> &nbsp;B </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">bool</span><span class="pln"> &nbsp; &nbsp;isLesserOrEqual &nbsp;</span><span class="pun">=</span><span class="pln"> A </span><span class="pun">&lt;=</span><span class="pln"> B </span><span class="pun">;</span><span class="pln"><br><br></span><span class="com">// Java comparison for user-defined types</span><span class="pln"><br></span><span class="kwd">boolean</span><span class="pln"> isEqual &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> A</span><span class="pun">.</span><span class="pln">equals</span><span class="pun">(</span><span class="pln">B</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">boolean</span><span class="pln"> isNotEqual &nbsp; &nbsp; &nbsp; </span><span class="pun">=</span><span class="pln"> </span><span class="pun">!</span><span class="pln"> A</span><span class="pun">.</span><span class="pln">equals</span><span class="pun">(</span><span class="pln">B</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">boolean</span><span class="pln"> isLesser &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">=</span><span class="pln"> A</span><span class="pun">.</span><span class="pln">comparesTo</span><span class="pun">(</span><span class="pln">B</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&lt;</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">boolean</span><span class="pln"> isLesserOrEqual &nbsp;</span><span class="pun">=</span><span class="pln"> A</span><span class="pun">.</span><span class="pln">comparesTo</span><span class="pun">(</span><span class="pln">B</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&lt;=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span></code></pre>  <p>Please note that A and B could be of any type in C++, as long as the operator overloads are provided. In Java, when A and B are not primitives, the code can become very confusing, even for primitive-like objects (BigInteger, etc.)...</p>  <h3>Natural array/container accessors and subscripting:</h3>  <pre class="default prettyprint"><code><span class="com">// C++ container accessors, more natural</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myArray</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myVector</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// subscript operator</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myString</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// subscript operator</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myMap</span><span class="pun">[</span><span class="str">"25"</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>myArray</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> &nbsp;</span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>myVector</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>myString</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>myMap</span><span class="pun">[</span><span class="str">"25"</span><span class="pun">]</span><span class="pln"> &nbsp;</span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br><br></span><span class="com">// Java container accessors, each one has its special notation</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myArray</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myVector</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="lit">25</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp;</span><span class="com">// method get</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myString</span><span class="pun">.</span><span class="pln">charAt</span><span class="pun">(</span><span class="lit">25</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> </span><span class="com">// method charAt</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myMap</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="str">"25"</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; </span><span class="com">// method get</span><span class="pln"><br>myArray</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> &nbsp;</span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>myVector</span><span class="pun">.</span><span class="kwd">set</span><span class="pun">(</span><span class="lit">25</span><span class="pun">,</span><span class="pln"> value</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// method set</span><span class="pln"><br>myMap</span><span class="pun">.</span><span class="kwd">set</span><span class="pun">(</span><span class="str">"25"</span><span class="pun">,</span><span class="pln"> value</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// method set</span><span class="pln"><br></span></code></pre>  <p>In Java, we see that for each container to do the same thing (access its content through an index or identifier), we have a different way to do it, which is confusing.</p>  <p>In C++, each container uses the same way to access its content, thanks to operator overload.</p>  <h3>Natural advanced types manipulation</h3>  <p>The examples below use a <code>Matrix</code> object, found using the first links found on Google for "<a href="https://encrypted.google.com/search?q=Java+Matrix+object" rel="nofollow">Java Matrix object</a>" and "<a href="https://encrypted.google.com/search?q=c%2B%2B+Matrix+object" rel="nofollow">c++ Matrix object</a>":</p>  <pre class="default prettyprint"><code><span class="com">// C++ YMatrix matrix implementation on CodeProject</span><span class="pln"><br></span><span class="com">// http://www.codeproject.com/KB/architecture/ymatrix.aspx</span><span class="pln"><br></span><span class="com">// A, B, C, D, E, F are Matrix objects;</span><span class="pln"><br>E </span><span class="pun">=</span><span class="pln"> &nbsp;A </span><span class="pun">*</span><span class="pln"> </span><span class="pun">(</span><span class="pln">B </span><span class="pun">/</span><span class="pln"> </span><span class="lit">2</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>E </span><span class="pun">+=</span><span class="pln"> </span><span class="pun">(</span><span class="pln">A </span><span class="pun">-</span><span class="pln"> B</span><span class="pun">)</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="pun">(</span><span class="pln">C </span><span class="pun">+</span><span class="pln"> D</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>F </span><span class="pun">=</span><span class="pln"> &nbsp;E </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// deep copy of the matrix</span><span class="pln"><br><br></span><span class="com">// Java JAMA matrix implementation (seriously...)</span><span class="pln"><br></span><span class="com">// http://math.nist.gov/javanumerics/jama/doc/</span><span class="pln"><br></span><span class="com">// A, B, C, D, E, F are Matrix objects;</span><span class="pln"><br>E </span><span class="pun">=</span><span class="pln"> A</span><span class="pun">.</span><span class="pln">times</span><span class="pun">(</span><span class="pln">B</span><span class="pun">.</span><span class="pln">times</span><span class="pun">(</span><span class="lit">2</span><span class="pun">))</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>E</span><span class="pun">.</span><span class="pln">plusEquals</span><span class="pun">(</span><span class="pln">A</span><span class="pun">.</span><span class="pln">minus</span><span class="pun">(</span><span class="pln">B</span><span class="pun">).</span><span class="pln">times</span><span class="pun">(</span><span class="pln">C</span><span class="pun">.</span><span class="pln">plus</span><span class="pun">(</span><span class="pln">D</span><span class="pun">)))</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>F </span><span class="pun">=</span><span class="pln"> E</span><span class="pun">.</span><span class="pln">copy</span><span class="pun">()</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// deep copy of the matrix</span><span class="pln"><br></span></code></pre>  <p>And this is not limited to matrices. The <code>BigInteger</code> and <code>BigDecimal</code> classes of Java suffer from the same confusing verbosity, whereas their equivalent in C++ are as clear as built-in types.</p>  <h3>Natural iterators:</h3>  <pre class="default prettyprint"><code><span class="com">// C++ Random Access iterators</span><span class="pln"><br></span><span class="pun">++</span><span class="pln">it </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// move to the next item</span><span class="pln"><br></span><span class="pun">--</span><span class="pln">it </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// move to the previous item</span><span class="pln"><br>it </span><span class="pun">+=</span><span class="pln"> </span><span class="lit">5</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// move to the next 5th item (random access)</span><span class="pln"><br>value </span><span class="pun">=</span><span class="pln"> </span><span class="pun">*</span><span class="pln">it </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// gets the value of the current item</span><span class="pln"><br></span><span class="pun">*</span><span class="pln">it </span><span class="pun">=</span><span class="pln"> </span><span class="lit">3.1415</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// sets the value 3.1415 to the current item</span><span class="pln"><br></span><span class="pun">(*</span><span class="pln">it</span><span class="pun">).</span><span class="pln">foo</span><span class="pun">()</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// call method foo() of the current item</span><span class="pln"><br><br></span><span class="com">// Java ListIterator&lt;E&gt; "bi-directional" iterators</span><span class="pln"><br>value </span><span class="pun">=</span><span class="pln"> it</span><span class="pun">.</span><span class="kwd">next</span><span class="pun">()</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; </span><span class="com">// move to the next item &amp; return the value</span><span class="pln"><br>value </span><span class="pun">=</span><span class="pln"> it</span><span class="pun">.</span><span class="pln">previous</span><span class="pun">()</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> </span><span class="com">// move to the previous item &amp; return the value</span><span class="pln"><br>it</span><span class="pun">.</span><span class="kwd">set</span><span class="pun">(</span><span class="lit">3.1415</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// sets the value 3.1415 to the current item</span><span class="pln"><br></span></code></pre>  <h3>Natural functors:</h3>  <pre class="default prettyprint"><code><span class="com">// C++ Functors</span><span class="pln"><br>myFunctorObject</span><span class="pun">(</span><span class="str">"Hello World"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">42</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br><br></span><span class="com">// Java Functors ???</span><span class="pln"><br>myFunctorObject</span><span class="pun">.</span><span class="pln">execute</span><span class="pun">(</span><span class="str">"Hello World"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">42</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span></code></pre>  <h3>Text concatenation:</h3>  <pre class="default prettyprint"><code><span class="com">// C++ stream handling (with the &lt;&lt; operator)</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stringStream &nbsp; </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">" World"</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fileStream &nbsp; &nbsp; </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">" World"</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; outputStream &nbsp; </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">" World"</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; networkStream &nbsp;</span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">" World"</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>anythingThatOverloadsShiftOperator </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">" World"</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br><br></span><span class="com">// Java concatenation</span><span class="pln"><br>myStringBuffer</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="str">"Hello "</span><span class="pun">).</span><span class="pln">append</span><span class="pun">(</span><span class="lit">25</span><span class="pun">).</span><span class="pln">append</span><span class="pun">(</span><span class="str">" World"</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span></code></pre>  <p>Ok, in Java you can use <code>MyString = "Hello " + 25 + " World" ;</code> too... But, wait a second: This is operator overloading, isn't it? Isn't it cheating???</p>  <p>:-D</p>  <h2>Generic code?</h2>  <p>The same generic code modifying operands should be usable both for built-ins/primitives (which have no interfaces in Java), standard objects (which could not have the right interface), and user-defined objects.</p>  <p>For example, calculating the average value of two values of arbitrary types:</p>  <pre class="default prettyprint"><code><span class="com">// C++ primitive/advanced types</span><span class="pln"><br></span><span class="kwd">template</span><span class="pun">&lt;</span><span class="kwd">typename</span><span class="pln"> T</span><span class="pun">&gt;</span><span class="pln"><br>T getAverage</span><span class="pun">(</span><span class="kwd">const</span><span class="pln"> T </span><span class="pun">&amp;</span><span class="pln"> p_lhs</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">const</span><span class="pln"> T </span><span class="pun">&amp;</span><span class="pln"> p_rhs</span><span class="pun">)</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp;</span><span class="kwd">return</span><span class="pln"> </span><span class="pun">(</span><span class="pln">p_lhs </span><span class="pun">+</span><span class="pln"> p_rhs</span><span class="pun">)</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="lit">2</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span><span class="pun">}</span><span class="pln"><br><br></span><span class="kwd">int</span><span class="pln"> &nbsp; &nbsp; intValue &nbsp; &nbsp; </span><span class="pun">=</span><span class="pln"> getAverage</span><span class="pun">(</span><span class="lit">25</span><span class="pun">,</span><span class="pln"> </span><span class="lit">42</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">double</span><span class="pln"> &nbsp;doubleValue &nbsp;</span><span class="pun">=</span><span class="pln"> getAverage</span><span class="pun">(</span><span class="lit">25.25</span><span class="pun">,</span><span class="pln"> </span><span class="lit">42.42</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>complex complexValue </span><span class="pun">=</span><span class="pln"> getAverage</span><span class="pun">(</span><span class="pln">cA</span><span class="pun">,</span><span class="pln"> cB</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> </span><span class="com">// cA, cB are complex</span><span class="pln"><br></span><span class="typ">Matrix</span><span class="pln"> &nbsp;matrixValue &nbsp;</span><span class="pun">=</span><span class="pln"> getAverage</span><span class="pun">(</span><span class="pln">mA</span><span class="pun">,</span><span class="pln"> mB</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> </span><span class="com">// mA, mB are Matrix</span><span class="pln"><br><br></span><span class="com">// Java primitive/advanced types</span><span class="pln"><br></span><span class="com">// It won't really work in Java, even with generics. Sorry.</span><span class="pln"><br></span></code></pre>  <h1>Discussing operator overloading</h1>  <p>How that we saw fair comparisons between C++ code using operator overloading, and the same code  in Java, we can know discuss the "operator overloading" as a concept.</p>  <h2>Operator overloading existed since before computers</h2>  <p><b>Even outside of computer science, there are operator overloading: For example, in mathematics, operators like <code>+</code>, <code>-</code>, <code>*</code>, etc. are overloaded.</b></p>  <p>Indeed, the signification of <code>+</code>, <code>-</code>, <code>*</code>, etc. changes depending on the types of the operands (numerics, vectors, quantum wave functions, matrices, etc.).</p>  <p>Most of us, as part of our science courses, learned multiple significations for operators, depending on the types of the operands. Did we find them confusing, them?</p>  <h2>Operator overloading depends on its operands</h2>  <p>This is the most important part of operator overloading: Like in mathematics, or in physics, the operation depends on its operands' types.</p>  <p>So, know the type of the operand, and you will know the effect of the operation.</p>  <h2>Even C and Java have (hardcoded) operator overloading</h2>  <p>In C, the real behavior of an operator will change according to its operands. For example, adding two integers is different than adding two doubles, or even one integer and one double. There is even the whole pointer arithmetic domain (without casting, you can add to a pointer an integer, but you cannot add two pointers...).</p>  <p>In Java, there is no pointer arithmetics, but someone still found string concatenation without the <code>+</code> operator would be ridiculous enough to justify an exception in the "operator overloading is evil" creed.</p>  <p>It's just that you, as a C (for historical reasons) or Java (for <i>personal reasons</i>, see below) coder, you can't provide your own.</p>  <h2>In C++, operator overloading is not optional...</h2>  <p>In C++, operator overloading for built-in types is not possible (and this is a good thing), but <i>user-defined</i> types can have <i>user-defined</i> operator overloads.</p>  <p>As already said earlier, in C++, and to the contrary to Java, user-types are not considered second-class citizens of the language, when compared to built-in types. So, if built-in types have operators, user types should be able to have them, too.</p>  <p>The truth is that, like the <code>toString()</code>, <code>clone()</code>, <code>equals()</code> methods are for Java (<i>i.e. quasi-standard-like</i>), C++ operator overloading is so much part of C++ that it becomes as natural as the original C operators, or the before mentioned Java methods.</p>  <p>Combined with template programming, operator overloading becomes a well known design pattern. In fact, you cannot go very far in STL without using overloaded operators, and overloading operators for your own class.</p>  <h2>...but it should not be abused</h2>  <p>Operator overloading should strive to respect the semantics of the operator. Do not substract in a <code>+</code> operator (as in "do not substract in a <code>add</code> function", or "return crap in a <code>clone</code> method").</p>  <p>Cast overloading can be very dangerous because they can lead to ambiguities. So they should really be reserved for well defined cases. As for <code>&amp;&amp;</code> and <code>||</code>, do not ever overload them unless you really know what you're doing, as you'll loose the the short circuit evaluation that the native operators <code>&amp;&amp;</code> and <code>||</code> enjoy.</p>  <h1>So... Ok... Then why it is not possible in Java?</h1>  <p>Because James Gosling said so:</p>  <blockquote>  <p>I left out operator overloading as a <b>fairly personal choice</b> because I had seen too many people abuse it in C++.</p>      <p><i>James Gosling. Source: <a href="http://www.gotw.ca/publications/c_family_interview.htm" rel="nofollow">http://www.gotw.ca/publications/c_family_interview.htm</a></i></p> </blockquote>  <p>Please compare Gosling's text above with Stroustrup's below:</p>  <blockquote>  <p>Many C++ design decisions have their roots in my dislike for forcing people to do things in some particular way [...] Often, I was tempted to outlaw a feature I personally disliked, I refrained from doing so because <b>I did not think I had the right to force my views on others</b>.</p>      <p><i>Bjarne Stroustrup. Source: The Desing and Evolution of C++ (1.3 General Background)</i></p> </blockquote>  <h2>Would operator overloading benefit Java?</h2>  <p>Some objects would greatly benefit from operator overloading (concrete or numerical types, like BigDecimal, complex numbers, matrices, containers, iterators, comparators, parsers etc.).</p>  <p>In C++, you can profit from this benefit because of Stroustrup's humility. In Java, you're simply screwed because of Gosling's <i>personal choice</i>.</p>  <h2>Could it be added to Java?</h2>  <p>The reasons for not adding operator overloading now in Java could be a mix of internal politics, allergy to the feature, distrust of developers (you know, the saboteur ones that seem to haunt Java teams...), compatibility with the previous JVMs, time to write a correct specification, etc..</p>  <p>So don't hold your breath waiting for this feature...</p>  <h2>But they do it in C#!!!</h2>  <p>Yeah...</p>  <p>While this is far from being the only difference between the two languages, this one never fails to amuse me.</p>  <p>Apparently, the C# folks, with their <i>"every primitive is a <code>struct</code>, and a <code>struct</code> derives from Object"</i>, got it right at first try.</p></html>
+
*: <html><p>There are a lot of posts complaining about operator overloading.</p> <p>I felt I had to clarify the «operator overloading» concepts, offering an alternative viewpoint on this concept.</p> <h1>Code obfuscating?</h1> <p>This argument is a fallacy.</p> <h2>Obfuscating is possible in all languages…</h2> <p>It is as easy to obfuscate code in C or Java through functions/methods than it is in C++ through operator overloads:</p> <pre class="default prettyprint"><code><span class="com">// C++</span><span class="pln"><br>T </span><span class="kwd">operator</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">const</span><span class="pln"> T </span><span class="pun">&amp;</span><span class="pln"> a</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">const</span><span class="pln"> T </span><span class="pun">&amp;</span><span class="pln"> b</span><span class="pun">)</span><span class="pln"> </span><span class="com">// add ?</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp;T c </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp;c</span><span class="pun">.</span><span class="pln">value </span><span class="pun">=</span><span class="pln"> a</span><span class="pun">.</span><span class="pln">value </span><span class="pun">-</span><span class="pln"> b</span><span class="pun">.</span><span class="pln">value </span><span class="pun">;</span><span class="pln"> </span><span class="com">// substract !!!</span><span class="pln"><br>&nbsp; &nbsp;</span><span class="kwd">return</span><span class="pln"> c </span><span class="pun">;</span><span class="pln"><br></span><span class="pun">}</span><span class="pln"><br><br></span><span class="com">// Java</span><span class="pln"><br></span><span class="kwd">static</span><span class="pln"> T add </span><span class="pun">(</span><span class="pln">T a</span><span class="pun">,</span><span class="pln"> T b</span><span class="pun">)</span><span class="pln"> </span><span class="com">// add ?</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp;T c </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> T</span><span class="pun">()</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp;c</span><span class="pun">.</span><span class="pln">value </span><span class="pun">=</span><span class="pln"> a</span><span class="pun">.</span><span class="pln">value </span><span class="pun">-</span><span class="pln"> b</span><span class="pun">.</span><span class="pln">value </span><span class="pun">;</span><span class="pln"> </span><span class="com">// substract !!!</span><span class="pln"><br>&nbsp; &nbsp;</span><span class="kwd">return</span><span class="pln"> c </span><span class="pun">;</span><span class="pln"><br></span><span class="pun">}</span><span class="pln"><br><br></span><span class="com">/* C */</span><span class="pln"><br>T add </span><span class="pun">(</span><span class="pln">T a</span><span class="pun">,</span><span class="pln"> T b</span><span class="pun">)</span><span class="pln"> </span><span class="com">/* add ? */</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp;T c </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp;c</span><span class="pun">.</span><span class="pln">value </span><span class="pun">=</span><span class="pln"> a</span><span class="pun">.</span><span class="pln">value </span><span class="pun">-</span><span class="pln"> b</span><span class="pun">.</span><span class="pln">value </span><span class="pun">;</span><span class="pln"> </span><span class="com">/* substract !!! */</span><span class="pln"><br>&nbsp; &nbsp;</span><span class="kwd">return</span><span class="pln"> c </span><span class="pun">;</span><span class="pln"><br></span><span class="pun">}</span><span class="pln"><br></span></code></pre> <h2>…Even in Java’s standard interfaces</h2> <p>For another example, let’s see the <code>Cloneable</code> interface in Java: <a href="http://download.oracle.com/javase/7/docs/api/java/lang/Cloneable.html" rel="nofollow">http://download.oracle.com/javase/7/docs/api/java/lang/Cloneable.html</a></p>  <p>You are supposed to clone the object implementing this interface. But you could lie. And create a different object. In fact, this interface is so weak you could return another type of object altogether, just for the fun of it:</p> <pre class="default prettyprint"><code><span class="kwd">class</span><span class="pln"> </span><span class="typ">MySincereHandShake</span><span class="pln"> </span><span class="kwd">implements</span><span class="pln"> </span><span class="typ">Cloneable</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="kwd">public</span><span class="pln"> </span><span class="typ">Object</span><span class="pln"> clone</span><span class="pun">()</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp;</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">MyVengefulKickInYourHead</span><span class="pun">()</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; </span><span class="pun">}</span><span class="pln"><br></span><span class="pun">}</span><span class="pln"><br></span></code></pre> <p>As the <code>Cloneable</code> interface can be abused/obfuscated, should it be banned on the same grounds C++ operator overloading are supposed to be?</p> <p>We could overload the <code>toString()</code> method of a <code>MyComplexNumber</code> class to have it return the stringified hour of the day. Should the <code>toString()</code> overloading be banned, too? We could sabotage <code>MyComplexNumber.equals</code> to have it return a random value, modify the operands… etc. etc. etc..</p> <p><b>In Java, as in C++, or whatever language, the programmer must respect a minimum of semantics when writing code. This means implementing a <code>add</code> function that adds, and <code>Cloneable</code> implementation method that clones, and a <code>++</code> operator than increments.</b></p> <h1>What’s obfuscating anyway?</h1> <p>Now that we know that code can be sabotaged even through the pristine Java methods, we can ask ourselves about the real use of operator overloading in C++?</p> <h2>Clear and natural notation: methods vs. operator overloading?</h2> <p>We’ll compare below, for different cases, the «same» code in Java and C++, to have an idea of which kind of coding style is clearer.</p> <h3>Natural comparisons:</h3> <pre class="default prettyprint"><code><span class="com">// C++ comparison for built-ins and user-defined types</span><span class="pln"><br></span><span class="kwd">bool</span><span class="pln"> &nbsp; &nbsp;isEqual &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> A </span><span class="pun">==</span><span class="pln"> B </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">bool</span><span class="pln"> &nbsp; &nbsp;isNotEqual &nbsp; &nbsp; &nbsp; </span><span class="pun">=</span><span class="pln"> A </span><span class="pun">!=</span><span class="pln"> B </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">bool</span><span class="pln"> &nbsp; &nbsp;isLesser &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">=</span><span class="pln"> A </span><span class="pun">&lt;</span><span class="pln"> &nbsp;B </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">bool</span><span class="pln"> &nbsp; &nbsp;isLesserOrEqual &nbsp;</span><span class="pun">=</span><span class="pln"> A </span><span class="pun">&lt;=</span><span class="pln"> B </span><span class="pun">;</span><span class="pln"><br><br></span><span class="com">// Java comparison for user-defined types</span><span class="pln"><br></span><span class="kwd">boolean</span><span class="pln"> isEqual &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> A</span><span class="pun">.</span><span class="pln">equals</span><span class="pun">(</span><span class="pln">B</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">boolean</span><span class="pln"> isNotEqual &nbsp; &nbsp; &nbsp; </span><span class="pun">=</span><span class="pln"> </span><span class="pun">!</span><span class="pln"> A</span><span class="pun">.</span><span class="pln">equals</span><span class="pun">(</span><span class="pln">B</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">boolean</span><span class="pln"> isLesser &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="pun">=</span><span class="pln"> A</span><span class="pun">.</span><span class="pln">comparesTo</span><span class="pun">(</span><span class="pln">B</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&lt;</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">boolean</span><span class="pln"> isLesserOrEqual &nbsp;</span><span class="pun">=</span><span class="pln"> A</span><span class="pun">.</span><span class="pln">comparesTo</span><span class="pun">(</span><span class="pln">B</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&lt;=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span></code></pre> <p>Please note that A and B could be of any type in C++, as long as the operator overloads are provided. In Java, when A and B are not primitives, the code can become very confusing, even for primitive-like objects (BigInteger, etc.)…</p> <h3>Natural array/container accessors and subscripting:</h3> <pre class="default prettyprint"><code><span class="com">// C++ container accessors, more natural</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myArray</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myVector</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// subscript operator</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myString</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// subscript operator</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myMap</span><span class="pun">[</span><span class="str">«25»</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>myArray</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> &nbsp;</span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>myVector</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>myString</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>myMap</span><span class="pun">[</span><span class="str">«25»</span><span class="pun">]</span><span class="pln"> &nbsp;</span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br><br></span><span class="com">// Java container accessors, each one has its special notation</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myArray</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myVector</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="lit">25</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp;</span><span class="com">// method get</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myString</span><span class="pun">.</span><span class="pln">charAt</span><span class="pun">(</span><span class="lit">25</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> </span><span class="com">// method charAt</span><span class="pln"><br>value &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pun">=</span><span class="pln"> myMap</span><span class="pun">.</span><span class="kwd">get</span><span class="pun">(</span><span class="str">«25»</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; </span><span class="com">// method get</span><span class="pln"><br>myArray</span><span class="pun">[</span><span class="lit">25</span><span class="pun">]</span><span class="pln"> &nbsp;</span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// subscript operator</span><span class="pln"><br>myVector</span><span class="pun">.</span><span class="kwd">set</span><span class="pun">(</span><span class="lit">25</span><span class="pun">,</span><span class="pln"> value</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// method set</span><span class="pln"><br>myMap</span><span class="pun">.</span><span class="kwd">set</span><span class="pun">(</span><span class="str">«25»</span><span class="pun">,</span><span class="pln"> value</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// method set</span><span class="pln"><br></span></code></pre> <p>In Java, we see that for each container to do the same thing (access its content through an index or identifier), we have a different way to do it, which is confusing.</p> <p>In C++, each container uses the same way to access its content, thanks to operator overload.</p> <h3>Natural advanced types manipulation</h3> <p>The examples below use a <code>Matrix</code> object, found using the first links found on Google for «<a href=»https://encrypted.google.com/search?q=Java+Matrix+object" rel="nofollow">Java Matrix object</a>" and «<a href=»https://encrypted.google.com/search?q=c%2B%2B+Matrix+object" rel="nofollow">c++ Matrix object</a>":</p> <pre class="default prettyprint"><code><span class="com">// C++ YMatrix matrix implementation on CodeProject</span><span class="pln"><br></span><span class="com">// http://www.codeproject.com/KB/architecture/ymatrix.aspx</span><span class="pln"><br></span><span class="com">// A, B, C, D, E, F are Matrix objects;</span><span class="pln"><br>E </span><span class="pun">=</span><span class="pln"> &nbsp;A </span><span class="pun">*</span><span class="pln"> </span><span class="pun">(</span><span class="pln">B </span><span class="pun">/</span><span class="pln"> </span><span class="lit">2</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>E </span><span class="pun">+=</span><span class="pln"> </span><span class="pun">(</span><span class="pln">A </span><span class="pun">-</span><span class="pln"> B</span><span class="pun">)</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="pun">(</span><span class="pln">C </span><span class="pun">+</span><span class="pln"> D</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>F </span><span class="pun">=</span><span class="pln"> &nbsp;E </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// deep copy of the matrix</span><span class="pln"><br><br></span><span class="com">// Java JAMA matrix implementation (seriously…)</span><span class="pln"><br></span><span class="com">// http://math.nist.gov/javanumerics/jama/doc/</span><span class="pln"><br></span><span class="com">// A, B, C, D, E, F are Matrix objects;</span><span class="pln"><br>E </span><span class="pun">=</span><span class="pln"> A</span><span class="pun">.</span><span class="pln">times</span><span class="pun">(</span><span class="pln">B</span><span class="pun">.</span><span class="pln">times</span><span class="pun">(</span><span class="lit">2</span><span class="pun">))</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>E</span><span class="pun">.</span><span class="pln">plusEquals</span><span class="pun">(</span><span class="pln">A</span><span class="pun">.</span><span class="pln">minus</span><span class="pun">(</span><span class="pln">B</span><span class="pun">).</span><span class="pln">times</span><span class="pun">(</span><span class="pln">C</span><span class="pun">.</span><span class="pln">plus</span><span class="pun">(</span><span class="pln">D</span><span class="pun">)))</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>F </span><span class="pun">=</span><span class="pln"> E</span><span class="pun">.</span><span class="pln">copy</span><span class="pun">()</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// deep copy of the matrix</span><span class="pln"><br></span></code></pre> <p>And this is not limited to matrices. The <code>BigInteger</code> and <code>BigDecimal</code> classes of Java suffer from the same confusing verbosity, whereas their equivalent in C++ are as clear as built-in types.</p> <h3>Natural iterators:</h3> <pre class="default prettyprint"><code><span class="com">// C++ Random Access iterators</span><span class="pln"><br></span><span class="pun">++</span><span class="pln">it </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// move to the next item</span><span class="pln"><br></span><span class="pun">--</span><span class="pln">it </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// move to the previous item</span><span class="pln"><br>it </span><span class="pun">+=</span><span class="pln"> </span><span class="lit">5</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// move to the next 5th item (random access)</span><span class="pln"><br>value </span><span class="pun">=</span><span class="pln"> </span><span class="pun">*</span><span class="pln">it </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// gets the value of the current item</span><span class="pln"><br></span><span class="pun">*</span><span class="pln">it </span><span class="pun">=</span><span class="pln"> </span><span class="lit">3.1415</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// sets the value 3.1415 to the current item</span><span class="pln"><br></span><span class="pun">(*</span><span class="pln">it</span><span class="pun">).</span><span class="pln">foo</span><span class="pun">()</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="com">// call method foo() of the current item</span><span class="pln"><br><br></span><span class="com">// Java ListIterator&lt;E&gt; «bi-directional» iterators</span><span class="pln"><br>value </span><span class="pun">=</span><span class="pln"> it</span><span class="pun">.</span><span class="kwd">next</span><span class="pun">()</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; </span><span class="com">// move to the next item &amp; return the value</span><span class="pln"><br>value </span><span class="pun">=</span><span class="pln"> it</span><span class="pun">.</span><span class="pln">previous</span><span class="pun">()</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> </span><span class="com">// move to the previous item &amp; return the value</span><span class="pln"><br>it</span><span class="pun">.</span><span class="kwd">set</span><span class="pun">(</span><span class="lit">3.1415</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com">// sets the value 3.1415 to the current item</span><span class="pln"><br></span></code></pre> <h3>Natural functors:</h3> <pre class="default prettyprint"><code><span class="com">// C++ Functors</span><span class="pln"><br>myFunctorObject</span><span class="pun">(</span><span class="str">«Hello World»</span><span class="pun">,</span><span class="pln"> </span><span class="lit">42</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br><br></span><span class="com">// Java Functors ???</span><span class="pln"><br>myFunctorObject</span><span class="pun">.</span><span class="pln">execute</span><span class="pun">(</span><span class="str">«Hello World»</span><span class="pun">,</span><span class="pln"> </span><span class="lit">42</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span></code></pre> <h3>Text concatenation:</h3> <pre class="default prettyprint"><code><span class="com">// C++ stream handling (with the &lt;&lt; operator)</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stringStream &nbsp; </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">« World»</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fileStream &nbsp; &nbsp; </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">« World»</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; outputStream &nbsp; </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">« World»</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; networkStream &nbsp;</span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">« World»</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>anythingThatOverloadsShiftOperator </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">« World»</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br><br></span><span class="com">// Java concatenation</span><span class="pln"><br>myStringBuffer</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="str">"Hello "</span><span class="pun">).</span><span class="pln">append</span><span class="pun">(</span><span class="lit">25</span><span class="pun">).</span><span class="pln">append</span><span class="pun">(</span><span class="str">« World»</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span></code></pre> <p>Ok, in Java you can use <code>MyString = "Hello " + 25 + « World» ;</code> too… But, wait a second: This is operator overloading, isn’t it? Isn’t it cheating???</p> <p>:-D</p> <h2>Generic code?</h2> <p>The same generic code modifying operands should be usable both for built-ins/primitives (which have no interfaces in Java), standard objects (which could not have the right interface), and user-defined objects.</p> <p>For example, calculating the average value of two values of arbitrary types:</p> <pre class="default prettyprint"><code><span class="com">// C++ primitive/advanced types</span><span class="pln"><br></span><span class="kwd">template</span><span class="pun">&lt;</span><span class="kwd">typename</span><span class="pln"> T</span><span class="pun">&gt;</span><span class="pln"><br>T getAverage</span><span class="pun">(</span><span class="kwd">const</span><span class="pln"> T </span><span class="pun">&amp;</span><span class="pln"> p_lhs</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">const</span><span class="pln"> T </span><span class="pun">&amp;</span><span class="pln"> p_rhs</span><span class="pun">)</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br>&nbsp; &nbsp;</span><span class="kwd">return</span><span class="pln"> </span><span class="pun">(</span><span class="pln">p_lhs </span><span class="pun">+</span><span class="pln"> p_rhs</span><span class="pun">)</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="lit">2</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span><span class="pun">}</span><span class="pln"><br><br></span><span class="kwd">int</span><span class="pln"> &nbsp; &nbsp; intValue &nbsp; &nbsp; </span><span class="pun">=</span><span class="pln"> getAverage</span><span class="pun">(</span><span class="lit">25</span><span class="pun">,</span><span class="pln"> </span><span class="lit">42</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br></span><span class="kwd">double</span><span class="pln"> &nbsp;doubleValue &nbsp;</span><span class="pun">=</span><span class="pln"> getAverage</span><span class="pun">(</span><span class="lit">25.25</span><span class="pun">,</span><span class="pln"> </span><span class="lit">42.42</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br>complex complexValue </span><span class="pun">=</span><span class="pln"> getAverage</span><span class="pun">(</span><span class="pln">cA</span><span class="pun">,</span><span class="pln"> cB</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> </span><span class="com">// cA, cB are complex</span><span class="pln"><br></span><span class="typ">Matrix</span><span class="pln"> &nbsp;matrixValue &nbsp;</span><span class="pun">=</span><span class="pln"> getAverage</span><span class="pun">(</span><span class="pln">mA</span><span class="pun">,</span><span class="pln"> mB</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span><span class="pln"> </span><span class="com">// mA, mB are Matrix</span><span class="pln"><br><br></span><span class="com">// Java primitive/advanced types</span><span class="pln"><br></span><span class="com">// It won’t really work in Java, even with generics. Sorry.</span><span class="pln"><br></span></code></pre> <h1>Discussing operator overloading</h1> <p>How that we saw fair comparisons between C++ code using operator overloading, and the same code in Java, we can know discuss the «operator overloading» as a concept.</p> <h2>Operator overloading existed since before computers</h2> <p><b>Even outside of computer science, there are operator overloading: For example, in mathematics, operators like <code>+</code>, <code>-</code>, <code>*</code>, etc. are overloaded.</b></p> <p>Indeed, the signification of <code>+</code>, <code>-</code>, <code>*</code>, etc. changes depending on the types of the operands (numerics, vectors, quantum wave functions, matrices, etc.).</p> <p>Most of us, as part of our science courses, learned multiple significations for operators, depending on the types of the operands. Did we find them confusing, them?</p> <h2>Operator overloading depends on its operands</h2> <p>This is the most important part of operator overloading: Like in mathematics, or in physics, the operation depends on its operands' types.</p> <p>So, know the type of the operand, and you will know the effect of the operation.</p> <h2>Even C and Java have (hardcoded) operator overloading</h2> <p>In C, the real behavior of an operator will change according to its operands. For example, adding two integers is different than adding two doubles, or even one integer and one double. There is even the whole pointer arithmetic domain (without casting, you can add to a pointer an integer, but you cannot add two pointers…).</p> <p>In Java, there is no pointer arithmetics, but someone still found string concatenation without the <code>+</code> operator would be ridiculous enough to justify an exception in the «operator overloading is evil» creed.</p> <p>It’s just that you, as a C (for historical reasons) or Java (for <i>personal reasons</i>, see below) coder, you can’t provide your own.</p> <h2>In C++, operator overloading is not optional…</h2> <p>In C++, operator overloading for built-in types is not possible (and this is a good thing), but <i>user-defined</i> types can have <i>user-defined</i> operator overloads.</p> <p>As already said earlier, in C++, and to the contrary to Java, user-types are not considered second-class citizens of the language, when compared to built-in types. So, if built-in types have operators, user types should be able to have them, too.</p> <p>The truth is that, like the <code>toString()</code>, <code>clone()</code>, <code>equals()</code> methods are for Java (<i>i.e. quasi-standard-like</i>), C++ operator overloading is so much part of C++ that it becomes as natural as the original C operators, or the before mentioned Java methods.</p> <p>Combined with template programming, operator overloading becomes a well known design pattern. In fact, you cannot go very far in STL without using overloaded operators, and overloading operators for your own class.</p> <h2>…but it should not be abused</h2> <p>Operator overloading should strive to respect the semantics of the operator. Do not substract in a <code>+</code> operator (as in «do not substract in a <code>add</code> function», or «return crap in a <code>clone</code> method»).</p> <p>Cast overloading can be very dangerous because they can lead to ambiguities. So they should really be reserved for well defined cases. As for <code>&amp;&amp;</code> and <code>||</code>, do not ever overload them unless you really know what you’re doing, as you’ll loose the the short circuit evaluation that the native operators <code>&amp;&amp;</code> and <code>||</code> enjoy.</p> <h1>So… Ok… Then why it is not possible in Java?</h1> <p>Because James Gosling said so:</p> <blockquote> <p>I left out operator overloading as a <b>fairly personal choice</b> because I had seen too many people abuse it in C++.</p> <p><i>James Gosling. Source: <a href="http://www.gotw.ca/publications/c_family_interview.htm" rel="nofollow">http://www.gotw.ca/publications/c_family_interview.htm</a></i></p> </blockquote> <p>Please compare Gosling’s text above with Stroustrup’s below:</p> <blockquote> <p>Many C++ design decisions have their roots in my dislike for forcing people to do things in some particular way […] Often, I was tempted to outlaw a feature I personally disliked, I refrained from doing so because <b>I did not think I had the right to force my views on others</b>.</p> <p><i>Bjarne Stroustrup. Source: The Desing and Evolution of C++ (1.3 General Background)</i></p> </blockquote> <h2>Would operator overloading benefit Java?</h2> <p>Some objects would greatly benefit from operator overloading (concrete or numerical types, like BigDecimal, complex numbers, matrices, containers, iterators, comparators, parsers etc.).</p> <p>In C++, you can profit from this benefit because of Stroustrup’s humility. In Java, you’re simply screwed because of Gosling’s <i>personal choice</i>.</p> <h2>Could it be added to Java?</h2> <p>The reasons for not adding operator overloading now in Java could be a mix of internal politics, allergy to the feature, distrust of developers (you know, the saboteur ones that seem to haunt Java teams…), compatibility with the previous JVMs, time to write a correct specification, etc..</p> <p>So don’t hold your breath waiting for this feature…</p> <h2>But they do it in C#!!!</h2> <p>Yeah…</p> <p>While this is far from being the only difference between the two languages, this one never fails to amuse me.</p> <p>Apparently, the C# folks, with their <i>«every primitive is a <code>struct</code>, and a <code>struct</code> derives from Object»</i>, got it right at first try.</p></html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 07 Ноябрь, 14:40:11: [http://www.sweethome3d.com/ru/index.jsp Sweet Home 3D]
 
* 07 Ноябрь, 14:40:11: [http://www.sweethome3d.com/ru/index.jsp Sweet Home 3D]
 
* 07 Ноябрь, 01:41:35: [http://www.marksfiles.net/HeliSim/index.htm HeliSimRC]
 
* 07 Ноябрь, 01:41:35: [http://www.marksfiles.net/HeliSim/index.htm HeliSimRC]
 
* 04 Ноябрь, 19:34:32: [http://www.makeuseof.com/tag/disable-googles-personalization-search-results/ How To Disable Google’s Personalization Of Search Results]
 
* 04 Ноябрь, 19:34:32: [http://www.makeuseof.com/tag/disable-googles-personalization-search-results/ How To Disable Google’s Personalization Of Search Results]
* 01 Ноябрь, 21:41:00: [http://j4mie.org/blog/how-to-hack-acoms-as-16-servos/ How to hack Acoms AS-16 servos - Blog - Jamie Matthews]
+
* 01 Ноябрь, 21:41:00: [http://j4mie.org/blog/how-to-hack-acoms-as-16-servos/ How to hack Acoms AS-16 servos Blog Jamie Matthews]
  
 
=== Октябрь 2011 ===
 
=== Октябрь 2011 ===
  
* 30 Октябрь, 01:17:46: [http://superuser.com/questions/328271/how-to-disable-google-search-result-link-redirect-on-right-click-in-chrome browser - How to disable Google search result link redirect (on right-click) in Chrome? - Super User]
+
* 30 Октябрь, 01:17:46: [http://superuser.com/questions/328271/how-to-disable-google-search-result-link-redirect-on-right-click-in-chrome browser How to disable Google search result link redirect (on right-click) in Chrome? Super User]
* 27 Октябрь, 14:47:51: [http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=galaxy+s+social+hub galaxy s social hub - Поиск в Google]
+
* 27 Октябрь, 14:47:51: [http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=galaxy+s+social+hub galaxy s social hub Поиск в Google]
* 25 Октябрь, 20:20:31: [http://code.google.com/p/shellinabox/ shellinabox - Web based AJAX terminal emulator - Google Project Hosting]
+
* 25 Октябрь, 20:20:31: [http://code.google.com/p/shellinabox/ shellinabox Web based AJAX terminal emulator Google Project Hosting]
* 25 Октябрь, 13:18:47: [http://shop.dubro.com/products/productdetail/Steerable+Nose+Gear-Bent+%28QTY/PKG%3A+1+%29/part_number=152/101.0.1.1.5161.5172.0.0.0?pp=12& Du-Bro RC - Steerable Nose Gear-Bent (QTY/PKG: 1 )]
+
* 25 Октябрь, 13:18:47: [http://shop.dubro.com/products/productdetail/Steerable+Nose+Gear-Bent+%28QTY/PKG%3A+1+%29/part_number=152/101.0.1.1.5161.5172.0.0.0?pp=12& Du-Bro RC Steerable Nose Gear-Bent (QTY/PKG: 1)]
* 24 Октябрь, 00:07:10: [http://www.film.ru/article.asp?id=6393 50 диснеевских мультфильмов. Часть первая. Страница 1 из 25. Кино на Фильм.Ру]
+
* 24 Октябрь, 00:07:10: [http://www.film.ru/article.asp?id=6393 50 диснеевских мультфильмов. Часть первая. Страница 1 из 25. Кино на Фильм. Ру]
 
* 23 Октябрь, 15:54:45: [http://b-squares.com/ B-Squares : Modular Solar-powered Electrics]
 
* 23 Октябрь, 15:54:45: [http://b-squares.com/ B-Squares : Modular Solar-powered Electrics]
* 20 Октябрь, 18:46:32: [http://browsershots.org/ Проверить совместимость браузеров, кроссплатформенный тест браузеров - Browsershots]
+
* 20 Октябрь, 18:46:32: [http://browsershots.org/ Проверить совместимость браузеров, кроссплатформенный тест браузеров Browsershots]
* 20 Октябрь, 00:19:56: [http://optimization.hardlinux.ru/?page_id=301 Linux optimization » Энергосбережение]
+
* 20 Октябрь, 00:19:56: [http://optimization.hardlinux.ru/?page_id=301 Linux optimization " Энергосбережение]
 
* 19 Октябрь, 23:14:43: [http://www.javacodegeeks.com/2011/07/funny-source-code-comments.html Funny Source Code Comments — Java Code Geeks]
 
* 19 Октябрь, 23:14:43: [http://www.javacodegeeks.com/2011/07/funny-source-code-comments.html Funny Source Code Comments — Java Code Geeks]
 
*: <html>// John! If you’ll svn remove this once more,<br> // I’ll shut you, for God’s sake!<br> // That piece of code is not «something strange»!<br> // That is THE AUTH VALIDATION.</html>
 
*: <html>// John! If you’ll svn remove this once more,<br> // I’ll shut you, for God’s sake!<br> // That piece of code is not «something strange»!<br> // That is THE AUTH VALIDATION.</html>
Строка 69: Строка 70:
 
* 03 Октябрь, 00:56:46: [http://cnczone.com/ CNCzone.com-Machinist Community Forums — Welcome Page]
 
* 03 Октябрь, 00:56:46: [http://cnczone.com/ CNCzone.com-Machinist Community Forums — Welcome Page]
 
* 02 Октябрь, 19:45:05: [http://www.yourlasers.com/ Laser Pointers Store — Worldwide Free Shipping Offered For All Lasers]
 
* 02 Октябрь, 19:45:05: [http://www.yourlasers.com/ Laser Pointers Store — Worldwide Free Shipping Offered For All Lasers]
 +
 
=== Сентябрь 2011 ===
 
=== Сентябрь 2011 ===
  
* 30 Сентябрь, 23:54:42: [http://fishki.net/ Fishki.net - Сайт хорошего настроения]
+
* 30 Сентябрь, 23:54:42: [http://fishki.net/ Fishki.net Сайт хорошего настроения]
*: <html>- Доктор, что вы можете скaзaть о результaтaх моих aнaлизов? <br> - Вируснaя бaзa успешно обновленa, - отвечaет венеролог.</html>
+
*: <html>- Доктор, что вы можете скaзaть о результaтaх моих aнaлизов? <br> Вируснaя бaзa успешно обновленa, отвечaет венеролог.</html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 30 Сентябрь, 01:22:22: [http://www.wakeboard.com.sg/index.php?showforum=14 Wakeboard Singapore! -> Riding Tips]
 
* 30 Сентябрь, 01:22:22: [http://www.wakeboard.com.sg/index.php?showforum=14 Wakeboard Singapore! -> Riding Tips]
* 29 Сентябрь, 09:22:40: [http://www.linux.org.ru/news/gnome/6805718/page1 Новости - GNOME - GNOME 3.2]
+
* 29 Сентябрь, 09:22:40: [http://www.linux.org.ru/news/gnome/6805718/page1 Новости GNOME GNOME 3.2]
 
*: <html>Социальные сети<br> Облачность<br> Интеграция с тем<br> Интеграция с этим<br> Интеграция с интеграцией<br> Теперь другу можно отправить фотку одним кликом сидя в туалете, но нельзя выключить компьютер!</html>
 
*: <html>Социальные сети<br> Облачность<br> Интеграция с тем<br> Интеграция с этим<br> Интеграция с интеграцией<br> Теперь другу можно отправить фотку одним кликом сидя в туалете, но нельзя выключить компьютер!</html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 29 Сентябрь, 09:03:06: [http://www.rcdude.com/servlet/the-1301/Dionysus-Servo-Stretcher-V2/Detail Dionysus Servo Stretcher V2]
 
* 29 Сентябрь, 09:03:06: [http://www.rcdude.com/servlet/the-1301/Dionysus-Servo-Stretcher-V2/Detail Dionysus Servo Stretcher V2]
 
* 28 Сентябрь, 02:35:50: [http://www.openservo.com/ OpenServo high quality open source digital servo]
 
* 28 Сентябрь, 02:35:50: [http://www.openservo.com/ OpenServo high quality open source digital servo]
* 26 Сентябрь, 03:32:15: [http://www.electronshik.ru/ Каталог "Электронщик": паяльное и измерительное оборудование, электротехнические изделия, электронные компоненты, инструмент]
+
* 26 Сентябрь, 03:32:15: [http://www.electronshik.ru/ Каталог «Электронщик»: паяльное и измерительное оборудование, электротехнические изделия, электронные компоненты, инструмент]
 
* 25 Сентябрь, 02:40:53: [http://www.trzrus.narod.ru/mrc.htm Цветовая маркировка резисторов. Программа онлайн расшифровки номинала для мобильного тедефона.]
 
* 25 Сентябрь, 02:40:53: [http://www.trzrus.narod.ru/mrc.htm Цветовая маркировка резисторов. Программа онлайн расшифровки номинала для мобильного тедефона.]
 
* 25 Сентябрь, 02:27:37: [http://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%B8%D0%BD%D0%BA%D0%B8 Слинки — Википедия]
 
* 25 Сентябрь, 02:27:37: [http://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%B8%D0%BD%D0%BA%D0%B8 Слинки — Википедия]
Строка 89: Строка 91:
 
* 23 Сентябрь, 01:09:37: [http://www.candlepowerforums.com/vb/showthread.php?270419-Commonly-Used-LED-Emitter-Index Commonly Used LED Emitter Index]
 
* 23 Сентябрь, 01:09:37: [http://www.candlepowerforums.com/vb/showthread.php?270419-Commonly-Used-LED-Emitter-Index Commonly Used LED Emitter Index]
 
* 20 Сентябрь, 14:48:26: [http://replicant.us/ http://replicant.us/]
 
* 20 Сентябрь, 14:48:26: [http://replicant.us/ http://replicant.us/]
* 19 Сентябрь, 15:23:34: [http://code.google.com/p/android-vnc-viewer/ android-vnc-viewer - VNC viewer/client for Android platform - Google Project Hosting]
+
* 19 Сентябрь, 15:23:34: [http://code.google.com/p/android-vnc-viewer/ android-vnc-viewer VNC viewer/client for Android platform Google Project Hosting]
* 19 Сентябрь, 15:21:47: [http://otvety.google.ru/otvety/thread?tid=30b81a2be4d99fd8&pli=1 vncserver, x11vnc - кракозяблы - есть ответ - Вопросы и ответы]
+
* 19 Сентябрь, 15:21:47: [http://otvety.google.ru/otvety/thread?tid=30b81a2be4d99fd8&pli=1 vncserver, x11vnc кракозяблы есть ответ Вопросы и ответы]
 
* 16 Сентябрь, 21:53:05: [ftp://mirror.averse.net/pub/gentoo-portage/dev-python/python-levenshtein/files/genextdoc.py %s %s]
 
* 16 Сентябрь, 21:53:05: [ftp://mirror.averse.net/pub/gentoo-portage/dev-python/python-levenshtein/files/genextdoc.py %s %s]
 
* 15 Сентябрь, 23:25:41: [http://sc.openoffice.org/excelfileformat.pdf http://sc.openoffice.org/excelfileformat.pdf]
 
* 15 Сентябрь, 23:25:41: [http://sc.openoffice.org/excelfileformat.pdf http://sc.openoffice.org/excelfileformat.pdf]
 
* 15 Сентябрь, 22:38:19: [http://chicago.sourceforge.net/devel/docs/excel/encrypt.html Excel Encryption Information]
 
* 15 Сентябрь, 22:38:19: [http://chicago.sourceforge.net/devel/docs/excel/encrypt.html Excel Encryption Information]
* 13 Сентябрь, 01:29:09: [http://helidirect.com/index.php HeliDirect - Helidirect.com is your source for RC Helicopters Micro Helicopters such as the Ikarus]
+
* 13 Сентябрь, 01:29:09: [http://helidirect.com/index.php HeliDirect Helidirect.com is your source for RC Helicopters Micro Helicopters such as the Ikarus]
 
* 12 Сентябрь, 00:14:23: [http://vkontakte.ru/pages.php?act=share Share Links]
 
* 12 Сентябрь, 00:14:23: [http://vkontakte.ru/pages.php?act=share Share Links]
 
* 09 Сентябрь, 20:43:24: [http://russianpost.ru/rp/servise/ru/home/postuslug/trackingpo Почта России. Отслеживание почтовых отправлений]
 
* 09 Сентябрь, 20:43:24: [http://russianpost.ru/rp/servise/ru/home/postuslug/trackingpo Почта России. Отслеживание почтовых отправлений]
 
* 09 Сентябрь, 03:18:33: [http://easyelectronics.ru/shim-regulyator-na-tajmere-ne555.html ШИМ регулятор на таймере NE555 : Электроника для всех]
 
* 09 Сентябрь, 03:18:33: [http://easyelectronics.ru/shim-regulyator-na-tajmere-ne555.html ШИМ регулятор на таймере NE555 : Электроника для всех]
* 09 Сентябрь, 00:54:35: [http://en.wikipedia.org/wiki/List_of_Unicode_characters List of Unicode characters - Wikipedia, the free encyclopedia]
+
* 09 Сентябрь, 00:54:35: [http://en.wikipedia.org/wiki/List_of_Unicode_characters List of Unicode characters Wikipedia, the free encyclopedia]
 
* 08 Сентябрь, 17:25:13: [http://www.instructables.com/id/USB-Li-ion-battery-charger/ USB Li-ion battery charger]
 
* 08 Сентябрь, 17:25:13: [http://www.instructables.com/id/USB-Li-ion-battery-charger/ USB Li-ion battery charger]
 
*: http://www.instructables.com/image/FSMFBM0CZZEV1BEP2L/USB-Li-ion-battery-charger.jpg
 
*: http://www.instructables.com/image/FSMFBM0CZZEV1BEP2L/USB-Li-ion-battery-charger.jpg
Строка 104: Строка 106:
 
* 08 Сентябрь, 16:53:23: [http://readers.lenta.ru/news/2011/09/08/incident/ Lenta.ru: Форум]
 
* 08 Сентябрь, 16:53:23: [http://readers.lenta.ru/news/2011/09/08/incident/ Lenta.ru: Форум]
 
* 06 Сентябрь, 17:28:00: [http://tldp.org/HOWTO/Software-RAID-0.4x-HOWTO-8.html Software-RAID HOWTO: Performance, Tools & General Bone-headed Questions]
 
* 06 Сентябрь, 17:28:00: [http://tldp.org/HOWTO/Software-RAID-0.4x-HOWTO-8.html Software-RAID HOWTO: Performance, Tools & General Bone-headed Questions]
* 02 Сентябрь, 16:15:34: [http://www.ferio.ru/ Ferio.ru: автозапчасти, интернет магазины автозапчастей, автосервисы, ремонт автомобилей - Москва, Санкт-Петербург, Краснодар, Новосибирск]
+
* 02 Сентябрь, 16:15:34: [http://www.ferio.ru/ Ferio.ru: автозапчасти, интернет магазины автозапчастей, автосервисы, ремонт автомобилей Москва, Санкт-Петербург, Краснодар, Новосибирск]
 
* 01 Сентябрь, 16:06:18: [http://liquidr.com/technology/wave-glider-concept/ Wave Glider Concept]
 
* 01 Сентябрь, 16:06:18: [http://liquidr.com/technology/wave-glider-concept/ Wave Glider Concept]
  
 
=== Август 2011 ===
 
=== Август 2011 ===
  
* 28 Август, 22:46:24: [http://www.techpowerup.com/realtemp/ Real Temp - CPU temperature monitoring]
+
* 28 Август, 22:46:24: [http://www.techpowerup.com/realtemp/ Real Temp CPU temperature monitoring]
 
* 25 Август, 23:47:24: [http://flowingdata.com/2011/08/22/mobile-patent-lawsuits-2/ Mobile patent lawsuits]
 
* 25 Август, 23:47:24: [http://flowingdata.com/2011/08/22/mobile-patent-lawsuits-2/ Mobile patent lawsuits]
* 25 Август, 23:40:05: [http://wforum.heroes35.net/forumdisplay.php?fid=69 Wake of Gods Forum | Форум Во Имя Богов - Обсуждение WoG]
+
* 25 Август, 23:40:05: [http://wforum.heroes35.net/forumdisplay.php?fid=69 Wake of Gods Forum | Форум Во Имя Богов Обсуждение WoG]
* 25 Август, 23:01:41: [http://ardrone.parrot.com/parrot-ar-drone/en/ AR.Drone Parrot - The flying video game - First quadricopter that can be controlled by an iPhone/iPod Touch/iPad]
+
* 25 Август, 23:01:41: [http://ardrone.parrot.com/parrot-ar-drone/en/ AR.Drone Parrot The flying video game First quadricopter that can be controlled by an iPhone/iPod Touch/iPad]
 
* 23 Август, 12:39:31: [http://www.e-rajdy.pl/index.php/h-shifter.html H Shifter]
 
* 23 Август, 12:39:31: [http://www.e-rajdy.pl/index.php/h-shifter.html H Shifter]
* 20 Август, 23:23:57: [http://200mph.ru/?act=catalog www.200mph.ru - Каталог]
+
* 20 Август, 23:23:57: [http://200mph.ru/?act=catalog www.200mph.ru Каталог]
 
* 20 Август, 23:19:56: [http://iomicron.ru/ iOmicron]
 
* 20 Август, 23:19:56: [http://iomicron.ru/ iOmicron]
 
* 19 Август, 19:28:01: [http://gimp-id-photo.ru/download.html Фото на документы в GIMP | Скачать дополнение]
 
* 19 Август, 19:28:01: [http://gimp-id-photo.ru/download.html Фото на документы в GIMP | Скачать дополнение]
 
* 18 Август, 17:25:20: [http://wakemk.com/wakemk-cable/ Cable Wakeboarding | water skiing | wakeboard cable ski]
 
* 18 Август, 17:25:20: [http://wakemk.com/wakemk-cable/ Cable Wakeboarding | water skiing | wakeboard cable ski]
* 17 Август, 00:02:03: [http://www.emucr.com/ EmuCR - Emulator News & Download (EmuCR.Com)]
+
* 17 Август, 00:02:03: [http://www.emucr.com/ EmuCR Emulator News & Download (EmuCR.Com)]
* 16 Август, 19:11:16: [http://www.nedprod.com/programs/portable/nedmalloc/ ned Productions - nedmalloc]
+
* 16 Август, 19:11:16: [http://www.nedprod.com/programs/portable/nedmalloc/ ned Productions nedmalloc]
* 14 Август, 23:24:31: [http://www.lockcircle.com/ LockCircle - The Original Body Cap]
+
* 14 Август, 23:24:31: [http://www.lockcircle.com/ LockCircle The Original Body Cap]
 
* 14 Август, 01:03:55: [http://bert-hubert.blogspot.com/ bert hubert finally blogs]
 
* 14 Август, 01:03:55: [http://bert-hubert.blogspot.com/ bert hubert finally blogs]
* 14 Август, 00:07:20: [http://www.wakeboard.com.sg/index.php?showtopic=1946 Kicker Tantrum - Wakeboard Singapore!]
+
* 14 Август, 00:07:20: [http://www.wakeboard.com.sg/index.php?showtopic=1946 Kicker Tantrum Wakeboard Singapore!]
 
* 11 Август, 18:40:38: [http://xapian.org/docs/intro_ir.html Theoretical Background]
 
* 11 Август, 18:40:38: [http://xapian.org/docs/intro_ir.html Theoretical Background]
 
* 11 Август, 03:13:16: [http://www.bonprixsecure.com/ru/home.htm Покупки в bonprix]
 
* 11 Август, 03:13:16: [http://www.bonprixsecure.com/ru/home.htm Покупки в bonprix]
* 11 Август, 00:46:25: [http://aeroquad.com/ AeroQuad Forums - AeroQuad - The Open Source Quadcopter]
+
* 11 Август, 00:46:25: [http://aeroquad.com/ AeroQuad Forums AeroQuad The Open Source Quadcopter]
* 11 Август, 00:46:20: [https://www.aeroquadstore.com/ AeroQuad - The Open Source Quadcopter]
+
* 11 Август, 00:46:20: [https://www.aeroquadstore.com/ AeroQuad The Open Source Quadcopter]
 
* 09 Август, 18:29:26: [http://svnpserver.sourceforge.net/ http://svnpserver.sourceforge.net/]
 
* 09 Август, 18:29:26: [http://svnpserver.sourceforge.net/ http://svnpserver.sourceforge.net/]
 
* 07 Август, 22:57:25: [http://www.heyrick.co.uk/assembler/psr.html PSR and conditional execution]
 
* 07 Август, 22:57:25: [http://www.heyrick.co.uk/assembler/psr.html PSR and conditional execution]
* 07 Август, 22:57:18: [http://www.backerstreet.com/decompiler/creating_statements.php Decompiler Design - Creating Statements]
+
* 07 Август, 22:57:18: [http://www.backerstreet.com/decompiler/creating_statements.php Decompiler Design Creating Statements]
 
* 03 Август, 14:33:17: [http://habrahabr.ru/blogs/DIY/125214/ Модуль Bluetooth HC-04 на чипе BC417143B компании CSR / DIY или Сделай Сам / Хабрахабр]
 
* 03 Август, 14:33:17: [http://habrahabr.ru/blogs/DIY/125214/ Модуль Bluetooth HC-04 на чипе BC417143B компании CSR / DIY или Сделай Сам / Хабрахабр]
* 01 Август, 17:29:54: [http://freemind.sourceforge.net/wiki/index.php/Flash_browser Flash browser - FreeMind]
+
* 01 Август, 17:29:54: [http://freemind.sourceforge.net/wiki/index.php/Flash_browser Flash browser FreeMind]
 
* 01 Август, 17:29:26: [http://en.sibrary.com.cn/ Shenzhen Boeye Technology Co., Ltd.]
 
* 01 Август, 17:29:26: [http://en.sibrary.com.cn/ Shenzhen Boeye Technology Co., Ltd.]
 
* 01 Август, 17:28:55: [http://hg.services.openoffice.org/DEV300/file/tip/swext/mediawiki DEV300: files]
 
* 01 Август, 17:28:55: [http://hg.services.openoffice.org/DEV300/file/tip/swext/mediawiki DEV300: files]
Строка 139: Строка 141:
  
 
* 25 Июль, 01:13:24: [http://freeridex.ru/ Агентство экстремальных путешествий -]
 
* 25 Июль, 01:13:24: [http://freeridex.ru/ Агентство экстремальных путешествий -]
* 25 Июль, 00:50:03: [http://www.wake-priut.ru/ Вэйк Приют - Реверсивная Лебёдка]
+
* 25 Июль, 00:50:03: [http://www.wake-priut.ru/ Вэйк Приют Реверсивная Лебёдка]
 
* 25 Июль, 00:06:50: [http://operafan.net/forum/index.php?topic=17407.0 Патчим адресную строку в Opera 11]
 
* 25 Июль, 00:06:50: [http://operafan.net/forum/index.php?topic=17407.0 Патчим адресную строку в Opera 11]
* 22 Июль, 16:47:47: [http://code.google.com/p/openkodak/ openkodak - Custom Kodak HD video camera firmware - Google Project Hosting]
+
* 22 Июль, 16:47:47: [http://code.google.com/p/openkodak/ openkodak Custom Kodak HD video camera firmware Google Project Hosting]
 
* 22 Июль, 02:15:44: [http://www.origenboard.org/ OrigenBoard.org]
 
* 22 Июль, 02:15:44: [http://www.origenboard.org/ OrigenBoard.org]
* 19 Июль, 02:24:20: [http://www.gnu.org/licenses/license-list.html#MPL Various Licenses and Comments about Them - GNU Project - Free Software Foundation (FSF)]
+
* 19 Июль, 02:24:20: [http://www.gnu.org/licenses/license-list.html#MPL Various Licenses and Comments about Them GNU Project Free Software Foundation (FSF)]
 
* 18 Июль, 00:47:07:<br />[http://ru.fishki.net/picsw/072011/15/post/dems/dems_037.jpg http://ru.fishki.net/picsw/072011/15/post/dems/dems_037.jpg]
 
* 18 Июль, 00:47:07:<br />[http://ru.fishki.net/picsw/072011/15/post/dems/dems_037.jpg http://ru.fishki.net/picsw/072011/15/post/dems/dems_037.jpg]
 
* 18 Июль, 00:46:30:<br />[http://ru.fishki.net/picsw/072011/15/post/dems/dems_027.jpg http://ru.fishki.net/picsw/072011/15/post/dems/dems_027.jpg]
 
* 18 Июль, 00:46:30:<br />[http://ru.fishki.net/picsw/072011/15/post/dems/dems_027.jpg http://ru.fishki.net/picsw/072011/15/post/dems/dems_027.jpg]
* 16 Июль, 22:13:12: [http://www.openaos.org/archives/714 UART also for Archos101 (gen8) « openAOS]
+
* 16 Июль, 22:13:12: [http://www.openaos.org/archives/714 UART also for Archos101 (gen8) " openAOS]
* 12 Июль, 00:08:33: [http://www.kiraem.ru/wip/?n=179 Киряем! - Выпуск #179]
+
* 12 Июль, 00:08:33: [http://www.kiraem.ru/wip/?n=179 Киряем! Выпуск #179]
*: <html><b>География дома</b><br><br> Сегодня я расскажу Вам, как выучить географию, не выходя из квартиры. Гардероб. Гардероб это Китай. Да, Вы можете говорить кому угодно HUGO BOSS, COVALLI, GUCCI (показывает фигу) КИ-ТАЙ.<br>Антресоли. Антресоли это Монголия, потому что нихрена не понятно, что там лежит, что там происходит, вообще нихрена не понятно.<br>Кухня, кухня это Ближний Восток, потому что там постоянно, что-то готовится все на ножах, постоянный фарш, мясо по стенам, слезы, сопли и в центре этого диктатор, который воняет химическим оружием.<br>Если Вы живете с тещей, то комната тещи это США. Открываем дверь вот оно, тупое лицо руководителя государства. А если Вы только сунетесь на Ближний Восток, ЖОПА, война обеспечена.<br>Туалет, туалет это Голландия. Потому что неровно положенный кафель постоянно напоминает Вам, что его клали какие-то пидарасы.<br>Телевизор, телевизор это Украина. Потому что пульт управления гуляет по рукам, поэтому каждую минуту на Украине новая программа.<br>Кот, если у Вас живет кот, то это Прибалтика. Ест на халяву, пьет на халяву, мелко пакостит и делает вид, что нихрена не понимает по-русски.<br>Холодильник - это Евросоюз. Чего там только нет, и вроде бы все лежит аккуратно, по полочкам, но обязательно что-то одно воняет. Как только жрать нечего, сразу все лезут в Евросоюз, и Прибалтика тоже сует туда свой нос.<br>Балкон - это Египет. Нигде в мире Вы не найдете большего количества древностей, причем этого говна там целые пирамиды.<br>Старый молоток. Старый молоток - это Люксембург. А где он? Да х*й его знает, где он!<br>Гараж - это Париж. В центре стоит большая груда железа, под которой можно тр*хаться часами.<br>И собственно Вы во всем этом Россия. До поры до времени улыбаетесь США. Кормите Прибалтику. Боретесь за право обладания пультом управления Украины. Соприкасаетесь с Евросоюзом. Но сдохнуть хотите в Париже...</html>
+
*: <html><b>География дома</b><br><br> Сегодня я расскажу Вам, как выучить географию, не выходя из квартиры. Гардероб. Гардероб это Китай. Да, Вы можете говорить кому угодно HUGO BOSS, COVALLI, GUCCI (показывает фигу) КИ-ТАЙ.<br>Антресоли. Антресоли это Монголия, потому что нихрена не понятно, что там лежит, что там происходит, вообще нихрена не понятно.<br>Кухня, кухня это Ближний Восток, потому что там постоянно, что-то готовится все на ножах, постоянный фарш, мясо по стенам, слезы, сопли и в центре этого диктатор, который воняет химическим оружием.<br>Если Вы живете с тещей, то комната тещи это США. Открываем дверь вот оно, тупое лицо руководителя государства. А если Вы только сунетесь на Ближний Восток, ЖОПА, война обеспечена.<br>Туалет, туалет это Голландия. Потому что неровно положенный кафель постоянно напоминает Вам, что его клали какие-то пидарасы.<br>Телевизор, телевизор это Украина. Потому что пульт управления гуляет по рукам, поэтому каждую минуту на Украине новая программа.<br>Кот, если у Вас живет кот, то это Прибалтика. Ест на халяву, пьет на халяву, мелко пакостит и делает вид, что нихрена не понимает по-русски.<br>Холодильник это Евросоюз. Чего там только нет, и вроде бы все лежит аккуратно, по полочкам, но обязательно что-то одно воняет. Как только жрать нечего, сразу все лезут в Евросоюз, и Прибалтика тоже сует туда свой нос.<br>Балкон это Египет. Нигде в мире Вы не найдете большего количества древностей, причем этого говна там целые пирамиды.<br>Старый молоток. Старый молоток это Люксембург. А где он? Да х*й его знает, где он!<br>Гараж это Париж. В центре стоит большая груда железа, под которой можно тр*хаться часами.<br>И собственно Вы во всем этом Россия. До поры до времени улыбаетесь США. Кормите Прибалтику. Боретесь за право обладания пультом управления Украины. Соприкасаетесь с Евросоюзом. Но сдохнуть хотите в Париже…</html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 10 Июль, 01:10:43: [http://oprofile.sourceforge.net/about/ About OProfile]
 
* 10 Июль, 01:10:43: [http://oprofile.sourceforge.net/about/ About OProfile]
* 10 Июль, 00:11:13: [http://www.skier.com.ua/skierbin/vfor.cgi?skf=get_topic&f=4&t=000414&sorted=E SKIER - ресурс для лыжников и бордеров : FORUM : Продается катер для вейка]
+
* 10 Июль, 00:11:13: [http://www.skier.com.ua/skierbin/vfor.cgi?skf=get_topic&f=4&t=000414&sorted=E SKIER ресурс для лыжников и бордеров : FORUM : Продается катер для вейка]
 
* 07 Июль, 00:08:29: [http://www.bealto.com/mp-dot_sse.html How fast can we compute the dot product?]
 
* 07 Июль, 00:08:29: [http://www.bealto.com/mp-dot_sse.html How fast can we compute the dot product?]
 
* 01 Июль, 22:49:15: [http://www.perlmonks.org/?node_id=809842 Turing completeness and regular expressions]
 
* 01 Июль, 22:49:15: [http://www.perlmonks.org/?node_id=809842 Turing completeness and regular expressions]
Строка 158: Строка 160:
  
 
* 30 Июнь, 02:51:22: [http://www.mikrotik.com/ MikroTik Routers and Wireless]
 
* 30 Июнь, 02:51:22: [http://www.mikrotik.com/ MikroTik Routers and Wireless]
* 30 Июнь, 02:13:51: [http://code.google.com/p/er9x/ er9x - Custom firmware for the Eurgle/FlySky/Imax/Turnigy 9x r/c Transmitter - Google Project Hosting]
+
* 30 Июнь, 02:13:51: [http://code.google.com/p/er9x/ er9x Custom firmware for the Eurgle/FlySky/Imax/Turnigy 9x r/c Transmitter Google Project Hosting]
* 30 Июнь, 02:11:18: [http://code.google.com/p/gruvin9x/wiki/About About - gruvin9x - About this project / Contact information - Turnigy/Imax/Eurgle/FlySky 9X RC Radio Firmware (forked from ER9X v1.1 r262) PLUS an enhanced Controller Board design - Google Project Hosting]
+
* 30 Июнь, 02:11:18: [http://code.google.com/p/gruvin9x/wiki/About About gruvin9x About this project / Contact information Turnigy/Imax/Eurgle/FlySky 9X RC Radio Firmware (forked from ER9X v1.1 r262) PLUS an enhanced Controller Board design Google Project Hosting]
 
* 23 Июнь, 05:28:24: [http://www.hpl.hp.com/personal/Hans_Boehm/gc/ A garbage collector for C and C++]
 
* 23 Июнь, 05:28:24: [http://www.hpl.hp.com/personal/Hans_Boehm/gc/ A garbage collector for C and C++]
* 17 Июнь, 19:30:59: [http://4store.org/ 4store - Scalable RDF storage]
+
* 17 Июнь, 19:30:59: [http://4store.org/ 4store Scalable RDF storage]
* 17 Июнь, 19:27:09: [http://jscolor.com/ JSColor JavaScript / HTML Color Picker, Selector, Chooser]
+
* 17 Июнь, 19:27:09: [http://jscolor.com/ JSColor JavaScript / HTML Color Picker, Selector, Chooser]
* 17 Июнь, 19:27:01: [http://www.mediawiki.org/wiki/Extension:Semantic_Project_Management#Demo Extension:Semantic Project Management - MediaWiki]
+
* 17 Июнь, 19:27:01: [http://www.mediawiki.org/wiki/Extension:Semantic_Project_Management#Demo Extension:Semantic Project Management MediaWiki]
 
* 17 Июнь, 19:26:52: [http://www.softcomplex.com/products/tigra_calendar/ Free JavaScript Calendar]
 
* 17 Июнь, 19:26:52: [http://www.softcomplex.com/products/tigra_calendar/ Free JavaScript Calendar]
 
* 17 Июнь, 16:07:46: [http://www.robokassa.ru/ru/HowTo.aspx? Установка]
 
* 17 Июнь, 16:07:46: [http://www.robokassa.ru/ru/HowTo.aspx? Установка]
* 16 Июнь, 23:43:19: [http://sergio.salvi.ca/2009/10/18/mystery-gyro-g401b-modifications/?src=hk Mystery Gyro G401B (HK401B) modifications « Sergio Salvi]
+
* 16 Июнь, 23:43:19: [http://sergio.salvi.ca/2009/10/18/mystery-gyro-g401b-modifications/?src=hk Mystery Gyro G401B (HK401B) modifications " Sergio Salvi]
* 16 Июнь, 17:29:17: [http://www.mosquitodealer.ru/index/mosquito_xe3/0-7 Вертолет Mosquito, официальный дилер Russian Fly - Mosquito XE3]
+
* 16 Июнь, 17:29:17: [http://www.mosquitodealer.ru/index/mosquito_xe3/0-7 Вертолет Mosquito, официальный дилер Russian Fly Mosquito XE3]
* 14 Июнь, 00:28:16: [http://www.seeedstudio.com/depot/preorder-dso-quad-4-channel-digital-storage-oscilloscope-p-736.html?cPath=174 (Pre-order) DSO Quad - 4 Channel Digital Storage Oscilloscope (TES101D2P) - $199.00 : Seeed Studio Bazaar, Boost ideas, extend the reach]
+
* 14 Июнь, 00:28:16: [http://www.seeedstudio.com/depot/preorder-dso-quad-4-channel-digital-storage-oscilloscope-p-736.html?cPath=174 (Pre-order) DSO Quad 4 Channel Digital Storage Oscilloscope (TES101D2P) $199.00 : Seeed Studio Bazaar, Boost ideas, extend the reach]
* 12 Июнь, 13:53:02: [https://estore.ti.com/eZ430-Chronos-433-eZ430-Chronos-Wireless-Watch-Development-Tool-P1734.aspx eZ430-Chronos-433 - eZ430-Chronos Wireless Watch Development Tool]
+
* 12 Июнь, 13:53:02: [https://estore.ti.com/eZ430-Chronos-433-eZ430-Chronos-Wireless-Watch-Development-Tool-P1734.aspx eZ430-Chronos-433 eZ430-Chronos Wireless Watch Development Tool]
 
* 11 Июнь, 01:57:08: [http://www.simplemachines.org/community/index.php?topic=422954.msg2960640#msg2960640 Simple Machines Forums attacks]
 
* 11 Июнь, 01:57:08: [http://www.simplemachines.org/community/index.php?topic=422954.msg2960640#msg2960640 Simple Machines Forums attacks]
 
* 10 Июнь, 02:31:20: [http://www.xaprb.com/blog/2006/04/30/how-to-optimize-subqueries-and-joins-in-mysql/ How to optimize subqueries and joins in MySQL at Xaprb]
 
* 10 Июнь, 02:31:20: [http://www.xaprb.com/blog/2006/04/30/how-to-optimize-subqueries-and-joins-in-mysql/ How to optimize subqueries and joins in MySQL at Xaprb]
 
* 09 Июнь, 01:55:34: [http://gruntthepeon.free.fr/ssemath/ Simple SSE and SSE2 optimized sin, cos, log and exp]
 
* 09 Июнь, 01:55:34: [http://gruntthepeon.free.fr/ssemath/ Simple SSE and SSE2 optimized sin, cos, log and exp]
 
* 03 Июнь, 15:25:28: [http://www.cityinthesky.co.uk/opensource/pdf2svg City in the Sky: David Barton (opensource:pdf2svg)]
 
* 03 Июнь, 15:25:28: [http://www.cityinthesky.co.uk/opensource/pdf2svg City in the Sky: David Barton (opensource:pdf2svg)]
* 01 Июнь, 12:56:24: [http://remex.ru/ "Ремэкс" - Материалы для изготовления рекламы: пленки Oracal и др., листовой пластик, материалы для печати, светотехника]
+
* 01 Июнь, 12:56:24: [http://remex.ru/ «Ремэкс» — Материалы для изготовления рекламы: пленки Oracal и др., листовой пластик, материалы для печати, светотехника]
  
 
=== Май 2011 ===
 
=== Май 2011 ===
  
* 29 Май, 00:26:54: [http://www.himodel.com/ HiModel - China, Radio Control, Remote Control, RC, R/C, Wholesale, Distributor, Manufacturer, wholesaler, Helicopters, Airplanes, Cars, Trucks, Boats.]
+
* 29 Май, 00:26:54: [http://www.himodel.com/ HiModel China, Radio Control, Remote Control, RC, R/C, Wholesale, Distributor, Manufacturer, wholesaler, Helicopters, Airplanes, Cars, Trucks, Boats.]
 
* 26 Май, 15:36:19: [http://tavmjong.free.fr/SVG/BUTTON_TEST/button_test.xhtml An SVG Button Test Page]
 
* 26 Май, 15:36:19: [http://tavmjong.free.fr/SVG/BUTTON_TEST/button_test.xhtml An SVG Button Test Page]
* 26 Май, 15:33:57: [http://dev.opera.com/articles/view/advanced-svg-animation-techniques/ Advanced SVG Animation Techniques - Dev.Opera]
+
* 26 Май, 15:33:57: [http://dev.opera.com/articles/view/advanced-svg-animation-techniques/ Advanced SVG Animation Techniques Dev.Opera]
 
* 24 Май, 12:52:10: [http://www.matbio.org/about.php Электронный журнал | О журнале]
 
* 24 Май, 12:52:10: [http://www.matbio.org/about.php Электронный журнал | О журнале]
* 24 Май, 01:18:39: [http://www.readyheli.com/ ReadyHeli.com - Fast Shipping, Excellent Service, Huge Inventory...See For Yourself! RC Helicopters, Radio Controlled Heli Parts, R/C Helicopter Upgrades, Mikado, Edge Rotorblades, Align, MS Heli, Kasama, Thunder Tiger, E-Flite, JR]
+
* 24 Май, 01:18:39: [http://www.readyheli.com/ ReadyHeli.com Fast Shipping, Excellent Service, Huge Inventory…See For Yourself! RC Helicopters, Radio Controlled Heli Parts, R/C Helicopter Upgrades, Mikado, Edge Rotorblades, Align, MS Heli, Kasama, Thunder Tiger, E-Flite, JR]
* 21 Май, 01:51:55: [http://www.readyheli.com/Helicopter-Kits_c_4186.html RC Helicopter Kits Nitro & Electric - Mikado, Align, MS Heli, Kasama, E-Flite | ReadyHeli.com]
+
* 21 Май, 01:51:55: [http://www.readyheli.com/Helicopter-Kits_c_4186.html RC Helicopter Kits Nitro & Electric Mikado, Align, MS Heli, Kasama, E-Flite | ReadyHeli.com]
* 21 Май, 01:12:38: [http://www.rcgroups.com/forums/showpost.php?p=15743495&postcount=2804 RC Groups - View Single Post - Nine Eagles Solo Pro Single Rotor submicro heli]
+
* 21 Май, 01:12:38: [http://www.rcgroups.com/forums/showpost.php?p=15743495&postcount=2804 RC Groups View Single Post Nine Eagles Solo Pro Single Rotor submicro heli]
* 20 Май, 00:36:36: [http://www.xtreme-production.com/xtreme/ Xtreme Production Official Web Site - Home]
+
* 20 Май, 00:36:36: [http://www.xtreme-production.com/xtreme/ Xtreme Production Official Web Site Home]
* 18 Май, 23:49:30: [http://www.ehirobo.com/shop/product_info.php?products_id=6649 WALKERA 4G3 V2 6CH Metal Upgrade Helicopter RTF - 2.4GHz eHIROBO Store]
+
* 18 Май, 23:49:30: [http://www.ehirobo.com/shop/product_info.php?products_id=6649 WALKERA 4G3 V2 6CH Metal Upgrade Helicopter RTF 2.4GHz eHIROBO Store]
* 18 Май, 23:49:16: [http://www.ehirobo.com/shop/index.php eHIROBO - RC, RC Parts Online Shop - eHIROBO Store]
+
* 18 Май, 23:49:16: [http://www.ehirobo.com/shop/index.php eHIROBO RC, RC Parts Online Shop eHIROBO Store]
* 18 Май, 23:46:13: [http://www.ehirobo.com/shop/product_info.php?products_id=10496 WALKERA V100D03BL Flybarless Brushless 3-Axis-Gyro System 6CH Helicopter RTF (Red) - 2.4GHz eHIROBO Store]
+
* 18 Май, 23:46:13: [http://www.ehirobo.com/shop/product_info.php?products_id=10496 WALKERA V100D03BL Flybarless Brushless 3-Axis-Gyro System 6CH Helicopter RTF (Red) 2.4GHz eHIROBO Store]
* 15 Май, 02:40:24: [http://www.casemods.ru/modding/mod49/part1.htm Мышь с LCD дисплеем - Статьи о зарубежном моддинге]
+
* 15 Май, 02:40:24: [http://www.casemods.ru/modding/mod49/part1.htm Мышь с LCD дисплеем Статьи о зарубежном моддинге]
* 15 Май, 02:38:07: [http://robozone.su/2009/03/02/modul-dlja-podkljuchenija-graficheskogo-lcd-ls020.html Модуль для подключения графического LCD LS020 (Siemens S65) » RoboZone.SU - любительская робототехника. Создание роботов в домашних условиях.]
+
* 15 Май, 02:38:07: [http://robozone.su/2009/03/02/modul-dlja-podkljuchenija-graficheskogo-lcd-ls020.html Модуль для подключения графического LCD LS020 (Siemens S65) " RoboZone.SU любительская робототехника. Создание роботов в домашних условиях.]
 
* 15 Май, 02:34:09: [http://md4u.ru/godo.html#title md4u.ru : Годограф для IB металлодетектора.]
 
* 15 Май, 02:34:09: [http://md4u.ru/godo.html#title md4u.ru : Годограф для IB металлодетектора.]
* 15 Май, 01:18:24: [http://www.dealextreme.com/p/5-0-mega-pixels-hd-720p-waterproof-action-video-camera-with-8-led-night-vision-yellow-tf-65342 $77.00 - 5.0 Mega Pixels HD 720P Waterproof Action Video Camera with 8-LED Night Vision - Yellow (TF) - Digital Cameras]
+
* 15 Май, 01:18:24: [http://www.dealextreme.com/p/5-0-mega-pixels-hd-720p-waterproof-action-video-camera-with-8-led-night-vision-yellow-tf-65342 $77.00 5.0 Mega Pixels HD 720P Waterproof Action Video Camera with 8-LED Night Vision Yellow (TF) Digital Cameras]
* 14 Май, 00:50:17: [http://wikiindex.org/Category:MediaWiki Category:MediaWiki - WikiIndex]
+
* 14 Май, 00:50:17: [http://wikiindex.org/Category:MediaWiki Category:MediaWiki WikiIndex]
 
* 13 Май, 02:48:20: [http://www.tincantools.com/home.php?cat=249 Tin Can Tools :: All Products]
 
* 13 Май, 02:48:20: [http://www.tincantools.com/home.php?cat=249 Tin Can Tools :: All Products]
 
* 12 Май, 01:11:53: [http://www.miracle-mart.com/store/ Miracle Mart — RC Helicopters RC Cars RC Planes Parts for Cars Parts for Helicopters Accessory Xtreme Production]
 
* 12 Май, 01:11:53: [http://www.miracle-mart.com/store/ Miracle Mart — RC Helicopters RC Cars RC Planes Parts for Cars Parts for Helicopters Accessory Xtreme Production]
Строка 204: Строка 206:
 
* 06 Май, 16:41:53: [http://cxem.net/arduino/arduino14.php Цифровой барометр (датчик атмосферного давления)]
 
* 06 Май, 16:41:53: [http://cxem.net/arduino/arduino14.php Цифровой барометр (датчик атмосферного давления)]
 
* 06 Май, 02:04:40: [http://www.netgear.ru/?page=products/powerlinenetworking/powerlineethernetadaptersbroadband Адаптеры Powerline Ethernet]
 
* 06 Май, 02:04:40: [http://www.netgear.ru/?page=products/powerlinenetworking/powerlineethernetadaptersbroadband Адаптеры Powerline Ethernet]
* 04 Май, 19:48:20: [http://make3d.cs.cornell.edu/ Make3D --- convert your image into 3d automatically]
+
* 04 Май, 19:48:20: [http://make3d.cs.cornell.edu/ Make3D convert your image into 3d automatically]
 
* 04 Май, 17:03:07: [http://wvware.sourceforge.net/ wvWare, library for converting Word documents]
 
* 04 Май, 17:03:07: [http://wvware.sourceforge.net/ wvWare, library for converting Word documents]
 
* 04 Май, 02:51:23: [http://forum.rcdesign.ru/f4/thread199064.html Turnigy 9X ? .. Это очень просто !]
 
* 04 Май, 02:51:23: [http://forum.rcdesign.ru/f4/thread199064.html Turnigy 9X ? .. Это очень просто !]
Строка 235: Строка 237:
 
* 20 Апрель, 05:07:28: [http://wiki.multimedia.cx/index.php?title=BLB BLB — MultimediaWiki]
 
* 20 Апрель, 05:07:28: [http://wiki.multimedia.cx/index.php?title=BLB BLB — MultimediaWiki]
 
* 19 Апрель, 23:49:50: [http://www.linux.org.ru/news/opensource/6168870?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+org%2FLOR+%28Linux.org.ru%3A+%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8%29 Новости — OpenSource — Nokia запустила новый уровень сертификации Qt программистов]
 
* 19 Апрель, 23:49:50: [http://www.linux.org.ru/news/opensource/6168870?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+org%2FLOR+%28Linux.org.ru%3A+%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8%29 Новости — OpenSource — Nokia запустила новый уровень сертификации Qt программистов]
*: <html><i>&gt; А что такой сертификат дает? И в России в частности?</i><br> <br> Вот сидишь ты в туалете, страдаешь диареей, но закончилась туалетная бумага. И тут хоппа! - у тебя сертификат!</html>
+
*: <html><i>&gt; А что такой сертификат дает? И в России в частности?</i><br> <br> Вот сидишь ты в туалете, страдаешь диареей, но закончилась туалетная бумага. И тут хоппа! у тебя сертификат!</html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 19 Апрель, 23:42:34: [https://github.com/amd amd’s Profile — GitHub]
 
* 19 Апрель, 23:42:34: [https://github.com/amd amd’s Profile — GitHub]
Строка 337: Строка 339:
 
* 06 Март, 12:34:04: [http://wiki.4hv.org/index.php/Instruction_set:_ARM Instruction set: ARM — HvWiki]
 
* 06 Март, 12:34:04: [http://wiki.4hv.org/index.php/Instruction_set:_ARM Instruction set: ARM — HvWiki]
 
* 06 Март, 12:03:46: [http://lleo.aha.ru/dnevnik/2011/03/06.html Леонид Каганов: 2011/03/06 Патриотизм и саранча]
 
* 06 Март, 12:03:46: [http://lleo.aha.ru/dnevnik/2011/03/06.html Леонид Каганов: 2011/03/06 Патриотизм и саранча]
*: <html><p class="pd">А сигналом рожать перелетное потомство является количество саранчи на поле. И определяет его саранча на глаз — по числу саранчиных рыл. Поэтому достаточно расставить вокруг саранчи кучку зеркал, как она решит, что пора сваливать. Научно доказанный факт.</p><p class="pd">Вы понимаете, да? Саранча оглядывается и думает: «Блять, какое ужасное мудачье! Пора валить из этой страны!» А вокруг — зеркала, зеркала, зеркала...</p></html>
+
*: <html><p class="pd">А сигналом рожать перелетное потомство является количество саранчи на поле. И определяет его саранча на глаз — по числу саранчиных рыл. Поэтому достаточно расставить вокруг саранчи кучку зеркал, как она решит, что пора сваливать. Научно доказанный факт.</p><p class="pd">Вы понимаете, да? Саранча оглядывается и думает: «Блять, какое ужасное мудачье! Пора валить из этой страны!» А вокруг — зеркала, зеркала, зеркала…</p></html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 06 Март, 02:19:59: [http://code.google.com/p/omap-u-boot-utils/ omap-u-boot-utils — Project Hosting on Google Code]
 
* 06 Март, 02:19:59: [http://code.google.com/p/omap-u-boot-utils/ omap-u-boot-utils — Project Hosting on Google Code]
Строка 354: Строка 356:
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 04 Март, 16:29:10: [http://www.denx.de/wiki/U-Boot/WebHome WebHome < U-Boot < DENX]
 
* 04 Март, 16:29:10: [http://www.denx.de/wiki/U-Boot/WebHome WebHome < U-Boot < DENX]
* 04 Март, 02:45:24: [http://elinux.org/Hawkboard Hawkboard - eLinux.org]
+
* 04 Март, 02:45:24: [http://elinux.org/Hawkboard Hawkboard eLinux.org]
* 04 Март, 02:07:55: [http://en.wikipedia.org/wiki/Magnetic-core_memory Magnetic-core memory - Wikipedia, the free encyclopedia]
+
* 04 Март, 02:07:55: [http://en.wikipedia.org/wiki/Magnetic-core_memory Magnetic-core memory Wikipedia, the free encyclopedia]
 
* 04 Март, 01:57:42: [http://www.toshiba.com/taec/news/press_releases/2009/memy_09_585.jsp TOSHIBA LAUNCHES HIGHEST DENSITY(1) EMBEDDED NAND FLASH MEMORY DEVICES]
 
* 04 Март, 01:57:42: [http://www.toshiba.com/taec/news/press_releases/2009/memy_09_585.jsp TOSHIBA LAUNCHES HIGHEST DENSITY(1) EMBEDDED NAND FLASH MEMORY DEVICES]
 
* 04 Март, 01:57:28: [http://www.jedec.org/standards-documents/technology-focus-areas/flash-memory-ssds-ufs-e-mmc%E2%84%A2 Flash Memory: SSDs, UFS, e-MMC™ | JEDEC]
 
* 04 Март, 01:57:28: [http://www.jedec.org/standards-documents/technology-focus-areas/flash-memory-ssds-ufs-e-mmc%E2%84%A2 Flash Memory: SSDs, UFS, e-MMC™ | JEDEC]
Строка 381: Строка 383:
 
* 18 Февраль, 13:54:59: [http://forum.tegratab.com/viewforum.php?f=6 tegratab.com • View forum — GTablet Custom ROMs]
 
* 18 Февраль, 13:54:59: [http://forum.tegratab.com/viewforum.php?f=6 tegratab.com • View forum — GTablet Custom ROMs]
 
* 18 Февраль, 02:31:09: [http://www.linux.org.ru/news/opensource/5920318?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+org%2FLOR+%28Linux.org.ru%3A+%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8%29 Новости — OpenSource — Intel объявляет конкурс для разработчиков приложений для MeeGo]
 
* 18 Февраль, 02:31:09: [http://www.linux.org.ru/news/opensource/5920318?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+org%2FLOR+%28Linux.org.ru%3A+%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8%29 Новости — OpenSource — Intel объявляет конкурс для разработчиков приложений для MeeGo]
*: <html><p><i>&gt;5-дневное путешествие по России на военном сверхзвуковом самолёте </i></p><p>Камаз-самалёт?     </p></html>
+
*: <html><p><i>&gt;5-дневное путешествие по России на военном сверхзвуковом самолёте </i></p><p>Камаз-самалёт? </p></html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 18 Февраль, 00:18:41: [http://www.omappedia.org/wiki/Android_Getting_Started Android Getting Started — OMAPpedia]
 
* 18 Февраль, 00:18:41: [http://www.omappedia.org/wiki/Android_Getting_Started Android Getting Started — OMAPpedia]
Строка 404: Строка 406:
 
* 11 Февраль, 02:42:33: [http://www.singleboardcomputer.org/omap3530-single-board-computer-called-the-beagle-board/ OMAP3530 Single Board Computer — Beagle Board]
 
* 11 Февраль, 02:42:33: [http://www.singleboardcomputer.org/omap3530-single-board-computer-called-the-beagle-board/ OMAP3530 Single Board Computer — Beagle Board]
 
* 11 Февраль, 02:35:52: [http://forum.archosfans.com/viewtopic.php?f=74&t=42806&sid=b1c8f7a098ef8139083b119850e660a2 Forum.ArchosFans.com — View topic — Information Found on 101 mainboard]
 
* 11 Февраль, 02:35:52: [http://forum.archosfans.com/viewtopic.php?f=74&t=42806&sid=b1c8f7a098ef8139083b119850e660a2 Forum.ArchosFans.com — View topic — Information Found on 101 mainboard]
*: <html><span style="font-weight: bold;">Power Management Chip</span><br>Texas Instrument:<br>TPS659218<br>0AA002W $4<br><br><span style="font-weight: bold;">8GB NAND Chip</span><br>Toshiba:<br>THG8M2G6D2ABF19<br>K66428<br>JAPAN<br>1034MAE<br><br><span style="font-weight: bold;">RAM Chip</span><br>Micron:<br>OTA18<br>D9LCC<br>"M"<br><br>Micron Part Number:<br>MT46H64M32LFMA-5 IT:A</html>
+
*: <html><span style="font-weight: bold;">Power Management Chip</span><br>Texas Instrument:<br>TPS659218<br>0AA002W $4<br><br><span style="font-weight: bold;">8GB NAND Chip</span><br>Toshiba:<br>THG8M2G6D2ABF19<br>K66428<br>JAPAN<br>1034MAE<br><br><span style="font-weight: bold;">RAM Chip</span><br>Micron:<br>OTA18<br>D9LCC<br>«M»<br><br>Micron Part Number:<br>MT46H64M32LFMA-5 IT:A</html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 10 Февраль, 02:31:36: [http://3g-modem.wetpaint.com/page/Huawei+AT-commands Huawei AT-commands — 3G modem wiki]
 
* 10 Февраль, 02:31:36: [http://3g-modem.wetpaint.com/page/Huawei+AT-commands Huawei AT-commands — 3G modem wiki]
Строка 417: Строка 419:
 
* 08 Февраль, 05:23:56: [http://lenta.ru/news/2011/02/07/pilicia/ Lenta.ru: Из жизни: В Петербурге оштрафовали «пилицейского» за неправильную парковку]
 
* 08 Февраль, 05:23:56: [http://lenta.ru/news/2011/02/07/pilicia/ Lenta.ru: Из жизни: В Петербурге оштрафовали «пилицейского» за неправильную парковку]
 
* 07 Февраль, 01:14:00: [http://4pda.ru/forum/index.php?showtopic=211557&st=20 Archos 28IT, 32IT, 43IT, 70IT, 101IT — FAQ — 4PDA]
 
* 07 Февраль, 01:14:00: [http://4pda.ru/forum/index.php?showtopic=211557&st=20 Archos 28IT, 32IT, 43IT, 70IT, 101IT — FAQ — 4PDA]
*: <html><b>/system/usr/keylayout/gpio-keys.kl</b><br><!--c1--><div class="codetop">Код</div><div class="codemain"><!--ec1-->key 115   VOLUME_UP         WAKE<br>key 114   VOLUME_DOWN       WAKE<!--c2--></div><!--ec2-->заменяем на<br><!--c1--><div class="codetop">Код</div><div class="codemain"><!--ec1-->key 115   HOME         WAKE<br>key 114   BACK       WAKE<!--c2--></div><!--ec2--><br><b>Profit!</b></html>
+
*: <html><b>/system/usr/keylayout/gpio-keys.kl</b><br><!--c1--><div class="codetop">Код</div><div class="codemain"><!--ec1-->key 115 VOLUME_UP WAKE<br>key 114 VOLUME_DOWN WAKE<!--c2--></div><!--ec2-->заменяем на<br><!--c1--><div class="codetop">Код</div><div class="codemain"><!--ec1-->key 115 HOME WAKE<br>key 114 BACK WAKE<!--c2--></div><!--ec2--><br><b>Profit!</b></html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 05 Февраль, 02:58:34: [http://elbase.ru/products/view/44014/UARTDNG101 Купить UARTDNG101 — База Электроники]
 
* 05 Февраль, 02:58:34: [http://elbase.ru/products/view/44014/UARTDNG101 Купить UARTDNG101 — База Электроники]
Строка 424: Строка 426:
 
* 04 Февраль, 19:20:45: [http://timhatch.com/projects/pybraces/ Projects: pybraces (Tim Hatch)]
 
* 04 Февраль, 19:20:45: [http://timhatch.com/projects/pybraces/ Projects: pybraces (Tim Hatch)]
 
* 03 Февраль, 14:46:41: [http://forum.xda-developers.com/showthread.php?t=866418 ADB on Archos 101 — xda-developers]
 
* 03 Февраль, 14:46:41: [http://forum.xda-developers.com/showthread.php?t=866418 ADB on Archos 101 — xda-developers]
*: <html>* Add Archos vendor ID (0x0e79) to adb_usb.ini in .android folder in your home directory:<br>           o Windows: echo 0x0e79 &gt;&gt; "%USERPROFILE%\.android\adb_usb.ini"<br>           o Macos: echo "0x0e79" &gt;&gt; ~/.android/adb_usb.ini<br>           o Linux: echo "0x0e79" &gt;&gt; ~/.android/adb_usb.ini<br> <br>     * For Linux users only: You need to add a udev rule if ADB only works as root:<br>           o Create a file /etc/udev/rules.d/51-android.rules that contains the following lines:<br>             SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",<br>             ENV{PRODUCT}=="e79/*", MODE="0666"<br>             SUBSYSTEM=="usb", SYSFS{idVendor}=="e79", MODE="0666"<br>           o Make the rule known to udev with the following command:<br>             udevadm control --reload-rules (or udevcontrol reload_rules on older systems)</html>
+
*: <html>* Add Archos vendor ID (0x0e79) to adb_usb.ini in .android folder in your home directory:<br> o Windows: echo 0x0e79 &gt;&gt; «%USERPROFILE%\.android\adb_usb.ini»<br> o Macos: echo «0x0e79» &gt;&gt; ~/.android/adb_usb.ini<br> o Linux: echo «0x0e79» &gt;&gt; ~/.android/adb_usb.ini<br> <br> * For Linux users only: You need to add a udev rule if ADB only works as root:<br> o Create a file /etc/udev/rules.d/51-android.rules that contains the following lines:<br> SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",<br> ENV{PRODUCT}=="e79/*", MODE="0666"<br> SUBSYSTEM=="usb", SYSFS{idVendor}=="e79", MODE="0666"<br> o Make the rule known to udev with the following command:<br> udevadm control --reload-rules (or udevcontrol reload_rules on older systems)</html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 02 Февраль, 20:51:09: [http://www.kongregate.com/ Kongregate: Play free games online]
 
* 02 Февраль, 20:51:09: [http://www.kongregate.com/ Kongregate: Play free games online]
Строка 441: Строка 443:
 
* 21 Январь, 16:43:29: [http://martinfowler.com/eaaCatalog/ Catalog of Patterns of Enterprise Application Architecture]
 
* 21 Январь, 16:43:29: [http://martinfowler.com/eaaCatalog/ Catalog of Patterns of Enterprise Application Architecture]
 
* 20 Январь, 19:15:14: [http://snowcore.net/clone-javascript-object Clone Javascript object > Snowcore’s блог]
 
* 20 Январь, 19:15:14: [http://snowcore.net/clone-javascript-object Clone Javascript object > Snowcore’s блог]
*: <html><span style="font-weight: bold; color: #003366;">function</span> clone<span style="color: #66cc66;">(</span>o<span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span><br> <span style="font-weight: bold; color: #000066;"> if</span><span style="color: #66cc66;">(</span>!o || <span style="color: #3366cc;">‘object’</span> !== <span style="font-weight: bold; color: #000066;">typeof</span> o<span style="color: #66cc66;">)</span> <span style="color: #66cc66;"> {</span><br> <span style="font-weight: bold; color: #000066;">   return</span> o;<br> <span style="color: #66cc66;"> }</span><br> <span style="font-weight: bold; color: #003366;"> var</span>c = <span style="color: #3366cc;">‘function’</span> === <span style="font-weight: bold; color: #000066;">typeof</span> o.<span style="color: #006600;">pop</span> ? <span style="color: #66cc66;">[</span><span style="color: #66cc66;">]</span> : <span style="color: #66cc66;">{</span><span style="color: #66cc66;">}</span>;<br> <span style="font-weight: bold; color: #003366;"> var</span> p, v;<br> <span style="font-weight: bold; color: #000066;"> for</span><span style="color: #66cc66;">(</span>p <span style="font-weight: bold; color: #000066;">in</span> o<span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span><br> <span style="font-weight: bold; color: #000066;"> if</span><span style="color: #66cc66;">(</span>o.<span style="color: #006600;">hasOwnProperty</span><span style="color: #66cc66;">(</span>p<span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span><br>   v = o<span style="color: #66cc66;">[</span>p<span style="color: #66cc66;">]</span>;<br> <span style="font-weight: bold; color: #000066;"> if</span><span style="color: #66cc66;">(</span>v &amp;&amp; <span style="color: #3366cc;">‘object’</span> === <span style="font-weight: bold; color: #000066;">typeof</span> v<span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span><br>     c<span style="color: #66cc66;">[</span>p<span style="color: #66cc66;">]</span> = clone<span style="color: #66cc66;">(</span>v<span style="color: #66cc66;">)</span>;<br>   <span style="color: #66cc66;">}</span><br> <span style="font-weight: bold; color: #000066;"> else</span> <span style="color: #66cc66;">{</span><br>     c<span style="color: #66cc66;">[</span>p<span style="color: #66cc66;">]</span> = v;<br>   <span style="color: #66cc66;">}</span><br> <span style="color: #66cc66;"> }</span><br> <span style="color: #66cc66;">}</span><br> <span style="font-weight: bold; color: #000066;"> return</span> c;<br> <span style="color: #66cc66;">}</span></html>
+
*: <html><span style="font-weight: bold; color: #003366;">function</span> clone<span style="color: #66cc66;">(</span>o<span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span><br> <span style="font-weight: bold; color: #000066;"> if</span><span style="color: #66cc66;">(</span>!o || <span style="color: #3366cc;">‘object’</span> !== <span style="font-weight: bold; color: #000066;">typeof</span> o<span style="color: #66cc66;">)</span> <span style="color: #66cc66;"> {</span><br> <span style="font-weight: bold; color: #000066;"> return</span> o;<br> <span style="color: #66cc66;"> }</span><br> <span style="font-weight: bold; color: #003366;"> var</span>c = <span style="color: #3366cc;">‘function’</span> === <span style="font-weight: bold; color: #000066;">typeof</span> o.<span style="color: #006600;">pop</span> ? <span style="color: #66cc66;">[</span><span style="color: #66cc66;">]</span> : <span style="color: #66cc66;">{</span><span style="color: #66cc66;">}</span>;<br> <span style="font-weight: bold; color: #003366;"> var</span> p, v;<br> <span style="font-weight: bold; color: #000066;"> for</span><span style="color: #66cc66;">(</span>p <span style="font-weight: bold; color: #000066;">in</span> o<span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span><br> <span style="font-weight: bold; color: #000066;"> if</span><span style="color: #66cc66;">(</span>o.<span style="color: #006600;">hasOwnProperty</span><span style="color: #66cc66;">(</span>p<span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span><br> v = o<span style="color: #66cc66;">[</span>p<span style="color: #66cc66;">]</span>;<br> <span style="font-weight: bold; color: #000066;"> if</span><span style="color: #66cc66;">(</span>v &amp;&amp; <span style="color: #3366cc;">‘object’</span> === <span style="font-weight: bold; color: #000066;">typeof</span> v<span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span><br> c<span style="color: #66cc66;">[</span>p<span style="color: #66cc66;">]</span> = clone<span style="color: #66cc66;">(</span>v<span style="color: #66cc66;">)</span>;<br> <span style="color: #66cc66;">}</span><br> <span style="font-weight: bold; color: #000066;"> else</span> <span style="color: #66cc66;">{</span><br> c<span style="color: #66cc66;">[</span>p<span style="color: #66cc66;">]</span> = v;<br> <span style="color: #66cc66;">}</span><br> <span style="color: #66cc66;"> }</span><br> <span style="color: #66cc66;">}</span><br> <span style="font-weight: bold; color: #000066;"> return</span> c;<br> <span style="color: #66cc66;">}</span></html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 19 Январь, 03:21:42: [http://linux-igd.sourceforge.net/ Linux UPnP Internet Gateway Device]
 
* 19 Январь, 03:21:42: [http://linux-igd.sourceforge.net/ Linux UPnP Internet Gateway Device]
Строка 447: Строка 449:
 
* 18 Январь, 03:07:27: [http://www.eaavideo.org/video.aspx?v=635469588001 EAA Video Player — Your Source for Aviation Videos]
 
* 18 Январь, 03:07:27: [http://www.eaavideo.org/video.aspx?v=635469588001 EAA Video Player — Your Source for Aviation Videos]
 
* 18 Январь, 01:39:44: [http://readers.lenta.ru/news/2011/01/16/putin/ Lenta.ru: Форум]
 
* 18 Январь, 01:39:44: [http://readers.lenta.ru/news/2011/01/16/putin/ Lenta.ru: Форум]
*: <html>По поводу невъезда(так будет вернее) в "ЕС список", во первых это несомненно рефлексия, которая давно уже стала одним из главных утешений западной политики, а во вторых, с реальной пацанвой па любэ придётся считаться. А российская пацанва стала реальной, когда нашла в себе духовные силы сменить перманентную патрио-фрустрацию, на креативный рэкет в виде "властной вертикали".</html>
+
*: <html>По поводу невъезда(так будет вернее) в «ЕС список», во первых это несомненно рефлексия, которая давно уже стала одним из главных утешений западной политики, а во вторых, с реальной пацанвой па любэ придётся считаться. А российская пацанва стала реальной, когда нашла в себе духовные силы сменить перманентную патрио-фрустрацию, на креативный рэкет в виде «властной вертикали».</html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 17 Январь, 23:07:43: [http://www.rodsdot.com/javascript/cross_browser_clipboard_copy_with_pop_over_message.asp Cross Browser Copy To Clipboard]
 
* 17 Январь, 23:07:43: [http://www.rodsdot.com/javascript/cross_browser_clipboard_copy_with_pop_over_message.asp Cross Browser Copy To Clipboard]
Строка 515: Строка 517:
 
* 28 Ноябрь, 23:04:16: [http://www.microchip.com.ru/Support/tipsCCP%201.html Применение CCP]
 
* 28 Ноябрь, 23:04:16: [http://www.microchip.com.ru/Support/tipsCCP%201.html Применение CCP]
 
* 27 Ноябрь, 18:20:23: [http://izubr.livejournal.com/120853.html izubr: От моих декабрей до твоей весны…]
 
* 27 Ноябрь, 18:20:23: [http://izubr.livejournal.com/120853.html izubr: От моих декабрей до твоей весны…]
*: <html><FONT face="Arial,Helvetica" size="+1"><I><B>От моих декабрей до твоей весны...</B></I></FONT><BR> Я работаю солнечной батареей, я в кармане оранжевом солнце грею, чтоб оно на небо взошло скорее и чесало макушки заснувших лип. Солнце ловит за пальцы меня лучами, я его приручила и отвечаю, солнце просит завтрак и выпить чаю, просит прямо внутрь его налить. <BR>Солнцу так одиноко ходить по кругу - вот нашло, понимаешь, себе подругу, и ему всё равно - хоть любовь, хоть ругань, поболтать бы вот только о ерунде. Я его несу осторожно очень, ведь оно непоседливо между прочим и всё время выпрыгнуть хочет ночью, чтобы вдруг повсюду случился день.<BR>Я работаю солнечным развлеченьем, я кормлю его по утрам печеньем, а потом усталой порой вечерней я ему чумазую спинку тру. И когда уже все разбрелись и спят, я отмываю солнцу босые пятки, а то все ведь заметят на солнце пятна, многим это будет не по нутру.<BR>Но потом постепенно солнце взрослеет, в переходном возрасте жарит злее, и багровым пятном по ночам алеет, и подчас забывает придти домой . А приходит - горячее, как жаровня, говорит, что я, мол, ему не ровня, и не родственница я ему по крови, и что вид ему неприятен мой.<BR>Понимаю, я, в общем, сама такая, я всем прихотям солнечным потакаю, а оно мне в сердце лучи втыкает, чтоб до боли - а мне так тепло в груди. Покричит об измене, тоске, обмане... а потом тихонько к себе поманит и заснет спокойно в моем кармане, и я буду бояться его будить.<BR>Я работаю солнечной батареей. На рассвете прохладно, восток сереет, воздух пахнет листьями и сиренью, и пора бы уже открывать карман. Я держу карман шире, чтоб было проще... солнце сонное нос конопатый морщит, а потом восходит над тихой рощей, рассыпается искрами по домам.</html>
+
*: <html><FONT face="Arial,Helvetica" size="+1"><I><B>От моих декабрей до твоей весны…</B></I></FONT><BR> Я работаю солнечной батареей, я в кармане оранжевом солнце грею, чтоб оно на небо взошло скорее и чесало макушки заснувших лип. Солнце ловит за пальцы меня лучами, я его приручила и отвечаю, солнце просит завтрак и выпить чаю, просит прямо внутрь его налить. <BR>Солнцу так одиноко ходить по кругу вот нашло, понимаешь, себе подругу, и ему всё равно хоть любовь, хоть ругань, поболтать бы вот только о ерунде. Я его несу осторожно очень, ведь оно непоседливо между прочим и всё время выпрыгнуть хочет ночью, чтобы вдруг повсюду случился день.<BR>Я работаю солнечным развлеченьем, я кормлю его по утрам печеньем, а потом усталой порой вечерней я ему чумазую спинку тру. И когда уже все разбрелись и спят, я отмываю солнцу босые пятки, а то все ведь заметят на солнце пятна, многим это будет не по нутру.<BR>Но потом постепенно солнце взрослеет, в переходном возрасте жарит злее, и багровым пятном по ночам алеет, и подчас забывает придти домой . А приходит горячее, как жаровня, говорит, что я, мол, ему не ровня, и не родственница я ему по крови, и что вид ему неприятен мой.<BR>Понимаю, я, в общем, сама такая, я всем прихотям солнечным потакаю, а оно мне в сердце лучи втыкает, чтоб до боли а мне так тепло в груди. Покричит об измене, тоске, обмане… а потом тихонько к себе поманит и заснет спокойно в моем кармане, и я буду бояться его будить.<BR>Я работаю солнечной батареей. На рассвете прохладно, восток сереет, воздух пахнет листьями и сиренью, и пора бы уже открывать карман. Я держу карман шире, чтоб было проще… солнце сонное нос конопатый морщит, а потом восходит над тихой рощей, рассыпается искрами по домам.</html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 27 Ноябрь, 02:35:07: [http://www.starlino.com/usb_gamepad.html Accelerometer Controlled Usb Gamepad and Mouse using PIC18F2550 / PIC18F4550 « Starlino Electronics]
 
* 27 Ноябрь, 02:35:07: [http://www.starlino.com/usb_gamepad.html Accelerometer Controlled Usb Gamepad and Mouse using PIC18F2550 / PIC18F4550 « Starlino Electronics]
 
* 26 Ноябрь, 03:41:44: [http://usdigital.com/products/encoders/absolute/rotary/shaft/ma3/ US Digital | Products „ MA3 Miniature Absolute Magnetic Shaft Encoder]
 
* 26 Ноябрь, 03:41:44: [http://usdigital.com/products/encoders/absolute/rotary/shaft/ma3/ US Digital | Products „ MA3 Miniature Absolute Magnetic Shaft Encoder]
 
* 26 Ноябрь, 03:05:24: [http://www.microchip.com.ru/DSPIC33/dsPIC33.html dsPIC33F]
 
* 26 Ноябрь, 03:05:24: [http://www.microchip.com.ru/DSPIC33/dsPIC33.html dsPIC33F]
*: <html><TD width="17%"><P align="center" class="style2"><A href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1335&amp;dDocName=en532304">dsPIC33FJ32GP302 <BR>           </A> </P></TD>           <TD width="5%"><P align="center" class="style2"></P></TD></html>
+
*: <html><TD width=“17 %»><P align="center" class="style2"><A href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1335&amp;dDocName=en532304">dsPIC33FJ32GP302 <BR> </A> </P></TD> <TD width="5 %"><P align="center" class="style2"></P></TD></html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 26 Ноябрь, 03:01:37: [http://easyelectronics.ru/svyaz-mikrokontrollera-s-kompyuterom-cherez-rs232.html Связь микроконтроллера с компьютером через RS232 : Электроника для всех]
 
* 26 Ноябрь, 03:01:37: [http://easyelectronics.ru/svyaz-mikrokontrollera-s-kompyuterom-cherez-rs232.html Связь микроконтроллера с компьютером через RS232 : Электроника для всех]
Строка 549: Строка 551:
 
* 10 Ноябрь, 02:19:31: [http://www.romraider.com/forum/topic1814.html RomRaider • View topic — Turbo dynamics and boost control explained]
 
* 10 Ноябрь, 02:19:31: [http://www.romraider.com/forum/topic1814.html RomRaider • View topic — Turbo dynamics and boost control explained]
 
* 10 Ноябрь, 02:02:06: [http://evoecu.logic.net/wiki/TephraMod TephraMod — EvoEcu]
 
* 10 Ноябрь, 02:02:06: [http://evoecu.logic.net/wiki/TephraMod TephraMod — EvoEcu]
* 10 Ноябрь, 01:44:39: [http://www.klevyi.ru/product/5572/6714/ “Клёвый» — спиннинговый магазин :: Кевларовая нить UTC Kevlar Natural]
+
* 10 Ноябрь, 01:44:39: [http://www.klevyi.ru/product/5572/6714/ «Клёвый» — спиннинговый магазин :: Кевларовая нить UTC Kevlar Natural]
 
* 10 Ноябрь, 01:44:29: [http://www.botscout.com/login.htm BotScout.com: Account Login]
 
* 10 Ноябрь, 01:44:29: [http://www.botscout.com/login.htm BotScout.com: Account Login]
 
* 10 Ноябрь, 01:44:22: [http://forum.hosts-file.net/sbst/ SpamBot Search Tool v0.50]
 
* 10 Ноябрь, 01:44:22: [http://forum.hosts-file.net/sbst/ SpamBot Search Tool v0.50]
Строка 583: Строка 585:
 
* 23 Октябрь, 01:17:28: [http://packages.python.org/snaked/ Snaked user manual — Snaked v0.3 documentation]
 
* 23 Октябрь, 01:17:28: [http://packages.python.org/snaked/ Snaked user manual — Snaked v0.3 documentation]
 
* 23 Октябрь, 00:59:06: [http://kernelnewbies.org/ Linux Kernel Newbies — Linux Kernel Newbies]
 
* 23 Октябрь, 00:59:06: [http://kernelnewbies.org/ Linux Kernel Newbies — Linux Kernel Newbies]
* 22 Октябрь, 02:18:39: [http://www.drive2.ru/communities/miachkovo/forum/4035225266124056980 трасса АДМ. прохождение круга, от М. Г. Горбачева]
+
* 22 Октябрь, 02:18:39: [http://www.drive2.ru/communities/miachkovo/forum/4035225266124056980 трасса АДМ. прохождение круга, от М. Г. Горбачева]
 
* 22 Октябрь, 00:49:47: [http://www.hksusa.com/info/?id=2838 HKS USA HKS Hipermax Monotube vs. Twintube]
 
* 22 Октябрь, 00:49:47: [http://www.hksusa.com/info/?id=2838 HKS USA HKS Hipermax Monotube vs. Twintube]
 
* 20 Октябрь, 18:19:23: [http://css-discuss.incutio.com/wiki/Print_Stylesheets Print Stylesheets — CSS Discuss]
 
* 20 Октябрь, 18:19:23: [http://css-discuss.incutio.com/wiki/Print_Stylesheets Print Stylesheets — CSS Discuss]
Строка 624: Строка 626:
 
* 22 Сентябрь, 19:45:35: [http://www.gsm-modem.de/gsm-modem-faq.html gsm modem faq.]
 
* 22 Сентябрь, 19:45:35: [http://www.gsm-modem.de/gsm-modem-faq.html gsm modem faq.]
 
* 22 Сентябрь, 19:43:44: [http://a-zgsm.com/huawei.php?act=submit Online Huawei Modem Unlock Calculator]
 
* 22 Сентябрь, 19:43:44: [http://a-zgsm.com/huawei.php?act=submit Online Huawei Modem Unlock Calculator]
*: <html>IMEI: 352108044566805<br />» Unlock: 63343495<br />« Flash: 35389007<br />(c) SERGEY/MKL 2010<br />AT^CARDLOCK="63343495"</html>
+
*: <html>IMEI: 352108044566805<br />» Unlock: 63343495<br />« Flash: 35389007<br />(c) SERGEY/MKL 2010<br />AT^CARDLOCK=»63343495"</html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
* 22 Сентябрь, 19:26:48: [http://www.rus-linux.net/nlib.php?name=/MyLDP/internet/modem-ru.html Как „приручить“ МТС-модем Huawei E1550]
+
* 22 Сентябрь, 19:26:48: [http://www.rus-linux.net/nlib.php?name=/MyLDP/internet/modem-ru.html Как «приручить» МТС-модем Huawei E1550]
 
* 22 Сентябрь, 19:25:36: [http://www.pak-gsm.com/Huawei.php Huawei code calculator by Pak-Gsm & Team]
 
* 22 Сентябрь, 19:25:36: [http://www.pak-gsm.com/Huawei.php Huawei code calculator by Pak-Gsm & Team]
 
* 22 Сентябрь, 15:21:34: [http://www.rallyvv.ru/node/94 Грунтовое кольцо |]
 
* 22 Сентябрь, 15:21:34: [http://www.rallyvv.ru/node/94 Грунтовое кольцо |]
 
* 10 Сентябрь, 19:28:11: [http://hoech.net/dispcalGUI/ dispcalGUI—Open Source Display Calibration and Characterization powered by Argyll CMS]
 
* 10 Сентябрь, 19:28:11: [http://hoech.net/dispcalGUI/ dispcalGUI—Open Source Display Calibration and Characterization powered by Argyll CMS]
 
* 09 Сентябрь, 14:18:42: [http://www.elivecd.org/Download/MacBook Where Debian meets Enlightenment]
 
* 09 Сентябрь, 14:18:42: [http://www.elivecd.org/Download/MacBook Where Debian meets Enlightenment]
* 06 Сентябрь, 15:26:15: [http://vegacomp.ru/index.php?ukey=product&furl_enable=1&product_slug=noutbuk-sony-vpc-f11s1rb-i5-520m4g500nv-330m-1gbr-combowifibtw7hp164fullhdcamblack&productID=290956&from=ya Ноутбук Sony VPC-F11S1R/B i5 520M/4G/500/nV 330M 1G/BR combo/WiFi/BT/W7HP/16.4»FullHD/Cam/Black]
+
* 06 Сентябрь, 15:26:15: [http://vegacomp.ru/index.php?ukey=product&furl_enable=1&product_slug=noutbuk-sony-vpc-f11s1rb-i5-520m4g500nv-330m-1gbr-combowifibtw7hp164fullhdcamblack&productID=290956&from=ya Ноутбук Sony VPC-F11S1R/B i5 520M/4G/500/nV 330M 1G/BR combo/WiFi/BT/W7HP/16.4"FullHD/Cam/Black]
 
* 04 Сентябрь, 03:25:09: [http://www.wirelesspowerconsortium.com/technology/how-it-works.html How it works]
 
* 04 Сентябрь, 03:25:09: [http://www.wirelesspowerconsortium.com/technology/how-it-works.html How it works]
 
* 02 Сентябрь, 19:29:26: [http://maashaa.livejournal.com/36744.html maashaa: iphone]
 
* 02 Сентябрь, 19:29:26: [http://maashaa.livejournal.com/36744.html maashaa: iphone]
Строка 647: Строка 649:
 
* 27 Август, 21:46:27: [http://japanwheels.ru/291.html japanwheels.ru | О нас | Тормозные колодки Rotora H2 Ceramic для Subaru Impreza STI (Brembo) / MITSUBISHI EVO передние (RP.10010.1)]
 
* 27 Август, 21:46:27: [http://japanwheels.ru/291.html japanwheels.ru | О нас | Тормозные колодки Rotora H2 Ceramic для Subaru Impreza STI (Brembo) / MITSUBISHI EVO передние (RP.10010.1)]
 
* 27 Август, 11:22:28: [http://habrahabr.ru/blogs/crypto/102614/ Станция УВБ-76 подала четвёртый сигнал за 30 лет / Криптография / Хабрахабр]
 
* 27 Август, 11:22:28: [http://habrahabr.ru/blogs/crypto/102614/ Станция УВБ-76 подала четвёртый сигнал за 30 лет / Криптография / Хабрахабр]
*: <html><DIV class="msg-meta"><UL class="menu info author hcard"><LI><UL class="vote voting positive"><LI class="mark"><SPAN></SPAN></LI> <LI class="buttons"> <A rev="voter-for-comment:3188031" class="vote_minus vote-for-comment" title="Плохой комментарий"></A> <A rev="voter-for-comment:3188031" class="vote_plus vote-for-comment" title="Хороший комментарий"></A> </LI> </UL> </LI> </UL> </DIV> <DIV class="entry-content"> <DIV class="entry-content-only"> <IMG src="http://www.proplay.ru/images/users/gallery/77884/176817_m.jpg"> </DIV> <P class="reply"><A href="http://habrahabr.ru/blogs/crypto/102614/?reply_to=3188031#comment_3188031" onclick="commentForm.moveForm('reply_form_3188031'); return false;"></A></P></DIV></html>
+
*: <html><DIV class="msg-meta"><UL class="menu info author hcard"><LI><UL class="vote voting positive"><LI class="mark"><SPAN></SPAN></LI> <LI class="buttons"> <A rev="voter-for-comment:3188031" class="vote_minus vote-for-comment" title="Плохой комментарий"></A> <A rev="voter-for-comment:3188031" class="vote_plus vote-for-comment" title="Хороший комментарий"></A> </LI> </UL> </LI> </UL> </DIV> <DIV class="entry-content"> <DIV class="entry-content-only"> <IMG src="http://www.proplay.ru/images/users/gallery/77884/176817_m.jpg"> </DIV> <P class="reply"><A href="http://habrahabr.ru/blogs/crypto/102614/?reply_to=3188031#comment_3188031" onclick="commentForm.moveForm('reply_form_3188031'); return false;«></A></P></DIV></html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 26 Август, 15:28:16: [http://community.livejournal.com/science_freaks/1645003.html science_freaks: Из чего делают самый дорогой кофе?]
 
* 26 Август, 15:28:16: [http://community.livejournal.com/science_freaks/1645003.html science_freaks: Из чего делают самый дорогой кофе?]
Строка 655: Строка 657:
 
* 25 Август, 02:15:23: [http://nehudlit.ru/books/subcat293page2.html молекулярная биология (стр. 2) : биология : книги : электронная библиотека]
 
* 25 Август, 02:15:23: [http://nehudlit.ru/books/subcat293page2.html молекулярная биология (стр. 2) : биология : книги : электронная библиотека]
 
* 25 Август, 01:41:44: [http://webx.dk/rc/rc.htm#plane19 Radio control page, RC planes boats cars whatever]
 
* 25 Август, 01:41:44: [http://webx.dk/rc/rc.htm#plane19 Radio control page, RC planes boats cars whatever]
* 25 Август, 01:33:43: [http://www.ffteam.ru/articles/93/ Парапланерная школа «Free Fly Team», полеты на параплане: Содержание / Категория / Аэробатика]
+
* 25 Август, 01:33:43: [http://www.ffteam.ru/articles/93/ Парапланерная школа „Free Fly Team“, полеты на параплане: Содержание / Категория / Аэробатика]
 
* 25 Август, 01:33:26: [http://radiopilot.ru/project.php?prid=87 РАДИОПИЛОТ — Регуляторы б/к, моторы (Hi-Model, Turnigy), Li-Po батареи, сервы, приемники CORONA, Spectrum, 2.4ГГц, Art-Tech, GWS, E-Sky, Calmato,Cessna,Align,GAUI — Запчасти — enn]
 
* 25 Август, 01:33:26: [http://radiopilot.ru/project.php?prid=87 РАДИОПИЛОТ — Регуляторы б/к, моторы (Hi-Model, Turnigy), Li-Po батареи, сервы, приемники CORONA, Spectrum, 2.4ГГц, Art-Tech, GWS, E-Sky, Calmato,Cessna,Align,GAUI — Запчасти — enn]
 
* 25 Август, 00:32:42: [http://www2.kartboy.com/x4/product.php?productid=16193&cat=253&page=3 Kartboy dot com :: Subaru WRX :: 2002—2007 WRX :: Kartboy Solid Front & Rear Endlinks RS/WRX 1997—2007 (WRX Sedan)]
 
* 25 Август, 00:32:42: [http://www2.kartboy.com/x4/product.php?productid=16193&cat=253&page=3 Kartboy dot com :: Subaru WRX :: 2002—2007 WRX :: Kartboy Solid Front & Rear Endlinks RS/WRX 1997—2007 (WRX Sedan)]
* 24 Август, 18:59:10: [http://market.yandex.ru/model.xml?hid=91013&modelid=6148055 ASUS UL30Vt (Core 2 Duo SU7300 1300 Mhz/13.3"/1366x768/4096Mb/500Gb/DVD нет/Wi-Fi/Bluetooth/Win 7 HP) — Ноутбуки — Яндекс. Маркет]
+
* 24 Август, 18:59:10: [http://market.yandex.ru/model.xml?hid=91013&modelid=6148055 ASUS UL30Vt (Core 2 Duo SU7300 1300 Mhz/13./1366x768/4096Mb/500Gb/DVD нет/Wi-Fi/Bluetooth/Win 7 HP) — Ноутбуки — Яндекс. Маркет]
 
* 19 Август, 09:24:39: [http://info.russianpost.ru/servlet/post_item ИВЦ ОАСУ РПО / Отслеживание РПО]
 
* 19 Август, 09:24:39: [http://info.russianpost.ru/servlet/post_item ИВЦ ОАСУ РПО / Отслеживание РПО]
 
* 11 Август, 23:58:17: [http://www.sti-club.su/forum/viewtopic.php?p=891447&sid=7eeb7a494a6cce3527bf999374b64456 STi-Club — Просмотр темы — Стойки K-sport]
 
* 11 Август, 23:58:17: [http://www.sti-club.su/forum/viewtopic.php?p=891447&sid=7eeb7a494a6cce3527bf999374b64456 STi-Club — Просмотр темы — Стойки K-sport]
Строка 698: Строка 700:
 
* 13 Июль, 01:15:23: [http://ymm.sytes.net/ Карты для Мобильных Яндекс карт 3.x, онлайн коллекция — Карты для Мобильных Яндекс Карт (кэш) — Yandex Mobile Maps cache collector]
 
* 13 Июль, 01:15:23: [http://ymm.sytes.net/ Карты для Мобильных Яндекс карт 3.x, онлайн коллекция — Карты для Мобильных Яндекс Карт (кэш) — Yandex Mobile Maps cache collector]
 
* 10 Июль, 23:13:27: [http://www.tuning-net.ru/tuning/element.php?SECTION_ID=10656&ELEMENT_ID=81577 ПРОЧИЙ 57731FE330PG OE Subaru Impreza 03/'04-05/'05 Крышка противотуманной фары левая — Самый полный каталог товаров для автоспорта и тюнинга в рунете]
 
* 10 Июль, 23:13:27: [http://www.tuning-net.ru/tuning/element.php?SECTION_ID=10656&ELEMENT_ID=81577 ПРОЧИЙ 57731FE330PG OE Subaru Impreza 03/'04-05/'05 Крышка противотуманной фары левая — Самый полный каталог товаров для автоспорта и тюнинга в рунете]
* 08 Июль, 18:00:48: [http://tnkgrl.wordpress.com/2008/10/28/modding-the-acer-aspire-one-hsdpa/ Modding the Acer Aspire One — HSDPA " tnkgrl Mobile]
+
* 08 Июль, 18:00:48: [http://tnkgrl.wordpress.com/2008/10/28/modding-the-acer-aspire-one-hsdpa/ Modding the Acer Aspire One — HSDPA « tnkgrl Mobile]
 
* 08 Июль, 01:16:59: [http://ubuntuforums.org/archive/index.php/t-1155698.html (all variants) vlc & wmapro audio, w32codecs (Archive) — Ubuntu Forums]
 
* 08 Июль, 01:16:59: [http://ubuntuforums.org/archive/index.php/t-1155698.html (all variants) vlc & wmapro audio, w32codecs (Archive) — Ubuntu Forums]
 
* 06 Июль, 21:06:16: [http://allextreme.su/mag/4/23/112/ Весь экстрим. Апрель 2010]
 
* 06 Июль, 21:06:16: [http://allextreme.su/mag/4/23/112/ Весь экстрим. Апрель 2010]
* 06 Июль, 00:33:59: [http://dzstupino.net.ru/ Неофициальный форум DZ «Пущино»]
+
* 06 Июль, 00:33:59: [http://dzstupino.net.ru/ Неофициальный форум DZ „Пущино“]
 
* 04 Июль, 14:30:00: [http://www.user-agents.org/ List of User-Agents (Spiders, Robots, Browser)]
 
* 04 Июль, 14:30:00: [http://www.user-agents.org/ List of User-Agents (Spiders, Robots, Browser)]
 
* 03 Июль, 03:02:11: [http://www.youtube.com/watch?v=m9vBESVNdNk&feature=related YouTube — запутался парашют (Парашют не раскрылся)]
 
* 03 Июль, 03:02:11: [http://www.youtube.com/watch?v=m9vBESVNdNk&feature=related YouTube — запутался парашют (Парашют не раскрылся)]
Строка 724: Строка 726:
 
* 28 Май, 18:19:32: [http://hamsy.gallery.ru/watch?ph=g69-bHVzL#feature=topclick Фото #3 — CDRR — hamsy на Gallery.ru]
 
* 28 Май, 18:19:32: [http://hamsy.gallery.ru/watch?ph=g69-bHVzL#feature=topclick Фото #3 — CDRR — hamsy на Gallery.ru]
 
* 27 Май, 22:54:42: [http://thingsthataredoingit.com/ Things That Are Doing It — Inanimate Hawtness]
 
* 27 Май, 22:54:42: [http://thingsthataredoingit.com/ Things That Are Doing It — Inanimate Hawtness]
*: <html><H2><A href="http://thingsthataredoingit.com/2010/05/24/bears-hump-smoking-bunnies/" rel="bookmark" title="Permanent Link to Bears Hump Smoking Bunnies!">Bears Hump Smoking Bunnies!</A></H2><IMG src="http://thingsthataredoingit.files.wordpress.com/2010/05/129189153878509201.jpg" title="inanimate hawtness Bears Hump Smoking Bunnies!" alt="inanimate hawtness Bears Hump Smoking Bunnies!"></html>
+
*: <html><H2><A href=»http://thingsthataredoingit.com/2010/05/24/bears-hump-smoking-bunnies/" rel="bookmark" title="Permanent Link to Bears Hump Smoking Bunnies!«>Bears Hump Smoking Bunnies!</A></H2><IMG src=»http://thingsthataredoingit.files.wordpress.com/2010/05/129189153878509201.jpg" title="inanimate hawtness Bears Hump Smoking Bunnies!" alt="inanimate hawtness Bears Hump Smoking Bunnies!"></html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 26 Май, 20:56:29: [http://www.mncarg.org/kguvd1prog.html Programming the Wouxun KG-UVD1 from your computer]
 
* 26 Май, 20:56:29: [http://www.mncarg.org/kguvd1prog.html Programming the Wouxun KG-UVD1 from your computer]
Строка 780: Строка 782:
 
* 23 Март, 22:06:07: [http://www.interhobby.ru/category/propellery-dlja-elektromodelej/ Комплектующие авиамоделей: Пропеллеры для электомоделей]
 
* 23 Март, 22:06:07: [http://www.interhobby.ru/category/propellery-dlja-elektromodelej/ Комплектующие авиамоделей: Пропеллеры для электомоделей]
 
* 23 Март, 21:46:31: [http://www.touchbaza.ru/catalog/sensors_screens/resistive/?size=22 Резистивные // Сенсорные экраны // Каталог товаров // Сенсорные экраны, pos терминалы, multi touch — «ТачБаза»]
 
* 23 Март, 21:46:31: [http://www.touchbaza.ru/catalog/sensors_screens/resistive/?size=22 Резистивные // Сенсорные экраны // Каталог товаров // Сенсорные экраны, pos терминалы, multi touch — «ТачБаза»]
* 23 Март, 16:05:31: [http://www.flexites.org/ Флексайтс: создание сайтов в Челябинске, разработка сайтов, поисковое продвижение сайтов, оптимизация и раскрутка сайтов, сопровождение, веб-аутсорсинг. Изготовление сайтов Челябинск, Екатеринбург, Москва]
+
* 23 Март, 16:05:31: [http://www.flexites.org/ Флексайтс: создание сайтов в Челябинске, разработка сайтов, поисковое продвижение сайтов, оптимизация и раскрутка сайтов, сопровождение, веб-аутсорсинг. Изготовление сайтов Челябинск, Екатеринбург, Москва]
*: <html>Трудно и дорого пробиться по фразе «сталь оптом»? Оптимизируйте сайт под запросы «20Х23Н18», «07Х16Н6» и т. д. Возможно, это приведёт гораздо больше клиентов.</html>
+
*: <html>Трудно и дорого пробиться по фразе «сталь оптом»? Оптимизируйте сайт под запросы «20Х23Н18», «07Х16Н6» и т. д. Возможно, это приведёт гораздо больше клиентов.</html>
 
* 19 Март, 00:10:22: [http://www.hobbyforyou.ru/catalog/656-45521.html Самолеты Планера 214233 Kit Blizzard]
 
* 19 Март, 00:10:22: [http://www.hobbyforyou.ru/catalog/656-45521.html Самолеты Планера 214233 Kit Blizzard]
 
* 18 Март, 23:47:47: [http://www.eflightwiki.com/eflightwiki/index.php?title=Multiplex_Blizzard Multiplex Blizzard — EFlightWiki]
 
* 18 Март, 23:47:47: [http://www.eflightwiki.com/eflightwiki/index.php?title=Multiplex_Blizzard Multiplex Blizzard — EFlightWiki]
*: <html><div class="thumbinner" style="width:302px;"><a href="http://www.eflightwiki.com/eflightwiki/index.php?title=Image:Blizzard1.jpg" class="image" title="Multiplex Blizzard"><img alt="Multiplex Blizzard" src="http://www.eflightwiki.com/eflightwiki/images/thumb/0/05/Blizzard1.jpg/300px-Blizzard1.jpg" width="300" height="224" border="0" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify" style="float:right"><a href="http://www.eflightwiki.com/eflightwiki/index.php?title=Image:Blizzard1.jpg" class="internal" title="Enlarge"><img src="http://www.eflightwiki.com/eflightwiki/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Multiplex Blizzard</div></div></html>
+
*: <html><div class="thumbinner" style="width:302px;«><a href=»http://www.eflightwiki.com/eflightwiki/index.php?title=Image:Blizzard1.jpg" class="image" title="Multiplex Blizzard"><img alt="Multiplex Blizzard" src="http://www.eflightwiki.com/eflightwiki/images/thumb/0/05/Blizzard1.jpg/300px-Blizzard1.jpg" width="300" height="224" border="0" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify" style="float:right"><a href="http://www.eflightwiki.com/eflightwiki/index.php?title=Image:Blizzard1.jpg" class="internal" title="Enlarge"><img src="http://www.eflightwiki.com/eflightwiki/skins/common/images/magnify-clip.png" width="15" height="11" alt="« /></a></div>Multiplex Blizzard</div></div></html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 18 Март, 01:57:59: [http://4pda.ru/forum/index.php?showtopic=89093 Прошивки by Cotulla — 4PDA]
 
* 18 Март, 01:57:59: [http://4pda.ru/forum/index.php?showtopic=89093 Прошивки by Cotulla — 4PDA]
Строка 810: Строка 812:
 
* 01 Март, 17:55:49: [http://forum.xda-developers.com/showthread.php?t=637419 (HACK) JIT enabled Dalvik VM on Android 1.6 (Dusted Donuts) (Hack) — xda-developers]
 
* 01 Март, 17:55:49: [http://forum.xda-developers.com/showthread.php?t=637419 (HACK) JIT enabled Dalvik VM on Android 1.6 (Dusted Donuts) (Hack) — xda-developers]
 
* 01 Март, 15:14:48: [http://4pda.ru/forum/index.php?showtopic=154006 Acer Liquid — Прошивка — 4PDA]
 
* 01 Март, 15:14:48: [http://4pda.ru/forum/index.php?showtopic=154006 Acer Liquid — Прошивка — 4PDA]
*: <html>'''Модифицированные ROMs:'''<br /><UL><LI>[IMG] Maxisma Modded 2.000.16_EMEA_GEN1: <A href="http://android.modaco.com/content/acer-liquid-liquid-modaco-com/302067/rom-modded-2-000-16-emea-gen1/" target="_blank">http://android.modaco.com/content/acer-liq...0-16-emea-gen1/</A></LI><LI>[IMG] benhaam Liquidized 2.000.5_AAP_GEN2: <A href="http://htcpedia.com/forum/showthread.php?t=1946" target="_blank">http://htcpedia.com/forum/showthread.php?t=1946</A></LI></UL></html>
+
*: <html>'''Модифицированные ROMs:'''<br /><UL><LI>[IMG] Maxisma Modded 2.000.16_EMEA_GEN1: <A href=»http://android.modaco.com/content/acer-liquid-liquid-modaco-com/302067/rom-modded-2-000-16-emea-gen1/" target="_blank">http://android.modaco.com/content/acer-liq...0-16-emea-gen1/</A></LI><LI>[IMG] benhaam Liquidized 2.000.5_AAP_GEN2: <A href="http://htcpedia.com/forum/showthread.php?t=1946" target="_blank">http://htcpedia.com/forum/showthread.php?t=1946</A></LI></UL></html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
  
Строка 829: Строка 831:
 
* 17 Февраль, 22:25:11: [http://dhtmlx.com/docs/products/dhtmlxGrid/ dhtmlxGrid — Ajax-enabled DHTML grid with rich Javascript API]
 
* 17 Февраль, 22:25:11: [http://dhtmlx.com/docs/products/dhtmlxGrid/ dhtmlxGrid — Ajax-enabled DHTML grid with rich Javascript API]
 
* 16 Февраль, 15:46:04: [http://blog.grandrating.ru/posts/130-parametrov-algoritma-google 130 параметров алгоритма ранжирования сайтов от Google]
 
* 16 Февраль, 15:46:04: [http://blog.grandrating.ru/posts/130-parametrov-algoritma-google 130 параметров алгоритма ранжирования сайтов от Google]
* 14 Февраль, 23:21:14: [http://nature.web.ru/db/msg.html?mid=1157645 Научная Сеть >> Л. П. Овчинников. Что и как закодировано в мРНК]
+
* 14 Февраль, 23:21:14: [http://nature.web.ru/db/msg.html?mid=1157645 Научная Сеть >> Л. П. Овчинников. Что и как закодировано в мРНК]
 
* 13 Февраль, 03:37:32: [http://code.google.com/p/xmlhttprequest/ xmlhttprequest — Project Hosting on Google Code]
 
* 13 Февраль, 03:37:32: [http://code.google.com/p/xmlhttprequest/ xmlhttprequest — Project Hosting on Google Code]
 
* 12 Февраль, 16:50:24: [http://picasaweb.google.com/Mostack/SprintCernskoe3# Веб-альбомы Picasa — Mostack — Sprint Cernskoe3]
 
* 12 Февраль, 16:50:24: [http://picasaweb.google.com/Mostack/SprintCernskoe3# Веб-альбомы Picasa — Mostack — Sprint Cernskoe3]
Строка 849: Строка 851:
 
* 08 Февраль, 02:02:31: [http://anekdot.ru/an/top/o0301-1002;100.html истории основные :: 2003, Январь .. 2010, Февраль]
 
* 08 Февраль, 02:02:31: [http://anekdot.ru/an/top/o0301-1002;100.html истории основные :: 2003, Январь .. 2010, Февраль]
 
* 07 Февраль, 20:19:54: [http://www.pravkafoto.ru/Statji/_Kalibr_monitor_sami/2-osveshenie.shtml www.pravkafoto.ru Калибруем монитор собственными силами — освещение в комнате.]
 
* 07 Февраль, 20:19:54: [http://www.pravkafoto.ru/Statji/_Kalibr_monitor_sami/2-osveshenie.shtml www.pravkafoto.ru Калибруем монитор собственными силами — освещение в комнате.]
* 06 Февраль, 14:27:51: [http://public-library.narod.ru/Chekhov.Anton/vishnevy.html Библиотека: А. П. Чехов, «Вишневый сад» (Russian)]
+
* 06 Февраль, 14:27:51: [http://public-library.narod.ru/Chekhov.Anton/vishnevy.html Библиотека: А. П. Чехов, «Вишневый сад» (Russian)]
 
* 06 Февраль, 02:58:48: [http://www.drivingart.ru/ http://www.drivingart.ru/]
 
* 06 Февраль, 02:58:48: [http://www.drivingart.ru/ http://www.drivingart.ru/]
 
* 06 Февраль, 02:58:24: [http://www.fst-racing.ru/modules/news/ Клуб Fast Street Team]
 
* 06 Февраль, 02:58:24: [http://www.fst-racing.ru/modules/news/ Клуб Fast Street Team]
Строка 880: Строка 882:
 
* 18 Январь, 22:19:42: [http://12oz-mouse.ru/ Поллитровая мышь | 12 oz mouse. Мультфильм для взрослых — все серии и картинки, саундтрек, аватары, скачать. Усавичи.]
 
* 18 Январь, 22:19:42: [http://12oz-mouse.ru/ Поллитровая мышь | 12 oz mouse. Мультфильм для взрослых — все серии и картинки, саундтрек, аватары, скачать. Усавичи.]
 
* 18 Январь, 22:10:22: [http://code.google.com/p/lsyncd/downloads/list Downloads — lsyncd — Project Hosting on Google Code]
 
* 18 Январь, 22:10:22: [http://code.google.com/p/lsyncd/downloads/list Downloads — lsyncd — Project Hosting on Google Code]
* 18 Январь, 22:10:18: [http://bb.xnull.de/projects/inosync/ bb.xnull.de " projects " inosync]
+
* 18 Январь, 22:10:18: [http://bb.xnull.de/projects/inosync/ bb.xnull.de « projects inosync]
 
* 12 Январь, 20:57:11: [http://www.sportaviationonline.org/sportaviation/201001 http://www.sportaviationonline.org/sportaviation/201001]
 
* 12 Январь, 20:57:11: [http://www.sportaviationonline.org/sportaviation/201001 http://www.sportaviationonline.org/sportaviation/201001]
 
* 11 Январь, 18:49:23: [https://launchpad.net/spiderformysql Spider for MySQL in Launchpad]
 
* 11 Январь, 18:49:23: [https://launchpad.net/spiderformysql Spider for MySQL in Launchpad]
 
* 11 Январь, 16:00:35: [http://www.youtube.com/watch?v=IEM1muGK2x4 YouTube — Кин-дза-дза(музыка)]
 
* 11 Январь, 16:00:35: [http://www.youtube.com/watch?v=IEM1muGK2x4 YouTube — Кин-дза-дза(музыка)]
 
* 09 Январь, 23:16:59: [http://www.nationalinfrared.com/Electric_UAV.php Electric UAV with thermal sensor package]
 
* 09 Январь, 23:16:59: [http://www.nationalinfrared.com/Electric_UAV.php Electric UAV with thermal sensor package]
*: <html><TR><TD width="97%" align="left" bgcolor="#FFFFFF" height="19"> </TD></TR><TR><TD valign="top" bgcolor="#FFFFFF" colspan="2" height="176" class="black" align="left"> <TABLE width="100%" border="0" cellspacing="0" cellpadding="0"> <TBODY><TR><TD width="1%" height="301" valign="top"><IMG src="http://www.nationalinfrared.com/images/whitespace2.gif" width="25" height="20" border="0"></TD><TD width="99%" height="301" valign="top"> <TABLE align="left" width="100%" cellspacing="0" cellpadding="0" border="0"> <TBODY><TR><TD align="left"> <TABLE align="left" width="85%" cellspacing="0" cellpadding="0" border="0"> <TBODY><TR><TD align="left" valign="top"> <IMG src="http://www.nationalinfrared.com/x20/shop/show_pimage.php?id=225" border="0"> </TD><TD align="center" valign="top"> <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="248" height="215"> <PARAM name="movie" value="/x20/shop/show_flash.php?id=47"> <PARAM name="quality" value="high"> <PARAM name="wmode" value="transparent"> <EMBED src="http://www.nationalinfrared.com/" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="248" height="215"> </OBJECT> </TD></TR><TR><TD colspan="2" valign="top"> <SPAN class="black"> ''''</SPAN></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></html>
+
*: <html><TR><TD width=“97 %» align="left" bgcolor="#FFFFFF" height="19"> </TD></TR><TR><TD valign="top" bgcolor="#FFFFFF" colspan="2" height="176" class="black" align="left"> <TABLE width="100 %" border="0" cellspacing="0" cellpadding="0"> <TBODY><TR><TD width="1 %" height="301" valign="top"><IMG src="http://www.nationalinfrared.com/images/whitespace2.gif" width="25" height="20" border="0"></TD><TD width="99 %" height="301" valign="top"> <TABLE align="left" width="100 %" cellspacing="0" cellpadding="0" border="0"> <TBODY><TR><TD align="left"> <TABLE align="left" width="85 %" cellspacing="0" cellpadding="0" border="0"> <TBODY><TR><TD align="left" valign="top"> <IMG src="http://www.nationalinfrared.com/x20/shop/show_pimage.php?id=225" border="0"> </TD><TD align="center" valign="top"> <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="248" height="215"> <PARAM name="movie" value="/x20/shop/show_flash.php?id=47"> <PARAM name="quality" value="high"> <PARAM name="wmode" value="transparent"> <EMBED src="http://www.nationalinfrared.com/" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="248" height="215"> </OBJECT> </TD></TR><TR><TD colspan="2" valign="top"> <SPAN class="black"> ''''</SPAN></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 09 Январь, 17:52:28: [http://www.espritmodel.com/ Esprit Model 321.729.4287]
 
* 09 Январь, 17:52:28: [http://www.espritmodel.com/ Esprit Model 321.729.4287]
Строка 908: Строка 910:
 
* 26 Декабрь, 20:04:56: [http://www.lensorus.ru/ Легкосплавные литые колесные диски Lenso | LensoRus — Высококачественные легкоcплавные колесные диски Lenso для легковых автомобилей, кроссоверов и SUV]
 
* 26 Декабрь, 20:04:56: [http://www.lensorus.ru/ Легкосплавные литые колесные диски Lenso | LensoRus — Высококачественные легкоcплавные колесные диски Lenso для легковых автомобилей, кроссоверов и SUV]
 
* 22 Декабрь, 20:56:44: [http://jheriko-rtw.blogspot.com/2009/04/understanding-and-improving-fast.html Reinventing the Wheel: Understanding and improving the fast inverse square root hack]
 
* 22 Декабрь, 20:56:44: [http://jheriko-rtw.blogspot.com/2009/04/understanding-and-improving-fast.html Reinventing the Wheel: Understanding and improving the fast inverse square root hack]
*: <html><PRE style="BORDER-RIGHT: rgb(153,153,153) 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: rgb(153,153,153) 1px dashed; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: rgb(153,153,153) 1px dashed; WIDTH: 100%; COLOR: rgb(0,0,0); LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(153,153,153) 1px dashed; BACKGROUND-COLOR: rgb(238,238,238)font-family:fixed,monospace;font-size:12px;"><CODE><SPAN style="COLOR: rgb(51,51,255)">float</SPAN> InvSqrt <SPAN style="COLOR: rgb(0,0,136)">(</SPAN><SPAN style="COLOR: rgb(51,51,255)">float</SPAN> x<SPAN style="COLOR: rgb(0,0,136)">)</SPAN><BR><SPAN style="COLOR: rgb(0,0,136)">{</SPAN><BR><SPAN style="COLOR: rgb(51,51,255)">   float</SPAN> xhalf <SPAN style="COLOR: rgb(0,0,136)">=</SPAN> 0<SPAN style="COLOR: rgb(0,0,136)">.</SPAN>5f<SPAN style="COLOR: rgb(0,0,136)">*</SPAN>x;<BR><SPAN style="COLOR: rgb(51,51,255)">   int</SPAN> i <SPAN style="COLOR: rgb(0,0,136)">=</SPAN> <SPAN style="COLOR: rgb(0,0,136)">*</SPAN><SPAN style="COLOR: rgb(0,0,136)">(</SPAN><SPAN style="COLOR: rgb(51,51,255)">int</SPAN><SPAN style="COLOR: rgb(0,0,136)">*</SPAN><SPAN style="COLOR: rgb(0,0,136)">)</SPAN><SPAN style="COLOR: rgb(0,0,136)">&amp;</SPAN>x;<BR>   i <SPAN style="COLOR: rgb(0,0,136)">=</SPAN> 0x5f3759df <SPAN style="COLOR: rgb(0,0,136)">-</SPAN> <SPAN style="COLOR: rgb(0,0,136)">(</SPAN>i<SPAN style="COLOR: rgb(0,0,136)">&gt;</SPAN><SPAN style="COLOR: rgb(0,0,136)">&gt;</SPAN>1<SPAN style="COLOR: rgb(0,0,136)">)</SPAN>;<BR>   x <SPAN style="COLOR: rgb(0,0,136)">=</SPAN> <SPAN style="COLOR: rgb(0,0,136)">*</SPAN><SPAN style="COLOR: rgb(0,0,136)">(</SPAN><SPAN style="COLOR: rgb(51,51,255)">float</SPAN><SPAN style="COLOR: rgb(0,0,136)">*</SPAN><SPAN style="COLOR: rgb(0,0,136)">)</SPAN><SPAN style="COLOR: rgb(0,0,136)">&amp;</SPAN>i;<BR><SPAN style="COLOR: rgb(51,51,255)">   return</SPAN> x<SPAN style="COLOR: rgb(0,0,136)">*</SPAN><SPAN style="COLOR: rgb(0,0,136)">(</SPAN>1<SPAN style="COLOR: rgb(0,0,136)">.</SPAN>5f <SPAN style="COLOR: rgb(0,0,136)">-</SPAN> xhalf<SPAN style="COLOR: rgb(0,0,136)">*</SPAN>x<SPAN style="COLOR: rgb(0,0,136)">*</SPAN>x<SPAN style="COLOR: rgb(0,0,136)">)</SPAN>;<BR><SPAN style="COLOR: rgb(0,0,136)">}</SPAN><BR><BR></CODE></PRE></html>
+
*: <html><PRE style="BORDER-RIGHT: rgb(153,153,153) 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: rgb(153,153,153) 1px dashed; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: rgb(153,153,153) 1px dashed; WIDTH: 100 %; COLOR: rgb(0,0,0); LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(153,153,153) 1px dashed; BACKGROUND-COLOR: rgb(238,238,238)font-family:fixed, monospace;font-size:12px;"><CODE><SPAN style="COLOR: rgb(51,51,255)">float</SPAN> InvSqrt <SPAN style="COLOR: rgb(0,0,136)">(</SPAN><SPAN style="COLOR: rgb(51,51,255)">float</SPAN> x<SPAN style="COLOR: rgb(0,0,136)">)</SPAN><BR><SPAN style="COLOR: rgb(0,0,136)">{</SPAN><BR><SPAN style="COLOR: rgb(51,51,255)"> float</SPAN> xhalf <SPAN style="COLOR: rgb(0,0,136)">=</SPAN> 0<SPAN style="COLOR: rgb(0,0,136)">.</SPAN>5f<SPAN style="COLOR: rgb(0,0,136)">*</SPAN>x;<BR><SPAN style="COLOR: rgb(51,51,255)"> int</SPAN> i <SPAN style="COLOR: rgb(0,0,136)">=</SPAN> <SPAN style="COLOR: rgb(0,0,136)">*</SPAN><SPAN style="COLOR: rgb(0,0,136)">(</SPAN><SPAN style="COLOR: rgb(51,51,255)">int</SPAN><SPAN style="COLOR: rgb(0,0,136)">*</SPAN><SPAN style="COLOR: rgb(0,0,136)">)</SPAN><SPAN style="COLOR: rgb(0,0,136)">&amp;</SPAN>x;<BR> i <SPAN style="COLOR: rgb(0,0,136)">=</SPAN> 0x5f3759df <SPAN style="COLOR: rgb(0,0,136)">-</SPAN> <SPAN style="COLOR: rgb(0,0,136)">(</SPAN>i<SPAN style="COLOR: rgb(0,0,136)">&gt;</SPAN><SPAN style="COLOR: rgb(0,0,136)">&gt;</SPAN>1<SPAN style="COLOR: rgb(0,0,136)">)</SPAN>;<BR> x <SPAN style="COLOR: rgb(0,0,136)">=</SPAN> <SPAN style="COLOR: rgb(0,0,136)">*</SPAN><SPAN style="COLOR: rgb(0,0,136)">(</SPAN><SPAN style="COLOR: rgb(51,51,255)">float</SPAN><SPAN style="COLOR: rgb(0,0,136)">*</SPAN><SPAN style="COLOR: rgb(0,0,136)">)</SPAN><SPAN style="COLOR: rgb(0,0,136)">&amp;</SPAN>i;<BR><SPAN style="COLOR: rgb(51,51,255)"> return</SPAN> x<SPAN style="COLOR: rgb(0,0,136)">*</SPAN><SPAN style="COLOR: rgb(0,0,136)">(</SPAN>1<SPAN style="COLOR: rgb(0,0,136)">.</SPAN>5f <SPAN style="COLOR: rgb(0,0,136)">-</SPAN> xhalf<SPAN style="COLOR: rgb(0,0,136)">*</SPAN>x<SPAN style="COLOR: rgb(0,0,136)">*</SPAN>x<SPAN style="COLOR: rgb(0,0,136)">)</SPAN>;<BR><SPAN style="COLOR: rgb(0,0,136)">}</SPAN><BR><BR></CODE></PRE></html>
 
<!-- NEXT BOOKMARK -->
 
<!-- NEXT BOOKMARK -->
 
* 22 Декабрь, 14:41:04: [http://biblioverde.ru/tablica-vremen-anglijskogo-yazyka/ Таблица времен английского языка : Biblioverde-портал иностранных языков]
 
* 22 Декабрь, 14:41:04: [http://biblioverde.ru/tablica-vremen-anglijskogo-yazyka/ Таблица времен английского языка : Biblioverde-портал иностранных языков]
Строка 1056: Строка 1058:
 
* [Dev] 11 Февраль, 16:10:11: [http://support.microsoft.com/kb/962007 Сообщение о черве Win32/Conficker.B]
 
* [Dev] 11 Февраль, 16:10:11: [http://support.microsoft.com/kb/962007 Сообщение о черве Win32/Conficker.B]
 
* 09 Февраль, 01:23:23: [http://maps.yandex.ru/map.xml?mapID=2000&mapX=4181055&mapY=7480568&descx=4181055&descy=7480568&scale=10&text=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%2C%20%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C%20%D0%9B%D0%B5%D0%BD%D0%B8%D0%BD%D0%B3%D1%80%D0%B0%D0%B4%D1%81%D0%BA%D0%B8%D0%B9%20%D0%BF%D1%80%D0%BE%D1%81%D0%BF%D0%B5%D0%BA%D1%82%2C%2031&from=search Каток юных пионеров]
 
* 09 Февраль, 01:23:23: [http://maps.yandex.ru/map.xml?mapID=2000&mapX=4181055&mapY=7480568&descx=4181055&descy=7480568&scale=10&text=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%2C%20%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C%20%D0%9B%D0%B5%D0%BD%D0%B8%D0%BD%D0%B3%D1%80%D0%B0%D0%B4%D1%81%D0%BA%D0%B8%D0%B9%20%D0%BF%D1%80%D0%BE%D1%81%D0%BF%D0%B5%D0%BA%D1%82%2C%2031&from=search Каток юных пионеров]
* 05 Февраль, 14:10:33: [http://ihtik.lib.ru/lib_ru_philosbook_22dec2006.html «Библиотека Ихтика» [ihtik.lib.ru] (Россия, г. Уфа)]
+
* 05 Февраль, 14:10:33: [http://ihtik.lib.ru/lib_ru_philosbook_22dec2006.html «Библиотека Ихтика» [ihtik.lib.ru] (Россия, г. Уфа)]
 
* [Dev] 04 Февраль, 16:01:19: [https://bugzilla.mozilla.org/show_bug.cgi?id=446598 Bug 446598 — provide useful change information in an rss/atom feed of recent changes]
 
* [Dev] 04 Февраль, 16:01:19: [https://bugzilla.mozilla.org/show_bug.cgi?id=446598 Bug 446598 — provide useful change information in an rss/atom feed of recent changes]
 
* [Dev] 03 Февраль, 18:11:30: [https://mural.dev.java.net/Downloads.html mural: Downloads]
 
* [Dev] 03 Февраль, 18:11:30: [https://mural.dev.java.net/Downloads.html mural: Downloads]
Строка 1080: Строка 1082:
 
* 02 Январь, 02:22:57: [http://asciilib.narod.ru/gadget.htm Псевдографика. Коллекция ASCII-art’а.]
 
* 02 Январь, 02:22:57: [http://asciilib.narod.ru/gadget.htm Псевдографика. Коллекция ASCII-art’а.]
 
* 02 Январь, 01:53:48: [http://lurkmore.ru/Гаечка Гаечка — Lurkmore]
 
* 02 Январь, 01:53:48: [http://lurkmore.ru/Гаечка Гаечка — Lurkmore]
* 02 Январь, 01:40:18: [http://blog.dahr.ru/?p=2022 Личный блог Д. А. Кузьмичёва " Гайкохулство гоу.]
+
* 02 Январь, 01:40:18: [http://blog.dahr.ru/?p=2022 Личный блог Д. А. Кузьмичёва " Гайкохулство гоу.]
  
 
== 2008 ==
 
== 2008 ==

Версия 11:55, 15 ноября 2011

Rss16.png На мои закладки можно подписаться по RSS — просто кликните по ссылке.

2011

Ноябрь 2011

  • 14 Ноябрь, 18:19:54: The Bulbdial Clock Kit — Evil Mad Scientist Laboratories
  • 14 Ноябрь, 02:47:58: Список алгоритмов и структур данных на C++ — Algorithms in Java
  • 11 Ноябрь, 11:19:06: #270852 — iptables: (patch) to add userspace support for kernel patch per-program per-connection filtering — Debian Bug report logs
  • 10 Ноябрь, 23:55:26: 97794_beregovaya-ohrana.jpg (760×575)
  • 10 Ноябрь, 00:21:10: Компонент-Реактив | Компонент-Реактив
  • 09 Ноябрь, 12:38:57: Группа компаний «РусХим»
  • 09 Ноябрь, 03:33:43: c++ — Java operator overload — Stack Overflow

    There are a lot of posts complaining about operator overloading.

    I felt I had to clarify the «operator overloading» concepts, offering an alternative viewpoint on this concept.

    Code obfuscating?

    This argument is a fallacy.

    Obfuscating is possible in all languages…

    It is as easy to obfuscate code in C or Java through functions/methods than it is in C++ through operator overloads:

    // C++
    T
    operator + (const T & a, const T & b) // add ?
    {
       T c
    ;
       c
    .value = a.value - b.value ; // substract !!!
       
    return c ;
    }

    // Java
    static T add (T a, T b) // add ?
    {
       T c
    = new T() ;
       c
    .value = a.value - b.value ; // substract !!!
       
    return c ;
    }

    /* C */
    T add
    (T a, T b) /* add ? */
    {
       T c
    ;
       c
    .value = a.value - b.value ; /* substract !!! */
       
    return c ;
    }

    …Even in Java’s standard interfaces

    For another example, let’s see the Cloneable interface in Java: http://download.oracle.com/javase/7/docs/api/java/lang/Cloneable.html

    You are supposed to clone the object implementing this interface. But you could lie. And create a different object. In fact, this interface is so weak you could return another type of object altogether, just for the fun of it:

    class MySincereHandShake implements Cloneable
    {
       
    public Object clone()
       
    {
           
    return new MyVengefulKickInYourHead() ;
       
    }
    }

    As the Cloneable interface can be abused/obfuscated, should it be banned on the same grounds C++ operator overloading are supposed to be?

    We could overload the toString() method of a MyComplexNumber class to have it return the stringified hour of the day. Should the toString() overloading be banned, too? We could sabotage MyComplexNumber.equals to have it return a random value, modify the operands… etc. etc. etc..

    In Java, as in C++, or whatever language, the programmer must respect a minimum of semantics when writing code. This means implementing a add function that adds, and Cloneable implementation method that clones, and a ++ operator than increments.

    What’s obfuscating anyway?

    Now that we know that code can be sabotaged even through the pristine Java methods, we can ask ourselves about the real use of operator overloading in C++?

    Clear and natural notation: methods vs. operator overloading?

    We’ll compare below, for different cases, the «same» code in Java and C++, to have an idea of which kind of coding style is clearer.

    Natural comparisons:

    // C++ comparison for built-ins and user-defined types
    bool    isEqual          = A == B ;
    bool    isNotEqual       = A != B ;
    bool    isLesser         = A <  B ;
    bool    isLesserOrEqual  = A <= B ;

    // Java comparison for user-defined types
    boolean isEqual          = A.equals(B) ;
    boolean isNotEqual       = ! A.equals(B) ;
    boolean isLesser         = A.comparesTo(B) < 0 ;
    boolean isLesserOrEqual  = A.comparesTo(B) <= 0 ;

    Please note that A and B could be of any type in C++, as long as the operator overloads are provided. In Java, when A and B are not primitives, the code can become very confusing, even for primitive-like objects (BigInteger, etc.)…

    Natural array/container accessors and subscripting:

    // C++ container accessors, more natural
    value        
    = myArray[25] ;         // subscript operator
    value        
    = myVector[25] ;        // subscript operator
    value        
    = myString[25] ;        // subscript operator
    value        
    = myMap[«25»] ;         // subscript operator
    myArray
    [25]  = value ;               // subscript operator
    myVector
    [25] = value ;               // subscript operator
    myString
    [25] = value ;               // subscript operator
    myMap
    [«25»]  = value ;               // subscript operator

    // Java container accessors, each one has its special notation
    value        
    = myArray[25] ;         // subscript operator
    value        
    = myVector.get(25) ;    // method get
    value        
    = myString.charAt(25) ; // method charAt
    value        
    = myMap.get(«25») ;     // method get
    myArray
    [25]  = value ;               // subscript operator
    myVector
    .set(25, value) ;            // method set
    myMap
    .set(«25», value) ;             // method set

    In Java, we see that for each container to do the same thing (access its content through an index or identifier), we have a different way to do it, which is confusing.

    In C++, each container uses the same way to access its content, thanks to operator overload.

    Natural advanced types manipulation

    The examples below use a Matrix object, found using the first links found on Google for «Java Matrix object" and «c++ Matrix object":

    // C++ YMatrix matrix implementation on CodeProject
    // http://www.codeproject.com/KB/architecture/ymatrix.aspx
    // A, B, C, D, E, F are Matrix objects;
    E
    =  A * (B / 2) ;
    E
    += (A - B) * (C + D) ;
    F
    =  E ;                  // deep copy of the matrix

    // Java JAMA matrix implementation (seriously…)
    // http://math.nist.gov/javanumerics/jama/doc/
    // A, B, C, D, E, F are Matrix objects;
    E
    = A.times(B.times(2)) ;
    E
    .plusEquals(A.minus(B).times(C.plus(D))) ;
    F
    = E.copy() ;            // deep copy of the matrix

    And this is not limited to matrices. The BigInteger and BigDecimal classes of Java suffer from the same confusing verbosity, whereas their equivalent in C++ are as clear as built-in types.

    Natural iterators:

    // C++ Random Access iterators
    ++it ;                  // move to the next item
    --it ;                  // move to the previous item
    it
    += 5 ;               // move to the next 5th item (random access)
    value
    = *it ;           // gets the value of the current item
    *it = 3.1415 ;          // sets the value 3.1415 to the current item
    (*it).foo() ;           // call method foo() of the current item

    // Java ListIterator<E> «bi-directional» iterators
    value
    = it.next() ;     // move to the next item & return the value
    value
    = it.previous() ; // move to the previous item & return the value
    it
    .set(3.1415) ;        // sets the value 3.1415 to the current item

    Natural functors:

    // C++ Functors
    myFunctorObject
    («Hello World», 42) ;

    // Java Functors ???
    myFunctorObject
    .execute(«Hello World», 42) ;

    Text concatenation:

    // C++ stream handling (with the << operator)
                        stringStream  
    << "Hello " << 25 << « World» ;
                        fileStream    
    << "Hello " << 25 << « World» ;
                        outputStream  
    << "Hello " << 25 << « World» ;
                        networkStream  
    << "Hello " << 25 << « World» ;
    anythingThatOverloadsShiftOperator
    << "Hello " << 25 << « World» ;

    // Java concatenation
    myStringBuffer
    .append("Hello ").append(25).append(« World») ;

    Ok, in Java you can use MyString = "Hello " + 25 + « World» ; too… But, wait a second: This is operator overloading, isn’t it? Isn’t it cheating???

    :-D

    Generic code?

    The same generic code modifying operands should be usable both for built-ins/primitives (which have no interfaces in Java), standard objects (which could not have the right interface), and user-defined objects.

    For example, calculating the average value of two values of arbitrary types:

    // C++ primitive/advanced types
    template<typename T>
    T getAverage
    (const T & p_lhs, const T & p_rhs)
    {
       
    return (p_lhs + p_rhs) / 2 ;
    }

    int     intValue     = getAverage(25, 42) ;
    double  doubleValue  = getAverage(25.25, 42.42) ;
    complex complexValue
    = getAverage(cA, cB) ; // cA, cB are complex
    Matrix  matrixValue  = getAverage(mA, mB) ; // mA, mB are Matrix

    // Java primitive/advanced types
    // It won’t really work in Java, even with generics. Sorry.

    Discussing operator overloading

    How that we saw fair comparisons between C++ code using operator overloading, and the same code in Java, we can know discuss the «operator overloading» as a concept.

    Operator overloading existed since before computers

    Even outside of computer science, there are operator overloading: For example, in mathematics, operators like +, -, *, etc. are overloaded.

    Indeed, the signification of +, -, *, etc. changes depending on the types of the operands (numerics, vectors, quantum wave functions, matrices, etc.).

    Most of us, as part of our science courses, learned multiple significations for operators, depending on the types of the operands. Did we find them confusing, them?

    Operator overloading depends on its operands

    This is the most important part of operator overloading: Like in mathematics, or in physics, the operation depends on its operands' types.

    So, know the type of the operand, and you will know the effect of the operation.

    Even C and Java have (hardcoded) operator overloading

    In C, the real behavior of an operator will change according to its operands. For example, adding two integers is different than adding two doubles, or even one integer and one double. There is even the whole pointer arithmetic domain (without casting, you can add to a pointer an integer, but you cannot add two pointers…).

    In Java, there is no pointer arithmetics, but someone still found string concatenation without the + operator would be ridiculous enough to justify an exception in the «operator overloading is evil» creed.

    It’s just that you, as a C (for historical reasons) or Java (for personal reasons, see below) coder, you can’t provide your own.

    In C++, operator overloading is not optional…

    In C++, operator overloading for built-in types is not possible (and this is a good thing), but user-defined types can have user-defined operator overloads.

    As already said earlier, in C++, and to the contrary to Java, user-types are not considered second-class citizens of the language, when compared to built-in types. So, if built-in types have operators, user types should be able to have them, too.

    The truth is that, like the toString(), clone(), equals() methods are for Java (i.e. quasi-standard-like), C++ operator overloading is so much part of C++ that it becomes as natural as the original C operators, or the before mentioned Java methods.

    Combined with template programming, operator overloading becomes a well known design pattern. In fact, you cannot go very far in STL without using overloaded operators, and overloading operators for your own class.

    …but it should not be abused

    Operator overloading should strive to respect the semantics of the operator. Do not substract in a + operator (as in «do not substract in a add function», or «return crap in a clone method»).

    Cast overloading can be very dangerous because they can lead to ambiguities. So they should really be reserved for well defined cases. As for && and ||, do not ever overload them unless you really know what you’re doing, as you’ll loose the the short circuit evaluation that the native operators && and || enjoy.

    So… Ok… Then why it is not possible in Java?

    Because James Gosling said so:

    I left out operator overloading as a fairly personal choice because I had seen too many people abuse it in C++.

    James Gosling. Source: http://www.gotw.ca/publications/c_family_interview.htm

    Please compare Gosling’s text above with Stroustrup’s below:

    Many C++ design decisions have their roots in my dislike for forcing people to do things in some particular way […] Often, I was tempted to outlaw a feature I personally disliked, I refrained from doing so because I did not think I had the right to force my views on others.

    Bjarne Stroustrup. Source: The Desing and Evolution of C++ (1.3 General Background)

    Would operator overloading benefit Java?

    Some objects would greatly benefit from operator overloading (concrete or numerical types, like BigDecimal, complex numbers, matrices, containers, iterators, comparators, parsers etc.).

    In C++, you can profit from this benefit because of Stroustrup’s humility. In Java, you’re simply screwed because of Gosling’s personal choice.

    Could it be added to Java?

    The reasons for not adding operator overloading now in Java could be a mix of internal politics, allergy to the feature, distrust of developers (you know, the saboteur ones that seem to haunt Java teams…), compatibility with the previous JVMs, time to write a correct specification, etc..

    So don’t hold your breath waiting for this feature…

    But they do it in C#!!!

    Yeah…

    While this is far from being the only difference between the two languages, this one never fails to amuse me.

    Apparently, the C# folks, with their «every primitive is a struct, and a struct derives from Object», got it right at first try.

  • 07 Ноябрь, 14:40:11: Sweet Home 3D
  • 07 Ноябрь, 01:41:35: HeliSimRC
  • 04 Ноябрь, 19:34:32: How To Disable Google’s Personalization Of Search Results
  • 01 Ноябрь, 21:41:00: How to hack Acoms AS-16 servos — Blog — Jamie Matthews

Октябрь 2011

Сентябрь 2011

Август 2011


Июль 2011

  • 25 Июль, 01:13:24: Агентство экстремальных путешествий -
  • 25 Июль, 00:50:03: Вэйк Приют — Реверсивная Лебёдка
  • 25 Июль, 00:06:50: Патчим адресную строку в Opera 11
  • 22 Июль, 16:47:47: openkodak — Custom Kodak HD video camera firmware — Google Project Hosting
  • 22 Июль, 02:15:44: OrigenBoard.org
  • 19 Июль, 02:24:20: Various Licenses and Comments about Them — GNU Project — Free Software Foundation (FSF)
  • 18 Июль, 00:47:07:
    dems_037.jpg
  • 18 Июль, 00:46:30:
    dems_027.jpg
  • 16 Июль, 22:13:12: UART also for Archos101 (gen8) " openAOS
  • 12 Июль, 00:08:33: Киряем! — Выпуск #179
    География дома

    Сегодня я расскажу Вам, как выучить географию, не выходя из квартиры. Гардероб. Гардероб это Китай. Да, Вы можете говорить кому угодно HUGO BOSS, COVALLI, GUCCI (показывает фигу) КИ-ТАЙ.
    Антресоли. Антресоли это Монголия, потому что нихрена не понятно, что там лежит, что там происходит, вообще нихрена не понятно.
    Кухня, кухня это Ближний Восток, потому что там постоянно, что-то готовится все на ножах, постоянный фарш, мясо по стенам, слезы, сопли и в центре этого диктатор, который воняет химическим оружием.
    Если Вы живете с тещей, то комната тещи это США. Открываем дверь — вот оно, тупое лицо руководителя государства. А если Вы только сунетесь на Ближний Восток, ЖОПА, война обеспечена.
    Туалет, туалет это Голландия. Потому что неровно положенный кафель постоянно напоминает Вам, что его клали какие-то пидарасы.
    Телевизор, телевизор это Украина. Потому что пульт управления гуляет по рукам, поэтому каждую минуту на Украине новая программа.
    Кот, если у Вас живет кот, то это Прибалтика. Ест на халяву, пьет на халяву, мелко пакостит и делает вид, что нихрена не понимает по-русски.
    Холодильник — это Евросоюз. Чего там только нет, и вроде бы все лежит аккуратно, по полочкам, но обязательно что-то одно воняет. Как только жрать нечего, сразу все лезут в Евросоюз, и Прибалтика тоже сует туда свой нос.
    Балкон — это Египет. Нигде в мире Вы не найдете большего количества древностей, причем этого говна там целые пирамиды.
    Старый молоток. Старый молоток — это Люксембург. А где он? Да х*й его знает, где он!
    Гараж — это Париж. В центре стоит большая груда железа, под которой можно тр*хаться часами.
    И собственно Вы во всем этом Россия. До поры до времени улыбаетесь США. Кормите Прибалтику. Боретесь за право обладания пультом управления Украины. Соприкасаетесь с Евросоюзом. Но сдохнуть хотите в Париже…
  • 10 Июль, 01:10:43: About OProfile
  • 10 Июль, 00:11:13: SKIER — ресурс для лыжников и бордеров : FORUM : Продается катер для вейка
  • 07 Июль, 00:08:29: How fast can we compute the dot product?
  • 01 Июль, 22:49:15: Turing completeness and regular expressions

Июнь 2011

Май 2011

Апрель 2011

Март 2011

Февраль 2011

Январь 2011

2010

Декабрь 2010

Ноябрь 2010

Октябрь 2010

Сентябрь 2010

Август 2010

Июль 2010

Июнь 2010

Май 2010

Апрель 2010

Март 2010

Февраль 2010

Январь 2010

2009

Декабрь 2009

Октябрь 2009

Сентябрь 2009

Август 2009

Июль 2009

Июнь 2009

Май 2009

Апрель 2009

Март 2009

Февраль 2009

Январь 2009

2008

Декабрь 2008

Ноябрь 2008

Октябрь 2008

Сентябрь 2008

Август 2008

Июль 2008

Июнь 2008

Май 2008

Апрель 2008

Март 2008

Февраль 2008

Январь 2008

2007

Ноябрь 2007

Октябрь 2007

Сентябрь 2007

Август 2007

Июль 2007

Апрель 2007

Февраль 2007

Январь 2007

2006

Декабрь 2006