SOAR is an SQL Optimizer and Rewriter. It can help analyse, optimize, and rewrite SQL queries. Don’t get offset by the Chinese documentation as default – there is an English translation.
Here are some of the features:
- Cross-platform support, such as Linux, Mac, and Windows
- Support Heuristic Rules Suggestion
- Support Complicate SQL Indexing Optimize
- Support EXPLAIN analyze for query plan
- Support SQL fingerprint, compress and built-in pretty print
- Support merge multi ALTER query into one SQL
- Support self-config rewrite rules from SQL Rewrite
- Suggestions were written in Chinese. But SOAR also gives many tools, which can be used without understanding Chinese.
And if you are familiar with the other tools that provide similar functionality, here’s how SOAR compares to them:
Via this blog post I came across this PHP image optimization library, which somewhat reminds me of this blog post from a couple of years ago. As good as ImageMagick is, it takes time and effort to find all the right options. With Spatie Image Optimizer you have an almost out of the box solution for optimizing images in a variety of formats.
This package can optimize PNGs, JPGs, SVGs and GIFs by running them through a chain of various image optimization tools.
From this article, I’ve learned about an excellent (for our times) 10k Apart competition:
Think you’ve got what it takes? You have until September 30th.
I can’t wait to see the submissions and all the ways to squeeze the awesomeness of the modern web into just 10 kilobytes. This reminds me of the Perl Golf posts over at PerlMonks and
Assembly PC 64K Intro from my childhood early days (here are some examples).
Last year I came across a nice chart of latency numbers every programmer should know. Today, I saw this page, which shows you the same latency numbers, but also provides a timeline from 1990 to 2020.
For some operations, latency is constant, because it’s based on things of nature – speed of light, distance between continents, etc. For other operations, latency can be decreased through better technology and algorithms.
The timeline clearly shows the mind-blowing advance we’ve experienced in technology over the last three decades.
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
1 ns = 10-9 seconds
1 ms = 10-3 seconds
* Assuming ~1GB/sec SSD
By Jeff Dean: http://research.google.com/people/jeff/
Originally by Peter Norvig: http://norvig.com/21-days.html#answers
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.