Maicon De La Costa

6.9K posts

Maicon De La Costa banner
Maicon De La Costa

Maicon De La Costa

@maiconio

Senior Software Engineer at @Grafana Labs. Opinions are my own.

chasing the sun 参加日 Nisan 2010
451 フォロー中189 フォロワー
Maicon De La Costa がリツイート
Nikki Siapno
Nikki Siapno@NikkiSiapno·
Roadmap for learning Python. Python is one of the most versatile programming languages today. From web development and automation to data science and machine learning, it almost feels like Python is everywhere. Whether you're automating repetitive tasks, building apps or ML models, mastering Python's fundamentals is essential. I received a copy of Modern Python Cookbook by Steven Lott. My thoughts: It’s an excellent resource that offers clear, practical explanations, challenges and examples. Steven has decades of experience in Python and writing Python books, and that translates into a resource that is easy to absorb and level up your Python skills quickly. If you want to learn Python or level up your Python skills, I highly recommend that you consider this book. Grab your copy here: drp.li/python-book-pa… Now, let’s walk through the key areas you should focus on to become proficient with Python. This roadmap is a logical progression that builds upon itself. In saying that, there can be overlap between stages, and at times, things can be learned concurrently rather than sequentially if you feel that suits you better. 1) Data structures Data structures are the building blocks of software. Python’s built-in data structures like lists, dictionaries, sets, and tuples. Knowing when to use each one ensures optimal performance for specific tasks. 2) Functions Learn to define functions with parameters, type hints, and recursion. This will make your code more reusable and maintainable. 3) Control flow Understand conditional statements (if, else, elif) and loops. These are the building blocks of logic in your code. 4) Error handling Handle runtime errors gracefully using try, except, and finally blocks. This ensures your program can handle unexpected conditions without crashing. 5) Object-oriented programming (OOP) Dive into OOP concepts such as classes, inheritance, and encapsulation to structure your code in a modular and maintainable way. 6) Testing, logging, and debugging Writing tests, logging events, and debugging are essential to maintaining high-quality code. 7) Dependencies management Learn to manage dependencies and versions using tools like pip-tools. This is essential for maintaining consistent environments. 8) Concurrency and parallelism Explore asyncio, multithreading, and multiprocessing to handle tasks efficiently and boost performance. 9) Design patterns Implement design patterns to create modular, scalable, and maintainable code that aligns with best practices. Following this roadmap will help you evolve from writing simple scripts to building robust, efficient applications. Whether it’s handling errors gracefully, managing dependencies, or mastering concurrency, these topics will elevate your Python skills to the next level.
GIF
English
21
371
1.7K
107.8K
Frimpong
Frimpong@frimpong177·
Guess the player who scored this goal. $25 for 5 random winners👍
English
31.8K
1.2K
28.6K
10.1M
Maicon De La Costa がリツイート
ₕₐₘₚₜₒₙ
ₕₐₘₚₜₒₙ@hamptonism·
Multi Layer Perceptron by hand.
GIF
English
2
169
1.1K
48K
Maicon De La Costa がリツイート
Tom Yeh
Tom Yeh@ProfTomYeh·
Anna Rahn's video demonstration of Multi-Layer Perceptron (MLP) by hand ✍️ Anna made this short video for my computer vision course in the spring semester. Together with the spreadsheet exercise I posted yesterday, I hope they help more people understand deep neural networks!
English
21
375
2.1K
120.4K
Maicon De La Costa がリツイート
Ashish Pratap Singh
Ashish Pratap Singh@ashishps_1·
10 𝐈𝐦𝐩𝐨𝐫𝐭𝐚𝐧𝐭 𝐆𝐫𝐚𝐩𝐡 𝐀𝐥𝐠𝐨𝐫𝐢𝐭𝐡𝐦𝐬 𝐟𝐨𝐫 𝐂𝐨𝐝𝐢𝐧𝐠 𝐈𝐧𝐭𝐞𝐫𝐯𝐢𝐞𝐰𝐬: 1. 𝐃𝐞𝐩𝐭𝐡 𝐅𝐢𝐫𝐬𝐭 𝐒𝐞𝐚𝐫𝐜𝐡 (𝐃𝐅𝐒): Explores as far as possible along each branch of a node before backtracking. Useful to explore all possible paths, detecting cycles, and finding connected components. 2. 𝐁𝐫𝐞𝐚𝐝𝐭𝐡 𝐅𝐢𝐫𝐬𝐭 𝐒𝐞𝐚𝐫𝐜𝐡 (𝐁𝐅𝐒): Explores all neighbors at the present depth before moving to nodes at the next depth level. Perfect for finding the shortest path in unweighted graphs and solving problems that involve level-order traversal. 3. 𝐓𝐨𝐩𝐨𝐥𝐨𝐠𝐢𝐜𝐚𝐥 𝐒𝐨𝐫𝐭: Orders vertices in a directed acyclic graph (DAG) such that for every edge (u -> v), u comes before v. Useful for scheduling problems like course prerequisites or build orders. 4. 𝐂𝐲𝐜𝐥𝐞 𝐃𝐞𝐭𝐞𝐜𝐭𝐢𝐨𝐧: Uses DFS/BFS to identify cycles in a graph. Useful to avoid infinite loops and detecting deadlocks. 5. 𝐔𝐧𝐢𝐨𝐧 𝐅𝐢𝐧𝐝 (𝐃𝐢𝐬𝐣𝐨𝐢𝐧𝐭 𝐒𝐞𝐭): Tracks a set of elements partitioned into disjoint subsets. Useful for detecting cycles in undirected graphs and implementing other graph algorithms like Kruskal’s MST algorithm. 6. 𝐒𝐭𝐫𝐨𝐧𝐠𝐥𝐲 𝐂𝐨𝐧𝐧𝐞𝐜𝐭𝐞𝐝 𝐂𝐨𝐦𝐩𝐨𝐧𝐞𝐧𝐭𝐬: Used to identify subgraphs in a directed graph where every vertex is reachable from every other vertex. Tarjan's and Kosaraju's are two popular algorithms to find strongly connected components. 7. 𝐌𝐢𝐧𝐢𝐦𝐮𝐦 𝐒𝐩𝐚𝐧𝐧𝐢𝐧𝐠 𝐓𝐫𝐞𝐞 (𝐌𝐒𝐓): Used to find a subset of edges that connects all vertices with minimum total edge weight. Prim's and Kruskal's are two well-known algorithms for finding MST. 8. 𝐒𝐢𝐧𝐠𝐥𝐞 𝐒𝐨𝐮𝐫𝐜𝐞 𝐒𝐡𝐨𝐫𝐭𝐞𝐬𝐭 𝐏𝐚𝐭𝐡: Used to find the shortest path with minimum weight from one vertex to other vertices in a graph using algorithms like Dijkstra’s and Bellman-Ford. Use Dijkstra's for non-negative weights and Bellman-Ford for graphs with negative weights. 9. 𝐁𝐢𝐩𝐚𝐫𝐭𝐢𝐭𝐞 𝐆𝐫𝐚𝐩𝐡: Checks if a graph can be divided into two sets of vertices with no edges within the same set. Useful to solve problems that involve two-coloring, matching, and partitioning. 10. 𝐅𝐥𝐨𝐨𝐝 𝐅𝐢𝐥𝐥: Explores and colors connected cells in a 2D array. Useful to solve grid-based problems like finding the number of islands. ♻️ Repost to help others in your network. Join 31,201+ readers of our free newsletter: blog.algomaster.io
Ashish Pratap Singh tweet media
English
2
100
604
31.6K
Maicon De La Costa がリツイート
Ashish Pratap Singh
Ashish Pratap Singh@ashishps_1·
25 Concepts You Must Know for System Design Interviews: 1. Scalability: blog.algomaster.io/p/scalability 2. Availability: blog.algomaster.io/p/system-desig… 3. CAP Theorem: blog.algomaster.io/p/cap-theorem-… 4. Caching: blog.algomaster.io/p/4d7d6f8a-680… 5. Load Balancing: blog.algomaster.io/p/load-balanci… 6. Rate Limiting: blog.algomaster.io/p/rate-limitin… 7. API Design: abdulrwahab.medium.com/api-architectu… 8. ACID Transactions: blog.algomaster.io/p/ecae03ba-193… 9. Consistent Hashing: highscalability.com/consistent-has… 10. Database Types: blog.algomaster.io/p/15-types-of-… 11. Database Indexes: blog.algomaster.io/p/a-detailed-g… 12. Database Sharding: blog.algomaster.io/p/what-is-data… 13. Message Queues: blog.algomaster.io/p/message-queu… 14. WebSockets: blog.algomaster.io/p/ba0b6155-21a… 15. Proxy Servers: fortinet.com/resources/cybe… 16. Heartbeats: blog.algomaster.io/p/heartbeats-i… 17. Content Delivery Network (CDN): blog.algomaster.io/p/27c62e07-f25… 18. Consensus Algorithms: @sourabhatta1819/consensus-in-distributed-system-ac79f8ba2b8c" target="_blank" rel="nofollow noopener">medium.com/@sourabhatta18… 19. Gossip Protocol: highscalability.com/blog/2023/7/16… 20. Service Discovery: blog.algomaster.io/p/0204da93-f0e… 21. Microservices Architecture: medium.com/hashmapinc/the… 22. Event Driven Architecture: confluent.io/learn/event-dr… 23. Peer-To-Peer Architecture: spiceworks.com/tech/networkin… 24. Batch vs Stream Processing: blog.algomaster.io/p/d9442268-03d… 25. Synchronous vs Asynchronous Communications: blog.algomaster.io/p/aec1cebf-606… ♻️ Repost to help others in your network. If you want to master DSA and System Design, join my free newsletter: blog.algomaster.io
Ashish Pratap Singh tweet media
English
3
289
1.2K
52.5K
Maicon De La Costa がリツイート
Alex Xu
Alex Xu@alexxubyte·
Things Every Developer Should Know: Concurrency is 𝐍𝐎𝐓 parallelism.
Alex Xu tweet media
English
12
263
1.3K
106.5K
Maicon De La Costa がリツイート
Alex Xu
Alex Xu@alexxubyte·
8 Tips for Efficient API Design
Alex Xu tweet media
English
8
395
2K
267.2K
Maicon De La Costa がリツイート
Black Lodge Cult
Black Lodge Cult@BlackLCult·
David Lynch's "WILD AT HEART" (1990)
Black Lodge Cult tweet mediaBlack Lodge Cult tweet mediaBlack Lodge Cult tweet mediaBlack Lodge Cult tweet media
English
12
106
898
37.7K
Maicon De La Costa がリツイート
Nikki Siapno
Nikki Siapno@NikkiSiapno·
What is clean architecture, and how does it work? A common pitfall in software development is the struggle with inadequate architectural design. This often results in systems that are challenging to understand, maintain and evolve. Clean architecture, introduced by Uncle Bob (Robert C. Martin), addresses these issues head-on. It offers a prescriptive approach to creating systems with interchangeable components, focusing on maintainability, flexibility, and encapsulation of business logic. Core layers of clean architecture: 1) Entities layer: Centralizes enterprise-wide business rules. 2) Use cases layer: Encapsulates and implements application-specific business rules. 3) Interface adapters layer: Bridges internal logic and external interfaces. 4) Frameworks and drivers layer: Manages interactions with external technologies. The essence of Clean Architecture lies in its domain-centricity, placing business logic at the forefront. By enforcing a separation of concerns and a dependency rule, it ensures that changes in frameworks and interfaces have minimal impact on the core business logic. Benefits: 🟢 Flexibility: Adapts to evolving business needs, aided by the separation of concerns ensuring that changes in one part do not affect others. 🟢 Testability: Facilitated by decoupled components, stemming from the clear delineation of responsibilities. 🟢 Maintainability: Enhanced by the clear boundaries between layers, making the system easier to understand, sustain, & evolve. Best suited for: 🔸 Complex systems: Provides a scalable and organized structure that can handle complex integrations & business processes while maintaining system integrity. 🔸 Evolving technologies: Offers the agility to adapt to and incorporate technological advancements, ensuring longevity & relevance in dynamic tech environments. Challenges: 🔴 Initial complexity: The very layers that provide structure can introduce complexity, especially in smaller projects where such rigorous segregation might be overkill. 🔴 Design demands: Requires comprehensive upfront planning and architectural foresight, making it a substantial initial investment in terms of time & resources. Clean architecture isn't a silver bullet for every software challenge, but when it aligns, it offers a structured, scalable framework for building software systems. Its focus on business-centric design makes it a powerful approach for creating software that remains robust over time. ~~ Thank you to our partner Kickresume who keeps our content free to the community. Writing a good resume and cover letter can be tough. Kickresume’s resume and cover letter writer make it a lot easier. Check it out: drp.li/kickresume-z9lt
Nikki Siapno tweet media
English
8
95
442
30.6K
Maicon De La Costa がリツイート
Alex Xu
Alex Xu@alexxubyte·
A Cheat Sheet for Designing Fault-Tolerant Systems.
GIF
English
4
208
893
54.2K
Maicon De La Costa がリツイート
Bytebytego
Bytebytego@bytebytego·
What is a deadlock? A deadlock occurs when two or more transactions are waiting for each other to release locks on resources they need to continue processing. This results in a situation where neither transaction can proceed, and they end up waiting indefinitely. 🔹 Coffman Conditions The Coffman conditions, named after Edward G. Coffman, Jr., who first outlined them in 1971, describe four necessary conditions that must be present simultaneously for a deadlock to occur: - Mutual Exclusion - Hold and Wait - No Preemption - Circular Wait 🔹 Deadlock Prevention - Resource ordering: impose a total ordering of all resource types, and require that each process requests resources in a strictly increasing order. - Timeouts: A process that holds resources for too long can be rolled back. - Banker’s Algorithm: A deadlock avoidance algorithm that simulates the allocation of resources to processes and helps in deciding whether it is safe to grant a resource request based on the future availability of resources, thus avoiding unsafe states. 🔹 Deadlock Recovery - Selecting a victim: Most modern Database Management Systems (DBMS) and Operating Systems implement sophisticated algorithms for detecting deadlocks and selecting victims, often allowing customization of the victim selection criteria via configuration settings. The selection can be based on resource utilization, transaction priority, cost of rollback etc. - Rollback: The database may roll back the entire transaction or just enough of it to break the deadlock. Rolled-back transactions can be restarted automatically by the database management system. Over to you: have you solved any tricky deadlock issues? -- Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): bit.ly/3KCnWXq
Bytebytego tweet media
English
2
176
876
83K
Maicon De La Costa がリツイート
Alex Xu
Alex Xu@alexxubyte·
Do you know those 8 common problems in large-scale production systems and their solutions? Time to test your skills!
Alex Xu tweet media
English
4
208
1.1K
163.6K
Maicon De La Costa がリツイート
Nikki Siapno
Nikki Siapno@NikkiSiapno·
Object-Oriented Programming in Under 4 Minutes: Object-oriented programming (OOP) is a programming paradigm in which programs are designed using classes and objects. This design allows related functions and data to be grouped together in self-contained and reusable units. A class is a template or blueprint from which objects are made from. Classes define the properties and methods that an object can have, and objects are unique instances of a class. For example, let's say you want to create a life simulation game where players can adopt and raise pets. You would have a "Pet" class that defines the properties of each pet (like "name" and "age"), as well as behaviors they can do (like "speak" and "eat"). You could then create objects, or instances, of this class for each specific pet. Each object could have its own values for each property. For example, you could have a 2-year-old pet named "Winston", & a 1-year-old pet named "Wesley"; both initialized from the "Pet" class. Object-oriented programming has 4 main principles; encapsulation, inheritance, abstraction, and polymorphism. Encapsulation hides internal details but exposes data & methods via a public interface, preventing unintentional changes. E.g. — a player can view a pet's age but can't accidentally change it. But they can run methods avail on the public interface like changing a pet's name. Inheritance allows classes to inherit properties and methods from other classes, making code reusable and organized. E.g. — A "SuperPet" class that extends from "Pet "and would inherit "age", "name", "eat", and "speak"; while defining new behaviors like "fly" Polymorphism is a principle that enables objects to change their form by extending or overriding existing methods. E.g. A "Dog" & "Cat" class that extended from the "Pet", shouldn't share the same "speak" method. You'd override it to have its own logic like "woof" or "meow" Abstraction reduces complexity by only surfacing the information needed for a given context or use case. E.g. A “Player” class doesn’t need to know how the “eat” method works in the “Pet” class, it just needs to know how to interact with it — i.e. its input and output. OOP provides a way to design your program that makes it reusable, secure, stable, and easy to understand. But it isn't without disadvantages. A couple of arguments against it are that it can lead to over-engineering and complexity on a large scale. ~~ Thank you to our partner Kickresume who keeps our content free to the community. Did you know you can turn your LinkedIn into a resume with one click? Check it out: drp.li/linkedin-to-re…
Nikki Siapno tweet media
English
11
277
1.4K
155.4K
Maicon De La Costa がリツイート
Crazy Moments
Crazy Moments@Crazymoments01·
@ayeejuju One of the best moments ever in the Olympics
English
54
543
5.6K
1.1M
Maicon De La Costa がリツイート
Bytebytego
Bytebytego@bytebytego·
8 Key Data Structures That Power Modern Databases 🔹Skiplist: a common in-memory index type. Used in Redis 🔹Hash index: a very common implementation of the “Map” data structure (or “Collection”) 🔹SSTable: immutable on-disk “Map” implementation 🔹LSM tree: Skiplist + SSTable. High write throughput 🔹B-tree: disk-based solution. Consistent read/write performance 🔹Inverted index: used for document indexing. Used in Lucene 🔹Suffix tree: for string pattern search 🔹R-tree: multi-dimension search, such as finding the nearest neighbor – Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): bit.ly/3KCnWXq
Bytebytego tweet media
English
1
105
450
41.8K
Maicon De La Costa がリツイート
Akshay 🚀
Akshay 🚀@akshay_pachaar·
Neural network visualized!
English
33
773
5.1K
571.6K