5 changed files with 268 additions and 0 deletions
@ -0,0 +1,62 @@ |
|||||||
|
+++ |
||||||
|
title = "Links for 2020-03-11" |
||||||
|
date = 2020-03-11 |
||||||
|
|
||||||
|
[taxonomies] |
||||||
|
tags = ["links", "google", "agpl"] |
||||||
|
+++ |
||||||
|
|
||||||
|
Google Policy towards AGPL software, Swift vs Rust, Open Source Economics, |
||||||
|
JUnit 5, cfg(doctest), Firefox on Flathub. |
||||||
|
|
||||||
|
<!-- more --> |
||||||
|
|
||||||
|
# [AGPL Policy](https://opensource.google/docs/using/agpl-policy/) |
||||||
|
|
||||||
|
Google policy towards using AGPL software. Basically, because AGPL says |
||||||
|
"source is _always_ available", Google says "maintain an aggressively-broad |
||||||
|
ban on all AGPL software" |
||||||
|
|
||||||
|
Take away: Release **everything** under the AGPL. |
||||||
|
|
||||||
|
# [Impressions of Rust as a Swift Developer: Memory Management](https://blog.spencerkohan.com/impressions-of-rust-as-a-swift-developer-2/) |
||||||
|
|
||||||
|
A take on the way Rust and Swift manages memory. While I agree with the |
||||||
|
drawbacks of Rust, the author forgets to mention the price Swift pays for its |
||||||
|
simplicity: A runtime. |
||||||
|
|
||||||
|
Having a runtime is bad? Well, it depends: If you're not using anything the |
||||||
|
runtime offers (your application does a full allocation upfront and never |
||||||
|
deallocates, it completes its job before it has time to actually use the |
||||||
|
garbage collector), you're basically wasting resources. Sure, you pay this in |
||||||
|
development time, but this has to be measured. |
||||||
|
|
||||||
|
Also, a runtime means another problem: Runtime errors. Unless your compiler |
||||||
|
picks those and stop you from creating code that can generate those errors, |
||||||
|
you'll get those. |
||||||
|
|
||||||
|
(Also, fun fact: Graydon Hoare, the creator of Rust, worked on Swift.) |
||||||
|
|
||||||
|
# [cfg(doctest) is stable and you should use it](https://blog.guillaume-gomez.fr/articles/2020-03-07+cfg%28doctest%29+is+stable+and+you+should+use+it) |
||||||
|
|
||||||
|
Speaking of Rust, here's a feature I was not aware of: You can create testing |
||||||
|
modules that test Markdown documentation. Why would anyone do that? Well, |
||||||
|
markdown is usually the way people document their applications and you want |
||||||
|
your examples to actually work, right? |
||||||
|
|
||||||
|
# [Can We Make Open Source More Sustainable?](https://www.telerik.com/blogs/can-we-make-open-source-more-sustainable) |
||||||
|
|
||||||
|
A big problem with open source is that actually nobody cares about how it is |
||||||
|
developed: Sure, there is a _person_ (or _persons_) behind it, but how are |
||||||
|
those people paying for their living, eating and health? The post points some |
||||||
|
things open source developers can do to get something out. |
||||||
|
|
||||||
|
# [Improve your tests with JUnit 5](https://98elements.com/blog/improve-your-tests-with-junit-5/) |
||||||
|
|
||||||
|
A few tips on using JUnit 5 -- some that I was not aware of. |
||||||
|
|
||||||
|
# [Mozilla makes Firefox Beta available on Flathub](https://eischmann.wordpress.com/2020/03/10/mozilla-makes-firefox-beta-available-on-flathub/) |
||||||
|
|
||||||
|
Mozilla is making Firefox available on Flathub, which means now it is even |
||||||
|
easier to test Firefox without breaking your system -- 'cause Flatpak keeps |
||||||
|
the whole package in its own container and it does not touch your system. |
@ -0,0 +1,104 @@ |
|||||||
|
+++ |
||||||
|
title = "Links for 2020-03-12" |
||||||
|
date = 2020-03-12 |
||||||
|
|
||||||
|
[taxonomies] |
||||||
|
tags = ["links"] |
||||||
|
+++ |
||||||
|
|
||||||
|
Netflix and the Hexagonal Architecture, logging, EOF, JS Frameworks, Emacs |
||||||
|
Charts, Rust init Pattern, Software Engineers vs Technicians, Cancelling |
||||||
|
Conferences How-To, A VIM Jump-to-Anything plugin. |
||||||
|
|
||||||
|
<!-- more --> |
||||||
|
|
||||||
|
# [Ready for changes with Hexagonal Architecture](https://netflixtechblog.com/ready-for-changes-with-hexagonal-architecture-b315ec967749) |
||||||
|
|
||||||
|
A Netflix Tech post about the hexagonal architecture for microservices. |
||||||
|
|
||||||
|
The interesting bit here is the fact that Netflix devs focused on "swappable |
||||||
|
data sources", which is something I've been pushing where I work a lot[^1] |
||||||
|
|
||||||
|
Even if I hate this posture a lot[^2], now I can say "Netflix does this, we |
||||||
|
can do it too!" |
||||||
|
|
||||||
|
# [Do not log](https://sobolevn.me/2020/03/do-not-log) |
||||||
|
|
||||||
|
I really don't agree with this. I do understand that, sometimes, logging is |
||||||
|
stupid and just adds noise, but we have see this problem in the same way we |
||||||
|
see comments: They need to explain the _why_. _Why_ the request failed? |
||||||
|
|
||||||
|
Sometimes it can even be the _what_: _What_ user input caused this process to |
||||||
|
fail? |
||||||
|
|
||||||
|
As the author argues, one could use Sentry for capturing failures, but what if |
||||||
|
this isn't an option (due to cost)? I once worked with the free version of |
||||||
|
Sentry and while it was okay, it didn't provide enough information to |
||||||
|
understand the _why_ things failed -- you can add the message in the |
||||||
|
exception, but _only_ if that's your code; what can you do if it is a library |
||||||
|
causing the exception? Cascade everything? |
||||||
|
|
||||||
|
Log. But think on _why_ you're logging. |
||||||
|
|
||||||
|
# [EOF is not a character](https://ruslanspivak.com/eofnotchar/) |
||||||
|
|
||||||
|
My C life is build on top of lies! |
||||||
|
|
||||||
|
Honestly, I thought EOF was really the same value as `^D` (Ctrl-D, which ends |
||||||
|
the input) and you could put an EOF in the middle of the file and still have |
||||||
|
content. But it seems it was not that. |
||||||
|
|
||||||
|
# [A RealWorld Comparison of Front-End Frameworks 2020](https://medium.com/dailyjs/a-realworld-comparison-of-front-end-frameworks-2020-4e50655fe4c1) |
||||||
|
|
||||||
|
Not too sure about the benchmarks used -- specially when someone says "Svelte |
||||||
|
was skipped due to cloc not being able to process .svelte files." when you can |
||||||
|
surely use `wc`. |
||||||
|
|
||||||
|
But still, interesting, in some aspects. |
||||||
|
|
||||||
|
# [ActuallyUsingWasm](https://wiki.alopex.li/ActuallyUsingWasm) |
||||||
|
|
||||||
|
Implementations, runtimes, execution times, code samples... A bit of |
||||||
|
everything about running Wasm. |
||||||
|
|
||||||
|
# [Exploring emacs chart library](https://francismurillo.github.io/2017-04-15-Exploring-Emacs-chart-Library/) |
||||||
|
|
||||||
|
No, I didn't drop VIM and start using Emacs, but it is really impressive that |
||||||
|
it has a built in charts library -- which, on the other hand, just adds to the |
||||||
|
"Emacs is a good operating system, but lacks a good editor" joke. |
||||||
|
|
||||||
|
# [My exploration of Rust and .NET](https://ericsink.com/entries/dotnet_rust.html) |
||||||
|
|
||||||
|
Converting LLVM bytecode from Rust to .NET assembly. |
||||||
|
|
||||||
|
# [Init Struct Pattern](https://xaeroxe.github.io/init-struct-pattern/) |
||||||
|
|
||||||
|
An initialization pattern for Rust structures. Honestly, I don't see that much |
||||||
|
difference than using `Default` directly, but it may be interesting if you |
||||||
|
should do some change in the input at construction. |
||||||
|
|
||||||
|
(Also, I have the slight impression that the pattern, in the end, forces you |
||||||
|
to build a complete object and then call `init()` to build a copy of said |
||||||
|
already complete object.) |
||||||
|
|
||||||
|
# [The Fall of The Software Engineer, The Rise of The Programmer Technician](https://medium.com/@alexkatrompas/the-fall-of-the-software-engineer-the-rise-of-the-programmer-technician-451a572d28b0) |
||||||
|
|
||||||
|
A discussion on the (natural) evolution of the software development market. |
||||||
|
|
||||||
|
# [My conference has a sneeze - Practical help in winding down a troubled conference](https://paper.dropbox.com/doc/My-conference-has-a-sneeze-Practical-help-in-winding-down-a-troubled-conference-mZJJdhWXFjYLledMKxgyl) |
||||||
|
|
||||||
|
This is mostly interesting to me 'cause I'm part of the organization of two |
||||||
|
conferences and we have this discussion about cancelling, postponing or going |
||||||
|
forward for both. |
||||||
|
|
||||||
|
# [any-jump.vim — IDE madness without overhead for 40+ languages](https://github.com/pechorin/any-jump.vim) |
||||||
|
|
||||||
|
A VIM plugin to jump to everywhere (except files, that is). But hell if it |
||||||
|
isn't cute. |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
[^1]: Sadly, I'm not getting heard here. |
||||||
|
|
||||||
|
[^2]: That's [cargo |
||||||
|
cult](https://en.wikipedia.org/wiki/Cargo_cult_programming), kids. |
@ -0,0 +1,49 @@ |
|||||||
|
+++ |
||||||
|
title = "Links for 2020-03-13" |
||||||
|
date = 2020-03-13 |
||||||
|
|
||||||
|
[taxonomies] |
||||||
|
tags = ["links", "cloud", "aws", "azure", "gcp", "benchmarks", "government", "germany", "twitter", "fakes", "automated", "rust", "documentation", "work from home", "home office"] |
||||||
|
+++ |
||||||
|
|
||||||
|
AWS+Azure+GCP on Optimizing Benchmarks, Public Service in Germany Can't Be |
||||||
|
Free, Fake Twitter Accounts, Automated Emails, Documenting Your Rust Code, |
||||||
|
Tips on Working From Home. |
||||||
|
|
||||||
|
<!-- more --> |
||||||
|
|
||||||
|
# [AWS, Azure, & GCP Respond to the 2020 Cloud Report](https://www.cockroachlabs.com/blog/aws-azure-gcp-respond-to-the-2020-cloud-report/) |
||||||
|
|
||||||
|
Here is the thing: CockroachLabs checks the performance of their database on |
||||||
|
all major cloud providers using the default settings; cloud providers respond |
||||||
|
the report by suggesting improvements; CockroachLabs publish the suggestions. |
||||||
|
|
||||||
|
# [Court outlaws German Weather Service's free weather app](https://www.dw.com/en/court-outlaws-german-weather-services-free-weather-app/a-52735502) |
||||||
|
|
||||||
|
So you think a service provided by the government should be free (since, you |
||||||
|
know, it's paid by the taxpayers). But then comes a private service and the |
||||||
|
government (the law part) says the private service is correct in saying the |
||||||
|
service paid by the taxpayers shouldn't be free. |
||||||
|
|
||||||
|
And all that in Germany, in all the places... although I reckon Germany is not |
||||||
|
a place known for urgent warnings like hurricanes and such. |
||||||
|
|
||||||
|
# [Signs You’re Following A Fake Twitter Account…](https://nixintel.info/osint/signs-youre-following-a-fake-twitter-account/) |
||||||
|
|
||||||
|
A good report on how to spot fake accounts, although I have to wonder how many |
||||||
|
people would actually take the time to do all the checking presented in the |
||||||
|
article. |
||||||
|
|
||||||
|
# [A Vacancy Has Been Detected](https://kellysutton.com/2019/06/19/a-vacancy-has-been-detected.html) |
||||||
|
|
||||||
|
A tale of loss and how automated messages can be problematic 'cause they |
||||||
|
assume too much about the target audience. |
||||||
|
|
||||||
|
# [Guide on how to write documentation for a Rust crate](https://blog.guillaume-gomez.fr/articles/2020-03-11+Guide+on+how+to+write+documentation+for+a+Rust+crate) |
||||||
|
|
||||||
|
Not only explaining how the Rust documentation system works, but also giving |
||||||
|
pointers on how to write a proper documentation. |
||||||
|
|
||||||
|
# [Things I've learned from 12 years of WFH](https://typing.lmorchard.com/2020/03/12/things-ive-learned-from-12-years-of-wfh/) |
||||||
|
|
||||||
|
Tips and tricks and some pointers on how to do a proper Work From Home. |
@ -0,0 +1,47 @@ |
|||||||
|
+++ |
||||||
|
title = "Links for 2020-03-16" |
||||||
|
date = 2020-03-16 |
||||||
|
|
||||||
|
[taxonomies] |
||||||
|
tags = ["links", "devops", "books", "covid-19", "licensing", "python", "cheatsheet", "erland", "language server", "text processing"] |
||||||
|
+++ |
||||||
|
|
||||||
|
Free DevOps Books, COVID-19 Vaccine Fight, License Writing Tool, Python |
||||||
|
Cheatsheet, Erland LS, Unix Text Processing. |
||||||
|
|
||||||
|
<!-- more --> |
||||||
|
|
||||||
|
# [You can get my DevOps books free the rest of this month](https://www.jeffgeerling.com/blog/2020/you-can-get-my-devops-books-free-rest-month) |
||||||
|
|
||||||
|
Jeff Geerling, author of "Ansible for DevOps" and "Kubernetes for DevOps" made |
||||||
|
those two books free on LeanPub, but only for this month. |
||||||
|
|
||||||
|
# [Germany tries to halt U.S. interest in firm working on coronavirus vaccine](https://www.reuters.com/article/us-health-coronavirus-germany-usa/germany-tries-to-stop-us-from-luring-away-firm-seeking-coronavirus-vaccine-idUSKBN2120IV) |
||||||
|
|
||||||
|
Welt am Sonntag, a German newspaper, got hold on the fact that the US |
||||||
|
government is trying to buy the company working on a cure of COVID-19, "but |
||||||
|
only for the US". |
||||||
|
|
||||||
|
Hey, nice showing on how to be a super-power, US Government. |
||||||
|
|
||||||
|
# [Licensor: write licenses to stdout](https://github.com/raftario/licensor) |
||||||
|
|
||||||
|
Tired of searching how to write the license for your project? Worry no more! |
||||||
|
Licensor have a list of licenses and you can use it to generate your LICENSE |
||||||
|
file! |
||||||
|
|
||||||
|
# [Comprehensive Python Cheatsheet](https://github.com/gto76/python-cheatsheet) |
||||||
|
|
||||||
|
Chearsheets are abound, but this one for Python is pretty damn nice -- and |
||||||
|
_really_ complete. |
||||||
|
|
||||||
|
# [Welcome to Erlang LS](https://erlang-ls.github.io/) |
||||||
|
|
||||||
|
Erlang got its own Language Server, allow you to use any editor (that supports |
||||||
|
LSP -- Language Server Protocol -- that is) to write Erland code and get |
||||||
|
auto-completion and jump to definitions. |
||||||
|
|
||||||
|
# [Text processing in the shell](https://blog.balthazar-rouberol.com/text-processing-in-the-shell) |
||||||
|
|
||||||
|
A short explanation of lots of tools for text processing on Unix (actually, |
||||||
|
POSIX) systems. |
Loading…
Reference in new issue