Skip to content

Instantly share code, notes, and snippets.

View pfcoperez's full-sized avatar

Pablo Francisco Pérez Hidalgo pfcoperez

View GitHub Profile
zk_version 3.7.0-e3704b390a6697bfdf4b0bef79e3da7a4f6bac4b, built on 2021-03-17 09:46 UTC
zk_server_state leader
zk_peer_state leading - broadcast
zk_ephemerals_count 80
zk_num_alive_connections 6
zk_avg_latency 0.5714
zk_min_proposal_size 36
zk_outstanding_requests 0
zk_znode_count 508
zk_global_sessions 53
@pfcoperez
pfcoperez / handleMemoriesUploads.sh
Created May 17, 2022 05:43
Family pictures and memories backup and mangement pipeline
#!/bin/bash
#
# ./handleMemoriesUploads.sh /srv/uploads/digitalmemories /mnt/external/managedark/digitalmemories /srv/enc/clear/digitalmemories/ /srv/enc/ciphered/digitalmemories/ azureDrive:/backup/memories false
#
SOURCE_DIR=$1
LOCAL_DEST=$2
ENC_IN=$3
ENC_OUT=$4
RCLONE_SYNC_DEST=$5
SKIP_UPLOAD=$6
# https://www.europarl.europa.eu/plenary/en/votes.html?tab=votes
curl https://www.europarl.europa.eu/doceo/document/PV-9-2022-03-01-RCV_FR.xml |\
xq . |\
jq '."PV.RollCallVoteResults"."RollCallVote.Result"[] | {"description": ."RollCallVote.Description.Text"."#text", "votes": ."Result.Against"."Result.PoliticalGroup.List"[]}'
cat /tmp/votes.json | jq '."PV.RollCallVoteResults"."RollCallVote.Result"[] | select(."RollCallVote.Description.Text"."#text" == "- Après le § 37 - Am 21")| {"description": ."RollCallVote.Description.Text"."#text", "votes": ."Result.For"."Result.PoliticalGroup.List"[]}' | jq '.votes | ."@Identifier", (."PoliticalGroup.Member.Name" | length)' -r
@pfcoperez
pfcoperez / generics.go
Created February 20, 2022 17:31
Generic in Go
package main
// https://go.dev/doc/tutorial/generics
import "fmt"
func receiveSlice[V interface{}](theSlice []V) []V {
ret := make([]V, len(theSlice))
for i, value := range theSlice {
ret[i] = value
#!/bin/bash
#
# ./handleMemoriesUploads.sh /srv/uploads/digitalmemories /mnt/external/managedark/digitalmemories /srv/enc/clear/digitalmemories/ /srv/enc/ciphered/digitalmemories/ amazonDrive:/backup/memories false
# ./handleMemoriesUploads.sh /srv/uploads/digitalmemories /mnt/external/managedark/digitalmemories /srv/enc/clear/digitalmemories/ /srv/enc/ciphered/digitalmemories/ s3:orionsmemories
#
SOURCE_DIR=$1
LOCAL_DEST=$2
ENC_IN=$3
ENC_OUT=$4
RCLONE_SYNC_DEST=$5
@pfcoperez
pfcoperez / quine.sc
Created October 6, 2021 19:33
A quine using Scala as an Ammonite script
var l = Vector.empty[String]
val c = '"'
def doit(p: => Unit) {
p
val ll = "doit {" +: l :+ "}"
print(ll.mkString("\n"))
}
def myprint(x: Any) {
l = l :+ s"myprint($c$c$c$x$c$c$c)"
println(x)
import $ivy.`com.typesafe:config:1.4.0`
import com.typesafe.config.ConfigFactory
import scala.collection.JavaConverters._
ConfigFactory.parseString(repl.clipboard.read)
.entrySet.asScala.map(_.getKey).toSeq.sorted
.filter(_.contains("timeout"))
import java.util.zip.ZipInputStream
def zipStream(zis: ZipInputStream, buffer: Array[Byte]): Stream[(String, Array[Byte])] = {
val maybeEntry = Option(zis.getNextEntry);
maybeEntry match {
case Some(entry) =>
val size = zis.read(buffer, 0, buffer.size)
(entry.getName, buffer.take(size)) #:: zipStream(zis, buffer)
case None => Stream.empty
}

Keybase proof

I hereby claim:

  • I am pfcoperez on github.

  • I am pfcoperez (https://keybase.io/pfcoperez) on keybase.

  • I have a public key ASBBp5iz_1Z1-j5aIX7WnDsR7ODlkVK_JxoZTbaoOokdlwo

@pfcoperez
pfcoperez / ammonite_clipboard_ciirce.scala
Created May 20, 2019 12:02
Example using clipboard access from Ammonite added in https://github.com/lihaoyi/Ammonite/pull/656
import $ivy.`io.circe::circe-parser:0.11.1`
import io.circe._, io.circe.parser._, io.circe.syntax._
for {
input <- parse(repl.clipboard.read).right
toAdd <- parse("""{"new_field": "added programatically"}""").right
} repl.clipboard.write(input.deepMerge(toAdd).toString)