Skip to content

Instantly share code, notes, and snippets.

View JJ's full-sized avatar
🏠
Working from home

Juan Julián Merelo Guervós JJ

🏠
Working from home
View GitHub Profile
@JJ
JJ / chart-files-changed.yaml
Created December 23, 2021 08:47
GitHub action step to chart the latest number of files changed in commits using Raku
- name: Install Text::Chart
run: zef install Text::Chart
- name: Chart files changed latest commits
shell: raku {0}
run: |
use Text::Chart;
my @changed-files = qx<git log --oneline --shortstat -$COMMITS>
.lines.grep( /file/ )
.map( * ~~ /$<files>=(\d+) \s+ file/ )
.map: +*<files>;
@JJ
JJ / raku-test.yaml
Last active December 23, 2021 07:18
Github Action for testing Raku modules
name: "Test in a Raku container"
on: [ push, pull_request ]
jobs:
test:
runs-on: ubuntu-latest
permissions:
packages: read
container:
image: ghcr.io/jj/raku-zef-gha
steps:
@JJ
JJ / xmas-tree.raku
Created December 18, 2021 19:45
Painting a Xmas tree with Text::Chart
use Text::Chart;
my @data = < 1 2 3 4 5 6 7 6 5 4 3 2 1 >;
my $midway = (@data.elems/2).truncate;
my $max = max(@data);
my &left-pad = { " " x $midway ~ $_ ~ "\n"};
say left-pad("") ~ vertical( :$max, @data ) ~ left-pad("") x 2;
@JJ
JJ / text-char.raku
Last active December 18, 2021 19:26
Embedding Text::Chart code
unit module Text::Chart;
constant $default-char is export = "";
sub vertical ( Int :$max = 10,
Str :$chart-chars = $default-char,
*@data ) is export {
my $space = " ";
my @chars = $chart-chars.comb;
@JJ
JJ / adm.md
Last active September 26, 2021 16:39

Desde el punto de vista del estudiante (y también del profesor que viene más tarde) hay un tipo de asignaturas que vamos a denominar AdM (que evidentemente significa Asignaturas diseñadas Malamente) que tienen una serie de carencias, lo que causa una serie de actitudes en el estudiante. Vamos a tratar de caracterizar aquí estas diferencias

AdM Asignatura no-dM
En muchos casos, el contenido o el propio concepto de la asignatura no tiene nada que ver con la realidad laboral actual Hay un esfuerzo por estar al día de esa realidad laboral y usar siempre ejemplos y conceptos cercanos a la realidad conceptual y laboral
El que juzga si algo está bien o no es el profesor Los conceptos y si están bien o mal se pueden mirar en cualquier lado
En algunos casos, "lo que quiere el profe que escriba" está en contra de las buenas prácticas aprendidas en la práctica laboral Si hay alguna mala práctica o antipatrón, se puede solicitar una corrección y nunca resulta en mala nota
@JJ
JJ / perl-modules-travis-ubuntu.md
Last active May 8, 2021 04:08
Perl modules installed in the Travis default runner
@JJ
JJ / perl-modules-github-actions-ubuntu-runner.md
Created January 8, 2021 07:14
List of Perl modules installed in the Github action runner

Here's the list of modules installed in the Ubuntu runner for Github actions. They've been obtained using a script that list all modules installed

Module
AnyDBM_File
App::Cpan
App::Prove::State::Result::Test
App::Prove::State::Result
App::Prove::State
App::Prove
@JJ
JJ / gist:e4ef3ed2dc31bdbfe2275998fc148b96
Last active May 8, 2021 04:07
List of Perl modules installed in the Docker Hub hook runner

List of Perl modules

It's been obtained by running cpan -l on the Docker Hub runner

Module Version
Algorithm::Diff 1.1903
Algorithm::Diff::XS 0.04
Algorithm::DiffOld 1.1
Algorithm::Merge 0.08
@JJ
JJ / threaded-primes.p6
Created July 31, 2020 15:57
Using threads to compute primes in an interval
#!/usr/bin/env raku
constant $interval = 100000;
my @threads = (^10).map: -> $i {
Thread.start(
name => "Checking primes from {$i * $interval } to { ($i+1)*$interval}",
sub {
for ($i * $interval)..^(($i+1)*$interval) -> $n {
next if ( $n %% 2 ) | ( $n %% 3 ) | ($n %% 5 );
@JJ
JJ / PAS-UGR-Linux.md
Last active March 16, 2020 15:59
Conexión PAS UGR desde Linux

La seguridad es lo primero

Recuerda que tienes que tratar el ordenador con el que estés trabajando con ficheros de la UGR como si fuera tu ordenador de la propia UGR. No trabajes nunca en un usuario compartido, usa tu propio usuario y no compartas la contraseña. Los ficheros especialmente sensibles deberán estar protegidos contra lectura de cualquier otro usuario. Cierra tu escritorio siempre que te ausentes.

Ahora, a trabajar en Linux.

Aparentemente, la UGR no ha considerado necesario dar instrucciones para que el PAS se conecte al escritorio remoto desde Linux, sólo para sistemas operativos privativos. Además, se usa un programa privativo, sólo para Windows y con licencias restrictivas, que hace que la única forma de usarlo sea mediante escritorio remoto a un ordenador en la UGR.

A ver si esto sirve de lección para las universidades. Aunque lo dudo.