Latest entries
-
Notes on handling variables in TiddlyWiki
In TiddlyWiki, the value of a tiddler’s custom field can be transcluded using {{!!field_name}}. For example, if local_file is a custom field containing a path to an image that the browser can display, the following embeds an image: <div> <img src={{!!local_file}}> </div> Reference Transclusion in WikiText (tiddlywiki.com) I would like to use the contents of other custom fields to specify some CSS styling. For example, I have some data about the orientation of some photos in a field called rotate, and would like to display them with the corresponding rotation. More
-
Exploring an SQLite database from Jupyter Notebook
Preamble ramble Until very recently, I had a mysterious aversion to databases. What little exposure I had had to phpMyAdmin and Microsoft Access had conveyed an impression of obscure and dangerous fiddliness, coalescing to a weighty sense of tedium. Reference digiKam photo management software (free and open source!) (digikam.org) digiKam downloads for Linux, Windows, and Mac (digikam.org) ExifTool (exiftool.org) A script by Peter Teuben for accessing digiKam SQLite DB in Python (GitHub) Jupyter Notebook (jupyter. More
-
Some site updates February 2020
It’s been some time since I last rebuilt my site, and even longer since I’ve upgraded Hugo. Unsurprisingly, there’s been some maintenance to do. Here are some notes: 1) Some fixes to catch up with Hugo development Hugo has gone through some breaking changes between 0.53 and 0.64. The ones that I’ve noticed so far on chrisnicoll.net are: Changes to processing of shortcodes that broke my “Voluble/Terse” switch. I use a shortcode to add the class name "voluble" to HTML elements generated from the Markdown between its opening and closing shortcodes. More
-
A horizontal chooser component for Vue.js
As an exercise in writing a simple single-file reusable component in Vue, I made a scrolling item chooser. The idea is that you pass it an array of values as a prop, and it displays as many of them as it can fit. If the desired item is outside the visible range, you grab the bar and drag it. It uses mouse events (beyond clicks), so in its current state it’s useless on mobile. More
-
Embedding a built Vue app in a Hugo post
I have a toy Vue.js project built using node.js, Vue CLI, and Webpack. The Vue CLI build script outputs a folder (called dist/ by default) that contains an index.html file as well as js/ and css/ subdirectories that hold all the files index.html links to. I tested two primary ways of embedding this type of Vue app into a Hugo blog post: More
-
The new Blender 2.8 grease pencil
In Blender 2.8 (still in beta, but release is imminent as of this writing), the Grease Pencil has had a lot of developer attention, resulting in new power and versatility. It’s a good time to start getting familiar with it. This post assumes some familiarity with Blender’s interface, but the aim is to just be able to create some strokes with the new Grease Pencil. More
-
Shading sharp edges in Cycles with the Bevel node
The Bevel shader node for Cycles appears to be a Blender 2.8 feature that is present in Blender 2.79 development builds. Reference Bevel input node (Blender manual) Bevel node discussion on Stack Exchange (Stack Exchange) This node is handy for shading sharp edges differently from smooth parts of a model. Its output is the same as that of the Normal output of the Geometry node, except at edges, where the normals are modified to give the effect of a slight bevel toward the edge for shading purposes, without having to model this. More
-
Separating multiline content into
<div>
s for displayMy Vue.js app uses an element with its contenteditable attribute set to "true" to take text input, and to display text stored in the app’s data element. When content is entered into the element, “paragraphs” (things with line breaks between them) get wrapped in <div> tags by Firefox and Chrome (though not, as of this writing, by my Safari installation). I have been using CSS to put vertical space between the <div>s so that they feel like paragraphs. More
Everything
Uncategorized
Web
- Embedding a built Vue app in a Hugo post
- A horizontal chooser component for Vue.js
- Some site updates February 2020
- The tiniest Vue.js app
- Laying out my simple Vue app
- Displaying text from a stored value
-
Text input with
contenteditable
- Adding tags to an array
- Displaying a list of tags from an array
- Removing elements from an array
- Creating an object from stored data properties
- Dates and Moment.js
- Making copies of simple JavaScript objects
- Retrieving an object from an array
- Breaking up some methods to tidy up
- Changing an object in an array
- Deleting objects with confirmation
- Disabling a button based on a condition
- Saving objects to localStorage
- Saving to a local file
-
Selecting a local file with
<input type="file">
- Loading from a file
-
Separating multiline content into
<div>
s for display
A small Vue.js app
Blender 3D
- A workflow for animated GIFs using Blender and GIMP
- Shading sharp edges in Cycles with the Bevel node
- The new Blender 2.8 grease pencil
- A basic, basic fluid simulation demo in Blender
- Trying 3D animation in Blender
- Blender fluid simulation: cup of liquid
- Animation attempt 2; first try with the PitchiPoy rig
- Animation attempt 3: F-Curves are a lot more complicated than I expected