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
Ko'proq ko'rsatish160 300
Obunachilar
+5724 soatlar
+3847 kunlar
+2 49630 kunlar
Postlar arxiv
00:03
Video unavailableShow in Telegram
How do companies ship code to production?
Step 1: The process starts with a product owner creating user stories based on requirements.
Step 2: The dev team picks up the user stories from the backlog and puts them into a sprint for a two-week dev cycle.
Step 3: The developers commit source code into the code repository Git.
Step 4: A build is triggered in Jenkins. The source code must pass unit tests, code coverage threshold, and gates in SonarQube.
Step 5: Once the build is successful, the build is stored in artifactory. Then the build is deployed into the dev environment.
Step 6: There might be multiple dev teams working on different features. The features need to be tested independently, so they are deployed to QA1 and QA2.
Step 7: The QA team picks up the new QA environments and performs QA testing, regression testing, and performance testing.
Steps 8: Once the QA builds pass the QA teamโs verification, they are deployed to the UAT environment.
Step 9: If the UAT testing is successful, the builds become release candidates and will be deployed to the production environment on schedule.
Step 10: SRE (Site Reliability Engineering) team is responsible for prod monitoring.
ssstwitter.com_1699209592938.mp41.67 KB
๐ 80๐ 1
Photo unavailableShow in Telegram
โ Message was hidden by channel owner
๐ 66๐ 19
00:07
Video unavailableShow in Telegram
The 12 Factor App is a methodology for building scalable and maintainable web applications. It provides a set of guidelines for developing modern, cloud-native, and containerized applications. Here are the 12 factors explained in bullet points:
1. Codebase:
- One codebase per application.
- Use version control to manage code changes.
2. Dependencies:
- Explicitly declare and isolate dependencies.
- Avoid relying on system-wide packages.
3. Config:
- Store configuration in environment variables.
- Keep configuration separate from code.
4. Backing Services:
- Treat external services (databases, caches, etc.) as attached resources.
- Connect to them via URLs or environment variables.
5. Build, Release, Run:
- Strictly separate the build, release, and run stages of the application.
- Use consistent and repeatable build processes.
6. Processes:
- Execute the application as stateless processes.
- Avoid storing session data locally; use external services.
7. Port Binding:
- Export services via a port and communicate over the network.
- Web applications should bind to a port defined by the environment.
8. Concurrency:
- Scale out via the process model.
- Utilize multiple stateless processes to handle requests.
9. Disposability:
- Maximize robustness with fast startup and graceful shutdown.
- Terminate unneeded processes without impact.
10. Dev/Prod Parity:
- Keep development, staging, and production environments as similar as possible.
- Use the same dependencies and configuration.
11. Logs:
- Treat logs as event streams.
- Write application logs to standard output and allow log aggregation.
12. Admin Processes:
- Run administrative tasks as one-off processes.
- Use the same codebase and environment for administrative tasks.
Adhering to these 12 factors helps create applications that are easier to develop, deploy, and maintain, making them well-suited for cloud-native and containerized environments.
ssstwitter.com_1699209526465.mp40.96 KB
๐ 82
00:02
Video unavailableShow in Telegram
In the world of software development and system integration, the methods by which one system communicates with another can have a significant impact on the efficiency and responsiveness of the overall process. Two common approaches to this communication are polling and webhooks.
In the context of software, webhooks are HTTP callbacks that allow one system to notify another system of an event as soon as it happens. In the VCS and CI/CD scenario:
1. The VCS, such as GitHub, Bitbucket, or GitLab, has a webhook feature.
2. Whenever a code push occurs, the VCS sends an immediate HTTP POST request to the CI/CD server, saying, "Hey, new code just arrived!"
3. The CI/CD server responds instantly, starting the build and deployment process without wasting time checking repeatedly.
Here is a simplified example
๐ Polling:
Imagine you're waiting for an important text message from a friend. To check if the message has arrived, you periodically take out your phone, unlock it, and open the messaging app to see if there's a new message. You keep doing this every few minutes until you finally see the message. This process is similar to polling in the context of software systems.
In software, polling is a method where a system (e.g., a Continuous Integration/Continuous Deployment server) repeatedly checks another system (e.g., a Version Control System) for updates. In your VCS and CI/CD scenario, it works like this:
1. CI/CD server regularly checks the VCS repository for code changes.
2. It repeatedly asks, "Is there new code? Is there new code?"
3. When it detects new code, it triggers the build and deployment process.
๐ฃ Webhooks:
Now, imagine you have a special notification setup with your friend. Instead of repeatedly checking your phone, your friend promises to send you a message as soon as anything important happens. So, you can put your phone aside and carry on with other tasks, only looking at it when you receive a notification. This is analogous to webhooks.
ssstwitter.com_1699209288978.mp40.58 KB
๐ 109
Photo unavailableShow in Telegram
12 Design Patterns You Must Know
1. Factory Pattern ๐ญ
Imagine a factory that produces different products. Similarly, this pattern creates objects without specifying their exact class, making code flexible and extendable. ๐งฉ
2. Observer Pattern ๐
Like subscribing to updates! Objects (observers) register to watch changes in a subject. When the subject changes, observers are notified automatically. ๐ก๐
3. Singleton Pattern ๐
Ensures a class has only one instance globally accessible. Useful for managing shared resources like databases. ๐๐
4. Builder Pattern ๐
Building complex objects step by step. Think of it as assembling Lego bricks to create something intricate without the mess! ๐งฑ๐
5. Adapter Pattern ๐
Converts the interface of one class into another interface clients expect. Makes incompatible components work together. ๐๐
6. Decorator Pattern ๐
Like adding toppings to your pizza! Dynamically adds responsibilities to objects without changing their code. A flexible alternative to subclassing. ๐โจ
7. Proxy Pattern ๐ถ
Controls access to an object, acting as a stand-in with additional functionality, like lazy loading. ๐๐
8. Strategy Pattern ๐ฏ
Switching strategies seamlessly! Allows selecting algorithms during runtime. Useful when you want to provide multiple ways to accomplish a task. ๐ฎ๐
9. Command Pattern โจ๏ธ
Encapsulates requests as objects, allowing parameterization of clients with different requests and queuing of requests. Think of it as a to-do list for your program. ๐๐
10. Template Pattern ๐
Standardized process steps! Defines the structure of an algorithm, letting subclasses override specific steps. Ideal for reusable workflows. ๐๐
11. Iterator Pattern ๐
Tour guide for collections! Provides a way to access elements of a collection without exposing its underlying representation. ๐ถโโ๏ธ๐บ
12. State Pattern ๐ฆ
Like a traffic light! Allows an object to change its behavior when its internal state changes. Keeps your code organized as states pile up. ๐ฅ๐
๐ 107๐ 4
Photo unavailableShow in Telegram
5 books for Software Engineers
1. Clean Architecture (Martin)
2. Building Microservices (Newman)
3. Unit Testing (Khorikov)
4. Domain Driven Design (Evans)
5. Head First Design Patterns (Freeman & Robson)
What is your favourite? Comment bellow.
๐ 185๐ 7
00:03
Video unavailableShow in Telegram
6 API Architectural designs You Must Know
1. REST ๐
Representational State Transfer - REST is like a classic library where you request specific books and receive them as they are. It's simple and widely used for web APIs, like ordering a la carte from a menu ๐ฝ.
2. GraphQL ๐
GraphQL is like a customizable buffet ๐ด where you ask for exactly what you want and get a tailored plate. It allows clients to request only the data they need, reducing over-fetching.
3. SOAP ๐งผ
SOAP (Simple Object Access Protocol) is like sending a letter ๐ with detailed instructions, complete with a table of contents. It's more structured but can be heavier than REST or GraphQL.
4. gRPC ๐:
gRPC is like a high-speed train ๐ for communication between services. It uses Protocol Buffers for efficient data exchange and supports streaming and bidirectional communication.
5. WebSockets ๐๐ฌ
WebSockets are like real-time phone calls โ๏ธ for the web. They enable two-way communication, perfect for chat apps and live updates.
6. MQTT ๐ก
MQTT (Message Queuing Telemetry Transport) is like a radio broadcast ๐ป, designed for low-bandwidth, high-latency, or unreliable networks. Ideal for IoT devices and sensor data.
ssstwitter.com_1699208733143.mp40.88 KB
๐ 138
00:03
Video unavailableShow in Telegram
6 Database Types You Must Know
1. Relational Database ๐ผ
- Data Model: Organizes data into tables with rows and columns.
- Examples: MySQL, PostgreSQL, Oracle, SQL Server.
- Key Features: ACID compliance, strong data consistency, structured data storage, support for SQL queries, well-suited for complex transactions and reporting.
2. Document Database ๐
- Data Model: Stores data in semi-structured or JSON-like documents.
- Examples: MongoDB, CouchDB, Firebase Firestore.
- Key Features: Flexible schema, horizontal scalability, support for semi-structured data, well-suited for content management systems and real-time applications.
3. In-Memory Database ๐
- Data Model: Stores data entirely in the system's main memory (RAM).
- Examples: Redis, Memcached, Apache Ignite.
- Key Features: Ultra-fast data retrieval, low-latency, suitable for caching, session management, and real-time analytics.
4. Graph Database ๐
- Data Model: Represents data as nodes and edges to model relationships.
- Examples: Neo4j, Amazon Neptune, ArangoDB.
- Key Features: Efficient querying of complex relationships, graph traversal, suitable for social networks, recommendation systems, and fraud detection.
5. Time-Series Database ๐
- Data Model: Optimized for time-ordered data points, like sensor readings or log files.
- Examples: InfluxDB, Prometheus, TimescaleDB.
- Key Features: Efficient storage and retrieval of time-series data, aggregations, retention policies, ideal for monitoring, IoT, and event data.
6. Spatial Database ๐
- Data Model: Designed for storing and querying spatial or geographic data.
- Examples: PostGIS (extension for PostgreSQL), MongoDB Geospatial, Microsoft SQL Server Spatial.
- Key Features: Geospatial indexing, support for spatial data types (points, polygons, lines), useful for location-based services, GIS (Geographic Information Systems), and map applications.
ssstwitter.com_1699208627825.mp40.73 KB
๐ 179๐ 1
00:13
Video unavailableShow in Telegram
HTTP status codes are three-digit numbers that are returned by a web server in response to a client's request made to the server via HTTP (Hypertext Transfer Protocol).
These status codes provide information about the outcome of the request, indicating whether it was successful, encountered an error, or needs further action. They are an essential part of the HTTP protocol, helping both clients (e.g., web browsers) and servers communicate effectively.
ssstwitter.com_1699208465113.mp45.01 KB
๐ 118๐ 7
00:04
Video unavailableShow in Telegram
๐ต REST vs ๐ฃ GraphQL
๐ต REST:
๐ Stands for Representational State Transfer
๐ Well-established and widely adopted
๐ Uses predefined endpoints for data retrieval
๐ Great for simple, stateless operations
๐ฃ GraphQL:
๐ A modern query language for APIs
๐ Allows clients to request exactly what they need
๐ Reduces over-fetching and under-fetching of data
๐ Empowers front-end developers with data control
Which one is right for your project? ๐ค
Use ๐ต REST if:
Simplicity and Convention: REST is straightforward and relies on a set of conventions. If you have a simple API with well-defined endpoints and actions, REST might be a good choice.
Caching: RESTful APIs are typically easier to cache because the URLs for resources remain consistent. This can lead to better performance in scenarios where caching is crucial.
Existing Ecosystem: If you're working with legacy systems or integrating with third-party APIs that follow REST principles, it may make sense to stick with REST for consistency.
Use ๐ฃ GraphQL if:
Flexibility: GraphQL allows clients to request exactly the data they need, which can lead to reduced over-fetching and under-fetching of data. This flexibility is especially beneficial for complex applications with varying data requirements.
Efficiency: With GraphQL, you can often make a single request to fetch related
data, reducing the number of API calls required compared to REST, which might require multiple requests to different endpoints.
Real-time Data: If you need real-time updates and subscriptions, GraphQL's ability to provide live data can be a significant advantage.
Team Expertise: If your development team is comfortable with GraphQL and prefers its query language, it might lead to faster development and easier maintenance.
ssstwitter.com_1699208141105.mp40.76 KB
๐ 104
Photo unavailableShow in Telegram
Prod Software Release
1. Planning:
- Identify the goals and features for the upcoming release.
- Prioritize tasks based on importance and dependencies.
- Define timelines and allocate resources accordingly.
2. Development:
- Programmers start coding based on the planned features.
- Regular code reviews and collaboration to maintain code quality.
- Version control systems track changes for better collaboration.
3. Building Artifact:
- Compile the source code into executable or deployable artifacts.
- Generate documentation and other necessary files.
- Automation tools can be used to streamline this process.
4. Testing:
- Conduct various levels of testing (unit, integration, system, etc.).
- Identify and fix bugs or issues.
- Ensure compatibility with different platforms and configurations.
5. Release:
- Once testing is successful, prepare for the release.
- Generate release notes documenting changes and updates.
- Coordinate with other teams for a smooth rollout.
Environments:
- Set up different environments for development, testing, and production.
- Ensure consistency across environments to minimize deployment issues.
- Monitor and troubleshoot any discrepancies between environments.
๐ 83
Photo unavailableShow in Telegram
โ Message was hidden by channel owner
๐ 33๐ 3
Photo unavailableShow in Telegram
Is AI making a real impact in the way you work or is it all hype? Stack Overflow recaps some of the top insights from their 2023 Developer Survey.๐ก
Explore what developers are thinking about the benefits, accuracy, and use cases for GenAI here.
๐ 34
Photo unavailableShow in Telegram
Angular 17 and the new angular.dev site has been officially released.
Here's a summary of what's new.
๐ 46
โ Message was hidden by channel owner
๐ 44๐ 36
00:03
Video unavailableShow in Telegram
Top 12 Tips for API Security:
- Use HTTPS
- Use OAuth2
- Use WebAuthn
- Use Leveled API Keys
- Authorization
- Rate Limiting
- API Versioning
- Whitelisting
- Check OWASP API Security Risks
- Use API Gateway
- Error Handling
- Input Validation
ssstwitter.com_1699207959965.mp41.42 KB
๐ 119
00:03
Video unavailableShow in Telegram
Docker Architecture and Components
1. Docker Daemon (
dockerd
):
- ๐ฅ๐ผ๐น๐ฒ: Manages Docker containers on a system.
- ๐ฅ๐ฒ๐๐ฝ๐ผ๐ป๐๐ถ๐ฏ๐ถ๐น๐ถ๐๐ถ๐ฒ๐: Building, running, and managing containers.
2. Docker Client (docker
):
- ๐ฅ๐ผ๐น๐ฒ: Interface through which users interact with Docker.
- ๐๐ผ๐บ๐บ๐ฎ๐ป๐ฑ๐: build, pull, run, etc.
3. Docker Images:
- ๐๐ฒ๐ณ๐ถ๐ป๐ถ๐๐ถ๐ผ๐ป: Read-only templates used to create containers.
- ๐ฅ๐ผ๐น๐ฒ: Serve as the basis for creating containers.
- ๐ฅ๐ฒ๐ด๐ถ๐๐๐ฟ๐/๐๐๐ฏ: A storage and distribution system for Docker images.
4. Docker Containers:
- ๐๐ฒ๐ณ๐ถ๐ป๐ถ๐๐ถ๐ผ๐ป: Runnable instances of Docker images.
- ๐ฅ๐ผ๐น๐ฒ: Encapsulate the application and its environment.
5. Docker Registry:
- ๐ฅ๐ผ๐น๐ฒ: Store Docker images.
- ๐ฃ๐๐ฏ๐น๐ถ๐ฐ ๐ฅ๐ฒ๐ด๐ถ๐๐๐ฟ๐: Docker Hub.
- ๐ฃ๐ฟ๐ถ๐๐ฎ๐๐ฒ ๐ฅ๐ฒ๐ด๐ถ๐๐๐ฟ๐: Can be hosted by users.ssstwitter.com_1699207373754.mp41.40 KB
๐ 150๐ 4
Which programming languages do you use/know?Anonymous voting
- Javascript
- Python
- Go
- Java
- Kotlin
- C#
- Swift
- Ruby
- C/C++
- Don't know any / want to study
๐ 333๐ 17
00:04
Video unavailableShow in Telegram
What is Kafka?
Kafka is an open-source, distributed event streaming platform that serves as the central nervous system for data in modern enterprises. It's designed to handle real-time data feeds, process them efficiently, and make them available for a variety of applications in real-time.
๐ Use Cases:
- Real-time Analytics
- Log Aggregation
- Event Sourcing
- Data Integration
- Machine Learning Pipelines
ssstwitter.com_1694281977725.mp40.53 KB
๐ 381๐ 4
00:03
Video unavailableShow in Telegram
Wondering how C++, Java, Python Work?
๐ต C++
C++ is like the superhero of programming languages. It's a compiled language, meaning your code is transformed into machine code that your computer can understand before it runs. This compilation process is crucial for efficiency and performance. C++ gives you precise control over memory and hardware, making it a top choice for systems programming and game development. It's like wielding a finely-tuned instrument in the world of code! ๐ธ๐ป
๐ด Java
Java, on the other hand, is the coffee of programming languages. It's a compiled language too but with a twist. Java code is compiled into bytecode, which runs on the Java Virtual Machine (JVM). This bytecode can run on any platform with a compatible JVM, making Java highly portable and platform-independent. It's a bit like sending your code to a virtual coffee machine that serves it up just the way you like it on any OS! โ๏ธ๐ผ
๐ Python
Python is the friendly neighborhood programming language. It's an interpreted language, which means there's no compilation step. Python code is executed line by line by the Python interpreter. This simplicity makes it great for beginners and rapid development. Python's extensive library ecosystem and easy syntax make it feel like you're scripting magic spells in a magical world! ๐ช๐
In the end, the choice of programming language depends on your project's needs and your personal preferences. Each language has its strengths and weaknesses, but they all share the goal of bringing your ideas to life through code. ๐๐ก
So, whether you're crafting the perfect C++ masterpiece, brewing up Java applications, or scripting Python magic, remember that programming languages are the tools that empower us to create amazing things in the digital realm. Embrace the language that speaks to you and keep coding! ๐ป๐
ssstwitter.com_1694281610553 (1).mp40.73 KB
๐ 465๐ 6
00:09
Video unavailableShow in Telegram
๐๐ผ๐ ๐๐ผ ๐๐ฒ๐๐ ๐๐ผ๐๐ฟ ๐๐ฃ๐๐ ๐ฑ๐ถ๐ฟ๐ฒ๐ฐ๐๐น๐ ๐ณ๐ฟ๐ผ๐บ ๐ฉ๐ถ๐๐๐ฎ๐น ๐ฆ๐๐๐ฑ๐ถ๐ผ ๐๐ผ๐ฑ๐ฒ?
You can immediately do this from your Visual Studio Code, as Postman just released a VS Code extension that integrates API building and testing into your code editor.
What you can do with the extension:
๐น๐ฆ๐ฒ๐ป๐ฑ (๐บ๐๐น๐๐ถ๐ฝ๐ฟ๐ผ๐๐ผ๐ฐ๐ผ๐น) ๐ฟ๐ฒ๐พ๐๐ฒ๐๐๐
๐น๐ฆ๐ฒ๐ป๐ฑ ๐ฟ๐ฒ๐พ๐๐ฒ๐๐๐ ๐ณ๐ฟ๐ผ๐บ ๐๐ผ๐๐ฟ ๐ต๐ถ๐๐๐ผ๐ฟ๐
๐น๐จ๐๐ฒ ๐ฐ๐ผ๐น๐น๐ฒ๐ฐ๐๐ถ๐ผ๐ป๐
๐น๐จ๐๐ฒ ๐ฑ๐ถ๐ณ๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ ๐ฒ๐ป๐๐ถ๐ฟ๐ผ๐ป๐บ๐ฒ๐ป๐๐
๐น๐ฉ๐ถ๐ฒ๐ ๐ฎ๐ป๐ฑ ๐ฒ๐ฑ๐ถ๐ ๐ฐ๐ผ๐ผ๐ธ๐ถ๐ฒ๐
โก๏ธCheck it here
ssstwitter.com_1694281221717.mp40.37 KB
๐ 217๐ 2
โ Message was hidden by channel owner
Photo unavailableShow in Telegram
80+ Jupyter Notebook tutorials on image classification, object detection and image segmentation in various domains
๐ Agriculture and Food
๐ Medical and Healthcare
๐ Satellite
๐ Security and Surveillance
๐ ADAS and Self Driving Cars
๐ Retail and E-Commerce
๐ Wildlife
Classification library
https://github.com/Tessellate-Imaging/monk_v1
Notebooks - https://github.com/Tessellate-Imaging/monk_v1/tree/master/study_roadmaps/4_image_classification_zoo
Detection and Segmentation Library
https://github.com/Tessellate-Imaging/
Monk_Object_Detection
Notebooks: https://github.com/Tessellate-Imaging/Monk_Object_Detection/tree/master/application_model_zoo
๐ 295๐ 16
Photo unavailableShow in Telegram
๐ญ GRES: Generalized Referring Expression Segmentation
New benchmark (GRES), which extends the classic RES to allow expressions to refer to an arbitrary number of target objects.
๐ฅ Github: https://github.com/henghuiding/ReLA
โฉ Paper: https://arxiv.org/abs/2306.00968
๐ Project: https://henghuiding.github.io/GRES/
๐ New dataset: https://github.com/henghuiding/gRefCOCO
๐ @computer_science_and_programming
๐ 125
Drag Your GAN: Interactive Point-based Manipulation on the Generative Image Manifold
Paper:
https://arxiv.org/abs/2305.10973
Github:
https://github.com/XingangPan/DragGAN
Project page:
https://vcai.mpi-inf.mpg.de/projects/DragGAN/
๐ @computer_science_and_programming
DragGAN.gif20.64 MB
๐ 173๐ 10
00:20
Video unavailableShow in Telegram
Test of Time: Instilling Video-Language Models with a Sense of Time
GPT-5 will likely have video abilities, but will it have a sense of time? Here is answer to this question in #CVPR2023 paper by student of University of Amsterdam to learn how to instil time into video-language foundation models.
Paper:
https://arxiv.org/abs/2301.02074
Code:
https://github.com/bpiyush/TestOfTime
Project Page:
https://bpiyush.github.io/testoftime-website/
๐ @computer_science_and_programming
0.12 KB
๐ 176๐ 7
00:24
Video unavailableShow in Telegram
ViperGPT: Visual Inference via Python Execution for Reasoning
ViperGPT, a framework that leverages code-generation models to compose vision-and-language models into subroutines to produce a result for any query.
Github:
https://github.com/cvlab-columbia/viper
Paper:
https://arxiv.org/pdf/2303.08128.pdf
Project:
https://paperswithcode.com/dataset/beat
๐@computer_science_and_programming
ml.mp413.86 MB
๐ 216๐ 7
Multivariate Probabilistic Time Series Forecasting with Informer
Efficient transformer-based model for LSTF.
Method introduces a Probabilistic Attention mechanism to select the โactiveโ queries rather than the โlazyโ queries and provides a sparse Transformer thus mitigating the quadratic compute and memory requirements of vanilla attention.
๐คHugging face:
https://huggingface.co/blog/informer
โฉ Paper:
https://huggingface.co/docs/transformers/main/en/model_doc/informer
โญ๏ธ Colab:
https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/multivariate_informer.ipynb
๐จ Dataset:
https://huggingface.co/docs/datasets/v2.7.0/en/package_reference/main_classes#datasets.Dataset.set_transform
๐@computer_science_and_programming
๐ 172๐ 8
Efficient Teacher: Semi-Supervised Object Detection for YOLOv5
โ
Efficient Teacher introduces semi-supervised object detection into practical applications, enabling users to obtain a strong generalization capability with only a small amount of labeled data and large amount of unlabeled data.
โ
Efficient Teacher provides category and custom uniform sampling, which can quickly improve the network performance in actual business scenarios.
Paper:
https://arxiv.org/abs/2302.07577
Github:
https://github.com/AlibabaResearch/efficientteacher
๐@computer_science_and_programming
๐ 170๐ 2