Hacker Newsnew | past | comments | ask | show | jobs | submit | mFixman's commentslogin

Removing AI watermarks is still easier than doing a school assignment.

The only way to prevent AI cheating is to make the assignments in class in pen and paper. To be honest, I don't understand why schools moved away from that in the first place.


> I don't understand why schools moved away from that in the first place.

Cost and convenience.

Being able to work on computers does help people with bad handwriting, which includes some disabilities.


Yes, and back in my school days we all did our tests on paper, except the two kids who had a slip of paper that allowed them to take a digital test instead. Helping people with disabilities doesn't require having everyone make their tests on a computer.

And taking away writing from people with bad handwriting (if not related to disability) is just about the worst thing to do if you want them to ever get better at it.


Idk, I’ve had bad handwriting my entire childhood and I still have bad handwriting now as an adult. I’ve (somewhat jokingly) announced that I am “illegible”. It isn’t a detriment to my day to day activities at all, because I can type sufficiently well


And now instead of teaching disabled students how to improve their handwriting to improve their lives regardless of their circumstances, we lowered the bar and made all students have bad handwriting.


I am talking about disabilities which affect things like motor control which means that they cannot improve their handwriting very much.

How does good handwriting improve people's live significantly? I know some people who prefer handwritten notes and I think there is research that says they can be more effective when learning, but most adults very rarely write more than a few lines by hand.


You could say the same of PE, maths, literature, or almost anything learned in school. Few adults need them in their lives, but they provide good habits and virtue to students. People who don't read and write anything outside social media are a loss to themselves and to society.

Disabilities don't disappear after school, and children who struggle with motor control in school will continue struggling with it on adulthood. Half the point of school is finding out your weaknesses and learning to overcome them in a safe and controlled environment.


Studying maths and literature should develop your mind in many ways and gives you a chance to enrich your life. I do not see how handwriting will do that.

Pushing someone with a disability to improve their handwriting will not cure their disability. How does making people struggle more help them? its like suggesting kids in wheelchairs should be made to try to walk.


> . Half the point of school is finding out your weaknesses and learning to overcome them

Learning to use a computer as a means to overcome a disability that makes handwriting painful or difficult or illegible sounds like it'd qualify as exactly that.


I have been successfully using the Consent-O-Matic extension [1] to auto-decline all cookie and GDPR banners. As much as I'm not comfortable giving potential access to every website to some extension developers, this improved my internet experience almost as much as AdBlock.

Does anybody here know of a better solution?

[1] https://addons.mozilla.org/en-GB/firefox/addon/consent-o-mat...



Lumon is currently hiring new candidates willing to undergo severance :-)


Seeing that the series aired on Apple TV+, it seems like Apple knows exactly what its employees are doing. Maybe they just turned what their employees want into a drama? hehe


I wouldn't be surprised if the EU and ISPs are funding fibre to remote locations _because_ of Starlink competition.

Taxis and minicabs all over the world were unreliable, expensive, and unsafe before Uber came along with some healthy competition. The same dynamic is happening here between Starlink and rural fibre.


The killer feature of Organic Maps and OSM is the POI markers for small things. If you are cycling, knowing where the nearest bike rack is to your location is crucial.

Google Maps is very good at showing car parking spaces, which is the requirement if you live in a suburb in California like its developers.


What's the status of banking apps, Google / Microsoft authenticator, and Google Wallet? Those were the things preventing me from abandoning stock Android.


You can check this crowdsourced list for the compatibility of banking apps: https://github.com/PrivSec-dev/privsec.dev/blob/main/content...

Authenticators should work normally, as far as I know (unless Google Authenticator does anything special). Can’t say anything about Google Wallet. There might be more lists/forums where people share which setups are (not) working well for them.

In general, I had these concerns as well until a few months ago. But I am much more optimistic these days that things will just work well out of the box (have read many positive sentiments in blog posts and here on Hacker News).


Nobody in the chain of command thought this was a real emergency situation.

The point of turning Bluetooth off or having to turn around the aircraft was to follow the airline's rules on terrorism, which likely tell them to abort a flight route if there's any symbol that could be interpreted as a bomb.

The captains were risking their jobs if they didn't follow this stupid request. This is a good case for getting common-sense exceptions to checklist-style rules.


> Example: Point at a date in an email to instantly set up a meeting, find good spots to meet up, or draft a reply.

This is actually a good use case for AI. My university sends a lot of newsletters with several events in free text format; all I want is to be able to select one of them, have an LLM parse the title, date, location, and category, and put it in my calendar.

Still, I'm sceptical this will work. Samsung phones supposedly have this same feature, and it works 1/10 of the times. Pasting it to ChatGPT and tell it to add the events to my calendar works fine, but the bottleneck is always the project managers in charge of the UI. Of course, having a small local model and being able to choose my own right-click items like I could in 1995 would be an actual solution.


The Cambridge list of talks at https://talks.cam.ac.uk is unbeaten.

The site loads in less than a second, you can do anything intuitively with a single click, all pages have a lot of useful information with zero fluff or clickbait.


uh oh!

"This version of Talks.cam will be replaced by 1 July 2026,"


It was originally going to be scrapped by a Web 3.0 app-only proprietary events system, but we did a small campaign inside the university to keep the site on. As far as I know, the changes will now only be on the backend.


I used to slay with this in code golfing competitions from TopCoder, where you had to implement a function to solve a particular problem, thanks to C pointer maths and the gcc generally putting function arguments in order in the stack.

Turns out, these two are equivalent in practice (but UB in the C++ standard):

    double solve(double a, double b, double c, double d) {
      return a + b + c + d;
    }

    double solve(double a ...) {
      return a + 1[&a] + 2[&a] + 3[&a];
    }


> Turns out, these two are equivalent in practice

Not in the x86-64 SysV ABI they aren’t. The arguments will be passed in registers (yes, even the variadic ones), so how your compiler will interpret 1[&a] is anybody’s guess. (For me, x86_64-unknown-linux-gnu-g++ -O2 yields, essentially, return a+a+a+a; which is certainly an interpretation. I’m also getting strange results from i686-unknown-linux-gnu-g++ -O2, but my x87 assembly is rusty enough that I don’t really get what’s going on there.)


Example compiler explorer view: https://godbolt.org/z/b5z3q1616

Clang does the sensible thing with UB and just returns poison (a form of undefined value) in both cases, which manifests as do nothing on x86-64 and load a zero value on i386, because you need to push something on the stack and fldz is one of the cheapest ways to push something. Meanwhile, gcc is in both cases for the UB variant returning a + a + a + a;

FWIW, going back through older gcc versions, it seems i386 gcc stops implementing 'add the arguments' in version 11.1, although it's not until 15.1 that it has a sensible assembly for 'a + a + a + a'. The x86-64 gcc version is broken in 4.0 (where it stops copying the register arguments to the stack when va_start isn't called, I guess). Then it's adding xmm0 to the top 3 values on the stack until 11.1, when it's adding 'a + a + a + a', although not sensibly until version 15.1.


> return a+a+a+a; which is certainly an interpretation.

Zero is the only valid index of &a, so I presume the compiler just assumes that all the indexes in 1[&a] + 2[&a] etc must be zero. Even though they're in this case compile-time constants – the optimizer could check but why bother given that it's UB anyway. I assume modern C/C++ compilers have some flag to diagnose indexing that's known to be OOB at compile time.


I’m so used to sticking -Wall in my compilation flags the moment I write a build script that I didn’t realize it wasn’t there for this quick experiment. Yes, thank you, there are indeed diagnostics once you ask for them:

  test.cpp: In function ‘double solve(double, ...)’:
  test.cpp:4:20: warning: array subscript 1 is outside array bounds of ‘double [1]’ [-Warray-bounds=]
      4 |     return a + 1[&a] + 2[&a] + 3[&a];
        |                ~~~~^
  test.cpp:3:58: note: at offset 8 into object ‘a’ of size 8
      3 | extern "C" __attribute__((noinline)) double solve(double a, ...) {
        |                                                   ~~~~~~~^
  [repeat twice more for the other two accesses]


K&R syntax is -1 char, if you are in C:

    double solve(double a,double b,double c,double d){return a+b+c+d;}
    double solve(double a...){return a+1[&a]+2[&a]+3[&a];}
    double solve(a,b,c,d)double a,c,b,d;{return a+b+c+d;}


>turns out these two are equivalent in practice

Err no; https://gcc.godbolt.org/z/sW3ea58oc

They're equivalent on GCC.


    double solve(double a[]) {
      return 0[a] + 1[a] + 2[a] + 3[a];
    }

    solve((double[]){1, 2, 3, 4});
The cast in the invocation can be macro-ed away. And the best thing is, the actual stack layout and data movement/shuffling is pretty much identical to the approach with <stdargs.h>, and with no UB or compiler intrinsics.


That's a compound literal, not a cast.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: