Java's not my favourite language either, but the only "nice" language on his list is C# and particularly if he was using it in a .NET context then it's got a steep learning curve:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
Working with closures and run loops is a pretty rough starting point compared to other languages where you start with just print "Hello World". Those concepts are relatively simple for someone experienced but a beginner can easily hit a brick wall they can't climb over.
The key is to start small - throw away money for the victim so they don’t think it through.
Then you progressively ask for larger amounts working the victim over with the sunk cost fallacy.
It doesn’t take much, the victim naturally doesn’t want to admit they fucked up, and you can reinforce that so they think they’re doing the right thing by investing more money.
Keep it up until they are bankrupt, then disappear.
People have invested years I their twitter profile. They don’t want to admit it was a total waste of time.
Within a week there had been a complaint filed against her for “vandalizing” someone’s door… by taping an apology note on there.
I've seen tape rip paint off when it's removed. The door has to be removed, sanded back (the entire door, not just where the tape was... because door paint fades and you can't match the color). A door needs three coats of hard wearing slow drying paint - has to dry overnight between coats... making it a four day job.
Worst of all, the door has to be horizontal while the paint dries - so that's four days with no front door. Not an option. They will usually just replace the door and that can cost thousands (but at least it won't leave you without a front door for days).
If you want to leave a note for someone - use the letterbox.
Good times.
Yeah see that shit just isn't worth it. I had a neighbour threaten to pour milk into a work colleague's car door once. Car doors are full of noise insulation material that would have soaked up the milk and gone mouldy/started to stink. Costs a fortune to fix that.
Best thing to do in my opinion is call the police, anonymously. If it's not worth a formal complaint then it's not worth complaining at all.
And chances are it will be investigated pretty quickly... you're likely to cause problems for more than just the next door neighbour's music. A friend of mine is a cellular radio technician and is occasionally tasked with identifying signal problems. Usually it's unintentional - some electronic device that isn't working properly, and they have tools to find the source relatively quickly and and order the owner to turn off and repair/destroy whatever is causing problems.
He said when nobody is home in the building that appears to be broadcasting noise, he will call the utility company and have them shut off power to the building to try to stop whatever is broadcasting.
These two code blocks don't use standard libraries (aside printing output) and have nothing in common. Even output is totally different, since at the time JavaScript did not support text output at all (there was no browser console). They are as close as you can possibly get between the two languages (they're not really close at all, because in the 90's it wasn't possible to define "real" classes in JavaScript, and to this day it's not possible for a function to have instance variables in Java).
And as someone who's been writing JavaScript professionally for 20 years... I assure you it's full of quirks that still confuse the heck out of me at times. I mean just last week I had a problem with variable scope that took me three hours to figure out what was wrong with the code. I'm sure some people are more familiar with it, but I'm not one of those people... probably because I avoid the language as much as I possibly can and try to make it behave like "any other language" even though it definitely isn't that.
Java:
public class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
public class Application {
public static void main(String[] args) {
Animal myAnimal = new Animal("Spike");
System.out.println(myAnimal.getName());
}
}
JavaScript:
function Animal(name) {
this.name = name;
}
Animal.prototype.getName = function() {
return this.name;
};
var myAnimal = new Animal("Spike");
alert(myAnimal.getName());
Bullshit. AOL was a huge company with large development teams and lots of people worked on JavaScript. Obviously there was a project lead and in the beginning he did most of the work, but a project that big doesn't get done by one person and by the end he would have been doing less than 1% of the work.
he decided on the name of JavaScript
The legal teams at AOL and Sun Microsystems negotiated JavaScript as part of a deal where AOL would "only" pay millions of dollars per month to license Java as long as they didn't include any other programming languages in the browser. JavaScript wasn't a separate language, we promise.
They clearly meant JavaScript to be to Java what AWK is to C
No. From interviews with the people who created JavaScript what actually happened is they invented an awesome new language, and the boss had just signed a contract to integrate Java into Netscape.
That contract specifically banned Netscape from supporting anything other than Java... but the new language was so awesome they didn't want to kill it. The compromise was to call it "JavaScript" and insist it's not a new language, it's just a light weight version of Java. Even though clearly that was bullshit and they all knew it - they just didn't admit it publicly until decades later.
Pointers suck in C++. In other languages every single variable is a pointer and it works perfectly with no memory bugs and great performance.
Pass by value often uses too much memory. Especially if you have a bunch of simultaneous functions/threads/etc that all need to access the same value at once. You can get away with it when your memory is a few dozen integers, but when you're working with gigabytes of media... you need pointers. Some of the code I work with has values so large they don't even fit in RAM at all, let alone two or three copies of them. Pass by value could mean writing a hundred gigabytes to swap.
A better approach is the one Apple uses with Swift (and before that, Objective-C... though that wasn't memory safe).
In swift the compiler writes virtually all of your memory management code for you, and you can write a bit of code (or annotate things) for rare edge cases where you need memory management to do something other than the default behaviour.
There's no garbage collection, but 99.999% of your code looks exactly like a garbage collected language. And there's no performance penalty either... in fact it tends to be faster because compiler engineers are better at memory management than run of the mill coders.
I think Apple made a serious miss-calculation there. If they're being honest, and removed web apps because they are technically difficult to implement, they should have said something along the lines of "we are working on this and will disable it temporarily to avoid penalties".
But I suspect it's got nothing to do with that. Web apps can run native code with WASM and it would only be a matter of time before someone (google?) releases a "browser" that allows you to run native Android apps. Or worse, native iPhone apps... bypassing Apple's Core Technology fee since it's "just a webpage".
iPhones don't even turn wifi/bluetooth off when you toggle them specifically. They certainly don't disconnect in airplane mode.
The quick wifi/bluetooth buttons are to disconnect temporarily when you've got a bad connection. Or if your husband started the car but you're not in it, you're just nearby. They're not to turn the radios off.
That problem relates to landing an airplane with a 5G tower near the airport. Nothing to do with passenger phones.
And honestly it's a faulty radio in the airplane. They shouldn't be disrupted by 5G towers at all... but Boeing doesn't want to pay for replacement parts and neither do the airlines.
Cell towers, without mountains/buildings blocking them, reach 10+ miles and airplanes don't fly that high... so you are within range of towers while flying unless you're over the ocean.
However, connecting to a tower that far away requires running the radio at maximum transmission power which absolutely kills your battery. Also the towers reject your phone's attempt to connect because they are programmed to ignore distant connections when they know a dozen other towers are within a few miles of that tower. If you're flying over remote areas where towers will accept any connection you might occasionally get enough signal to call 911 but i likely won't be a usable data connection due to how far away you are.
Wether it shows a connection or not, your phone is still reaching out trying to connect and doing handshakes with towers on the ground.
On iPhone the airplane toggle is the cellular toggle. It leaves all your other radios active.
It also disables GPS but only because that doesn't work anyway in a fast moving faraday cage without cell tower triangulation.
If you want to disable wifi or bluetooth, those are separate toggles... and by default they just disconnect from your current wifi network and some of your bluetooth devices (your smart watch for example, will stay connected over bluetooth). The buttons are there to use if your wifi or bluetooth aren't working properly, which can always be fixed by just disconnecting rather than disabling the radio entirely.
Find someone else's open source mod and try to change how it works.