<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: qq99</title><link>https://news.ycombinator.com/user?id=qq99</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 11:58:19 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=qq99" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by qq99 in "Poll HN: What operating system do you primarily develop on?"]]></title><description><![CDATA[
<p>Win11, editor runs on Win11, all development happens inside WSL2 (Ubuntu)<p>Basically all the bonuses of Windows re: gaming, with a great developer experience (like Linux/OSX).<p>The prime annoyances are:<p>- exposing a port to the entire LAN (for local phone debug) is non-trivial<p>- I imagine Android or phone dev might be a bit harder re: simulator, luckily I don't do this<p>- dev that spawns native windows would by default spawn through some WM layer with X11 or something (and they are laggy)</p>
]]></description><pubDate>Fri, 28 Nov 2025 18:28:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46081333</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=46081333</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46081333</guid></item><item><title><![CDATA[New comment by qq99 in "Tell HN: Want a better HN? Visit /newest"]]></title><description><![CDATA[
<p>For me, the better HN is <a href="https://hckrnews.com/" rel="nofollow">https://hckrnews.com/</a></p>
]]></description><pubDate>Fri, 28 Nov 2025 16:06:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46079837</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=46079837</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46079837</guid></item><item><title><![CDATA[New comment by qq99 in "Ask HN: Has AI stolen the satisfaction from programming?"]]></title><description><![CDATA[
<p>I absolutely love it. I find it empowers me more than ever before, and my satisfaction is at all time highs. I'm even building projects now (videogames) that I probably wouldn't have started before.<p>Here's where I'm at:<p>- Your subjective taste will become more important than ever, be it graphic design, code architecture, visual art, music, and so on for each domain that AI becomes good at. People with better taste will produce better results. If you have bad taste, you can't steer _any_ tool (AI or otherwise) into producing good outputs. So refining your taste and expanding it will become more important. re: "Yeah, I could've prompted for that too.", I see a parallel to Stable Diffusion visual art. Sure, anyone _can_ make _anything_, but getting certain types of artistic outputs is still an exercise in skill and knowledge. Without the right skill expression, they won't have the same outputs.<p>- Delegating the things where "I don't have time to think about that right now" feels really good. As an analog, e.g., importing lodash and using one of their functions instead of writing your own. With AI, it's like getting magical bespoke algorithms tailored exactly to your needs (but unlike lodash, I actually see the underlying src!). Treat it like a black box until it stops working for you. I think "use AI vs not" is similar to "use a library or not": you kinda still have to understand what you need to do before picking up the tool. You don't have to understand any tool perfectly to make effective use out of it.<p>- AI is a tremendous help at getting you over blockers. Previous procrastination is eliminated when you can tell AI to just start building and making forward progress, or if you ask it for a high level overview on how something works to demystify something you previously perceived as insurmountable or tough.<p>> Nothing feels satisfying anymore<p>You still have to realize that were it not for you guiding the process, the thing in question would not exist. e.g., if you vibecode a videogame, you start to realize that there's no way (today) that a model is 1-shotting that. At least, it isn't 1-shotting it exactly to your vision. You and AI compile an artifact together that's greater than the sum of both of you. I find that satisfying and exciting. Eventually you will have to fix it (and so come to understand parts you neglected to earlier).<p>It's incredibly satisfying when AI writes the tedious test cases for things I write personally (including all edge cases) and I just review and verify they are correct.<p>I still find I regret in the long term cases where I vibe-accept the code it produces without much critical thought, because when I need to finesse those, I can see how it sometimes produces a fractal of bad designs/implementations.<p>In a real production app with stakes and consequences you still need to be reading and understanding everything it produces imo. If you don't, it's at your own peril.<p>I do worry about my longterm memory though. I don't think that purely reading and thinking is enough to drill something into your brain in a way that allows you to accurately produce it again later. Probably would screw me over in a job interview without AI access.</p>
]]></description><pubDate>Mon, 13 Oct 2025 20:42:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45573131</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=45573131</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45573131</guid></item><item><title><![CDATA[New comment by qq99 in "Ask HN: What are you working on? (October 2025)"]]></title><description><![CDATA[
<p><a href="https://www.kyoubenkyou.com/" rel="nofollow">https://www.kyoubenkyou.com/</a><p>It's a few things:<p>- very fast Japanese->English dictionary<p>- hiragana / katakana / number / time reading quizzes<p>- vocabulary quizzes based on wordlists you define and build<p>- learn and practice kanji anki-style (using FSRS algo)<p>- the coolest feature (imo) is a "reader": upload Japanese texts (light novels, children's books, etc), then translate them to your native language to practice your reading comprehension. Select text anywhere on the page (with your cursor) to instantly do a dictionary lookup. A LLM evaluates your translation accuracy (0..100%) and suggests other possible interpretations.<p>I just revamped the UI look and feel the other day after implementing some other user feedback! I'm now exploring ads as a way to monetize it.</p>
]]></description><pubDate>Mon, 13 Oct 2025 03:36:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=45564458</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=45564458</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45564458</guid></item><item><title><![CDATA[New comment by qq99 in "Ask HN: What are you working on? (September 2025)"]]></title><description><![CDATA[
<p>Very cool!</p>
]]></description><pubDate>Tue, 30 Sep 2025 08:15:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=45423136</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=45423136</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45423136</guid></item><item><title><![CDATA[New comment by qq99 in "Ask HN: What are you working on? (September 2025)"]]></title><description><![CDATA[
<p>I'm working on a few things, but the one that's gaining the most traction right now in terms of users is kyoubenkyou<p><a href="https://www.kyoubenkyou.com/" rel="nofollow">https://www.kyoubenkyou.com/</a><p>In short, it's a few things:<p>- JA->EN dictionary<p>- hiragana / katakana / time reading / number reading quizzers<p>- learn kanji with FSRS, anki-style<p>- vocab quizzer<p>- the coolest feature (imo) is a "reader": upload Japanese texts (light novels, children's books, etc), then translate them to your native language to practice your reading comprehension. Select text anywhere on the page (with your cursor) to instantly do a dictionary lookup. A LLM evaluates your translation accuracy (0..100%) and suggests other possible interpretations.<p>It's all elixir+liveview+postgres+pgroonga (though there are times when I would like to have SolidJS).<p>I've been considering open-sourcing it due to lack of commercial success, but might try an ad-based approach first.</p>
]]></description><pubDate>Mon, 29 Sep 2025 22:27:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45419610</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=45419610</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45419610</guid></item><item><title><![CDATA[New comment by qq99 in "Grok 4 Fast"]]></title><description><![CDATA[
<p>grok-code-fast-1 has been my preferred model lately, but I don't see any mention of it as part of this release. I'm wondering if this might be better? Even if grok-code-fast-1 might be slightly worse than Gemini 2.5 Pro, the speed of iteration can't be beat.</p>
]]></description><pubDate>Sat, 20 Sep 2025 16:33:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45314832</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=45314832</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45314832</guid></item><item><title><![CDATA[New comment by qq99 in "Show HN: Phind.design – Image editor & design tool powered by 4o / custom models"]]></title><description><![CDATA[
<p>Love the idea of local keys and appreciate your video explaining it! What do you use to record that style of video?</p>
]]></description><pubDate>Tue, 22 Jul 2025 22:34:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44653791</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44653791</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44653791</guid></item><item><title><![CDATA[New comment by qq99 in "Show HN: Phind.design – Image editor & design tool powered by 4o / custom models"]]></title><description><![CDATA[
<p>Cool!<p>Some feedback: it's too easy to get into a "dead chat".<p>> Sorry, an error occurred while processing your request.<p>No way to retry or resubmit or edit anything to get things moving again. Too terminal.<p>If I just type "try again" (lacking a retry mechanism), having it say "Here is the current image I'm working with" seems unexpected (my follow-up request was going to be for 4 entirely new variations with more specific aspects)<p>If I go back to the home page and attempt to begin what I imagined is a new chat, it appends this new message onto the previous chat's history. Not sure if that's a visual / caching bug, but it's also jarring</p>
]]></description><pubDate>Tue, 22 Jul 2025 22:09:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=44653564</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44653564</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44653564</guid></item><item><title><![CDATA[New comment by qq99 in "DaisyUI: Tailwind CSS Components"]]></title><description><![CDATA[
<p>So your <Button> component still has 60 tailwind classes on it?<p>I think that might work in React, but might have a payload impact on server-rendered React.<p>Another interesting point for using something like this (specifically, using shorter semantic class names instead of multiple tailwind classes) is: Phoenix LiveView<p>LiveView streams DOM changes over the websocket, so afaik can't really meaningfully be compressed to eliminate bytes. By using `btn` instead of 30 tailwind classes, your payloads will be smaller over the wire.<p>A bit niche, but something to think about.<p>The fact that your `<Button>` React component renders 60 tailwind classes might not seem bad (because gzip or otherwise might actually make it ~negligible if you have a ton of buttons on the page and you're server rendering with compression enabled), but in LiveView's case, I don't think there's really any other option (not enough of a text corpus to compress?).<p>Not sure if this was a factor in Phoenix's recent default inclusion of DaisyUI or not.<p>Even in Phoenix, I'm still using a `<.button>` Phoenix component, but that uses a smaller semantic classname most of the time</p>
]]></description><pubDate>Tue, 22 Jul 2025 17:24:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=44650377</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44650377</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44650377</guid></item><item><title><![CDATA[New comment by qq99 in "DaisyUI: Tailwind CSS Components"]]></title><description><![CDATA[
<p>Sure, you might make a `<Button>` UI component (assume React), but if it embeds 30 classes in it, when you server-render this, every button on your page is contributing ~30 classes worth of bytes to the payload sent across the wire.</p>
]]></description><pubDate>Tue, 22 Jul 2025 17:09:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=44650151</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44650151</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44650151</guid></item><item><title><![CDATA[New comment by qq99 in "DaisyUI: Tailwind CSS Components"]]></title><description><![CDATA[
<p>I think you're agreeing with me. DaisyUI is 1 implementation of a standardization shortcut so you don't have to e.g., develop your own button, dropdown, modal, nav, etc (whatever you are interested to consume from DaisyUI)</p>
]]></description><pubDate>Tue, 22 Jul 2025 17:07:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=44650124</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44650124</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44650124</guid></item><item><title><![CDATA[New comment by qq99 in "DaisyUI: Tailwind CSS Components"]]></title><description><![CDATA[
<p>Yes, they'll typically have a UI component that accepts props and may have some internal state.<p>DaisyUI is operating at the style layer, so you might use it to achieve the visuals for your UI component (regardless of how you achieve your UI component, be it React/Vue/server-rendered/etc)<p>I'm suggesting that just because you have a UI component, it doesn't mean you should be sending 30 tailwind classes for this button across the wire (in a server-rendered approach), and DaisyUI is 1 mechanism to achieve this with approximately 1 component CSS class.</p>
]]></description><pubDate>Tue, 22 Jul 2025 17:06:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=44650102</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44650102</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44650102</guid></item><item><title><![CDATA[New comment by qq99 in "DaisyUI: Tailwind CSS Components"]]></title><description><![CDATA[
<p>How are you going to style your components, if not via CSS classes?</p>
]]></description><pubDate>Tue, 22 Jul 2025 17:03:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=44650064</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44650064</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44650064</guid></item><item><title><![CDATA[New comment by qq99 in "DaisyUI: Tailwind CSS Components"]]></title><description><![CDATA[
<p>Tailwind is just a set of utility classes (that also tends to be compiled), while SCSS is a full-on CSS compiler that offers no utility classes by default.<p>A lot of the features that SCSS enabled are now natively part of CSS, so it has fallen somewhat out of favor (because: why compile when you can use the same features for free without compiling?). Nesting is in CSS now, which was the killer feature at the time. & scoping too. Variables especially are better in raw CSS because you can re-assign them and have them transition/animate, which is not possible in SCSS. SCSS helped to evolve CSS.<p>I initially thought Tailwind was very stupid, but after using it, it is somewhat freeing to write some "1-off inline CSS" (essentially) on the DOM node itself. Sometimes inline CSS is OK (and it's nicer to do so with an easy to remember and powerful utility class rather than via `style=`).<p>For some, it eliminates `MyComponent.css` that has literally 1 rule with 1 style inside it. Colocation with the DOM in some cases making it easier to modify +  reason about, less context switching.</p>
]]></description><pubDate>Tue, 22 Jul 2025 16:48:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=44649777</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44649777</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44649777</guid></item><item><title><![CDATA[New comment by qq99 in "DaisyUI: Tailwind CSS Components"]]></title><description><![CDATA[
<p>IIRC the creator of tailwind might have been against @apply too, but it didn't seem like a good recommendation to me</p>
]]></description><pubDate>Tue, 22 Jul 2025 16:24:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=44649357</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44649357</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44649357</guid></item><item><title><![CDATA[New comment by qq99 in "DaisyUI: Tailwind CSS Components"]]></title><description><![CDATA[
<p>Just because you have Tailwind in your codebase doesn't mean you can _only_ use Tailwind. I often use a mixture of both when it makes sense. The Tailwind classes are often terser. Tailwind is not great for all things.<p>> which emulates class based styling<p>IMO, what DaisyUI does is how you are meant to be using Tailwind. You aren't supposed to use _only_ TailwindCSS classes in HTML directly (although you can). It's faster for prototyping, then once the prototype solidifies and becomes a pattern, you can extract your long tailwind string into a nice utility class.<p>It happens to use things like `@apply gap-2` internally in its src, so that if you want to override "how large the gaps are" in Tailwind, Daisy will also inherit that override.</p>
]]></description><pubDate>Tue, 22 Jul 2025 16:15:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44649176</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44649176</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44649176</guid></item><item><title><![CDATA[New comment by qq99 in "DaisyUI: Tailwind CSS Components"]]></title><description><![CDATA[
<p>Tailwind is a set of utility CSS classes you can use that tend to guide you into writing CSS that looks like it "fits" together. E.g., consistent gaps if you use `gap-1`, `gap-2`, etc., rather than a hodgepodge of "hmm did I use margin-right: 2px or 1em or what" that can emerge in a large CSS codebase with many developers. We can use a `m-1` or `p-1` class to define a base padding, and as long as everyone knows that `1` is the amount of space to use by default, everything will generally look like it fits together.<p>Later, you can optionally redefine what `1` means if you want more space in your design. In a way, using tailwind can be like variablizing your CSS at compile time (in a faster way than just using writing and using CSS variables).<p>For a lot of things, using just 1-3 tailwind classes on a div is sufficient for many common tasks, e.g., `flex flex-row gap-1` boom done. You can put this directly in the HTML, and is considered "fine".<p>An example from DaisyUI's site is:<p>```
<button class="bg-zinc-100 border font-semibold text-zinc-900 text-sm px-4 duration-200 py-2.5 transition-all hover:border-zinc-300 hover:bg-zinc-200 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-zinc-900 active:translate-y-[0.5px] inline-flex gap-2 rounded-sm active:border-zinc-300 active:bg-zinc-200 active:shadow-none text-center align-middle cursor-pointer border-zinc-200 dark:border-zinc-700 dark:bg-neutral-700 dark:text-zinc-300 dark:hover:border-zinc-950 dark:hover:bg-zinc-950 dark:focus-visible:outline-zinc-200 dark:active:border-zinc-950 dark:active:bg-zinc-900">
```<p>This is everything needed to make a button look nice in tailwind, and obviously it would be insane to copy+paste this every time you want a nice looking button in your HTML (not to mention the byte size, it's just unreadable).<p>The best thing to do is define a `.btn` or `.button` (usually I might avoid `button` DOM level selector for future flexibility) and encapsulate these styles as a semantic component in your .css file. You can write them with raw CSS or `@apply bg-zinc-100 border ...;` using tailwind style @apply.<p>This is what DaisyUI provides you, a shortcut to common nice looking UI components.</p>
]]></description><pubDate>Tue, 22 Jul 2025 16:10:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=44649095</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44649095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44649095</guid></item><item><title><![CDATA[New comment by qq99 in "DaisyUI: Tailwind CSS Components"]]></title><description><![CDATA[
<p>I'm surprised that a lot of the comments seem to be missing the reason that this project exists.<p>In many tailwind projects, you inevitably end up wanting to standardize how a button looks, how a field looks, etc., rather than copy+paste the same 20+ tailwind classes that you need to implement a nice looking button in tailwind.<p>Can you just apply it to `button { @apply flex items-center blahblahblah; }` in app.css? Of course you can. Or you can use the btn from DaisyUI.<p>I think DaisyUI is just a shortcut for many common UI components that you will inevitably want to build out and that you will necessarily eventually standardize in any app that grows large enough.<p>How does it differ from bootstrap? Well, you can continue to use tailwind for everything else that DaisyUI has not implemented. It's just an additive layer to tailwind. The project is at its core just a shortcut for common UI components.<p>As a user, my criticism is that many of the DaisyUI components seem to be lacking good contrast, so some just don't seem to be usable. The theming situation is really interesting and quite cool to use, but if you look at the example page, it just feels hard to read. I can't really find a light and dark default theme that look good to me (re: contrast and brightness). I think the color hooks might just not be there but I didn't dig far enough in.<p>For me, I've found a lot of value in being able to easily copy+paste parts of DaisyUI source code, e.g., a particular widget and modifying it to fit my design system, rather than use it in its entirety.</p>
]]></description><pubDate>Tue, 22 Jul 2025 15:43:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=44648605</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44648605</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44648605</guid></item><item><title><![CDATA[New comment by qq99 in "Ask HN: What are your current programming pet peeves?"]]></title><description><![CDATA[
<p>I imagine (and hope) I'm not being billed for requests that fail.
In my own apps that use Anthropic API, sometimes the req just fails the initial connection (and so has to be retried), usually works in 1-2 retries.</p>
]]></description><pubDate>Sat, 19 Jul 2025 01:23:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=44611678</link><dc:creator>qq99</dc:creator><comments>https://news.ycombinator.com/item?id=44611678</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44611678</guid></item></channel></rss>