A real-world example of lazy evaluation (specifically, lazy initialization) from one of my projects at work.
Introducing Trieste Soon after beginning work at Caltech/IPAC, I began yearning for a better format for sharing data---a format that is more flexible than FITS and provides better built-in documentation. Essentially, I wanted a format in which the README document and supplementary info is expected to be included in the file itself, rather than in […]
I've been using the Pandoc document translator / compiler periodically for a few years now to create HTML documentation from Markdown. Recently, I started using Pandoc more frequently, so I took the time to develop a custom CSS style, nrstyle.css to make the documents look nicer. Here are some examples.
The standard options for formatting strings in C++ are, frankly, annoying and cumbersome. Yesterday, I found a nice solution: fmt (formerly known as cppformat). Fmt is a ligthweight library that allows you to use a syntax that is very similar to the string formatting mini-language supported by Python's str.format() function and the Rust language's formatting syntax.
Somelight is a Python module that I wrote to assist in garden planning—particularly plant placement—by computing the daily sunlight exposure at a specified set of points. The user simply specifies the shapes of nearby objects that can potentially shade their garden and then uses Somelight to compute the sun exposure on a specified date (or range dates).
I am reserving this spot to put links to Python pages that I often reference. The things I put here are bits of syntax (for Python itself and library APIs) that are easily forgotten. For example, the string formatting mini-language is something that I have trouble remembering, so I refer to https://pyformat.info/
This is intended to be a brief summary of the basic knowledge and skills needed in order to maintain the NebulOS cluster at UC Riverside, starting at a low level. More generally, this is a concise roadmap (or outline) for Ubuntu Linux system administration. In this roadmap, I will point you to resources that can be used to learn more. The purpose of this is not to explain everything in detail; it will merely get you started. Note that some of the things mentioned here are specific to Ubuntu or Debian-based operating systems, so this isn't exactly a general Linux system administration roadmap.
Wormhole uses the Linux kernel's inotify functionality to react to filesystem events. More specifically, it watches a directory and performs user-specified actions on any files that are moved into or written to the directory. Once the files are processed, the results are stored in another directory. Wormhole was initially developed to provide a means of automatically compressing files before they are transferred via NFS, and then decompressing the files after they have been transferred.
When I was a graduate student, I started a research blog at my personal website, idius.net. About one year after completing my Ph.D., I created nrstickley.com as a professional profile / résumé. I will now continue the blog here. I may eventually import some of the old posts into this blog, but until then, readers can refer to http://www.idius.net/my-research/research-log/ for older posts.