dotfiles

My personal dotfiles.
Log | Files | Refs | Submodules | README

commit d9cf58d866bbacabac4dd027fa4bd650a4bfa4a8
parent 29c60861048c00dce987d9a30a763bd3f429927e
Author: Pablo Cárdenas <pablo.cardenas@imca.edu.pe>
Date:   Sat, 30 May 2026 03:52:10 -0300

bib: improved biblist

Diffstat:
M.config/bib/references.bib | 148++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
M.config/zathura/zathurarc | 1+
A.local/bin/bibdot | 18++++++++++++++++++
A.local/bin/biblist-dot | 45+++++++++++++++++++++++++++++++++++++++++++++
A.local/bin/biblist-key | 20++++++++++++++++++++
A.local/bin/biblist-ref | 42++++++++++++++++++++++++++++++++++++++++++
A.local/bin/biblist-url | 24++++++++++++++++++++++++
A.local/bin/bibopen | 18++++++++++++++++++
A.local/bin/bibref | 18++++++++++++++++++
A.local/bin/biburl | 17+++++++++++++++++
10 files changed, 343 insertions(+), 8 deletions(-)

diff --git a/.config/bib/references.bib b/.config/bib/references.bib @@ -1242,10 +1242,8 @@ @Book{munkres2000, title = "Topology", author = "James Raymond Munkres", - publisher = "Pearson"y?? "stdin", line 1403: Expected comma after last field ``publisher''. - -?? Expected comma after last field ``publisher''. -ear = "2000", + publisher = "Pearson", + year = "2000", edition = "2", URL = "https://www.pearson.com/en-us/subject-catalog/p/topology-classic-version/P200000006299/9780137848669201", } @@ -1567,6 +1565,7 @@ ear = "2000", archiveprefix = "arXiv", primaryclass = "cs.LG", URL = "https://arxiv.org/abs/2412.06264", + localrefs = "Lipman et al., 2022=lipman2023", } @Book{jacod2004, @@ -1582,10 +1581,8 @@ ear = "2000", @Article{stigler2008, title = "The Epic Story of Maximum Likelihood", author = "Stephen M. Stigler", - year = "2008"U?? "stdin", line 1754: Expected comma after last field ``year''. - -?? Expected comma after last field ``year''. -RL = "https://arxiv.org/abs/0804.2996", + year = "2008", + URL = "https://arxiv.org/abs/0804.2996", } @Misc{chung2024, @@ -1626,6 +1623,7 @@ RL = "https://arxiv.org/abs/0804.2996", archiveprefix = "arXiv", primaryclass = "cs.CV", URL = "https://arxiv.org/abs/2506.02680", + localrefs = "[17]=ho2020 [25]=kim2025 [30]=lipman2023 [31]=liu2019 [33]=mardani2023 [39]=poole2022 [40]=rombach2022 [50]=song20212 [51]=song20211 [53]=wang2023 [61]=zilberstein2024", } @Misc{vaswani2023, @@ -1657,3 +1655,137 @@ RL = "https://arxiv.org/abs/0804.2996", primaryclass = "cs.CL", URL = "https://arxiv.org/abs/1409.0473", } + +@Misc{mardani2023, + title = "A Variational Perspective on Solving Inverse Problems with Diffusion Models", + author = "Morteza Mardani and Jiaming Song and Jan Kautz and Arash Vahdat", + year = "2023", + eprint = "2305.04391", + archiveprefix = "arXiv", + primaryclass = "cs.LG", + URL = "https://arxiv.org/abs/2305.04391", +} + +@Misc{zilberstein2024, + title = "Repulsive Latent Score Distillation for Solving Inverse Problems", + author = "Nicolas Zilberstein and Morteza Mardani and Santiago Segarra", + year = "2024", + eprint = "2406.16683", + archiveprefix = "arXiv", + primaryclass = "cs.LG", + URL = "https://arxiv.org/abs/2406.16683", +} + +@Misc{liu2019, + title = "Stein Variational Gradient Descent: A General Purpose Bayesian Inference Algorithm", + author = "Qiang Liu and Dilin Wang", + year = "2019", + eprint = "1608.04471", + archiveprefix = "arXiv", + primaryclass = "stat.ML", + URL = "https://arxiv.org/abs/1608.04471", +} + +@Misc{song20211, + title = "Score-Based Generative Modeling through Stochastic Differential Equations", + author = "Yang Song and Jascha Sohl-Dickstein and Diederik P. Kingma and Abhishek Kumar and Stefano Ermon and Ben Poole", + year = "2021", + eprint = "2011.13456", + archiveprefix = "arXiv", + primaryclass = "cs.LG", + URL = "https://arxiv.org/abs/2011.13456", + localrefs = "Ho et al., 2020=ho2020", +} + +@Misc{song20212, + title = "Maximum Likelihood Training of Score-Based Diffusion Models", + author = "Yang Song and Conor Durkan and Iain Murray and Stefano Ermon", + year = "2021", + eprint = "2101.09258", + archiveprefix = "arXiv", + primaryclass = "stat.ML", + URL = "https://arxiv.org/abs/2101.09258", + localrefs = "[48]=song20211", +} + +@Misc{wang2023, + title = "{ProlificDreamer}: High-Fidelity and Diverse {Text-to-3D} Generation with Variational Score Distillation", + author = "Zhengyi Wang and Cheng Lu and Yikai Wang and Fan Bao and Chongxuan Li and Hang Su and Jun Zhu", + year = "2023", + eprint = "2305.16213", + archiveprefix = "arXiv", + primaryclass = "cs.LG", + URL = "https://arxiv.org/abs/2305.16213", +} + +@Misc{ho2020, + title = "Denoising Diffusion Probabilistic Models", + author = "Jonathan Ho and Ajay Jain and Pieter Abbeel", + year = "2020", + eprint = "2006.11239", + archiveprefix = "arXiv", + primaryclass = "cs.LG", + URL = "https://arxiv.org/abs/2006.11239", +} + +@Misc{radford2021, + title = "Learning Transferable Visual Models From Natural Language Supervision", + author = "Alec Radford and Jong Wook Kim and Chris Hallacy and Aditya Ramesh and Gabriel Goh and Sandhini Agarwal and Girish Sastry and Amanda Askell and Pamela Mishkin and Jack Clark and Gretchen Krueger and Ilya Sutskever", + year = "2021", + eprint = "2103.00020", + archiveprefix = "arXiv", + primaryclass = "cs.CV", + URL = "https://arxiv.org/abs/2103.00020", +} + +@Misc{song2022, + title = "Denoising Diffusion Implicit Models", + author = "Jiaming Song and Chenlin Meng and Stefano Ermon", + year = "2022", + eprint = "2010.02502", + archiveprefix = "arXiv", + primaryclass = "cs.LG", + URL = "https://arxiv.org/abs/2010.02502", + localrefs = "Ho et al. (2020)=ho2020", +} + +@Misc{ramesh2022, + title = "Hierarchical Text-Conditional Image Generation with {CLIP} Latents", + author = "Aditya Ramesh and Prafulla Dhariwal and Alex Nichol and Casey Chu and Mark Chen", + year = "2022", + eprint = "2204.06125", + archiveprefix = "arXiv", + primaryclass = "cs.CV", + URL = "https://arxiv.org/abs/2204.06125", +} + +@Misc{nakkiran2024, + title = "Step-by-Step Diffusion: An Elementary Tutorial", + author = "Preetum Nakkiran and Arwen Bradley and Hattie Zhou and Madhu Advani", + year = "2024", + eprint = "2406.08929", + archiveprefix = "arXiv", + primaryclass = "cs.LG", + URL = "https://arxiv.org/abs/2406.08929", + localrefs = "Song et al. [2021]=song2022 Ho et al. [2020]=ho2020 Lipman et al., 2023=lipman2023", +} + +@Misc{poole2022, + title = "{DreamFusion}: {Text-to-3D} using {2D} Diffusion", + author = "Ben Poole and Ajay Jain and Jonathan T. Barron and Ben Mildenhall", + year = "2022", + eprint = "2209.14988", + archiveprefix = "arXiv", + primaryclass = "cs.CV", + URL = "https://arxiv.org/abs/2209.14988", +} + +@Misc{rombach2022, + title = "High-Resolution Image Synthesis with Latent Diffusion Models", + author = "Robin Rombach and Andreas Blattmann and Dominik Lorenz and Patrick Esser and Björn Ommer", + year = "2022", + eprint = "2112.10752", + archiveprefix = "arXiv", + primaryclass = "cs.CV", + URL = "https://arxiv.org/abs/2112.10752", +} diff --git a/.config/zathura/zathurarc b/.config/zathura/zathurarc @@ -2,3 +2,4 @@ set database sqlite set show-recent 100 map Y exec 'sh -c "echo \"\\\\ref{$(basename $FILE)}{<++>}{$PAGE}{<++>}\" | xclip -sel clipboard"' +map b exec 'sh -c "path=$(basename $FILE); base=${path%.*}; bibref $base"' diff --git a/.local/bin/bibdot b/.local/bin/bibdot @@ -0,0 +1,18 @@ +#!/bin/sh + +[ -f "$BIB" ] || { + echo "No BIB=$BIB" + exit 1 +} + +if [ -t 0 ]; then + command="fzf" +else + command="dmenu -i -l 20" +fi + +selection=$(biblist-key | $command | cut -d" " -f1) + +[ -z "$selection" ] && exit 0 + +biblist-dot "$selection" | dot -Tpdf | zathura - diff --git a/.local/bin/biblist-dot b/.local/bin/biblist-dot @@ -0,0 +1,45 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Text::BibTeX; + +my ($src) = @ARGV; +my $bib = $ENV{BIB} or die "BIB is not set\n"; +-f $bib or die "No BIB=$bib\n"; + +my $bibfile = Text::BibTeX::File->new($bib); + +print "digraph G {\n"; +print "rankdir = RL\n"; + +my %entry; +while (my $e = Text::BibTeX::Entry->new($bibfile)) { + next unless $e->parse_ok; + next unless $e->metatype eq BTE_REGULAR; + + my $key = $e->key; + + $entry{$key} = { + author => $e->get("author") // "", + title => $e->get("title") // "", + year => $e->get("year") // "", + localrefs => $e->get("localrefs") // "", + }; +} + +die "key not found: $src\n" unless exists $entry{$src}; + +my %seen; +my @stack = ($src); + +while (@stack) { + my $u = pop @stack; + next if $seen{$u}++; + + my %localrefs = $entry{$u}{localrefs} =~ /\s*([^=]+)=(\S+)\s*/g; + while (my ($k, $v) = each %localrefs) { + print " $u -> $v [label=\"$k\"]\n"; + push @stack, $v; + } +} +print "}\n"; diff --git a/.local/bin/biblist-key b/.local/bin/biblist-key @@ -0,0 +1,20 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Text::BibTeX; + +my $bib = $ENV{BIB} or die "BIB is not set\n"; +-f $bib or die "No BIB=$bib\n"; + +my $bibfile = Text::BibTeX::File->new($bib); + +while (my $entry = Text::BibTeX::Entry->new($bibfile)) { + my $key = $entry->key; + next unless defined $key; + + my @details = map { $entry->get($_) } + grep { $entry->exists($_) } + qw(title author journal year); + + print "$key | ", join(" | ", @details), "\n"; +} diff --git a/.local/bin/biblist-ref b/.local/bin/biblist-ref @@ -0,0 +1,42 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Text::BibTeX; + +my ($src) = @ARGV; +my $bib = $ENV{BIB} or die "BIB is not set\n"; +-f $bib or die "No BIB=$bib\n"; + +my $bibfile = Text::BibTeX::File->new($bib); + +my %entry; +while (my $e = Text::BibTeX::Entry->new($bibfile)) { + next unless $e->parse_ok; + next unless $e->metatype eq BTE_REGULAR; + + my $key = $e->key; + + $entry{$key} = { + author => $e->get("author") // "", + title => $e->get("title") // "", + year => $e->get("year") // "", + localrefs => $e->get("localrefs") // "", + }; +} + +die "key not found: $src\n" unless exists $entry{$src}; + +my %localrefs = $entry{$src}{localrefs} =~ /\s*([^=]+)=(\S+)\s*/g; +my @sorted = (!grep { $_ !~ /^\d+$/ } keys %localrefs) + ? sort { $a <=> $b } keys %localrefs + : sort { $a cmp $b } keys %localrefs; + +for my $n (@sorted) { + my $dst = $localrefs{$n}; + + my $author = $entry{$dst}{author} // "?"; + my $year = $entry{$dst}{year} // "?"; + my $title = $entry{$dst}{title} // "?"; + + print "$dst | $n | $title | $author | $year\n"; +} diff --git a/.local/bin/biblist-url b/.local/bin/biblist-url @@ -0,0 +1,24 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Text::BibTeX; + +my $bib = $ENV{BIB} or die "BIB is not set\n"; +-f $bib or die "No BIB=$bib\n"; + +my $bibfile = Text::BibTeX::File->new($bib); + +while (my $entry = Text::BibTeX::Entry->new($bibfile)) { + my $url = + $entry->exists('doi') ? $entry->get('doi') : + $entry->exists('url') ? $entry->get('url') : + undef; + + next unless defined $url; + + my @details = map { $entry->get($_) } + grep { $entry->exists($_) } + qw(title author journal year); + + print "$url | ", join(" | ", @details), "\n"; +} diff --git a/.local/bin/bibopen b/.local/bin/bibopen @@ -0,0 +1,18 @@ +#!/bin/sh + +[ -f "$BIB" ] || { + echo "No BIB=$BIB" + exit 1 +} + +if [ -t 0 ]; then + command="fzf" +else + command="dmenu -i -l 20" +fi + +biblist-key | + $command | + cut -d" " -f1 | + xargs -I{} find "$BIB_DATA" -name '{}.*' | + xargs -r -n 1 xdg-open diff --git a/.local/bin/bibref b/.local/bin/bibref @@ -0,0 +1,18 @@ +#!/bin/sh + +[ -f "$BIB" ] || { + echo "No BIB=$BIB" + exit 1 +} + +if [ -t 0 ]; then + command="fzf" +else + command="dmenu -i -l 20" +fi + +biblist-ref $1 | + $command | + cut -d" " -f1 | + xargs -I{} find "$BIB_DATA" -name '{}.*' | + xargs -r -n 1 xdg-open diff --git a/.local/bin/biburl b/.local/bin/biburl @@ -0,0 +1,17 @@ +#!/bin/sh + +[ -f "$BIB" ] || { + echo "No BIB=$BIB" + exit 1 +} + +if [ -t 0 ]; then + command="fzf" +else + command="dmenu -i -l 20" +fi + +biblist-url | + $command | + cut -d" " -f1 | + xargs -r -n 1 xdg-open