HNHacker News
TopNewBestAskShowJobs

segphault

2,555 karma · joined October 29, 2012

submissionscomments
segphault··on Chris Wanstrath "defunkt" GitHub cofounder and former CEO is banned on GitHub
I really wish gitea offered a paid plan for individual users so that there was a good alternative to Github available for personal private git hosting without having to self host.
segphault··on YouTube doesn't want to take down scam ads
I routinely see ads for fake medical treatments that they refuse to take these down when I report them despite the fact that the ads obviously violate Google's policies. So many of the ads on YouTube are for things that are obviously sketchy that when I see a new product I'm not familiar with for the first time in YouTube ad I just assume it is a scam.

It's crazy because YouTube has probably more information about the sort of products that I actually want to buy than probably any other company besides Shopify. About a quarter of what I watch are literally just product reviews. They have a ton of high-intent purchasing signal for reputable products, and instead they are showing me ads for trash. I know it doesn't have to be this way, because Instagram somehow manages to show me highly relevant ads for stuff that I've actually gone on to purchase after discovering there.

segphault··on Gnome Foundation Welcomes Holly Million as Executive Director
This is not a new role, previous GNOME Foundation executive directors include Stormy Peters, Karen Sandler, and most recently Neil McGovern.
segphault··on Extism makes WebAssembly easy
The idea of Wasm as a universal plugin system is very promising. But string passing is maybe not the best example to highlight, considering that Wasm is introducing stringref to enable zero-copy string sharing between the Wasm runtime and host language.

https://github.com/WebAssembly/stringref/blob/main/proposals...

segphault··on New study reveals most classic video games are unavailable
It's bizarre that companies aren't just selling the roms for classic arcade games that are otherwise completely unmonetized. There's an audience that would happily pay money just to be able to legally do what they are already doing with emulators and homemade arcade cabinets.
segphault··on Pocket gets worse the more you use it (2019)
Pocket isn’t a bookmark database, it is a tool for saving things to read later. The user interface is primarily built for reading, not organizing. I use Pocket extensively for reading, but I use Raindrop separately for organizing and managing content that I want to archive for future access with proper search, filtering, and categorization. To me, these apps serve separate functions and need different user interfaces for their respective purposes. Pocket isn’t really trying to be both things, and it seems odd to fault it for not being good at what it isn’t designed to do.
segphault··on Wazero: Zero dependency WebAssembly runtime written in Go
Any plans to support the WebAssembly GC proposal? Binaryen supports GC structs and arrays now, but there aren’t a lot of runtimes that have it yet. It would be cool if Wazero could do it in a way where managed structs can be seamlessly shared across the Wasm/Go boundary using the native Go GC.
segphault··on Consider Phlebas Published by the Folio Society
Your comment makes me wonder if I should give the series another chance. I only read Consider Phlebas and didn't continue with the series because I found the book so frustrating. It felt like there was a ton of context missing. I kept expecting it to provide some details about the culture that would justify the protagonist's antipathy towards it, but a coherent explanation for his world view never materialized.
segphault··on Rust Is the Future of JavaScript Infrastructure (2021)
Markdoc custom tag definitions can include arbitrary AST transforms on the child nodes, as in this example: https://markdoc.dev/docs/examples#tabs In order to do this, you need some API, so you can't just define the tags in JSON.
segphault··on Rust Is the Future of JavaScript Infrastructure (2021)
The underlying problem is still highly relevant in relation to JavaScript build tooling. Let's say that you have a transpiler written in Rust and you want to write a plugin that performs a custom AST transform.

If you want to be able to write the plugin in JavaScript, you have to take the AST from Rust and convert it to a JavaScript data structure in order to pass it into the plugin and then you have to convert the output back into a Rust data structure on the other end. Or you have to provide a JavaScript API that can safely mutate a Rust data structure from JavaScript while converting primitive values each way on demand. This is exactly like the problem I described with my Markdown processor. There's a ton of overhead involved, and it can cancel out a depressing amount of the performance gain that you would otherwise get from moving things to Rust.

Ultimately, these build tools need to have some degree of programmatic extensibility, and people want to get that without having to write their domain-specific logic in Rust and recompile the whole binary. There needs to be a better extensibility story and a cheaper (ideally, zero-copy) way to share data across the language boundary.

segphault··on Rust Is the Future of JavaScript Infrastructure (2021)
I'm bullish on Rust, but there's a long way still to go. The overhead of passing values across the boundary between JavaScript and Rust is quite high. There are a lot of cases where you want to be able to provide a dynamic configuration to something on the Rust side, ideally from JavaScript, and that's still pretty costly from a performance perspective.

One of my projects (https://markdoc.dev/) is a Markdown dialect that supports custom tags and a React renderer. I recently experimented with implementing a parser for it in Rust in order to increase performance. My Rust-based parser is significantly faster than my existing JavaScript parser, but then I have to serialize the AST in order to move it from Rust to JavaScript. I'd like to implement the entire processor in Rust, but I need to let users define custom tags in JavaScript, and the overhead of going back and forth is far from ideal.

I'm hopeful that the recently-ratified Wasm GC proposal—which introduces managed structs and arrays that don't cost anything to pass between the Wasm environment and JavaScript—will help a lot. But it's going to take awhile for Wasm GC features to land in LLVM and be properly supported in Rust.

segphault··on Godot 4.0 Stable
I tried one of the beta releases and successfully migrated a small toy project that I had been working on in Unity. It's remarkable how much Godot has improved. The new 2D tilemap editor in 4.0 is really good. I was also really happy to see that the type system in the Godot scripting language is a lot more comprehensive now.

It's pretty remarkable how much faster and cleaner the Godot developer experience is compared to Unity. I feel like a spend a huge amount of my Unity development time waiting for the compiler and fighting with the tools. In Godot, the development iteration loop is much faster. I can't really speak to 3D capabilities, but for 2D projects I'm totally sold on Godot and see no reason to ever go back to Unity.

segphault··on How I use Notion to manage everything
Performance has improved noticeably, particularly for the mobile apps, but it is still slow. I am a heavy Notion user and happily pay for it, but I really wish they would support local sync so that it would be more responsive.
segphault··on The case for frameworks
I am deeply sympathetic to Alex Russell's position on frameworks, but the reality is that he's never going to move the needle by badgering developers to prioritize performance over developer experience. The ecosystem won't move on from React to more performant and standards-based alternatives until those alternatives provide a competitive developer experience.

As someone who wants to advocate for standards instead of frameworks in my org, the problem I have is that the standards process is moving too slowly to address very basic and obvious developer needs. For example, the fact that Web Components are registered in a global namespace is really inconvenient in a large organization where you have many different teams making a large number of components. Sure, you can work around this with a BEM-like naming scheme, but you shouldn't have to. There's a great proposal for scoped custom element registries by one of the Lit developers that would actually address this issue, but it's been sitting in a repo for years without any meaningful activity and there doesn't appear to be any momentum around implementing it. Meanwhile, this is a thoroughly solved problem in the React and Vue ecosystems. That's just one small example, there are a ton of other papercuts and annoyances that there's no hope of fixing in the foreseeable future if solving them is going to involve a years-long slog through the standards process.

The DOM part spec that emerged from Apple's template instantiation proposal has the potential to provide an extremely efficient standards-based target for React-like frameworks that would solve a lot of the performance problems, especially if it's used judiciously for just the dynamic parts of the page in conjunction with server rendering and declarative shadow DOM. But nobody seems to be working on making that a reality, activity on that spec is pretty much dormant. React is going to keep winning until the standards furnish comparable ergonomics.

segphault··on Pinboard vs. Raindrop
Raindrop released a major update with highlighting features two months after this blog post was written, so the author's concern about the lack of recent updates is likely due to that major feature being under development at the time.

I'm a heavy Raindrop user and have been extremely happy with the service. I don't really use the social features, though.

segphault··on Interactive Docs with Markdoc
Hey, I created Markdoc at Stripe. Back in 2017 when I first started exploring options for improving the authoring experience, my original prototype actually used AsciiDoc (via AsciiDoctor). I had a lot of trouble getting buy-in for AsciiDoc from the users, who universally preferred Markdown, and their feedback is what ultimately led me to create Markdoc instead.

AsciiDoc gets a lot of things right, but it also has a lot of syntactic complexity and idiosyncrasies that were challenging for our documentation contributors. In documents with structural complexity, it becomes unwieldly very quickly. For example, having to vary the length of the delimiter line when nesting delimited blocks[1] is pretty arcane and leaves a lot of room for errors to creep in when reordering pieces of content. Even though AsciiDoc's extensibility model was compelling to us, it's really not designed for the kind of deeply-nested hierarchies that we needed to be able to express things like our integration builder[2] UI.

Anyhow, we have a section in our FAQ[3] that provides more context about why we didn't choose AsciiDoc. I remain a fan of AsciiDoc even though it didn't fully meet our needs, and Markdoc was definitely influenced by the things that we thought AsciiDoc got right.

[1]: https://docs.asciidoctor.org/asciidoc/latest/blocks/delimite...

[2]: https://stripe.com/docs/payments/quickstart

[3]: https://markdoc.dev/docs/faq#why-not-asciidoc

segphault··on Interactive Docs with Markdoc
Hey, I'm the creator of Markdoc and the author of that blog post.

The key advantage of using Markdoc instead of using Markdown with liquid or another string-based templating system that preprocess the content is that the tags and other custom syntax are a first-class part of the Markdoc format. The document parses to an AST and the individual tags can programmatically manipulate the content and document node hierarchy instead of just manipulating or outputting strings of text that are passed on to a Markdown processor.

segphault··on Ask HN: How to make a native GUI with a modern language?
You might want to check out Avalonia.FuncUI, which lets you use F# and the cross-platform Avalonia framework to build desktop applications with an Elm-like architecture: https://github.com/fsprojects/Avalonia.FuncUI#example-using-...
segphault··on Ask HN: Best language/framework to develop web-based text games today?
You might want to check out Kni, a JavaScript-based interactive story language for text adventures and interactive fiction: https://github.com/borkshop/kni
segphault··on JetBrains Suspending Development of Projector
I really wish that Jetbrains Gateway supported attaching to remote Docker containers the way that VSCode does. This is probably the biggest thing keeping me from using Jetbrains products more extensively.
segphault··on Show HN: PocketBase – Open Source realtime backend in one file
This looks like a great solution for rapid prototyping scenarios where you want a basic CRUD backend with as little friction as possible. The API preview feature in the admin dashboard is a really nice touch.
segphault··on Despite best efforts .NET is still not an open platform
Microsoft can't have it both ways. Crippling open tooling in order to extract more revenue or drive lock-in will undermine their efforts to make .NET relevant outside of the niche occupied by traditional .NET shops.

I can't imagine that there's a business justification for this decision that is compelling enough to offset the long-term damage to .NET adoption and community trust.

segphault··on Markdoc: Stripe's Markdown-based authoring framework
Hey, I work on the Docs Product engineering team at Stripe and created Markdoc.

The scope is somewhat different: Jekyll and Middleman are static site generators that provide a full stack for content publishing whereas Markdoc is a framework for processing Markdown content with custom tags and transforming it into the desired output format. Markdoc can be used inside of a static site generator or a custom documentation platform.

Markdoc's syntax and custom tags also take a somewhat different approach than many of the string templating systems that are commonly used in static site generators. Markdoc is not a preprocessor, the tags are treated as a first-class part of the markdown content, which parses into a data structure that can be statically analyzed, programmatically transformed, and rendered into the desired output format. For us, that's React, but it could be raw HTML, Web Components, a slide deck, or whatever else you might come up with.

segphault··on Windows needs a change in priorities
Like every Windows user, I have had a lot of frustrating experiences with the abusive behavior and dark patterns that have taken over the platform. Like when they started having Skype silently run in the background logged in with the user's Microsoft account without any notice or human intervention, and removed the setting to disable it from launching at startup so that it couldn't be prevented. I had to completely uninstall it, which didn't really help, because they still kept bringing it back after every update. I assume that they're going to do this with Teams now.

For every egregious user-hostile behavior, you can search and find a ton of forum threads where people discuss at length how to reverse or mitigate them. The fact that Microsoft is aware of this and continues to prioritize this kind of abusive growth hacking over user trust, knowing fully how that impacts the company's reputation among enthusiasts, is perhaps more damning than the actual practices.

Nobody at Microsoft who has decision-making authority actually cares. Contempt for the users is so deep in the DNA that this will never get better. It's disappointing, because it ultimately undermines all of the great effort that people elsewhere in the company have put into features like WSL that might otherwise make the platform attractive to modern developers.

It creates a really adversarial posture between the user and the platform. When they introduce new features, I'm reluctant to even try them because I don't trust their intentions. It's like being in an abusive relationship.

segphault··on App store bill sails out of Senate Judiciary Committee
> If there was a load of cool software that Apple was preventing from coming into existence, Android would be the dominant platform by now, because it would have all the cool stuff.

A mobile application that can't be shipped on iOS has a much lower total addressable market, which potentially makes it so that it isn't a commercially-viable undertaking for the developer. When I was working in the mobile space, I saw more than one great idea that never advanced to a product because of this factor.

There are also a lot of cases where a cross-platform mobile developer will kill an otherwise promising feature because they can't ship it on iOS and don't want to fragment their product by having different feature sets on each platform.

segphault··on Cloudflare Pages goes full stack
I'm interested in non-git deployment as well. For an image-heavy site, I would really prefer to avoid having to store static assets in GitHub so that I don't have to deal with git LFS. It would be nice if their CLI tool could support directly deploying a Pages application.
segphault··on Show HN: Budibase – An open-source low code platform
Installing the budibase server from npm pulls in over a thousand transitive dependencies. The npm install command reports that there are 39 known vulnerabilities in budibase's dependencies, including 9 that are classed "high" and 3 that are "critical" severity.

The dependency graph includes a lot of crap, like packages containing trivial single-line functions like "is-object" and "is-stream". That's a very large attack surface considering the poor security practices in the npm ecosystem[0] and the growing frequency of attacks on transitive dependencies[1].

I'm interested in hearing from the creators what steps they take to audit their transitive dependencies in order to prevent this application from being compromised. Given that a tool like this would typically be given privileged access to internal data sources, it seems like a tempting target. I don't think I'd be comfortable using this in production.

[0]: https://www.bleepingcomputer.com/news/security/52-percent-of... [1]: https://news.ycombinator.com/item?id=28962168

segphault··on Updates to the Twitter developer platform
Many of Twitter’s defining features, such as “@“ replies and retweets, originally began as conventions that were standardized by third-party clients before Twitter natively incorporated them into the platform.

When they restricted access to their APIs and began tightening the screws to discourage third-party client development, Twitter began to stagnate because they no longer had a steady flow of new ideas to exploit. It also prevented third parties from providing the kind of user experience improvements and specializations that heavy users with large audiences relied on to make Twitter manageable. Without these things, the platform has deteriorated badly.

It isn’t surprising that they have circled back around to where they started and realized that they need third-party developers, but given how poorly they have treated the very people who drove Twitter’s initial success, I can’t imagine anybody is foolish enough to give them a second chance.

segphault··on Selecting “Don't update browser settings” still resets the default to Edge
And then every time Edge updates it displays a modal dialog that tries to bully me into changing the default search engine to Bing. It feels like Windows gets more user-hostile with every update.

All of the effort that Microsoft has put into things like WSL and Docker integration to make the platform compelling to web application developers is undermined by these tactics. I'm getting really tired of playing whack-a-mole with all of the shady growth hacking that is built directly into the operating system. It bothers me enough that I'm ready to either switch to a Mac or go back to Linux.

segphault··on Next.js 12
> A huge bet we're placing on our Rust compiler is that we'll control the supply chain much more tightly.

This is great to hear, thanks for responding. I'm looking forward to seeing the Next.js dependency story improve in the future as you are able to complete that migration to swc. And hopefully Vercel's leadership in this space also encourages similar improvements in the broader node and react ecosystems.

← PreviousPage 2 of 7Next →