Kototama
Kototama on Hacker News
They did: "Elise [...] worked in the past on Nintendo Switch hacking"
This was written on the original posted page (before the link was changed) when you commented.
If it's for a hobby project it can be fun to work with Common Lisp and see all the good things such an old language still has to offer and where it's still superior to more modern languages. You also don't need to deal with the JVM and will have nice stacktraces (Clojure stacktraces are a mix of Java land and Clojure land). However the ecosystem is very thin so you might have to implement more stuff yourself or being blocked on something (no asynchronous programming for example if you need a very high performance web application). It's not rare to search for a library and find that the last edit was 7 years ago. Maybe it works, maybe it does not, but it surely is not maintained.
The interactivity in Common Lisp is a bit better (navigate the stacktrace, debugger, object inspector etc) but the Clojure REPL is also very good and allow to change the code of your application live without recompiling the whole project. Clojure is a functional programming language, whereas CL is multi-paradigms so it's easier to deal with state in Clojure. The ecosystem of Clojure is much richer and you can always fallback on the endless Java ecosystem if something is missing.
You could have a big external USB drive and try a deduplicating backup software such as borg backup or restic.
You could activate the sshd service and log in to the NAS.
You can use Synology Hyper Backup (or any cloud backup program) and an AWS S3 compatible provider, such as Backblaze.
Books as a unit of time. Interesting :D.
> Typed languages are essential on teams with mixed experience levels
I like this one because it puts this endless dilemma in a human context. Most discussions are technical (static typing ease refactoring and safety, dynamic typing is easier to learn and better for interactive programming etc.) and ignore the users, the programmers.
Because software is built on shifting sands?
You need to cut in the direction of your body in some cases (for example when carving wood).
Two things to prevent injuries: a) never put any force if the material resists b) do it slowly.
It's even more confusing for non native speakers.
You need to preheat the pan and not cook at a temperature where the oil polymerizes or the ingredients can burn. When you put something sticky in it, you need to wait a bit for the crust to form before moving it.
Exactly. Even the Lodge manufacturer, for example, indicates on their website that you can use a small amount of soap.
This is not correlated. Android has sandboxing and you can run your own applications.
Curiosity beyond your own tools
Don't forget LEGO® Serious Play®.
You mean embedded-hal, not embedded-hat :-)
It would minimize the synchronisation lag between the other machines, being more often started.
It's not really hard to onboard new engineers with Scala, Clojure or even Ruby backgrounds. The language is easy. It takes a bit of time to learn the OTP patterns but so does learning any frameworks / tech stack too.
I have no experience with Kubernetes but my understanding is that Erlang/OTP is conceptually much simpler but also answer a different problem. Some stuff overlap (like restarting services/apps) but not all: for example there is no autoscaling in Erlang/OTP. I know that some companies use both in their stack. Kubernetes is language agnostic.
Erlang/Elixir is amazing because it brings so much good things and they are not that difficult to learn with some experience with functional programming.
> How do the supervisor trees avoid a single point of failure?
They do not. Supervisor trees are a way to manage failures at the level of one node.
> How would I tell the cluster that there should be N processes running, each on a different node?
It's not something that is builtin in OTP. There are libraries that solve it, like libcluster.
> And is there anything in OTP that would help me elect a leader or do I still have to implement that myself?
Not directly in OTP but there are libraries, for example for raft.
Ok so why is Erlang/Elixir/OTP good then? Well first it makes a single running application more robust to failures thanks to its supervision trees but it also allow to build distributed applications more easily. GenServers allow to build robust services very easily with common patterns. Local calls or remote calls to GenServers are the same, allowing to scale services. Message passing and pattern matching is part of the core of the language (no need for protobuf for example). Observability and introspection is excellent when a problem arise (inspecting processes, their memory, their message queues, the schedulers etc). Immutable datastructures and processes that do not share memory also make it easier to scale horizontally, at a cluster level. And probably lot of other good things I forgot :-).
This makes moonwalks very dangerous.
You think they are outdated because you did not find the cross on the UI to close them once you noticed you actually had to LEARN them to use their power?
I wonder how many people buy such products once it's displayed on the frontpage of HN.
Does anybody know of something similar for Go? I think it could work well: both languages use mutable datastructures, have a GC and are expected to be reasonably fast. It would bring all the Go libraries to CL.
Nothing like a short
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
to start a nice journey into programming, right?
Cassandra is more close to AP whereas MySQL with clustering is more like CP. So they serve different purpose. See this nice discussion on Stackoverflow:
https://stackoverflow.com/questions/36404765/why-isnt-rdbms-...> Also, whether you need a highly available database for a company like yelp is an implementation detail.
You surely know better than them what they need, that's impressive.
Cassandra is highly-available, your suggestion is not.