Updating this website
Finally got around to updating this dang website.
I’m using straight Hugo, built on a WSL Ubuntu, and rsync
’d over to my website
(why is rsync on Windows so hard?). I might use quarto going forward to render
any notebooks I have. For R and python I’m using micromamba to manage
installation and environments.
Formerly I’d relied on the R package blogdown
to create the website; however,
I felt that it abstracted just a bit too much of the process away, I wanted to
be more involved in maintaining hugo settings and understanding the system a
little better. Don’t get me wrong, I think for those who don’t want to know
about hugo or jekyll or whatever, blogdown is a great way to get up-and-running
very quickly. I just had a terrible system for managing things that got in the
way and lowered motivation to update the website, so I wanted to simplify.
Previously, I had an R Project as the entry point for the website. I would write
my content with R Markdown documents, and those would be converted to .md, and
then hugo would convert them to HTML, all done using blogdown::build_site()
.
Now, it’s not like I’d written a lot, but it was still a bit more of a hassle
and just enough to keep me from working in the website. I also had a weird
system to get around the rsync
issue on Windows where I had a github
repository for my hugo website, and then I had another one for my public/
directory that I would pull down on my web server. Really messy setup led to
lack of a desire to work on it.
I came back to the website this year and tried to boostrap the renv
environment and it just failed, erroring out on something simple like MASS or
something.
- Installing MASS ... FAILED
Error: Error installing package 'MASS':
================================
* installing *source* package 'MASS' ...
** package 'MASS' successfully unpacked and MD5 sums checked
** using staged installation
** libs
using C compiler: 'gcc.exe (GCC) 12.2.0'
gcc -I"C:/PROGRA~1/R/R-43~1.2/include" -DNDEBUG -I"C:/rtools43/x86_64-w64-mi
ngw32.static.posix/include" -O2 -Wall -mfpmath=sse -msse2 -mstackrealign -c
MASS.c -o MASS.o
MASS.c:37:23: error: unknown type name 'Sint'; did you mean 'int'?
37 | VR_sammon(double *dd, Sint *nn, Sint *kd, double *Y, Sint *niter,
| ^~~~
| int
MASS.c:37:33: error: unknown type name 'Sint'; did you mean 'int'?
37 | VR_sammon(double *dd, Sint *nn, Sint *kd, double *Y, Sint *niter,
| ^~~~
| int
MASS.c:37:54: error: unknown type name 'Sint'; did you mean 'int'?
37 | VR_sammon(double *dd, Sint *nn, Sint *kd, double *Y, Sint *niter,
| ^~~~
| int
MASS.c:38:27: error: unknown type name 'Sint'; did you mean 'int'?
38 | double *stress, Sint *trace, double *aa, double *tol)
| ^~~~
| int
MASS.c:168:8: error: unknown type name 'Sint'
168 | static Sint *ord; /* ranks of dissimilarities */
| ^~~~
MASS.c:169:8: error: unknown type name 'Sint'
169 | static Sint *ord2; /* inverse ordering (which one is rank i?
) */
| ^~~~
MASS.c:170:8: error: unknown type name 'Sint'
170 | static Sint n; /* number of dissimilarities */
| ^~~~
MASS.c:171:8: error: unknown type name 'Sint'
171 | static Sint nr; /* number of data points */
| ^~~~
MASS.c:172:8: error: unknown type name 'Sint'
172 | static Sint nc; /* # cols of fitted configuration */
| ^~~~
MASS.c:181:31: error: unknown type name 'Sint'; did you mean 'int'?
181 | VR_mds_fn(double *, double *, Sint *, double *, Sint *,
| ^~~~
| int
MASS.c:181:49: error: unknown type name 'Sint'; did you mean 'int'?
181 | VR_mds_fn(double *, double *, Sint *, double *, Sint *,
| ^~~~
| int
MASS.c:182:21: error: unknown type name 'Sint'; did you mean 'int'?
182 | double *, Sint *, Sint *, double *, Sint *, double *);
| ^~~~
| int
MASS.c:182:29: error: unknown type name 'Sint'; did you mean 'int'?
182 | double *, Sint *, Sint *, double *, Sint *, double *);
| ^~~~
| int
MASS.c:182:47: error: unknown type name 'Sint'; did you mean 'int'?
182 | double *, Sint *, Sint *, double *, Sint *, double *);
| ^~~~
| int
MASS.c:188:18: error: unknown type name 'Sint'; did you mean 'int'?
188 | VR_mds_init_data(Sint *pn, Sint *pc, Sint *pr, Sint *orde,
| ^~~~
| int
MASS.c:188:28: error: unknown type name 'Sint'; did you mean 'int'?
188 | VR_mds_init_data(Sint *pn, Sint *pc, Sint *pr, Sint *orde,
| ^~~~
| int
MASS.c:188:38: error: unknown type name 'Sint'; did you mean 'int'?
188 | VR_mds_init_data(Sint *pn, Sint *pc, Sint *pr, Sint *orde,
| ^~~~
| int
MASS.c:188:48: error: unknown type name 'Sint'; did you mean 'int'?
188 | VR_mds_init_data(Sint *pn, Sint *pc, Sint *pr, Sint *orde,
| ^~~~
| int
MASS.c:189:18: error: unknown type name 'Sint'; did you mean 'int'?
189 | Sint *ordee, double *xx, double *p)
| ^~~~
| int
MASS.c: In function 'fminfn':
MASS.c:240:5: error: unknown type name 'Sint'; did you mean 'int'?
240 | Sint do_derivatives = 0;
| ^~~~
| int
MASS.c:243:5: warning: implicit declaration of function 'VR_mds_fn'; did you mean
'VR_mds_unload'? [-Wimplicit-function-declaration]
243 | VR_mds_fn(y, yf, &n, &ssq, ord2, x, &nr, &nc, 0, &do_derivatives,
| ^~~~~~~~~
| VR_mds_unload
MASS.c: In function 'fmingr':
MASS.c:252:5: error: unknown type name 'Sint'; did you mean 'int'?
252 | Sint do_derivatives = 1;
| ^~~~
| int
MASS.c: At top level:
MASS.c:263:26: error: unknown type name 'Sint'; did you mean 'int'?
263 | VR_mds_dovm(double *val, Sint *maxit, Sint *trace, double *xx, double *to
l)
| ^~~~
| int
MASS.c:263:39: error: unknown type name 'Sint'; did you mean 'int'?
263 | VR_mds_dovm(double *val, Sint *maxit, Sint *trace, double *xx, double *to
l)
| ^~~~
| int
MASS.c:280:34: error: unknown type name 'Sint'; did you mean 'int'?
280 | VR_mds_fn(double *y, double *yf, Sint *pn, double *pssq, Sint *pd,
| ^~~~
| int
MASS.c:280:58: error: unknown type name 'Sint'; did you mean 'int'?
280 | VR_mds_fn(double *y, double *yf, Sint *pn, double *pssq, Sint *pd,
| ^~~~
| int
MASS.c:281:22: error: unknown type name 'Sint'; did you mean 'int'?
281 | double *x, Sint *pr, Sint *pncol, double *der,
| ^~~~
| int
MASS.c:281:32: error: unknown type name 'Sint'; did you mean 'int'?
281 | double *x, Sint *pr, Sint *pncol, double *der,
| ^~~~
| int
MASS.c:282:11: error: unknown type name 'Sint'; did you mean 'int'?
282 | Sint *do_derivatives, double *p)
| ^~~~
| int
MASS.c:356:12: error: unknown type name 'Sint'; did you mean 'int'?
356 | VR_ucv_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~
| int
MASS.c:356:21: error: unknown type name 'Sint'; did you mean 'int'?
356 | VR_ucv_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~
| int
MASS.c:356:31: error: unknown type name 'Sfloat'; did you mean 'float'?
356 | VR_ucv_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~~~
| float
MASS.c:356:42: error: unknown type name 'Sint'; did you mean 'int'?
356 | VR_ucv_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~
| int
MASS.c:356:51: error: unknown type name 'Sfloat'; did you mean 'float'?
356 | VR_ucv_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~~~
| float
MASS.c:356:62: error: unknown type name 'Sfloat'; did you mean 'float'?
356 | VR_ucv_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~~~
| float
MASS.c:373:12: error: unknown type name 'Sint'; did you mean 'int'?
373 | VR_bcv_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~
| int
MASS.c:373:21: error: unknown type name 'Sint'; did you mean 'int'?
373 | VR_bcv_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~
| int
MASS.c:373:31: error: unknown type name 'Sfloat'; did you mean 'float'?
373 | VR_bcv_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~~~
| float
MASS.c:373:42: error: unknown type name 'Sint'; did you mean 'int'?
373 | VR_bcv_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~
| int
MASS.c:373:51: error: unknown type name 'Sfloat'; did you mean 'float'?
373 | VR_bcv_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~~~
| float
MASS.c:373:62: error: unknown type name 'Sfloat'; did you mean 'float'?
373 | VR_bcv_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~~~
| float
MASS.c:391:13: error: unknown type name 'Sint'; did you mean 'int'?
391 | VR_phi4_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~
| int
MASS.c:391:22: error: unknown type name 'Sint'; did you mean 'int'?
391 | VR_phi4_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~
| int
MASS.c:391:32: error: unknown type name 'Sfloat'; did you mean 'float'?
391 | VR_phi4_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~~~
| float
MASS.c:391:43: error: unknown type name 'Sint'; did you mean 'int'?
391 | VR_phi4_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~
| int
MASS.c:391:52: error: unknown type name 'Sfloat'; did you mean 'float'?
391 | VR_phi4_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~~~
| float
MASS.c:391:63: error: unknown type name 'Sfloat'; did you mean 'float'?
391 | VR_phi4_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~~~
| float
MASS.c:409:13: error: unknown type name 'Sint'; did you mean 'int'?
409 | VR_phi6_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~
| int
MASS.c:409:22: error: unknown type name 'Sint'; did you mean 'int'?
409 | VR_phi6_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~
| int
MASS.c:409:32: error: unknown type name 'Sfloat'; did you mean 'float'?
409 | VR_phi6_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~~~
| float
MASS.c:409:43: error: unknown type name 'Sint'; did you mean 'int'?
409 | VR_phi6_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~
| int
MASS.c:409:52: error: unknown type name 'Sfloat'; did you mean 'float'?
409 | VR_phi6_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~~~
| float
MASS.c:409:63: error: unknown type name 'Sfloat'; did you mean 'float'?
409 | VR_phi6_bin(Sint *n, Sint *nb, Sfloat *d, Sint *x, Sfloat *h, Sfloat *u)
| ^~~~~~
| float
MASS.c:428:12: error: unknown type name 'Sint'; did you mean 'int'?
428 | VR_den_bin(Sint *n, Sint *nb, Sfloat *d, Sfloat *x, Sint *cnt)
| ^~~~
| int
MASS.c:428:21: error: unknown type name 'Sint'; did you mean 'int'?
428 | VR_den_bin(Sint *n, Sint *nb, Sfloat *d, Sfloat *x, Sint *cnt)
| ^~~~
| int
MASS.c:428:31: error: unknown type name 'Sfloat'; did you mean 'float'?
428 | VR_den_bin(Sint *n, Sint *nb, Sfloat *d, Sfloat *x, Sint *cnt)
| ^~~~~~
| float
MASS.c:428:42: error: unknown type name 'Sfloat'; did you mean 'float'?
428 | VR_den_bin(Sint *n, Sint *nb, Sfloat *d, Sfloat *x, Sint *cnt)
| ^~~~~~
| float
MASS.c:428:53: error: unknown type name 'Sint'; did you mean 'int'?
428 | VR_den_bin(Sint *n, Sint *nb, Sfloat *d, Sfloat *x, Sint *cnt)
| ^~~~
| int
MASS.c:466:31: error: 'VR_bcv_bin' undeclared here (not in a function)
466 | {"VR_bcv_bin", (DL_FUNC) &VR_bcv_bin, 6},
| ^~~~~~~~~~
MASS.c:467:31: error: 'VR_den_bin' undeclared here (not in a function)
467 | {"VR_den_bin", (DL_FUNC) &VR_den_bin, 5},
| ^~~~~~~~~~
MASS.c:468:32: error: 'VR_mds_dovm' undeclared here (not in a function); did you
mean 'VR_mds_unload'?
468 | {"VR_mds_dovm", (DL_FUNC) &VR_mds_dovm, 5},
| ^~~~~~~~~~~
| VR_mds_unload
MASS.c:469:30: error: 'VR_mds_fn' undeclared here (not in a function); did you me
an 'VR_mds_unload'?
469 | {"VR_mds_fn", (DL_FUNC) &VR_mds_fn, 11},
| ^~~~~~~~~
| VR_mds_unload
MASS.c:470:37: error: 'VR_mds_init_data' undeclared here (not in a function)
470 | {"VR_mds_init_data", (DL_FUNC) &VR_mds_init_data, 7},
| ^~~~~~~~~~~~~~~~
MASS.c:472:32: error: 'VR_phi4_bin' undeclared here (not in a function)
472 | {"VR_phi4_bin", (DL_FUNC) &VR_phi4_bin, 6},
| ^~~~~~~~~~~
MASS.c:473:32: error: 'VR_phi6_bin' undeclared here (not in a function)
473 | {"VR_phi6_bin", (DL_FUNC) &VR_phi6_bin, 6},
| ^~~~~~~~~~~
MASS.c:474:30: error: 'VR_sammon' undeclared here (not in a function)
474 | {"VR_sammon", (DL_FUNC) &VR_sammon, 9},
| ^~~~~~~~~
MASS.c:475:31: error: 'VR_ucv_bin' undeclared here (not in a function)
475 | {"VR_ucv_bin", (DL_FUNC) &VR_ucv_bin, 6},
| ^~~~~~~~~~
MASS.c:249:1: warning: 'fmingr' defined but not used [-Wunused-function]
249 | fmingr(int nn, double *x, double *der, void *dummy)
| ^~~~~~
MASS.c:237:1: warning: 'fminfn' defined but not used [-Wunused-function]
237 | fminfn(int nn, double *x, void *dummy)
| ^~~~~~
MASS.c:173:12: warning: 'dimx' defined but not used [-Wunused-variable]
173 | static int dimx; /* Size of configuration array */
| ^~~~
make: *** [C:/PROGRA~1/R/R-43~1.2/etc/x64/Makeconf:265: MASS.o] Error 1
ERROR: compilation failed for package 'MASS'
* removing 'C:/Users/AlecW/OneDrive/Documents/alecsalces/renv/staging/1/MASS'
install of package 'MASS' failed [error code 1]
Traceback (most recent calls last):
13: renv::restore()
12: renv_restore_run_actions(project, diff, current, lockfile, rebuild)
11: renv_install_impl(records)
10: renv_install_staged(records)
9: renv_install_default(records)
8: handler(package, renv_install_package(record))
7: renv_install_package(record)
6: withCallingHandlers(renv_install_package_impl(record), error = function(e) wr
itef("FAILED"))
5: renv_install_package_impl(record)
4: r_cmd_install(package, path)
3: r_exec_error(package, output, "install", status)
2: abort(all)
1: stop(fallback)
IDK man I don’t write C code.
Granted, the lockfile was built using R 4.0.2 in December 2020, so there is
probably something to do with the fact I’m on R 4.3.2. Perhaps the compilers I’m
using from Rtools 43 are too new? I don’t know. Whatever. I could never get
renv
to restore my environments when it matters most, here or at work.
I couldn’t be bothered to fix the environment as I use exactly 2 packages so far
(ggplot2
, dplyr
) in the one Rmd file I have. I might try groundhog or
something, I think a blog needs a script-level reproducibility solution because
packages used in the R Markdown files (or maybe quarto documents) can’t all be
fixed to a single date or version over the years. It almost makes more sense to
me that each one has its own private library. Or maybe one per publication year.
Anyway.
I had also wanted to build my own photography gallery, but that was a wretched
abomination of HTML and javascript, where I generated a list of all the image
folders recursively on my end, and then slapped that in the JS script, and had
the client loop through the paths, load the .jpg
files inside each folder, and
then display all of them. It kind of worked, actually shocked that it worked at
all. It was kinda slow because it would serve every single image at full
resolution at the same time. But it’s not a really sustainable option, and I
think I need to get set up with a real content management system. Maybe learn
some PHP.
I used to take photos, edit them, and post them to tumblr or 500px or twitter. But I wanted more ownership of the process, so I thought hey maybe I should host them on my own website! I ended up without the motivation to see that through for a long time. Then COVID hit and I stopped going out and taking pictures. Between COVID and website woes, I really have lost touch with my photography routine.
Hopefully in 2024 I can finally get back to publishing pictures!