HNHacker News
TopNewBestAskShowJobs

aksx

140 karma · joined November 3, 2011

submissionscomments
aksx··on Run CLIP on iPhone to search photos
What do you use to index image vectors? Does a "retrieval based modal" not require an index?
aksx··on Google to reduce workforce by 12k
Maybe because other people search in different places. Events/Businesses: Google Maps, Instagram Trend/Tutorials: Tiktok, IG Reels News: Twitter/Social Media/News Outlet of choice

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.

aksx··on Scaling our spreadsheet engine from thousands to billions of cells
PTG => Parse Thingy: https://poi.apache.org/apidocs/dev/org/apache/poi/ss/formula...
aksx··on A Rust optimization story
So many interesting findings in the post.

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?

aksx··on What Google recruiters look for in a technical resume
Even if your current employer let's you talk about specific numbers, without context they don't tell the recruiter anything.

"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)

aksx··on Amazon scooped up data from its own sellers to launch competing products
So costco pays a small companies to sell their product and extract sales data.

Should amazon start paying small companies at the same margin that costco does?

aksx··on Ask HN: What projects are you working on now?
i suggested building this at a bigco where i work last year, built a prototype using postgres and wrote the design doc.

sadly it wasn't picked up.

Congrats on product, there is a big market for it

aksx··on Google Open Source Code Search
zoekt is absolutely awesome, I was reading it’s code yesterday to figure out how it does ngram indexing and search.
aksx··on Ask HN: What has your work taught you that other people don't realize?
Capitalism is the way a system set of connections between subsystems and politics is a way to reorganize a system from within itself.

> 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.

aksx··on Implementing a Cuckoo Filter in Go
I am all for the Go idiom that variable name length should be directly proportional to it's scope, the code samples in the post have take it a bit too far and make the code harder to read.

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
    }
aksx··on Elementary OS 5.1 Hera
Why do you hope so? Vala is a decent language which let's users build Gtk applications easily.
aksx··on Thank You, Guido
Sometimes it's not about show how smart they are, developers aren't clear about the code they are writing.

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.

aksx··on Uber receives more foreign-worker visas as it lays off hundreds of employees
H1B is a lottery: https://en.wikipedia.org/wiki/H-1B_visa#Lottery

You might be thinking of the L1 visa

aksx··on Uber receives more foreign-worker visas as it lays off hundreds of employees
> the evolution of slave labor is going to make the H-1B horror stories from the 90's to the present sound like fairy tales.

Sorry, english is not my first language. can you please elaborate on what you mean?

aksx··on Ask HN: Senior Positions Interview Prep Resources?
Immigrant here, and I can read, write & speak english.

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,973
aksx··on Ask HN: Senior Positions Interview Prep Resources?
can you please link the study?
aksx··on How come PHP seems so much faster than Rust?
> This is a little silly.

Is 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.

aksx··on Simple RPC framework in 300 lines of Go
>The Server package contains the Register function. Main package implements the QueryUser function that does the work of querying the DB. When Main calls Server.Register to register the function with Server, it sends the function name (QueryUser) and..something else? Is that the memory address of QueryUser on my computer? And when Server actually runs the function, it's just pointing to QueryUser at the memory address given to it by Main?

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.

aksx··on Skills Poor Programmers Lack
>Poor programmers are optimistic

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).

aksx··on Things I Enjoy in Rust: Error Handling
>The best parts of rust's error handling are the try!() macro (aka `?`),

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

[1] https://blog.golang.org/errors-are-values

aksx··on Cloud Run – Newest member of our serverless compute stack
> AWS to provide a docker on lambda option

isn't that AWS Fargate?

aksx··on Monads you can understand (2015)
They are important in Haskell because they allow "real world" tasks to performed and give the ability to reason about functions.

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.

aksx··on Monads you can understand (2015)
that's a good generalization but has one small thing missing.

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.

aksx··on Ask HN: Is there a new habit you cultivated recently that is really paying off?
are you following a book or a website for the recipes? I would love to cook more at home but it takes time to find good recipes.
aksx··on After Surgery in Germany, I Wanted Vicodin, Not Herbal Tea
Do as the docs says not as the doctor does.
aksx··on India’s IT industry laid off more than 56k employees this year
Financially.

Engineers are still Indians

aksx··on GitHub was down
or a bad commit being deployed on their fleet.
aksx··on Comparing Haskell and Node concurrency performance
but wouldn't you still require [Stack size] * [num concurrent connections] space? pooling just means that there won't be the cost of creating a new thread on all/most connections.
aksx··on Talking to C Programmers about C++ [video]
>For heap allocation, you would need to call some sometype_free(&a) function

i find '__attribute__((cleanup (fn)))' fascinating in C, need to try it in some production code though.

aksx··on Linux debugging tools I love
valgrind had a bunch of stuff like massif, callgrind and memcheck but none of them (AFAIK) tell you how long a function call took, and point out the area of code taking too much time, which perf does.
Page 1 of 3Next →