• 0 Posts
  • 45 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle



  • I’m not saying you shouldn’t want companies to obey the laws. I’m specifically responding to the idea of “if your business relies on companies breaking the law, you have bigger problems”. The idea that you’ll dramatically tear apart and rebuild your supply chain literally every week as one company or another is sued for something that doesn’t concern you is what’s naive. Even just looking at patents, every company that writes software is a time bomb, because there are hundreds of thousands of bullshit patents that cover extremely broad and obvious ideas. This can’t be your problem, or you’ll never actually get around to doing the thing your company does.








  • I think the main issue with Arch comes if you try to use it like Debian Stable. Like, if you don’t run pacman -Syu for a year, you probably won’t have a bootable system the next time you try. How about six months? My guess is you’d still be stuck fixing shit. Where is the safe “X” in “as long as I update every X, I’ll be fine?” Who knows. That’s not a very well-defined problem.

    I sort of understand the issue here. I use Arch because I’m picky about system things, and it seems to require going against the fewest strongly held platform opinions in order to get it the way I want it. In an ideal world, I’d get it set up that way and not need to touch it very much afterwards. Arch requires frequent touches. Fortunately, almost none of them require any real mental energy, and I’m willing to do the occasional bit of “real work” if needed to keep it going, but that’s a trade-off that may be more painful for some than others.





  • Honestly the only thing Apple vets is that the app maker isn’t trying to weasel their way around Apple’s cut of the revenue. They’ll 100% catch it if you have a link to your sign-up page instead of using in-app purchase, but if you want to make an app called Threads and scam 300,000 people’s info, go nuts.

    The Google Store is no better, but if I gave 1000 people money to spend on software, the ones who would be scammed out of the most are the people using these app stores. It’s an absolute travesty that Apple continues to get so much mileage out of their bullshit claims about their strict and thorough review process.

    Also, I think it’s kind of hilarious that you just want a phone to work without you needing to mess with it, and then your phone cycle with Android sucked because you apparently picked something called the WileyFox Swift and started fucking around with bootloader replacements.



  • So your solution on Windows requires me to move all my files out of where they belong to process them? How do I get them all back when I’m done?

    I knew how to write that find command. Didn’t need to search for anything. And because I know how to do that, I can also search for every pdf file modified since last month. I can spit out a list of the gps coordinates for every photo I’ve taken, ordered by latitude. I can find every Python script on my computer that uses Pandas. I can do a million things that boil down to “find every file that matches some complex filter and do something to it”, and I learned one tool. I don’t need to learn one point and click app that converts comics, one that messes with photo metadata, etc.

    I can sympathize with the idea that there’s a high learning curve. And there’s nothing wrong with trying to provide ways for people to use their computer that require less knowledge. But recognize that you’re asking for a crutch here.


  • It’s the same software on completely different back ends though.

    What specifically do you want Apple to do? Let’s take one specific feature – sending video to an Android user at high quality. What would you tell Apple engineers to do to “fix” that? Because here’s how it works today. If you’re an Apple programmer, you have two options that exist today to send that video through iMessage. You can write code that leverages the iMessage IP protocol, or you can write code that leverages the MMS protocol. Those are all that exist. Nothing else is “broken”, because nothing else exists. If you pick the iMessage protocol, then Android users can’t get the message at all, because there’s no iMessage for Android. If you pick the MMS protocol, then the video sends in potato quality because MMS doesn’t support anything else. In the app today, those are your only two choices. That’s all the code that’s ever been written in the iMessage app, and you don’t have a magic wand to make more code just appear out of thin air to do anything else. So pick one. And we all generally would agree that “potato quality” is better than “never got the message”, so it picks MMS.

    That’s the world that exists right now. You want them to “fix” it. Ok…how? I can throw out the options that I see.

    1. They could implement an iMessage app for Android, put it in the Google Play Store, and have all messages go over the IP data protocol and bypass SMS/MMS completely (for iPhone/Android users at least). The main reason they don’t do this is vendor lock in – I agree with you there, and they’ve admitted as much in emails that have been surfaced in lawsuits over the years. But let’s say they changed their mind and decided to do it. They can’t just flip a switch. You can’t compile a Swift/Objective-C/UIKit code base into an Android app. You just can’t. The platforms don’t work that way. There are probably 10 million lines of code in each of those platforms that don’t exist on the other one. Your app might, for example, create an array of pictures to be attached to a message. That code, if it were old Objective-C, might have something like pics = [[NSMutableArray alloc] init];. That’s Objective-C calling methods on objects that are defined in libraries. Android apps can’t be written in Objective-C. There’s no library available on Android that defines an alloc method on a type called NSMutableArray. You may as well be trying to run a Perl script in a Python interpreter. Apple would need to write a new app in Kotlin or Java that kind of did the same things that iMessage did. But even then, you want differences. Android has different UI paradigms. Maybe you need a hamburger menu. The “new message” button should be a floating “plus” icon or whatever. You have to write an Android app, not just recompile an iOS app that’s written in a language you can’t recompile anyway.

    2. They could change the existing iMessage code to support RCS as a protocol. That way, Android users still couldn’t run the iMessage app itself, but instead of sending potato quality video over MMS, Apple would send decent video over RCS. So what does that look like? Well again, you can’t just recompile an app. It’s not “fixing” a bug to make this work. This means adding an entirely new protocol, where by “protocol” we mean “implement these 100 or whatever defined message types”. Here’s the data you write over the socket to tell the cellular provider to deliver this picture. Here’s the data you write over the socket to tell the cellular provider to deliver this video. Here’s the data you write over the socket to tell the cellular provider to show the receiving user that I’m actively typing right now. Here’s the data you write over the socket to tell the cellular provider to tell the recipient that I “Liked” their message. And so on. Each of those things that the messaging app needs to support will have a different way of communicating to some server what the activity was, and Apple has to write all that code.

    That’s all I’m realistically aware of. They could do other things like replace the entire code base with a web app and that would be cross platform, or they could write an emulation suite that lets UIKit apps run on Android, but they’re not going to do those things. These are the options. Both are completely doable, and Apple is making a choice not to do them. Part of that choice surely involves what they perceive as benefits for themselves from lock-in effects. My whole point is that also, neither of them are easy. Both are pretty large software projects that would take a lot of people, money, and time to do. We’re not talking about them just refusing to make easy “fixes”.


  • deong@lemmy.worldtoAndroid@lemmy.worldI want to switch to android
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    11 months ago

    It’s software…these are computable problems, and we can solve them with Turing machines. No one is saying Apple is incapable of porting them. I’m saying that it’s work to port them. It’s nowhere near just clicking the compile button in Xcode and having it spit out a binary that speaks RCS or runs natively on Android or whatever. That is work for human programmers to sit down at blank editor windows and start building. Can they do that work? Again, obviously, yes they can.

    Someone could sit down and make Vim interpret my .emacs file. It’s software. Emacs isn’t magic, and the Vim programmers aren’t stupid. We could make this happen if we wanted to. But it’s foolish to say that because it doesn’t work today that “Vim is deliberately breaking Emacs compatibility”.

    If you can’t join or leave a chat, that’s a bug and they should address it. But that’s different than the whole “blue/green bubbles” conversation where people complain about terrible MMS quality and limitations on group chats and all that stuff. Those things happen because Apple currently speaks two protocols: SMS/MMS as a fallback and the iMessage IP protocol as a primary. To solve those problems cross platforms requires a third protocol (RCS), and that’s firmly back in “why doesn’t Vim interpret my .emacs file” territory.


  • deong@lemmy.worldtoAndroid@lemmy.worldI want to switch to android
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    11 months ago

    Otherwise Microsoft would never be able to provide Office for macs.

    Two points here. First, Microsoft has 220,000 employees. They absolutely could support two completely separate sets of Office apps if they want to, and in fact they did exactly that until 2018. They could support 200 separate code bases if they wanted to. Second, at best you have provided evidence that Microsoft uses some common code for Office, and that evidence is just that Office for Mac exists. iMessage for Android doesn’t exist, so there’s no such evidence. If I have a million line Windows app that I wish I could make available natively on Linux, but it’s all Win32 from top to bottom, you obviously can’t tell me that “all modern software requires a common code base and portability” therefore I could easily do it. My code base isn’t common or portable, so what Microsoft did doesn’t help me any.

    But beyond all that, you’ve just papered over a vast amount of complexity by just declaring it doesn’t exist. Most portable apps today are web apps. You can write Electron and it’ll probably run on just about any platform. You could write Java and it’ll mostly run on any platform. But none of Apple’s stuff is either of those things. iMessage is a UIKit app, probably with a boatload of Objective-C behind the scenes and maybe some Swift for the more modern parts. It runs on Macs because of Catalyst, which is emulates the iPad version of UIKit on the Mac. But that’s it. There’s no UIKit for Android. iMessage simply isn’t portable, as far as any of us know. It’s just factually nowhere close to true to say “Apple just needs to compile it”. The frameworks it’s based off of just aren’t there. It’s exactly like saying that Adobe just needs to compile Photoshop as a KDE app. Photoshop doesn’t use Qt or the KDE libraries to do anything. The code just isn’t portable. (Full disclosure I guess, I have no idea if Photoshop uses Qt or not, but it’s a reasonable illustrative example).

    And supporting a protocol isn’t just parsing, encoding, and decoding. HTTP is a protocol. So is IMAP. But you can’t just write a web browser that uses IMAP. The concepts don’t map 1-1 to each other. It’s not like for every HTTP action, there’s a matching IMAP action. You can’t just say, “I’ll just use FETCH instead of GET and everything will be great”. HTTP has redirects, for example. How are you going to make redirects work over IMAP? In the case of iMessage vs RCS, for example, iMessage has the ability to message someone without a phone number. RCS doesn’t. There’s literally nothing in the RCS protocol that makes that possible. So what do you want this mythical compiler to do when you tell it to compile iMessage for Android and use RCS? Should it just core dump if you try to message an email address?