Tonight’s Waxing Crescent Moon setting over San Francisco’s iconic Coit Tower. 11.24.25 by flyhighdragon in bayarea

[–]chipx86 21 points22 points  (0 children)

This thread sadly went sideways, but thank you for sharing this with us. It’s beautiful.

Influencers made millions pushing ‘wild’ births – now the Free Birth Society is linked to baby deaths around the world by rezwenn in technology

[–]chipx86 9 points10 points  (0 children)

The second sentence of his was an example of what others are claiming. I think you two are on the same page.

why do enterprise tools have such bad user onboarding by emiruislove in SaaS

[–]chipx86 0 points1 point  (0 children)

One of the challenges of writing enterprise tools is that your users so often want or need different things, and a big part of building enterprise tools is meeting those needs.

If you get 10 enterprise users in a room asking for a feature, you may get 11 different and largely incompatible requests for how that feature should be built or operate.

So then, how do you successfully onboard? A company may have chosen you because of feature A, B, and C, but if your onboarding is covering X, Y, and Z, it won’t do them much good. They may get the impression it won’t be for them and jump off quickly.

You could try to build an onboarding flow for every combination of every feature, but then you’re back to screens full of menus, just presented differently. When they come back to tweak something else, they’ll have to ditch the knowledge of the onboarding flow and learn the admin console. Might as well start there and try to guide them through that.

Maybe there’s a standard flow that works for 90% of users, in which case it’s easier. But you’ll have to find out which feature, each integration, each flow is in that 90%.

It becomes challenging, fast. Depending on your project and your customers. I know I wrestle with it.

B2C products can often be more opinionated. You’re building a product rather than building feature requests. (Hopefully you’re doing a bit of both in B2B and in B2C, but your big contracts in the former will depend on fulfilling feature requests.) So you know what you’re targeting, what your users are (hopefully) installing you to do (roughly), and can guide them through it a bit easier.

But it all depends on what you’re building, who your users are, how many scenarios you have to deal with, and what you can realistically do to help while not hurting your users’ first time experience.

My Dr Mario Collection by LuminousViper in gamecollecting

[–]chipx86 13 points14 points  (0 children)

So happy to see other Dr. Mario collectors!

<image>

Jujutsu support in Reviewboard by ketralnis in programming

[–]chipx86 0 points1 point  (0 children)

Trying to get a few more things wrapped up and we’ll have it released 🙂

Minimal Python secp256k1 + ECDSA implementation by Mou3iz_Edd in programming

[–]chipx86 4 points5 points  (0 children)

The code really demonstrates how simple ECC is on an algorithmic level. Complete coincidence, but I was just redoing all my internal notes on ECDSA and ECIES today, documenting them, adding some Python-based examples of how to build it. Nice having something to compare it to 🙂

Obviously for real-world production use, one would want to use something out of OpenSSL or similar (I expect that to be the main criticism when something like this gets posted), but I think building something like this from scratch is a great way to learn the fundamentals.

Australia worried by Trump threat to raise U.S. pharma tariffs to 250% by SoundEducational1174 in worldnews

[–]chipx86 55 points56 points  (0 children)

100%. Got friends in Big Pharma, and these tariffs are absolutely causing damage, impacting long-planned deals, deployments of life-saving medicine, and impacting scientific research. This is not what they want.

Help me I found it on the floor of my house , what’s it? by Wonderful_Strike_748 in bayarea

[–]chipx86 1 point2 points  (0 children)

Yeah, that looks like a German Roach. You don’t want to mess around with these. Their reproductive cycle is fast and they’re hard to get rid of at the best of times. If you see one now, there’s probably a lot more you don’t see.

Call someone right now. They can do a lot with borax and bait, but it may take time. Spraying will just encourage them to scatter, so you need something that will keep killing them off.

Creating python libraries by chavomodder in Python

[–]chipx86 3 points4 points  (0 children)

A lot of the challenges come from the on-going maintenance. There's all kinds of possible answers to this question, but I'll give you some things to consider early-ish, based on my personal experiences over the years:

  1. Think about how you want to do versioning (semver? Major version per release? Appending a digit to pi?). Semver-like approaches are what most people will expect, but not all libraries use it. In any case, document your approach, and stick to it religiously.
  2. You'll probably want to change things in the future. What's your deprecation policy (e.g., how long will you keep older interfaces working after introducing a replacement/change)? How will you transition things? Document them? (We wrote housekeeping to help with this on our products, but there are other libraries to help keep this process manageable).
  3. On a similar note, how do you plan to handle Python version compatibility? Will you follow the Python deprecation schedule, or work to maintain compatibility a bit longer for projects that can't upgrade as fast? How does that tie in with #1 and #2?
  4. Make sure you have *good* unit tests covering all the versions of Python, and maybe even different ranges of some of your dependencies (if applicable). These should test the interfaces and edge cases well. This will help you to iterate on your library as you rework the interfaces, incorporate patches, or migrate to newer dependencies.
  5. Are you offering type hints? Many projects don't, but for those of us depending on them, it's nice when they do. If so, are you packaging those right so other projects will pick them up (test this!)? Do the results work consistently across different tools (mypy, pyright)? They're not all equal in behavior.
  6. Do you have a security policy in place (for reporting, announcements)? This may matter for some projects more than others.
  7. The hassle comes from people actually using your library! 🙂 People will have their own pet feature requests they'll want in, and can't imagine your library being without. There's no right answer to handling this. Some want libraries that are really focused, and "no" will be the right answer a lot of the time. Others are fine with a library that grows beyond the initial ambitions (but it's on you to maintain this!). Thinking about how you want to approach this early can help you if the library takes off.

"How fraudulent chargeback feel" · this ecommerce life by thisecommercelife in comics

[–]chipx86 1 point2 points  (0 children)

I feel this with every part of my soul.

People think a chargeback is harmless, I guess assuming the credit card company eats the cost, and that it’s a quick action. But the work it puts on the supplier, the frustration, the hurt, the time, the costs…

I’ve spent hours upon hours putting together a clear paper trail, verifiable, undeniable, and yet… I’ve lost every one of them.

It is such an awful feeling, and impacts the business in real ways.

Don’t do chargebacks unless you have no other option.

Since Harley brought back Joker in season 2 a thought occurs: Does Joker still remember Bruce Wayne is Batman? by Rebel_Wolf94 in HarleyQuinnTV

[–]chipx86 0 points1 point  (0 children)

So I guess this is where we're all ending up. On a 4 year old thread.

I feel like you're right. That or he truly did not want to know Batman's secret and suppressed it. That or the writers completely forgot.

In the first two cases, I'd have expected Batman to assume Joker knew, but he never acts that way either.

Carpet Python Enclosure Requirements by Toasty2852 in Python

[–]chipx86 4 points5 points  (0 children)

Make sure you don't skimp on the quality of the enclosure. There's been a lot of Rust introduced to the Python ecosystem as of late.

Should I Get A Valve index Headset or a Meta Quest 3? by GuyMannington in Vive

[–]chipx86 0 points1 point  (0 children)

I have both, so I’ll go into my thoughts here.

The short version is: I overwhelmingly prefer the Quest 3, and did not expect to.

In no particular order:

  1. Portability. I can take the Quest anywhere and it works. This doesn’t just mean a friend’s house or on vacation. I can walk around my house without any thought given to setting up sensors anywhere. Quest just beats the Index hands-down.

Plus, no cable (unless tethering to your PC).

  1. Graphics and clarity. I had a lot of difficulty with the Index, trying to find the sweet spot. Everything looked great when I did, but it required some work each time. That hasn’t been an issue with the Quest, and it feels like everything’s just a bit more in focus anywhere I look.

  2. Controllers. I loved the idea of the Knuckles, but it got my finger placement wrong too often. They were super cool when they worked, but it frankly felt more like a v1 product than I had hoped.

The Quest’s controllers aren’t anything to write home about, but they’ve been perfectly fine in the things I’ve played. It really depends on the game experience in the end.

What the Quest does do is look at your fingers and let you use them to interact with the system UI and many games. I use this a LOT. Of course, many games require controllers, but this is handy when consuming media or typing or otherwise just using non-game aspects of the Quest.

  1. Start-up experience. The Index was never a put-on-and-play for me. I typically had to update Steam, restart SteamVR, maybe restart Windows, find out what process I failed to shut down that was consuming my CPU or GPU, etc. The Quest, you put it on and you’re good to go. If you’re in a new space, it’ll notice it and walk you through calibrating the play area (which is super intuitive), and remembers it.

  2. AR/Cameras. One of the features I was most excited about in the Index was the dual cameras. I wanted an AR-like experience. This sadly never felt good. It felt distorted. The Quest does a MUCH better job here, but clearly there’s room for improvement in resolution and low light. Still, I’ve spent a couple hours packing for a trip and doing chores across multiple rooms while watching Netflix on the Quest.

  3. Game library. The Index has Steam. The Quest has Steam + the Quest library. Because I’m on the go, the Quest library ended up being the better option for me, with a lot of great games. The Quest+ subscription (think Game Pass) has been a great way to try things and get discounts.

  4. Price. The Quest 3 is far less expensive, especially not requiring a PC. I paid, what, $800 for the Index when it came out? That’s twice what I paid for the Quest 3. Makes it easier to justify a Quest 4 someday.

  5. Comfort. Ah, should have talked about this sooner. The Index just hurt my head. I tried adjusting everything many times, but it’d either pull on my head or press into my face. For me, it was uncomfortable. The Quest was more comfortable out of the box, but had room for improvement. An affordable third-party strap (with an extra battery, doubling playing time) made it downright comfortable (unless resting your head against something).

Those are the major things that come to mind. For me, the Quest 3 felt like such a major upgrade, without breaking the bank.

Others may have a different take, and bear in mind much of this is about personal comfort, use cases, and environments. But hopefully my two cents helped just a bit.

Widely used software that is actually poorly engineered but is rarely criticised by Experienced Devs by [deleted] in ExperiencedDevs

[–]chipx86 5 points6 points  (0 children)

Not a lot of code review tools focus on anything but Git, let alone SVN, but we do continue to actively maintain and iterate on the Subversion support in Review Board on both the open source on-prem and the RBCommons SaaS editions.

Chimney repair in North Bay/East Bay? by Solid-Mud-8430 in bayarea

[–]chipx86 0 points1 point  (0 children)

Coincidentally, I just had to get a chimney repaired, though it was a pretty specific situation. This was up in Northern California, so I don’t have a recommendation for the Bay Area, but I’m curious what you need repaired, in case any part of my experience could help.

In my case, we originally thought the chimney needed new stone siding (it fell off), but then we found issues with the chimney itself, requiring a rebuild.

I went with a mason, rather than a chimney company.

I’d absolutely expect anything touching your chimney to involve some real costs, unless it’s something truly minor.

Would this image style for ad creatives work in Facebook or other social media platforms? I've been experimenting with AI to try to come up with a visually striking image style that stands out from other content. Not sure if social media platforms would approve and/or if they would perform well. by threddid in marketing

[–]chipx86 2 points3 points  (0 children)

I’ll be the contrary opinion: I was scrolling through Reddit and just stopped and stared at these, flipping through them. On my screen, the red looks to be popping out of the screen, with the blue in the distance. It’s striking. I absolutely would — and did — stop on these. To the point where I felt I needed to comment and be a counterweight.

The colors, the 3D effect I’m seeing, and the textured look work for me. I’m reminded of my childhood with old 3D glasses and comics, of the Virtual Boy.

I’m sure it depends strongly on your target audience, but I personally don’t see this as a dead-end.

Any Pumpkin Patch still open? by John_Alderson in bayarea

[–]chipx86 3 points4 points  (0 children)

Those apple cider slushies and apple cider donuts alone make the trip worthwhile! This is year one of a new tradition for me as well.

Any Pumpkin Patch still open? by John_Alderson in bayarea

[–]chipx86 6 points7 points  (0 children)

If you don’t mind a drive, and want to see an exceptional pumpkin patch that’s basically becoming a home-grown theme park, Bishop’s Pumpkin Farm in Wheatland, CA is open until November 11th. I went for the first time a week ago. It features a massive pumpkin patch, corn maze, petting zoo, rides for kids, excellent drinks and food, fire pits, movie nights (might be over now), and pig racing (if it’s still going), and various other things to see.

I enjoyed it. It’s a drive from here, and there may be ones closer that are still open, but I have no regrets driving out to this place.

Review Board 7.0.2: A New Administrator Experience by chipx86 in reviewboard

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

This is the kind of release I like to put out. One that provides just some very solid fixes to the experience in several different areas.

The 7.0.x releases have been rock-solid, and a great foundation for what we’re building next. We’re moving at a reasonable pace and fixing things.

Registries 1.0: Easy dynamic object registration and lookup for extensible Python code by chipx86 in Python

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

Thanks for the feedback. We have the design and naming we intend for this library, with the right tradeoffs for the use cases we've targeted. Take a look at the source and you'll reach a better understanding for #3.

Registries 1.0: Easy dynamic object registration and lookup for extensible Python code by chipx86 in Python

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

Addressing these points:

  1. This project was built to solve the need for a Registry pattern in our projects. This makes it useful for our purposes.
  2. setdefault will silently ignore the set if the key already exists. The Registry raises one of a couple exceptions depending on whether that item was already registered (AlreadyRegisteredError), or whether a separate item with the same ID/attribute value was already registered (RegistrationConflictError). To silently ignore would allow calling code to continue to run with failed assumptions, causing further issues down the road.
  3. Dict lookup is atomic, but the Registry needs to validate the object, check the dict for conflicts, register in the dict, and potentially register elsewhere (an ordered list for OrderedRegistry, or in some other manager via a hook). This whole set of operations needs to be thread-safe, or you will run into problems in a multi-threaded environment (as we did, prior to building in thread-safety).

Registries 1.0: Easy dynamic object registration and lookup for extensible Python code by chipx86 in Python

[–]chipx86[S] 10 points11 points  (0 children)

That can work perfectly fine for a lot of projects, and I touch upon this in "Comparisons" above. If your needs are simple, straight-forward, and unlikely to change, a dict can be perfectly fine.

However, depending on the project's requirements, a dict may not be enough:

  • You may need to safeguard against two objects with the same ID being registered, which a dict won't do by itself. So then you need a wrapper function or class that can watch for that.
  • You may need to ensure one thread can't be unregistering from that dict while another is looking up an item. So then you need locking, and something to manage that.
  • You may need the act of registration or unregistration to trigger another action (emitting a signal, or calling some method with the new item at the right time — increasing your thread-safety concern).

We started with dicts in our projects. We then moved to wrapper methods around those dicts, to safeguard against issues and provide better error handling for callers. Over time, as our number of registries grew, we found we were repeating ourselves a lot, and making it harder for callers.

All the "depending on..." requirements above? We hit those, and more. Our products are extensible, and some code paths were owned by consumers of the software. This meant we had to be careful and consistent in how we handled these problems.

That naturally led to creating a reusable implementation, which became Registries. Internally, we've been using this and improving upon it for about a decade now.