140 karma · joined November 3, 2011
Google is for searching new sources of information and either it’s instant (google info box) or takes too long which makes a lasting memory about it being painful.
The tantivy binary search & rust binary search only has one different at the end, knowing the size of the slice ahead of time, right?
Could the rust compiler infer the size ahead of time?
"The API latency was 10 seconds, now it's 8.5 seconds."
or
"I reduced the p99.9 latency from 1 sec to 400ms" (by removing input validation)
Should amazon start paying small companies at the same margin that costco does?
sadly it wasn't picked up.
Congrats on product, there is a big market for it
> can the system still be simplified enough to grasp it well enough to change it?
That would be a model of a system not the system itself, and as George box said "All models are wrong, but some are useful"
> where would an individual who has grasped it find the power to change anything?
If an individual is able to change connections between subsystems, they can change the behavior of the higher level system. But the impact of the change is dependent on the systems being changed.
it would be so much more readable if the struct had more descriptive names
type Cuckoo struct {
buckets []bucket
numBuckets uint
entriesPerBucket uint
fingerprintLength uint
capacity uint
}when I write code for a concept i don't understand completely, it tends to be complex and cryptic. I'll go back to it after trying to understand the problem and the problem space more and be able to write simpler code.
You might be thinking of the L1 visa
Sorry, english is not my first language. can you please elaborate on what you mean?
If i don't have a job with a company willing to sponsor my visa I would have to get back on the boat and leave.
My friends, who are from smaller countries have the privilege but I do not.
Stats from travel.state.gov
https://travel.state.gov/content/dam/visas/Statistics/Immigr...
Waiting list size by country
Country Applicants
Mexico 1,229,505
Philippines 314,229
India 298,571
Vietnam 231,519
China-mainland born 231,519
Bangladesh 169,231
Dominican Republic 146,160
Pakistan 115,625
Haiti 94,506
El Salvador 64,868
Cuba 55,847
All Others 840,393
Worldwide Total 3,791,973Is it though? I interpreted question the following way.
"Rust is a tool in my tool box, when the reason for picking it over other tools isn't demonstrably true, what am i doing wrong?"
I agree with the rest of your comment, just not with calling the OP or their question silly.
This is correct, let me unpack this a little more.
The 'Register' function tells the server object that when a client tries to call the function "QueryUser" call the function passed as the second parameter and send back the result.
the client object's "CallRPC" functions tells the client object that i know that there is a function called "QueryUser" that the server know about and it has the same structure as the second parameter, when i call the second parameter, call the server with the arguments passed. The client object then creates a stub implementation which when called, creates a connection to the server, tell the server to call the function "QueryUser" with the given parameters, reads the results and returns the result.
The "Remote" part of RPC is done over the transport package which the main function is mostly unaware of.
completely agreed, just had a long conversation with a junior engineer about how adding a cache would not solve a complex architectural problem and just add more complexity.
> All those are indicators of coupling unrelated ideas together.
once useful tool i have found is using automated tools to spot indicators like these. In java using checkstyles cyclomatic complexity checks and class fan out is a strong indicator (not proof though).
Go's way of providing try!() macro is less magical but almost as useful.[1]
> From/Into error types allow the compiler to wrap types or convert between error types
error is an interface in Go which can be easily cast/checked for the underlying type.
> Go's error handling is pretty primitive
I wouldn't call it primitive, I would call it simple. I like the comparison i read on a blog on HN.
Rust is the 'new' C++ and Go is the new C
isn't that AWS Fargate?
They are _useful_ for non-pure function programmers because it's a tool in the tool box which can allow them to write composable code that can be reasoned about.
Java's & C++'s Optionals are monads, Rust's Result<T, E> is a monad, etc.
The main benefit of a monad is composition. It allows a programmer to chain computation and put some logic in the chaining. It's the difference between
f(g(h(x)))
and h(x).then(g).then(f)
the '.then' method has some inbuilt logic, for to ability to add that logic we 'embellish' the return type of h (or put it in a container like Promise<>).To equate it to java's Optionals, the flatMap is a good example, it takes an optional and applies some logic and decides to call the second function.
Engineers are still Indians
i find '__attribute__((cleanup (fn)))' fascinating in C, need to try it in some production code though.