Aloso

@Aloso@programming.dev
0 Post – 21 Comments
Joined 1 years ago

Oh, didn't the domain somesoftwarecorp.com give it away?

2 more...

They still have their place; for example to embed Google Maps or a YouTube video. Generally, whenever you want to embed something from a different website you have no control over, that shouldn't inherit your style sheets, and should be sandboxed to prevent cross site scripting attacks.

1 more...

Iframes cannot access the main frame's DOM if the iframe is from a different origin than the main frame, and they never share the same JavaScript execution context, so an iframe can't access the main frame's variables etc.

It's not required that iframes run in a different process, but I think they do at least in Chrome and Firefox if they're from a different origin. Also, iframes with the sandbox attribute have a number of additional restrictions, which can be individually disabled when needed.

The name "pull request" is actually more accurate, because you ask the upstream repository to git pull the changes from the downstream repo.

2 more...

I guess it cannot be done if their IT infrastructure was not designed with that use case in mind. Although I'm not familiar with human resource management software, I don't find this hard to believe at all.

Also, you'll understand what Biron Tchaikovsky meant with "Please believe me" when you look at their email address. They already tried to do it, and probably complained many times before giving up.

"secure" is relative. They may not be e2e encrypted, but they are still encrypted via TLS, like any HTTPS traffic. It's the same encryption used for online banking. If you care about your instance admin being able to read your messages, you should use Signal or a Matrix client though.

But remember that only a few years ago, almost nobody used e2e encryption, and it wasn't much of an issue.

Apparently the maintainer trusted the first-time contributor enough to propose tackling another bug.

There is no trust needed when asking someone to fix a bug. It's not like the maintainer would lose anything if the contributor failed to fix the bug.

Besides, I think it is natural to want recognition when you do a lot of work for free. Many other people wouldn't do this unpaid work at all; recognizing their contribution is the bare minimum of good manners. Even in a company where employees are paid for their work, it is customary to give credit to co-workers who have helped you. Most people don't like to work in places where they don't feel appreciated, and that is also true in Open-Source.

Lemmy is like Reddit, which is used a lot to ask questions and get help. But StackOverflow fills a different niche, it's meant to be useful to as many people as possible and stay up to date. This is why

  • there's a distinction between "comments" and "answers" (comments can be used to request additional information, and for meta discussion)
  • both questions and answers can be modified by other users, for example to
    • add more information, or remove unnecessary details
    • correct outdated information
    • fix typos and formatting
    • rephrase sentences that are confusing
  • a question can be closed as duplicate, so people always find the oldest thread of the question with the best/most detailed answers
  • before submitting a question, you get a list of related questions to avoid creating a duplicate question
  • questions have tags, making them easier to search for

We have pointers in Rust, too :) see documentation

1 more...

Microsoft does collect a lot of data. But storing every keystroke is first of all impractical, because it would take a lot of disk space to store every keystroke of every user, and secondly not very useful unless they also knew when, in which application, and in what context each key was pressed.

Even if this was true in 2013, when this article was written, the more accurate answer today would be "it depends".

In Rust, there are multi-threaded async executors implementing M:N threading (e.g. tokio), where M asynchronous tasks are mapped to N operating system threads. So when you await, the rest of the function may very well run in a different OS thread.

Swift also has async/await, and like tokio it uses multiple threads to run concurrent tasks in parallel (therefore using multiple OS threads).

Scala's equivalent to asynchronous tasks are Promises, which can also run in parallel, as I understand it.

Kotlin doesn't have async/await, but it has a similar concept, coroutines, which are basically a superset of asynchronous tasks. While Kotlin's coroutines are single-threaded by default, there is a multi-threaded implementation, enabling truly parallel coroutines.

Go also uses coroutines (which it calls "goroutines"), which can use multiple threads.

C++ will soon get coroutines as well, which support multithreading to run coroutines in parallel.

Easy interop with legacy code is how kotlin took off, so maybe it will work out?

Good interop was a requirement for widespread adoption, but not the reason why programmers want to use it. There's also null safety, a much nicer syntax, custom DSLs, sealed classes, type inference, data classes, named and optional arguments, template strings, multi-line strings, computed properties, arbitrary-arity function types, delegation, custom operators, operator overloading, structural equality, destructuring, extension methods, inline functions and non-local control flow, reified types, ...

Some of these features have since been added to Java.

No it's not, it is 100% a unit type (except it's not really a type, since you can only use it as return type and nowhere else)

2 more...
  • Svelte/Vue/React components need to be compiled
  • JavaScript should be minified if the project has a significant size
  • File names should have a content hash, so they can be cashed in the browser
  • Even with HTTP/2, there's still a case to be made for bundling hundreds or thousands of JS modules into a single file for better performance
  • Bundlers give you a dev server with live reload and hot module replacement for great developer experience
  • Setting up Vite is really easy and requires minimal configuration (compared to Webpack, for example)

I started another, even bigger flag at (960, 830). Feel free to help!

P.S. I also started an ace flag, a non-binary flag, with more to come :)

Whenever possible, it’s recommended to work in a common Git repository and use branching strategies to manage your work. However, if you do not have write access for the repository you want to contribute to, you can create a fork.

A fork is a personal copy of the repository and all its branches, which you create in a namespace of your choice. Make changes in your own fork and submit them through a merge request to the repository you don’t have access to.

https://docs.gitlab.com/ee/user/project/repository/forking_workflow.html

How is this different from GitHub?

Just to make sure there's no misunderstanding: When I want to contribute to a project I'm not involved in, like inkscape, I'm not allowed to create a branch in their repo, so I have to fork it, which creates a copy of the repo, and sets the original repo as a remote.

Note that git is a distributed VCS that doesn't distinguish between servers and clients. Forking and cloning are the same operation from a technical perspective, except when you git clone, the copy ends up on your local machine, and when you press the "fork" button, the copy is on a GitHub/GitLab server.

You confused revenue and profit. You must subtract expenses to calculate the profit. For example, if you buy something for $20 and sell it for $21, your revenue is $21, but your profit is only $1.

Facebook reported a profit of $39 billion in 2021 and $23 billion in 2022. This takes their expenses (salaries, offices, data centres, etc.) into account.

It is well supported in all browsers and operating systems. At least VS Code and IntelliJ support it, and even some terminals.

It's not possible to instantiate or assign, which is more like a never type than a unit

Actually, this is because void is not a type, it is just a keyword, a placeholder used instead of the return type when a function doesn't return anything.

If it were a bottom type, that would mean that a method returning void must diverge, which is simply not true.

Also, if it were a bottom type, it would be possible to write an "unreachable" method

void unreachable(void bottom) {
    return bottom;
}

Even though it couldn't be called, it should be possible to define it, if void was a bottom type. But it is not, because void isn't a bottom type, it's no type at all.

Sure, but raw pointers and unsafe Rust are still covered in the official learning material, so I assume that most Rust devs know about raw pointers.