Posts

This profile is from a federated server and may be incomplete. Browse more on the original instance.

pervognsen, to random
@pervognsen@mastodon.social avatar
pervognsen, to random
@pervognsen@mastodon.social avatar

Downside of Denmark: I'd forgotten all ISPs block scihub, libgen.is, etc. Stuff like this is just a subsidy for all the scammy VPN providers.

pervognsen,
@pervognsen@mastodon.social avatar

@el0j Nope, they don't seem to be. I tried using Google and Cloudflare's DNS servers (and I always use HTTPS).

pervognsen, (edited )
@pervognsen@mastodon.social avatar

@el0j Nevermind, I just realized I switched browsers recently and it looks like it didn't have DoH enabled (which is weird because I could have sworn both Chrome and Firefox have defaulted to DoH for years now and Vivaldi is Chromium based). It seems to work now. Thanks for the prod!

pervognsen, to random
@pervognsen@mastodon.social avatar

This looks cool. Basically a polyglot version of go fmt's rewrite rules. https://ast-grep.github.io

dotstdy,
@dotstdy@mastodon.social avatar

@pervognsen Ah interesting, I wonder if that's how they do it for C++ as well. The find uses in Resharper is vastly better than the version in VAX, because it's actually accurate. But it's still extremely slow when you ask for the callers to a function called "update" and if they're using unindexed text filtering as the primary search, then that would explain the slowness perhaps. (in the context of millions of lines of game engine and game code where everyone calls their method Update anyway)

pervognsen,
@pervognsen@mastodon.social avatar

Some obvious limitations of this approach: common identifiers produce way more false positives in the initial grep stage. A saving grace is that a real implementation of this idea can apply some basic scope and reachability filtering so you're not just blindly grepping everything in the known universe. Lexical scopes can be locally analyzed. And it's easy for most sane languages to compute a reasonably precise but still conservative (hence safe) approximation of source file reachability.

pervognsen, to random
@pervognsen@mastodon.social avatar

Somehow I doubt it. Headline: "Microsoft is finally getting its native Windows UI platform act together with WinUI 3 and WPF."

suushikijitsu,

@pervognsen @rovarma
... except that after the release of WinUI 3, "WinUI 2" was sorta retconned to mean the entire UWP XAML stack, parallel to WinUI 3, not just the controls library on top of it.

pervognsen,
@pervognsen@mastodon.social avatar

@suushikijitsu @rovarma Classic. And here I thought I thought they were just pulling the old Windows NT 3 trick where 3 is the first version.

pervognsen, to random
@pervognsen@mastodon.social avatar

Do people still use LTspice as the default free analog circuit simulator? Anything better?

thomask77,
@thomask77@mastodon.gamedev.place avatar

@pervognsen well, there's QSpice by the same author, but the download requires a registration and it doesn't run in Wine.

pervognsen,
@pervognsen@mastodon.social avatar

@thomask77 Heh, I just looked up a demo video and it still looks like an ancient Windows 95 app (not that I care about that), so it's pretty funny that Windows 11 is required. Not sure why they upped the requirement. :)

pervognsen, to random
@pervognsen@mastodon.social avatar

I've never fully worked out how best to articulate my dissatisfaction with the usual way people talk about pluggable allocators in systems programming. Sure, I'd like to have some standard for fallible, pluggable allocation at the lower level of a language's standard library. But the entire mindset of plugging together allocators and data structures is something I find dubious and at best it feels like a poor compromise.

zeux,
@zeux@mastodon.gamedev.place avatar

@pervognsen @artificialmind (you could only place tombstones at the end of course, only commenting on order preserving variants)

pervognsen,
@pervognsen@mastodon.social avatar

@zeux @artificialmind Yeah, this paper does something like this, it's basically PMAs but with coalesced gaps and it also stores the counts so you don't have to scan the gaps. https://ir.cwi.nl/pub/28649/28649.pdf

pervognsen, to random
@pervognsen@mastodon.social avatar

This is such a good vibes-based trailer that I still rewatch it occasionally. https://www.youtube.com/watch?v=2c6burNvtsU

pervognsen, (edited ) to random
@pervognsen@mastodon.social avatar

I assume this isn't a problem for EEs but for CS types who are taught logic gates, etc, in their curriculum I wonder if timing should be included in a first course. I'm still trying to help the person I mentioned earlier in a private chat and it sounds like that's the source of almost all their confusion. They think logic gates are instant and one of the "counterexamples" they came up for why delays seem logically inconsistent is y = xor(x, not(x)). Which is a standard edge detector.

pervognsen, (edited )
@pervognsen@mastodon.social avatar

@sgf Also, I distinctly remember finding my first introduction to opamps extremely mysterious. It's a magic box that drives the voltage difference between the input terminals to zero but only when connected in a negative feedback configuration. And then maybe you have some performance characteristics about slew rate or frequency response, etc. I realize now that's literally how an opamp is defined, more or less, as an abstraction. But it's a lot to swallow if you're an inquisitive student.

pervognsen, (edited )
@pervognsen@mastodon.social avatar

@sgf By even saying "drives the voltage difference to zero" rather than "sets the voltage difference to zero [as if by magic]" and mentioning negative feedback, I'm implicitly using a more dynamic view of opamps than how they were introduced to me. :)

pervognsen, (edited ) to random
@pervognsen@mastodon.social avatar

I was trying to help someone on reddit yesterday who was writing their first digital logic simulator and got confused on how to handle combinational loops when simulating the internals of an SR latch. I wish someone had explained it to me in terms of discrete-time state vectors instead of directly jumping into event-driven simulation, which is mostly just a sparse optimization of the state vector approach. https://gist.github.com/pervognsen/78b2baeac7f6ffba9fd6b41b6e6db284

pervognsen, (edited )
@pervognsen@mastodon.social avatar

Incidentally, if you do want to write an event-driven circuit simulator, there's an interesting analogy with event-driven IO in systems programming about readiness vs completion signaling. The readiness approach is IMHO the easiest to get right since it embraces the notion that event-driven simulation is an optimization. So you conservatively schedule pull-based node re-evaluations but you don't try to push new node values into the future.

pervognsen,
@pervognsen@mastodon.social avatar

(Event-driven simulation can also more easily handle non-discrete-time systems with discrete state changes, which is at least one sense in which it's not merely an optimization of the discrete-time state vector approach.)

pervognsen, to random
@pervognsen@mastodon.social avatar

The age of bad AI-generated logo art for open source projects is upon us.

pervognsen,
@pervognsen@mastodon.social avatar

@resistor What are those creepy eyeballs? What are some of those little people actually doing when you look closely? Why does the Apple monitor's metal frame have what looks like the min/max/close buttons on a macOS window but four instead of three with two duplicated colors and they're on the wrong side? And most importantly, what does any of this have to do with the project in question (which I won't spoil).

dotstdy,
@dotstdy@mastodon.social avatar

@pervognsen @resistor the random eyeballs were the bit that got me. also the pencil points don't actually point in in the direction of the pencil. it's Wanted all over

pervognsen, to random
@pervognsen@mastodon.social avatar

Who remembers this awesome jankfest? The IK was bleeding edge for 1998 and when that indie game Hellish Quart came out I remember getting flashbacks to Die By The Sword.

pervognsen,
@pervognsen@mastodon.social avatar

@jplebreton I was thinking about Shiny's Sacrifice the other day. It's crazy how experimental mainstream games were for a period even when they were somewhat painting within genre lines. It produced some occasionally great results like Sacrifice (which then promptly fell down the collective memory hole).

jplebreton,
@jplebreton@mastodon.social avatar

@pervognsen absolutely yeah, i think in a lot of ways that era was a last gasp for feeling out genre boundaries and trying out mechanics before the full ossification of the 00s console market takeover set in.

pervognsen, to random
@pervognsen@mastodon.social avatar

I haven't done any real Vulkan programming since 1.0. Are there any good guides that skip all the legacy junk and only show the streamlined 1.3 way of doing things?

zeux,
@zeux@mastodon.gamedev.place avatar

@pervognsen 1.3 is supported everywhere where 1.0 is assuming latest drivers (in theory). If you don’t target mobile I would definitely go bindless only for anything new but that has no relation to 1.3.

pervognsen,
@pervognsen@mastodon.social avatar

@zeux Oh, I just remembered you had your Niagara project. Do you recommend using that as a reference for good practices, etc?

pervognsen, to random
@pervognsen@mastodon.social avatar

Nothing is new: hash consing/value numbering in 1958. On Programming of Arithmetic Operations, A. P. Ershov, https://dl.acm.org/doi/10.1145/368892.368907

pervognsen,
@pervognsen@mastodon.social avatar

Let's also invent the Sethi-Ullman algorithm 12 years early while we're at it.

pervognsen,
@pervognsen@mastodon.social avatar

(I'm not sure how much credit he gets for that. I've always been amused that Sethi-Ullman gets to have a fancy name attached for something so simple and relatively limited in practice. Whereas value numbering/hash consing might be a simple idea but it's extremely powerful and far reaching. But it's nice to see him attack related parts of the problem at once in such a short paper, not just value numbering but instruction scheduling and register allocation, since they all affect each other.)

pervognsen, to random
@pervognsen@mastodon.social avatar

One of my favorite hip-hop instrumentals: https://www.youtube.com/watch?v=s6Yyb3N9IuA. I was listening to J Cole's Everybody Dies and a YouTube commenter had just written "Kenny Dope" without any further context or explanation and I immediately understood what it meant.

pervognsen,
@pervognsen@mastodon.social avatar

If you don't get the reference, listen to the two tracks back to back: https://www.youtube.com/watch?v=-5slZHLSnow. They both sample https://en.wikipedia.org/wiki/Inside_My_Love.

pervognsen, (edited ) to random
@pervognsen@mastodon.social avatar

I was reminded of this design topic by a @vurtun post. The traditional UI paradigm for scrolling/pagination is still based on discrete indices or layout coordinates. For this kind of pagination there's a lot of advantages to instead using a semantically meaningful sorting key. It's inherently more stable with respect to changes in the underlying set, e.g. indices can shift around if new items are inserted, and layout coordinates are even more unstable if the size of layout elements can change.

pervognsen,
@pervognsen@mastodon.social avatar

@dominikg Isn't the row and column still indices so they're presuming an integer coordinate system? I'm saying that your anchor point would be a sorting key, e.g. instead of a start index you would have a start date if you were querying a list of date-ordered items.

pervognsen,
@pervognsen@mastodon.social avatar

(Not saying this should be how we do everything, but it definitely solves some problems with the traditional approach. It's mostly a change in perspective rather than a specific implementation technique or API.)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • kavyap
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • InstantRegret
  • GTA5RPClips
  • Youngstown
  • everett
  • slotface
  • rosin
  • osvaldo12
  • mdbf
  • ngwrru68w68
  • JUstTest
  • cubers
  • modclub
  • normalnudes
  • tester
  • khanakhh
  • Durango
  • ethstaker
  • tacticalgear
  • Leos
  • provamag3
  • anitta
  • cisconetworking
  • lostlight
  • All magazines