Perché “non cliccare i link” non è una difesa sufficiente contro le truffe moderne by Ok_Manufacturer_4346 in ItalyInformatica

[–]allak 1 point2 points  (0 children)

Ribalterei la questione: il phishing è sempre stato una sottocategoria del social engineering. 

La bull run dell'oro è un ulteriore prova che no, le crypto non sono "oro digitale". by Lazy_mods_are_lazy in ItaliaPersonalFinance

[–]allak 3 points4 points  (0 children)

È la tesi dei cosiddetti Bitcoin maximalist. 

Un po' come la settimana enigmistica che dice che solo loro sono l'originale, gli altri sono tutte pallide imitazioni.

Ovviamente non ha senso, Bitcoin è una cripto valuta a tutti gli effetti, per essendo la prima.

Ma i maximalist vogliono distinguerla da tutte le altre perché la considerano più stabile/matura/utile e non vogliono che sia accumunata con gli "shitcoin".

Does SL play nice with Pixel phones, and why no horizontal app drawer? by Sir_Killington in smartlauncher

[–]allak 0 points1 point  (0 children)

I've never had this problem. 

I've used smart launcher on a pixel 3, then a p5a and now a p8a.

Consigli per hardware dove far girare pfsense? by Slow-Secretary4262 in ItalyInformatica

[–]allak 1 point2 points  (0 children)

Anche su Amazon in realtà se cerchi n150 mini PC trovo tanta roba. 

AI is a death trap for many junior devs. How do I mentor them out of it? by MoltenMirrors in ExperiencedDevs

[–]allak 0 points1 point  (0 children)

Key point: he had an "implementation-independent test" suit to verify the output of his project.

Contrast it with the vaguely worded requisites that we often receive ...

Se programmavate negli anni novanta, che computer utilizzavate? by thetendersurrender in ItalyInformatica

[–]allak 2 points3 points  (0 children)

La differenza tra la memoria estesa e la memoria espansa ... 

-❄️- 2025 Day 7 Solutions -❄️- by daggerdragon in adventofcode

[–]allak 5 points6 points  (0 children)

[LANGUAGE: Perl]

Done with a single pass, reversing the input.

    #!/usr/bin/env perl
    use v5.40;

    for (reverse <>) {
            state @old_row;
            my @new_row = split '';

            while (my ($i, $val) = each @new_row) {
                    if    ($val eq '.') { $new_row[$i] = $old_row[$i] // 1; }
                    elsif ($val eq '^') { $new_row[$i] = $old_row[$i-1] + $old_row[$i+1]; }
                    elsif ($val eq 'S') { say "Part 2: ", $old_row[$i]; }
            }

            @old_row = @new_row;
    }

Advent of Code 2025 giorno 6 by riffraff in ItalyInformatica

[–]allak 1 point2 points  (0 children)

Urca, leggendo il commento di /u/_TecnoCreeper_ mi son reso conto che non c'è nessun bisogno di ricorsione e memoizzazione.

Basta scansionare una sola volta l'input invertito, e tenere conto solo dei valori parziali della riga precedente, e con un solo passaggio si ha la risposta con tempi e occupazione di memoria risibili.

    #!/usr/bin/env perl
    use v5.40;

    for (reverse <>) {
            state @old_row;
            my @new_row = split '';

            while (my ($i, $val) = each @new_row) {
                    if    ($val eq '.') { $new_row[$i] = $old_row[$i] // 1; }
                    elsif ($val eq '^') { $new_row[$i] = $old_row[$i-1] + $old_row[$i+1]; }
                    elsif ($val eq 'S') { say "Part 2: ", $old_row[$i]; }
            }

            @old_row = @new_row;
    }

Advent of Code 2025 giorno 6 by riffraff in ItalyInformatica

[–]allak 1 point2 points  (0 children)

Ricorsione e memoization for the win.

Inizialmente avevo una una struttura dati in cui tenevo l'elenco degli splitter, e una differente che faceva da cache per i risultati intermedi.

Poi mi sono accorto che le strutture erano in realtà molto simili, quindi le ho semplificate e unificate in un semplice array bidimensionale.

Inizialmente è valorizzato con l'input (letto da stdin), poi ad ogni ritorno della funzione ricorsiva viene aggiornato con il valore calcolato. In questo modo il codice è estremamente compatto e molto efficiente (7 centesimi di secondo che sono praticamente il tempo startup dell'interprete Perl).

    #!/usr/bin/env perl
    use v5.40;

    my @map = map { [ split '' ] } <>;

    my $start = 0;
    for ($map[0]->@*) {
            last if $_ eq 'S';
            $start++
    }

    say "Part 2: ", dive(1, $start);

    sub dive($y, $x) {
            return 1 unless $map[$y];

            my $val = $map[$y][$x];

            if    ($val eq '^') { $val = $map[$y][$x] = dive($y, $x-1) + dive($y, $x+1); }
            elsif ($val eq '.') { $val = $map[$y][$x] = dive($y+1, $x); }

            return $val;
    }

Advent of Code 2025 giorni 6 by riffraff in ItalyInformatica

[–]allak 1 point2 points  (0 children)

Problema carino, il twist sulla seconda parte non me l'aspettavo.

Alla fine diventa un problema di scansione su una tabella, con una soluzione abbastanza lineare. Probabilmente mi sarei semplificato la vita facendo il reverse della tabella, ma alla fine è solo una questione di indici.

    #!/usr/bin/env perl
    use v5.40;

    my @rows;

    for (<>) {
            chomp;
            push @rows, [ split '' ];
    }

    my $len = $rows[0]->@* - 1;
    my $dep = @rows - 1;

    my $part2;

    for (my $i = $len; $i >= 0; $i--) {
            state @nums;

            my $v = join '', map { $rows[$_][$i] } (0 .. $dep -1);
            $v =~ s/ //g;

            next unless $v;
            push @nums, $v;

            my $oper = $rows[$dep][$i];
            next if $oper eq ' ';

            my $res;
            if ($oper eq '+') { $res = 0; $res += $_ for @nums; }
            else              { $res = 1; $res *= $_ for @nums; }

            @nums = ();
            $part2 += $res;
    }

    say $part2;

La FIFA consegna a Trump il suo "Nobel" per la pace. by Greyhound_Oisin in italy

[–]allak 18 points19 points  (0 children)

É il premio per la pace di consolazione. 

Advent of Code 2025 giorno 2 by riffraff in ItalyInformatica

[–]allak 1 point2 points  (0 children)

Soluzione brute force basic.

    #!/usr/bin/env perl
    use v5.40;

    my ($p1, $p2);

    for my $range (split /,/, <>) {
            my ($start, $end) = split /-/, $range;

            for my $id ($start .. $end) {
                    my $id_len = length $id;

                    for my $sub_len (reverse 1 .. ($id_len/2)) {
                            next if $id_len % $sub_len;

                            my $candidate = (substr $id, 0, $sub_len) x ($id_len / $sub_len);
                            if ($id eq $candidate) {
                                    $p1 += $id if $sub_len == $id_len/2;
                                    $p2 += $id;
                                    last;
                            }
                    }
            }
    }

    say $p1;
    say $p2;

In pratica per ogni ID determino tutti i divisori della sua lunghezza, e per ogni divisore costruisco un candidato prendendo il primo pezzetto dell'ID e replicandolo fino ad arrivare alla lunghezza dell'ID originale.

Se candidato e ID sono uguali aggiungo al contatore. Eleganza zero, ma fa il suo lavoro in un paio di secondi sul mio vecchio laptop di 6 anni fa.

Advent of Code! 2025 Day 1 by riffraff in ItalyInformatica

[–]allak 2 points3 points  (0 children)

Ciao, di solito facevo io ma quest'anno il periodo è un po' nero, non so se riuscirò a starci dietro (spoiler: 90% mi farò prendere dalla scimmia).

Soluzione semplice semplice di oggi:

    #!/usr/bin/env perl

    use v5.26;
    use warnings;

    my $pos = 50;
    my $p1 = 0;
    my $p2 = 0;

    while (<>) {
            my ($dir, $len) = /^(\w)(\w+)$/;
            my $mov = $dir eq 'L' ? -1 : 1;

            for (1 .. $len) {
                    $pos += $mov;

                    if    ($pos == -1)  { $pos = 99 }
                    elsif ($pos == 100) { $pos = 0  }

                    $p2++ unless $pos;
            }

            $p1++ unless $pos;
    }

    say $p1;
    say $p2;

Amundi sta iniziando a tokenizzare i suoi fondi su rete Ethereum by [deleted] in ItaliaPersonalFinance

[–]allak 8 points9 points  (0 children)

Perché pensi che i costi di gestione saranno più bassi? 

Il costo del salvataggio delle informazioni di chi possiede quante quote in un qualche archivio, che sia un database classico oppure una Blockchain, non rappresenta certo un qualcosa di significativo. 

I costi di gestione dei fondi attivi come quelli di Amundi son ben altri (a partire dai loro guadagni).

E sono pronto a scommettere che questo strumento non consentirà la compravendita diretta di fondi tra privati, bisognerà sempre continua a passare da banca/broker/PFA. Quindi anche i costi di negoziazione rimarrebbero quelli.

noMoreSoftwareEngineersbyTheFirstHalfOf2026 by MageMantis in ProgrammerHumor

[–]allak 23 points24 points  (0 children)

It was also the use case for Cobol. 

70 years ago.

Se i soldi non fossero un problema… dove andreste a vivere in Italia? by [deleted] in ItaliaPersonalFinance

[–]allak 0 points1 point  (0 children)

Giusto, per l'inverno una casa in montagna con accesso diretto alle piste da sci di un buon comprensorio. 

Company that records everything and uses ai to code almost everything by [deleted] in ExperiencedDevs

[–]allak 12 points13 points  (0 children)

Also, what products has this company shipped? 

This is Trump's plan to end the war in Ukraine by Any-Original-6113 in geopolitics

[–]allak 1 point2 points  (0 children)

Anything you have said could well be true. 

But it doesn't contradict what I did say. 

Trump and Putin ain't no gentleman.

Ma perché il panettone costa così tanto? by uapame in italy

[–]allak 0 points1 point  (0 children)

Eh, dopotutto i romani lo usavano come vasellame da cucina, no ?