Sign in

JP

@ciantic.bsky.social
233 followers 1.1K following 862 posts

``` test ``` GitHub: github.com/Ciantic Blog: ciantic.iki.fi

PostsRepliesMedia
JP @ciantic.bsky.social · 22/09/2026
Apple's iCloud reminders webapp is so bad. It takes ~6.5 seconds to load, there is massive waterfall. I don't have anything but single shared reminder list with three items.
iCloud reminders webapp, showing massive waterfall
000
JP @ciantic.bsky.social · 21/09/2026
I like their graph with X axis as RL step, I don't think I've seen that from others.
Xiaomi Mimo seen progressing as RL steps get further along.
070
JP @ciantic.bsky.social · 10/09/2026
What is weird that Fable 5.1 is worse with higher effort?
Fable 5.1 has worsening score with higher effort.
000
JP @ciantic.bsky.social · 09/09/2026
Inspired by this, I decided to try. Now i'm stuck! Halp! www.pcjs.org/software/pcx...
Me trying to play Zork1, and getting stuck
000
JP @ciantic.bsky.social · 09/09/2026
Can we soon architect programs at graph level? I can imagine as human maintaining some sort of higher level graph, then LLMs maintain the implementation. Then again, UMLs have existed for a long time, but they don't have full fidelity required, so it never sticks. d2lang.com
110
JP @ciantic.bsky.social · 04/09/2026
Really struggling with new diagnostics in @solidjs.com v2. LLMs just run around circles finding these HUGE_FAN_OUT things. #SolidJS
HUGE_FAN_OUT... spam
100
JP @ciantic.bsky.social · 28/08/2026
My static SolidJS v2 blog codebase has feature branch for rendering Solid components within markdown files. I don't have need for this feature, so I won't merge to main, but interesting nontheless. github.com/Ciantic/test... #SolidJS
<Counter /> in markdown file, rendered as Counter -solid widget in the page.
020
JP @ciantic.bsky.social · 24/08/2026
What is Feedly doing? Why its logo is "Feedly threat intelligence".
Feedly homepage showing "Feedly threat intelligence" as logo
000
JP @ciantic.bsky.social · 23/08/2026
It also could be that the LLM it downloads is for pronunciation as different persona (it downloads some LLM when I change the persona too), and what I should instead change is the "Text-to-Speech" engine.
Configure Read aloud, showing 5 US "high quality" models as bolded, but Text-To-Speech engine as "The Piper Neural Engine"
000
JP @ciantic.bsky.social · 15/08/2026
Some reason the list only has Solid 2.0 (Beta) not the RC? #SolidJS
➜  solid2-rc-tests $ pnpm create solid@latest                  
┌  
 Create-Solid v0.9.0
│
◇  Project Name
│  test-something
│
◆  What type of project would you like to create?
│  ● Solid 2.0 (Beta)
│  ○ SolidStart (Solid 1.x)
│  ○ SolidJS + Vite (Solid 1.x)
│  ○ Library
│  ↑/↓ to navigate • Enter: confirm
└
110
JP @ciantic.bsky.social · 14/08/2026
Okay, I don't comment on Trump much, but this is just funny. www.theguardian.com/us-news/2026...
The Guardian article:

“You know the catapult is quite important,” Trump told Time magazine in 2017 before recounting a conversation he said he had with an unnamed navy officer.

“So I said, ‘What is this?’ ‘Sir, this is our digital catapult system’”, Trump went on. “It sounded bad to me. Digital. They have digital. What is digital? And it’s very complicated, you have to be Albert Einstein to figure it out. And I said–and now they want to buy more aircraft carriers – I said, ‘What system are you going to be’– ‘Sir, we’re staying with digital.’ I said, ‘No you’re not. You[’re] going to goddamned steam, the digital costs hundreds of millions of dollars more money and it’s no good’”.
000
JP @ciantic.bsky.social · 25/06/2026
JavaScript/Node people should be happy about their slim node_modules. Rust people have entirely different level of problem. Rust target directories are *HUGE* single project can easily have tens of gigabytes. 38 GB, 30GB, 19 GB...
000
JP @ciantic.bsky.social · 23/06/2026
I feel like've unlocked some @effect-ts.bsky.social (Effect v4 beta) specific achievement, for figuring out parts of the Bottom type by implementing my own DbFormat type-safe wrapper for it. TypeScript can be sometimes very complicated!
// Acts like branding but without changing the Type
export interface DbFormat<S extends Top, B> extends Bottom<
  S["Type"],
  S["Encoded"],
  S["DecodingServices"],
  S["EncodingServices"],
  S["ast"],
  DbFormat<S, B>,
  S["~type.make.in"],
  S["Type"],
  S["~type.parameters"],
  S["Type"],
  S["~type.mutability"],
  S["~type.optionality"],
  S["~type.constructor.default"],
  S["~encoded.mutability"],
  S["~encoded.optionality"]
> {
  readonly dbformat: B;
}

export function withDbformat<B extends string>(dbformat: B) {
  return <S extends Top>(schema: S): DbFormat<S, B> => {
    const result = schema.annotate({ dbformat }) as any;
    Object.assign(result, { dbformat });
    return result;
  };
}

export const UuidString = Schema.String.check(Schema.isUUID()).pipe(
  withDbformat("uuid"),
);

const test = UuidString;
const test2 = UuidString.pipe(Schema.brand("MyId"));

console.log("test", test);
console.log("test2", test2);
console.log("test", test.dbformat);
console.log("test2", test2.schema.dbformat);
100
JP @ciantic.bsky.social · 22/06/2026
I wonder why brand name in @effect-ts.bsky.social isn't the type of the identifier. Now it is plain string. I think at type-level only way to get the original identifier is to use conditional type to extract the ID. Like T extends Schema.brand<any, infer B> ? B : never;
200
JP @ciantic.bsky.social · 20/06/2026
Something like this...
Passing Zod schema partial to the rest endpoint

fetch("https://example.com/api/query", {
  body: superjson.stringify({
    organizationId: "1df408da-9f5f-40aa-8e0d-eec4921efc2c",
    pagination: {
      startAt: new Date(),
      count: 120,
    },

    // This would allow fully typed output, with shared schemas
    results: InvoiceSchema.pick({
      id: true,
      title: true,
      updated_at: true,
    }).extend({
      rows: InvoiceRowSchema.pick({
        id: true,
        title: true,
        price: true,
      }).array(),
    }),
  }),
});
010
JP @ciantic.bsky.social · 19/06/2026
Valibot has two ways to do a custom actionish thing, one is with brand and check, another is the hard way extending BaseValidation. Now for a library providing multiple different types, I think custom base validation looks more valiboty, because it doesn't steal brand. But it is verbose...
float32 defined as check()float32() defined as custom action
000
JP @ciantic.bsky.social · 30/05/2026
Isn't this like most obvious bug? I wonder why it exists. TypeScript's Object.assign extends objects deeply, but that is not how it works in JavaScript. #Typescript www.typescriptlang.org/play/?ts=6.0...
https://www.typescriptlang.org/play/?ts=6.0.0-dev.20260416#code/MYewdgzgLgBARgQwgUwPJwFbOLAvDAbwFgAoGcmBALhgFYAaUimKZaGgIgAtkAbXkB1IBfUqVCRYAMwCWAJ2gBBCBBkBzMDHzosOAHRJVGgBSIUO7FHqEYAEzg0CMMAgC2yTiADWCAJ4dhYQBKAG5xcGgYFAlbZSNNbUxLAxV1MGNZBSg4tOsne0cYAAc5GVcEOV8AaWRfGig5AFdkQNCxEgkIEF5kPQE1Y2jwWNSNPXs9F3cgpmY5+YWKAHolmAA9AH5wyG7e-sHsYZyxiZKyiuratrJF28WV9Y2gA
1120
JP @ciantic.bsky.social · 29/05/2026
Like, what the hell happened here. JS Zod statements sprinkled with GraphQL schema. Granted not all of this has to do with query layer, but validation, but. Surely there would be better way! github.com/calcom/cal.d...
GraphQL Schema with zod in comments?
110
JP @ciantic.bsky.social · 23/05/2026
Debugging linux with LLMs is kind of fun. I've stored all journalctl entries of my problems. Today I got issue: after wakeup network didn't start. I stored the journalctl, and gave it to DeepSeek 4 PRO. Is this fiction or fact? Who knows! But it is confident.
DeepSeek 4 pro investigation, atlantic network driver coudln't find memory because of fragmentation?
001
JP @ciantic.bsky.social · 21/05/2026
To illustrate the crazines of Postgres client libraries default behavior with types. See this. github.com/Ciantic/pg-u... #NodeJS #Postgres
Table as text in here https://github.com/Ciantic/pg-unified-mapping/blob/main/DEFAULT-MADNESS.md
030
JP @ciantic.bsky.social · 18/05/2026
Does Bluesky's webpage has memory leak when running for long time? It gets sluggish, and I noticed it eats 1.2GB of memory, of which 900MB of JS memory.
Bluesky in Google Chrome taskmanager showing resource utilization.
000
JP @ciantic.bsky.social · 27/04/2026
You can have two LSP servers working on a single file, and VSCode will annotate both happily. I have Deno and TypeScript Native enabled, they both work hard to add type annotations for each statement. Inline hints are doubled!
VSCode screenshot showing double inlay hints like `string : string`
010
JP @ciantic.bsky.social · 23/04/2026
I discovered something weird, one can 'strip' out the literals, e.g. boolean literal with a type { valueOf(): boolean } check www.typescriptlang.org/play/#code/C... @arnaud-barre.bsky.social had a puzzle, that lead me to this weirdish discovery.
140
JP @ciantic.bsky.social · 23/04/2026
I kept experimenting, this looks dangerous stuff: Record<string, { valueOf(): boolean } | string> Haven't tested a lot, but it infers and rejects numbers.
110
JP @ciantic.bsky.social · 23/04/2026
Hmm, I don't know what you mean, can't you restrict it here?
100
JP @ciantic.bsky.social · 23/04/2026
You can do that with writeable:
110
JP @ciantic.bsky.social · 23/04/2026
You can also use `const State`, but you probably knew that.
const createRecord2 = <const State,>(initialState: State) => initialState;
const store2 = createRecord2({ open: true });
110
JP @ciantic.bsky.social · 22/03/2026
I like PI coding agent, because it is a way to build my own. But why does it have a dependency to AWS libraries? Like @aws-sdk/client-bedrock-runtime@3.1014.0. It really bloats the tree. npmgraph.js.org?q=@mariozech...
pi-coding-agent has a lot of dependencies (unreadeable, so much!)
100
JP @ciantic.bsky.social · 19/03/2026
While there is something awry with Deno's business model, with recent layoffs, amount of code changes they are shipping has increased dramatically. You can see from their GitHub that they now work with Claude and contribution graph looks like this: github.com/denoland/den... @deno.land
Commits are increasing in Deno's codebase, regardless of layoffs.
000
JP @ciantic.bsky.social · 18/03/2026
ah found that annoying thing, will disable that!
memory: Manage persistent memory accross conversations.
000
JP @ciantic.bsky.social · 08/03/2026
I think it is great, but I don't have a much legacy code to be maintained, it doesn't look very smooth transition from 1 to 2. Some weird quirk with refresh types though.
Property '[$REFRESH]' is missing in type 'readonly { id: number; title: string; completed: boolean; }[]' but required in type '{ [$REFRESH]: any; }'.
200
JP @ciantic.bsky.social · 17/02/2026
Hello world didn't work, Fedora 43. FYI in Linux the only saneish method is to use Chromium Embedded Framework, not that broken ass GTK webview. Tauri guys are trying to refactor theirs to use Chromium Embedded Framework too: github.com/tauri-apps/c...
Electrobun failing with libnativewrapper.so?
140
JP @ciantic.bsky.social · 14/02/2026
Dario Amodei also has a weird worry, his 'messed up world' scenario has existed for a long time now? Capital and growth in tech sector has concentrated in Silicon Valley for decades now, why would it suddenly stop? It would stop only if money would lose its meaning.
Dario Amodei: I am worried geographically, though. I’m a little worried that just proximity to AI, having heard about AI, may be one differentiator. So when I said the 10-20% growth rate, a worry I have is that the growth rate could be like 50% in Silicon Valley and parts of the world that are socially connected to Silicon Valley, and not that much faster than its current pace elsewhere. I think that’d be a pretty messed up world. So one of the things I think about a lot is how to prevent that.
000
JP @ciantic.bsky.social · 18/12/2025
I didn't know, Apple App store pages seems to be at least partially done with Svelte. #Svelte @svelte.dev
Appe App store pages with Svelte identifiers in the HTML inspector.
030
JP @ciantic.bsky.social · 09/12/2025
I wanted to write pure Rust wayland apps (no winit or other crossplatform approaches). I made a small wayapp library to make them simpler. Here is an example of it managing an EGUI within a Wayland Layer shell surface. github.com/Ciantic/waya...
020
JP @ciantic.bsky.social · 29/10/2025
FYI, @nonzeronews.bsky.social Discord link in YT video is not working. Nikita, who probably created that, is not in Bluesky?
000
JP @ciantic.bsky.social · 14/10/2025
Like this:
JSON5 in the JS/browser console.
120
JP @ciantic.bsky.social · 25/09/2025
First attempt with Comet (Perplexity's AI browser). Open HN frontpage, I type "best three items" and it's answer? "The best three items depend on the context, but for survival situations such as being stranded on a deserted island..." I had to ask it twice to get it done!
Comet's answer to "best three items" in HN frontpage... is about survival skills in desert island?"best three items on this page??" gave an answer that was related to HN frontpage.
000
JP @ciantic.bsky.social · 12/09/2025
That's one heck of a misleading. How would anybody know to hover over "..." to know it was a paid search result? Secondly, I have not looked at Bing lately, but it looks absolutely hideous! Paddings, margins, font sizes, colors... Nothing looks harmonious to me, right on brand with Microsoft.
Bing search results with search term "Seo", with all kinds of margins, font sizes, etc.
110
JP @ciantic.bsky.social · 08/08/2025
GPT5 in Copilot VSCode shows pricing model as 1x. Given that GPT4.1, 4o had 0x and they are being deprecated, will GPT 5 also be zero-priced?
Pricing models in VSCode dropdown:

GPT-4.1 0x
GPT-5 (Preview) 1x
...
000
JP @ciantic.bsky.social · 11/06/2025
Hmm, I think that calls the nested dispose helper twice, once by ending the closure, and then second time by another disposer: www.typescriptlang.org/play/?target...
110
JP @ciantic.bsky.social · 10/02/2025
I like this picture, not only because it shows desire paths, but it also adds questions, why didn't people visiting the house on the top right, go to the house on the bottom left? It can be used to map undesired paths too, like the science department never visiting the sociology department.
Michigan State University leveraged desire paths to decide where to put the sidewalks.
000
JP @ciantic.bsky.social · 05/02/2025
Magic of .NET HotChocolate GraphQL is the abstractions over IQueryable, it makes it so that creating CRUD with filtering, sorting, pagination, etc. is so easy, yet a big foot gun as well! github.com/Ciantic/Grap...
000
JP @ciantic.bsky.social · 13/01/2025
It is nice to know that Notepad still has awesome feature of "not responding" when opening too big file. #Windows11 #TestInProduction
notepad (not responding)
000
JP @ciantic.bsky.social · 11/01/2025
Windows11 is having a normal day, everytime I hit refresh the Docker virtual ethernet adapter changes name to some random UTF-16 character... #Windows11
100
JP @ciantic.bsky.social · 27/11/2024
This is great! I just wonder is it a bit of a foot gun in Bluesky labeling system that you can *hide* all content from Microsoft MVPs with just a little misunderstanding of what the buttons do. Maybe they should have *pure* labeling service without those Hide and Off buttons.
000
JP @ciantic.bsky.social · 21/10/2024
Theo: "If you nest 15 providers at the top of your app, you are a shitty developer." Bsky, hold my beer. FWIW, I think provider trees are great. github.com/bluesky-soci...
130
JP @ciantic.bsky.social · 14/04/2024
I opened #Threads, their heavy-handed algorithmic is now thinking everyone is talking about their algorithm. On my feed too, the two first posts were @mmasnick.bsky.social and M.G. Siegler complaining about the algorithm. Mastodon and Bluesky do much better for covering real-time news.
In my feed of Threads, two first posts just complaining about their algorithm. Prooving the point!
2314
JP @ciantic.bsky.social · 27/10/2023
Some reason Bluesky's feeds search bar triggers Google Chrome's built-in suggests password filler.
Focused search field showing "Use strong password..." box
000
JP @ciantic.bsky.social · 20/10/2023
Ah, it sometimes flips to HTML, this is what it looks like in Firefox moments ago. Then on some refresh it appeared as HTML.
Kyefox's post, showing ActivityPub JSON when opened in Firefox, rendering it rather difficult to read.
100