3,025 karma · joined November 13, 2009
This is a good sign for the whole industry at large, considering how bad the tech job market has been for the last two years.
But you have to be intelligent about it in other circumstances, and consider whether it’s actually worth throwing your life away, if the enemy isn’t genoicidally murderous like the Germans under the Nazi party.
Consider African Americans under Jim Crow laws — should they have fought violently? That only would have led to them murdered, even potentially in large numbers. African Americans have survived in the U.S. and not been mass murdered partially due to not fighting (and also by moving to more hospitable areas during the Great Migration).
To quote https://www.theatlantic.com/magazine/archive/2014/06/the-cas...:
>It was in these early years that Ross began to understand himself as an American—he did not live under the blind decree of justice, but under the heel of a regime that elevated armed robbery to a governing principle. He thought about fighting. “Just be quiet,” his father told him. “Because they’ll come and kill us all.”
Basically don’t fight the enemy that’s enslaving you, unless you’re strong enough to win; otherwise you endanger suffering ethnic cleansing / genocide of your people.
When a breakpoint is tripped, with most modern IDEs and languages, you can see the local stack, global state (and pretty much all state), and this state is presented in a UI with dropdowns, etc. Debuggers in modern IDEs also let you evaluate an expression in place, where the breakpoint was tripped, so you can further dig into the local state with a debugger. This sort of works like a REPL (but you're "sort of" limited to a single expression -- but that's something you can still circumvent with an immediately-called lambda).
>You can then edit the source for that function, compile only that function in place, then resume execution.
This is supported by some languages, but admittedly support for this varies widely, and sometimes can be weak or finicky. For example, the JVM family of languages have a feature called HotSwap. This feature is quite old: https://www.jrebel.com/blog/java-hotswap-guide -- it was introduced in 2002 with the Java 1.4 JVM. I use it even today, with personal projects, where I update the code of a running server live (without restarting the server).
HotSwap unfortunately sometimes is broken with certain major JVM frameworks, but for my personal projects, I've always made sure to only use libraries that work well with HotSwap, since I consider live code patching of a running server to be an absolutely important feature.
>the "esc-." method of going directly to the source
To be honest, I'm not entirely sure what you mean here. When I'm working on a project (as in, I have an IDE open for it, and I'm writing the code for it), all the code is right there. When I use a debugger, I can see the stack of all the ancestral functions, and with a single click I can go to the definition of any function. Static typing basically makes the "Go to definition" more precise, as it always jumps to the place in the code (file & line) where any particular function or value is defined. With dynamically typed languages, an IDE can sometimes show you multiple option when there's multiple functions with the same name defined in different places.
>These three things are all done from the REPL. I don't have any experience doing C or C++ from a REPL.
Most of the features I've described above work with C and C++ IDEs (like CLion, Visual Studio, etc), except for the live code hot swapping -- I've only used live code patching with JVM HotSwap with Java, Kotlin, etc.
If you’re working on a project (on its code), then you can (obviously) see its code as well.
Statically typed languages make exploring the code a lot easier, especially with an IDE which leverages the type information to assist in code exploration.
> The second thing is if there is an error, it displays the stack with the ability to see what the local variables are in any function on the stack.
This works with debuggers (and is easy with an IDE) in most popular languages.
> The third thing is that one can patch a running program, either once a breakpoint ('break) is encountered, or by doing control-C at the repl. And then resume it.
You can do this with most major languages today as well.
Care to defined "awful" here? Is this an euphemism to refer to non-European immigrants?
Canada has done very well with immigration IMO. A far more sensible and welcoming system, and most immigrants integrate and do well in Canada pretty quickly.
It’s amazing that stuff still runs on Windows 10. I’m guessing Windows 10 has a VM layer both for 32-bit and 16-bit Windows + DOS apps?
Sales tax is 13% in Ontario, so even with that, the exchange rate should be 1.35 * 1.13 = 1.53 not the 1.60 exchange rate they use. I'm assuming shipping is already included in the price in the US as well, and shipping cost in Canada shouldn't be that much different compared to the US. I guess if the cost of shipping is higher in Canada, then that explains the USD-CAD conversion jump from 1.53 to 1.60.
That's an "exchange rate" of 1 USD = 1.6045 CAD. That is a far cry from the actual exchange rate (which is 1 USD = ~1.35 CAD).
And ReMarkable isn't the only company selling products at rip-off pricing to Canadians.
This absolutely sucks.
1. For the mirroring, are you using something like rsync (with modifications for the web socket script injection) underneath? Also, will the mirroring reflect destructive changes (like rsync's --delete flag), like if a directory or file is deleted in the original content directory?
2. Could you avoid mirroring the content directory, and just directly serve the original content directory, by just simply on-the-fly injecting the relevant script tag in text/html files? (Or, only mirroring those text/html files, and serving the remaining files from the original content directory.)
Incentives would have been better than tariffs to boost U.S. solar manufacturing.
On (1): needing the approval of the senate, house, and president makes it very hard to pass laws.
On (2): the senate rule requiring 60% approval has already been repealed for appointments and for budgetary legislation, but it really needs to thrown out. The first two years of Biden’s presidency were mostly lost to obstructionism because of this rule.
On (3): this will most likely be banned if democrats get a trifecta federal control, and repeal (2), since gerrymandering primarily just benefits republicans.
Something like this already happens with housing and NIMBYism.
If you have net metering, being able to push power back into the grid is a major plus.
On the flip side, standards committees can be painfully slow.
Can anyone explain why DOM access from WebAssembly hasn’t even been specced out yet (let alone even implemented) despite years and years (approaching a decade) of discussions around this? Like, seriously, what is going on with this?