Mi consejo, cuando queráis aprender WebSockets no utilicéis un tutorial/libro/curso sobre Socket.IO. Es un framework, una capa de abstracción que te aisla de los fundamentos. Sería similar a aprender JavaScript utilizando JQuery.
Si vuestro objetivo es montaros vuestros propios servidores, Node y Django Channel lo hacen muy fácil. #websockets#web#socketio
I'm not rich, but I don't spend more than I earn in interest on my Bitcoin, so I'm having a hard time motivating myself to look for a job. I've been a web developer for about 25 years, and though I like the work, I can't stand the people. They are ego-maniacal, bad at communication, and humorless in general. There are exceptions, but they get cowed by louder more aggressive ones. "So contract" I hear you say; but here's the weird thing; I actually like working with people.
#WebGPU, #WebBluetooth, and #WebSockets open up so many possibilities too. I see so many hardware makers shipping web-based configuration tools these days and I'm HERE FOR IT! There's almost nothing the web can't do these days.
Im about to implement achievements for @cloudhiker. Anyone know a great method to show toasts/popup notifications in the #frontend for unlock events, which do not involve setting up websockets with #Laravel Echo? 🥺
Kitten update: session IDs now available in the request.session objects you get in your routes.
Kitten lets you persist arbitrary data in session objects to make it easy to work with sessions but you cannot store custom objects (instances of custom classes) as Kitten’s default database is not aware of custom classes in your application. Now, keyed to the session id, you can store custom objects in your app’s own database.
(The use case for this is pretty neat: keep your interface state in custom state class instances persisted in session objects and, using the Streaming HTML workflow*, send back pieces of the interface that take those state objects as their only prop. Quite a neat separation of concerns and state is maintained only on the server in those objects.)
Oh, by the way, since the optimisations I made on the bundle size, it now takes ~3.61 seconds to download and install Kitten¹ on my machine and ~1 second to update it (the initial install takes longer as Kitten downloads its own Node.js runtime and that takes the bulk of the time).
Every second you don’t spend waiting for something is a second you can spend doing something else 🤓
(And remember, Kitten is a server. So you don’t have to download and install a framework every time you start a project – no npx this or that or anything. Just start writing your code and run kitten.)
@andros In reality, HTMX is more than just fetch in Javascript 😅
The project goal from its website:
> "htmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext" https://htmx.org/ #htmx#javascript#ajax#css#websockets#sse#html#hypertext
htmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext :picklerick:
@sos#Boost is the worst piece of library I have ever seen.
I once wanted to make a teeny tiny tool that interfaced with a remote #WebSocket#API. And since I'm familiar with it, I decided to write it in C++. When looking for a library that can do #WebSockets and #JSON everyone recommended Boost.
Yeah, I had to download 180 MB of source code(!) and spend several minutes building the damn thing just to integrate it into my single file program. It was so convoluted and complicated to use that I just gave up.
On top of that the only promising part of Boost that I was actually interested in, Boost.UI, was removed from it years ago. Thanks for nothing.
I feel like my entire career in #webDev there has always been the tools that I'm interested in learning, and the tools that someone wants to pay me to use, and the later is always five years behind the former.
Just once I wish someone would let me skate to where the puck is going.
The issue's pattern: you have a #cloudflare DNS service routing traffic to your Meshcentral instance, often behind an #nginx reverse proxy. The main website works, but the remote connections start failing half the time. Now they always fail at a 0 sec timeout.
Pushpin decomposes real time web technologies (like #websockets into a request/response backend which works really well for #serverless and honestly most application stacks. Long lived connections are hard to manage near your app logic.
The GRIP protocol is straightforward and lower level than you'd expect.
If a device has a publicly routable IPv6 interface, safari won't offer that address for a peer to use in a WebRTC call. Unless one of 2 seemingly unrelated things are true
a) the page already has microphone permission or
b) the page specifies an IPv6 capable STUN server.
The whole point of IPv6 is that you don't need NAT to share scarce IPv4 addresses - and so STUN (which figures out what your public IP address is) would be irrelevant for IPv6
In the next weeks I will be working on adding HTTP/2 WebSockets to Apache httpd, sponsored by the friendly people from https://www.axis.com/ 🎉 #apache#websockets
Raphael Michel is presenting the talk "Building and scaling a live event platform with django-channels" at the DjangoCon Europe 2023 in Edinburgh 🏴🦄🚀