kirushik
Joined 14 years ago
Joined 14 years ago
Just earlier this week I've released https://github.com/kirushik/paternoster (and even won Berlin Hack and Tell with it) — and it totally came from the idea "in that state-enforced Max messenger there so much surveillance you can only praise the authorities and pray in there. What if there was a way to hide messages into the text of Church Slavonic prayers?"
I've even added TTS (where supported) to it, just for the giggles of getting the "TRUMP" dictionary thorough it.
It's still a pretty solid X25519+AES-GCM encrypted messaging design under the hood, and I'm happy with it — but it still a bit of an afterthough tbh...
I'm a little bit uncertain with what you mean with "prevent an end-user from re-publishing", and what's a desired behaviour here: licenses differ in who they consider to be an end-user (that's the main difference between GPL and AGPL, for example) and if they give any end-user a blanket permission to **obtain** the source code (that's the most substantial difference between copyleft and permissive licenses).
WRT business models on top of FOSS — I fully understand the struggle. I cannot possible give any meaningful advise in hokusai's specific case (and arguably I'm even less qualified to do this than commenting on licensing intricacies, please keep this in mind) — but the successful business models in FOSS I've witnessed range from "this is our GPL-licensed code, but you can buy a proprietary non-copyleft rights from us if you're a commercial enterprise" to "this is your GPL-licensed source; if you don't want to deal with its', pretty complicated, compilation — you can buy binaries from us" to "hey, this is my Patreon/Github Sponsorship — if you want new releases to keep coming, put some money where your mouth is".
Feel free to email/message me (link in the profile), maybe I can help you find a setup which would be the best match to your ideas of how it all should work — hopefully without putting the further adoption of hokusai under unnecessary risk... (But, again, I'm just a random guy from the Internet, and all this would be just my pretty unprofessional opinion...)
You are indeed in violation of GPL2 when building on top of GPL2-licensed code and giving it a non-compatible license. And PPL is explicitly non-compatible, since it restricts the "four freedoms of FOSS" for some actors (as despicable as they might be), while GPL is explicitly restricting any form of judgement when providing the four freedoms.
On a more general note — I appreciate the spirit and the intention behind your licensing choice, but unfortunately in practice this would mean severe impediment for hokusai adoption. Like, it would be technically hard/impossible to include hokusai and derived works into any software packets distribution: they both technically and by policy are usually restricted to "clear, well-known licenses" (which typically means OSI/FSF-recognized ones), and it might not even be possible to express your licensing choice when putting the code up there. And who would pick a GUI toolkit to build with, when the resulting code can't even be published in the package repos of their Linux distro of choice?
On a more fundamental level (and I start feeling out of my depth here a little bit) — Creative Commons licenses and their derivatives are usually not a great fit for software code. Eg right here in the comments someone already mentioned that it's not clear what constitutes "use" of your codebase — and indeed, the text of your license mostly focuses on Reproduction, Distribution and Adaptation. If I build and html-based webapp on hokusai, run it on my own server, and you open the page — is this Distribution or Reproduction, for whom of us?
Even worse, if hokusai is being used in a startup which assigned shares (not options) to its founding engineers, but not to everyone — is it a "worker-owned business" or not? What about an exploitive business which frames itself as a coop/NGO/whatever, but frames it actual workers as contractors (Uber-style)? Legally it might pass the benchmark outlined in PPL, but in practice it might be even more exploitative than just hiring someone at the labor market rates. Same with an org which exploits unpaid interns or volunteers...
For me in Europe, Google Maps coverage quality can be best described by this personal anecdote. I used to live in Nürnberg, which is in top 10 German cities by population, and where are some major and well-recognized international companies are headquartered. Nürnberg has a subway system (U-Bahn) since 1980s, and it's significant enough: a few dozen stations over three lines (one is fully driverless, btw).
Google didn't have any representation of U-Banh in Nürnberg till at least 2017. I don't mean "wasn't supporting it in navigation and routing", I mean " stations weren't even marked and labelled on the general overview maps. And it's not like they didn't have the into: there was a widely-used user layer which added at least station labels. They just simply didn't care enough, and had other priorities.
In the meanwhile, the level of detail on OSM covered details as minor as every mailbox not only in Nürnberg, but in every small town around Frankonia (I used to participate in postcrossing and used this a lot from random places).
That's a shame — things were definitely different in 2019 when I built the initial version; and mobile browsers were definitely a target I had in mind for the tool (especially when it comes to the recovery).
Instead of wrapping the existing tool into a mobile app, I'm thinking about standardizing the QR code format from the tool a bit more — so multiple, more task-specific recovering mobile apps would be possible. (Like, the one in your password manager detecting certain internal text formatting and importing the entries automatically and such).
We probably shouldn't even bother recommending browser-specific offline modes; I've created an issue in the project's repo to reword that piece by the next release.
Would it be too much to ask for you to open an issue in Github for this? Things I'd be interested in the most would be details about your environment: browser/version/platform and if this is reproducible in a "fresh" browser profile without any extensions added (or just a list of your extensions, if that's not too privacy-invasive for you).
Not sure about year 2023, but at the time I wrote it for my previous employer there was nothing remotely usable for regular user.
Thus, BananaSplit. It doesn't allow you to specify many parameters (just the number of shards, and then requires 50%+1 to recover); aimed at printed backups (generates printable full-page QR codes, while asking to copy a decryption phrase to the pages by hand to avoid an "evil printer" attack); and takes the concept of _portable web app_ to its extreme, being a self-contained single html file which requires you to save it locally and open via file:// protocol for it to work.
Disclaimer: while being in use for years, the code had never seen a proper independent code review; there might be bugs, despite me trying to minimize their impact by design, and using only reputable (and pretty minimalistic) JS primitives. If you want to check out the sources yourself before using, of course those are available under GPL at https://github.com/paritytech/banana_split/