• 0 Posts
  • 45 Comments
Joined 1Y ago
cake
Cake day: Jul 01, 2023

help-circle
rss

Trains are expensive to run if you don’t have enough passengers (like in small villages).



At least Android also proactively asks them whether to disable notifications for an app if they always swipe them away, or if they haven’t used the app in a long time.



The default now is that apps have to first request notification permissions, on both iOS and Android.


I don’t see the US restricting AI development. No matter what is morally right or wrong, this is strategically important, and they won’t kneecap themselves in the global competition.


Well you don’t have to place it in a separate function, nothing stops you from inlining that part and writing li or whatever directly there.

It’s up to you how you organize your components.


But why bother with creating a new language, and duplicating all the features your language already has, in a weird way?

If I want a list of UI items based on an array of some data, I can just do items.map(item => 〈Item key={item.id} item={item} /〉), using the normal map function that’s already part of the language.

Or I can use a function, e.g. items.map(item => renderItem(item, otherData)) etc.

JSX itself is a very thin layer that translates to normal function calls.


Still better than whatever the hell this is

https://vuejs.org/guide/essentials/template-syntax

The more you scroll down, the worse it gets.

And this too: https://vuejs.org/guide/essentials/list

A new separate language with features that already existed in the original language (and worked with all its tooling, etc.)


Custom template language and custom DOM attributes are way weirder than just using language-native constructs (ternary operator, map/filter, variables, functions, etc.) directly like you can in JSX.



But how is Signal going to make enough money to support a massive user base?

Also, the article says

Cathcart responded that WhatApp will not have ads within the inbox or in the “messaging experience.”

So it seems they’re just going to be added to the extra features that most people don’t care about. Of course they could always change their mind, but that seems like a suicide move.


That’s how they get you to click it. Leaving out the part you want to know is the oldest trick in the clickbait book.


You need to look at this from a practical standpoint.

The vast majority of phone apps are not local-only. They are merely the frontend to services provided by some company - e.g. a Reddit app is really about Reddit the service, a food delivery app is about the service, not the locally running code, etc.

Apple controls what users can and cannot install on devices made by them, but the web and things like PWA are an alternative that would be viable for some portion of these.

You can make a web app that can be added as an icon on the homescreen, can access the camera, location, notifications, storage, authentication (e.g. require fingerprint), etc. It still can’t do everything native apps can do, but it would be good enough for a good portion of popular apps.

But in China, that is not really possible without the government’s approval either, because China requires the same kind of registration and an ICP license for websites, otherwise things will get blocked. Which, even if you could install anything you want on a device, would effectively limit you to purely local-only apps anyway.


Unless of course the app makes API requests to its backend, which is blocked in China.


Web is the universal open platform, and China just blocks it with a firewall 🤷‍♂️.


I used to play a bit on Geforce Now when I only had my laptop with me. That was the only service with usable latency where I live.


Now, there was a paper that instantiated a couple dozen LLMs and had them run a virtual software dev company together which got pretty good results

Dude, you need to take a closer look at that paper you linked, if you consider that “pretty good results”. They have a github repo with screenshots of some of the “products”, which should give you some idea https://github.com/OpenBMB/ChatDev/tree/main/misc .

Not to mention the terrible decision making of the fake company (desktop app you have to download? no web/mobile version? for a virtual board game?)

(Also the paper never even tried to prove its main hypothesis, that all this multi agent song and dance would somehow reduce hallucinations and improve performance. There is a lot of good AI stuff coming out daily, but that particular paper - and the articles reporting on it - was pure garbage.)


True, as of today. On the other hand, future advancements could very easily change that. On the other other hand, people have been saying the same about self driving cars 10 years ago, and while they do basically work, and are coming eventually, progress there has been a lot slower than predicted.

So who knows. Could go either way.


On one hand, this is definitely a gap, on the other hand, you are very unlikely to run into it in practice.

The whole “pass an array/object into some function that will mutate it for you” pattern is not very popular in JS , you are much more likely to encounter code that just gives you a new array as a return value and treats its arguments as read-only.

If you validate your data at the boundaries where it enters your system (e.g. incoming JSON from HTTP responses), TypeScript is plenty good enough for almost all practical uses.


Most places have preorders open, shipping in October, also Pi 4s are now back in stock in most shops.


You can always get the Pi Zero 2 W, which is still more capable than the orignal Pi was, and costs even less, even after all these years.

Or the 1 GB version of the Pi 4. For many projects, even that is overkill. Not everyone needs the stuff Pi 5 brings, like dual 4k60 monitors or the PCIe slot.

Just buy whatever your use case requires. The “zero” line has kind of filled that very low cost niche for now.


Clickbait title.

The packages were collectively downloaded 963 times before they were removed. The rogue packages include names like “noblox.js-vps,” “noblox.js-ssh,” and “noblox.js-secure,” and they were distributed across specific version ranges

Is there any indication that anyone actually installed these, other than some bots that auto download all packages and such?

You would have to really go out of your way to get infected by stuff like this.

That being said, there are things npm could do to try to auto-detect “risky” packages (new, similar name to existing projects, few downloads, etc.) and require an additional layer of confirmation, or something like that.


This is exactly the point made in this 2010 article that’s probably one of the things I link to most often in online discussions.

https://whatheco.de/2010/12/07/function-hell/

Also, the real problem with code on the right in OP is all the state mutations made to the arguments passed into the functions.

Not too familiar with golang, but this really could use some sort of builder pattern or something, if you’re going to mutate the object. Or a more functional style with just a pure function mapping an input “order” to output “toppings”, etc.

There are plenty of ways to make the bad design on the right better without stuffing everything into a single function, so the whole premise is a bit of a false dichotomy.



That sounds like spending a lot of extra effort just to avoid a little up-front effort.


I normally avoid that too, I find it hurts readability more than helps, plus a proper IDE will separate it with color anyway.

But yeah, the newline comment doesn’t apply to this.


Not like that, lol

Just saying, instead of this monstrosity

CreateOrderRequest(user,
                   productDetails,
                   pricingCalculator,
                   order => order.internalNumber)

Just use

CreateOrderRequest(
    user,
    ...

Putting the first argument on a separate line.

Same if you have an if using a bunch of and (one condition per line, first one on a new line instead of same line as the if) and similar situations.


Anything for indent (barely matters, as long as the editor forces it to stay consistent), and fuck alignment, just put things on a new line.


This may not be a popular opinion, but if the app is large enough, just use Electron.


Yes, people using it as the main messaging app is still preferable to the situation in the US where people on different mobile platforms can’t message each other without bullshit compatibility issues and bubble colors.

At least here it doesn’t matter what platform you’re on - including desktops and the web - and as a result nobody cares.

Of course, the same is true for almost every other messaging service too, and there are better ones out there.


So you’re more inclined to believe any online misinformation that happens to agree with your priors?

I.e. the exact same problem you’re indirectly complaining about?


So you have zero evidence that this is actually happening?

If it gives you video from the same channel instantly after blocking, that means nothing, these changes take a while to propagate, YouTube is a distributed system. Give it a few minutes to rebuild the feed and then try.

How are people upvoting this crap?


Internet is just a series of tubes. You’re talking about alternative content/services providers (news, video, shopping, etc.) if the existing ones choose to require only approved browsers.

Are you going to run your own news company?


The main pitch is that you don’t have to spend time and effort with installing and configuring a project for development when onboarding new people to it, or when you want to contribute to someone else’s project etc.

You get a proven, up-to-date “works on my machine” kind of environment that others also use, and you don’t need to “pollute” your host system by installing additional tools necessary for each individual project. Compilation (and other build steps), running the project, running the tests, debugging, IDE configuration (e.g. language servers, linter plugins), etc. all happen inside the container.

I personally don’t find it all that useful for projects I’m working on long-term myself, but it’s nice if you need to check something in someone else’s project which you’re not that familiar with.


I think it was created by the same people as VS Code, and definitely designed around its needs (at least initially), kind of like the Language Server Protocol.

There is some preliminary support in IntelliJ - https://blog.jetbrains.com/idea/2023/06/intellij-idea-2023-2-eap-6/#SupportforDevContainers, but then it wasn’t mentioned in the normal 2023.2 release notes, not sure if they pushed it to a future release or what. Either way, it’s a work in progress there.

Then there are tools like https://devpod.sh/ that also use devcontainters.

Regarding how it’s different from just using compose directly, I think the idea is that you “connect” your IDE to it and it specifies things like extensions (obviously IDE-specific), debuggers and debug configurations, language servers setup, environment to use when you open a terminal into it, etc.


I do think it solves an interesting problem where you’re working on your desktop and decide to move to your laptop and continue working on the same codebase, but don’t want to commit early so you can pull down the changes to your laptop.

You can just push the changes to a different branch and then merge it to your normal feature branch later. Takes like 5 seconds.


VS Code also supports the devcontainter format, where you can get a well-defined fully configured dev environments locally or remotely. It also automatically asks whether you want to use them if the project has a devcontainer.json file.

So you can get the benefit of a standardized environment without going all-in on cloud.

https://containers.dev/

https://code.visualstudio.com/docs/devcontainers/containers


I don’t think they allow JIT in their App Store apps either.


They can still prevent the JIT from working because the resulting native code would not be signed. That would result in worse JavaScript performance in such browsers, but considering today’s hardware and software optimizations, it may not matter that much in practice.