Hacker News new | past | comments | ask | show | jobs | submit | indigane's comments login

This is a collection of Git graph drawing implementations I cleaned up from notes I had as I've slowly worked on a Git GUI for my own use.



I'm working on a Git GUI for myself, in which one of my top priorities is making it more understandable than Git's own UI.

I usually dislike animations. I used to disable transitions whereever possible, as they made the UIs feel sluggish. And I still do.

But working on the project made me for the first time really appreciate in practice how much amimations help with understanding. I paid a high price in complexity to add transitions whenever the state of the visual graph changes, and suddenly it was really obvious what was happening. Commits and whole branches were sliding into their new position, and I would go "a-ha! I see" instead of "wtf just happened, what am I looking at now?".

EDIT: Fair warning, it's heavily WIP https://gitlab.com/indigane/visual-git


I think this is the trick. Animations as a visual tool for teaching the outcomes of complex behaviors are a very valid usage of animation. There’s that one site that pops up on here occasionally with the fabulous educational topics and tons of animations to relate concepts that I think really drives that point home.

Minimizing animations are nice for showing you where things “went” when you minimize them. But apart from that, most other UI annimations are just eye candy.


We already have a Push API specification that supports arbitrary push server URLs and self-hosting. It's called the Web Push API, although it can be used for mobile push as well.

The only problem is that no one is using it.

A bit longer comment on it:

https://gist.github.com/indigane/70ed13d5287c2d18b3e8e5d4f0c...


First of all, that's a browser API while the article is talking about an Android app.

Second, the Web Push API is just a unified API for websites to use Google/Apple/Mozilla notification services, which the article is trying to avoid.


I know most of these sort of licenses are just for fun, but on a serious note, if you don't care about licenses, and you don't care what people do with your code, I would recommend you use The Unlicense, instead of one that sounds funny.

The Unlicense is almost like MIT License but without any burden on those using your code.

On the other hand it offers you the same (perhaps handwavy) protections from liability as MIT License does.

If you're familiar with Creative Commons, it is similar to a CC0 license, but for code.

Basically it's a legitimate way of saying "I don't care about licenses, stop bothering me, do whatever".

If you use GitHub, then Unlicense is one of the choices you can select when setting up a repository.


No, that's a bad take. The unlicense makes your code impossible to use for many people e.g., those in countries like Germany where you're not allowed to dedicate works to the public domain. Similarly, many companies don't allow you to use code with the unlicense because of its unclear legal status.

See [1] and [2] for more discussion on this.

If you don't care about licenses, the MIT license is a much better choice.

[1]: https://web.archive.org/web/20170301020915/https://lists.ope...

[2]: https://softwareengineering.stackexchange.com/questions/1471...


>many companies don't allow you to use code with the unlicense because of its unclear legal status

I'd argue that this is an advantage of "funny" licenses: any megacorp can use your MIT code without giving you anything in return; if the same corporation really wants to use your funny-licensed project while being legally in the clear, they are now incentivised to approach you, potentially offering some compensation for a more "serious" license.

At the same time, funny licenses don't stop enthusiasts from working together, and that's what makes open source software good.


That's not true.

While requesting The Unlicense to be officially OSI approved [0], I've approached a German Lawyer specialized in Licensing and from his PoV the terms are also clear in Germany.

[0] https://lists.opensource.org/pipermail/license-review_lists.... ff.

[Edit] formatting


That's an interesting counterpoint, to a common conversation here.

I suppose it's important to realise that even if a public domain declaration isn't possible in Germany etc., that doesn't mean the Unlicense is unusable. Unlicense, as you know, explicitly grants certainly permissions; it doesn't simply say "this is public domain".

There was another interesting point in the thread you linked. Even if Public Domain isn't possible, courts will tend to consider the clear intent, whilst reading the legal text in a way compatible with local law. https://lists.opensource.org/pipermail/license-review_lists.... So maybe you cannot waive certain moral attribution rights, but the intention is clearly to allow use, copying, and modification, without payment to the author. Worst case, that's an MIT style license.


Quoting from the critique of the Unlicense:

> Guess what? There's a worldwide default-copyright regime, opting out of it is simply problematic, and attempts to do so risk creating non-deterministic effects that depend on the jurisdiction and judge.

This is true, but guess what? Everything you do legally depends on jurisdiction and judge. That's how the law works. I get that some licenses are more broken than others, but using that specific reason for saying you can't release software into the public domain is particularly empty-headed.

This doesn't even get into the fact that clickwrap contracts of adhesion are on even murkier legal grounds than something which tries to place a piece of software into the public domain, as an over-reaching contract of adhesion actually attempts to do something, and contracts of adhesion are subject to special scrutiny under the law.


Yes, laws vary by jurisdiction. Nonetheless, we have a lot of licences which work as worldwide as possible.

As much as I wish otherwise, it does not appear to be possible to dedicate works to the public domain in Germany, and quite possibly other jurisdictions. As such, it's best to offer an MIT-style licence for residents of such jurisdictions. This doesn't stop you making a public domain declaration in jurisdictions where you can.


This is a day later now, but for posterity I'll add that thanks to this thread I learned that there is a concept of "OSI approved licenses"[1], and that those licenses include MIT No Attribution License (MIT-0), and that MIT-0 is also a supported license in the GitHub UI.

It is likely I will be moving from Unlicense to MIT-0 in the future.

[1] https://opensource.org/licenses/


> those in countries like Germany where you're not allowed to dedicate works to the public domain

That sounds like Germany's problem. If the system makes it difficult for someone to accept a gift of code from me, is it up to me to fight or work around that system? No matter what license you pick, in all likelihood some territory somewhere will have a problem with it.

> many companies don't allow you to use code with the unlicense because of its unclear legal status

Again, if I particularly care whether commercial entities use my stuff or not then I probably care about licensing enough to not use this the unlicense anyway. They can always contact me to negotiate specific commercial licensing for their use case.

--

There are to (at least) views that head in this direction:

* I don't care about licensing: I want people to use this, and I don't care how.

* I don't care about licensing: I don't care how people use this, I don't even care if you don't use it at all.

The one thing you should take care about, even if you don't otherwise care at all, is that some licences contain accidental traps which potentially enable legal grifters to bully people who use your stuff. The most obvious case of this is version 2 of creative commons licences (newer revisions are not prone to this, v4 (released in 2013) certainly, I've not looked to see how v3 (2007) stands in this regard), see https://doctorow.medium.com/a-bug-in-early-creative-commons-... amongst other places for details.


> is it up to me to fight or work around that system

If you want to make a gift, it's up to you to do it the right way / to allow people to get it, don't you think? You already put some effort to build and wrap it, you could as well stick some small label on it (put some working license), that's quite easy to do in comparison.

The rest of your comment hints at why you should pick a recognized license in any case.


Depends.

Is it important to me that people can accept it, or is it just important to me that I'm not making it difficult for someone to be able to accept it?

If people have trouble accepting gifts because of local regulations, perhaps it is instead up to them to try get those regulations revised?

[FWIW: I'd not use these licence options anyway. I'm more AGPLv3 for code and CC BY-NC v4 for other content, not that I have any published ATM unless you count long forgotten stuff from a decade or two ago, other terms available subject to negotiation]


> or is it just important to me that I'm not making it difficult for someone to be able to accept it?

I don't know. By writing "Dedicated to the public domain" instead of "Licensed under MIT [or CC0]", you are doing comparable effort but you are definitely making it difficult for some people with no clear benefits.

Getting such regulations revised is very hard work and would probably not happen in our lifetime, and I'm not sure being able to dedicate something to the public domain when you can license your work liberally anyway is that desirable.

(but yes, me too, I'm more AGPLv3 for code anyway - and none of us is right or wrong in this philosophical discussion)


I stand corrected then. I had heard a similar comparison that you should prefer Unlicense over WTFPL, but I had not heard it is impossible to dedicate works to the public domain. What a weird world.

If I want to use Unlicense, can I dual license as MIT and Unlicense?


Dual licensing should be fine. (IANAL)


Actually I read through your links, and they seem to imply, that there does not exist (can not exist?) a license that you could use if you want to release your code to the public domain. That's a bummer if so.


In many countries including mine, willingly putting work in the public domain is not possible.

In France, you have to wait 70 years and then the end of the year for your work to be in the public domain (sometimes, it's 70 years after the death of the author).

So you need a license like CC0 to "emulate" public domain, that does whatever is possible to give as many rights as possible to the extend permitted by law, in each jurisdiction. This is tricky, that's why CC0 is so long.

Public domain is just an area where the author cannot impose anything. If you can give all the possible rights that matter, it does not seem to really matter if you can't just put it in the public domain, or am I missing something?


> that there does not exist (can not exist?) a license that you could use if you want to release your code to the public domain

In what jurisdiction? Yes, it's widely thought it's not possible e.g. in Germany, because you cannot seem to waive your moral rights.

What about the U.S.? There's no explicit law saying you can dedicate your copyright to the Public Domain. True, so some think it's not possible. But others think you can simply abandon copyright, like you can any other personal property. Why wouldn't that be the case?

FWIW, I like the clarity of a permissive MIT or ISC license. But I think you may be able to dual license Public Domain (in many jurisdictions) OR MIT.


> you cannot seem to waive your moral rights.

If it's like France, moral rights cannot be given up and stay in perpetuity, even when the work reaches public domain.

That's patrimonial rights that expire after 70 years, making the work reach public domain. These are the ones you would want to give up to put something in the public domain but can't.


Perpetuity? Interesting. So, if the moral rights don't end when you die, then I suppose your heirs and successors can nominally enforce moral rights, centuries later. Wow!


> I suppose your heirs and successors can nominally enforce moral rights, centuries later

I don't know about this. That's quite possible. But yes! See [1,2]

[1] https://en.wikipedia.org/wiki/Moral_rights [2] https://fr.wikipedia.org/wiki/Droit_moral


That's my understanding as well.


I needed an online card sort tool for another hobby project, and I just couldn't find one that fit my needs, so I built https://github.com/indigane/cardsort

One requirement I had if I were to build it myself was that it would be maintenance-free and still work years after I have forgotten about it, so having a server was a no-go.


Thanks, that's a good catch.


In case someone reads this in search of another tool, I did a search again, and found one I had missed, that actually has a usable free tier as of writing https://uxmetrics.com



Command blocks also bring a whole new level to that.

There is vanilla and then there is vanilla with command blocks.

They are getting closer and closer to modding and are almost like an in-game programming language.

For example, here [1] is a command block command that procedurally generates giant oak trees [2].

[1] http://pastebin.com/raw.php?i=QzS0M4Vn

[2] https://youtu.be/6cJL4lM7KR4


Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: