My brain: Good, as you don't feel any obligation to work on your PhD today, you should just open the PhD working file and start working on it, no pressure. it will feel nice, I promise!
pledge()
and unveil()
syscalls:https://www.youtube.com/watch?v=bXO6nelFt-E
Not only are they super useful (the program itself can drop privileges – like, it can initialize itself, read some files, whatever, and then tell the kernel that it will never do anything like that again; if it does, e.g. by being exploited through a bug, it gets killed by the kernel), but they are also extremely easy to use.
Imagine a server program with a connected socket in file descriptor 0. Before reading any data from the client, the program can do this:
unveil("/var/www/whatever", "r");
unveil(NULL, NULL);
pledge("stdio rpath", NULL);
Done. It’s now limited to reading files from that directory, communicating with the existing socket, stuff like that. But it cannot ever read any other files or
exec()
into something else.I can’t wait for the day when we have something like this on Linux. There have been some attempts, but it’s not that easy. And it’s certainly not mainstream, yet.
I need to have a closer look at Linux’s Landlock soon (“soon”), but this is considerably more complicated than
pledge()
/unveil()
:https://landlock.io/
https://www.os2museum.com/wp/learn-something-old-every-day-part-xv-keyb-is-half-of-keyboard-bios/


https://pyodide.org/en/stable/usage/packages-in-pyodide.html
#Python #CreativeCoding
Why? Because it turns out you can only see it if you are in landscape, in portrait view the button simply does not exist...
#ux #fail


Why? Because it turns out you can only see it if you are in landscape, in portrait view the button simply does not exist...
#ux #fail


Mas para mim a feira #medieval de #Lamego é aquela altura do ano em que vou até à praça e bebo #hidromel. E quem diz que essa não é uma boa tradição a manter e celebrar? ;-)
* https://pt.m.wikipedia.org/wiki/Cortes_de_Lamego

Mas para mim a feira #medieval de #Lamego é aquela altura do ano em que vou até à praça e bebo #hidromel. E quem diz que essa não é uma boa tradição a manter e celebrar? ;-)
* https://pt.m.wikipedia.org/wiki/Cortes_de_Lamego

(...15 minute version is a great watch though)
(...15 minute version is a great watch though)
fn sub(foo: &String) {
println!("We got this string: [{}]", foo);
}
fn main() {
// "Hello", 0x00, 0x00, "!"
let buf: [u8; 8] = [0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x00, 0x00, 0x21];
// Create a string from the byte array above, interpret as UTF-8, ignore decoding errors.
let lossy_unicode = String::from_utf8_lossy(&buf).to_string();
sub(&lossy_unicode);
}
Create a string from a byte array, but the result isn’t a string, it’s a cow 🐮, so you need another
to_string()
to convert your “string” into a string.- https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8_lossy
- https://doc.rust-lang.org/std/borrow/enum.Cow.html
I still have a lot to learn.
(
into_owned()
instead of to_string()
also works and makes more sense to me, it’s just that the compiler suggested to_string()
first, which led to this funny example.)
By the way, looks like there was a bit of a discussion regarding that name:
https://github.com/rust-lang/rust/issues/120048
https://doc.rust-lang.org/std/path/struct.Path.html#method.display
Note the little
1.0.0
in the top right corner, which means that this function has been “stable since Rust version 1.0.0”. We’re at 1.87 now, so we’re good.Then I compiled my program on OpenBSD with Rust 1.86, i.e. just one version behind, but well ahead of 1.0.0.
The compiler said that I was using an unstable library feature.
Turns out, that function internally uses this:
https://doc.rust-lang.org/std/ffi/struct.OsStr.html#method.display
And that is only available since Rust 1.87.
How was I supposed to know this? 🤨
https://www.kurdistan24.net/en/story/845550/iran-confirms-contamination-at-natanz-nuclear-facility-following-israeli-strike
https://www.kurdistan24.net/en/story/845550/iran-confirms-contamination-at-natanz-nuclear-facility-following-israeli-strike
"Avançar na disseminação da interação por via digital e remota com os serviços administrativos do Estado, mas sempre garantindo a assistência pessoal (incluindo através dos Espaços do Cidadão, apoio telefónico e Assistentes Virtuais/IA) aos que têm dificuldades técnicas, económicas ou de info-exclusão;"
Porque já se sabe que quem tem dificuldades em interagir por via digital vai conseguir sem problemas ser atendido e ver o seu problema resolvido por um assistente virtual de Inteligência artificial... *suspiro*
"Avançar na disseminação da interação por via digital e remota com os serviços administrativos do Estado, mas sempre garantindo a assistência pessoal (incluindo através dos Espaços do Cidadão, apoio telefónico e Assistentes Virtuais/IA) aos que têm dificuldades técnicas, económicas ou de info-exclusão;"
Porque já se sabe que quem tem dificuldades em interagir por via digital vai conseguir sem problemas ser atendido e ver o seu problema resolvido por um assistente virtual de Inteligência artificial... *suspiro*
"Criar um modelo de número único de identificação para as pessoas e em-
presas, assim evitando que a mesma pessoa tenha de ter número de utente,
de cartão de cidadão, de contribuinte, de Segurança Social, de eleitor, etc;"
Só que a Constituição Portuguesa, no artigo 35º, nº5, estabelece que "É proibida a atribuição de um número nacional único aos cidadãos". Quer dizer, eles podem estar a dizer que querem mudar este número na constituição, mas também foram eles que disseram que uma revisão constitucional não é uma prioridade deste governo... em que ficamos?
"Criar um modelo de número único de identificação para as pessoas e em-
presas, assim evitando que a mesma pessoa tenha de ter número de utente,
de cartão de cidadão, de contribuinte, de Segurança Social, de eleitor, etc;"
Só que a Constituição Portuguesa, no artigo 35º, nº5, estabelece que "É proibida a atribuição de um número nacional único aos cidadãos". Quer dizer, eles podem estar a dizer que querem mudar este número na constituição, mas também foram eles que disseram que uma revisão constitucional não é uma prioridade deste governo... em que ficamos?
A #desburocratização prometida pelo novo #Governo é o que já se suspeitava, agora vertida na sua proposta de programa de governo. Esta frase resume bem o que se pretende fazer:
"Tudo isto assenta num princípio essencial: o da confiança. O Estado deve confiar
nos cidadãos, reduzindo exigências injustificadas, adotando regras como o deferimento tácito e mecanismos de controlo eficazes e justos. A confiança é a base de uma administração mais ágil, mais humana e mais justa – e o antídoto contra a
corrupção que se alimenta da opacidade e da lentidão."
Se acham que isto não parece muito mal, porque afinal só se fala em tirar as exigências que não são justificadas, e que apesar da ideia central é no de confiar que ninguém vai agir mal continuam a haver mecanismos de controlo eficazes... note-se que esses são "mecanismos de controlo e fiscalização a posteriori" - isto é, só depois do mal estar feito é que se vai ver se o Governante submeteu os dados que devia, se o concurso público não era para uma obra que até já estava feita, ou uma dessas muitas coisas que temos de confiar que não vão acontecer.
Em suma: vamos ter menos corrupção porque vamos ter menos e piores mecanismos para detectar a corrupção, e como é tudo mais simples e rápido e algumas coisas até passam a ser legais, pode ser que isto funcione.
A #desburocratização prometida pelo novo #Governo é o que já se suspeitava, agora vertida na sua proposta de programa de governo. Esta frase resume bem o que se pretende fazer:
"Tudo isto assenta num princípio essencial: o da confiança. O Estado deve confiar
nos cidadãos, reduzindo exigências injustificadas, adotando regras como o deferimento tácito e mecanismos de controlo eficazes e justos. A confiança é a base de uma administração mais ágil, mais humana e mais justa – e o antídoto contra a
corrupção que se alimenta da opacidade e da lentidão."
Se acham que isto não parece muito mal, porque afinal só se fala em tirar as exigências que não são justificadas, e que apesar da ideia central é no de confiar que ninguém vai agir mal continuam a haver mecanismos de controlo eficazes... note-se que esses são "mecanismos de controlo e fiscalização a posteriori" - isto é, só depois do mal estar feito é que se vai ver se o Governante submeteu os dados que devia, se o concurso público não era para uma obra que até já estava feita, ou uma dessas muitas coisas que temos de confiar que não vão acontecer.
Em suma: vamos ter menos corrupção porque vamos ter menos e piores mecanismos para detectar a corrupção, e como é tudo mais simples e rápido e algumas coisas até passam a ser legais, pode ser que isto funcione.
Gopher is a small world. It’s slow and cozy.
And much like twtxt, the protocol is simple(r), so it’s easier to tinker with it.




"We bring you the delights of Scott Marshall Hurdy Gurdy, and Bristol's Dead Space Chamber Music, with a little Sieben to kick off proceedings. Come join us in the garden!"
Starting *now*!
https://www.youtube.com/live/k9V92zE4dyk
"We bring you the delights of Scott Marshall Hurdy Gurdy, and Bristol's Dead Space Chamber Music, with a little Sieben to kick off proceedings. Come join us in the garden!"
Starting *now*!
https://www.youtube.com/live/k9V92zE4dyk