The source content for blog.juliobiason.me
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
5.1 KiB

+++
title = "Links for 2020-04-19"
date = 2020-04-19
[taxonomies]
tags = ["links", "hierarchical data", "mysql", "licenses", "commons clause",
"clojure", "generics", "configuration", "config files", "zoom", "rust", "cli",
"seo"]
+++
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.
<!-- more -->
# [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.