From 1828190b8a58deff1e3ae1e809f84e250f2f0308 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Sun, 19 Apr 2020 10:30:05 -0300 Subject: [PATCH] Links for 2020-04-19 --- content/links/20200419.md | 117 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 content/links/20200419.md diff --git a/content/links/20200419.md b/content/links/20200419.md new file mode 100644 index 0000000..c447fbd --- /dev/null +++ b/content/links/20200419.md @@ -0,0 +1,117 @@ ++++ +title = "Links for 2020-04-19" +date = 2020-04-19 + +[taxonomies] +tags = ["links", "hierarchical data", "mysql", "licenses", "commons clause", +"clojure"] ++++ + +Managing Nested Data in MySQL, The Commons Clause License, Clojure, A Look +into Compilers, No `<>` to Generics, Configuration Files, Zoom Fiasco, Rust +CLI tools, SEO. + + + +# (Managing Hierarchical Data in MySQL)[http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/] + +A bunch of tips on how to manage nested/hierarchical information in MySQL. +While the storage format could be used in any database, it seems the insertion +part in the post is MySQL specific. + +Curious, nonetheless. + +# [The Commons Clause will destroy open source](https://drewdevault.com/2018/08/22/Commons-clause-will-destroy-open-source.html) + +While I don't agree with Drew in some points (mostly the things he rants +about), and while I don't think, on the surface, that the Commons Clause may +destroy open source, his words are a cautionary tale about picking the right +license[^1]. + +# [Guide to starting with Clojure](https://grison.me/2020/04/04/starting-with-clojure/) + +It's been too long since I saw a very detailed introduction of a language like +this. Explaining installs, IDE/Editor configuration, a short description of +the language, a toy problem and a way to build and deploy the result. + +Really complete -- and, on the plus side, it's Clojure! + +# [The Svelte Compiler Handbook](https://lihautan.com/the-svelte-compiler-handbook/) + +While related to Svelte -- the JavaScript templating language -- what it +describes is pretty close to what every compiler do, in a high level, even if +some do more stuff, like Rust having two more steps before the code +generation, for optimization. + +# [Language Design: Stop Using \<\> for Generics](https://soc.me/languages/stop-using-for-generics) + +Let's get into some controversy, shall we? + +One the major points of Clojure is exactly how it pick one single pair for +each different aspect, contrary to Lisp, which used parenthesis for +everything. + +So, what is being described here is to use `[]` instead of `<>` for generics. +But wouldn't that clash with array access? Sure, that's why array access +should be `()`. But wouldn't that clash with function calling? Sure, that's +why function calling should be... should be what again? Nothing? So we let it +clash? + +"`<>` is hard for compilers to parse". Oh, poor compiwer, it is weaving a bad +time? Newsflash, the job of a compiler _is_ to take the hard work and leave +the simpler thing to users; the harder it does its work, the easier it is for +their users. If the users can clearly see generics with `<>` -- because it is +different from everything else -- then it is good.[^2] + +# [Your configs suck? Try a real programming language.](https://beepb00p.xyz/configs-suck.html) + +Another controversy, just for fun. + +Ok, so config formats are bad 'cause you can't replicate some stuff -- I can +agree with that, imagine having to copy and paste the same value over and +over? + +But the problem is: Using a "real programming language" for configuration may +also have a problem: you need to cut a lot of stuff. Django uses Python itself +as a configuration -- and, again, I can agree with that, 'cause it allows one +to have a default configuration and just import it and override things for +your local execution -- but it doesn't block running anything. Worse, because +you can import things into the configuration file, one project that gets +compromised will _always_ run the code. + +Again, I agree with a lot of points, including the fact that the current +formats for configuration files are bad, but using a programming language for +it is not the solution. Besides, it is possible to overcome those problems +with better configuration settings themselves than the format; as hard as it +is. + +# [Security and Privacy Implications of Zoom](https://www.schneier.com/blog/archives/2020/04/security_and_pr_1.html) + +While articles about the raise of Zoom and its problems popping everywhere, +but Bruce Schneier, the father of internet security, made a post with all its +problems, from privacy to security. + +# [My tools are going Rusty](https://elliehuxtable.com/my-tools-are-pretty-rusty/) + +A short summary of common Unix/Posix/GNU tools written in Rust. + +# [How SEO Ruined the Internet](https://www.superhighway98.com/seo) + +Yes, everybody knows how the current trend of creating content focused on +producing better search results -- instead of, say, better quality content +that _should_ be indexed due its quality -- basically made the internet a +terrible place. + +This post describes some of the effects of this focus on the general internet +content. + +--- + +[^1]: This was weirdly timed with a presentation I finished talking about + licenses -- it's in Portuguese, and I haven't present it yet, but at some + point there will be a companion post for it, even in English. + +[^2]: Personally, using Scala as an example of "doing right" feels really + wrong. Scala does _a lot_ wrong, I don't freaking care how much you like + Scala. Also, saying Python uses `[]` for generics is wrong 'cause Python + does _not_ have generics.