skysight-inc/HackerNews huggingface dataset:
> Don’t ask “trick” questions, like anything where you have to use an obscure data structure or algorithm in a clever way (or dynamic programming).

I just want to put this out there to anyone who gets involved in interviews that this is a very important rule -- if your question can basically be redefined as some really clever solution you found on a problem you put > 30 minutes into, it's probably not a good question.

A lot of the seniors I work with would come up with questions like this, and I get their logic:

1. I'm a senior and this was a challenge for me
2. The logic is clear when you see it and look at it
3. I want people who can do work similar to me
4. I know how to get to the conclusion, so I can judge based on the path the candidate takes
Conclusion: It's a good question

While I understand how we can get to such a conclusion, I think that in most cases the only takeaway you can get is "can this person think like I did in this situation?", which maybe has some value for judging workplace compatibility, but I don't think it's a fair assessment of someone's technical aptitude. If you yourself required a lot of time and brainpower to sort through a tricky issue like this with the benefit of the problem scope and system needs that led to this issue, it's very unlikely you'll be able to judge any assessment

Point 4 seems good at first because we can say "the goal is to just see them think and use their experience"; there is truth to it but without the rest of the context it's not really a good assessment because ultimately, you're looking to see "did you get the same conclusion I did? Did you avoid the same pitfalls I hit?"

Instead, focus on a general scenario that tests their understanding of basic principles. How do they use the fundamental knowledge for the subject matter to work through a new problem that you yourself haven't really dealt with. It removes your bias a bit and opens you up to those "wow why didn't I think of that?" moments that you'd have working on tough projects together.

Try your best to give a good faith interpretation to any path the candidate takes and help take it to natural conclusions, and see how the candidate reacts; if you can see they've made a workable but problematic solution, nudge them towards the problems you see and see how they discuss it.

For me a candidate that can really process their own thoughts and do a good analysis of their own solution (its benefits and shortcomings) is extremely valuable; I usually lead off with "I know how I'd do it, but that doesn't mean it's the right answer, so focus on your strategy and walk me through it." If you want tot test compatibility or you feel you have a stronger solution, accept their solution (if it's valid) then go ahead and discuss your thoughts a bit and see how they respond and how they discuss it. The more you make it a technical conversation against peers and less a university exam, the more you have to see how they think and operate and the better you can understand them.
Specifically the one he calls McCarthy's Hitch:
https://www.youtube.com/watch?v=slOhlEmBwwY
Fun thing with Matriculation examination. The small subjects are not on curve. Like for example Latin... Or higher level Russian where there is enough native speakers to have an effect on it.

Whole stack ranking is just weird. Either the people are good enough to do the work or not. If not eventually fire them. On other hand at top the rewarding extra is an problem, but I don't know if you can do that without someone gaming it.
> customers are generally happy with the value provided

Don't confuse resignation and ignorance with happiness. People are used to computer systems just breaking and being the root of various problems (e.g., identity theft, privacy leaks, systems that just don't work some days for no apparent reason, and so on). The fact that they accept this flaky and unreliable state as the status quo doesn't mean they're happy with it - they just don't understand that better is actually possible.

I work in the security and assurance world. The biggest obstacle we face isn't technical - it's social. Developers want the route of least effort and least time to get products to market, and end users are largely ignorant of the fact that the world doesn't have to be full of garbage software. At this point, I'm rooting for a massive change in the legal landscape to start treating software defects the way we do engineering defects in physical systems. Developers and businesses aren't going to do the right thing by choice, so a giant hammer in the form of the legal system is likely to be the only thing to force change. I am fully aware of the consequences of that (e.g., it will likely severely chill open source, and will likely slow many business sectors down) - and I accept this. I'd take those consequences for the safety/security/assurance outcomes, even if they cause havoc on the revenue/business side and make "10x" python hackers grumpy. People will likely take formal assurance methods more seriously when there are actual consequences to deploying unsafe/insecure systems.
See also Peter Beck of Rocketlab eating his own hat: https://youtu.be/agqxJw5ISdk?t=189
> I don't have the /proc/cpuinfo output any more (see below), but the model name was AMD Opteron 63xx class, or something similar. This is a virtual machine, so I'm assuming the hypervisor was reporting an older CPU model. [...] There actually was an Opteron 6300 series, which matches the reported model name and did support FMA4.

> [...] the CPU is a lie

The hypervisor is a lie.

I suspect the provider disabled the "fma4" instructions. If your program relies on model-specific CPU instructions, it can occasionally be a problem. I used to have a personal server at a big VPS provider. I compiled my program with "-march=native". One day, I found it suddenly started to crash. Upon further investigation, I noticed the "avx" flag had disappeared from my /proc/cpuinfo!

I filed a ticket demanding an explanation. The customer service replied and insisted that they do not just remove AVX, and recommended me to check my kernel. I upgraded my kernel, rebooted, and AVX mysteriously came back. I suspect that they actually did disable AVX to avoid CPU throttling (AVX is notorious for this, it can ironically degrade the overall server performance), and then restored it back after my complaint... Though I had no way to confirm.

If you use a small hosting provider, my suggestion is to never build programs with any CPU-specific instructions. Who knows what server they're moving to after a year?

Since the author no longer has the /proc/cpuinfo, I cannot say anything for sure. If the "fma4" flag was still there, it's a VM misconfiguration. If not, the software was only looking for the model number and not the flags, which is arguably a bug.
It sounds like they were occupied with something that isn't college.
Having the data in a "model" class and the controller implemented as a set of free functions operating on it works well.
Half of this advice strikes me as great: Get to know the people you're working with, and not just your boss. Try to figure out how things work here rather than flailing around trying to make an impact right away

However, I think trying to plan 100 days ahead is not helpful for everyone. Especially in a smaller org, it is likely impossible to plan that far ahead usefully right out the gate. I'm not the most planning-oriented person in general, but even for people who are, I find it's often a huge mistake to make a plan right away, as you are spending time and effort to fix your expectations based on dubious or little information. Maybe in a big, established shop where there are already clear expectations about your contribution even a year in, this advice holds up. I've yet to be in a position where I both have enough power to be sure I can stick to a plan I've made for 100 days in the future and have enough certainty in what's going to happen on that timescale for it to be relevant.
you got the quote wrong
Check out urlscan.io which lets you scan URLs very conveniently and returns a report, including phishing and brand impersonation verdicts.

Disclaimer: I’m the founder ;)
True, but to be fair the issue with the tooth was perhaps a minor mistake by the original artist, relying on a characteristic of the original renderer.

Or maybe it's a bug in the upscaling renderer. Or a combination of both. Either way, the second skull to the right has the tooth blacked out correctly and looks great.

In any case, for the most part the upscaling looks great. Given, as you say, the limited level of detail available in the original art, I think the improvements greatly outweigh the glitches.
> Oh, I found bugs in his code. But that was considered normal. People make mistakes, right?

Should have used TDD/BDD, developed some Gherkin test cases, and used those to develop some JUnit automated tests before starting on the implementation. Oh, and each class -- for the solver, coefficients, variables, etc. -- needs to leverage dependency injection so they can be properly mocked in the tests...

I'm reminded of a story about Kent Beck or somebody, one of the big TDD gurus, who wanted to get a microcontroller to draw something on the screen or something. So he first wrote the program in Java, being sure to employ proper TDD principles, and then hand-translated the Java code to microcontroller assembly or something. But this was feted as a win for TDD and evidence that TDD can be used for anything and therefore should be used for everything. The details of the story are vague, and I can't source it right now, but I know it exists. Some Hackernews is bound to dig up a link, they usually do when I make an obscure reference.
I also have been discussing this idea with others for some time and wonder how it can be exploited to break or improve the patent system. While some now try to patent things build by an AI, I think the other would be interesting: creating random claims using patent language and timestamp those. Combine this with some kind of similarity search to link the generated stuff as prior knowledge to any newly created patent application. Reinforce the generator by its ability to 'predict' patents. Use the argument that patent offices use to fend of ai patents against them: if a computer can generate the creative height cannot be sufficient...
This will only get worse as new generations are taught to demand immediate satisfaction and to abhore having to work for results. They think they deserve anything for the simple fact they exist and desire it.

Replacing scientists with political activists and learning with political activism in Universities just magnified this phenomenon.

This will make the people with knowledge and ability and desire to do work 100x more precious.

And the markets are rewarding the hard work and knowledge, not anything else.

I am trying to instill in my small kids the desire to learn and the ability to work. It will be a hard fight because I will sometimes have to fight against school, politics and the current norms of some parts of the society. But my duty as a parent is to try to prepare them for the future, to make them winners.
I could also talk a lot like this how my students tried to cheat, and how I detected it. 20 years ago.

I had to write special programs to detect written cheats. The online cheating during the written exam was easy to detect, the offline not so. But having written this program helped a lot, and I told nobody the details.

In the end the cheaters were the minority. But if you allow it to spread, 90% will start cheating. The broken windows theory.

PS: And I still talk a lot to my professor colleagues, who are still teaching at university. They told me that COVID was a total cheating desaster. Everyone cheated, everyone. It was impossible to do proper exams at the end of the course. They are all extremely frustated.
> If you're writing a sorting algorithm or a hash table implementation or something, then the spec is meaningfully different from the code. The spec says "the output array is sorted", the program describes some particular strategy for sorting it, and then you use the proof tools to make sure that the strategy actually works to sort the array in all cases.

I dunno. Thinking more deeply about the specification for a sorting algorithm, it makes sense that the specification includes the O(n) runtime (or memory usage, or both), or else it's an informal specification.

If the spec is really nailed down formally then the specification language really would be the implementation language too.
I somewhat agree about it being a chance for students to take education for them, but there is also the issue of an institution offering a limited view on a subject like computer science. For example some time ago I estimate that mainstream OOP was taught everywhere, while there was almost no place teaching FP (This is changing slowly now). Even if you took every opportunity you had, you might not have even a teacher or lecturer, who is familiar with it. You could only learn on your own, which you would not need that institution for.
Teaching quality is not the same in all places. Teachers and lecturers are not the same everywhere.
The most awesome way to bundle data and functions would be what I call "standalone modules".

So in Python you could do:

import greeter standalone greet1
import greeter standalone greet2

greet1.name = 'Joe'
greet2.name = 'Sue'

greet1.greet()
greet2.greet()

And greeter.py would look like this:

name = 'nobody'

def greet():
print ('Hello '+name)

Output:

Hello Joe
Hello Sue

So just like it is now, but with a "standalone" keyword that turns an imported module into an "instance".
I was a C student in high school. I never took a math class beyond basic algebra. I started from Khan Academy's first exercise when I was 33 years old. It seems silly looking back that I was solving problems on the number line as an adult.

At that time, around 10 years ago, Khan Academy had excellent coverage through trigonometry and single variable calculus. Once I reached that point I went to my local community college and took all of their math classes. I transferred to University of Illinois at Urbana-Champaign and continued onward to get a BS CS, BS EE, and MS EE. I finished at 41 years old and landed a dream job that I would have never thought possible when I started.

I guess my advice is to start from the beginning and see where it takes you.
Can you share your experiences working with Elixir for this kind of project? Sharing anything about strengths, weaknesses, or general insights would be appreciated.
If you find yourself regularly writing functions that return more than one closure, you should consider using a class instead.

That’s an ironic joke of course — who does this? — but it’s a helpful way to then think about the inverse. If you have a class with one function then it could probably just be a closure.

Even better, if it closes one thing, one thing only, and uses that thing while never modifying it then your class is really just a group of functions all of which share the same first argument. Quite a lot of “Database” abstractions are like this, with methods built around a single internal reference to a database connection.

The downside of returning a function instead of an object is your caller has to give it a name:

lol = build_handle()
lol()

…versus the class-as-sensible-name-enforcement version:

lol = Handle()
lol.sensible_name()

As always, quite a lot of these problems are stylistic (or cultural, if you work in a team) rather than technical.

Coding is, amongst other things, an exercise in design.
If I was a parasite infecting worms, I would try to make them surface to increase the spread. Maybe the water is a trigger and only adult worms come out to maximize the load.
https://www.bloomberg.com/news/articles/2022-05-28/lithuania... On Bloomberg.
MoonScript, a programmer friendly language that compiles to Lua (2017)
If we have to give Leetcode questions I'd at least like there to be an option to do it by myself, no one watching me type or asking questions if I'm thinking more than a minute. This interview style is so unrealistic and stressful, and turning a normally stressful event to a real horror show.
Yes you'll have to somehow see to it that I don't cheat if you leave me alone - which makes it harder, but it will be much more humane.
Kinda, they can classify the activity of the engineers project work as r&d, and capilise the appropriate amount on the balance sheet (i.e. does not show under r&d expenses). Over time that would then be shown as depreciation, not r&d. You can't captilise an engineers time that is maintenance work.

A quick look at Ubers annual report states they do not capitalise r&d costs and instead expense it as incurred.
Take Rust. For each and map generally are faster because they often allow bound checks to be elided.

100% trivia.
> E.g. in python functions from imported modules easily litter your namespace

`import *` isn't recommended. I only use it in `__init__.py` when I want a flat package that exposes symbols implemented in multiple submodules.
Why would the new PR referendum give a different result to the previous PR referendum?
> Lots of people can bullshit their way out of this. They just repeat stuff they heard their teammates say.

Indeed. The only way such questions are useful, is as a starting point, maybe they make the candidate more comfortable (less nervous), and they also ensure that you're not asking something the candidate is completely unfamiliar with.

But in any case, any such "experience" or generally "subjective" question must be accompanied by further detail-oriented questions - why did you do this and not that, tradeoffs of different solutions, "how does this framework/library work underneath", questions about understanding performance/security etc characteristics and why, etc.
Why is Lisp/Scheme a good candidate for something to implement oneself? Because it has hardly any syntax, so writing the parser is relatively easy compared to writing the parser for other languages.

> What's at the heart of Lisp that makes it so simple and elegant?

In terms of implementing it, probably the Cons Cell. The insight being that the heart of Lisp is pairs, not lists:

https://www.gnu.org/software/emacs/manual/html_node/elisp/Co...

https://cs.gmu.edu/~sean/lisp/cons/
Just impossible to navigate to by voice. In the office here people often call out the number of the page, but nobody will call out cursor AHgeuusn5d
Is this a real thing? What if greet imports a module, is that one shared or instanced twice?
Plain old math can be a threat to crypto. None of the popular algorithms are rigorously proven to be so hard to break as advertised (like NP or similar). Quantum machines can exacerbate this but it's not the only possibility.
Above is not advice but I would echo it, with emphasis that higher education makes much more sense when you go there as an adult with other stuff to do outside of it so uou just focus on learning things.
Our Sun Could Someday Reveal the Surfaces of Alien Earths
ah, that's the reason why I don't put TS on my resume, despite having worked with it for years on personal projects.

the number of 1000 LoC solutions for 100 LoC problems I saw in open source projects fills me with dread
I don't even think it's as clever as testing for anxiety. I think they have to be there watching your back to make sure you're not cheating - the problems they give are easily searchable online.
As a by product they will also test for candidates who are super good under stress (or drilled Leetcode so hard there's no reason to be in stress).
The difference is that quantum computers exist, while star-trek teleporters don’t (yet).
At best the project managers and team leads.

No decision is worth this much money when it comes at the expense of paying the people for their labour.
Sometimes I think with Herzog and Kinski two lunatics had found each other and it is interesting to see how both dealt with it. While Kinski was pulled down by it like in a vortex Herzog seems to have learned to ride the wave and use it at his advantage.
I thought generally the government made the rules. And Parliament votes on them.
How does one solve a quadratic in just two lines? Did you omit degenerate case checks and/or number of roots?
Khan Academy is a pretty solid starting point. There's also a lot of great stuff on Youtube. I'm a fan of a Professor Leonard. He covers from pre-algebra through differential equations.

https://www.youtube.com/c/ProfessorLeonard
All you need is a tiny view lib like lit-html/uhtml, and event dipatcher (DOM element can do that, or use bare EventTarget), now you get a MVC pattern loop; event fired -> state changed (+ optional effect) -> re-render.
What if they shrink this technology, yet to the size greater than modern chips and we land with equivalent of 50's main-frames, but much faster?
Of course I have no idea on energies required, speed/size-distance trade-offs, etc.
It’s so odd to see people expose themselves on Tiktok like that. It’s very clearly a public forum, I don’t use it but based on all the videos that have been shared with me off-platform I assume there isn’t even a way to set privacy settings, so all videos are all public.

And yet people regularly share things they’ve recorded themselves that they are then embarrassed by or claim they’re being doxxed when the video gets shared widely. Why would you publicly state that you’re gonna cheat? Why would you publicly state that you’re gonna break the law? Why would you publicly record and share yourself breaking the law? Using an app made by a regime that sees privacy as an inconvenience.

100% of Tiktok users are not anonymous to Tiktok, which means with a simple subpoena are not anonymous to anyone.
Their paper (https://www.usenix.org/system/files/atc20-conway.pdf) reports a 6-10x speedup on insertions and 2x lower write amplification as compared to RocksDB, on fast NVMe hardware, for certain benchmarks.
The authors found that RocksDB (and other storage engines) start being bottlenecked by CPU and have come up with some ways of tackling those bottlenecks, including a novel data structure named STB-tree.
The current SplinterDB version has a list of acknowledged significant limitations and is not recommended for production use by the authors (yet).
I can't help but be more impressed by a guy who quite clearly genuinly likes both the programming and math, had fun with assignment.

I don't know how your two liner worked nor why it was deemed improper. I don't know whether it solved all special cases. But it in fact failed your political goal.
I think anyone who is naive enough to think that school is about anything but conformance deserves to fail. I did some courses before college and got a high grade and when I went there for my bachelor's degree, they didn't count that course towards my credit points, I had to do it again. In other words, my knowledge means jackshit at a educational institution. The only thing that matters is whether I can navigate the bureaucracy. Get that in your head.
"About 24 percent of Uber’s bookings—all the money that customers pay through the app and in cash, including driver earnings—occur in just five cities: New York, Los Angeles, San Francisco, London, and São Paulo." 2019
As others have mentioned electricity works, but so does a sledgehammer or a pole-pounder.

Do worms come to the surface because of the water, or because of the thunder?

Beginners guide to starting a worm farm - to aid in composting or to get their casings (they move their poo above ground) - electricity or strong localized vibrations.

Probably off topic, sorry.
Right-wing terrorism must not be forgotten. There are indications that people involved in NATO's "stay behind" forces, designed for guerilla warfare behind Russian lines, turned terrorist and were responsible for terror attacks in Italy and Germany in the 1980s. The crimes were never fully solved, though. There was also a neo-Nazi terrorist group (NSU) active in Germany in the 2000s.