Участник:VitaliyFilippov/Закладки — различия между версиями
(Добавлена закладка c++ - Java operator overload - Stack Overflow) |
(Добавлена закладка Группа компаний "РусХим") |
||
Строка 6: | Строка 6: | ||
=== Ноябрь 2011 === | === Ноябрь 2011 === | ||
+ | * 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">&</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">&</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> T c </span><span class="pun">;</span><span class="pln"><br> 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> </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> 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> 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> </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> T c </span><span class="pun">;</span><span class="pln"><br> 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> </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> </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> </span><span class="pun">{</span><span class="pln"><br> </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> </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"> isEqual </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"> isNotEqual </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"> isLesser </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"> isLesserOrEqual </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><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 </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 </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 </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"><</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 </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"><=</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 </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"> </span><span class="com">// subscript operator</span><span class="pln"><br>value </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"> </span><span class="com">// subscript operator</span><span class="pln"><br>value </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"> </span><span class="com">// subscript operator</span><span class="pln"><br>value </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"> </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"> </span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> </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"> </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"> </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"> </span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> </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 </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"> </span><span class="com">// subscript operator</span><span class="pln"><br>value </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"> </span><span class="com">// method get</span><span class="pln"><br>value </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 </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"> </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"> </span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> </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"> </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"> </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"> 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"> E </span><span class="pun">;</span><span class="pln"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </span><span class="com">// call method foo() of the current item</span><span class="pln"><br><br></span><span class="com">// Java ListIterator<E> "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"> </span><span class="com">// move to the next item & 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 & 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"> </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 << operator)</span><span class="pln"><br> stringStream </span><span class="pun"><<</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="str">" World"</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br> fileStream </span><span class="pun"><<</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="str">" World"</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br> outputStream </span><span class="pun"><<</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="str">" World"</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br> networkStream </span><span class="pun"><<</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun"><<</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"><<</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun"><<</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"><</span><span class="kwd">typename</span><span class="pln"> T</span><span class="pun">></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">&</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">&</span><span class="pln"> p_rhs</span><span class="pun">)</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br> </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"> intValue </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"> doubleValue </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"> matrixValue </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>&&</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>&&</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">&</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">&</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> T c </span><span class="pun">;</span><span class="pln"><br> 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> </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> 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> 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> </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> T c </span><span class="pun">;</span><span class="pln"><br> 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> </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> </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> </span><span class="pun">{</span><span class="pln"><br> </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> </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"> isEqual </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"> isNotEqual </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"> isLesser </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"> isLesserOrEqual </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><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 </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 </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 </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"><</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 </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"><=</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 </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"> </span><span class="com">// subscript operator</span><span class="pln"><br>value </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"> </span><span class="com">// subscript operator</span><span class="pln"><br>value </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"> </span><span class="com">// subscript operator</span><span class="pln"><br>value </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"> </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"> </span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> </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"> </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"> </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"> </span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> </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 </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"> </span><span class="com">// subscript operator</span><span class="pln"><br>value </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"> </span><span class="com">// method get</span><span class="pln"><br>value </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 </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"> </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"> </span><span class="pun">=</span><span class="pln"> value </span><span class="pun">;</span><span class="pln"> </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"> </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"> </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"> 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"> E </span><span class="pun">;</span><span class="pln"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </span><span class="com">// call method foo() of the current item</span><span class="pln"><br><br></span><span class="com">// Java ListIterator<E> "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"> </span><span class="com">// move to the next item & 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 & 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"> </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 << operator)</span><span class="pln"><br> stringStream </span><span class="pun"><<</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="str">" World"</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br> fileStream </span><span class="pun"><<</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="str">" World"</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br> outputStream </span><span class="pun"><<</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="str">" World"</span><span class="pln"> </span><span class="pun">;</span><span class="pln"><br> networkStream </span><span class="pun"><<</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun"><<</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"><<</span><span class="pln"> </span><span class="str">"Hello "</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="lit">25</span><span class="pln"> </span><span class="pun"><<</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"><</span><span class="kwd">typename</span><span class="pln"> T</span><span class="pun">></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">&</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">&</span><span class="pln"> p_rhs</span><span class="pun">)</span><span class="pln"><br></span><span class="pun">{</span><span class="pln"><br> </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"> intValue </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"> doubleValue </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"> matrixValue </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>&&</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>&&</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> |
Версия 11:38, 9 ноября 2011
На мои закладки можно подписаться по RSS — просто кликните по ссылке.
2011
Ноябрь 2011
- 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.htmlYou 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 aMyComplexNumber
class to have it return the stringified hour of the day. Should thetoString()
overloading be banned, too? We could sabotageMyComplexNumber.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, andCloneable
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 setIn 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 matrixAnd this is not limited to matrices. The
BigInteger
andBigDecimal
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 itemNatural 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 aadd
function", or "return crap in aclone
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 astruct
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
- 30 Октябрь, 01:17:46: browser - How to disable Google search result link redirect (on right-click) in Chrome? - Super User
- 27 Октябрь, 14:47:51: galaxy s social hub - Поиск в Google
- 25 Октябрь, 20:20:31: shellinabox - Web based AJAX terminal emulator - Google Project Hosting
- 25 Октябрь, 13:18:47: Du-Bro RC - Steerable Nose Gear-Bent (QTY/PKG: 1 )
- 24 Октябрь, 00:07:10: 50 диснеевских мультфильмов. Часть первая. Страница 1 из 25. Кино на Фильм.Ру
- 23 Октябрь, 15:54:45: B-Squares : Modular Solar-powered Electrics
- 20 Октябрь, 18:46:32: Проверить совместимость браузеров, кроссплатформенный тест браузеров - Browsershots
- 20 Октябрь, 00:19:56: Linux optimization » Энергосбережение
- 19 Октябрь, 23:14:43: Funny Source Code Comments — Java Code Geeks
- // John! If you’ll svn remove this once more,
// I’ll shut you, for God’s sake!
// That piece of code is not «something strange»!
// That is THE AUTH VALIDATION.
- // John! If you’ll svn remove this once more,
- 19 Октябрь, 14:59:30: Компьютеры WEXLER для дома — Новости
- 18 Октябрь, 18:36:42: Porting Android to a new device — Linux For Devices Articles — Linux for Devices
- 18 Октябрь, 00:54:53: (ROM LIST) Galaxy S I9000 Custom ROM List (06.05.2011) — xda-developers
- 15 Октябрь, 17:05:26: fuse-zip — FUSE filesystem to mount ZIP archives with write support — Google Project Hosting
- 13 Октябрь, 01:21:43: Смена ip-адреса ресурса без простоя / Системное администрирование / Хабрахабр
- 13 Октябрь, 00:21:30: Linux Iptables Limit the number of incoming tcp connection / syn-flood attacks
- 13 Октябрь, 00:20:46: tshark — The Wireshark Network Analyzer 1.5.0
- 13 Октябрь, 00:20:38: yuri-gushin/Roboo — GitHub
- 13 Октябрь, 00:07:26: Анализатор логов вебсервера ddosViewer
- 12 Октябрь, 13:42:40: Делаем скриншоты сайтов / PHP / Хабрахабр
- 12 Октябрь, 03:24:12: snakeyaml — YAML parser and emitter for Java — Google Project Hosting
- 11 Октябрь, 01:24:37: Poulsbo — ArchWiki
- 10 Октябрь, 19:25:17: $ cheat bash
- 10 Октябрь, 16:59:01: Shane Glines
- 10 Октябрь, 00:09:37: droiddraw — DroidDraw is a graphical user interface (GUI) builder for the Android platform — Google Project Hosting
- 10 Октябрь, 00:00:35: DroidDraw : Graphical User Interface Editor for Android Cell Phone Development and Programming
- 09 Октябрь, 22:08:53: Index of /daily-images/i386/daily/hd-media
- 09 Октябрь, 16:19:26: Linuxtracker | The Premier Linux BitTorrent Website
- 09 Октябрь, 03:10:00: Microsoft планирует заблокировать продажи некоторых Android телефонов Motorola / Microsoft / Хабрахабр
- Риторический вопрос:
Интересно, вероятна ли такая ситуация при которой все три гиганта устроят deadlock продаж мобильных устройств?
- Риторический вопрос:
- 09 Октябрь, 02:20:25: F-Droid · Android FOSS News, Reviews and More
- 09 Октябрь, 01:29:01: Android plugin for NetBeans — Project Kenai
- 09 Октябрь, 00:18:41: Диафильмы, мультфильмы, сказки — Баюн
- 08 Октябрь, 00:10:57: Низкоорбитальная Ионная Пушка | Путин Взрывает Дома
- 07 Октябрь, 02:51:51: Работаем с Mono: Часть 6. Разработка многопоточных приложений
- 07 Октябрь, 02:49:28: lock(this): don’t! | The .Net frog
- 06 Октябрь, 00:53:08: Высоковский.ru Анекдоты — Скелет
- На кладбище выходит из могилы скелет в лохмотьях и направляется вдоль
ограды к другому концу кладбища. Через некоторое время он встречает
другого скелета в лохмотьях и приветствует его:
- Здорово, Святогор, давненько мы с тобой не мерялись силой на ристалище!
Скелеты обнимаются и идут дальше вместе. Вскоре видят — им навстречу
идет еще один скелет в лохмотьях.
- Здорово, Ярополк, давненько мы все не мерялись силой на ристалище!
А скелет им и отвечает:
- Ага, верстальщик, верстальщик, вот номер сдал — домой иду…
- На кладбище выходит из могилы скелет в лохмотьях и направляется вдоль
- 04 Октябрь, 01:19:05: Ping-o-Matic!
- 03 Октябрь, 19:48:52: SUPA — The Screenshot UPload Applet
- 03 Октябрь, 12:53:59: BELNETMON -
- 03 Октябрь, 00:56:46: CNCzone.com-Machinist Community Forums — Welcome Page
- 02 Октябрь, 19:45:05: Laser Pointers Store — Worldwide Free Shipping Offered For All Lasers
Сентябрь 2011
- 30 Сентябрь, 23:54:42: Fishki.net - Сайт хорошего настроения
- - Доктор, что вы можете скaзaть о результaтaх моих aнaлизов?
- Вируснaя бaзa успешно обновленa, - отвечaет венеролог.
- - Доктор, что вы можете скaзaть о результaтaх моих aнaлизов?
- 30 Сентябрь, 01:22:22: Wakeboard Singapore! -> Riding Tips
- 29 Сентябрь, 09:22:40: Новости - GNOME - GNOME 3.2
- Социальные сети
Облачность
Интеграция с тем
Интеграция с этим
Интеграция с интеграцией
Теперь другу можно отправить фотку одним кликом сидя в туалете, но нельзя выключить компьютер!
- Социальные сети
- 29 Сентябрь, 09:03:06: Dionysus Servo Stretcher V2
- 28 Сентябрь, 02:35:50: OpenServo high quality open source digital servo
- 26 Сентябрь, 03:32:15: Каталог "Электронщик": паяльное и измерительное оборудование, электротехнические изделия, электронные компоненты, инструмент
- 25 Сентябрь, 02:40:53: Цветовая маркировка резисторов. Программа онлайн расшифровки номинала для мобильного тедефона.
- 25 Сентябрь, 02:27:37: Слинки — Википедия
- 25 Сентябрь, 02:25:59: 0_6e1df_d7041b10_orig (838×624)
- 25 Сентябрь, 01:16:15: Книга: Крошка Енот и тот, кто сидит в пруду
- 24 Сентябрь, 00:45:03: Multi RC Shop
- 23 Сентябрь, 21:22:01: Игрушка Flip Flap Очаровашка зеленая
- 23 Сентябрь, 01:09:37: Commonly Used LED Emitter Index
- 20 Сентябрь, 14:48:26: http://replicant.us/
- 19 Сентябрь, 15:23:34: android-vnc-viewer - VNC viewer/client for Android platform - Google Project Hosting
- 19 Сентябрь, 15:21:47: vncserver, x11vnc - кракозяблы - есть ответ - Вопросы и ответы
- 16 Сентябрь, 21:53:05: %s %s
- 15 Сентябрь, 23:25:41: http://sc.openoffice.org/excelfileformat.pdf
- 15 Сентябрь, 22:38:19: Excel Encryption Information
- 13 Сентябрь, 01:29:09: HeliDirect - Helidirect.com is your source for RC Helicopters Micro Helicopters such as the Ikarus
- 12 Сентябрь, 00:14:23: Share Links
- 09 Сентябрь, 20:43:24: Почта России. Отслеживание почтовых отправлений
- 09 Сентябрь, 03:18:33: ШИМ регулятор на таймере NE555 : Электроника для всех
- 09 Сентябрь, 00:54:35: List of Unicode characters - Wikipedia, the free encyclopedia
- 08 Сентябрь, 17:25:13: USB Li-ion battery charger
- 08 Сентябрь, 16:53:23: Lenta.ru: Форум
- 06 Сентябрь, 17:28:00: Software-RAID HOWTO: Performance, Tools & General Bone-headed Questions
- 02 Сентябрь, 16:15:34: Ferio.ru: автозапчасти, интернет магазины автозапчастей, автосервисы, ремонт автомобилей - Москва, Санкт-Петербург, Краснодар, Новосибирск
- 01 Сентябрь, 16:06:18: Wave Glider Concept
Август 2011
- 28 Август, 22:46:24: Real Temp - CPU temperature monitoring
- 25 Август, 23:47:24: Mobile patent lawsuits
- 25 Август, 23:40:05: Wake of Gods Forum | Форум Во Имя Богов - Обсуждение WoG
- 25 Август, 23:01:41: AR.Drone Parrot - The flying video game - First quadricopter that can be controlled by an iPhone/iPod Touch/iPad
- 23 Август, 12:39:31: H Shifter
- 20 Август, 23:23:57: www.200mph.ru - Каталог
- 20 Август, 23:19:56: iOmicron
- 19 Август, 19:28:01: Фото на документы в GIMP | Скачать дополнение
- 18 Август, 17:25:20: Cable Wakeboarding | water skiing | wakeboard cable ski
- 17 Август, 00:02:03: EmuCR - Emulator News & Download (EmuCR.Com)
- 16 Август, 19:11:16: ned Productions - nedmalloc
- 14 Август, 23:24:31: LockCircle - The Original Body Cap
- 14 Август, 01:03:55: bert hubert finally blogs
- 14 Август, 00:07:20: Kicker Tantrum - Wakeboard Singapore!
- 11 Август, 18:40:38: Theoretical Background
- 11 Август, 03:13:16: Покупки в bonprix
- 11 Август, 00:46:25: AeroQuad Forums - AeroQuad - The Open Source Quadcopter
- 11 Август, 00:46:20: AeroQuad - The Open Source Quadcopter
- 09 Август, 18:29:26: http://svnpserver.sourceforge.net/
- 07 Август, 22:57:25: PSR and conditional execution
- 07 Август, 22:57:18: Decompiler Design - Creating Statements
- 03 Август, 14:33:17: Модуль Bluetooth HC-04 на чипе BC417143B компании CSR / DIY или Сделай Сам / Хабрахабр
- 01 Август, 17:29:54: Flash browser - FreeMind
- 01 Август, 17:29:26: Shenzhen Boeye Technology Co., Ltd.
- 01 Август, 17:28:55: DEV300: files
Июль 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:
- 18 Июль, 00:46:30:
- 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
- 30 Июнь, 02:51:22: MikroTik Routers and Wireless
- 30 Июнь, 02:13:51: er9x - Custom firmware for the Eurgle/FlySky/Imax/Turnigy 9x r/c Transmitter - Google Project Hosting
- 30 Июнь, 02:11:18: 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: A garbage collector for C and C++
- 17 Июнь, 19:30:59: 4store - Scalable RDF storage
- 17 Июнь, 19:27:09: JSColor – JavaScript / HTML Color Picker, Selector, Chooser
- 17 Июнь, 19:27:01: Extension:Semantic Project Management - MediaWiki
- 17 Июнь, 19:26:52: Free JavaScript Calendar
- 17 Июнь, 16:07:46: Установка
- 16 Июнь, 23:43:19: Mystery Gyro G401B (HK401B) modifications « Sergio Salvi
- 16 Июнь, 17:29:17: Вертолет Mosquito, официальный дилер Russian Fly - Mosquito XE3
- 14 Июнь, 00:28:16: (Pre-order) DSO Quad - 4 Channel Digital Storage Oscilloscope (TES101D2P) - $199.00 : Seeed Studio Bazaar, Boost ideas, extend the reach
- 12 Июнь, 13:53:02: eZ430-Chronos-433 - eZ430-Chronos Wireless Watch Development Tool
- 11 Июнь, 01:57:08: Simple Machines Forums attacks
- 10 Июнь, 02:31:20: How to optimize subqueries and joins in MySQL at Xaprb
- 09 Июнь, 01:55:34: Simple SSE and SSE2 optimized sin, cos, log and exp
- 03 Июнь, 15:25:28: City in the Sky: David Barton (opensource:pdf2svg)
- 01 Июнь, 12:56:24: "Ремэкс" - Материалы для изготовления рекламы: пленки Oracal и др., листовой пластик, материалы для печати, светотехника
Май 2011
- 29 Май, 00:26:54: HiModel - China, Radio Control, Remote Control, RC, R/C, Wholesale, Distributor, Manufacturer, wholesaler, Helicopters, Airplanes, Cars, Trucks, Boats.
- 26 Май, 15:36:19: An SVG Button Test Page
- 26 Май, 15:33:57: Advanced SVG Animation Techniques - Dev.Opera
- 24 Май, 12:52:10: Электронный журнал | О журнале
- 24 Май, 01:18:39: 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: RC Helicopter Kits Nitro & Electric - Mikado, Align, MS Heli, Kasama, E-Flite | ReadyHeli.com
- 21 Май, 01:12:38: RC Groups - View Single Post - Nine Eagles Solo Pro Single Rotor submicro heli
- 20 Май, 00:36:36: Xtreme Production Official Web Site - Home
- 18 Май, 23:49:30: WALKERA 4G3 V2 6CH Metal Upgrade Helicopter RTF - 2.4GHz eHIROBO Store
- 18 Май, 23:49:16: eHIROBO - RC, RC Parts Online Shop - eHIROBO Store
- 18 Май, 23:46:13: WALKERA V100D03BL Flybarless Brushless 3-Axis-Gyro System 6CH Helicopter RTF (Red) - 2.4GHz eHIROBO Store
- 15 Май, 02:40:24: Мышь с LCD дисплеем - Статьи о зарубежном моддинге
- 15 Май, 02:38:07: Модуль для подключения графического LCD LS020 (Siemens S65) » RoboZone.SU - любительская робототехника. Создание роботов в домашних условиях.
- 15 Май, 02:34:09: md4u.ru : Годограф для IB металлодетектора.
- 15 Май, 01:18:24: $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: Category:MediaWiki - WikiIndex
- 13 Май, 02:48:20: Tin Can Tools :: All Products
- 12 Май, 01:11:53: Miracle Mart — RC Helicopters RC Cars RC Planes Parts for Cars Parts for Helicopters Accessory Xtreme Production
- 08 Май, 22:33:33: The M-tree Project
- 08 Май, 16:01:06: Jonah Probell — The Lexra Story
- 08 Май, 01:26:17: solovyov.net: Bazaar: hate and… hate
- 08 Май, 00:26:44: Sensored
- 07 Май, 21:38:00: Solo запчасти
- 07 Май, 16:48:28: Радиоуправляемый вертолет Nine Eagle Solo PRO V1 2.4 GHz AL Case — Радиоуправляемый мир
- 06 Май, 16:41:53: Цифровой барометр (датчик атмосферного давления)
- 06 Май, 02:04:40: Адаптеры Powerline Ethernet
- 04 Май, 19:48:20: Make3D --- convert your image into 3d automatically
- 04 Май, 17:03:07: wvWare, library for converting Word documents
- 04 Май, 02:51:23: Turnigy 9X ? .. Это очень просто !
- 04 Май, 02:05:37: Делаем COM программатор для AVR микроконтроллеров. | www.GetChip.net
- 01 Май, 18:43:39: TheBox :: Main
Апрель 2011
- 27 Апрель, 19:06:46: Parallel Tracking and Mapping for Small AR Workspaces (PTAM)
- 27 Апрель, 11:56:44: XenVGAPassthroughTestedAdapters — Xen Wiki
- 26 Апрель, 19:55:16: dvisvgm: HomePage
- 24 Апрель, 21:30:22: DI-604 Flash Reverse Engineering
- 24 Апрель, 21:25:17: puyotools — Puyo Tools, tools and libraries for reading and writing in formats used in Puyo Puyo games — Google Project Hosting
- 23 Апрель, 21:13:56: Hauppauge WinTV-HVR-1900 — LinuxTVWiki
- 23 Апрель, 20:16:20: D-Link DI-524 СЕКРЕТЫ (1) — Конференция iXBT.com
- 23 Апрель, 20:13:58: YAGARTO — Yet another GNU ARM toolchain
- 23 Апрель, 03:01:40: The FrSky Telemetry Project
- 23 Апрель, 02:13:41: Инструкция Flymentor 3D.
- 23 Апрель, 02:03:33: HipHob-PHP
- 23 Апрель, 02:03:26: sl4a_r4.apk — android-scripting — sl4a_r4.apk — Scripting Layer for Android brings scripting languages to Android. — Google Project Hosting
- 21 Апрель, 18:34:23: OOP in JS, Part 2 : Inheritance
- 21 Апрель, 12:52:23: Форум независимой группы сервисных инженеров :: Сообщение для пользователя
- 21 Апрель, 12:50:29: Форум независимой группы сервисных инженеров :: Сообщение для пользователя
- 21 Апрель, 02:38:19: Home-Made DIY CNC Machine using Step Motors, Dremel, and EMC2 | Lirtex — Technology on the Edge of Time
- 21 Апрель, 00:45:27: Free Flight Computer
- 21 Апрель, 00:31:51: Variometer-Altimeter
- 20 Апрель, 14:54:30: YouTube — Surface Mount Soldering 101
- 20 Апрель, 12:47:55: Tools, Parts, Kits for DIY’ers — Curious Inventor
- 20 Апрель, 05:37:44: Blaizer/Neverhood — GitHub
- 20 Апрель, 05:07:28: BLB — MultimediaWiki
- 19 Апрель, 23:49:50: Новости — OpenSource — Nokia запустила новый уровень сертификации Qt программистов
- > А что такой сертификат дает? И в России в частности?
Вот сидишь ты в туалете, страдаешь диареей, но закончилась туалетная бумага. И тут хоппа! - у тебя сертификат!
- > А что такой сертификат дает? И в России в частности?
- 19 Апрель, 23:42:34: amd’s Profile — GitHub
- 19 Апрель, 23:26:49: Hack.lu 2010
- 19 Апрель, 22:41:43: Bug 31501 — crash accessing font info with xfs in fontpath
- 18 Апрель, 16:11:38: Роутер с Wimax своими руками : YotaTester.ru
- 17 Апрель, 02:25:00: How to use gdb
- 16 Апрель, 01:21:18: Робовертолёты музицируют и играют в теннис
- 16 Апрель, 01:07:33: РадиоКот :: Изготовление печатной платы с помощью пленочного фоторезиста.
- 16 Апрель, 01:06:49: Строим мультикоптер, часть первая / DIY или Сделай Сам / Хабрахабр
- 16 Апрель, 01:01:38: alex_avr2: Фольга спасет мир
- 16 Апрель, 01:00:44: CHR-6dm AHRS : CH Robotics, Better Sensors
- 16 Апрель, 00:59:49: MultiWii
- 14 Апрель, 01:04:42: ЖЖ Виталия Насенника — О пользе подземных ядерных испытаний
- 14 Апрель, 01:04:33: О некоторых корреляциях в сейсмодинамике и двух компонентах сейсмической активности Земли
- 13 Апрель, 16:45:29: When radioactive products were in vogue " OWNI.eu, News, Augmented
- 12 Апрель, 01:33:45: Embest DevKit8500D DM3730 Evaluation Kit, TI DM3730, AM3715, ARM Cortex-A8, 512MB DDR SDRAM, VGA, Camera, 3G, GPS, GPRS, WiFi, DM3730 Board
- 12 Апрель, 01:28:24: Breakout Board for MAX7456 On Screen Display — SparkFun Electronics
- 11 Апрель, 20:47:09: SourceForge.net Repository — (w3m) Contents of /w3m/w3mimg/x11/x11_w3mimg.c
- 10 Апрель, 21:42:08: Информационный портал по безопасности.
- 10 Апрель, 02:32:18: Index of /jrummy/misc/busybox
- 09 Апрель, 22:42:33: Stock Android 2.1 Apps List (Safe to Remove OR Not…?)) — xda-developers
- 09 Апрель, 16:56:57: AVR Programming & development tools. (CDK4AVR)
- 09 Апрель, 01:55:17: NorthUrsalia.com: Spring Rate Chart
- 08 Апрель, 23:24:44: Secret code for FROYO — xda-developers
- 08 Апрель, 02:02:34: CHDK Wiki
- 08 Апрель, 01:17:10: ARM S3C2440 Development Board: собери наладонник на коленке / Железо / Хабрахабр
- 05 Апрель, 21:24:22: Raphaël—JavaScript Library
- 05 Апрель, 00:10:51: SpecialComp Products
- 04 Апрель, 23:29:17: qemu-omap3 — qemu omap3 emulation support — Google Project Hosting
- 04 Апрель, 00:17:30: OMAP3 Boards — Texas Instruments Embedded Processors Wiki
- 03 Апрель, 23:58:49: Hacking away with Android pt 5 — insides of the Archos 32 and photos of LCD screens " Beyond the keyboard
- 03 Апрель, 23:55:48: Forum.ArchosFans.com — View topic — Archos 28 Internal Picture — HERE IT IS :)
- 03 Апрель, 23:42:52: Always Innovating: Introducing the Smart Book
- 02 Апрель, 21:35:06: Main Page — MILEDROPEDIA
- 02 Апрель, 18:18:20: $72.90 — Replacement Touch Screen Digitizer Glass for Apple iPad — Gadgets
- 02 Апрель, 16:52:37: News — SparkFun Electronics
- 02 Апрель, 16:44:02: LPH7366
- 02 Апрель, 16:40:59: iPhone LCD — SparkFun Electronics
- 02 Апрель, 03:02:07: жк матрицы, жк экраны, lcd матрица, матрица samsung, жк дисплей :: LCD Screen
- 02 Апрель, 02:08:19: ISEE, Online Store
- 02 Апрель, 01:52:11: enTourage eDGe™ Support- GPL Source Code for Dingo
- 02 Апрель, 01:50:51: Android tablet GPL compliance
- 02 Апрель, 01:35:32: PCB-DEV — Home
- 01 Апрель, 13:21:05: Calculate Linux (Windows Edition) — Планета Calculate
- 01 Апрель, 03:16:51: BeagleBoardRecovery — eLinux.org
Март 2011
- 29 Март, 23:31:38: Статьи и книги Криса Касперски
- 29 Март, 12:41:01: javascript — Dynamic Iframe IE Name Issue — Stack Overflow
- window.frames[name].name=name;
- 29 Март, 12:27:13: IEs4Linux
- 27 Март, 18:32:03: Home page — Genode Operating System Framework
- 27 Март, 13:19:12: Дела давно минувших дней. Часть первая: Siemens Mobile — Компьютерра-Онлайн
- 26 Март, 14:14:15: Доработка внедорожника
- 26 Март, 14:08:09: Самодельный генератор воды " Самодельный
- 25 Март, 07:54:40: (APP) NoLED v4.2.2 — Use the AMOLED screen for incoming notifications — xda-developers
- 25 Март, 07:09:05: (11.03.2011)(CF-Root v1.3)JPH/K/6/M/A/O/U/X/Y,JS2/3/5/7,JQ3,JV1 — su+bb+2e,CWM compat — xda-developers
- 25 Март, 00:00:19: Пишем приложение под Android с поддержкой Cloud to Device Messaging (C2DM) / Разработка под Android / Хабрахабр
- 23 Март, 18:50:29: HTTPTunnel — Tunnel Connections Through Restrictive Proxies
- 22 Март, 13:59:26: [opera:blank Пустая страница]
- 22 Март, 02:38:38: (REF) Choosing between GlassLock and Android’s stock lock screen — xda-developers
- 22 Март, 02:21:19: Decompiler Design — Control Flow Graph
- 19 Март, 22:01:13: АВИАЦИОННЫЙ ФОРУМ на AVIA.RU — пишут, что на эшелоне радиация в 20-30 раз выше, чем на земле.
- если хочешь стать отцом, обмотай конец свинцом
- 19 Март, 21:27:37: RIFF BOX JTAG | Narry GSM Website
- 19 Март, 21:26:07: Tourist In Paradise: Samsung Galaxy S: Download SpeedMod kernel
- 18 Март, 12:16:17: The-eBook | View topic — Исследуем SDK
- 18 Март, 12:13:24: Songbird Blog " Songbird path to Agility — Part III
- 18 Март, 12:05:43: HFS /smartq/firmware/
- 18 Март, 12:05:35: Экран iPad 2: разрешение 1280*1024 и технология H-IPS? | iRumor
- LP097x02
- 18 Март, 11:53:12: Index of /
- 18 Март, 11:52:47: MyGForge > Projects > OMAP Boot Loader > Wiki > View Page
- 18 Март, 11:52:37: How to compile kernel from leaked Telechips Linux BSP | androtab.info
- 18 Март, 03:22:12: Extract and rebuild a UBI image — SlateDroid.com
- 18 Март, 03:17:46: (KERNEL LIST)(14.03.2011) Galaxy S I9000 Custom KERNEL List — xda-developers
- 18 Март, 00:01:00: Физические игрушки
- 17 Март, 22:46:56: ATLab — электроника для моддинга
- 17 Март, 12:42:21: Motorola Defy — XDA-Developers
- 16 Март, 23:35:50: PEL.HU — ARMu — ARM assembler, disassembler, emulator
- 16 Март, 19:22:30: Android Root Source Code: Looking at the C-Skills — Intrepidus Group — Insight
- 16 Март, 11:28:17: Submit your video or photo
- 16 Март, 11:25:49: Как загружается ARM / Железо / Хабрахабр
- 15 Март, 17:33:51: Bug 12309 — Large I/O operations result in poor interactive performance and high iowait times
- 09 Март, 02:18:06: Wireless Connectivity Platforms — Texas Instruments Embedded Processors Wiki
- 09 Март, 00:47:01: ARM Information Center
- 08 Март, 13:01:02: SharePoint, ASP.NET, C# и не только: Программируем электронную книгу Qumo Libro
- 08 Март, 12:49:05: The-eBook | View topic — FAQ по Qumo Libro
- 08 Март, 12:24:53: cpus/s3c24xx/s3c2416 — Центр технической поддержки процессоров Samsung
- 08 Март, 12:22:45: SAMSUNG Semiconductor — Products — Application Processor — Products
- 07 Март, 02:56:02: Main Page — The iPhone Wiki
- 07 Март, 00:45:44: AsusFans.ru " Драйверы под XP для M50Vc
- 06 Март, 23:56:31: ARM Condition code suffixes
- 06 Март, 23:56:06: Жаргон и сокращения Lineage2 — SacredSteel.net
- 06 Март, 23:21:54: Serial console on gen6 and gen7 using the Archos DVR Station " openAOS
- 06 Март, 12:34:04: Instruction set: ARM — HvWiki
- 06 Март, 12:03:46: Леонид Каганов: 2011/03/06 Патриотизм и саранча
-
А сигналом рожать перелетное потомство является количество саранчи на поле. И определяет его саранча на глаз — по числу саранчиных рыл. Поэтому достаточно расставить вокруг саранчи кучку зеркал, как она решит, что пора сваливать. Научно доказанный факт.
Вы понимаете, да? Саранча оглядывается и думает: «Блять, какое ужасное мудачье! Пора валить из этой страны!» А вокруг — зеркала, зеркала, зеркала...
-
- 06 Март, 02:19:59: omap-u-boot-utils — Project Hosting on Google Code
- 06 Март, 01:31:49: assembly — ARM to C calling convention, registers to save — Stack Overflow
- r0-r3 are the argument and scratch registers; r0-r1 are also the result registers
- r4-r8 are callee-save registers
- r9 might be a callee-save register or not (on some variants of AAPCS it is a special register)
- r10-r11 are callee-save registers
- r12-r15 are special registers
- 05 Март, 13:06:32: Welcome to bu3sch.de
- 05 Март, 02:04:40: My Android Applications
- 05 Март, 02:02:27: How to compile kernel from leaked Telechips Linux BSP | androtab.info
- 04 Март, 22:34:33: 25 американских прохожих полтора часа реанимировали человека — МедНовости — MedPortal.ru
- Американец выжил после остановки сердца благодаря тому, что 25 человек непрерывно делали ему непрямой массаж сердца в течение более полутора часов, сообщает CBS News.
- 04 Март, 16:29:10: WebHome < U-Boot < DENX
- 04 Март, 02:45:24: Hawkboard - eLinux.org
- 04 Март, 02:07:55: Magnetic-core memory - Wikipedia, the free encyclopedia
- 04 Март, 01:57:42: TOSHIBA LAUNCHES HIGHEST DENSITY(1) EMBEDDED NAND FLASH MEMORY DEVICES
- 04 Март, 01:57:28: Flash Memory: SSDs, UFS, e-MMC™ | JEDEC
- 03 Март, 03:46:47: (W A S M . R U) СТАТЬИ > Процессоры > Написание шеллкодов под Linux/StrongARM
Февраль 2011
- 27 Февраль, 03:32:18: Archos 5 First Stage Bootloader — ArchosDocs
- 27 Февраль, 01:00:15: Herotab M10 Android 2.2 Flash 9.7 Cortex A8 CPU Capacitive Bluetooth
- 27 Февраль, 00:48:23: Pandawill Forum Powered by our member! — Powered by Discuz!
- 27 Февраль, 00:40:07: Herotab M10 (Gpad GeForce) Information & Rom Development — xda-developers
- 27 Февраль, 00:14:39: Столы письменные и компьютерные — Столы письменные и компьютерные. | Мебель из Сосны — Москва — Мебель из Сосны — Москва
- 26 Февраль, 23:58:44: Мебельная фабрика — корпусная мебель из сосны на заказ. Мебель для кухни, детская мебель, прихожие, стенки, спальни из сосны, кухонная мебель, мебель для детской комнаты, книжные шкафы, компьютерные столы, столы обеденные
- 25 Февраль, 21:26:20: yEd — Graph Editor
- 22 Февраль, 14:45:59: Notes Vulgaris
- 22 Февраль, 03:35:41: Instruction set quick finder
- 20 Февраль, 18:48:02: Видео. Алексей Хван: Как приготовить соус (заправку) для риса | рецепт | sushifan.ru
- 20 Февраль, 03:11:29: Buy Hawkboard from — hawkboard.org
- 20 Февраль, 02:58:31: Category:RCE Tools — Collaborative RCE Tool Library
- 20 Февраль, 02:54:26: FAQ — Pandora Wiki
- 19 Февраль, 02:29:44: (Official) Augen Gentouch78 Rooting and Development (Working Android Market!) (Archive) — Page 7 — xda-developers
- 19 Февраль, 00:49:01: Микроконтроллеры " Книги скачать бесплатно по радиоэлектронике, электронике, радиотехнике, микроконтроллерам, ПЛИС, схемотехнике, прикладным программам, САПР, ПЛИС новые и лучшие в формате djvu, pdf, doc
- 18 Февраль, 19:50:20: Гипножаба — Динамическая графика — Пепелсбей.net
- 18 Февраль, 14:05:32: :: Point of View ::
- 18 Февраль, 13:54:59: tegratab.com • View forum — GTablet Custom ROMs
- 18 Февраль, 02:31:09: Новости — OpenSource — Intel объявляет конкурс для разработчиков приложений для MeeGo
-
>5-дневное путешествие по России на военном сверхзвуковом самолёте
Камаз-самалёт?
-
- 18 Февраль, 00:18:41: Android Getting Started — OMAPpedia
- 17 Февраль, 17:56:56: ArchosDocs
- 17 Февраль, 14:07:21: (HOWTO) Root easily your Gen8 device (fw 2.0.71 — 2.1.08) + R/W FILESYSTEM — xda-developers
- 17 Февраль, 13:50:52: aos_file_format (gmEmu)
- 17 Февраль, 13:37:44: How to Downgrade your Archos Gen 8 Device (28, 32, 43, 70, 101) from 2.0.71 to 2.0.54 (Archive) — xda-developers
- 15 Февраль, 19:50:45: Whatever….: Benchmarking results of mysql, lucene and sphinx…
- 13 Февраль, 18:45:41: Galaxian — Wikipedia, the free encyclopedia
- 13 Февраль, 18:15:42: SniffUSB 2.0 for Windows XP
- 13 Февраль, 17:42:12: dex2jar — Project Hosting on Google Code
- 13 Февраль, 17:41:42: smali — Project Hosting on Google Code
- 13 Февраль, 17:41:13: Undx
- 13 Февраль, 17:41:01: Decompiling Android Apps: undx, dex2jar, and smali — Intrepidus Group — Insight
- 13 Февраль, 17:28:41: Acer Liquid — Прошивка (OS 2.2) — 4PDA
- 13 Февраль, 17:24:55: Помпа двигателя 24Д (2401)
- 13 Февраль, 15:42:04: Extract files from a MSI package | Tips | Smallvoid.com
- msiexec /a mypackage.msi /qb TARGETDIR="C:\MyFolder"
- 11 Февраль, 03:19:46: Texas Instruments OMAP — Wikipedia, the free encyclopedia
- 11 Февраль, 02:44:17: MyGForge > Projects > Android on OMAPZoom > Lists > omapandroid-discussion archives
- 11 Февраль, 02:42:33: OMAP3530 Single Board Computer — Beagle Board
- 11 Февраль, 02:35:52: Forum.ArchosFans.com — View topic — Information Found on 101 mainboard
- Power Management Chip
Texas Instrument:
TPS659218
0AA002W $4
8GB NAND Chip
Toshiba:
THG8M2G6D2ABF19
K66428
JAPAN
1034MAE
RAM Chip
Micron:
OTA18
D9LCC
"M"
Micron Part Number:
MT46H64M32LFMA-5 IT:A
- Power Management Chip
- 10 Февраль, 02:31:36: Huawei AT-commands — 3G modem wiki
- 09 Февраль, 21:35:33: Slimey
- 09 Февраль, 21:35:27: Docx to Text convertor
- 09 Февраль, 21:34:32: UrukDroid 0.5 (Android) on ext4, full r/w access, su (root), SDE — xda-developers
- 09 Февраль, 21:33:30: archos-apps-installer — Project Hosting on Google Code
- 09 Февраль, 14:33:57: Интернет-магазин МегаФон Москва / Устройства МегаФон
- 08 Февраль, 18:13:43: Archangel One-click root on Archos 101,70,43,32 and 28
- 08 Февраль, 15:03:27: Welcome to Archivez.Info | The Largest Resources On the WEB!
- 08 Февраль, 09:13:59: Debian User Forums • View topic — E17 — Digital Clock (Fixed)
- 08 Февраль, 05:23:56: Lenta.ru: Из жизни: В Петербурге оштрафовали «пилицейского» за неправильную парковку
- 07 Февраль, 01:14:00: Archos 28IT, 32IT, 43IT, 70IT, 101IT — FAQ — 4PDA
- /system/usr/keylayout/gpio-keys.klКодkey 115 VOLUME_UP WAKEзаменяем на
key 114 VOLUME_DOWN WAKEКодkey 115 HOME WAKE
key 114 BACK WAKE
Profit!
- /system/usr/keylayout/gpio-keys.kl
- 05 Февраль, 02:58:34: Купить UARTDNG101 — База Электроники
- 05 Февраль, 02:55:40: КОСМОДРОМ — Электронные компоненты для разработки и производства — Харьков — Украина
- 05 Февраль, 02:48:42: Vario
- 04 Февраль, 19:20:45: Projects: pybraces (Tim Hatch)
- 03 Февраль, 14:46:41: ADB on Archos 101 — xda-developers
- * Add Archos vendor ID (0x0e79) to adb_usb.ini in .android folder in your home directory:
o Windows: echo 0x0e79 >> "%USERPROFILE%\.android\adb_usb.ini"
o Macos: echo "0x0e79" >> ~/.android/adb_usb.ini
o Linux: echo "0x0e79" >> ~/.android/adb_usb.ini
* For Linux users only: You need to add a udev rule if ADB only works as root:
o Create a file /etc/udev/rules.d/51-android.rules that contains the following lines:
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",
ENV{PRODUCT}=="e79/*", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="e79", MODE="0666"
o Make the rule known to udev with the following command:
udevadm control --reload-rules (or udevcontrol reload_rules on older systems)
- * Add Archos vendor ID (0x0e79) to adb_usb.ini in .android folder in your home directory:
- 02 Февраль, 20:51:09: Kongregate: Play free games online
- 02 Февраль, 20:36:27: Установка Android Market на планшеты Archos | Android Россия — новости, телефоны, программы, игры
Январь 2011
- 28 Январь, 19:27:48: APEX.RU (АПЕКС.РУ) — Трек-дни — Стартовый раздел портала
- 28 Январь, 19:27:41: APEX.RU (АПЕКС.РУ) — Расписание снежных покатушек 29-30 января — Трек-дни — Стартовый раздел портала
- 28 Январь, 17:37:49: Anomos
- 28 Январь, 17:37:31: Операционные усилители (на основе простейших примеров) / Электроника для начинающих / Хабрахабр
- 28 Январь, 17:22:07: Малоизвестные способы атак на web-приложения | Статьи | Взлом | Уязвимости | Snipper.Ru
- 28 Январь, 17:21:53: Новые уязвимости доступа к файлам в PHP / Блог компании Журнал Хакер / Хабрахабр
- 26 Январь, 20:49:49: Front Page
- 25 Январь, 01:34:56: Цифран ~ Ranbaxy ~ Инструкция
- 21 Январь, 16:43:29: Catalog of Patterns of Enterprise Application Architecture
- 20 Январь, 19:15:14: Clone Javascript object > Snowcore’s блог
- function clone(o) {
if(!o || ‘object’ !== typeof o) {
return o;
}
varc = ‘function’ === typeof o.pop ? [] : {};
var p, v;
for(p in o) {
if(o.hasOwnProperty(p)) {
v = o[p];
if(v && ‘object’ === typeof v) {
c[p] = clone(v);
}
else {
c[p] = v;
}
}
}
return c;
}
- function clone(o) {
- 19 Январь, 03:21:42: Linux UPnP Internet Gateway Device
- 19 Январь, 03:21:05: Port Triggering Using A NAT Firestarter Firewall And Specter In Debian/Ubuntu | HowtoForge — Linux Howtos and Tutorials
- 18 Январь, 03:07:27: EAA Video Player — Your Source for Aviation Videos
- 18 Январь, 01:39:44: Lenta.ru: Форум
- По поводу невъезда(так будет вернее) в "ЕС список", во первых это несомненно рефлексия, которая давно уже стала одним из главных утешений западной политики, а во вторых, с реальной пацанвой па любэ придётся считаться. А российская пацанва стала реальной, когда нашла в себе духовные силы сменить перманентную патрио-фрустрацию, на креативный рэкет в виде "властной вертикали".
- 17 Январь, 23:07:43: Cross Browser Copy To Clipboard
- 15 Январь, 02:30:53: mod_perl: Performance Tuning
- 14 Январь, 16:44:04: (HACK) Opera UserJS To Get Back The Good Ol’ Google Search UI | Shirish Kamath’s Personal Website
- 11 Январь, 16:33:53: Ajax, javascript and threads : the final truth " Javascript Kata
- 11 Январь, 01:59:58: Traffic Control HOWTO
- 11 Январь, 01:35:08: Architecture
- 11 Январь, 01:18:23: Манжерок \ Горнолыжный курорт \ Cостояние склонов \ Сноуборд проект Onboard.ru
- Манжерок
- 10 Январь, 02:11:41: YouTube — Mindstorms Autofabrik
- 08 Январь, 02:24:33: Bourns — Magnetic Encoders
- 08 Январь, 02:24:21: Connectivity Bridges
- 07 Январь, 11:55:40: Мебель, Встроенная мебель для спален — furniture.to-build.ru
- 07 Январь, 00:49:50: Теория большого взрыва — Викицитатник
- 06 Январь, 23:25:26: С новым годом — Handgum (хендгам) — жвачка для рук — Купить handgum — Про хендгам — Оригинальный и необычный подарок — Подарок школьнику — Купить хэндгам, хендгам — Купить жвачку для рук — Настоящий лицензионный Хендгам — Звонок бесплатный
- 05 Январь, 23:16:15: Письменный стол из массива сосны № 1 | Письменные столы | РАБОЧЕЕ МЕСТО | Интернет-магазин мебели
- 03 Январь, 19:38:43: ath9k — Linux Wireless
- 03 Январь, 19:35:54: TP-LINK TL-WN851N 802.11n Wireless LAN PCI Adapter — купить в «ОГО!»
- 03 Январь, 19:34:33: TP-LINK TL-WN851N — Оборудование Wi-Fi и Bluetooth — Яндекс. Маркет
- 03 Январь, 19:32:36: D-link DWA-556 — Оборудование Wi-Fi и Bluetooth — Яндекс. Маркет
- 03 Январь, 19:01:15: ZOTAC NM10-B-E — Материнские платы — Яндекс. Маркет
- 02 Январь, 21:05:22: Ремонт генератора 94.3701.
- 02 Январь, 20:56:21: paraplan.ru: Буксировка на пассивной лебедке. Взгляд из Курска.
- 02 Январь, 20:26:56: Устройство вариатора скутера
- 02 Январь, 20:26:52: Устройство и принцип работы центробежного автоматического сцепления
- 02 Январь, 20:15:59: www.p-mobile.ru :: Синхронные генераторы Sincro для электроагрегатов мощностью от 1,2 до 10 кВА
- 02 Январь, 19:09:49: 5132.3771-10 Генератор ВАЗ 1118 Калина по лицензии «ИСКРА» 14В 120А — цена
- 02 Январь, 19:09:43: Генераторы
- 02 Январь, 18:40:46: Работа асинхронного электродвигателя в генераторном режиме.
- 02 Январь, 18:34:47: Автомобильная электроника
- 02 Январь, 15:42:45: Трансформаторные схемы преобразования числа фаз (схема Скотта) | Электрические машины в устройствах автоматики
- 02 Январь, 13:25:14: archivemount — Wikipedia, the free encyclopedia
- 02 Январь, 03:21:25: Cromfs: Compressed ROM filesystem for Linux (user-space)
- 01 Январь, 00:42:43: phpBB • View topic — (DEV) mysql fulltext search
2010
Декабрь 2010
- 29 Декабрь, 20:08:54: Цинизм в IT: Аудит запуска процессов в Linux
- 28 Декабрь, 16:35:08: MRTeam — раллийная команда
- 28 Декабрь, 02:10:24: 36 Вольт — Поставщик бесперебойного энергопитания
- 27 Декабрь, 03:12:24: Disconnect
- 26 Декабрь, 03:33:14: JavaScript Image Rotator — Timed Image Swap
- 23 Декабрь, 18:59:51: subversion: Discussion topic
- 22 Декабрь, 20:21:14: Main Page — FlashDevelop
- 22 Декабрь, 20:19:19: Facebook for Websites — Facebook Developers
- 18 Декабрь, 23:02:18: Современные воздухоочистители
- 16 Декабрь, 00:28:27: (ROM) Xian (LiquidF) v1.2a (11/1/2010) — CM 6.1.0-RC — MIUI 11.05 — Android @ MoDaCo
- 15 Декабрь, 02:04:21: LCR Community Rom — News
- 14 Декабрь, 16:06:03: script.aculo.us — web 2.0 javascript
- 13 Декабрь, 11:34:09: Snowboard Sizing Guide, Size Calculator
- 11 Декабрь, 03:49:14: Урок 5 — Подъемник \ Техника катания на сноуборде \ Школа сноуборда \ Сноуборд проект Onboard.ru
- 11 Декабрь, 02:18:04: Perl 5.8 Documentation — Debugging Perl memory usage
- 08 Декабрь, 16:13:34: PostgreSQL/Materialized Views — Jonathan Gardner’s Tech Wiki
- 08 Декабрь, 01:48:16: Скипасс в Волен/Степаново. — Сноуборд Форум
- 06 Декабрь, 18:00:55: Добро пожаловать в Отель Думанов***
- 04 Декабрь, 19:50:14: : Focus on the Family Community: Plugged In: Subtle Twist in Tangled
- Flower gleam and glow/Let your power shine/Make the clock reverse/Bring back what once was mine/Heal what has been hurt/Change the Fates' design/Save what has been lost/Bring back what once was mine
- 02 Декабрь, 21:29:27: PostgreSQL: Documentation: Manuals: PostgreSQL 8.4: Text Search Functions and Operators
Ноябрь 2010
- 28 Ноябрь, 23:04:16: Применение CCP
- 27 Ноябрь, 18:20:23: izubr: От моих декабрей до твоей весны…
- От моих декабрей до твоей весны...
Я работаю солнечной батареей, я в кармане оранжевом солнце грею, чтоб оно на небо взошло скорее и чесало макушки заснувших лип. Солнце ловит за пальцы меня лучами, я его приручила и отвечаю, солнце просит завтрак и выпить чаю, просит прямо внутрь его налить.
Солнцу так одиноко ходить по кругу - вот нашло, понимаешь, себе подругу, и ему всё равно - хоть любовь, хоть ругань, поболтать бы вот только о ерунде. Я его несу осторожно очень, ведь оно непоседливо между прочим и всё время выпрыгнуть хочет ночью, чтобы вдруг повсюду случился день.
Я работаю солнечным развлеченьем, я кормлю его по утрам печеньем, а потом усталой порой вечерней я ему чумазую спинку тру. И когда уже все разбрелись и спят, я отмываю солнцу босые пятки, а то все ведь заметят на солнце пятна, многим это будет не по нутру.
Но потом постепенно солнце взрослеет, в переходном возрасте жарит злее, и багровым пятном по ночам алеет, и подчас забывает придти домой . А приходит - горячее, как жаровня, говорит, что я, мол, ему не ровня, и не родственница я ему по крови, и что вид ему неприятен мой.
Понимаю, я, в общем, сама такая, я всем прихотям солнечным потакаю, а оно мне в сердце лучи втыкает, чтоб до боли - а мне так тепло в груди. Покричит об измене, тоске, обмане... а потом тихонько к себе поманит и заснет спокойно в моем кармане, и я буду бояться его будить.
Я работаю солнечной батареей. На рассвете прохладно, восток сереет, воздух пахнет листьями и сиренью, и пора бы уже открывать карман. Я держу карман шире, чтоб было проще... солнце сонное нос конопатый морщит, а потом восходит над тихой рощей, рассыпается искрами по домам.
- От моих декабрей до твоей весны...
- 27 Ноябрь, 02:35:07: Accelerometer Controlled Usb Gamepad and Mouse using PIC18F2550 / PIC18F4550 « Starlino Electronics
- 26 Ноябрь, 03:41:44: US Digital | Products „ MA3 Miniature Absolute Magnetic Shaft Encoder
- 26 Ноябрь, 03:05:24: dsPIC33F
- 26 Ноябрь, 03:01:37: Связь микроконтроллера с компьютером через RS232 : Электроника для всех
- 26 Ноябрь, 03:01:28: AVR. Учебный курс. Передача данных через UART : Электроника для всех
- 20 Ноябрь, 00:26:52: Amazon.com: The Shock Absorber Handbook (9780768000504): John C. Dixon: Books
- 20 Ноябрь, 00:08:30: Theory of shock absorber
- 20 Ноябрь, 00:03:01: Shock Absorber Tuning
- 20 Ноябрь, 00:00:23: Системы пассивного и активного гашения вибраций — Теория
- 18 Ноябрь, 19:15:29: Amazon.com: Inside Racing Technology: Discussions of Racing Technical Topics (9780964641402): Paul Haney, Jeff Braun: Books: Reviews, Prices & more
- 16 Ноябрь, 19:16:05: Ответы@Mail.Ru: Ваша копия Windows не прошла проверку… у меня Windows 7 кто нибудь знает как убрать это из реестра, или еще как нибудь?
- 16 Ноябрь, 18:53:24: Навальный — Как пилят в Транснефти
- 16 Ноябрь, 01:57:55: Укладка паркета, укладка массивной доски, укладка фанеры. | Parkett-service.ru. Сервис паркетных полов.
- 13 Ноябрь, 20:54:45: VseMayki.RU — Футболка Cheshire cat
- 13 Ноябрь, 01:26:54: Мощные светодиоды: 5 Вт на винте М4 (LiTK)
- 13 Ноябрь, 01:23:43: Зря волновались Сколково будет в надёжных руках — Разбираем Политику — Свобода слова! Хочу все знать! — я.ру
- Бизнесмен Мошиашвили вёз из России алмазы на миллион шекелей
- 12 Ноябрь, 19:25:53: 2004-2005 Subaru Impreza WRX LED Halo Projector Headlights | Turbo Metal Reviews
- 12 Ноябрь, 02:09:57: Организация платежей по кредитным картам — База знаний WebAsyst
- 12 Ноябрь, 00:16:45: (FAQ) Shock Dynos — Honda-Tech
- 12 Ноябрь, 00:12:37: ND Tech Shock Dynamometers
- 12 Ноябрь, 00:11:36: AutoSpeed — Damper Dyno
- 12 Ноябрь, 00:02:42: Free United States proxy servers. American proxy — US.
- 11 Ноябрь, 02:11:15: CobbTuning.com — How Subaru’s Factory Boost Control System Works
- 11 Ноябрь, 01:39:15: RomRaider • View topic — How To: Get started with tuning and logging
- 11 Ноябрь, 01:32:05: RomRaider — Open Source ECU Tools | RomRaider / Nsfw Snippets
- 10 Ноябрь, 13:33:09: Фонарь COMBIFLASH (с газоразрядным маячком и лампой накаливания) — цены, описание и фото в интернет магазине RuDive
- 10 Ноябрь, 02:19:31: RomRaider • View topic — Turbo dynamics and boost control explained
- 10 Ноябрь, 02:02:06: TephraMod — EvoEcu
- 10 Ноябрь, 01:44:39: “Клёвый» — спиннинговый магазин :: Кевларовая нить UTC Kevlar Natural
- 10 Ноябрь, 01:44:29: BotScout.com: Account Login
- 10 Ноябрь, 01:44:22: SpamBot Search Tool v0.50
- 10 Ноябрь, 01:43:58: Шима «Пена» 20 : Всё для ухода за автомобилем: бесконтактная автохимия, автокосметика и моющие средства, оборудование для мойки
- 10 Ноябрь, 01:43:53: Safecracker solutions
- 10 Ноябрь, 01:42:23: Minamoto ER 14250 3.6V 1/2 AA с выводами — Аккумуляторы и батарейки — Москва Колодезный пер. дом 3
- 10 Ноябрь, 01:24:41: Blogerator — MySQL «на стероидах»: Drizzle, MariaDB, Percona, OurDelta, ExtSQL, NoSQL
- 04 Ноябрь, 03:51:21: Секция акробатики и батута
Октябрь 2010
- 31 Октябрь, 21:55:47: Информация по предложению шин/дисков Enkei/ZR1 № 64371358 на koleso.auto.ru
- 31 Октябрь, 21:52:13: «Baja Red/Orange» Forza 2-Speed 4WD Nitro Gas Radio Remote Controlled RC Off-Road Buggy Car RTR
- 31 Октябрь, 21:26:32: Clementine Music Player
- 30 Октябрь, 02:47:20: KDS Flymentor 3D — Страница 14
- 30 Октябрь, 02:17:47: 1 ROTA GROUP A 17x7.5 5X100 ET48 56.1HUB WHITE WHEELS: eBay Motors (item 110602504398 end time Nov-22-10 22:29:24 PST)
- 30 Октябрь, 02:15:42: 1 ROTA G-FORCE 17X75 5X100 ET48 GUN METAL 56.1 WHEELS: eBay Motors (item 400166907645 end time Nov-22-10 22:24:13 PST)
- 29 Октябрь, 15:56:55: Kjell-Magne Øierud :: Code
- Improved MySQL graphs for Munin
- 28 Октябрь, 13:56:45: BMS-616MG+HS Super Strong Servo (Mos-FET) for buggy 10.2kg / .12sec / 46.5g | Сервомашинки и шестерёнки | Стандартные серво 31-49g — Радиоуправляемые модели
- 28 Октябрь, 10:07:48: Mini Portable MPEG-4 DVR Wirh 2.5 Inch 960*240 LCD (CL-DV04) — China Mini Dvr,Cctv Mini Dvr,Dvr in Surveillance, Control & Protection
- 27 Октябрь, 19:38:25: BuilderClub | Строим дом. Строительство дома и коттеджа, все о том как построить правильный дом
- 27 Октябрь, 19:08:54: Buffer Overflows — Mark’s Blog — Site Home — TechNet Blogs
- 25 Октябрь, 19:39:37: Закон и реальность ¦ Транспортный налог ¦ Общение с ГИБДД.
- 25 Октябрь, 18:01:33: MySQL :: Re: Slave Error : different errors on master and slave
- SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE;
- 23 Октябрь, 02:14:46: GOTVIEW • Просмотр темы — Драйвер под Linux для GOTView USB 2.0 Hybrid Masterstick
- 23 Октябрь, 01:34:28: Stop Forum Spam
- 23 Октябрь, 01:34:19: SpamBot Search Tool v0.50
- 23 Октябрь, 01:17:48: Pandaboard
- 23 Октябрь, 01:17:28: Snaked user manual — Snaked v0.3 documentation
- 23 Октябрь, 00:59:06: Linux Kernel Newbies — Linux Kernel Newbies
- 22 Октябрь, 02:18:39: трасса АДМ. прохождение круга, от М. Г. Горбачева
- 22 Октябрь, 00:49:47: HKS USA HKS Hipermax Monotube vs. Twintube
- 20 Октябрь, 18:19:23: Print Stylesheets — CSS Discuss
- 20 Октябрь, 18:19:14: Батут и его роль в жизни сноубордиста/ньюскулера // Статьи // Сноуборд и Ньюскул проект — InSnow.ru
- 19 Октябрь, 16:54:19: SV5637-001, лазер 850нм 1.5мВтTO46me, лазерные диоды и модули, ПЛАТАН
- 17 Октябрь, 21:49:26: Как собрать кубик рубик? « Секретов Нет — Все секреты раскроются, все тайное станет явным
- 17 Октябрь, 21:21:06: Монитор LCD AH7.0» 800x480 с входом VGA+AV
- 17 Октябрь, 21:20:44: Soundmax SM-LCD712 Black — LigaZvuka.Ru
- 17 Октябрь, 14:14:57: Двухполярное напряжение из USB — Приднестровский портал радиолюбителей
- 17 Октябрь, 04:00:04: ECU Reprogramming
- 17 Октябрь, 00:08:49: Дуб Натур
- 15 Октябрь, 04:05:29: Wireless Audio Receiver: FARX-433
- 13 Октябрь, 01:51:37: BananaHobby — 6 CH 2.4GHz BlitzRCWorks Tornado 3D Aerobatic RTF Radio Control Helicopter
- 13 Октябрь, 01:51:32: Free Photo Editors for Windows — Top Picks
- 13 Октябрь, 01:51:26: Hip-Notics Cable Park — Antalya / Turkey
- 12 Октябрь, 13:33:24: YouTube — Ежик, кторого прет от кошачего корма
- 08 Октябрь, 21:18:29: Print Stylesheets — CSS Discuss
- 08 Октябрь, 02:06:35: PunBB
- 07 Октябрь, 23:52:18: AVR-CDC
- 07 Октябрь, 23:46:43: Съёмник руля
- 07 Октябрь, 23:46:28: SHENZHEN KDS MODEL TECHNOLOGIES CO., LTD.
- 07 Октябрь, 23:42:45: HobbyKing Paraglider Parafoil 2.15m | Самолёты ARF/RTF | Планеры — Радиоуправляемые модели
- 07 Октябрь, 23:38:21: Gyro Cierva C30 Gyroplane EP Balsa ARF | Самолёты ARF/RTF | Все самолёты — Радиоуправляемые модели
- 07 Октябрь, 23:36:16: He Not Busy Being Born: April 2009 Archives
-
- 07 Октябрь, 22:59:39: Где покатать заграницей? (лебедка) — WAKE.RU
- 07 Октябрь, 19:33:59: APKTor / Aptoide Repository List « From The Mind of Eddie Dover
- 04 Октябрь, 19:45:57: ДентРеал — Стоматологическая клиника
- 04 Октябрь, 16:10:06: Subversion Users: Re: Show log
- 04 Октябрь, 00:30:33: qtfaststart.py at master from danielgtaylor’s qtfaststart — GitHub
Сентябрь 2010
- 25 Сентябрь, 02:51:01: Samsung Galaxy Tab 16GB Android Accessories — Notebooks — computeruniverse.net
- 22 Сентябрь, 23:04:40: Статьи: Десять способов не платить за парковку
- 22 Сентябрь, 19:56:39: XXJMXX — unlocker.uk.to |
- 22 Сентябрь, 19:45:35: gsm modem faq.
- 22 Сентябрь, 19:43:44: Online Huawei Modem Unlock Calculator
- IMEI: 352108044566805
» Unlock: 63343495
« Flash: 35389007
(c) SERGEY/MKL 2010
AT^CARDLOCK="63343495"
- IMEI: 352108044566805
- 22 Сентябрь, 19:26:48: Как „приручить“ МТС-модем Huawei E1550
- 22 Сентябрь, 19:25:36: Huawei code calculator by Pak-Gsm & Team
- 22 Сентябрь, 15:21:34: Грунтовое кольцо |
- 10 Сентябрь, 19:28:11: dispcalGUI—Open Source Display Calibration and Characterization powered by Argyll CMS
- 09 Сентябрь, 14:18:42: Where Debian meets Enlightenment
- 06 Сентябрь, 15:26:15: Ноутбук 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: How it works
- 02 Сентябрь, 19:29:26: maashaa: iphone
- 01 Сентябрь, 19:32:57: Ответы@Mail.Ru: Вот возник вопрос: проводит ли дерево эл. ток И почему нельзя стоять под деревом во время грозы?
- 1. Дерево не проводит электрический ток, покуда оно сухое. А будучи покрытым пленкой воды, то есть мокрым, любой изолятор становится плохоньким, но проводником.
2. Стоять под деревом во время грозы действительно нельзя. Но, разумеется, ни о каком «параллельном включении сопротивлений» речь не идет. Есть два основных поражающих фактора, про шаговое напряжение здесь уже упомянули. Выражается оно в том, что в момент удара молнии на земле возникает такое распределение потенцила, что разность потенциалов на одном метре может достигать сметрельных для человека значений.
Второй поражающий фактор заключается в том, что при протекании тока через деверо происходит испарение содержащейся в нем влаги, давление внутри резко возрастает и дерево в буквальном смысле может взорваться. Тогда его обломки могут причинить серьезные увечья.
- 1. Дерево не проводит электрический ток, покуда оно сухое. А будучи покрытым пленкой воды, то есть мокрым, любой изолятор становится плохоньким, но проводником.
- 01 Сентябрь, 02:35:26: Леонид Каганов. Специально для F5 / F5
- 01 Сентябрь, 00:54:32: Пеноакриловая двусторонняя лента 3M™ PT1100
- 01 Сентябрь, 00:49:58: Военная жужжалка на 4625 кГц — Страница 21
Август 2010
- 30 Август, 16:07:15: AVmodels.ru | Модели | Радиоуправляемые модели | Настройки сервооси радиоуправляемой модели вертолета.
- 30 Август, 16:03:56: CCPM layouts — RC Helicopter Wiki
- 27 Август, 21:46:27: japanwheels.ru | О нас | Тормозные колодки Rotora H2 Ceramic для Subaru Impreza STI (Brembo) / MITSUBISHI EVO передние (RP.10010.1)
- 27 Август, 11:22:28: Станция УВБ-76 подала четвёртый сигнал за 30 лет / Криптография / Хабрахабр
- 26 Август, 15:28:16: science_freaks: Из чего делают самый дорогой кофе?
- но за такую цену у меня сразу начинается амфибиотропная асфиксия
- 25 Август, 18:18:35: Найдите 04-05 Subaru Impreza Black Halo Projector Headlights на веб-сайте Международного торгового центра eBay, где есть предложения со всего мира по товарам во всех ваших любимых категориях. Все товары могут быть отправлены в вашу страну.
- 25 Август, 02:15:23: молекулярная биология (стр. 2) : биология : книги : электронная библиотека
- 25 Август, 01:41:44: Radio control page, RC planes boats cars whatever
- 25 Август, 01:33:43: Парапланерная школа «Free Fly Team», полеты на параплане: Содержание / Категория / Аэробатика
- 25 Август, 01:33:26: РАДИОПИЛОТ — Регуляторы б/к, моторы (Hi-Model, Turnigy), Li-Po батареи, сервы, приемники CORONA, Spectrum, 2.4ГГц, Art-Tech, GWS, E-Sky, Calmato,Cessna,Align,GAUI — Запчасти — enn
- 25 Август, 00:32:42: Kartboy dot com :: Subaru WRX :: 2002—2007 WRX :: Kartboy Solid Front & Rear Endlinks RS/WRX 1997—2007 (WRX Sedan)
- 24 Август, 18:59:10: ASUS UL30Vt (Core 2 Duo SU7300 1300 Mhz/13.3"/1366x768/4096Mb/500Gb/DVD нет/Wi-Fi/Bluetooth/Win 7 HP) — Ноутбуки — Яндекс. Маркет
- 19 Август, 09:24:39: ИВЦ ОАСУ РПО / Отслеживание РПО
- 11 Август, 23:58:17: STi-Club — Просмотр темы — Стойки K-sport
- http://www.sti-club.su/forum/viewtopic.php?t=11832&postdays=0&postorder=asc&highlight=%E6%E5%F1%F2%EA%EE%F1%F2%FC+%EF%F0%F3%E6%E8%ED&start=0 тут приведены значения различных вариантов пружин на СТИ в Фунтах на Дюйм.. 1 kgf/mm = ~56 lb/in. Значит жесткость стандарных пружин 3,4/3,0.
- Pinks by Arai 343/286 rates. 15/15mm lowering.
- Tanabe GF210 324/246 rates. 33/25 lowering.
- RCE Yellows 295/275 rates. 24/20mm lowering.
- RCE Blacks 285/269 rates. 15/10mm lowering.
- Swift R-Spec 280/252 rates 25/25mm lowering.
- JDM Pinks 257/217 rates. 20/20mm lowering.
- Tein S Tech 240/207 rates. 40/23 lowering.
- Tein H Tech 229/196 rates. 25/10 lowering.
- stock STI 188/173 rates. 0/0mm lowering.
- 11 Август, 18:26:45: Амортизаторы Ohlins | запчасти и тюнинг в петербурге
- 10 Август, 14:53:43: UFRaw — Color Management
- 06 Август, 01:36:26: GEO Accession viewer
- 06 Август, 01:35:52: Enigma (компьютерная игра) — Википедия
- 06 Август, 01:33:29: Продам Multiplex Xeno — RC Форум
- 06 Август, 01:32:43: Working MSM7201 usb host driver v2 — Android Linux Kernel Development | Google Groups
- 06 Август, 01:30:33: ГУ НИИ общей патологии и патофизиологии :: (495)151-17-56
- 05 Август, 19:02:19: Transparent Proxy with Linux and Squid mini-HOWTO
- 05 Август, 18:47:45: ppp over adb (for linux/unix users) — xda-developers
- 04 Август, 14:05:21: IMPREZA GDB/GDA(WRX) 1038 — Gravel Rally — Xyz-racing.ru
- 03 Август, 20:58:20: LauncherPro — 4PDA
- 02 Август, 14:48:15: Сухие пищевые концентраты ‹ Продукция ‹ ОАО «Криница» — лидер пивоваренного производства Республики Беларусь
Июль 2010
- 29 Июль, 13:17:16: YouTube — Lego Hello World
- 27 Июль, 01:49:02: Portable версии основных браузеров | Артем Леженко: Блог web-разработчика
- 26 Июль, 16:50:33: ОГЛАВЛЕНИЕ
- 23 Июль, 15:50:04: Сидела девочка на трубе и мечтала у…
-
Девочка-эмо сидит на трубе,
Мечтает о смерти, скорбит о судьбе.
И тут труба взрывается.
Газпром-мечты сбываются!
-
- 18 Июль, 23:34:43: спецификация_платформы_а1агрегатор (Вики-энциклопедия)
- 15 Июль, 15:53:13: Software Quality Reports for Jira/Bugz | Download Software Quality Reports for Jira/Bugz software for free at SourceForge.net
- 13 Июль, 01:57:40: 10 HTML5 Video Players | Templates.com
- 13 Июль, 01:15:23: Карты для Мобильных Яндекс карт 3.x, онлайн коллекция — Карты для Мобильных Яндекс Карт (кэш) — Yandex Mobile Maps cache collector
- 10 Июль, 23:13:27: ПРОЧИЙ 57731FE330PG OE Subaru Impreza 03/'04-05/'05 Крышка противотуманной фары левая — Самый полный каталог товаров для автоспорта и тюнинга в рунете
- 08 Июль, 18:00:48: Modding the Acer Aspire One — HSDPA " tnkgrl Mobile
- 08 Июль, 01:16:59: (all variants) vlc & wmapro audio, w32codecs (Archive) — Ubuntu Forums
- 06 Июль, 21:06:16: Весь экстрим. Апрель 2010
- 06 Июль, 00:33:59: Неофициальный форум DZ «Пущино»
- 04 Июль, 14:30:00: List of User-Agents (Spiders, Robots, Browser)
- 03 Июль, 03:02:11: YouTube — запутался парашют (Парашют не раскрылся)
Июнь 2010
- 24 Июнь, 20:20:18: (ROM) Xian v1c (LiquidF) — Android @ MoDaCo
- 10 Июнь, 02:27:32: Спортакадемия — купить велосипед, скутер, квадроцикл в интернет магазине велосипедов Москва. Выбор велосипедов Москва.
- 10 Июнь, 01:24:26: Азы 3D-пилотажа
- 06 Июнь, 00:36:12: Описание фигур акро | Paraplan.tv
- 04 Июнь, 03:08:18: Бесколлекторные моторы и аксесуары FORET — Двигатели — -
- 04 Июнь, 03:06:27: www.flyingmodels.org
- 04 Июнь, 02:17:59: Подвеска ChairBag Integral для парапланов APCO Aviation
- 04 Июнь, 01:57:38: YouTube — отморозок
- 04 Июнь, 01:53:46: APCO AVIATION: setting future standards
- 03 Июнь, 14:45:13: Building ZFS — zfs — GitHub
- 03 Июнь, 14:34:08: Как я оживлял радиоприемник магнитолы RX-ES20 / DIY или Сделай Сам / Хабрахабр
- 03 Июнь, 14:33:25: Ivacy VPN service, secure VPN, buy VPN, Bypass proxy
Май 2010
- 28 Май, 18:19:32: Фото #3 — CDRR — hamsy на Gallery.ru
- 27 Май, 22:54:42: Things That Are Doing It — Inanimate Hawtness
- 26 Май, 20:56:29: Programming the Wouxun KG-UVD1 from your computer
- 25 Май, 16:13:08: Category:Page specific user rights extensions — MediaWiki
- 25 Май, 16:07:35: Christmas present to users: PCTV 340e Support! — KernelLabs.com
- 25 Май, 16:07:11: Pinnacle-pctv-hybrid-pro-stick-340e
- 25 Май, 15:00:46: TipsAndTricks — Mercurial
-
15. Using RCS merge as the filemerge program
The merge program supplied with RCS gives more complete conflict markers than the default install if you give it the -A option. For your .hgrc:
[merge-tools] filemerge.executable = /usr/bin/merge filemerge.args = -A $local $base $other
See also MergingManuallyInEditor.
-
- 24 Май, 13:58:22: Тюнер Pinnacle «PCTV Hybrid Pro Stick 340E» (USB2.0)
- 21 Май, 02:39:40: About Me — MayaPosch.com
- 21 Май, 01:38:40: Самолеты Самолеты электро Наборы для сборки (ARF) Sonic 185 KIT
- 21 Май, 01:36:45: Плата видеозахвата Easy CAP USB 2.0
- 21 Май, 01:24:18: Em28xx devices — LinuxTVWiki
- 19 Май, 22:35:25: Флатландия — Википедия
- 19 Май, 20:30:57: Беспроводная камера, шпионская скрытая видеокамера, юсб видеокамера, радио камера слежения, беспроводное видеонаблюдение, видеорегистратор, usb камера
- 18 Май, 22:20:51: Модульные камеры видеонаблюдения 600 ТВЛ
- 18 Май, 22:20:34: AndroidSPIN Release Database
- 18 Май, 20:27:46: Drag and drop
- 18 Май, 01:37:02: StartCopy — Прошивка чипа картриджа Samsung SCX-4200 с комментариями
- 18 Май, 00:48:38: StartCopy — Заправка картриджа Xerox 3450, Xerox WC M20i, Samsung ML-2150 — легче легкого…
- 16 Май, 19:43:21: Сбор грудной — 1, 2, 3, 4 — Сбор грудной. АМТ: мини-справочник лекарств и БАД (описание, инструкция); интернет-заказ в аптеках Москвы
- 13 Май, 15:08:24: Погода — Истра
- 10 Май, 03:15:31: RC Форум — RC Орлоплан
- 09 Май, 03:58:48: Faq Новичкам И Не Только… — Моделка
- 07 Май, 23:20:20: Очки тактические
- 04 Май, 13:49:28: ООО Агентство Гарантий/ Agency Guarantee LLC > Tarifi vvod
- ООО «Гипер Пэй» / В терминалах / мгновенно / 1 % комиссия WebMoney / 2 % комиссия агента
- 01 Май, 23:42:56: Двигатель для велосипеда
Апрель 2010
- 27 Апрель, 01:41:05: Paraplan.Ru :: Тема — Реальный двигатель для парамотора
- 27 Апрель, 01:31:57: Engines and propellers (xhtml w3c 12/09)
- 26 Апрель, 00:54:33: FMA Direct — High Quality Equipment for the R/C Enthusiast
- 06 Апрель, 22:40:57: FFmpeg on Windows
- 06 Апрель, 22:38:40: Dalvik VM Internals (2008 Google I/O Session Videos and Slides)
- 05 Апрель, 19:32:08: Nova International (Products :: Oryx)
- 04 Апрель, 01:48:23: Радиоуправляемые модели: автомодели, авиамодели — Интернет магазин Планета Хобби :: Радиоуправляемый планер EASY GLIDER PRO (KIT — набор без электроники)
- 04 Апрель, 01:48:18: Pilotage-RC.ru / Авиамодель крыло «Pilotage Fighter», Тип 3
- 02 Апрель, 15:27:03: YouTube — RC Helicopter FISHING! Dave tries hand at «Heli Fishing»
- 02 Апрель, 00:55:10: paraplan.ru: Skywalk TEQUILA: мексиканская самогонка
- Купол изготовлен из ткани Скайтекс, и довольно легок, несмотря на сложную конструкцию. На ухе напечатано пространное напоминание о опасности парапланерного спорта, о турбулентности, кажущихся такими жосткими, воздухов, о мягкости парапланерного крыла и его потенциальной складучести, о аэробатике и о том какая это бяка, о бренности всего ссущего и неизъяснимой легкости бытия. Там реально много всего написано, я аж замерз, читаючи. В целом, впечатления от качества изготовления и комплектования хорошие. Мешок не жлобский, как это принято у некоторых отечественных производителей, а большой, с логотипом. Чехольчик под концы имеет место присутствовать.
- 02 Апрель, 00:02:52: Debugging the de Bruijn Sequence
- 01 Апрель, 00:41:01: Windsurfer Wifi Booster — Poor Man’s Wifi | LJDiaz.com Louis James Diaz Blog
Март 2010
- 30 Март, 16:30:11: YouTube — Flying School Bus that Transforms MUST SEE! (see sidebar) crashes
- 26 Март, 23:26:50: STE — Home
- 23 Март, 22:06:07: Комплектующие авиамоделей: Пропеллеры для электомоделей
- 23 Март, 21:46:31: Резистивные // Сенсорные экраны // Каталог товаров // Сенсорные экраны, pos терминалы, multi touch — «ТачБаза»
- 23 Март, 16:05:31: Флексайтс: создание сайтов в Челябинске, разработка сайтов, поисковое продвижение сайтов, оптимизация и раскрутка сайтов, сопровождение, веб-аутсорсинг. Изготовление сайтов Челябинск, Екатеринбург, Москва
- Трудно и дорого пробиться по фразе «сталь оптом»? Оптимизируйте сайт под запросы «20Х23Н18», «07Х16Н6» и т. д. Возможно, это приведёт гораздо больше клиентов.
- 19 Март, 00:10:22: Самолеты Планера 214233 Kit Blizzard
- 18 Март, 23:47:47: Multiplex Blizzard — EFlightWiki
- 18 Март, 01:57:59: Прошивки by Cotulla — 4PDA
- 16 Март, 22:04:44: modified-android-mms — Project Hosting on Google Code
- 16 Март, 01:27:52: Видео@Mail.Ru: STORM*TrupaK : Разное : Пайка разъемов Deans Ultra Plug
- 14 Март, 01:58:19: ru_explosm: (Мультфильм) Человек, который мог сидеть где угодно
- 13 Март, 22:28:05: Harmony — Procedural drawing tool
- 12 Март, 01:25:13: Фигуры
- SAT — cпиральное вращение системы*, характеризующееся вертикальным расположением оси вращения, проходящей через точку между пилотом и крылом параплана . Визуальный угол крена имеет величины от 90 до 120 градусов. Обтекание крыла происходит под углом скольжения 30-50 градусов. Управляемая консоль располагается выше неуправляемой в отличие от прямой спирали. Вращение пилота происходит спиной вперед. Скорость снижения при устойчивом исполнении не превышает, по нашим оценкам, 5 м/с.
- 09 Март, 02:19:13: Paramoto Team Moscow | Термики еще надо поискать, а бензин есть на любой заправке
- 08 Март, 19:40:22: GoJabber.org
- 08 Март, 01:54:00: 11/Jan 3.1 — MoDaCo Custom ROM for GSM Hero (now with online kitchen) — Android @ MoDaCo
- 08 Март, 01:53:37: disco custom kernel (v.b01) — Android @ MoDaCo
- 08 Март, 01:41:25: Download languages for your SlideIT keyboard
- 05 Март, 19:51:32: Mark As Read with maildrop — sigil.org
- 05 Март, 02:10:15: Differential Expression with the Bioconductor Project
- 05 Март, 02:09:16: Bioconductor 2.5 Software Packages
- 05 Март, 01:07:43: Шайба Subaru | Цена | Купить
- 04 Март, 01:58:20: IzKontakta for Greasemonkey
- 04 Март, 01:41:12: Бортовой компьютер автомобиля, парковочные системы от лучших фирм
- 03 Март, 02:56:06: Бесплатный файловый менеджер для CKEditor, TinyMCE
- 02 Март, 15:50:21: HOW TO COMPILE TO TARGET OLEG — AsusForum.NET — WL500g
- 02 Март, 13:17:27: Вечная юность — ПРАВДИВАЯ ИСТОРИЯ
- 01 Март, 17:55:49: (HACK) JIT enabled Dalvik VM on Android 1.6 (Dusted Donuts) (Hack) — xda-developers
- 01 Март, 15:14:48: Acer Liquid — Прошивка — 4PDA
- '''Модифицированные ROMs:'''
- [IMG] Maxisma Modded 2.000.16_EMEA_GEN1: http://android.modaco.com/content/acer-liq...0-16-emea-gen1/
- [IMG] benhaam Liquidized 2.000.5_AAP_GEN2: http://htcpedia.com/forum/showthread.php?t=1946
- '''Модифицированные ROMs:'''
Февраль 2010
- 28 Февраль, 19:22:13: android-roms — Project Hosting on Google Code
- 28 Февраль, 19:21:49: acer-liquid-community-rom-bugtracker — Project Hosting on Google Code
- 26 Февраль, 22:44:30: Введение в разработку для платформы Android
- 26 Февраль, 00:04:18: Acer S100 (Liquid A1) RUS white ― HTCSTORE
- 25 Февраль, 16:48:05: Юзабилити веблогов: 10 самых грубых ошибок — Частные вопросы веб-дизайна — Webmascon
- 25 Февраль, 15:43:10: HTC Hero — Прошивка (OS 1.x) — 4PDA
- 24 Февраль, 16:37:44: dhtmlxgrid:api_toc_alpha []
- 19 Февраль, 21:23:29: i-Motorsport • Просмотр темы — Схема проезда (грунтово-песчаная трасса «Кузнечики») Наиболее удобная схема подъезда к трассе:
( Яндекс Карты: http://maps.yandex.ru/?rt=37.596476%2C5 ... =sat%2Cskl ) - 19 Февраль, 21:18:21: i-Motorsport • Просмотр темы — Точное демпфирование
- 19 Февраль, 21:16:31: ралли-спринт FFERally, трасса лед 1,5 км, 22.02.2010
- 19 Февраль, 21:16:27: RenaUltra.ru • Просмотр темы — Трасса «Цернское» — 21 февраля 2010
- 17 Февраль, 22:25:11: dhtmlxGrid — Ajax-enabled DHTML grid with rich Javascript API
- 16 Февраль, 15:46:04: 130 параметров алгоритма ранжирования сайтов от Google
- 14 Февраль, 23:21:14: Научная Сеть >> Л. П. Овчинников. Что и как закодировано в мРНК
- 13 Февраль, 03:37:32: xmlhttprequest — Project Hosting on Google Code
- 12 Февраль, 16:50:24: Веб-альбомы Picasa — Mostack — Sprint Cernskoe3
- 10 Февраль, 17:53:13: неважно
- 09 Февраль, 16:32:13: Вольтмастер, L-34SF4C, ИК диод d=3 мм 880нм 20мВт
- 09 Февраль, 16:31:47: Вольтмастер, SEP8507-001, диод 935нм 0.4мВт/см2
- 09 Февраль, 16:31:15: Вольтмастер, излучающие диоды ИК и УФ диапазона
- 09 Февраль, 16:29:34: Металлогалогенные светильники в наличии — иллюстрированный каталог.
- 08 Февраль, 22:19:43: User:BR/use S5 slide system in the mediawiki/en — Meta
- 08 Февраль, 21:29:38: HMMER: biosequence analysis using profile hidden Markov models
- 08 Февраль, 21:14:04: FASTA format — Wikipedia, the free encyclopedia
- 08 Февраль, 21:11:16: UniProt
- 08 Февраль, 21:05:01: Protein design — Wikipedia, the free encyclopedia
- 08 Февраль, 20:59:07: Translation (genetics) — Wikipedia, the free encyclopedia
- 08 Февраль, 20:56:34: High content of proteins containing 21st and 22nd amino acids, selenocysteine and pyrrolysine, in a symbiotic deltaproteobacterium of gutless worm Olavius algarvensis — Zhang and Gladyshev 35 (15): 4952 — Nucleic Acids Research
- 08 Февраль, 03:44:43: 300 Images From 1800 Sites
- 08 Февраль, 03:42:49: Сайт посвященный WEB дизайну
- 08 Февраль, 02:02:31: истории основные :: 2003, Январь .. 2010, Февраль
- 07 Февраль, 20:19:54: www.pravkafoto.ru Калибруем монитор собственными силами — освещение в комнате.
- 06 Февраль, 14:27:51: Библиотека: А. П. Чехов, «Вишневый сад» (Russian)
- 06 Февраль, 02:58:48: http://www.drivingart.ru/
- 06 Февраль, 02:58:24: Клуб Fast Street Team
- 04 Февраль, 03:53:05: Re: Crossmeta: XFS for Windows Link request
- 04 Февраль, 03:27:40: superswitcher — Project Hosting on Google Code
- 02 Февраль, 22:28:53: TEAM 5
- 02 Февраль, 19:29:01: YouTube — тормози, хуй попадешь
- 02 Февраль, 18:32:57: Downloads — jessyink — Project Hosting on Google Code
Январь 2010
- 28 Январь, 15:43:49: Клубное ралли в России — Новости
- 27 Январь, 19:36:49: Johnny Chung Lee — Projects — Wii
- 26 Январь, 21:30:38: Английский язык — Грамматика — Глагол — Условные предложения
- 26 Январь, 01:26:13: AVmodels.ru | Это интересно
- 25 Январь, 22:08:04: Как Анжеле порвали сикель | NetLore Анжела, Макрофлекс, дискуссия, секс, сикель, смех, форум
- 25 Январь, 01:32:28: НИКС: FAQ Технологии TN film, IPS и MVA
- 25 Январь, 01:04:10: Страничка Хобби-Клуба Вольный Ветер
- 25 Январь, 01:04:01: RC Форум — Cherkashin’s Blog
- 25 Январь, 01:02:09: Turbo XS — Software updates
- 25 Январь, 01:02:03: On the 'Wing…
- 25 Январь, 01:01:49: Teaching English in Russia | BKC-International House | ESL / EFL Jobs in Russia, in Moscow: ESL, EFL, TEFL Jobs. Teaching positions in Russia.
- 25 Январь, 00:01:54: Apache2::FileManager — search.cpan.org
- 22 Январь, 20:33:13: Parkflyer.Ru Радиоуправляемые модели
- 22 Январь, 16:12:24: YouTube — 大きな箱とねこ。
- 22 Январь, 03:45:33: My first Perl6 regexp grammar in Perl5 — jozef.kutej.net (use Regexp::Grammars)
- 19 Январь, 14:13:43: Linux Advanced Routing
- 18 Январь, 22:19:42: Поллитровая мышь | 12 oz mouse. Мультфильм для взрослых — все серии и картинки, саундтрек, аватары, скачать. Усавичи.
- 18 Январь, 22:10:22: Downloads — lsyncd — Project Hosting on Google Code
- 18 Январь, 22:10:18: bb.xnull.de " projects " inosync
- 12 Январь, 20:57:11: http://www.sportaviationonline.org/sportaviation/201001
- 11 Январь, 18:49:23: Spider for MySQL in Launchpad
- 11 Январь, 16:00:35: YouTube — Кин-дза-дза(музыка)
- 09 Январь, 23:16:59: Electric UAV with thermal sensor package
-
''''
-
- 09 Январь, 17:52:28: Esprit Model 321.729.4287
- 08 Январь, 01:51:27: YouTube — Disney Boys Rifle Training (Part 1)
- 08 Январь, 01:51:20: Гранатомет Панцерфауст 60 / Panzerfaust 60 — 22 Августа 2008 — Только бумага — Бумажные модели, модели из бумаги, поделки из бумаги, оригами, модели из картона, картонные модели, paper models, paper modelism
- 03 Январь, 17:22:25: http://subarushop.net/
2009
Декабрь 2009
- 30 Декабрь, 03:46:22: Speed 400 Motor Analysis Part 1 — RC Groups
- 30 Декабрь, 03:43:00: Flying Wings — RC Groups
- 28 Декабрь, 16:18:32: art2003 Microchip PIC programmer for pic18f2550
- 28 Декабрь, 16:02:01: Изготовление печатных плат. — Наши статьи — Каталог статей — Сайт моделистов Великого Новгорода
- 28 Декабрь, 16:00:27: Интерфейсный шнур пульта управления для FMS. — Наши статьи — Каталог статей — Сайт моделистов Великого Новгорода
- 28 Декабрь, 01:39:56: FPV Products
- 28 Декабрь, 01:31:27: Digital Products Company
- 27 Декабрь, 16:57:05: Радиоуправляемые Модели | Авиамодели | Планера | Авиамоделизм | ALEXWEST
- 27 Декабрь, 00:52:39: SPA3D Modifications
- 27 Декабрь, 00:51:13: Воздушный бой на радиоуправляемых моделях самолетов
- 26 Декабрь, 20:04:56: Легкосплавные литые колесные диски Lenso | LensoRus — Высококачественные легкоcплавные колесные диски Lenso для легковых автомобилей, кроссоверов и SUV
- 22 Декабрь, 20:56:44: Reinventing the Wheel: Understanding and improving the fast inverse square root hack
-
float InvSqrt (float x)
{
float xhalf = 0.5f*x;
int i = *(int*)&x;
i = 0x5f3759df - (i>>1);
x = *(float*)&i;
return x*(1.5f - xhalf*x*x);
}
-
- 22 Декабрь, 14:41:04: Таблица времен английского языка : Biblioverde-портал иностранных языков
- 21 Декабрь, 15:13:44: C Application Server (cas.havoc.ru)
- 21 Декабрь, 02:28:05: STUNPIX " Тайны PHP оптимизатора XCache
- 21 Декабрь, 01:42:53: Каток «Новая Лига: В Олимпийской деревне» — Катки Новая Лига
- 21 Декабрь, 01:42:25: Что читать?
- 21 Декабрь, 01:11:51: RVOSD
- 21 Декабрь, 01:11:41: Return to home night flight. FPV on Vimeo
- 21 Декабрь, 01:10:17: redis — Project Hosting on Google Code
- 20 Декабрь, 15:38:00: Индикатор состояния бортового питания
- [Dev] 14 Декабрь, 01:32:54: Lightbox JS
- 13 Декабрь, 22:28:46: Картинг: картинг-центр Серебряный дождь | Картинг клуб на Варшавке (Москва) | Корпоративный отдых | Контакты
- [Парапланы] 13 Декабрь, 22:28:23: Tips for Paraglider Pilots
- 13 Декабрь, 22:27:44: Участник:Wera/Песочница — Википедия
- [Юмор] 11 Декабрь, 22:16:18: ru_auto: Вау фак — супер игра
- [Dev] 11 Декабрь, 01:17:10: CharacterEntities — doctype — List of HTML character entities — Project Hosting on Google Code
- [Авто] 08 Декабрь, 21:37:39: Любительские ралли в Москве
- [Парапланы] 07 Декабрь, 17:41:35: para-test.com — Home
- [Парапланы] 07 Декабрь, 17:40:45: DHV Testbericht LTF 2003 :: TEAM 5 Blue Mountain M
- [Dev] 07 Декабрь, 17:40:11: rtmplite — Project Hosting on Google Code (Python Flash RTMP server)
- [Dev] 07 Декабрь, 17:37:05: Debian | OurDelta
- [Dev] 07 Декабрь, 17:36:56: OQGRAPH Engine for MySQL, MariaDB and Drizzle | Exceptional Services for MySQL at a Fixed Budget.
- [Adm] 06 Декабрь, 21:43:22: SpeedFan — Access temperature sensor in your computer
- [Adm] 06 Декабрь, 21:25:11: hdrecover
- [Adm] 06 Декабрь, 04:15:26: Forensics Wiki
- [Adm] 06 Декабрь, 04:15:06: Ddrescue — GNU Project — Free Software Foundation (FSF)
- [Adm] 06 Декабрь, 04:14:57: Foremost
- [Adm] 05 Декабрь, 04:00:51: HOWTO по восстановлению удаленных файлов в файловой системе ext3 с помощью программы ext3grep.
- [SUBARU] 05 Декабрь, 04:00:31: The SPDA — Transmission Chart
- 04 Декабрь, 01:17:24: Как правильно чистить зубы
- 04 Декабрь, 01:14:55: В эфире — Танец Злобного Гения — Король и Шут — MOSKVA.FM
- [Юмор] 03 Декабрь, 23:30:51: Добро пожаловать, но только не говорите потом, что я вас не предупредила — праанжелику
- [SUBARU] 03 Декабрь, 23:30:24: DCCDPro.com
- [SUBARU] 03 Декабрь, 23:30:14: STI — SPORT PARTS INDEX — Muffler Sound Navigator
- [SUBARU] 03 Декабрь, 23:29:58: DCCDPro.com
- [Dev] 03 Декабрь, 23:28:21: InfPro IT Solutions GmbH — Word2MediaWiki
- [Dev] 03 Декабрь, 23:28:16: Help:WordToWiki — Wikipedia, the free encyclopedia
- [Dev] 03 Декабрь, 23:25:30: Ext2 IFS For Windows
- [Dev] 03 Декабрь, 17:31:31: S5: An Introduction
- [Авто] 03 Декабрь, 17:11:34: «Мальтийский крест»
- [SUBARU] 03 Декабрь, 16:45:40: North American Subaru Impreza Owners Club
- [Авто] 03 Декабрь, 15:51:17: EULEX :: Новая книга Павла Eulex`a «ИСТОРИЯ ОДНОЙ АВАНТЮРЫ»
- [Парапланы] 03 Декабрь, 15:50:45: Погода — Москва (Запад)
- [Парапланы] 03 Декабрь, 15:44:40: Погода — Кашира
- [Парапланы] 03 Декабрь, 02:11:50: Paraplan.Ru :: Тема — Вектор: Четверг, 10 Декабря, 20:00 — Индийский и Турецкий сборы: смесь
- 03 Декабрь, 02:09:46: RBR Russia — Файлы
- 03 Декабрь, 02:04:51: В эфире — Выходные — Brainstorm — MOSKVA.FM
Октябрь 2009
- 19 Октябрь, 19:05:03: MAXimal :: algo :: Алгоритм Ахо-Корасик
Сентябрь 2009
- [SUBARU] 11 Сентябрь, 01:51:48: Clutch & Flywheel Swap
Август 2009
- [Dev] 26 Август, 22:05:34: Mozilla BIG BUG — Bug 28586 — meta bug — show error pages instead of dialogs for network errors (placeholder page in the content area) (http error pages)
- [Dev] 24 Август, 16:36:48: Squid Stat 1.10
- [SUBARU] 22 Август, 01:38:22: Ken’s Subaru Impreza WRX | ken-gilbert.com
- [Photo] 22 Август, 01:11:53: Gexxxdesign.ru — Виньетируем с умом.
- [SUBARU] 22 Август, 00:17:38: Диски, резина — Форум клуба Subaru Legacy и Outback
- [SUBARU] 21 Август, 23:53:22: Engine Swap FAQ (Archive) — NASIOC
- [SUBARU] 21 Август, 23:53:12: Cobb Tuning Adj. Stage 2 Suspension: Subaru WRX 2004-07
- [SUBARU] 21 Август, 23:52:27: Wrinkleboi’s Bugeye STi. No, Srsly … Top Scoob 006 — NASIOC
- [Dev] 21 Август, 15:07:11: Ext 2.2.1 — API Documentation
- [Dev] 17 Август, 15:37:19: Ext 3.0 — API Documentation
- 17 Август, 14:27:53: Как проехать в Крым на автомобиле. Автотуризм.
- [Авто] 13 Август, 01:58:32: AK Rally Team -> RALLY -> Ростов Великий 2009
- [Электроника] 06 Август, 23:38:36: Экономичный светильник на мощных светодиодных лампах для радиолюбительского рабочего места
- [Электроника] 06 Август, 23:38:25: Мощные светодиоды — High power lighting corp.
- [SUBARU] 06 Август, 23:30:50: Subaru Turbo List — NASIOC
Июль 2009
- [SUBARU] 28 Июль, 01:30:22: SubaruGenuineParts.com || Where Genuine is Better!
- [SUBARU] 26 Июль, 03:15:49: Главная — Запчасти, разборка и тюнинг SUBARU (Москва)
- [Dev] 13 Июль, 21:08:56: Mozilla 1.9.2a1pre Interfaces
- [Авто] 12 Июль, 23:04:54: Manual Boost Controller. | Библиотека автомобилиста на сайте gt-bratsk.ru
- [Авто] 12 Июль, 23:04:28: Manual Boost Controller. | Библиотека автомобилиста на сайте gt-bratsk.ru
- [Dev] 10 Июль, 14:12:08: Modular Web Applications with SpringSource Slices | SpringSource Team Blog
- [SUBARU] 09 Июль, 13:26:09: STIparts — запчасти для тюнинга Subaru Impreza
- [SUBARU] 08 Июль, 00:55:24: Овощеводу на заметку: строим мультируль
- [Парапланы] 07 Июль, 22:14:08: Paraplan.Ru :: Тема — СИВ-курс от Бобра в Самаре. Жесткий, неприкрытый пиар.
- [Авто] 04 Июль, 02:29:12: Ford Focus тюнинг — FFRacing Forum
- [SUBARU] 03 Июль, 23:48:11: Оптитрон — хотел, взял и сделал. + схемки
- [SUBARU] 03 Июль, 23:47:57: STi-Club.com — ЮСТ Сервис
- [Dev] 01 Июль, 00:47:02: Agile Contracts (10 Contracts for your next Agile Software Project | Agile Software Development)
Июнь 2009
- [SUBARU] 30 Июнь, 01:45:50: STi-Club.com — Просмотр темы — Коробка передач WRX, усиление, вопросы и ответы ФОТО
- [SUBARU] 28 Июнь, 23:54:11: Impreza Manuals | ken-gilbert.com
- 28 Июнь, 15:41:02: Картинг — Солярис
- 25 Июнь, 15:06:35: Трасса картинг-клуба 'Солярис'
- [Парапланы] 25 Июнь, 01:14:20: Классификация парапланов — ACPUL, AFNOR (АФНОР), DHV (ДХВ), CEN (СЕН), LTF (ЛТФ)
- 19 Июнь, 16:35:47: masha kushnir | photographer
- [Авто] 19 Июнь, 02:30:15: Make Your Car Invisible To Police Speed Cameras With Our License Plate Cover, PhotoBlocker Spray
- [SUBARU] 18 Июнь, 23:32:10: Subaru IMPREZA — Subaru parts catalog
- [Dev] 08 Июнь, 19:37:28: Hypertext Style: Cool URIs don’t change.
- [SUBARU] 03 Июнь, 01:08:36: SUBARUPARTS — запчасти и аксессуары SUBARU (Субару)
- [SUBARU] 02 Июнь, 02:09:35: Subashop — Запчасти на Subaru Impreza, Legacy, Forester, тюнинг subaru
Май 2009
- [SUBARU] 29 Май, 02:37:07: Автозапчасти Subaru (Субару) расходные материалы, запасные части, детали, агрегаты и узлы для автомобилей subaru
- [SUBARU] 29 Май, 02:25:47: STi-Club.com — Тюнинг бюро «TURBO DRIVE»
- [SUBARU] 29 Май, 00:32:18: ТЦ «Плеяда» Ремонт и сервис Субару Subaru Запчасти Субару Subaru Тюнинг Субару Subaru
- [SUBARU] 29 Май, 00:32:05: Ремонт и сервис Субару — автосервис SUBARU-PROSPORT
- [SUBARU] 29 Май, 00:31:47: Контакты : Клуб Subaru
- [SUBARU] 28 Май, 18:33:32: Mitchell, EPC, FAST, JDM, EPS, Autodata — Honda, Suzuki, Subaru, Nissan, Rover, Mazda, VW
- [Dev] 27 Май, 15:34:00: beskov: Кто во что горазд
- [SUBARU] 16 Май, 17:20:55: Руководства: Subaru — Форум NoWa.cc
- [Dev] 15 Май, 15:57:23: Camel components
- 12 Май, 14:56:38: Белые Облака. Магазин и Культурный Центр — Контакты
- [Dev] 05 Май, 16:22:22: Raleigh.ru — XSLT в примерах
Апрель 2009
- 19 Апрель, 17:49:17: Обслуживание велосипедной цепи
- 19 Апрель, 17:49:13: Снятие переднего переключателя
- 16 Апрель, 16:57:37: Отгадай поговорку
- [Dev] 16 Апрель, 16:57:26: Xapian: BM25 Weighting Scheme
Март 2009
- 26 Март, 00:30:51: Animated Lust (Rated PG!) — Foxglove Bat
- 17 Март, 00:23:34: Directory of open access journals
- [Dev] 11 Март, 17:04:19: PHP HTTP Multiplexing
- [Dev] 05 Март, 14:46:48: gss — Google Code
- [Maxima] 02 Март, 00:40:50: SupraStick V4
- 01 Март, 23:46:07: F A Q по разделу магазинов — RC Форум
- [Авто] 01 Март, 21:38:33: Ходынка
Февраль 2009
- [Maxima] 27 Февраль, 20:00:25: Дифференциалы повышенного трения Nissan
- [Dev] 26 Февраль, 17:42:54: perl
- [Maxima] 25 Февраль, 22:29:53: КВАРТЕТ-И | Наше радио
- [Maxima] 25 Февраль, 02:57:25: eBay Store — D1 Zone: Gauges Installation Instruction
- 16 Февраль, 16:02:24: Глеб — Впечатления
- 13 Февраль, 13:23:05: Анатомия колена | Строение колена | Коленный сустав | Спортивная медицина
- [Dev] 11 Февраль, 16:10:11: Сообщение о черве Win32/Conficker.B
- 09 Февраль, 01:23:23: Каток юных пионеров
- 05 Февраль, 14:10:33: «Библиотека Ихтика» [ihtik.lib.ru (Россия, г. Уфа)]
- [Dev] 04 Февраль, 16:01:19: Bug 446598 — provide useful change information in an rss/atom feed of recent changes
- [Dev] 03 Февраль, 18:11:30: mural: Downloads
- [Dev] 03 Февраль, 18:11:18: http://landfill.mozilla.org/testopia2/testopia/doc/Manual.xhtml
- 03 Февраль, 15:51:18: Алгоритм извлечения квадратного корня столбиком. — Guidoscope
Январь 2009
- 30 Январь, 00:59:57: radeonhd download
- [Dev] 29 Январь, 18:51:21: Elser, about passwords. Apr/16/97
- [Dev] 27 Январь, 17:55:50: CodeProject: A Utility for BugZilla Users to Import Bugs from Excel File. Free source code and programming help
- [MAXIMA] 26 Январь, 19:03:09: Car Body Parts — Product Details — 1995—1996 Nissan Maxima Fog Light
- [Keyboard Bug] 20 Январь, 02:19:03: Bug 9147 — atkbd.c: Unknown key released when 'ac' and/or 'battery' and/or 'thermal' modules are loaded
- [Keyboard Bug] 20 Январь, 01:59:47: http://gaugusch.at/kernel.shtml
- [Keyboard Bug] 20 Январь, 01:59:41: Gentoo Forums :: Просмотр темы — HOWTO: Fix Common ACPI Problems (DSDT, ECDT, etc.)
- [Keyboard Bug] 18 Январь, 22:27:04: dell linux key repeat — Поиск в Google
- [Keyboard Bug] 18 Январь, 22:27:01: Bug #39315 in linux-source-2.6.15 (Ubuntu): «Keyboard random repeat and dropped key presses»
- [Keyboard Bug] 18 Январь, 22:26:57: Bug #44154 in linux-source-2.6.15 (Ubuntu): «Dell Laptop Keyboards never generate key-up event»
- [Keyboard Bug] 18 Январь, 22:26:51: Bug #44154 in linux-source-2.6.20 (Ubuntu): «Dell Laptop Keyboards never generate key-up event»
- [Keyboard Bug] 18 Январь, 22:26:43: HOWTO: Double Clock Speed Problem — Ubuntu Forums
- [Keyboard Bug] 18 Январь, 22:26:34: Bug #37472 in linux-source-2.6.15 (Ubuntu): «the keyboard don’t work perfectly on laptops acer travelmate 2300 series with Dapper»
- 03 Январь, 03:02:45: Существующие аэротенки | Канализация на даче и в коттедже — это просто!
- 02 Январь, 02:22:57: Псевдографика. Коллекция ASCII-art’а.
- 02 Январь, 01:53:48: Гаечка — Lurkmore
- 02 Январь, 01:40:18: Личный блог Д. А. Кузьмичёва " Гайкохулство гоу.
2008
Декабрь 2008
- [Dev] 26 Декабрь, 22:14:16: http://freshmeat.net/projects/pyenca/
- [Электроника] 24 Декабрь, 22:56:52: Вентиляторы, кулера для ноутбука БУ — Комплектующие для ноутбуков, Запчасти для ноутбуков, Замена матрицы, Матрицы для ноутбуков
- [Dev] 17 Декабрь, 16:57:30: Index of /~s0mbre/archive/carp
- [Dev] 17 Декабрь, 16:57:24: Index of /pub/ucarp/
- [Электроника] 09 Декабрь, 00:09:27: Сотовые телефоны Siemens Siemens S75 ростест
- [Maxima] 07 Декабрь, 01:42:57: motorvate.ca v2.0 — *THE* DIY Maxima Website
- [Maxima] 07 Декабрь, 01:42:41: 95-96-NISSAN-MAXIMA-CARBON-ALTEZZA-TAIL-LIGHT-GLE-TYC_W0QQcmdZViewItemQQcategoryZ33716QQihZ018QQitemZ280257518074QQrdZ1QQsspagenameZWDVW#ShippingPayment
- [Maxima] 07 Декабрь, 01:42:31: eBay Motors: Nissan Maxima V6 3.0L Headers & Y Pipe VQ30DE (item 400010670788 end time Nov-24-08 17:25:54 PST)
- [Dev] 06 Декабрь, 19:11:25: Projects — http://ext2.yeah.net
- [Dev] 06 Декабрь, 19:11:17: Ext2 IFS For Windows: Download
- [Авто] 06 Декабрь, 18:01:08: Volkswagen Technical Site
- [Dev] 04 Декабрь, 12:31:21: Media Wiki:MediaWiki Database Schema — IpbWiki
- [Dev] 01 Декабрь, 23:34:10: Создание ELF-приложений
- [Dev] 01 Декабрь, 14:18:44: XPath Tutorial
Ноябрь 2008
- 27 Ноябрь, 15:24:52: Direct and Indirect Speech
- [Dev] 27 Ноябрь, 11:32:07: Roundup Issue Tracker
- 21 Ноябрь, 01:18:21: Межлабораторный конкурс " BiPro lab
- 20 Ноябрь, 04:05:41: Сайт Александра Нагорного / Главная
- 19 Ноябрь, 13:27:19: ru_d70: Боке nikkorа ai-s 85/1.4
- [Dev] 18 Ноябрь, 15:32:43: Concurrent Versions System (cvsnt) 2.5.04.3236
- [Dev] 16 Ноябрь, 22:43:22: Yellow Leaf — Статьи — Оптимизация initramfs в Debian
- [Dev] 14 Ноябрь, 21:00:32: Log4j tutorial with Tomcat examples
- [Dev] 14 Ноябрь, 01:40:39: Perl Design Patterns at Perl Design Patterns Wiki
- 11 Ноябрь, 00:22:03: ONLINE TEST — ELC Ltd. *** ELC: преодолей языковой барьер ***
- 07 Ноябрь, 20:35:44: DISCOPAL::Группа Алгоритмы дискретной оптимизации. Отдел Математических Методов и Алгоритмов ИСПРАН
- [Парапланы] 06 Ноябрь, 02:52:20: Обучение полетам на параплане в школе Первый шаг.
- [Авто] 04 Ноябрь, 23:33:26: Автозапчасти — продажа автозапчастей, магазин автозапчастей в Москве с доставкой
- 04 Ноябрь, 22:59:03: INTUIT.ru: Учебный курс — Основы права интеллектуальной собственности
- [Авто] 02 Ноябрь, 14:19:00: Диагностика работы двигателя по состоянию свечей. — Энциклопедия японских машин — на Drom.ru
Октябрь 2008
- [Dev] 30 Октябрь, 15:58:06: Juga.ru — Главная
- [Dev] 30 Октябрь, 15:56:52: Временно.нет — статьи по верстке и веб-дизайну
- [Dev] 28 Октябрь, 14:00:58: Продолжения и продвинутая управляющая логика
- [Opera] 25 Октябрь, 02:18:38: Desktop Team — by Opera Desktop Team
- 11 Октябрь, 02:04:25: Хомячки (13 классных фотографий) " Зверушки.ру — животные, фото животных, домашние животные
- [Maxima] 08 Октябрь, 21:08:52: Level 10 Performance Transmission Systems
- [Maxima] 08 Октябрь, 01:31:14: Tatanko’s Maxima Site
- [Maxima] 06 Октябрь, 20:28:11: Timing guy says hello
- [Maxima] 06 Октябрь, 20:28:04: https://mywebspace.wisc.edu/bsullivan1/MOD%20list.txt
- [Maxima] 06 Октябрь, 19:46:26: NWP Engineering, Inc — Phenolic Thermal Intake Manifold Spacers — Eliminate Heat Soak in your Nissan!
- [Dev] 06 Октябрь, 17:18:27: HighLoad++ — Тезисы 2008
- [Maxima] 04 Октябрь, 14:55:37: James' 1999 Supercharged 5-spd Maxima — Wildomar, California
- [Maxima] 04 Октябрь, 02:09:42: NISSAN FAST ONLINE
- [Maxima] 02 Октябрь, 17:40:47: Manual transmission parts, rebuild kits and overhaul kits for Nissan 5 Speed Frontwheed Drive
- [Авто] 02 Октябрь, 17:40:40: Автодиагностика — Англо-русский автомобильный словарь — W
Сентябрь 2008
- [Maxima] 28 Сентябрь, 22:04:51: Max: This car is curretly for sale. I have done all the stero work, and the nitrous system. $10,000 takes it as it sits. Supercharged — Springfield, Virginia
- [Юмор] 16 Сентябрь, 23:07:09: Материализатор — инструмент нецензурного просмотра
Август 2008
- [Парапланы] 31 Август, 21:16:16: paraplan.ru: Игорь Волков. Две стороны утра.
- [Электроника] 30 Август, 13:18:35: Схемотехника
- [Maxima] 29 Август, 16:21:58: Генераторы на Ниссан, Нисан: продажа, ремонт, запчасти, характеристики / Nissan alternators: repair, sale, spare parts | Генераторы | Каталог стартеров и генераторов | Фирма «AS-стартеры, генераторы»
- [Электроника] 26 Август, 17:48:14: http://www.elektrosvarka.ru/article4.htm
- [Авто] 22 Август, 19:21:09: ЗАО ДАРЗ — Гаражное оборудование, Дмитров, подъемники автомобильные.
- [Maxima] 19 Август, 18:16:49: VQpower.com — How to install MEVI
- [Юмор] 15 Август, 23:17:38: Пиеска на злобу дня в новостях — Гоблин (Goblin)
- [Dev] 11 Август, 18:41:27: ftp://ftp-developer.amd.com/AMD_Stream_SDK/
Июль 2008
- 24 Июль, 19:04:10: Waypoints Exchange :: Экспортирование
- [Maxima] 21 Июль, 22:31:21: xenon.lv (тюнинг максимы)
- [Maxima] 18 Июль, 23:09:26: Обвес в круг Nissan Maxima 95 — 99
- [Maxima] 17 Июль, 22:40:14: Эдуард Асадов ЕСЛИ ЛЮБОВЬ УХОДИТ! Я люблю
- 17 Июль, 16:12:17: Ksurrrеализм (ЖЖ, красивые фотки)
- [Электроника] 07 Июль, 23:26:42: обнуление чипа картриджа Samsung SCX-4200 [Версия для КПК — Компьютерный форум OSzone.net]
- 05 Июль, 22:12:10: Mgrizli tr — SoundEX (красивые места)
Июнь 2008
- [Авто] 25 Июнь, 02:48:38: Интернет-магазин автозапчастей
- [Maxima] 25 Июнь, 02:48:31: Автозапчасти NISSAN — электронный каталог запчастей
- [Opera] 07 Июнь, 00:56:59: Index of /unix/snapshot-2025/intel-linux
- [Dev] 06 Июнь, 12:56:31: DDOS — что делать. Если сервер только один — Linux с Apache. | Социальная сеть хостинг провайдеров
- [Dev] 01 Июнь, 21:10:12: The Spamhaus Project — XBL
Май 2008
- [Dev] 31 Май, 00:27:53: Виртуальная энциклопедия «Linux по-русски»: новости, статьи, ссылки на материалы по операционной системе GNU/Linux.
- [Юмор] 25 Май, 02:05:30: Секс / Вопрос-ответ
- [Maxima] 18 Май, 21:02:35: Покупаем летнюю резину. Внимание — ненормативная лексика. Архив — Форум клуба DriveTeam — ночные уличные гонки, челендж, ралли-спринт, картинг, стритчеллендж в Москве
- [Opera Weekly Builds] 13 Май, 03:24:26: Index of /unix/snapshot-1962
- [Opera Weekly Builds] 07 Май, 00:56:50: Index of /unix/snapshot-1951
- [Dev] 05 Май, 02:50:51: ftp://ftp.ics.uci.edu/pub/machine-learning-papers/
- [Dev] 03 Май, 15:28:31: pdaXQtrom
- 02 Май, 02:20:41: выкупалка ботов © http://chirkov.livejournal.com
- [Dev] 01 Май, 16:11:40: Titchy Mobile — Wiki
Апрель 2008
- [Dev] 29 Апрель, 03:21:13: Textual domains
- [Электроника] 25 Апрель, 13:07:04: Plat’Home — MicroServer OpenMicroServer
- [Электроника] 25 Апрель, 13:06:58: Alekto
- [Электроника] 25 Апрель, 00:49:22: natrium42.com — Weblog " Blog Archive " IDE to NDS Connection
- [Электроника] 20 Апрель, 19:49:47: Motorola ROKR E6 — Карточка модели — Яндекс. Маркет
- 07 Апрель, 18:03:50: БГМ-2007-Атлант
Март 2008
- [Opera] 30 Март, 23:14:33: Opera ad block filters — Opera FAQ’s, Tips, Tricks & Tweaks — by Tamil
- 27 Март, 20:45:04: НЕАДЕКВАТ от cyriak’а
Февраль 2008
- [Dev] 14 Февраль, 16:50:10: http://slashzone.ru/parser/russian_evil_numbers095.txt
- 08 Февраль, 12:55:21: ARSY фото-арт студия
- [Maxima] 03 Февраль, 22:39:09: Nissan Maxima — Клуб владельцев автомобилей Nissan Maxima.
Январь 2008
- 02 Январь, 19:09:28: САНГРИЯ
2007
Ноябрь 2007
- [Электроника] 30 Ноябрь, 02:47:37: ООО «АБМ-Строй». Аренда генератора. Генератор.
- 26 Ноябрь, 00:43:49: Разработчик СУБД (курс) — LibWiki
Октябрь 2007
- [Dev] 10 Октябрь, 12:40:15: Web Performance And Scalability — MySQLForge Wiki
Сентябрь 2007
- [Dev] 18 Сентябрь, 14:41:18: NetSago IT Research Project — Документация — Введение в написание модулей ядра Linux.
- [Dev] 18 Сентябрь, 14:37:03: Debian Linux Kernel Handbook — Common kernel-related tasks
- 09 Сентябрь, 00:48:30: Панорамный Мир
Август 2007
- [Dev] 30 Август, 22:27:53: Full WEB 2.0 API List | Tech Magazine
Июль 2007
- 21 Июль, 00:15:57: Photography Books and Magazines
- 20 Июль, 00:09:19: Комиссионный магазин фототехники ФОТОМАСТЕРСКИЕ РСУ, переходники Jolos
- 19 Июль, 18:46:37: драганайз
- 10 Июль, 23:47:58: ФОТОДЕЛО. ВЫБОР ФОТОПЛЕНКИ
Апрель 2007
- [Dev] 20 Апрель, 01:21:28: MySQL scalability on Linux with sysbench
- [Юмор] 08 Апрель, 00:19:08: Записки невесты программиста
- [Электроника] 01 Апрель, 21:01:45: 4PDA всё про КПК -> МОНСТРИК-2 увидел свет
Февраль 2007
- [Электроника] 25 Февраль, 19:22:24: Диол — Прайс-лист !!! низкопрофильные кулеры
- [Электроника] 15 Февраль, 03:43:54: ATA 50 to 40 pin (notebook CD-ROM) распиновка @ pinouts.ru
- [Юмор] 14 Февраль, 18:33:54: Анекдоты — Компьютерный форум OSzone.net
- [Электроника] 03 Февраль, 02:37:48: БУРЫЙ МЕДВЕДЬ
- [Dev] 03 Февраль, 02:32:16: Ingres II HOWTO
Январь 2007
- [Dev] 31 Январь, 17:22:25: ► PROXY LIST — FREE ANONYMOUS PROXIES & SOCKS — AliveProxy WEB SSL VPN Anonymous Secured Internet Access Services
- [Юмор] 26 Январь, 00:33:52: Best of Internet: Real Programmers do not use PASCAL…
- 25 Январь, 16:43:35: Максим Фрай. Вершитель
- [Электроника] 02 Январь, 02:45:55: -= www.ProModz.ru : Breaking Standardz =- // моддинг, вольтмоддинг, водяное охлаждение // — Системы жидкостного охлаждения ПК ProModz Cooled Silence
- [Электроника] 02 Январь, 02:39:59: ::: Zalman, leading the world of Quiet Computing Solutions :::
2006
Декабрь 2006
- [Dev] 18 Декабрь, 21:21:02: Using static and shared libraries across platforms
- [Dev] 12 Декабрь, 22:04:15: Continuent Forge: Sequoia: Project Info
- [Dev] 12 Декабрь, 21:27:58: OpenNET: статья — Настройка кластера MySQL (mysql database cluster replication)
- [Dev] 12 Декабрь, 19:00:57: The C10K problem
- 06 Декабрь, 02:23:51: Wi-Fi Router WL-566GM
- [Dev] 04 Декабрь, 17:26:50: Perlbal