When monospace fonts aren’t: The Unicode character width nightmare

I don’t deal with Unicode and other character encoding on the daily basis, but when I do, I need every piece of information that has been written on the subject.  Hence the link to this interesting issue :

As long as you stick to precomposed Unicode characters, and Western scripts, things are relatively straightforward. Whether it’s A or Å, S or Š – so long as there are no combining marks, you can count a single Unicode code point as one character width. So the following works:

	aeioucsz
	áéíóúčšž

Nice and neat, right?

Unfortunately, problems appear with Asian characters. When displayed in monospace, many Asian characters occupy two character widths.

Latency Numbers Every Programmer Should Know

latency

I’m saving this here for current and future generations of programmers:

Latency Comparison Numbers
--------------------------
L1 cache reference                            0.5 ns
Branch mispredict                             5   ns
L2 cache reference                            7   ns             14x L1 cache
Mutex lock/unlock                            25   ns
Main memory reference                       100   ns             20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy              3,000   ns
Send 1K bytes over 1 Gbps network        10,000   ns    0.01 ms
Read 4K randomly from SSD*              150,000   ns    0.15 ms
Read 1 MB sequentially from memory      250,000   ns    0.25 ms
Round trip within same datacenter       500,000   ns    0.5  ms
Read 1 MB sequentially from SSD*      1,000,000   ns    1    ms  4X memory
Disk seek                            10,000,000   ns   10    ms  20x datacenter roundtrip
Read 1 MB sequentially from disk     20,000,000   ns   20    ms  80x memory, 20X SSD
Send packet CA->Netherlands->CA     150,000,000   ns  150    ms

Notes
-----
1 ns = 10-9 seconds
1 ms = 10-3 seconds
* Assuming ~1GB/sec SSD

Credit
------
By Jeff Dean:               http://research.google.com/people/jeff/
Originally by Peter Norvig: http://norvig.com/21-days.html#answers

Contributions
-------------
Some updates from:                      https://gist.github.com/2843375
Great 'humanized' comparison version:   https://gist.github.com/2843375
Visual comparison chart:                http://i.imgur.com/k0t1e.png
Nice animated presentation of the data: http://prezi.com/pdkvgys-r0y6/latency-numbers-for-programmers-web-development/

This is a copy-paste of this gist, referenced from this blog post. Read and share both, for the better world.

Free Data Science Books

I came across a collection of free data science books:

Pulled from the web, here is a great collection of eBooks (most of which have a physical version that you can purchase on Amazon) written on the topics of Data Science, Business Analytics, Data Mining, Big Data, Machine Learning, Algorithms, Data Science Tools, and Programming Languages for Data Science.

Most notably, there are introductory books, handbooks, Hadoop guide, SQL books, social media data mining stuff, and d3 tips and tricks.  There’s also plenty on artificial intelligence and machine learning, but that’s too far out for me.

Efficient Image Resizing With ImageMagick

ImageMagick is one of my favorite tools ever.  I’ve used for years for a whole lot of different things – from simple image resizing, through animation generation, to palette manipulation.  And still, I don’t really know it that well, so when I see articles like this – “Efficient Image Resizing With ImageMagick“, I get excited.  Not only it gives you a better way of doing things, but it also explains the path of how to get there.  From a simple command like:

convert input.jpg -resize 300 output.jpg

to something as advanced as this:

mogrify \
  -path OUTPUT_PATH \
  -filter Triangle \
  -define filter:support=2 \
  -thumbnail OUTPUT_WIDTH \
  -unsharp 0.25x0.25+8+0.065 \
  -dither None \
  -posterize 136 \
  -quality 82 \
  -define jpeg:fancy-upsampling=off \
  -define png:compression-filter=5 \
  -define png:compression-level=9 \
  -define png:compression-strategy=1 \
  -define png:exclude-chunk=all \
  -interlace none \
  -colorspace sRGB \
  -strip INPUT_PATH

What’s even more exciting is that it looks like this optimization will make its way into WordPress 4.4, together with some other improvements for the responsive images.

Super cool!