Andrei O. pfp

Andrei O.

@andrei0x309

759 Following
2107 Followers


Andrei O. pfp
Andrei O.
@andrei0x309
This man made more U-turns on working people at the policy level, which is what matters, IMO suit or no suit is irrelevant, and should not be enforced, but at the end of the day if you're an elected representative all that matters is what you do for your constituents not how you dress. I'm sure most progressives got buyer's remorse with this one.
0 reply
0 recast
1 reaction

Andrei O. pfp
Andrei O.
@andrei0x309
Not possible without Snapchain node PR, the 2 embeds limit is applied at protocol level not at the client level. So all clients are limited to 2 embeds not just Warpcast.
1 reply
0 recast
1 reaction

Andrei O. pfp
Andrei O.
@andrei0x309
Donate to @yesyes's crowdfund "Helping farcaster grow by looking at Farcaster's data"
0 reply
1 recast
5 reactions

Andrei O. pfp
Andrei O.
@andrei0x309
Most popular websites were first wrote in C using CGI, and PHP was invented just a template language for C(that's why the first iterations were so C like), but I am not old enough to have have lived that. I haven't touched PHP, seriously for 2 years, IMO the language has been built for constrained conditions, the simple top down execution, and lack of async without specialized servers made it unusable for a long time to do things that is much more simple using other tech. Mostly started web dev around PHP 3.1 around early 2000's. Also PHP managed to remain so popular exactly because is so constrained, what is an issue of creating long tasks and parallel programing was a blessing for hosting providers. Also is true that CSR started to gain popularity because hardware got much better, in fact the whole JS ecosystem advancements are linked to that.
0 reply
0 recast
1 reaction

Andrei O. pfp
Andrei O.
@andrei0x309
I mean it's better for SEO but if you care only about SEO you could enable it only for known SE bots, but nobody does that. There's is also the argument that if you're server is beefed up the rendering will be faster and page will be available faster for the client. But if you want to cut costs CSR will always be king, and also is true that the loss in SEO is minimal as at least google will eventually crawl your website with a JS enabled crawler. That being said non-js crawlers still are used even by big search engine companies, and while that is true it will also be true that SSR it at least marginally better for SEO than SSR. But the cost argument is also true, in most cases is not worth doing SSR, for marginal benefits and pay thousands of $ for such marginal benefits. But will SEO even matter if people will start to use search engines less and use LLMs instead?
2 replies
1 recast
2 reactions

Andrei O. pfp
Andrei O.
@andrei0x309
Traditional websites weren't exactly like full SSR today they were more closely related to island architecture today. Where some parts were rendered on server and some parts are rendered on client. What happened is that the server mostly PHP in the old days rendered only the html with PHP evaluated parts in it while the JS if existed was sent to the client to maybe to additional rendering. It was possible to embed a JS engine inside PHP to render everything but no one did that because of the performance issues. Also today only the initial rendering is done by the server after that the rest of rendering is done by client while in the past all HTML was sent to the client with each request. The SSR term only started to get traction when JS also become a GP server language(node.js) it was never really used to describe how rendering works before that point. Also SSR as a JavaScript concept was impossible without creating a runtime outside of the browser.
1 reply
0 recast
1 reaction

Andrei O. pfp
Andrei O.
@andrei0x309
I mean Apple would have never done this without having its hand forced, legislators have put pressure, EU also has done the same. The EU legislation is even harsher, they recently fined both Apple and Meta ~800 billion combined pretty large sums, but they are likely to avoid the fines, plus the US Gov will probably intervene to defend them. I mean EU legislation does not just state that you need to allow alternative purchases, but also to open your API so other services can communicate with yours, plus transparent algorithms, these corporations do lament so much when it comes to EU legislation because they know what large sums of profit are at stake.
0 reply
0 recast
1 reaction

Andrei O. pfp
Andrei O.
@andrei0x309
EIP-6963 was a great EIP as it democratized wallet announcing and is permissionless which means a far simpler life for wallets, but the old injected connectors even though they should have been deprecated for years were never deprecated out of fear that would break many websites that do not use modern connecting kits, which sometimes is true there are websites with connecting kits older than 3-4 years out there... Back to mini app, the context is very different the relation between an extension and a website is fundamentally different from an iframe and a website. The only way cross-domain iframe can communicate with a website is through post messages, which means the client will always try to expect a message that will not be sent if the mini-app is not loaded by an iframe farcaster client. The cost of expecting this message is rather small, also most browsers are smart enough even if you do dynamic import at every mount the browser will reuse the asset library from cache, so the cost is minimal.
2 replies
0 recast
2 reactions

Andrei O. pfp
Andrei O.
@andrei0x309
It's hard to have many frustrations because 90/100 of the mini-app is outside of the client context. So in theory all the SDK, tooling, etc should make just a tiny fraction of your mini-app code.
0 reply
0 recast
2 reactions

Andrei O. pfp
Andrei O.
@andrei0x309
I think it has been recommended many times before that there's no obvious reason to use Ngrok when Cloudflare Tunnels offers for free what Ngrok offers for paid. Plus, you can set as many tunnels as you like statically on specific ports if you happen to run 4-5 projects at the same time on a machine. So you could map something like: tun-5173.your-domain.com -> localhost:5173 tun-4001.your-domain.com -> localhost:4001 etc At least personally, I use this pattern and have mapped several ports.
0 reply
0 recast
1 reaction

Dan Romero pfp
Dan Romero
@dwr.eth
Build a mini app, chance to win MON
4 replies
7 recasts
43 reactions

Darryl Yeo đŸ› ïž pfp
Darryl Yeo đŸ› ïž
@darrylyeo
@andrei0x309 out here reverse-engineering the Warpcast API before it officially goes open-source 👀 https://fosscaster.xyz/
0 reply
1 recast
2 reactions

Andrei O. pfp
Andrei O.
@andrei0x309
💯 Is so hard to use Brave with VPN and anti-fingerprint. If the point is to stop bots, these kinds of intrusive methods have 0 chance to stop a well-designed bot. You just use Pupetter with a normal browser like Edge in non-headless mode, loaded with a common user profile, with extensions enabled, and it passes all measures better than a real user. Of course, running a full browser has a cost, but I mean you can enable the same cost with assembly and POW, without blocking the real user and mining all their data. You can literally set the POW difficulty such that a pretty powerful PC would need infinite time to be able to find the solution, but for most noncritical requests 1 second of work is enough to deter common bots.
0 reply
1 recast
1 reaction

Darryl Yeo đŸ› ïž pfp
Darryl Yeo đŸ› ïž
@darrylyeo
Kind of surprised PoW captchas haven’t caught on more. Cloudflare is especially annoying when you’re using a VPN. https://warpcast.com/darrylyeo/0x4239f45d
1 reply
1 recast
1 reaction

Andrei O. pfp
Andrei O.
@andrei0x309
Not all of them, at the moment fosscaster only uses 35 endpoints. The most essential ones, anyone could use the class with those 35 endpoints here is public ( https://github.com/andrei0x309/fosscaster.xyz/blob/main/app/lib/wc-mod.ts ) Warpacat uses 500+ endpoints as of today, as you imagine, many of them are not super important. Also, when they enabled the wallet, they leaked the code(using source maps) from their global API hooks, because the embed wallet is in an iframe, and it loads all endpoints again. So the web version loads all endpoints twice, but not all endpoints are used, because for simplicity, from the code leaked, it seems queries are in a package( probably for easy reuse) But it is simpler to remake from scratch, don't need the code just the browser is enough, the fosscaster repo duplicates a lot of types because I just use a tool to export all types to be easier, but that doesn't matter much all types are striped when vite does the transforms.
0 reply
1 recast
2 reactions

Andrei O. pfp
Andrei O.
@andrei0x309
Added some new changes on fosscaster UI. - improved mini apps actions add/remove notification - added ability to upload videos if your account is allowed - added URL for triggering compose cast with predefined text and embeds, if the user is not logged in a login modal will be shown (URL schema exact as Warpcast) - added ability to open mini app by special URL /~/mini-apps/domain (domain dots are replaced with dashes example: https://fosscaster.xyz/~/mini-apps/fosscaster-xyz )
0 reply
0 recast
2 reactions

Andrei O. pfp
Andrei O.
@andrei0x309
If a mini app is rebranded and changed the domain wouldn't have to register again?, the JSON would be invalid with another domain. In theory, everybody should optimize their domain name as a slug(as per SEO strategy) but I agree that there may be cases where the domain would not be a good slug. This means the best way would have been to have a dedicated unique slug per app. At registration, dev would have chosen a slug to ensure the best URL, maybe even allow editing later as most sites do with slugs. Anyway, my main point is that the character ~ took far less space than the ID, and in theory, for best SEO you should try to use only meaningful words in the URL. Now again in a long time it doesn't matter, this is a micro optimization, we're practically talking here about the best possible practices, but many times you don't need to follow them to succeed so it's more of an observation than a recommendation.
0 reply
0 recast
1 reaction

Andrei O. pfp
Andrei O.
@andrei0x309
Thanks, I thought so, I mean for URLs for mini apps the ~ might have had a small negative impact, but it was much smaller compared to the id in the URLs for the mini apps. Right now the the pattern is /miniapps/[id]/domain Where the domain had the dots removed. Since domain was unique probably the best URL would have been: /miniapps/domain Also instead of removing the dots from domain, they should have been replaced with dashes. And that in theory should have been the best possible URL for SEO.
1 reply
0 recast
0 reaction

Andrei O. pfp
Andrei O.
@andrei0x309
Is miniapps user owned by the team? I ask because miniapps page does not use the `~` character pattern so trying to view miniapps user page will open the miniapps page instead, this breaks search functionality as if you try to search miniapps and click on the user you'll get to the miniapps page. cc: @gabrielayuso.eth
1 reply
2 recasts
8 reactions

Andrei O. pfp
Andrei O.
@andrei0x309
When it comes to folder routes SveleteKit allows you to embed custom regex in the folder tree, which is pretty advanced for folder routing.
1 reply
0 recast
2 reactions