Slashdot Mirror


What Dropbox Dropping Linux Support Says (techrepublic.com)

Jack Wallen, writing for TechRepublic: For a company to support Linux, they have to consider supporting: Multiple file systems, multiple distributions, multiple desktops, multiple init systems, multiple kernels. If you're an open source developer, focusing on a single distribution, that's not a problem. If you're a company that produces a product (and you stake your living on that product), those multiple points of entry do become a problem. Let's consider Adobe (and Photoshop). If Adobe wanted to port their industry-leading product to Linux, how do they do that? Do they spend the time developing support for ext4, btrfs, Ubuntu, Fedora, GNOME, Mate, KDE, systemd? You see how that might look from the eyes of any given company?

It becomes even more complicated when companies consider how accustomed to the idea of "free" (as in beer) Linux users are. Although I am very willing to pay for software on Linux, it's a rare occasion that I do (mostly because I haven't found a piece of must-have software that has an associated cost). Few companies will support the Linux desktop when the act of supporting means putting that much time and effort into a product that a large cross-section of users might wind up unwilling to pay the price of admission. That's not to say every Linux user is unwilling to shell out the cost for a piece of software. But many won't.

8 of 424 comments (clear)

  1. Why is the FS a problem? by Tomahawk · · Score: 5, Interesting

    Surely the OS is providing standard access to every FS, so from an application perspective everything looks the same. So why is it a problem for applications to support ext4 and btrfs when, via the OS, they should look the same?

    fopen() will still work, regardless, surely... no?

    1. Re:Why is the FS a problem? by marcelus · · Score: 5, Interesting

      I think that lower-level calls may be necessary to ensure a seamless performance. I don't know for Linux (where file locking rules are different), but as a Windows Dropbox user, I find it *very* nice that I can work on big Photoshop files, save them often and *never* have Dropbox get in the way by locking the file (and, furthermore, Dropbox only uploads or downloads chunks of the file that have changed) Google Drive, on the other hand, is a PITA when it comes to this: I was using it before and saving files often resulted in Photoshop complaining... a lot! (Google Drive is OK for backups or very small files, though) It might be that the naive approach of using posix-level calls is not really enough Just my $0.02

    2. Re:Why is the FS a problem? by Anonymous Coward · · Score: 5, Insightful

      Except Dropbox wants access to your filesystem details for their backup stuff., not just the file descriptor and data.

      So, in other words, Dropbox is run by retards who have no clue about proper software development.

      It's a program that copies files from one location to another. If Dropbox can't get out of the way and let the OS worry about things like the file system and systemD, then there is something seriously wrong with them.

      This is a classic case of Doing It Wrong®.

    3. Re:Why is the FS a problem? by Anonymous Coward · · Score: 5, Insightful

      If that's the case then explain systemd. /s

      Easy; systemd is not the unix way.

    4. Re:Why is the FS a problem? by jellomizer · · Score: 5, Insightful

      This type of design is what I find is what developers make when they are at the "Arrogant Rookie" level of their career.
      Where if there was a book on the technology, The skills used are from chapter 1 and the last chapter.
      They are trying to show off how good they are by not doing things the easy way.
      I had once had to maintain an application because the developer who decided to access a database not via the SQL commands that it supported, but by directly accessing the DLLs and doing the direct calls to the database engine.
      Yes it was faster, but this product was so tightly tied to the Database system that it was nearly impossible to upgrade the database engine, and were at the direct wims of the Database Company, if they charged more then we had to pay more, or do a near full rewrite of the application. As well if there was a bug in the code, then the entire data would get messed up because of the low level access. As well it skipped steps to make the data SQL compatible so it required either a hex editor or custom programming for any ad-hoc report, or odd data fix.

      Normally if a company or a product seems to be very strictly worried about low level differences, chances are it was coded by an Amateur who thinks himself all that. And is a sure sign to avoid such product on all environments.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  2. Are you retarded? by dnaumov · · Score: 5, Interesting

    Why would an image editing program give 2 shits about: ext4, btrfs, GNOME, Mate, KDE and systemd?

  3. Took me a day to get it right. stat() and getxattr by raymorris · · Score: 5, Informative

    l wrote software that creates and syncs and *bootable* copy of a Linux machine. To have the clone boot and run right, everything needed to be copied over exactly - extended attributes included.

    It CAN be hard if you try to do it using the approach you are thinking of, but there is a much easier way. JavaScript programmers will recognize these two different approaches.

    > does the file system support symlinks, does it support locking? Can we reliably see if the file changed while we tried to sync it?

    stat() will tell you if the file is a symlink and when it last changed. If this file is a symlink, then it supports symlinks. You don't need to ask "does this filesystem support symlinks?", you just use stat() to find out what kind of file this is.

    > How about basic or extended attributes?

    Same thing. getxattr() will give you the extended attributes, if there are any. You don't need to start with detecting the filesystem and try to figure out if xattrs are possible, just use the getxattr() system call to read the extended attributes. You'll either get some or not.

    > Try that with /dev/zero and wait for your server space to fill up. Then download the already uploaded contents of /dev/sdb onto the current system.

    Remember when you called stat() earlier to get the file type and see if it's a symlink? That also tells you if it's a device file. So already done.

    Let's say you have really dumb programmers who don't know, and can't learn, that you get file information with stat(). Devices are in /dev. Don't copy the contents of files in /dev. You don't have to think about /dev/zero, /dev/random, etc - just know /dev is device files. Our system skipped /dev and /proc. Or just use rsync - it does the right thing by default. If you don't want to USE rsync, spend 30 minutes reading the rsync man page and do what rsync does. Those are options if you're too dumb to use stat().

    None of this depends on which filesystem, init system, or kernel is in use - you won't find a bunch if "if filesystem is reiserfs" in rsync.

    Back in the day you used to see two types of JavaScript. Dumb JavaScript looked like this:

    if(navigator.userAgent.indexOf('MSIE 5') != -1)
    { //we think this browser is IE5 // Can't use document.documentElement.getBoundingClientRect, give up
    } elsif (navigator.userAgent.indexOf('Safari') != -1) { // Code for Safari
          rect = document.documentElement.getBoundingClientRect() ...

    Smart JavaScript does this instead:

    if(typeof document.documentElement.getBoundingClientRect != "undefined");
    {
          rect = document.documentElement.getBoundingClientRect();
    }

    Just see if the feature is available, don't try to guess which browser it is and then try to figure out which features it has bases on the useragent.

    Linux is even easier. getxattr() is always there, it always works. If there aren't any extended attributes, it'll return none.

  4. Lame excuse for we see our audience elsewhere by prefec2 · · Score: 5, Informative

    This is all bullshit:

    For a company to support Linux, they have to consider supporting: Multiple file systems, multiple distributions, multiple desktops, multiple init systems, multiple kernels.

    * You do not need to support multiple file systems. The kernel does that for you. Also most people use EXT-something.
    * You need ONE deb and ONE rpm. If your build-system would be anything modern this would be done automatically. You could even cooperate with package maintainers from distributions. Beside that it is easy to package something for debian/ubuntu. And I cannot imagine that this is super difficult for Fedora, SUSE, etc.
    * For a working desktop-service you do not need to support multiple desktops. You just need a running client service. Furthermore, you just need an open API, people will add tiny applets to ease shit. Also if you support Nautilus and Dolphin (or whatever it is called) then that would support almost everyone. For the rest see open API.
    * You do not need to support multiple init system, because it is a user service. It should not run when not logged in.
    * You do not need to support different kernels. You link with glibc. Period.

    Instead of lying to us, just say the truth. Linux users are few, they often do not use you paid services, and they often use evil Nextcloud setups anyway. We need to make more revenue and cut costs. We also love to take from the OSS community, but we do not really care about them.