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
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.
Please open Telegram to view this post
VIEW IN TELEGRAM
๐47โค1
๐๐ผ๐ ๐๐ผ ๐ฐ๐ผ๐ฑ๐ฒ ๐๐ถ๐๐ต ๐๐ถ๐๐๐๐ฏ ๐๐ผ๐ฝ๐ถ๐น๐ผ๐?
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.
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.
๐74๐10โค1
Challenging programming projects you should try:
๐ https://jamesg.blog/2024/02/28/programming-projects/https://jamesg.blog/2024/02/28/programming-projects/
Please open Telegram to view this post
VIEW IN TELEGRAM
๐41โค1
Use KeePassXC to sign your git commits
๐ https://code.mendhak.com/keepassxc-sign-git-commit-with-ssh/
Please open Telegram to view this post
VIEW IN TELEGRAM
๐40
A library for building fast, reliable and evolvable network services
๐ป https://github.com/cloudflare/pingora/tree/main
Please open Telegram to view this post
VIEW IN TELEGRAM
๐45โค1
This media is not supported in your browser
VIEW IN TELEGRAM
Direct-a-Video: driving Video Generation
Direct-a-Video is a text-to-video generation framework that allows users to individually or jointly control the camera movement and/or object motion. Authors: City University of HK, Kuaishou Tech & Tianjin.
๐๐ข๐ ๐ก๐ฅ๐ข๐ ๐ก๐ญ๐ฌ:
โ
Decoupling camera/object motion in gen-AI
โ
Allowing users to independently/jointly control
โ
Novel temporal cross-attention for cam motion
โ
Training-free spatial cross-attention for objects
โ
Driving object generation via bounding boxes
Paper: https://arxiv.org/pdf/2402.03162.pdf
Project: https://direct-a-video.github.io/
Direct-a-Video is a text-to-video generation framework that allows users to individually or jointly control the camera movement and/or object motion. Authors: City University of HK, Kuaishou Tech & Tianjin.
๐๐ข๐ ๐ก๐ฅ๐ข๐ ๐ก๐ญ๐ฌ:
Paper: https://arxiv.org/pdf/2402.03162.pdf
Project: https://direct-a-video.github.io/
Please open Telegram to view this post
VIEW IN TELEGRAM
๐34๐3โค1
This tutorial will show you how to create an interactive table using Flet.
Moreover, with search and filtering functions, which is very cool
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
๐39
Harvard CS50 โ Free Computer Science Course (2023 Edition)
Here are the lectures included in this course:
Lecture 0 - Scratch
Lecture 1 - C
Lecture 2 - Arrays
Lecture 3 - Algorithms
Lecture 4 - Memory
Lecture 5 - Data Structures
Lecture 6 - Python
Lecture 7 - SQL
Lecture 8 - HTML, CSS, JavaScript
Lecture 9 - Flask
Lecture 10 - Emoji
Cybersecurity
https://www.freecodecamp.org/news/harvard-university-cs50-computer-science-course-2023/
Here are the lectures included in this course:
Lecture 0 - Scratch
Lecture 1 - C
Lecture 2 - Arrays
Lecture 3 - Algorithms
Lecture 4 - Memory
Lecture 5 - Data Structures
Lecture 6 - Python
Lecture 7 - SQL
Lecture 8 - HTML, CSS, JavaScript
Lecture 9 - Flask
Lecture 10 - Emoji
Cybersecurity
https://www.freecodecamp.org/news/harvard-university-cs50-computer-science-course-2023/
freeCodeCamp.org
Harvard CS50 โ Free Computer Science Course (2023 Edition)
Harvard University's CS50 is one of the most popular beginner computer science courses in the world. We just released the entire 26-hour CS50 course on the freeCodeCamp.org YouTube channel. This is the updated 2023 edition of the course. Dr. David J....
๐166๐5โค1๐1
Amber - the programming language compiled to Bash
๏ฟผhttps://amber-lang.com/ https://amber-lang.com/
๏ฟผhttps://amber-lang.com/ https://amber-lang.com/
๐63
Uber Migrates 1 Trillion Records from DynamoDB to LedgerStore to Save $6 Million Annually
๐ https://www.infoq.com/news/2024/05/uber-dynamodb-ledgerstore/
Please open Telegram to view this post
VIEW IN TELEGRAM
๐39
New Regular expression (Regex) functions in Excel
๐ https://insider.microsoft365.com/en-us/blog/new-regular-expression-regex-functions-in-excel
Please open Telegram to view this post
VIEW IN TELEGRAM
๐14
SQL at 50: Whatโs next for the structured query language?
๐ https://www.infoworld.com/article/3715453/sql-at-50-whats-next-for-the-structured-query-language.html
Please open Telegram to view this post
VIEW IN TELEGRAM
๐26
It's time for Stack Overflow's annual Developer Survey! From your preferred programming languages, the new tech you want to explore, and much, much more, we're calling all who code to weigh in.
Take the survey: https://stackoverflow.az1.qualtrics.com/jfe/form/SV_6rJVT6XXsfTo1JI?utm_medium=social&utm_source=twitter&utm_campaign=dev-survey-2024&utm_content=
Take the survey: https://stackoverflow.az1.qualtrics.com/jfe/form/SV_6rJVT6XXsfTo1JI?utm_medium=social&utm_source=twitter&utm_campaign=dev-survey-2024&utm_content=
๐40๐3โค1
#bugs
Github CoPilot Re-Enables Itself After Being Disabled
๐ https://github.com/microsoft/vscode-copilot-release/issues/1248
Github CoPilot Re-Enables Itself After Being Disabled
Please open Telegram to view this post
VIEW IN TELEGRAM
๐36
What's New in C# 13: Enhanced Params, Performance Boosts, and New Extension Types
๐ https://www.infoq.com/news/2024/05/csharp-13-preview/
Please open Telegram to view this post
VIEW IN TELEGRAM
๐36
40 Tips From A Senior to a Junior developer.
Part I:
1. Master the Basics: Ensure you have a strong grasp of fundamental programming concepts.
2. Write Readable Code: Prioritize readability over cleverness.
3. Use Version Control: Learn Git and make frequent commits with meaningful messages.
4. Understand Your Tools: Get familiar with your IDE, debugger, and terminal.
5. Comment Wisely: Use comments to explain why, not what.
6. Practice Problem-Solving: Regularly work on coding challenges to improve your skills.
7. Learn Design Patterns: Study common design patterns and their use cases.
8. Ask Questions: Donโt hesitate to seek help when stuck.
9. Read Documentation: Thoroughly read the documentation for libraries and frameworks you use.
10. Write Tests: Develop a habit of writing unit and integration tests.
11. Refactor Regularly: Continuously improve your codebase.
12. Learn Debugging: Master the art of debugging to solve issues efficiently.
13. Understand Algorithms: Study common algorithms and their complexities.
14. Keep Learning: Stay updated with new technologies and industry trends.
15. Build Projects: Work on side projects to apply what you learn.
16. Use Code Reviews: Participate in code reviews to learn from others and improve your code.
17. Learn SQL: Know how to work with databases and write efficient queries.
18. Learn about the business domain youโre working in.
19. Build relationships with other developers.
20. Stay Organized: Use task management tools to keep track of your work.
Part I:
1. Master the Basics: Ensure you have a strong grasp of fundamental programming concepts.
2. Write Readable Code: Prioritize readability over cleverness.
3. Use Version Control: Learn Git and make frequent commits with meaningful messages.
4. Understand Your Tools: Get familiar with your IDE, debugger, and terminal.
5. Comment Wisely: Use comments to explain why, not what.
6. Practice Problem-Solving: Regularly work on coding challenges to improve your skills.
7. Learn Design Patterns: Study common design patterns and their use cases.
8. Ask Questions: Donโt hesitate to seek help when stuck.
9. Read Documentation: Thoroughly read the documentation for libraries and frameworks you use.
10. Write Tests: Develop a habit of writing unit and integration tests.
11. Refactor Regularly: Continuously improve your codebase.
12. Learn Debugging: Master the art of debugging to solve issues efficiently.
13. Understand Algorithms: Study common algorithms and their complexities.
14. Keep Learning: Stay updated with new technologies and industry trends.
15. Build Projects: Work on side projects to apply what you learn.
16. Use Code Reviews: Participate in code reviews to learn from others and improve your code.
17. Learn SQL: Know how to work with databases and write efficient queries.
18. Learn about the business domain youโre working in.
19. Build relationships with other developers.
20. Stay Organized: Use task management tools to keep track of your work.
๐171โค3๐3
40 Tips From A Senior to a Junior developer.
Part II:
21. Optimize Code: Write efficient code but avoid premature optimization.
22. Understand basic security practices.
23. Maintain good documentation for your projects.
24. Follow Best Practices: Adhere to industry best practices and coding standards.
25. Work on Soft Skills: Improve communication and teamwork skills.
26. Stay Humble: Be open to feedback and willing to admit mistakes.
27. Contribute to Open Source: Participate in open source projects to gain experience.
28. Practice Pair Programming: Collaborate with peers to solve problems together.
29. Understand the Full Stack: Gain knowledge of both front and back-end development.
30. Automate Repetitive Tasks: Use scripts and tools to automate repetitive tasks.
31. Monitor Performance: Use tools to monitor and improve application performance.
32. Keep Code Simple: Aim for simplicity in your code.
33. Learn from Mistakes: Analyze and learn from your errors.
34. Set Goals: Define and work towards personal and professional goals.
35. Be Patient: Development takes time; be patient with your learning process.
36. Read Books: Invest time in reading programming and technology books.
37. Join Communities: Engage in developer communities.
38. Stay Healthy: Maintain a healthy work-life balance.
39. Use Modern Practices: Embrace agile, DevOps, and continuous integration/deployment practices.
40. Mentor Others
Part II:
21. Optimize Code: Write efficient code but avoid premature optimization.
22. Understand basic security practices.
23. Maintain good documentation for your projects.
24. Follow Best Practices: Adhere to industry best practices and coding standards.
25. Work on Soft Skills: Improve communication and teamwork skills.
26. Stay Humble: Be open to feedback and willing to admit mistakes.
27. Contribute to Open Source: Participate in open source projects to gain experience.
28. Practice Pair Programming: Collaborate with peers to solve problems together.
29. Understand the Full Stack: Gain knowledge of both front and back-end development.
30. Automate Repetitive Tasks: Use scripts and tools to automate repetitive tasks.
31. Monitor Performance: Use tools to monitor and improve application performance.
32. Keep Code Simple: Aim for simplicity in your code.
33. Learn from Mistakes: Analyze and learn from your errors.
34. Set Goals: Define and work towards personal and professional goals.
35. Be Patient: Development takes time; be patient with your learning process.
36. Read Books: Invest time in reading programming and technology books.
37. Join Communities: Engage in developer communities.
38. Stay Healthy: Maintain a healthy work-life balance.
39. Use Modern Practices: Embrace agile, DevOps, and continuous integration/deployment practices.
40. Mentor Others
๐149โค2
Google will discontinue Cloud Source Repositories
๐ https://cloud.google.com/source-repositories/docs
Please open Telegram to view this post
VIEW IN TELEGRAM
๐28