❎برنامه نویس بلاکچین (Solidity)
https://jobvision.ir/jobs/409464/استخدام-برنامه-نویس-بلاکچین-solidity
❎برنامه نویس بلاکچین (Solidity)
https://jobvision.ir/jobs/410540/استخدام-برنامه-نویس-بلاکچین-solidity
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
https://jobvision.ir/jobs/409464/استخدام-برنامه-نویس-بلاکچین-solidity
❎برنامه نویس بلاکچین (Solidity)
https://jobvision.ir/jobs/410540/استخدام-برنامه-نویس-بلاکچین-solidity
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
💊2
💊3
🍓4
Forwarded from FingerCoder | فینگرکدر
#نشست
نشست ۱۸ ام #فینگرکدر
آخرین نشست سال ۱۴۰۱ فینگرکدر
🔹
با ارائه کیانوش عشایریزاده تحت عنوان آشنایی با زبان GO
🟣
رزومه ارائه دهنده :: بیش از یک سال مهندسی نرم
افزار شرکت اسنپ
🔸
آشنایی با زبان گو ، بررسی نقات قوت و ضعف گو ، آشنایی با چالش های توسعه نرم افزار سمت سرور با گو
🟢
🔹زمان : جمعه ۲۶ ام اسفند ماه
🔸مکان : خلدبرین به سمت چهارراه بنفشه ، کوچه ۷ پلاک ۹۳
🆔@fingercoder
جهت ثبت نام اینجا کلیک کنید.
نشست ۱۸ ام #فینگرکدر
آخرین نشست سال ۱۴۰۱ فینگرکدر
🔹
با ارائه کیانوش عشایریزاده تحت عنوان آشنایی با زبان GO
🟣
رزومه ارائه دهنده :: بیش از یک سال مهندسی نرم
افزار شرکت اسنپ
🔸
آشنایی با زبان گو ، بررسی نقات قوت و ضعف گو ، آشنایی با چالش های توسعه نرم افزار سمت سرور با گو
🟢
🔹زمان : جمعه ۲۶ ام اسفند ماه
🔸مکان : خلدبرین به سمت چهارراه بنفشه ، کوچه ۷ پلاک ۹۳
🆔@fingercoder
جهت ثبت نام اینجا کلیک کنید.
👍5🎉1
❎𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗦𝘁𝘆𝗹𝗲𝘀 𝗮𝗻𝗱 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀
𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗱𝗲𝘀𝗶𝗴𝗻 is the process of defining the architecture, components, modules, and interfaces of a software system 𝘁𝗼 𝗺𝗲𝗲𝘁 𝘀𝗽𝗲𝗰𝗶𝗳𝗶𝗲𝗱 𝗿𝗲𝗾𝘂𝗶𝗿𝗲𝗺𝗲𝗻𝘁𝘀. During the software design phase, we create a high-level view of the system, including its structure, behavior, and interactions with other systems. This involves making decisions about the software's internal structure and organization.
The output of the software design process is a 𝘀𝗲𝘁 𝗼𝗳 𝗱𝗲𝘀𝗶𝗴𝗻 𝗱𝗼𝗰𝘂𝗺𝗲𝗻𝘁𝘀 or diagrams that serve as a blueprint for the software development team to follow. By following the software design plan, developers can ensure that the final product meets the requirements of the stakeholders and is of high quality.
Over time we saw some 𝗰𝗼𝗺𝗺𝗼𝗻 𝘀𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗽𝗮𝘁𝘁𝗲𝗿𝗻𝘀 emerge. They are reusable solutions to common design problems. They are often used as a starting point for designing software systems and provide a set of best practices for solving specific architectural problems. They enable us to reduce design complexity, increase system maintainability and reduce development time.
We identified some 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗮𝗹 𝘀𝘁𝘆𝗹𝗲𝘀 𝗮𝗻𝗱 𝗽𝗮𝘁𝘁𝗲𝗿𝗻𝘀 by different categories:
𝟭. 𝗕𝘆 𝗖𝗼𝗻𝗻𝗲𝗰𝘁𝗶𝗼𝗻𝘀. A way how to connect services and apps.
🔹 REST (Representational State Transfer)
🔹 BFF (Backend for Frontend)
🔹 RPC (Remote Procedure Call)
🔹 P2P (Peer to Peer)
🔹 SOA (Service-Oriented Architecture)
𝟮. 𝗕𝘆 𝗖𝗼𝗺𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻. Answer how we compose internal structures.
🔹 Microservices
🔹 Monolith
🔹 Microkernel
🔹 Layers
🔹 Plugins
🔹 Components
🔹 Nano services
𝟯. 𝗕𝘆 𝗘𝘃𝗲𝗻𝘁𝘀. We use it to decouple software components in an event-driven manner.
🔹 Publish/Subscribe
🔹 CQRS (Command Query Responsibility Segregation)
🔹 ES (Event Sourcing)
🔹 Reactive
𝟰. 𝗕𝘆 𝗦𝘁𝗿𝗲𝗮𝗺. How data flow through our system.
🔹 Pipe and Filters
🔹 Message Brokers
🔹 Fast Data
𝟱. 𝗕𝘆 𝗗𝗮𝘁𝗮. For data-oriented systems.
🔹 Data Mesh
🔹 Data Warehouse
🔹 Data Fabric
🔹 Data-centric Business Logic
🔹 Data Lake
𝟲. 𝗕𝘆 𝗣𝘂𝗿𝗽𝗼𝘀𝗲
🔹 API Platform
🔹 Integration Hub
🔹 Developer Portal
🔹 Developer Platform
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗱𝗲𝘀𝗶𝗴𝗻 is the process of defining the architecture, components, modules, and interfaces of a software system 𝘁𝗼 𝗺𝗲𝗲𝘁 𝘀𝗽𝗲𝗰𝗶𝗳𝗶𝗲𝗱 𝗿𝗲𝗾𝘂𝗶𝗿𝗲𝗺𝗲𝗻𝘁𝘀. During the software design phase, we create a high-level view of the system, including its structure, behavior, and interactions with other systems. This involves making decisions about the software's internal structure and organization.
The output of the software design process is a 𝘀𝗲𝘁 𝗼𝗳 𝗱𝗲𝘀𝗶𝗴𝗻 𝗱𝗼𝗰𝘂𝗺𝗲𝗻𝘁𝘀 or diagrams that serve as a blueprint for the software development team to follow. By following the software design plan, developers can ensure that the final product meets the requirements of the stakeholders and is of high quality.
Over time we saw some 𝗰𝗼𝗺𝗺𝗼𝗻 𝘀𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗽𝗮𝘁𝘁𝗲𝗿𝗻𝘀 emerge. They are reusable solutions to common design problems. They are often used as a starting point for designing software systems and provide a set of best practices for solving specific architectural problems. They enable us to reduce design complexity, increase system maintainability and reduce development time.
We identified some 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗮𝗹 𝘀𝘁𝘆𝗹𝗲𝘀 𝗮𝗻𝗱 𝗽𝗮𝘁𝘁𝗲𝗿𝗻𝘀 by different categories:
𝟭. 𝗕𝘆 𝗖𝗼𝗻𝗻𝗲𝗰𝘁𝗶𝗼𝗻𝘀. A way how to connect services and apps.
🔹 REST (Representational State Transfer)
🔹 BFF (Backend for Frontend)
🔹 RPC (Remote Procedure Call)
🔹 P2P (Peer to Peer)
🔹 SOA (Service-Oriented Architecture)
𝟮. 𝗕𝘆 𝗖𝗼𝗺𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻. Answer how we compose internal structures.
🔹 Microservices
🔹 Monolith
🔹 Microkernel
🔹 Layers
🔹 Plugins
🔹 Components
🔹 Nano services
𝟯. 𝗕𝘆 𝗘𝘃𝗲𝗻𝘁𝘀. We use it to decouple software components in an event-driven manner.
🔹 Publish/Subscribe
🔹 CQRS (Command Query Responsibility Segregation)
🔹 ES (Event Sourcing)
🔹 Reactive
𝟰. 𝗕𝘆 𝗦𝘁𝗿𝗲𝗮𝗺. How data flow through our system.
🔹 Pipe and Filters
🔹 Message Brokers
🔹 Fast Data
𝟱. 𝗕𝘆 𝗗𝗮𝘁𝗮. For data-oriented systems.
🔹 Data Mesh
🔹 Data Warehouse
🔹 Data Fabric
🔹 Data-centric Business Logic
🔹 Data Lake
𝟲. 𝗕𝘆 𝗣𝘂𝗿𝗽𝗼𝘀𝗲
🔹 API Platform
🔹 Integration Hub
🔹 Developer Portal
🔹 Developer Platform
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍7
با استفاده از این دوتا سایت بدون محدودیت و رایگان و بدون نیاز به شماره ایران از chatGPT استفاده کنید.
Chat.theb.ai
Freegpt.one
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Chat.theb.ai
Freegpt.one
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍5❤1🔥1🎉1
How discord store trillions of messages
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👇👇👇👇👇
https://t.me/gopher_academy/1608
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👇👇👇👇👇
https://t.me/gopher_academy/1608
👍6
How Discord Stores Trillions Of Messages
The diagram below shows the evolution of message storage at Discord:
MongoDB ➡️ Cassandra ➡️ ScyllaDB
In 2015, the first version of Discord was built on top of a single MongoDB replica. Around Nov 2015, MongoDB stored 100 million messages and the RAM couldn’t hold the data and index any longer. The latency became unpredictable. Message storage needs to be moved to another database. Cassandra was chosen.
In 2017, Discord had 12 Cassandra nodes and stored billions of messages.
At the beginning of 2022, it had 177 nodes with trillions of messages. At this point, latency was unpredictable, and maintenance operations became too expensive to run.
There are several reasons for the issue:
- Cassandra uses the LSM tree for the internal data structure. The reads are more expensive than the writes. There can be many concurrent reads on a server with hundreds of users, resulting in hotspots.
- Maintaining clusters, such as compacting SSTables, impacts performance.
- Garbage collection pauses would cause significant latency spikes
ScyllaDB is Cassandra compatible database written in C++. Discord redesigned its architecture to have a monolithic API, a data service written in Rust, and ScyllaDB-based storage.
The p99 read latency in ScyllaDB is 15ms compared to 40-125ms in Cassandra. The p99 write latency is 5ms compared to 5-70ms in Cassandra.
References:
https://www.scylladb[.]com/product/technology/shard-per-core-architecture/
https://discord[.]com/blog/how-discord-stores-trillions-of-messages
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
The diagram below shows the evolution of message storage at Discord:
MongoDB ➡️ Cassandra ➡️ ScyllaDB
In 2015, the first version of Discord was built on top of a single MongoDB replica. Around Nov 2015, MongoDB stored 100 million messages and the RAM couldn’t hold the data and index any longer. The latency became unpredictable. Message storage needs to be moved to another database. Cassandra was chosen.
In 2017, Discord had 12 Cassandra nodes and stored billions of messages.
At the beginning of 2022, it had 177 nodes with trillions of messages. At this point, latency was unpredictable, and maintenance operations became too expensive to run.
There are several reasons for the issue:
- Cassandra uses the LSM tree for the internal data structure. The reads are more expensive than the writes. There can be many concurrent reads on a server with hundreds of users, resulting in hotspots.
- Maintaining clusters, such as compacting SSTables, impacts performance.
- Garbage collection pauses would cause significant latency spikes
ScyllaDB is Cassandra compatible database written in C++. Discord redesigned its architecture to have a monolithic API, a data service written in Rust, and ScyllaDB-based storage.
The p99 read latency in ScyllaDB is 15ms compared to 40-125ms in Cassandra. The p99 write latency is 5ms compared to 5-70ms in Cassandra.
References:
https://www.scylladb[.]com/product/technology/shard-per-core-architecture/
https://discord[.]com/blog/how-discord-stores-trillions-of-messages
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍3❤1
این ریپو که کار بچههای مایکروسافته chatGPT و یه سری مدلهای بصری دیگه رو به هم وصل میکنه و دریافت و فرستادن عکس رو حین چت کردن با chatgpt ممکن میکنه !
https://github.com/microsoft/visual-chatgpt
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
https://github.com/microsoft/visual-chatgpt
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍1🔥1🐳1
How does the browser render a web page?
1. Parse HTML and generate Document Object Model (DOM) tree.
When the browser receives the HTML data from the server, it immediately parses it and converts it into a DOM tree.
2. Parse CSS and generate CSSOM tree.
3. Combine DOM tree and CSSOM tree to construct the Render Tree.
With the DOM and CSSOM, a rendering tree will be created. The render tree maps all DOM structures except invisible elements. In other words, the render tree is a visual representation of the DOM.
4. Layout.
The content in each element of the rendering tree will be calculated to get the geometric information (position, size), which is called layout.
5. Painting.
After the layout is complete, the rendering tree is transformed into the actual content on the screen. This step is called painting. The browser gets the absolute pixels of the content.
6. Display.
Finally, the browser sends the absolute pixels to the GPU and displays them on the page.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
1. Parse HTML and generate Document Object Model (DOM) tree.
When the browser receives the HTML data from the server, it immediately parses it and converts it into a DOM tree.
2. Parse CSS and generate CSSOM tree.
3. Combine DOM tree and CSSOM tree to construct the Render Tree.
With the DOM and CSSOM, a rendering tree will be created. The render tree maps all DOM structures except invisible elements. In other words, the render tree is a visual representation of the DOM.
4. Layout.
The content in each element of the rendering tree will be calculated to get the geometric information (position, size), which is called layout.
5. Painting.
After the layout is complete, the rendering tree is transformed into the actual content on the screen. This step is called painting. The browser gets the absolute pixels of the content.
6. Display.
Finally, the browser sends the absolute pixels to the GPU and displays them on the page.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❤2🐳2👍1