To make this work in CSS:
background: url('images.svg#chart');or img:
<img src="images.svg#chart">To make this work in CSS:
background: url('images.svg#chart');or img:
<img src="images.svg#chart">This page provides a full overview of PHP's SessionHandler
life-cycle - this was generated by a set of test-scripts, in order to provide an exact overview of when and
what you can expect will be called in your custom SessionHandler implementation.
Each example is a separate script being run by a client with cookies enabled.
To the left, you can see the function being called in your script, and to the right, you can see the resulting calls being made to a custom session-handler registed using session_set_save_handler().
The standard way of understanding the HTTP protocol is via the request reply pattern. Each HTTP transaction consists of a finitely bounded HTTP request and a finitely bounded HTTP response.
However it's also possible for both parts of an HTTP 1.1 transaction to stream their possibly infinitely bounded data. The advantages is that the sender can send data that is beyond the sender's memory limit, and the receiver can act on
| <?php | |
| $codes = [ | |
| 'ab' => 'Abkhazian', | |
| 'aa' => 'Afar', | |
| 'af' => 'Afrikaans', | |
| 'ak' => 'Akan', | |
| 'sq' => 'Albanian', | |
| 'am' => 'Amharic', | |
| 'ar' => 'Arabic', |
| span.alpha { | |
| background-position: 0px 0px; | |
| content: "alpha is the awesome"; | |
| border-top: 0px ; | |
| } | |
| span.beta { | |
| background-position: 50px 0px; | |
| content: "beta is the awesome"; | |
| } | |
| span.theta { |
| Sketch of a security proof for BCRYPT(H(X)). This probably contains errors. | |
| UPDATE: Only assume BCRYPT is collision resistant for X <= 72. | |
| Define the BCRYPT-H(S, X) algorithm as follows: | |
| UPDATE: Gah... the whole 'byte' thing isn't necessary at all. I originally | |
| intended to pass *either* the actual X (with a zero byte prefix) or H(X) with | |
| a 0x01 byte prefix, to bcrypt. I forgot to do that, and instead always passed | |
| the hash with the byte prefix based on the length. The proof is still valid, |
| function string_to_slug(str) { | |
| str = str.replace(/^\s+|\s+$/g, '') // TRIM WHITESPACE AT BOTH ENDS. | |
| .toLowerCase(); // CONVERT TO LOWERCASE | |
| const from = [ "ου", "ΟΥ", "Ού", "ού", "αυ", "ΑΥ", "Αύ", "αύ", "ευ", "ΕΥ", "Εύ", "εύ", "α", "Α", "ά", "Ά", "β", "Β", "γ", "Γ", "δ", "Δ", "ε", "Ε", "έ", "Έ", "ζ", "Ζ", "η", "Η", "ή", "Ή", "θ", "Θ", "ι", "Ι", "ί", "Ί", "ϊ", "ΐ", "Ϊ", "κ", "Κ", "λ", "Λ", "μ", "Μ", "ν", "Ν", "ξ", "Ξ", "ο", "Ο", "ό", "Ό", "π", "Π", "ρ", "Ρ", "σ", "Σ", "ς", "τ", "Τ", "υ", "Υ", "ύ", "Ύ", "ϋ", "ΰ", "Ϋ", "φ", "Φ", "χ", "Χ", "ψ", "Ψ", "ω", "Ω", "ώ", "Ώ" ]; | |
| const to = [ "ou", "ou", "ou", "ou", "au", "au", "au", "au", "eu", "eu", "eu", "eu", "a", "a", "a", "a", "b", "b", "g", "g", "d", "d", "e", "e", "e", "e", "z", "z", "i", "i", "i", "i", "th", "th", "i", "i", "i", "i", "i", "i", "i", "k", "k", "l", "l", "m", "m", "n", "n", "ks", "ks", "o", "o", "o", "o", "p", "p", "r", "r", "s", "s", "s", "t", "t", "y", "y", "y", "y", "y", "y", "y", "f", "f", "x", "x", "ps", "ps", "o", |
The Liang-Barsky algorithm is a cheap way to find the intersection points between a line segment and an axis-aligned rectangle. It's a simple algorithm, but the resources I was pointed to didn't have particularly good explanations, so I tried to write a better one.
Consider a rectangle defined by x_min ≤ x ≤ x_max and y_min ≤ y ≤ y_max, and a line segment from (x_0, y_0) to (x_0 + Δ_x, y_0 + Δ_y). We'll be assuming at least one of Δ_x and Δ_y is nonzero.
(I'm working with Flash, so I'll be using the convention that y increases as you go down.)
We want to distinguish between the following cases:
| Latency Comparison Numbers (~2012) | |
| ---------------------------------- | |
| 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 3 us | |
| Send 1K bytes over 1 Gbps network 10,000 ns 10 us | |
| Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD |