> > You may use [...] the software only for non-commercial purposes
> > You may distribute the software or provide it to others only if you do so free of charge
> > you may not remove or obscure any functionality in the software related to payment to the Licensor
This definitely isn't ideal (I'm a big GPL fan) but honestly, as long as it still allows copying, modification, and redistribution for non-commercial purposes (which it does) this doesn't concern me that much. I'm not too worried about the potential prospects of other businesses that might want to base their work off of this business's work as long as the community would still be able to create forks and derivative versions. It certainly isn't the ideal of free software that I prefer everything to adhere to, but it's acceptable to me at least. It's sort of as I say elsewhere, a CC-BY-SA-NC type deal.
I dunno, I think it's worth five bucks. We get too wrapped around the axle on licenses. I can do whatever I want with the source except rip off FUTO which sounds fine by me.
What are y'all planning to do with the source that the license prevents you from doing?
I mean, in my personal opinion, it's totally possible to use GPL licensing on software that you then build a business around. You just have to be a little bit more creative and offer more than just rent-seeking on past labor. Some examples of perfectly feasible ways to build a business around GPL or AGPL software without going bankrupt:
1. Providing all of the source and documentation and build tools needed to build something but only providing pre-built binaries or packages for the program if someone pays. That way they aren't really paying for the software but for the human labor that goes into packaging up the software and making it easy and the computer time and hosting storage that that takes up and all of that.
2. requiring people to pay a discounted amount to get the pre-built binaries or packages of New versions of your software, so that your ongoing revenue is tied to continually making improvements to your product that will actually make people want to move to the new improved version, instead of simply charging a recurring subscription, whether or not people actually like the improvements the subscription is making or actually want to upgrade and then forcing them to upgrade or charging a recurring fee to even maintain access to an old version of the software.
3. providing AGPL containerized versions of your server software, but charging a monthly subscription to access the version of that software that you host for your customers, since obviously servers have recurring fees associated with them, that most people wouldn't want to Self-host, simply because it's a lot of work, but those who do want to do that work still can.
4. Providing good customer support
5. Prioritizing working on bugs or features that a lot of people donate a small amount of money to, sort of like crowdfunding individual components of your application.
6. associating your software business with a hardware business, like System76 does
7. Just operating based on donations, but making it very quick and easy and convenient to donate, and the donation system available from somewhere within your software that's unobtrusive but easy to access like Mozilla Thunderbird does. (This is sort of what FUTO Keyboard seems to do).
8. Subsusting on donations but using an indie game style "pay what you can" interface like elementaryOS does.
In general, the trick is just to provide services that actually require ongoing money in compensation for ongoing labor and actually add value to just the bare source code.
I'm not sure if having a section asking for donations, tucked away in the settings, and a one-time reminder 30 days into an unlimited trial, that goes away permanently if you say you paid whether you did or not, is that much of an anti-feature? In fact, I would prefer more of my open source apps to have built-in ways to donate. I'll grant you not being able to remove it is something I'm not happy with, but since they allow any other kind of modification, I don't know how substantially that really limits software freedom in practice. Honestly, it's just up to personal discretion, and I'm going to have to sit and think about it for a bit — I might well end up going back to my GPL licensed keyboard, but I don't know.
Yeah, just be careful never to respond to your work emails whilst using this keyboard. "Sorry boss, I can't be bothered right now because my keyboard prohibits me from using it for commercial activity." That will fly well.
That's pretty clearly not what they mean, and I'm sure you know it. You pretty clearly mean using the software as in taking the code and repurposing it or modifying it, not using the software products itself.
No I did not, and I have no desire to play the guessing game when it comes to these things. There are lots of FOSS alternatives with no strings attached, or honest commercial projects which don't claim to be something they're not.
They do, they keyboard's source is available from their gitlab and you're allowed to copy, modify, and redistribute it, as long as you don't remove the section in the app that lets people pay them and don't sell your derivative works. Sort of a CC-BY-SA-NC deal. Seems fair enough to me — not ideally FOSS, but something I can live with. There are few things I use anymore that aren't totally FOSS but I do compromise sometimes if all of quality, ease of use, security, and privacy gain and the loss in perfect freedom is small enough.
It doesn't harass you for money, what? The option to pay just lives in a section tucked away in the settings page, and the "yes I've already paid" button works on the honor system anyway.
Hi, I'm the person who wrote that code. We're not trying to harass people for money and it's been designed in a way I think is fair.
The unpaid reminder appears in the settings screen after the app is installed for 30 days, and once it appears there's a button that lets you postpone the reminder for up to infinity days. Of course nothing stops you from also just tapping "I already paid".
We don't validate license keys in FUTO Keyboard, we just have a payment system that issues them. The app can't connect to the internet, so it's not like there's an easy way to verify them anyway or stop people from just posting their key online.
Hi, I just want you to know that I'm blown away by your keyboard. I'm not even a native English speaker and it's incredible. After paying around with it for ten minutes I decided to pay the 5 dollars to show my support to this initiative.
I'm especially happy to see that you mdocumented how to use your own finetuned models and predictive text transformer. I'm betting it will end up enabling community driven multi-lingual dictionaries and transformers. Thanks a lot!
One feature request I have though is (although I understand the limitations of transformers) to seamlessly handle more than 30s of audio, even though it takes more time to transcribe it still is a huge pain to have to wait for the first to end writing to then speak again. It's not that difficult to queue audio segments right :)?
Also, the language choice picker from the keyboard shows the choices too high : on tall phones it's cumbersome to have to reach up there.
Also the beamsearch is "recommended" but it would be better to also mention that it makes the decoding way faster.
Overall, allowing more access to advanced settings would be awesome for tinkerers, for example choosing the depth of the beam search!
I apologize, "harass" was too strong of a word. The way the reminder works in and of itself hardly bothers me at all. I'm more upset on principle that there's anything at all that runs on my device that I'm not allowed to change.
I'm running the keyboard right now and it has a text editor mode that gives you arrow keys, a capslock key, and clipboard keys, but I don't see a control or alt key.
As a paying customer the answer is that you don't get any features other than a thing saying that you paid. It is similar to donating to Signal Foundation where you don't get some 'new feature' within the Signal app for having paid, you just get a little thing next to your user icon showing that you did. It is a support badge.
I saw this from the Louis Rossmann video and have been trying it out for the past couple hours — in fact I'm actually dictating this message with it right now — and honestly, it seems pretty great! Certainly much higher quality and more reliable than the version of Google Voice Dictation that I was using (sandboxed without network access) on GraphineOS previously, which would crash regularly and had only passable voice dictation quality. My only problem is that it doesn't seem to let you speak punctuation marks, so it's sort of hard to get my sentences punctuated the way I want them to be. The keyboard itself is also very high quality; it seems to have a really highly polished interface and a pretty good number of features and options, almost competing with openboard!
That may be true — it may be the only Haskell program that people regularly use — but I'm not sure how that counts against Haskell. I'm no fan of Haskell (I used to be a huge pure functional programming fan, but over time the shine has worn off and I've realized it's just another dogmatic paradigm) but having even one widely used and liked tool is actually exemplary for a highly idiosyncratic non-mainstream language like Haskell, to be honest. I think it's doing pretty well for itself.
I didn't say it was a bad thing, just pointing out that Haskell is not a terribly popular language and as such most of the apps that I've seen written in it are only used by Haskell enthusiasts (Darcs comes to mind).
I'm kind of a functional programming fanatic, evidently.
COSMIC is the new rust-based DE that's still in alpha right? I wasn't using that.
I'm pretty sure it's a window manager issue. gksudo (?) requests focus, and then while you're typing something happens and your keyboard loses focus on the password field and keystrokes go to an app behind that window.
there were also other fun things like running an app in a debugger, then setting a breakpoint in that app triggered by a UI event, would then immediately cause the entire desktop environment to lockup to mouse events. you'd have to use the keyboard to trigger the "application unresponsive" window and then tab to "close".
> COSMIC is the new rust-based DE that's still in alpha right? I wasn't using that.
I'm not referring to that, I'm referring to the "COSMIC" extensions to GNOME that PopOS adds to reshape GNOME into their vision of a desktop environment (the vision is what they call COSMIC). Those COSMIC extensions are the predecessor to the COSMIC DE, which is a standalone instantiation and elaboration of that vision, and have been part of PopOS and enabled by default for a very long time. The COSMIC extensions are extremely extensive, substantially changing several huge aspects of gnome, as well as being written in typescript, then compiled to JavaScript and then translated into GJS with a — I kid you not — a sed script. So I think it's entirely possible that your problems could have been caused by those extensive extensions, and not the gnome window manager itself. Especially since other users of gnome haven't shared your experiences.
There's also the fact that pop OS's version of gnome is now more than 2 years behind and they still haven't updated it, since they are holding back waiting for cosmic de to be ready instead, so you may have been experiencing a bug that has long been fixed for everyone else. System 76 seems to try to do their best to update a lot of the packages in pop os's repos, but they can't keep everything artificially up to date since they aren't tracking Upstream Ubuntu updates anymore, either, since all of their resources are going to Cosmic de, so a whole bunch of packages including for instance node are two years out of date on PopOS, not just gnome, incidentally.
Yeah, I really don't like or particularly respect Windows much, and I'm a huge proponent of Linux, but I really didn't think this article was fair to Windows either to be honest. It mostly just perpetuates the myth that Linux is inherently more secure than Windows in some way, which it just absolutely isn't. Hasn't been in quite a long time.
Maybe Linux gets some fundamentals better than Windows, but I'm not even really sure it does that honestly, since Windows has come a long way since these talking points started out, and there's a lot more to operating system security then just how your Access Control works, and operating systems like Mac OS and windows are doing a lot more fundamental security work in their kernel and user space then Linux is to ensure security[0]. Plus, for security in the modern day, even the fundamentals of a unix-like operating system just aren't good enough, so it feels almost moot. Not to mention, proving Windows is worse than Linux by citing CVEs is just silly. Every piece of software will have flaws that need to be fixed, even security ones, because completely planning software out from the beginning and then verifying it from the firmware up is impractical. Linux has had its own share of CVEs in all sorts of places — like the recent xz thing, (or all the various automatic code execution vulns emacs has been closing lately), too, so it's nor like it's really on any better ground.
[0]: as much as I think their perspective is unnecessarily negative and unfair to Linux — for instance counting the sandboxing that Windows UWP apps as progress toward sandboxing, but then not counting Flatpaks, and citing the absolutely spurious fud around them to boot — this is still a good summary: https://madaidans-insecurities.github.io/linux.html
Omg! We have this exact functionality nowadays in emacs with which-key (which incidentally is going to be included as part of core emacs in the next version), so I guess wordstar is where the idea originally comes from! That's so interesting :D
I don't know what the maintainers chose, but honestly, which-key would be an awesome default to have turned on.
It's soooo helpful for discovery and recall of commands (which is a huge problem with such a complicated application as Emacs!) that the fact that which-key was included by default in Spacemacs half a decade ago is a big reason I am as proficient in Emacs as I am today, and I'm sure there are others who feel the same.
It would be very, very useful for new users. Experienced users can turn it off if they don't like it -- much like the menu bars that are on by default in Emacs.
Yeah I suppose. I find M-x describe-bindings works fine when I need help.
Maybe something like "on by default if there's no .emacs" (so likely a new user) but if there is a .emacs then only on if enabled. But that probably has at least as many downsides as up.
I guess I'll just disable it along with the menus and scrollbars as I already do.
where which-key really excels is when you're already halfway through a complicated series of keyboard shortcuts and can't remember the next sequence.
you pause, and the menu pops up to remind you
using describe bindings you have to ctrl-g out of your half entered command, run describe bindings, search for what you wanted to do (without context -- which-key has the context of your half built command and only shows relevant commands, but describe-bindings just shows everything), make note of it, dismiss the documentation buffer, and then repeat the whole command again to try again
much easier to have which-key pop up and remind you of how to continue while you're still in the middle of it, and go away on its own when you continue
if you're really proficient you won't even have to turn it off because it only appears when you pause, so you'll go so fast you never see it
which-key is not a replacement for describe-bindings, it's a contextual tool to surface that information automatically when it's needed and to dismiss it or not display it when it's not
Thanks for the added detail. Guess I'll give it a try. But I really tend to dislike behaviors that kick in when I pause, because I pause for a lot of reasons other than not remembering what comes next. It's why I also tend to disable all forms of auto-complete.
If you want a combination of a base operating system that is rock solid stable and reliable, and a development environment that is bleeding edge, I really highly recommend checking out Fedora Atomic combined with Distrobox[2]. I think it's honestly basically the ideal setup:
1. with Fedora Atomic you get an operating system with the reliability and resistance to entropy and ability to power wash of Chrome OS, but also the ability to be changed via building your own custom image (its easy, check out BlueBuild) or with easily reversable overlays, plus an update cadence that offers an excellent middle ground between rolling release and point release — you get all non major version updates to your image's software basically immediately, but major versions wait for every 6 months so they can be integration tested and stuff.
2. And then with Distrobox you get the ability to trivially create a containerized environment with your Linux distribution of choice inside (can be different from the host), that nevertheless integrates almost seamlessly with the host (including having access to all of your hardware devices and your home directory and being able to trivially export applications, as well as easily open a shell inside the container with a simple terminal command), so you can have your cake and eat it too: a fully bleeding edge rolling release distro like Fedora Rawhide or Arch Linux inside your distro box to get the most up to date developer tools, but a more stable system as your host. And if something goes wrong in the container you can easily just blow it away and regenerate it since Distrobox has a declarative container spec (distrobox assemble). For GUI management of Distroboxes check out Pytaxis and BoxBuddy-rs.
There are some things you should know if you go this route though that will save you a lot of pain and frustration:
1. Fedora Atomic is really barebones by default, and since layering is kind of painful it can be really annoying to do the system administration necessary to get it set up; especially if you have an Nvidia card and you have to do all the typical annoying shit you have to do on Linux to set that up. So instead of using vanilla Fedora Atomic, I highly recommend checking out Universal Blue[0], which offers pre-built Fedora Atomic images with all of that annoying setup and system administration done for you already. Their headline images (Bazzite and Bluefin) are really opinionated, but don't worry about that, their base images[1] are perfectly usable too! That's what I use :)
2. Layering packages via rpm-ostree should not be used for just random system utilities or applications. That's not how it is intended to be used, and that way lies only pain. The whole point is that the applications you use as a user, including terminal ones, should be separate from the core system, and not dependent on it, so they can be updated separately and not break each other. Layers, since they are updated by the system package manager, must be versioned in lockstep with the rest of the system, and the system image will fail to build if it can't update the layers you have, so really only use it for things you consider part of your essential OS. People who forget this tend to come away really hating Atomic distros. For your development environment or any build environments you need, create distroboxes and install applications inside them; for GUI applications, just use Flatpak, or install the application inside a distrobox and use distrobox-export to integrate the app into the host. If distrobox feels too heavyweight, or you just want various sundry utilities installed on your host system, then I recommend using something like Homebrew or Nix or Guix or Pkgsrc, that is, any package manager that installs things to your home directory in a way that is cleanly separated from your host system and independently updated. Universal Blue images come with a script to get Homebrew all set up for you. Wouldn't have been my first choice, but its very convenient.
If you're wondering what the advantage of this is over Nix, the most important to advantages for me are that:
1. Nix's directory structure is basically completely unreadable and unusable for human beings in a way that is far worse than the default posix directory structure
2. Nix requires absolutely every program and package that runs on it to be custom patched to deal with its alternate directory structure, and while sure yes it's package repository is gigantic so a lot of that work is done for you, it can still cause weird problems and make things much more unreliable and good luck if there's a package that isn't there or hasn't been updated for a while. I'm on an emacs Discord and apparently installing it on Nix is very difficult. It's just another layer of possible incompatibility and failure and annoyance on top of the stack of those layers that compose linux.
Meanwhile, you got most of the same benefits on an atomic distro, except:
1. it's all completely human readable
2. uses standardized technology so it's already compatible with everything without having to do any work
3. you can get fully different distros inside distro boxes, unlike with and Nix's equivalent.
The other thing is that with nix, you configure your entire system at a layer of abstraction above what's actually happening on the system — it's not like that declarative config is actually directly deciding how the system operates, no, it's just layered on top of all of the existing crap Linux has going on, and you're just hoping that it can automatically, imperatively perform the actions necessary to keep your system in line with the config.
That, and to get the same level of resistance to entropy and reversibility and ability to power wash and rebase and cherry-pick changes and stuff that you get with an atomic distro on nix, you would have to Version Control your Nix config and then also be very very careful with manually committing with informative commit names at regular intervals every time you make a change and stuff, instead of it being handled automatically for you and not requiring an extra version control tool slapped on top.
Plus, Nix doesn't benefit from the minor, but still meaningful in my opinion, security benefits of an immutable image-based distro.
I am actually considering Fedora, so this is a good suggestion! I havent tried distrobox. Seems interesting. I really need to get more comfortable with Docker and related solutions.
Maybe because I used nix, gentoo, exherbo, slackware etc.
Also drawbacks for me when using nix:
- I needed to greatly increase boot partiton, because nix stores there linux kernels. Whith dual-booting Windows, I created 2GB partiton at the end of disk. Thankfulluly Windows reused it.
btw. nice remark about nix beeing declarative but beneath is Linux not-declarative. It is like functional programming, but you still have some internal state of components that can clash with your functional top-down approach.
> btw. nice remark about nix beeing declarative but beneath is Linux not-declarative. It is like functional programming, but you still have some internal state of components that can clash with your functional top-down approach.
Yeah. That's what always made me loathe to try it out. I'm glad there's someone else that feels that way.
It's really strange that it didn't work for you, especially with pop OS which really should just work. I think we're in this strange sort of limbo where for like 80% of people it just works, and then there's 20% of people where it simply breaks in bizarre completely unpredictable and incomprehensible ways that aren't even reproducible for anyone else. That's better than it not just working for anyone I guess, but it's still not ideal and honestly I'd be interested to hear a discussion about why this is.
> > You may use [...] the software only for non-commercial purposes
> > You may distribute the software or provide it to others only if you do so free of charge
> > you may not remove or obscure any functionality in the software related to payment to the Licensor
This definitely isn't ideal (I'm a big GPL fan) but honestly, as long as it still allows copying, modification, and redistribution for non-commercial purposes (which it does) this doesn't concern me that much. I'm not too worried about the potential prospects of other businesses that might want to base their work off of this business's work as long as the community would still be able to create forks and derivative versions. It certainly isn't the ideal of free software that I prefer everything to adhere to, but it's acceptable to me at least. It's sort of as I say elsewhere, a CC-BY-SA-NC type deal.