106"Changing the license was a mistake, and Elastic now backtracks from it". We removed a lot of market confusion when we changed our license 3 years ago. And because of our actions, a lot has changed. It's an entirely different landscape now. We aren't living in the past. We want to build a better future for our users. It's because we took action then, that we are in a position to take action now.
107"AGPL is not true open source, license X is": AGPL is an OSI approved license, and it's a widely adopted one. For example, MongoDB used to be AGPL and Grafana is AGPL. It shows that AGPL doesn't affect usage or popularity. We chose AGPL because we believe it's the best way to start to pave a path, with OSI, towards more Open Source in the world, not less.
108"Elastic changes the license because they are not doing well" - I will start by saying that I am as excited today as ever about the future of Elastic. I am tremendously proud of our products and our team's execution. We shipped Stateless Elasticsearch, ES|QL, and tons of vector database/hybrid search improvements for GenAI use cases. We are leaning heavily into OTel in logging and Observability. And our SIEM product in Security keeps adding amazing features and it's one of the fastest growing in the market. Users' response has been humbling. The stock market will have its ups and downs. What I can assure you, is that we are always thinking long term, and this change is part of it.
109If we see more, we will add them above to hopefully reduce confusion.
110
1# VALL-E
2
3LLM code generation for vals! Make apps with a frontend, backend, and database.
4
5It's a bit of work to get this running, but it's worth it.
1# VALL-E
2
3LLM code generation for vals! Make apps with a frontend, backend, and database.
4
5It's a bit of work to get this running, but it's worth it.
1# VALL-E
2
3LLM code generation for vals! Make apps with a frontend, backend, and database.
4
5It's a bit of work to get this running, but it's worth it.
32 };
33
34 const clearDatabase = async () => {
35 await fetch('/clear-database', { method: 'POST' });
36 setProfiles([]);
37 setCurrentIndex(0);
38 setMessage('Database cleared');
39 };
40
118 <div className="admin-section">
119 <h2>Admin Controls</h2>
120 <button onClick={clearDatabase}>Clear Database</button>
121 <form onSubmit={addNewProfile}>
122 <h3>Add New Profile</h3>
182 await sqlite.execute(`DELETE FROM ${KEY}_profiles_${SCHEMA_VERSION} WHERE id = ?`, [id]);
183 } else {
184 // For right swipes, we don't need to do anything as the profile stays in the database
185 // You could add additional logic here if needed, e.g., to mark the profile as "liked"
186 }
207 }
208
209 if (url.pathname === '/clear-database' && request.method === 'POST') {
210 await sqlite.execute(`DELETE FROM ${KEY}_profiles_${SCHEMA_VERSION}`);
211 return new Response('Database cleared');
212 }
213
5/**
6 * Every Val Town account comes with its own private
7 * [SQLite database](https://www.sqlite.org/) that
8 * is accessible from any of your vals.
9 * ([Docs ↗](https://docs.val.town/std/sqlite))
115
116// adapted from
117// https://github.com/tursodatabase/libsql-client-ts/blob/17dd996b840c950dd22b871adfe4ba0eb4a5ead3/packages/libsql-client/src/sqlite3.ts#L314C1-L337C2
118function rowFromSql(
119 sqlRow: Array<unknown>,
125 const imageUrl = `https://maxm-imggenurl.web.val.run/${encodeURIComponent(prompt)}`;
126
127 // Store the generated image in the database
128 await sqlite.execute(`
129 INSERT INTO ${KEY}_images (imageUrl, prompt) VALUES (?, ?)
3import { jsxRenderer } from "npm:hono/jsx-renderer";
4
5// Simulated database
6let contact = {
7 id: 1,
1# VALL-E-DRAW
2
3LLM code generation for vals, on a canvas! Make apps with a frontend, backend, and database.
4
5* First you need a working version of VALL-E. Follow the steps [here](https://www.val.town/v/janpaul123/VALLE).
1# VALL-E
2
3LLM code generation for vals! Make apps with a frontend, backend, and database.
4
5It's a bit of work to get this running, but it's worth it.