@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.

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,
@agocke@hachyderm.io avatar

@lewiscowles1986 debugging is the problem. If it goes wrong it’s really hard to figure out why, especially across different subnets with repeaters

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,
@agocke@hachyderm.io avatar

This tweet is back from Twitter by popular demand

mcc, to random
@mcc@mastodon.social avatar

Just saw a callout post on Babies

agocke,
@agocke@hachyderm.io avatar

@regehr @dan @dev Of all the symbols, C++ looks most like a gang sign

agocke, to random
@agocke@hachyderm.io avatar

Since Boeing is in the news, a reminder from Deming that quality is not “part of culture” or a post process called “QA.” It is a part of the construction process and the system needs to be designed to push it up. QA is the metric by which you identify your process is not producing good quality, but it is not a method for increasing the quality

nedbat, to random
@nedbat@hachyderm.io avatar

Tired of this: "learn C so you can understand how a computer really works."

So much of modern computers is not visible from C (pipelining, virtual memory, branch prediction, cache misses, etc).

I guess what they mean is, "you learn about pointers and consecutive memory locations"? How is that helpful for programming in other languages without pointers?

C teaches you an abstraction of computers based on the PDP-11. It's interesting, but it's not essential.

agocke,
@agocke@hachyderm.io avatar

@nedbat @f4grx @pkhuong When you no longer have problems at that layer, that's when you can stop caring about that layer. I don't think there's a universal level of knowledge that people need or is sufficient.

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

I wonder what’s the breakdown between developers buying visionpros and consumers buying the visionpros.

agocke,
@agocke@hachyderm.io avatar

@Migueldeicaza 4) waiting to try it in an Apple store first?

b0rk, to random
@b0rk@jvns.ca avatar

i don’t think i’ll ever understand monads even though I literally spent years studying category theory in grad school but I really liked this paper “What we talk about when we talk about monads” https://tomasp.net/academic/papers/monads/monads-programming.pdf

I love that it talks about cases where monads have been misapplied and the social aspects of how they’re used

(please do not try to explain monads to me and please no links to your favourite monad explanation)

agocke,
@agocke@hachyderm.io avatar

@b0rk @cross It should be somewhat simple. The way a debugger works for these cases is that the compiler encodes an extra translation table between the program text, the executing state of the program, and the original program text. The debugger takes queries about the program text and uses the translation table to answer the corresponding question about the program state.

The complexity mostly comes down to the fidelity of the translation table and the sensibility of the question

agocke,
@agocke@hachyderm.io avatar

@b0rk @cross The biggest problem is that the translation table, and the questions debuggers support, are pretty heavily C/C++-biased, since that's those are the languages with the most robust debugger use historically

tqbf, to random

Old Elk Port Cask is I think my current favorite "finished" American whiskey. This is the sherry cask I'm drinking right now, though. It's intensely sweet. I like the port better. You can tell something is going on with this bottle, but I'd still take an Angels or a Midwinter over it; I would take the Port cask over any of those.

agocke,
@agocke@hachyderm.io avatar

@tqbf opinion on Westland?

codinghorror, to random

I kinda hard agree with this, certain drugs have a pros and cons list that is much heavier on the cons?? Alcohol (sorry not sorry), Meth, Opioids, all should be on the "do not fly" list unless you have a really compelling reason you absolutely must put that substance in your body. Ideally with a prescription? https://www.theatlantic.com/ideas/archive/2023/12/destigmatizing-drug-use-mistake-opioid-crisis/676292/?utm_campaign=atlantic-daily-newsletter&utm_source=newsletter&utm_medium=email&utm_content=20231212&lctg=6050ed2c4953a53f1495995d&utm_term=The%20Atlantic%20Daily

agocke,
@agocke@hachyderm.io avatar

@codinghorror prohibition round 2? Good luck

b0rk, to random
@b0rk@jvns.ca avatar

i'm trying to figure out what high-level abstraction git presents. I think it's something like this?

(yes, all of this is "wrong", but I feel like git's UI does a lot of work to try to provide this abstraction in an inconsistent and leaky way)

agocke,
@agocke@hachyderm.io avatar

@b0rk do branches have a base branch? Or are they merely created from an existing branch? That is, is the base branch persistent?

agocke, to random
@agocke@hachyderm.io avatar

New blog post on my least favorite feature in C#, default(T): https://www.commentout.com/bad-defaults.html

eniko, to random
@eniko@peoplemaking.games avatar

managed to get my entity pooling system in kitsune tails which is very reflection heavy working in a NativeAOT compatible way. kind of a drag but glad i powered through and got it done

agocke,
@agocke@hachyderm.io avatar

@eniko Hmm... not certain this is safe. Have you tried running it through a test app like https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/prepare-libraries-for-trimming?pivots=dotnet-8-0?

agocke,
@agocke@hachyderm.io avatar

@eniko oh yeah that’s totally fine. Sorry, didn’t understand what was going on underneath

agocke, to random
@agocke@hachyderm.io avatar

PSA: If you install preview .NET SDKs onto your machine, I recommend using a global.json for any project that targets a non-preview TFM. Previews carry along bits for the non-preview stuff, and they're often older than the latest patches to the non-previews. If you're using a preview you could basically be downgrading your bits.

warrenbuckley, to dotnet
@warrenbuckley@umbracocommunity.social avatar

Naive question, I am hoping the the oh so friendly @shanselman might be able to help answer this for me, or point me in the right direction at least.

What is the difference between AOT publishing in .NET8 (that contains .NET in a single assembly) versus publishing to a single file containing .NET and doing trimming with it?

Is AOT loads smaller or..?!

agocke,
@agocke@hachyderm.io avatar

@warrenbuckley @shanselman AOT compiles the whole app to native code, while Trimming+SingleFile embeds CoreCLR and the trimmed assemblies. Main difference is AOT should be (much) faster to startup, smaller, and use less memory. Trimmed SingleFile supports some things AOT doesn't: 32-bit Windows, 32-bit Linux ARM, and runtime code generation (System.Reflection.Emit, MakeGenericType, etc)

agocke,
@agocke@hachyderm.io avatar

@shanselman @warrenbuckley Trimming will also have issues with reflection, so the main compat difference will come down to runtime code gen

agocke,
@agocke@hachyderm.io avatar

@warrenbuckley @shanselman No matter which one you use, if you have code that may be AOT/trim incompatible, the tool should produce warnings about it. There are docs for resolving warnings at https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/fixing-warnings and Eric Erhardt just wrote a big blog post about real-world AOT challenges and solutions: https://devblogs.microsoft.com/dotnet/creating-aot-compatible-libraries/

agocke, to random
@agocke@hachyderm.io avatar

By effectively mandating things be done the "Unix" way, Unix has saved thousands of programmers. Rather than write programs that would do thing the non-Unix way, they are forced to give up writing the program entirely. This is objectively the best situation, as maintaining code is the source of all pain. The ideal operating system is one which regularly pops up a big dialog saying "STOP", whenever you try to write a program. Which is why MacOS is the ideal OS.

bradwilson, to dotnet
@bradwilson@mastodon.social avatar

I'm shipping binaries compiled against netstandard1.1 and the NuGet reference I bring along is NETStandard.Library version 1.6.1.

Does anybody know any reason I can't just bump that up to version 2.0.3? It seems like it's just a more complete collection of dependencies for runtime.

agocke,
@agocke@hachyderm.io avatar

@bradwilson You'll only lose ancient Xamarin versions and .NET Core 1.0, which is long out of support.

agocke,
@agocke@hachyderm.io avatar

@bradwilson @older oh, you were talking about just the package version. I’d bump the tfm too

lcamtuf, to random

deleted_by_author

  • Loading...
  • agocke,
    @agocke@hachyderm.io avatar

    @lcamtuf I know this dates me terribly, but the intro to the matrix

    agocke, to random
    @agocke@hachyderm.io avatar

    If you've tried to use on mac and it crashed, try creating the $HOME/.config directory. I've also submitted a fix at https://github.com/icsharpcode/AvaloniaILSpy/pull/143

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