norvig.com: English Letter Frequency Counts: Mayzner Revisited or ETAOIN SRHLDCU

norvig.com: English Letter Frequency Counts: Mayzner Revisited or ETAOIN SRHLDCU
My distillation of the Google books data gives us 97,565 distinct words, which were mentioned 743,842,922,321 times (37 million times more than in Mayzner’s 20,000-mention collection). Each distinct word is called a “type” and each mention is called a “token.” To no surprise, the most common word is “the”. Here are the top 50 words, with their counts (in billions of mentions) and their overall percentage (looking like a Zipf distribution):

http://bruscy.republika.pl: The Java (not really) Faster than C++ Benchmark

http://bruscy.republika.pl: The Java (not really) Faster than C++ Benchmark
The most important conclusion is obvious. (For this set of benchmarks,) C++ is clearly the winner. Second conclusion – don’t use Client VM in older Java versions. Going from 3x slower to 1.7x slower is quite an impressive feat on Java side. And keep in mind that C++ also was getting faster with every compiler release.

Stack Overflow: What is your most productive shortcut with Vim?

Stack Overflow: What is your most productive shortcut with Vim?
I say that this is one way to cut or copy text. However, it is only one of many. Frequently we can more succinctly describe the range of text without moving our cursor around and dropping a mark. For example if I’m in a paragraph of text I can use { and } movements to the beginning or end of the paragraph respectively. So, to move a paragraph of text I cut it using { d} (3 keystrokes). (If I happen to already be on the first or last line of the paragraph I can then simply use d} or d{ respectively. The notion of “paragraph” defaults to something which is usually intuitively reasonable. Thus it often works for code as well as prose. Frequently we know some pattern (regular expression) that marks one end or the other of the text in which we’re interested. Searching forwards or backwards are movements in vi. Thus they can also be used as “subjects” in our “statements.” So I can use d/foo to cut from the current line to the next line containing the string “foo” and y?bar to copy from the

XTRAN, LLC: Automated Code Translation

XTRAN, LLC: Automated Code Translation
The following examples show how you can use our XTRAN software engineering meta-tool to automate virtually any software engineering activity….examples using XTRAN to automate manipulating that language: Assembler— HP (Digital, Compaq) MACRO-11 Assembler— HP (Digital, Compaq) VAX MACRO Assembler— Encore (SEL, Gould) C C++ COBOL EDL (IBM) Fortran HTML -Java— Natural (Software AG) Pascal PL/I PL/ix (IBM)— updated! PL/M (Intel) XML Text—

Squirrel Programming Language

Squirrel Programming Language
Squirrel is a high level imperative, object-oriented programming language, designed to be a light-weight scripting language that fits in the size, memory bandwidth, and real-time requirements of applications like video games.

Squirrel is a high level imperative, object-oriented programming language, designed to be a light-weight scripting language that fits in the size, memory bandwidth, and real-time requirements of applications like video games. Although Squirrel offers a wide range of features like:

Open Source MIT licence

dynamic typing

delegation

classes & inheritance

higher order functions

lexical scoping

generators

cooperative threads(coroutines)

tail recursion

exception handling

automatic memory management (CPU bursts free; mixed approach ref counting/GC)

both compiler and virtual machine fit together in about 7k lines of C++ code and add only around 100kb-150kb the executable size.

optional 16bits characters strings

powerful embedding api

eg. function/classes can be defined

Random ASCII | Forecast for randomascii: programming, tech topics, with a chance of unicycling

Random ASCII | Forecast for randomascii: programming, tech topics, with a chance of unicycling
1: add eax, 12: mov ebx, eax

3: xor eax, eax

4: add eax, ecx

Ideally we would like our awesome out-of-order processor to execute instructions 1 and 3 in parallel. There is a literal data dependency between them, but a sufficiently advanced processor could detect that this dependency is artificial. The result of the xor instruction doesn’t depend on the value of eax, it will always be zero.

It turns out that for many years x86 processors have for years handled xor of a register with itself specially. Every out-of-order Intel and AMD processor that I am aware of can detect that there is not really a data dependency and it can execute instructions 1 and 3 in parallel. Which is great. The CPUs use register renaming to ‘create’ a new eax for the sequence of instructions starting with instruction 3.