HN user

diiiimaaaa

287 karma

Developing stuff, available for hire.

@dimsemenov

https://dimsemenov.com

Posts6
Comments32
View on HN

I recently had to setup another complex monorepo with eslint/vitest/vite/tsup/turborepo and it was such a pain. All the time either eslint breaks for some file, or some build breaks because of some obscure thing in tsconfig, turborepo behaves in a weird way, adding new packages is a pain, etc.

Hopefully Evan can pull this off and we have simpler initial setup.

Not only that.

My main problem with web components that you end up with a build step anyway.

Not every component is interactive and relies on JS, some are just static elements (say avatar image) that you wanna render right away (but at the same time keep styles and logic scoped). Declarative shadow DOM helps, but you end up with a bunch of duplicate code in your final output, which begs the question - why am I using web components at all.

Leaflet should easily handle stuff like this if configured correctly. OP just slaps 3000 markers in a single layer, and each of them is an image element in dom. Should probably use some marker clustering for that.

Similar thing happened in iOS7(?) where they released glassy panels. Not far from that `-webkit-backdrop-filter` was added that allowed similar effect, I expect similar will happen. For new glassy effect it seems you need a separate filter for border, or maybe it's just gradient + blend mode.

These placeholders are generated by processing the image on a server beforehand. Generally they create some html, css or svg markup that is served inline. Having to do a separate request for such placeholder is very bad idea.

It's not clear if these placeholders do actually help, especially placeholders with very low quality. In my opinion, they only add visual noise.

I'd focus more on avoiding layout shifts when images load, and serving images in a good format (avif, webp) and size (use `srcset` or `<picture>`).

I really appreciate your position, but the letter is incredibly weak. I understand that it's aimed at government that won't read it otherwise, but:

You call it "operation", it's not operation, it's war.

You ask to prevent human casualties, but thousands are already dead.

A lot of people signing from companies such as Yandex - a search engine that promotes propaganda and hides evidence-based journalism. From VK - a social network that bans opposition communities and spreads misinformation. You can't have it both ways folks.

I am in Ukraine right now. In a small village to the north of Kyiv. I am the author of PhotoSwipe (https://github.com/dimsemenov/photoswipe).

Yesterday I was filling bags with sand to make a fortification for local defenders. I hear artillery as I am writing this. And by the way, you get used to it.

In the last few days I received about 20 emails offering support, none of them were from russian devs. One asked a technical question about my lib, I answered "do you know what's happening in Ukraine right now?" - no reply.

I see a few russian companies and personalities openly condemn the aggression (such as JetBrains) and I'm very grateful to them. However most are silent, or have very weak Instagram post "no war" with a sadface, or even worse - post with "we are out of politics".

And that's IT people, which are presumably more informed. Unfortunately, due to misinformation most russian people have no idea what's happening here, that's why sanctions should affect regular people, and not just putin and his close allies.

I've seen similar posts when Apple announced that there won't be Flash on mobile Safari. And I agree with Chrome team decision to force passive on document level listeners.

Also, note that not many people complained about "blocking video/audio autoplay on mobile browsers", because it's good for users.

BUT:

- Passive event listener detection is horrible and it baffles me that they start thinking about proper way only now.

- The announcement of this breaking change was quite silent. Chrome has so many influencers on social media, but almost no one shared/explained this change properly.

... and you can't translate a page, you can't search on a page, you can't select or zoom images, you can't open link in the new tab.

Imho, making custom "DOM" via canvas just to make UI look fancy is not a solution. Web was always about delivering accessible content for everyone.

Though, library might be good for web apps or games that are not content oriented.

I'm not planning to stop working on PhotoSwipe, it's under active development. There will be a WordPress plugin soon (with paid pro version), so project will be partly monetized.

Yeah, so we'd have to carry that exception over in every other piece of software we create that uses it

The license is MIT, you don't need to add anything else.

The >300 open issues and what seems like tons of ignored pull-requests

Old version of PhotoSwipe was not developed me and I did not manage repository. Previous owners just passed development to me a few months ago https://twitter.com/PhotoSwipe/status/444134042787930113 and I started working on a new version.

I can assure you that all new issues and pull-requests will be managed appropriately.

It's really great that you draw a custom cover image for every single plugin.

Suggestion: make all navigation ajax-based and display the items right away (don't wait until all items are finished loading). This will make your site much-much more faster.

Probably you're right, I agree that such behavior might be confusing in some cases.

I don't think that it's possible to launch fullscreen YouTube video player in mobile Safari by just clicking on link.

Maybe we should just link directly to the video (not to video page), like so: http://www.youtube.com/embed/PZvi11Yy9r8

This should be tested on real users for a while to see which option is best.

I completely agree with you. For this exact reason I've made this plugin modular. Which means that you can include only parts that actually use, both from JS part (thanks to Grunt) and from CSS part (thanks to Sass).