![]() I wanted to manage my dotfiles in the same way. I'm a huge fan of Git, and the Git mental model just makes sense to me. I created a dotfiles management tool, yadm Many of these end up building on top of each other, so across the few dozen projects built on top of these tools they form a nice dependency graph -> A suite of productivity tools ( ) like notes, todos, shared whiteboard, contacts/CRM A bunch of language tooling around that language, like syntax highlighters, editor plugins, code formatters (for example, the code formatter ) A compiler to compile that to JavaScript ( ) A dynamic programming language, Ink ( ), which runs in "production" (for whatever that means for side projects) for around a dozen projects written in it. Very few of these are purely because I was dissatisfied with off-the-shelf solutions many of these just exist because I thought it would be fun/educational/challenging to build an X for myself from scratch. These smaller projects also provide good opportunities to practice with new languages or frameworks.Īt this point I've made a habit out of building homebrew tools and languages. It's definitely a pattern for me - feel frustrated with diagnostic and data viz tools that are either too slow to handle or too complex to configure when I need them, and try to build simple tools that solve exactly the problems I keep bumping into. Eventually traced it to a virtualization product's network driver. ![]() Once I could visualize it and saw the pattern, it was very clear that there was a system-level issue. My laptop's wifi had developed a severe latency stutter every ~500ms that was driving me nuts when using SSH and other interactive tools, not to mention killing my throughput. The year before that, a tool for visualizing ping latency as a heatmap. when you're investigating a production outage. Similar tools exist, but none were fast enough or easy to set up in a hurry, e.g. Last year I built a tool for visualizing log file volume (based on time) in your terminal. format() gives "T00:00:00-08:00", or midnight in Vancouver, which would be 3 AM in Toronto. So the date "" with no tz data is interpreted as midnight in the offset tz, "America/Vancouver". Moment.tz(date, offset) says "interpret date in its given tz, falling back to offset as the tz if not given". Offset here is changing the output, not the input. format() on it gives the result "T21:00:00-08:00" - midnight on New Year's Eve in Toronto was 9 PM on Dec 31st in Vancouver. That is then reinterpreted in the offset timezone America/Vancouver, so calling. ![]() So the date "" with no encoded tz data is interpreted as midnight in the locale's tz, America/Toronto. Moment(date).tz(offset) says "interpret date in its given tz, falling back to the locale tz if not given, then reinterpret it via the offset tz". To illustrate, imagine we have a date "", an offset tz "America/Vancouver", and "America/Toronto" as the locale's timezone. It seems to have actually been a typo-misuse of moment.tz's very similar but very different constructor patterns. That was a good guess! Your comment provided some helpful motivation to go look into it. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |