@agocke@hachyderm.io
@agocke@hachyderm.io avatar

agocke

@agocke@hachyderm.io

Seemingly benevolent robot. Dev lead for CLR assembly loading, trimming, Native AOT at Microsoft, ex-C# compiler & language design.

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

mekkaokereke, to random
@mekkaokereke@hachyderm.io avatar

If you got upset at me for pointing out that more people died of Covid under Biden than Trump, in large part because Biden rolled back common sense restrictions that were in place under Trump...

Then you'll hate me pointing out that Trump introduced a 25% tariff on Chinese EVs, and Biden is upping that to 100% tariff.

https://insideevs.com/news/719283/chinese-ev-tariffs-biden-quadruple/

We can't allow the US to get off of fossil fuels... unless US billionaires win! 🤡

Fear the BYD Dolphin! (an EV car for $12K)
https://m.youtube.com/shorts/T3nfyO_UHjk

agocke,
@agocke@hachyderm.io avatar

@tojiro @mekkaokereke electric mini cooper

agocke, to random
@agocke@hachyderm.io avatar

15" macbook air is nice. Recommend.

agocke, to random
@agocke@hachyderm.io avatar

My recollection is that whenever we tested this, it didn't perform any better than standard generational GC
https://mastodon.social/@HalvarFlake/112334372057873051

agocke,
@agocke@hachyderm.io avatar

All allocations start in Gen 0, also called the "nursery", which you can think of as arena allocation. Whenever you do a Gen 0 collection, the whole arena is freed, except that anything still alive is moved into the Gen 1 space. This actually maps pretty closely to the "request-based" model. If most of the allocation in your app is due to handling requests than the vast majority of Gen 0 will just be current requests.

agocke,
@agocke@hachyderm.io avatar

The pluses and minuses are that Gen0 collection may not happen at the end of a request and instead occur in the middle of the next request. But, 1) that means you do fewer collections overall and 2) Gen0 collection and Gen1 promotion aren't so bad, assuming your Gen1 isn't the same as your super-long-lived generation.

agocke,
@agocke@hachyderm.io avatar

@Migueldeicaza you mean the language feature that allows specifying a particular arena an allocation must occur in?

agocke,
@agocke@hachyderm.io avatar

@yminsky the effect for the user is I think that things seem very simple: just struct or class. And with careful programming you can go allocation free. But the rules for an expert are probably more complicated than judicious use of a proper type system

agocke,
@agocke@hachyderm.io avatar

@yminsky both :)

agocke,
@agocke@hachyderm.io avatar

@yminsky .NET has always had a similar story, but more explicit. There are two kinds of types in .NET: value types and reference types. Locals and parameters of value type are always stack allocated. References are heap allocated. There's also a 'managed ref' which can point to either, and has a lifetime that is implicitly tracked.

This whole deal is much more implicit and has fewer safeguards, but generally works.

agocke,
@agocke@hachyderm.io avatar

@yminsky the declaration of struct vs class means you choose up front the memory representation. But also structs can be boxed, so you can implicitly go off the rails. And managed refs can point to either, but they have hidden implicit lifetimes

agocke,
@agocke@hachyderm.io avatar

And, most importantly, many apps in languages like C# still have some objects that live from session to session (caches, etc). So while the gen0 hypothesis is modally true, there are enough corner cases to mean you still have to handle them well, and regular generational GC does so without special cases in the GC.

agocke,
@agocke@hachyderm.io avatar

Maybe languages like Erlang that have a much more fine-grained and structurally enforced lifetime boundaries can do something more specific, but languages like C# have to deal with a bit more imperfection.

Migueldeicaza, to random
@Migueldeicaza@mastodon.social avatar

You can’t beat this 1:35 minute crash course on how our economy works. It voodoo, not a dark art, not medieval knowledge. Just plain and accessible economics.

This course should be taught in high schools.

You can then nicely progress to various books and textbooks if you want.

https://apple.co/3UJYQLF

agocke,
@agocke@hachyderm.io avatar

@Migueldeicaza yeah “supply chain reasons” meaning there’s not enough supply. That’s what “resource limitation” means. Whether or not interest rates alleviate the pressures is not relevant to whether there is enough productive capacity

agocke,
@agocke@hachyderm.io avatar

@Migueldeicaza what is commonly misunderstood? What misconception is MMT meant to correct?

agocke,
@agocke@hachyderm.io avatar

@Migueldeicaza ok, but we are currently in a world of full resource utilization, which is why inflation is above target. So this insight was useful 4 years ago, but not useful now.

agocke,
@agocke@hachyderm.io avatar

@Migueldeicaza I don't understand the dispute here. Orthodoxy seems to say that we have to pay the debt through taxation. MMT seems to say you could also print dollars. But both agree that printing is limited by inflation. So there's only a difference at ZIRP, which is not around anymore. So what's new?

agocke,
@agocke@hachyderm.io avatar

@Migueldeicaza does the movie have more than Keltons book?

bradwilson, to dotnet
@bradwilson@mastodon.social avatar

I'm skeptical of the new tight integration of .NET to Ubuntu 24.04. I noticed two things immediately:

  • I don't have access to .NET 6 at all
  • I don't have access to the latest .NET 8 SDK any more (currently 8.0.104, despite latest being 8.0.204).

I assumed using the Microsoft apt feed would allow me to use newer even if Ubuntu's feeds were older, but... not so much.

If .NET 6 is still supported, why isn't it on Ubuntu 24.04? And why are we being held back?

#dotnet #ubuntu #ubuntu24

agocke,
@agocke@hachyderm.io avatar

@bradwilson could be, not really meant for that. Dotnet-install script would probably work better. This is more for dev boxes.

agocke,
@agocke@hachyderm.io avatar

@bradwilson You might want to use https://dnvm.net if you need a wide range of SDKs to install and test against

agocke, to random
@agocke@hachyderm.io avatar

People say the worst debugging experience is DNS but that’s just because they haven’t tried mDNS

agocke, to random
@agocke@hachyderm.io avatar

Developer tools seemed like a good industry to be in, "sell shovels in the gold rush" and all, but it turns out developers prefer to dig for gold with their teeth.

agocke, to random
@agocke@hachyderm.io avatar

@danluu Q re: your blogging software. I notice your blog almost never has inline code. Is that deliberate? If you were to put inline code, how would you format it? Would you be able to meet your performance goals with the more complex rendering and (potential) JS usage?

agocke, to random
@agocke@hachyderm.io avatar

I think people aren't always clear on what I mean when I say that .NET metadata is a database. Here's an example: say you want to know which fields a struct has. So you fetch the struct and walk the nested fields, right? No! It's a database, there is no nesting!

Types are stored in the type table, and fields are stored in the field table. Want to know what fields are in a type? Go to the type table and grab the offset to the field table. Just a join!

agocke, to random
@agocke@hachyderm.io avatar

Incredible how much hate Eugen Rochko gets for making something that isn't exactly what they want.

agocke, to random
@agocke@hachyderm.io avatar

What's the scarce resource that modern DDoS's end up overwhelming first? Bandwidth? Compute? Memory?

  • 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