Notes taken from Rob Pike's presentation 'Google I/O 2012 - Go Concurrency Patterns'.
The code is as follows:
c := boring("boring!") // function returning a channel
for i := 0; i < 5; i++ {
Notes taken from Rob Pike's presentation 'Google I/O 2012 - Go Concurrency Patterns'.
The code is as follows:
c := boring("boring!") // function returning a channel
for i := 0; i < 5; i++ {
Create a new bookmark somewhere handy in your browser with the following URL:
javascript:var el=document.createElement('style');el.media='print';el.innerHTML='#header,.pagehead.repohead,.gist-description.container,.file-box .meta,#comments,.js-comment-form,#footer{display:none;}.file-box{border:0!important;}';document.getElementsByTagName('head')[0].appendChild(el);alert('Please consider the environment before printing :)');
// assumes you add a timestamp field to each record (see Firebase.ServerValue.TIMESTAMP) | |
// pros: fast and done server-side (less bandwidth, faster response), simple | |
// cons: a few bytes on each record for the timestamp | |
var ref = new Firebase(...); | |
ref.orderByChild('timestamp').startAt(Date.now()).on('child_added', function(snapshot) { | |
console.log('new record', snap.key()); | |
}); |
/* | |
使用前调用init静态建树,然后模仿query进行类Binary Search Tree式的访问即可 | |
Obj是点的类型,如果追求效率或者在点上除了坐标还有其它信息,可以自己写一个Obj类,然后重载[]运算符 | |
*/ | |
namespace KDTree { | |
int K; | |
typedef vector <int> Obj; | |
template <int T> bool cmpT(const Obj &a, const Obj &b) { return a[T] < b[T]; } | |
bool (*cmp[])(const Obj &, const Obj &) = {cmpT <0>, cmpT <1>, cmpT <2>}; //填到所需要的最大维度数目为止,这里表示的是最大3维 | |
struct Filter { |
L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns
Compress 1K bytes with Zippy ............. 3,000 ns = 3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns = 20 µs
SSD random read ........................ 150,000 ns = 150 µs
Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs
def lowerBound(a, key) | |
lb = -1; ub = a.length | |
while ub - lb > 1 | |
mid = (lb + ub) / 2 | |
if a[mid] >= key | |
ub = mid | |
else | |
lb = mid | |
end | |
end |
Sublime Text 2 ships with a CLI called subl (why not "sublime", go figure). This utility is hidden in the following folder (assuming you installed Sublime in /Applications
like normal folk. If this following line opens Sublime Text for you, then bingo, you're ready.
open /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl
You can find more (official) details about subl here: http://www.sublimetext.com/docs/2/osx_command_line.html
/* | |
Infix to postfix conversion in C++ | |
Input Postfix expression must be in a desired format. | |
Operands and operator, both must be single character. | |
Only '+' , '-' , '*', '/' and '$' (for exponentiation) operators are expected. | |
*/ | |
#include<iostream> | |
#include<stack> | |
#include<string> |