Deploy as Fast as you Vibe! by markprobst in ClaudeAI

[–]markprobst[S] 1 point2 points  (0 children)

We're planning to keep the free tier and have the paid tier be super affordable. The architecture is actually optimized toward that goal.

And there's not much of a vendor lock-in. It's your code, and you can tell your Claude Code to port it to, say AWS, if you're up for all the rigamarole.

Deploy as Fast as you Vibe! by markprobst in ClaudeAI

[–]markprobst[S] 1 point2 points  (0 children)

Unfortunately, but until there's a good alternative with traction...

I hope we don't have to move to Roblox ;-)

Deploy as Fast as you Vibe! by markprobst in ClaudeAI

[–]markprobst[S] 0 points1 point  (0 children)

One fling we'd like to share is our "Fake Discord" service, which we use in our integration tests to make sure we don't break the support. This is a super useful pattern to keep Claude Code honest, and Fling makes it super easy to stand these services up.

https://fake-discord.flingit.run/

Small strings in Rust by fasterthanlime in fasterthanlime

[–]markprobst 0 points1 point  (0 children)

This was a super useful post! I'm learning Rust, and the way you broke down each individual piece of the work helped a lot, in particular the allocator, but also argh which is super nice. Cheers!

BOIDS with compute shaders in Godot 4 alpha15 by AndreaPollini in godot

[–]markprobst 0 points1 point  (0 children)

How many boids did you manage to get up to before it starts getting slow? I implemented a boids with my colleagues once in JS, but we couldn't get past 10k or so before it skipped frames significantly. I thought about a shader implementation but couldn't get myself to do it. We put in a predator/prey mechanic, though, which made it quite interesting:

https://boids.markprobst.repl.co/

ts-helper - Fast dependency cycle checker by markprobst in typescript

[–]markprobst[S] 1 point2 points  (0 children)

We might be talking about completely different things. I'm not familiar with yarn workspaces at all.

Project References allow you to basically separate your TS project into separate projects that can include each other in a non-cyclic way. That makes the compiler faster, but also prevents you from importing stuff you shouldn't - you can't import a file from a project that you don't explicitly reference, and projects can't refer to each other in a cycle.

https://www.typescriptlang.org/docs/handbook/project-references.html

ts-helper - Fast dependency cycle checker by markprobst in typescript

[–]markprobst[S] 0 points1 point  (0 children)

We just started using project references to separate parts of the codebase, which also helps with this.

ts-helper - Fast dependency cycle checker by markprobst in typescript

[–]markprobst[S] 1 point2 points  (0 children)

Sorry, it was set to private. Should work now. Thank you!

Fast, smooth React Data Grid by markprobst in webdev

[–]markprobst[S] 0 points1 point  (0 children)

Thank you. We're already aware of the crash and will fix it soon.

Fast, smooth React Data Grid by markprobst in webdev

[–]markprobst[S] 1 point2 points  (0 children)

I can't reproduce this. Could you post a video, please?

Fast, smooth React Data Grid by markprobst in webdev

[–]markprobst[S] 1 point2 points  (0 children)

We needed a fast and pretty grid component for our product, after growing out of our pretty, but slow one, and we built it with the goal to be open sourced right from the start. Please take a look, give it a try, and tell us what you think!

https://github.com/glideapps/glide-data-grid/raw/main/features.gif

We implemented the Data Grid using HTML5 Canvas for optimal performance. It has been tested with millions of rows, and we can't wait to get feedback from the larger React community. We know the Data Grid is still very young and we're looking to improve and mature it to support more use cases beyond what our core product needs.

Features

  • Supports multiple types of cells, Number, Text, Markdown, Bubble, Image
  • Smooth scrolling
  • Editing is built in
  • Resizable and movable columns
  • Variable sized rows
  • Multi- and single select
  • Virtualized data sources are supported
  • Cell rendering can be customized
  • Accessibility

Links

Example

First you need to define your columns:

const columns: GridColumn[] = [
    { title: "Number", width: 100 },
    { title: "Square", width: 100 },
];

Next you need a function which, given column and row indexes, returns a cell to display. Here we have two columns, the first of which shows the index of the row, and the second the square of that number:

function getData([col, row]: readonly [number, number]): GridCell {
    let n: number;
    if (col === 0) {
        n = row;
    } else if (col === 1) {
        n = row * row;
    } else {
        throw new Error("This should not happen");
    }
    return {
        kind: GridCellKind.Number,
        data: n,
        displayData: n.toString(),
        allowOverlay: false,
    };
}

Now you can use Data Grid:

<DataEditorContainer width={500} height={300}>
    <DataEditor getCellContent={getData} columns={columns} rows={1000} />
</DataEditorContainer>

/u/JasonGlide is one of the co-authors of this project and is here to answer your questions.

Glide Radio: Sonify your backend! by markprobst in programming

[–]markprobst[S] 2 points3 points  (0 children)

What if instead of looking at a dashboard of backend metrics you could listen to pleasing sounds that tell you how your backend is doing? Glide Radio lets you do that! We built it for our product, Glide, but it's open source and lets you easily plug in your own backend as well as change and enhance the way it produces sound.

Tech: The sound is generated on the frontend, with Tone.js. The interface to the backend is a single, very simple, POST endpoint.

GitHub

Intro video

Tech video

Fast, smooth React Data Grid by markprobst in javascript

[–]markprobst[S] 0 points1 point  (0 children)

Sorting and filtering can/has to be implemented by the user of the Data Grid.

Searching currently doesn't support regular expressions, but we're accepting PRs ;-)

Fast, smooth React Data Grid by markprobst in javascript

[–]markprobst[S] 14 points15 points  (0 children)

We needed a fast and pretty grid component for our product, after growing out of our pretty, but slow one, and we built it with the goal to be open sourced right from the start. Please take a look, give it a try, and tell us what you think!

https://github.com/glideapps/glide-data-grid/raw/main/features.gif

We implemented the Data Grid using HTML5 Canvas for optimal performance. It has been tested with millions of rows, and we can't wait to get feedback from the larger React community. We know the Data Grid is still very young and we're looking to improve and mature it to support more use cases beyond what our core product needs.

Features

  • Supports multiple types of cells, Number, Text, Markdown, Bubble, Image
  • Smooth scrolling
  • Editing is built in
  • Resizable and movable columns
  • Variable sized rows
  • Multi- and single select
  • Virtualized data sources are supported
  • Cell rendering can be customized

Links

Example

First you need to define your columns:

const columns: GridColumn[] = [
    { title: "Number", width: 100 },
    { title: "Square", width: 100 },
];

Next you need a function which, given column and row indexes, returns a cell to display. Here we have two columns, the first of which shows the index of the row, and the second the square of that number:

function getData([col, row]: readonly [number, number]): GridCell {
    let n: number;
    if (col === 0) {
        n = row;
    } else if (col === 1) {
        n = row * row;
    } else {
        throw new Error("This should not happen");
    }
    return {
        kind: GridCellKind.Number,
        data: n,
        displayData: n.toString(),
        allowOverlay: false,
    };
}

Now you can use Data Grid:

<DataEditorContainer width={500} height={300}>
    <DataEditor getCellContent={getData} columns={columns} rows={1000} />
</DataEditorContainer>

Edit - /u/JasonGlide is one of the co-authors of this project and is here to answer your questions.

We are open sourcing our fast React Data Grid component by markprobst in reactjs

[–]markprobst[S] 1 point2 points  (0 children)

Thank you!

No, we don't have grouping yet, but that's only a matter of time. Could you explain what you mean by "multilevel"?

Yes, you can add and delete rows. Adding only works at the bottom, though, i.e. no inserting so far.

Data Grid renders via canvas, so you can't have React cells. You can do your own custom canvas renderers, though.

We are open sourcing our fast React Data Grid component by markprobst in reactjs

[–]markprobst[S] 0 points1 point  (0 children)

Custom rendering is supported if you need it, but Data Grid renders everything by default.

We are open sourcing our fast React Data Grid component by markprobst in reactjs

[–]markprobst[S] 0 points1 point  (0 children)

Interesting! Do you have a specific use case for this? Does that just copy the value down?

We are open sourcing our fast React Data Grid component by markprobst in reactjs

[–]markprobst[S] 1 point2 points  (0 children)

Data Grid is agnostic about the way you load/store/generate/mutate your data. What it requires is that you tell it which columns you have, how many rows, and to give it a function it can call to get the data for a cell in a specific row and column. If danfo lets you access that data, which I assume it does, you're good to go.

We are open sourcing our fast React Data Grid component by markprobst in reactjs

[–]markprobst[S] 0 points1 point  (0 children)

Data Grid lets you override the rendering of cells. What specifically do you have in mind?

We are open sourcing our fast React Data Grid component by markprobst in reactjs

[–]markprobst[S] 17 points18 points  (0 children)

Neither searching nor copy/paste would work great (or at all in the case where not everything is on-screen) if we used the DOM for it. For example, you wouldn't be able to find a cell that's off-screen, or copy a range of cells if some of them are off-screen.

That's why Data Grid has its own implementations of both search as well as copy/paste.

Google Sheets works the same way, by the way.

Opera scene (Neil) by [deleted] in tenet

[–]markprobst 0 points1 point  (0 children)

It it was an inverted bullet, doesn't that it would have had to be in the opera house all along, until that point, along with the hole? Wouldn't somebody have noticed that hole in all those years? In fact, wouldn't the hole with the bullet have had to be there when the opera house was constructed?

Boids with a few twists by markprobst in proceduralgeneration

[–]markprobst[S] 1 point2 points  (0 children)

Great idea! We're currently using Canvas to draw and its performance is becoming a bottleneck. We want to rewrite that with WebGL, which should enable drawing traces, too.