I think what I'm trying to understand is this: if I use EdgeDB in production, how often will I end up dropping down to the SQL level to debug things? If I'm trying to debug a slow query, can I do it at the EdgeDB level? Or will I have to open a PostgreSQL terminal, see how things are laid out there, run EXPLAINs, check the slow query log, and so on?
When I use ORMs, the answer to this is "pretty often". The ORM makes my application code cleaner, but I still need to have a complete understanding of the underlying SQL representation in order to ensure good performance and debug errors. I'm curious how that compares to using EdgeDB.
I'm wondering about the physical level—or at least how the EdgeDB conceptual level is translated to the Postgres conceptual level. The docs, and the comment you linked to, have helped me get pretty clear about the EdgeDB conceptual level.
What's a good way to develop a mental model about what's happening under the hood in EdgeDB?
With SQL, I have a mental model of how things work under the hood. For instance, I think of each table as being stored separately on disk, containing "rows". And the rows are really just equally-sized data blocks that are laid out back to back. B+ trees, with leaf nodes that point to (or just are) the rows, are used for indexes.
When I'm designing SQL schemas, I use this mental model to make guesses about performance. And when my queries are slow, I look at the execution plan.
My question is, how can I develop a similar intuition about EdgeDB? Under the hood, how are types and links stored in Postgres? And if I'm having performance issues, can I see an execution plan?
That's right, it's essentially sandboxing the scripts. But I think the real innovation is an automated system they've created for writing the sandboxing code based on tracing the execution of the malicious/ad scripts in the browser.
Otherwise, what you're saying would be true, and this could be easy to break/bypass.
Correct. I am a Canadian who recently traveled to Canada. I filled AriveCAN out at home, printed it out, and brought the printed receipt to the border.
With a traditional interview and job offer process, a new employee can ramp up without worrying their job is on the line. And I think this is important, because it can take awhile to ramp up to full productivity, which can be stressful if the new employee feels like they're being evaluated already.
Where I've worked, my new manager told me "Hey, welcome to the company. Please feel relaxed and take your time ramping up, you've already passed the interview and we're happy to have you here."
With your process, how do you deal with people getting stressed out during ramp up or feeling imposter syndrome?
I fully support this trend of people thinking critically about college and making their own decisions about it.
However be careful when dropping out if you'll ever want to work outside the country. Most countries require a 4 year degree for work visas, and this can sometimes be onerous to get around. This is especially important for those who don't have US citizenship.
Really fun, but it seems like it provides JS input even if you use python. This causes all of the input cases to be marked as incorrect. For the Arith Geo question, here was my code: https://gist.github.com/1809940 and here was the result: https://gist.github.com/1809944 . So for example it said 'new Array(1,2,3,4)' yielded incorrect output. But I tried running [1,2,3,4] and it worked fine.
I know I selected python because it let me test my code by running it both before and after I submitted.
Anyway it's still really fun - keep up the good work!
Thanks for the feedback guys! I intend to do more interpreter/compiler projects so perhaps you will end up considering one of my future projects sufficiently interesting or exotic :)
Thanks for the feedback. It does support environments - if you check the source code it refers to environments as 'scope'. It is not possible to properly implement lambda without implementing environments.
> It's exactly like learning scheme. Seriously who fucking cares about scheme?
I'm a CS student at the University of Waterloo, where most early CS courses and many advanced courses here use scheme. There are thousands of students taking CS courses here so in fact there is a generation of grads being produced where a significant number (thousands at least) of them base much of their CS knowledge on scheme. That makes it very relevant.
Actually, I think that is the perfect question to ask. Knowing what you want to learn about is a huge step in the right direction.
The author presumes that everyone interested in coding should have a high level of confidence already. I disagree, and feel that if someone wants to learn about a subject, asking questions about that subject is exactly what they should be doing.
There's another github link (https://github.com/oreilly-japan/deep-learning-from-scratch-...) with the code for all 60 steps, but not the explanatory text.