Computer Science and Programming
Channel specialized for advanced topics of: * Artificial intelligence, * Machine Learning, * Deep Learning, * Computer Vision, * Data Science * Python For Ads: @otchebuch & @cobbl, https://telega.io/c/computer_science_and_programming
Show more156 211Subscribers
+4924 hours
+2017 days
+51230 days
- Subscribers
- Post coverage
- ER - engagement ratio
Data loading in progress...
Subscriber growth rate
Data loading in progress...
Challenging programming projects you should try:
๐https://jamesg.blog/2024/02/28/programming-projects/https://jamesg.blog/2024/02/28/programming-projects/
๐ 17
Who's here?
We've asked for a free link to a paid channel, for our subs.
x2-x3 Signals here
๐ CLICK HERE TO JOIN ๐
๐ CLICK HERE TO JOIN ๐
๐ CLICK HERE TO JOIN ๐
โ๏ธJOIN FAST! FIRST 1000 SUBS WILL BE ACCEPTED
๐ 14๐ 8
๐๐ผ๐ ๐๐ผ ๐ฐ๐ผ๐ฑ๐ฒ ๐๐ถ๐๐ต ๐๐ถ๐๐๐๐ฏ ๐๐ผ๐ฝ๐ถ๐น๐ผ๐?
A recent study by GitHub and Microsoft discovered that AI now authors 46% of new code. They also found that overall developer productivity surged by 55%, leading to more efficient coding processes. When we talk about AI-powered coding, we mainly talk about GitHub Copilot.
But ๐ต๐ผ๐ ๐๐ถ๐๐๐๐ฏ ๐๐ผ๐ฝ๐ถ๐น๐ผ๐ ๐๐ผ๐ฟ๐ธ๐?
The process goes in the following steps:
๐ญ. ๐ฆ๐ฒ๐ฐ๐๐ฟ๐ฒ ๐ฝ๐ฟ๐ผ๐บ๐ฝ๐ ๐๐ฟ๐ฎ๐ป๐๐บ๐ถ๐๐๐ถ๐ผ๐ป: Your prompts are securely sent to Copilot, ensuring data privacy.
๐ฎ. ๐๐ผ๐ป๐๐ฒ๐
๐๐๐ฎ๐น ๐๐ป๐ฑ๐ฒ๐ฟ๐๐๐ฎ๐ป๐ฑ๐ถ๐ป๐ด: Copilot analyzes the code around your cursor, the file type, and other open files to offer relevant suggestions.
๐ฏ. ๐๐ผ๐ป๐๐ฒ๐ป๐ ๐ณ๐ถ๐น๐๐ฒ๐ฟ๐ถ๐ป๐ด: It filters out personal data and inappropriate content, focusing solely on generating helpful code.
๐ฐ. ๐๐ผ๐ฑ๐ฒ ๐ด๐ฒ๐ป๐ฒ๐ฟ๐ฎ๐๐ถ๐ผ๐ป: Based on the intent identified in your prompts, Copilot crafts code suggestions that align with your coding style and project standards.
๐ฑ. ๐จ๐๐ฒ๐ฟ ๐ถ๐ป๐๐ฒ๐ฟ๐ฎ๐ฐ๐๐ถ๐ผ๐ป: Here, we can decide whether to use, tweak, or reject Copilot's suggestions.
๐ฒ. ๐๐ฒ๐ฒ๐ฑ๐ฏ๐ฎ๐ฐ๐ธ ๐น๐ผ๐ผ๐ฝ: Copilot learns from your interactions, improving its suggestions. Every time you tweak or reject its ideas, he knows from it. It employs techniques like zero-shot (asking without examples), one-shot (asking with an example), and few-shot learning (providing multiple examples) to adapt to our instructions, whether you provide examples or not.
๐ณ. ๐ฃ๐ฟ๐ผ๐บ๐ฝ๐ ๐ต๐ถ๐๐๐ผ๐ฟ๐ ๐ฟ๐ฒ๐๐ฒ๐ป๐๐ถ๐ผ๐ป: It remembers past prompts and interactions, making future suggestions more accurate.
๐ 28๐ 5
โ Message was hidden by channel owner
๐ 24๐ 2
โ Message was hidden by channel owner
๐ 6๐ 1
So, how they solved it? ๐ง๐ต๐ฒ๐ ๐ณ๐ถ๐ฟ๐๐ ๐๐ฟ๐ถ๐ฒ๐ฑ ๐๐ผ ๐๐ป๐ฑ๐ฒ๐ฟ๐๐๐ฎ๐ป๐ฑ ๐ต๐ผ๐ ๐๐ต๐ฒ ๐๐๐๐๐ฒ๐บ ๐ฝ๐ฒ๐ฟ๐ณ๐ผ๐ฟ๐บ๐. They tracked what Elixir processes were doing, if they were stuck waiting on something, etc. They recorded the event types, how many of each kind of message they received, and their processing times. In addition, they tried to understand how much memory they use, the performances of garbage collectors, etc.
After the analysis, they ๐ฐ๐ฟ๐ฒ๐ฎ๐๐ฒ๐ฑ ๐๐ต๐ฒ ๐ณ๐ผ๐น๐น๐ผ๐๐ถ๐ป๐ด ๐๐๐ฟ๐ฎ๐๐ฒ๐ด๐:
๐ญ. ๐ฃ๐ฎ๐๐๐ถ๐๐ฒ ๐๐ฒ๐๐๐ถ๐ผ๐ป๐: Discord significantly reduced the amount of data processed and sent by differentiating between active and passive user connections, cutting the fanout work by 90% for large servers.
๐ฎ. ๐ฅ๐ฒ๐น๐ฎ๐๐: Implementing a relay system (read - multithreading) allowed Discord to split the fanout process across multiple machines, enabling a single guild to utilize more resources and support more prominent communities. Relays maintain connections to the sessions instead of the guild and are responsible for doing fanout with permission checks.
๐ฏ. ๐ช๐ผ๐ฟ๐ธ๐ฒ๐ฟ ๐ฝ๐ฟ๐ผ๐ฐ๐ฒ๐๐๐ฒ๐ ๐ฎ๐ป๐ฑ ๐๐ง๐ฆ: To maintain server responsiveness, Discord employed worker processes and Erlang Term Storage (ETS) for operations requiring iteration over large sets of members, thus avoiding bottlenecks in the guild process. ETS is an in-memory database that supports the ability of multiple Elixir processes to access it safely. This enables the creation of a new worker process and passes the ETS table so this process can run expensive operations and offload the central guild server.
๐https://discord.com/blog/maxjourney-pushing-discords-limits-with-a-million-plus-online-users-in-a-single-server
๐ 23
๐๐ผ๐ ๐ฑ๐ผ๐ฒ๐ ๐๐ถ๐๐ฐ๐ผ๐ฟ๐ฑ ๐ต๐ฎ๐ป๐ฑ๐น๐ฒ ๐ฎ ๐บ๐ถ๐น๐น๐ถ๐ผ๐ป ๐ผ๐ป๐น๐ถ๐ป๐ฒ ๐๐๐ฒ๐ฟ๐ ๐ถ๐ป ๐ฎ ๐๐ถ๐ป๐ด๐น๐ฒ ๐๐ฒ๐ฟ๐๐ฒ๐ฟ?
As time passed, the overall size of Discord's user base, including its most prominent communities, has grown massively. This affected servers that started to slow down and hit their throughput limits. So, they needed to scale individual Discord servers from tens of thousands to millions of concurrent users.
Whenever someone sends a message on Discord or joins a channel, they need to update the date UI of everyone online on that server. They call that server a "๐ด๐๐ถ๐น๐ฑ," which runs in a ๐๐ถ๐ป๐ด๐น๐ฒ ๐๐น๐ถ๐
๐ถ๐ฟ ๐ฝ๐ฟ๐ผ๐ฐ๐ฒ๐๐, while there is another process (a "๐๐ฒ๐๐๐ถ๐ผ๐ป") for each connected client. The guild process tracks sessions of users who are members of that guild and are responsible for actions to those sessions. When sessions get updates, forward them to the web socket socket to the client.
The main issue is that ๐ฎ ๐๐ถ๐ป๐ด๐น๐ฒ ๐บ๐ฒ๐๐๐ฎ๐ด๐ฒ ๐ป๐ฒ๐ฒ๐ฑ๐ ๐๐ผ ๐ด๐ผ ๐๐ผ ๐๐ต๐ฒ ๐ป๐๐บ๐ฏ๐ฒ๐ฟ ๐ผ๐ณ ๐ฝ๐ฒ๐ผ๐ฝ๐น๐ฒ ๐ผ๐ป๐น๐ถ๐ป๐ฒ on that server, which means if a server has 1000 people online and they all send a message once, that's 1 million notifications.
๐ 13๐ 1