Hacker Newsnew | past | comments | ask | show | jobs | submit | james2doyle's commentslogin

2.5 Pro or the regular 2.5?

I always found that those Mimo models to be really good at tool calling and following instructions


Not only that, the output of tps is high. So not only can it handle most mid-level tasks perfectly fine, but can do it with speed!

Funny enough, I have a simple test that I have been running on each new model that catches my eye on OpenRouter. It is just a short prompt that asks the model to research yesterdays news and summarize it in a specific format along with a critique of the article or a highlight of any bias: https://gist.github.com/james2doyle/6afb04ea6b18e1a36bc45258...

I have been doing this test for about a year now. I run it on different harnesses and apps as well just to give me an idea of what they differences between them might be. Since I have been running it for a while now, I have a good sense of the correlation between this output and how the model will be on the rest of the things I want it to do.

I would say that almost every model (just tested Mercury 2.5 Preview and IBM Granite 4.2-8b) are pretty much the same on this task. Some are more diligent with how many sources they go out and get, but for the most part they are all very close in quality and will follow the instructions very well.

So saying "everything struggles" with that has just simply not been my experience.


> `hx-alpine-compat` - smooths over compatibility issues between htmx and Alpine.js

I looked into this when I tried HTMX 4 on a project earlier this year. I actually found that https://alpine-ajax.js.org/ was smaller than HTMX while providing all the features I needed. It is one of the sanctioned projects they link to so I felt good using it


great library, we link to it on our alternatives page


Carson! FYI:

"let us rething how extensions can and should work,"

I think you meant rethink here.


Proof it wasn't AI generated! Thank you!


I understand it can be quite difficult to type with those hooves.


Nice. I’ve been using the new split tabs in Chrome. Works perfectly. I believe Firefox had this first?


The submission is cool because it opens the comments even if you just happen upon some article that also happens to have a HN discussion. That said, when I read the headline I thought the same thing, “uh, right click, open in split view?” When that feature landed in Chrome my first use case was exactly this.


I actually tried to use HTMX on a site recently. I used the 4.0 beta. The site needed an interactive filterable product-listing-page-type experience to list out all their vendors. Form filters on the left and the list of results "cards" on the right.

The problem I had was that the entire experience became really slow when I had it all working together as one "response". Sending back all that HTML for an entire form with some large select lists as well as the response of results became noticeable laggy when there was more than a half dozen results.

I ended up switching to Alpine Ajax (https://alpine-ajax.js.org/) and pulled the form out of the response and just used a local x-data on it to track the state. This greatly reduced the HTML I needed to send back to just the list of results. I did make the form a bit more complicated but the experience felt a lot snappier. Both versions just synced the form state from the URL and kept the initial render as full HTML from the server.

I found that Alpine + Alpine Ajax was SMALLER than HTMX 4 even though (in my opinion) it offers a lot more features in a more approachable and intuitive way if you need to do interactivity and don’t want to trigger a request just to toggle some classes or attributes. Of course you can use both together (I started down that road) but you are mixing worlds and making the bundle size bigger at the same time.

I still like HTMX and will probably use it again. I just found that with an interactive experience like a product listing page, where the HTML response was quite large/expensive to fetch, it wasn’t the best choice for that.


You can always make the server-side render partials based on a request header.

https://github.com/dsego/ssr-playground/blob/main/src/server...


That is what I did. I was using Astro which has full support for partial HTML via the router


I think I understand now, even the partial required submitting everything to the server, which can be skipped if you can have interactivity without unnecessary requests.


Exactly. The partial response was 100kb-200kb of HTML + the backend query time. Of course, depending on your filters. But a large chunk of that was just sending down the form on the left side, which I already had on page load, so that penalty was real.

It was only the right side results of the experience that needed to be refetched when the form changed.

But in HTMX, you are expected to just send the whole dang thing back for every change. Makes sense for a like-button, a dialog, or even a classic form submission.

My refactor cut the HTML response by about 70kb and that made a big difference. The form became fully static and I had a simple Alpine data component that would just sync that state with the URL. Still used a GET on the form and still used the same partial endpoint. Just way less HTML to wait for.


Why are you expected to send down the whole thing? Maybe I’m missing something, but when you send the request from the form the response is just a partial of the results on the right hand side, using hx-target to specify some div instead of replacing the form. Form just stays there?


To sync the form state based on the current selections in the form. This is often called facets. The form contained many options and as you filtered those options would change. So you need a way to update the form too. Hence, compute the full thing on the server (the form state, the options within the fields, and the results) then send it all back.


Can be done by updating the form fields dynamically as they are edited. Doesn’t need to be done all in one shot. Eg: on blur of each field, send an htmx request and update the other fields. On form submit with htmx, send only the results partial.


Unless there's a material change to the form, why not just update the changed parts?

I'd also question architectural decisions if you need to send 100kb+ of html down the wire for a partial.


The cards contained a large data table outlining a bunch of attributes across many columns and rows. Not an ideal design but the client wanted those stats included in the card so they were visible right away.

We could have paginated the results, but the client didn’t want that either because you are just promoting the results that happen to land on the first page. You also can’t just CTRL-F and find things that way.

Now, those could have been loaded in dynamically. That isn’t a free solution either though. It means adding a new endpoint, with a new partial, another request-response round trip, plus the error handling in case it fails, etc. etc.

I just ended up being more practical to go with a reactive JS form component to reduce the HTML being sent back and forth.


If the server is using gzip, it feels like the difference in sending back json vs the larger (but compressible) html wouldn't be that much?


Thats not on htmx to decide what html to resend that's your engineering work...


Except you don't. Use hx-vals, hx-include, or even hx-headers to pull in additional data into the request that's outside of the immediate form/component.


AJAX is old tech though, using stuff that worked in the year 2000 is cheating in 2026. You are supposed to make the site slow and bloated for some reason.


It isn’t literally AJAX. Just a catchy name. It is just a fetch wrapper that mimics the $get, $post, etc. API


I can't really understand what you're describing. You have form on left & results on right, but you're requesting the new form state & re-rendering the form HTML on each request? Why? My naive understanding is that you could use something like hx-target to have the response to the form submissions update only the results area & the form should not need rerendered at all.

Why does the form need rerendered on a per request basis? HTML/Browser already tracks the current form state.


Because the form changed based on the selections you made. Like facet search.

Say you have a clothing store listing page and you filter for only "Shirts". Well, the filter that has "Material" might remove (or disable) the option for "Denim" because that is only for "Pants". So that state needs to be computed some where. My thought was, "Ok, refetch the whole thing with the updated options within the form (disable options that can’t be combined together) + the product results for those filters". But that was just a lot of HTML to ask for after each change.

So decoupling it so that the form never refetched, just the results, made it a lot snappier. But you still have the form state issue where you want to update the options based on selections. So the form became a little Alpine data component and the results stayed as an HTML partial.


Did you try out-of-bound swap (oob) in HTMX? With that you can update any element on page, e.g. three different form elements changed due to <select> change, request returns only these three form elements with oob selectors and keep the rest of the form intact.

https://htmx.org/attributes/hx-swap-oob/


Ah OK, so you had a level of dynamic behaviour in the form itself that warranted an applet/data component for the form. I can see how HTMX would not help with that.


Despite the fact that HTMX is a good solution in many cases, it's not the best solution in all cases. Ditto for React, and for any technology actually. Planning and consideration are always required, if you care about the end result.


Yeah, exactly. People seem to think I was holding it wrong. Maybe! But I gave HTMX an honest try. Another team would have just done a whole React thing, no HATEOAS, boatload of JS, and a bunch more memory. I will likely use HTMX again for something when I think it makes sense. Maybe once the 4.0 beta is over though


For some reason this subthread reminds me of the old joke about how to get Linux tech support. https://www.reddit.com/r/ProgrammerHumor/comments/7p88zj/ask...


You can bring anything to its knees when requesting too much data at once. There's always another bottleneck. Getting all data in a single request is an antipattern to me. Fetching a lot of data unless absolutely necessary with no other option is an antipattern to me. But that of course is relative to a specific purpose.


Is there a reason why you don't have an endpoint + template that renders only the result list. The form could be separate thing and issue a form submit request with all the selected filters? Seems better than rendering the whole page. You could even display a loader while the results are loading, and swap the list html element on success.


That is what I ended up doing but once I did that, I had a hell of a time getting that dynamic form working well with just the HTMX primitives. I even tried to do two different partials that would be fetched when I needed each one to rerender.

The gist of what I was saying was that once I had a more complicated experience, the benefits of just fetching a fresh partial each time started to dwindle. The HTML response grew, I needed a bunch of inline handlers to patch over some state issues, as well as the complexity of the template, just started to be too much. Really it was the Alpine part that I was missing. Simple class toggles, easy way to toggle aria attributes, show/hide for elements, and reactive/computed values, were the things I needed to get the results the client wanted.

If I was building a simple search input + results, I would use HTMX all day. These forum people make it work and that seems like a great use case. But it just didn’t fit with a more sophisticated form that had dynamic options plus a large results display and the burden of a slower query to just get the data.


have a look at https://segor.de/ - it just downloads 2MB of product listing data (pre-dating JSON!) and then does all filtering client-side


> The problem I had was that the entire experience became really slow when I had it all working together as one "response". Sending back all that HTML for an entire form with some large select lists as well as the response of results became noticeable laggy when there was more than a half dozen results.

Welcome to the disadvantage of server side rendering. We kind of had a point when we decided on delivering a single JS package up front and only tiny changed JSON after.


Why is this the top-most comment when the user obviously didn’t know how to use HTMX?


I used HTMX to serve my HTML partials. My HTML partials got too big. Not HTMXs fault. How do I fix that? Split them up? Use lazy loading? Pagination? That isn’t clear. I settled on a solution that gave me the least compromises while not abandoning the sprit of HTMX and HATEOAS.

HTMX has a whole section on their site dedicated to reasons not to use HTMX: https://four.htmx.org/essays#counterpoints

Alpine Ajax is actually promoted on their site as an alternative option but to stay within the HATEOAS universe: https://four.htmx.org/essays/alternatives#alpine-ajax

I tried building something more than a like-button or simple search. It wasn’t that easy to wrangle once it got more complicated.


You swapped out HTMX because you couldn’t figure out how to load a list of items gradually instead of all at once??


Want to help rather than throw tomatoes?


It was a genuine question. I’ve implemented infinite scrolling in HTMX and it’s quite easy, another commenter posted an example from the HTMX docs and it’s a couple of lines of html.


No worse thing for ux as the infinite scroll. As it breaks the native cmd-f/ctrl-f page search and makes loading progressively slow.


It doesn't do such thing at all, unless you think it's acceptable to load EVERYTHING in HTML, hide it, and do front-end search. Which would be completely nuts to do for things where infinite scroll is used.


It's a blatant lie and bullshit. A github MR can be 5Mb size and my laptop has 64Gb RAM (swappable 3x of that to SSD if really needed). There's NO need for progressive loading there.

Another example is filtered goods at the local electronics store webfront. Progressive loading without ability to go directly to page 7 wastes my time if I know that what I need is there as each load of 10 items takes time. But of course this pattern increases some shitty OKR in time-spent-on-website. Hate this.


If I wanted to do that I would have added pagination. But that UX also sucks in a different way.

I think dynamically fetching results (ala infinite scroll) would have been more complicated to build. I would have had to add an intersection detection (HTMX 4 has that) to trigger the form/request again, but with an ever increasing chunk offset slice. I also need a way to track that state as well. Considering I had one big HTML response, I don’t think I could have done that efficiently without splitting it anyway. Even if I could "pluck" the results I needed from the HTML response, the penalty of waiting for the response was the factor.

If you have any links to some demos where there is something like that, I would appreciate it.

All that being said, the count of items actually isn't the most relevant part. The most relevant part is the amount of HTML per single result. If you have a sophisticated card component (a title, a description, images, a table of information inside of it or complicated layout) just loading six cards could end up being hundreds of HTML elements.

So even if you lazy loaded elements in chunks, those chunks are still gonna take a while to fetch given the size of the HTML. You also break CTRL-F-ing since those results don’t exist in the DOM until you trigger their fetching code. Same problem as classic pagination.

I would have to completely refactor my entire experience regardless because if I want to lazily load the cards/results gradually, I would have to split up the layout to make it more efficient.

So my approach to shrink the HTML response was to break it up the "live" section to just the right half.


Infinite scroll is a shit pattern it creates complexity and makes it hard to get back to a position on the generated and changeable list. It can also be unexpected slow. Everyone knows a page load can be slow if their Internet is slow but a slow down when scrolling feels janky.If you think you need it you need pagination and more importantly better filters and search so users can find stuff easier without 200 options.


Wouldn't constantly loading new items into a select form be super annoying? Can HTML even keep a select input open when new items are added?


There are actually quite a few elements failing the Lighthouse accessibility audit.

This page also has 26 emdashes on it. For a page that isn’t an article, that seems pretty high.


Been using this and GLM 5.2 back and forth. I like the speed of Hy3. Also seems very happy to follow instructions. Still haven’t found any open models that follow instructions as good as Mimo v2 pro though


MiMo v2.5 Pro is very spiky, in my experience. Sometimes excellent, sometimes mediocre. Weirdly high non-deterministic behavior. Run the same task three times, get three different results. I mean, they're all rolling dice for the next word, but MiMo seems to run hot on the randomness dimension in my benchmarks.

But, it performs very well for its size. I just looked it up, and it's much smaller than I thought it was when I was testing it. 310B A15B is tiny for how well it performs. I guess that explains why it's so cheap.


Er, actually, Pro is a big 1T model (which makes more sense given how well it does, sometimes). Regular MiMo is small, and I haven't tested it.


What if your measure is cost? Or zero-data-retention? Or diversity of inference providers?

On those measures it is better.


Yeah sounds like maybe you got stuck in a loop? If you’re a big Deepseek fan, check out their Codewhale harness. It is actually really slick and you can use your OpenRouter account with it.

You can use any model you want but it is really tailored to work well with the Deepseek duo


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: