Умение признавать свои ошибки — современная вежливость больших корпораций. Бывают непопулярные у народа решения, которые продиктованы бизнесом (например, Фейсбук забит визуальным мусором и не собирается это менять). Бывают решения, которые изначально приняты сознательно, потому что думали, что так будет лучше, но когда стало понятно, что решение плохое, компания не захотела показаться глупой и выдала проблемы за особую идеологию (отсутствие возможности редактировать твиты в Twitter; отсутствие возможности адекватно прикреплять картинку к посту в Telegram). Бывают решения от лени, когда какой-то момент вообще не продумывали (неправильный визуальный акцент на номера телефонов вместо имён в групповых чатах WhatsApp; отсутствие возможности отправить альбом отложенным сообщением в Telegram). Бывают решения от незнания, когда люди некомпетентны или не очень понимают, что делают (бардак на вкладке «сервисы» ВКонтакте). А бывают решения, про которые стало понятно, что они плохие, и компания их откатывает. Это большая редкость. Подумать только: компания признаёт ошибку и делает обратно как удобнее.
Вы, наверное, помните ситуацию с Кинопоиском: всем включили новый интерфейс, люди стали жаловаться, и компания вернула старый интерфейс, а в новый начала перерабатывать его постепенно. Но тут глобальное изменение вызвало глобальное недовольство, был реальный риск снижения пользовательской базы. А вот вчера на WWDC показали, что Apple возвращает в iOS 15 карусель выбора времени для будильника. Изменение интерфейса этой карусели — одно из худших дизайнерских решений Apple за всё время. Выбирать время стало значительно неудобнее. В то же время это мелочь, из-за которой никто не перестал бы пользоваться айфоном. Особенно когда речь идёт об оголтелых Apple-фанатах: им можно продать даже куда более абсурдные и корявые вещи, всё стерпят. Однако же компания решила вернуть предыдущий вид карусели, очевидно более дружественный и понятный. Кажется, такие случаи в наше время — большая редкость.
#gadgets
https://github.com/Monadical-SAS/django-channels-router
django-channels-router
A Python library for routing and handling #websocket messages using #django-channels.
Routing socket messages in the view
Routing socket messages using a handler
#React
https://www.fullstackpython.com/websockets.html
A #WebSocket is a standard protocol for two-way data transfer between a #client and #server. The WebSockets protocol does not run over #HTTP, instead it is a separate implementation on top of #TCP.
#AJAX
#javascript#approval_process#cms#crm#ehr#erp#hr#layui#mysql#oa#privileges#redis#skyeye#springboot#springboot2#springcloud_vue#websocket
This platform uses Springboot, Layui, UNI-APP, and Ant Design Vue to create a low-code system for intelligent manufacturing. It includes over 30 application modules and more than 50 electronic workflows, covering CRM, ERP, MES, and more. This system streamlines business processes from customer relations to production and after-sales service, improving efficiency and data transparency. It also manages employee operations, providing a comprehensive solution for businesses. The benefits include faster development, reduced redundancy, and enhanced data management, making it ideal for companies seeking digital transformation.
https://github.com/dromara/skyeye
#cplusplus#c_plus_plus#cpp#datachannel#libdatachannel#libnice#p2p#peer_to_peer#peerconnection#rfc_8831#rfc_8834#rtcdatachannel#rtcpeerconnection#sctp#webrtc#webrtc_datachannel#webrtc_video#websocket
libdatachannel is a lightweight, easy-to-use C/C++ library that lets you add real-time peer-to-peer data, media, and WebSocket communication to your apps across many platforms like Linux, Windows, macOS, Android, and iOS. It simplifies WebRTC by providing a smaller, simpler alternative to Google's library, with compatibility for browsers like Firefox and Chrome. You can use it to connect native apps directly to web browsers with minimal dependencies, supporting secure connections via GnuTLS, Mbed TLS, or OpenSSL. It also supports compiling to WebAssembly for browser use, making it flexible for cross-platform real-time communication development[1][4]. This helps you build fast, efficient apps for video, audio, or data sharing without heavy libraries.
https://github.com/paullouisageneau/libdatachannel
#go#coolq#cqhttp#cqhttp_mirai#go#go_cqhttp#golang#group_manager#mirai#mirai_bot#nonebot#onebot#onebot_plugin#onebot_sdk#plugin#qq#qq_bot#qqbot#qqrobot#websocket#zerobot
ZeroBot-Plugin is a comprehensive utility plugin collection for the ZeroBot chatbot framework, offering over 100 features across entertainment, management, and productivity categories. The system provides high-priority functions like chat management, sleep tracking, and group administration, alongside mid-tier features such as image generation, music streaming, and game simulations. Users benefit from flexible plugin control—enabling or disabling specific features per group—and dynamic loading capabilities that reduce program size. The platform supports multiple deployment methods, from pre-compiled releases to local compilation, making it accessible whether you prefer ready-to-use binaries or customized builds. With extensive command options, scheduled task triggers, and AI integration, ZeroBot-Plugin transforms group chat management into an automated, entertaining experience while maintaining user control over which features activate in specific communities.
https://github.com/FloatTech/ZeroBot-Plugin