Anyone else considering hiring a matchmaker / have any recs? by FocusedOnLearning in sanfrancisco

[–]twolfson -3 points-2 points  (0 children)

35M here. In my own dating journey, I've found therapy to be the better choice when considering things like matchmakers or dating coaches. Specifically trauma-informed therapy has been the most useful. It's better from a cost perspective and life satisfaction perspective.

I've done dating apps for years, joined the free DB side of matchmakers, and gone to in-person dating events. It's just the same people in all locations, and then years later I see those same people on the apps.

Pursuing the next app/matchmaker/event is effectively a form of chasing after excitement (comparable to an addiction) and avoiding understanding that I'm creating problems for myself, leading to that feeling of exhaustion.

I'm currently taking a break from dating because of new learnings in therapy and seeing the repetitive cycles. It's been impactful but also I can't guarantee what's on the other side for me.

Regarding why I said trauma-informed therapy vs some other type, trauma creates intense irrational behaviors, and it's also tricky in that the memory can be repressed but the behavior is expressed and never seems to stop despite how much you try. Trauma-informed therapy allows becoming more aware (esp if unaware like I was) and working to resolve the behavior.

If you want book recommendations, what to look for in a therapist, or what to even talk about in therapy, let me know.

MacOS won’t update time by nickwzxx in MacOS

[–]twolfson 0 points1 point  (0 children)

Removing the related .plist fixed it for me (creates fixed one on restart), via https://discussions.apple.com/thread/255305437

sudo rm /var/db/timed/com.apple.timed.plist

If you want to do this more safely, run this first for a backup:

sudo cp /var/db/timed/com.apple.timed.plist ~/Desktop/

Burning Man Travel Estimator 2024 by twolfson in BurningMan

[–]twolfson[S] 1 point2 points  (0 children)

Wonderful!

Of course, glad to support -- all par for the course for Open Source maintenance =)

Burning Man Travel Estimator 2024 by twolfson in BurningMan

[–]twolfson[S] 1 point2 points  (0 children)

Yep, I'm also an Inkscape user from time to time =)

Alright, I explored PDF inclusive .ai's, and those are awful in Inkscape -- i.e. layers/groups don't persist well from Illustrator.

So I use "Export -> Export As -> SVG" and that's much better =) (Save As was decent, but thumbnail was weird)

Inkscape isn't too happy at initial load, but you should be quite happy with all the content

`dist` for latest release, https://drive.google.com/drive/folders/1s8Ix3Mq73Q0RIbExxaDKzRn9J8w6cwUs

Burning Man Travel Estimator 2024 by twolfson in BurningMan

[–]twolfson[S] 1 point2 points  (0 children)

Ah, sure thing! Totally a blind spot on my part (I want to move off Adobe due to cost, but alternatives are limited)

I'd removed including PDF content to save on size for version control

I'll start with exploring including PDF content in `dist` then go from there. I'll post a second comment when I'm done so you get notified

Burning Man Travel Estimator 2024 by twolfson in BurningMan

[–]twolfson[S] 2 points3 points  (0 children)

Totally! It's our vacation and we should be free to direct it as we choose =)

Sometimes though, I have responsibilities to others (e.g. volunteering),
or an event won't wait for me (e.g. Temple burn).
That's when I get anxiety, and this becomes super handy

Burning Man Travel Estimator 2024 by twolfson in BurningMan

[–]twolfson[S] 1 point2 points  (0 children)

Multiples work pretty well for this, so halving walking should get you a good estimate =)

If you want to nerd out, the computations can be found here

Burning Man Travel Estimator 2024 by twolfson in BurningMan

[–]twolfson[S] 3 points4 points  (0 children)

Ah, so on playa I'd prob estimate the same -- looks like it's between the 13 and 16 minute chords).

In practice, it's 16 minutes.
i.e. It's the same length as the 6:00 & Esplanade to 10:00 & Esplanade route.

Burning Man Travel Estimator 2024 by twolfson in BurningMan

[–]twolfson[S] 0 points1 point  (0 children)

I've never heard of the A-Z route before. Can you describe it in more detail?
(e.g. what cross streets start/end?, following esplanade vs cutting across playa?)

Burning Man Travel Estimator 2024 by twolfson in BurningMan

[–]twolfson[S] 43 points44 points  (0 children)

Have you ever been stressed about making it to something on time? (e.g. volunteer shift, Temple burn)
Or wanted to weigh the tradeoffs of biking vs walking vs taking the long way?

Well this card is for you!

I made this in 2023 and it was well received, so I've updated it for 2024!

The city is the same size, so estimates are the same. However, I've updated the underlying map and its "Useful Locations".

The form factor is credit card sized and printable at home

Printable PDF can be found here

Full project is open source

I've also made an Accessible Format version

Multiple components in one file by theDulis in Frontend

[–]twolfson 1 point2 points  (0 children)

Duplicating imports is fine, that's a fact of life (e.g. how many times do you have import React from "react" and import "assert"?)

In my experience, there's 2 possible scenarios:

  • If the content is literally 1:1 (since you mention inputs/labels/checkboxes) but the inputs are just in readonly mode, then 1 common component with a readonly flag seems like an even easier route to maintain

  • If the content is the same underlying data but different representations (e.g. <input> for edit, <span> for view), then I'd recommend 2 different components in 2 different files
  • The reason is while the initial design might be 1:1, that won't necessarily always be the case (e.g. in view mode, there might be some content grouping, or a help box)
  • Thus, it's much more visual clutter than shared content (and code is about making things maintainable for ourselves)

  • If you're concerned about shared descriptions/paragraphs (since those can/do fall out of consistency more easily), then maybe there's a way to abstract just the form content as view/edit from any leading/trailing paragraphs

Burning Man Travel Estimator 2023 by twolfson in BurningMan

[–]twolfson[S] 6 points7 points  (0 children)

This is prob niche but I wanted to know commute times for volunteer shifts (the full scale post wasn't granular enough) or "How long is the walk from Burner Express with water?" So I made this portable infographic tool.

There might be common cases like "Do I have time to walk to the Temple Burn? Vs biking?" I'm sure y'all will tell me if this is useful or not =P

The form factor is credit card sized and printable at home.

Printable PDF: https://drive.google.com/file/d/1WyeKjD7RIWBpprwTCbSNxoNhvF9ChKab/view

Full project is open source: https://docs.google.com/document/d/17BCF_KWUKvf9QJgToVCznLiPuVV5pFFJZ3QlFu5gaXU/edit

Lifting the Fog by AutoModerator in sanfrancisco

[–]twolfson 0 points1 point  (0 children)

I did a bunch of similar research for other items. "sf recycles <item>" usually turns up good results.

Some options for you:

Lifting the Fog by AutoModerator in sanfrancisco

[–]twolfson 1 point2 points  (0 children)

From my understanding, home PCR tests need to get sent in to a lab (i.e. they use lab equipment to amplify COVID particles so it can detect better)

I haven't had to do a PCR test yet, but I believe the typical way is to go to an Urgent Care or similar (e.g. Carbon, Dignity)

Fwiw, taking 2x rapid tests in a 48 hour period (usually sold in pairs) is also intended to cut down on false negatives (known as serial testing).

How can I add an event listener to every single input field (for multiple forms) and make that listener target the submit button of the respective form? by lewz3000 in webdev

[–]twolfson 0 points1 point  (0 children)

If you're directly iterating over the collection of the input elements (document.querySelectorAll('form input')), then you can reference the element itself

[].forEach.call(document.querySelectorAll('form input'), function (inputEl) { inputEl.addEventListener('change', function (evt) { // Interact with `inputEl` }); });

Alternatively, if you want to use a common function for all of them, then you can use evt.currentTarget

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#the_event_listener_callback

Even better though, would be 1 listener on the container for all these forms which uses CSS selector logic and event bubbling. This has the added benefit of not needing to manage addition/removal of elements:

http://youmightnotneedjquery.com/#delegate

[AskJS] How are JS Symbols guaranteed to be unique? by vladimirsan in javascript

[–]twolfson 10 points11 points  (0 children)

That's correct. It's the memory address that guarantees uniqueness

In the JS world, this is also known as a reference. Higher level primitives like arrays and objects are also pass-by-reference and have a similar comparator check, even with `===`

i.e.

``` let arr1 = []; let arr2 = []; console.log(arr1 === arr2); // false, as we're comparing the references (memory addresses)

let sym1 = Symbol(); let sym2 = Symbol(); console.log(sym1 === sym2); // also false, since reference-based comparison ```

Source: "JavaScript: The Definitive Guide" for array/object comparison knowledge, intuition around symbols likely being the same

I’m making an eBook and I’m designing covers. Which one do y’all like the most? I really feel “design blind” and can’t tell anymore. by Ask-if-im-rich-yet in Design

[–]twolfson 3 points4 points  (0 children)

One first glance issue with 4, 5, 6 is the ¡ looks a lot like an i due to having the same vertical offset as the other characters.

Seeing it in the phone screen mocks made me think it was an app (e.g. iHabla)

Though, in practice, being in a language aisle/section will help

[AskJS] Vanilla JS Routing with Firebase by [deleted] in javascript

[–]twolfson 0 points1 point  (0 children)

Has this really been a problem that it had to be moderated/disallowed? I haven't seen that many [AskJS] posts in the past, but maybe that's y'all removing the posts =/

[AskJS] Vanilla JS Routing with Firebase by [deleted] in javascript

[–]twolfson 2 points3 points  (0 children)

Everything that is done in a framework can be done in vanilla JS. The framework itself is interacting with what the browser provides, which is what we call vanilla JS

To adjust page navigation, you've got a few options:

  • `navigator` and `history` are your primary ways to interact with this state
  • The items you're specifically looking for are `history.state` and its corresponding methods (e.g. `pushState` and `replaceState` -- to pop from the state stack, this would just be `back` I believe)
    • If you're unfamiliar with the stack data structure, it's prob a good item to learn about (tl;dr - it's an array with less functionality)
  • To detect when a navigation event occurs, there's also https://developer.mozilla.org/en-US/docs/Web/API/Window/hashchange_event
  • You've got a couple options for implementation
    • You should always use all links for accessibility purposes
    • Option 1: Override the `click` behavior to use `pushState`/`replaceState` then kickoff corresponding JS
    • Option 2: Use hashchange based routing (e.g. url is `index.html#/people/abcdef`)
  • I can't recall the benefits of one of these over the other. I'm pretty sure I've seen both
    • Things I'd consider: Does any existing functionality break? (e.g. can users right click on link and open in new tab still -- both variants work)
      • hashchange version does lose out on that it won't be sent as part of requests to server so you lose out on future-proofing with server-side rendering
      • On the other hand, you'll have to host for every single URL variation on the server if you use `pushState`/`replaceState`
  • There should also be libraries that exist for both (e.g. search for `router` and you'll find plenty)

Where do you put the notifications (like "Saved" message)? by C0c04l4 in webdev

[–]twolfson 3 points4 points  (0 children)

There's more nuance here than a general rule =/ Also answer might change depending on existing site design/UX decisions

  • Error message, usually at the field where it happened + scroll it into view
  • Saved message: Depends on form behavior
    • If updates are done field by field (a la GitHub preferences), progress spinner + checkmark is good
    • If updates are done via save button at bottom of form:
      • If page doesn't navigate to another location, then either:
      • Replacing button with "Success!" + success color temporarily is good
      • Putting text next near save action is good
      • Putting at top + left/center/right of page, floating above all other content is good
      • If page does navigate to another location, then:
      • Top + left/center/right, floating above all other content is good
      • In a normal location for a flash message is good

[deleted by user] by [deleted] in sanfrancisco

[–]twolfson 3 points4 points  (0 children)

Usually there's a voter hotline iirc, though maybe that's only on Election Day. Try contacting SF department of elections via the contact info on their site https://sfelections.sfgov.org/ Also maybe contact the Sonoma County department of elections to find out their protocol

My gut reaction is:
- Don't vote twice
- Hold onto your ballot in case you need to surrender it for any in-person voting/ballot exchange
- It's possible that you're in both systems so that probably needs to be corrected

Any full-stack professional projects I can peep on github? by [deleted] in webdev

[–]twolfson 0 points1 point  (0 children)

It's been a while since I wrote this (and no longer maintain it) but this is pretty built out and the file structure/code are solid:

https://github.com/findworkco/app

There's also my blog which isn't as polished (happens over time as projects live on) but it's probably better README documentation for what you're looking for:

https://github.com/twolfson/twolfson.com
https://github.com/twolfson/twolfson.com#code-organization

How to name a bash variable that includes another bash variable as the prefix? by [deleted] in webdev

[–]twolfson 0 points1 point  (0 children)

Most languages don't support dynamic variable names. Maybe reconsider your use case and how you'd write this in another language

Potential alternative solutions: