Hacker Newsnew | past | comments | ask | show | jobs | submit | Teckla's commentslogin

I wish I was sufficiently dexterous to use your razor thin scrollbars. :(


Use your mouse wheel or Page/arrow keys?


ZZ will save the file (if there are changes) and quit. Try it as an alternative to :wq.


I've rebound mine too. ZZ saves without quitting, while Q quits.


But because they had an existing body of code that was not class based, it would be more of a re-write (C#) versus a refactor (Go).

I don't understand this reasoning at all, and I'm hoping you can shed some light on it.

As far as I know, C# supports static methods. Thus, using OO in C# would not have been required, would it?

I feel like I'm missing something here.


C# supports top-level functions as well, that's not the issue. But, just to give a simple example, in TS you can do things like:

   var foo: { bar: { baz: string } }
which have no equivalent in C#, because it doesn't have anonymous struct types, and its typing system is almost entirely nominal. Go, on the other hand, can translate this directly pretty much mechanically:

   var foo struct { bar struct { baz string } } 
And keep in mind that they aren't completely ditching the existing implementation, either, so for a while they're going to have to e.g. fix bugs in both side by side. It helps when the code can also be mapped almost 1:1.


The interesting thing is that you can do this in C# with tuples because tuples can nest tuples.

    type Platform = "Mastodon" | "Bluesky" | "Threads";

    type Profile = {
      name: string,
      socials: {
        handle: string,
        platform: Platform
      }[]
    }

    function getProfiles() : Profile[] {
      return [{
        name: "Charles",
        socials: [
          { handle: "@chrlschn", platform: "Mastodon" },
          { handle: "@chrlschn", platform: "Bluesky" }
        ]
      },
      {
        name: "Sandra",
        socials: [
          { handle: "@sndrchn", platform: "Threads" }
        ]
      }]
    }
Versus:

    using Profile = (
      string Name,
      (
        string Handle,
        Platform Platform
      )[] Socials //  Array of tuples in another tuple
    );

    enum Platform { Mastodon, Bluesky, Threads }

    Profile[] GetProfiles() => new[] {
      ("Charles", new[] {
        ("@chrlschn", Platform.Mastodon),
        ("@chrlschn", Platform.Bluesky),
      }),
      ("Sandra", new[] {
        ("@sndrchn", Platform.Threads)
      }),
    };
With some caveats


I would love if in mapping the typescript types to go they ended up building a "compiler plugin" to enhance go's type system.


TypeGo by Microsoft (TM).

Considering how fast the TypeScript compiler is, the TypeGo -> Go transpilation might as well be similar (up to a constant factor) in speed to Go compilation itself.

I'd give it a try. As a highly enthusiastic Go programmer, a powerful TypeScript-like type system is something I'd welcome in Go with open arms.


That wouldn't feel very idiomatic - you can do it but would feel wrong


Speaking as both a D&D DM and player, the "sub-optimal game play" makes the campaign more fun, more diverse, and offers more thoroughly enjoyable role-playing and problem solving opportunities. It doesn't make it less fun.

Not to mention that D&D rules aren't carved in stone. I've never encountered a DM or D&D group that wouldn't allow players the leeway to create a barbarian gnome or half-orc wizard with their desired stats, if that was important to them.

The changes WoTC made are bad, and make everything less fun and more generic. Their intentions were good, but what they've done really isn't helpful or good at all.


An experienced DM can of course let their players create whatever character they want, but a less experienced DM might be concerned about balance/fairness/implications of bending the rules. By creating an alternative, flexible rule for ability scores, a table can feel confident that the characters they build are still balanced.

> The changes WoTC made are bad, and make everything less fun and more generic. Their intentions were good, but what they've done really isn't helpful or good at all.

As you said above, the DM and table can agree to whatever constraints they want for the game, including using the old ability scores.


Then just like before, don’t use them. You can still roll a sub-optimal character. No one is forcing anyone to make only superheroes.


Our contribution to the small web: https://kagi.com/smallweb

After opening this web page, I pressed down arrow a few times to scroll the page. At first, I didn't understand why it only scrolled a few pixels.

It looks like there's a scrollable area within a scrollable area. The outermost scrollable area only scrolls a few pixels.

This is a badly designed web page.


Thanks to Crostini, Chromebooks are also excellent local computing devices.


After over 30 years using Windows, I finally gave up on it last year. It was a difficult choice, but clearly, it's just going to keep getting worse.

These days most people should be using Chromebooks and iPads, which are far and away more secure.


The solution to these issues isn't to simply not have those features, but to make it possible to toggle those features on/off.


Being able to search in the past for a half-remembered conversation sounds great until you have idiotic, asinine corporate data retention policies that require anything beyond 90 days to be deleted anyway, for some bullshit reason like being open to litigation or whatever and that being subject to discovery.

The company I work for has the same chat retention policy, but despite that, even being able to go back just 90 days has proven very useful!


The last time I looked at The Lounge, the installation and configuration seemed pretty involved, not to mention ongoing maintenance.

Has this improved recently?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: