Ian Macartney

518 posts

Ian Macartney banner
Ian Macartney

Ian Macartney

@ianmacartney

friendly engineer. works at https://t.co/W72Fib5QYx former infra lead for previews @ Dropbox 🦋 https://t.co/MrHlnAMxBj

California Katılım Nisan 2008
180 Takip Edilen1.3K Takipçiler
@tobeycodes
@tobeycodes@tobeycodes·
@ianmacartney tested this and my hunch was correct. needs authorization check
English
1
0
1
84
@tobeycodes
@tobeycodes@tobeycodes·
hey @ianmacartney i am trying convex for the first time. shouldn't these functions verify the note was created by the user before deleting them? #L63" target="_blank" rel="nofollow noopener">github.com/get-convex/tur…
English
1
0
1
134
JC Castaneda
JC Castaneda@JcCastaneda05·
hi, quick one about setting up cloud env for convex, i find claude code's cloud environment so handy on quick fix or edit but when i tried "npx convex..." stuff it requires authentication in terminal and for some reason the agent is not able to authenticate, do you have plans on supporting cloud env like claude's?
JC Castaneda tweet media
English
1
0
0
68
Ian Macartney
Ian Macartney@ianmacartney·
@GorkaCesium "Cooling the ASICs would be trivial" -> you sure? Lacking conduction/convection leaves only radiation, which sounds tricky for heat dumping
English
1
0
1
92
Gorka Cesium
Gorka Cesium@GorkaCesium·
The real mining would be to mine bitcoin in space. Cooling the ASICs would be trivial and it can be powered by solar panels.
English
2
0
1
139
Ian Macartney
Ian Macartney@ianmacartney·
@tiagoefreitas @kiwicopple I went with the prosemirror OT model over Yjs CRDTs. I started exploring CRDT sync in Convex via the automerge-sync component, but for prosemirror-sync I found the rebase approach to be more correct. But if automerge has a lighter weight server impl that would be great to know
English
0
0
0
56
Paul Copplestone - e/postgres
we've released a CRDT extension for Postgres (experimental and open source) why? A CRDT is a special data type used for collaboration - think of a Google Doc. The changes are merged even as people are typing simultaneously these CRDTs are then serialized on a server and then stored in a database. with a Postgres extension, we give the database a more "native" experience - they can be merged on the database, indexed, and searched. In the future you should be able to do something like this: create table blog_posts ( id uuid primary key, title text, body crdt default '{}' ); then you can post the changes to the database and it will merge automatically (rather than overwriting eachother's changes) you can use websockets (like our Realtime server) for very rapid changes between users, batching the changes to your database
Paul Copplestone - e/postgres tweet media
English
42
94
1.1K
84K
Ian Macartney
Ian Macartney@ianmacartney·
Long time coming, but you can now do v.nullable(...) as shorthand for v.union(..., v.null())
English
0
0
9
1.7K
Ian Macartney
Ian Macartney@ianmacartney·
#reusing-and-extending-validators" target="_blank" rel="nofollow noopener">docs.convex.dev/functions/vali…
ZXX
0
0
1
880
Ian Macartney
Ian Macartney@ianmacartney·
Handy validation utilities landed in @convex 1.29: v.object({name: v.string(), age: v.string()}) .pick("name") .extend({id: v.id("users")}) .partial(); I'll be working on the core API in addition to convex-helpers & components
English
1
2
9
1.7K
Ian Macartney
Ian Macartney@ianmacartney·
Grok did a decent job, but to make it more concrete I've built two components to do this. Workpool - durable functions with steps, suspension until time/event & more Workpool - general-purpose queues w/ parallelism limits, retry configs, exactly-once execution of onComplete
gary IH fung@garyfung

@convex Does Convex have ergonomic queues and durable functions @grok ?

English
0
0
3
975
Ian Macartney
Ian Macartney@ianmacartney·
@lgrammel I'm adding to @​convex-dev/workflow * to improve HIL, incl. AI SDK loops- adding pause/resume- akin to promises / signals / condition variables for Convex fns. Planning to ship soon - would love to chat / coordinate! *Durable async serverless functions akin to termporal
English
0
0
1
84
Lars Grammel
Lars Grammel@lgrammel·
Continuing to prototype tool execution approvals. This is how the UI components for tools could look like with approvals:
Lars Grammel tweet media
English
13
5
154
10.4K
Ian Macartney
Ian Macartney@ianmacartney·
..of course sometimes skipping meaningless stack frames is good, and nothing is absolute
English
0
0
1
286
Ian Macartney
Ian Macartney@ianmacartney·
try { return foo(); // async function } finally { // executes before foo finishes* } * code in foo prior to the first await may run first
English
1
0
0
403
Ian Macartney
Ian Macartney@ianmacartney·
I feel clever subbing `return await fn()` with `return fn()` But gotchas don't seem worth it anymore • Breaks try/catch/finally expectations • Loses stack trace context My default is now to always await. Change my mind.
English
1
0
5
568
Ian Macartney
Ian Macartney@ianmacartney·
@ZubairIbnZamir @convex It's up to date! There's also an ongoing effort to support zod4, which will be backwards compatible (using the same clever trick zod used of a separate /zod4 entrypoint)
English
0
0
1
26
Ian Macartney
Ian Macartney@ianmacartney·
Big updates to the Agent Component: - Abort an async stream remotely - Pending, failed, and aborted streamed messages auto-save - AI SDK v5 support - Easier to use alongside AI SDK vs. wrapping - Type-safe custom context passed to tools - <SmoothText>msg.text</SmoothText>
English
10
5
75
32.1K
Ian Macartney
Ian Macartney@ianmacartney·
@vishyfishy2 You can do either - http streaming has always worked via the `toUIMessageStream` & co. Delta streaming is opt-in and streams only the changes to all subscribers (and can be resumed). Doing both is possible right now - simplest is to read both the deltas & HTTP & de-dupe tho
English
0
0
0
28
f1shy-dev
f1shy-dev@vishyfishy2·
@ianmacartney or is it using a resumable streams architecture now
English
1
0
1
122
Ian Macartney
Ian Macartney@ianmacartney·
@maxjean__ The `ai` npm package underlies some of the Agent component - and with their v5 change a lot of the data model changed, requiring some changes to translate to/from the database schema the Agent uses, along with changes in behavior for streamText / etc.
English
1
0
1
82