Best of Faun — 2024

  1. 1
    Article
    Avatar of faunFaun·2y

    Top Tips and Tricks with Tailwind CSS

    Learn top tips and tricks to enhance your Tailwind CSS projects, including how to properly delegate classes, manage spacing between elements, and avoid overuse of the @apply utility. Discover how to add opacity, transitions, and animations, utilize group hover and pseudo-classes, and customize input values. Check out the provided resources for pre-made components and use the Tailwind IntelliSense plugin for an improved workflow.

  2. 2
    Article
    Avatar of faunFaun·2y

    Clean Code in Practice: How I Learned to Write Maintainable Code

    Learn how embracing Clean Code principles can transform your code from chaotic and unreadable to maintainable and clear. By using meaningful names, following guidelines like PEP 8 in Python, leveraging types in TypeScript, breaking functions into smaller pieces, avoiding magic numbers, and adhering to the DRY principle, you can significantly improve the readability and maintainability of your code.

  3. 3
    Article
    Avatar of faunFaun·2y

    Understanding when to cache your APIs

    Learn about caching techniques, including client-side and server-side caching, cache hit ratio, and when to cache APIs.

  4. 4
    Article
    Avatar of faunFaun·2y

    Building AI Agents and Workflow

    With advancements in AI, creating AI Agents and AI-driven Workflows has become a growing interest. An AI Agent uses a Language Model (LLM) for reasoning and utilizes tools to perform tasks autonomously, while an Agentic Workflow combines these agents to execute a series of tasks. The post provides a step-by-step guide to build an AI Agent using langchain and OpenAI, including examples of sending emails and generating responses based on queries. The process involves defining tools, creating agents, setting up workflows, and executing tasks, with a focus on flexibility and extensibility.

  5. 5
    Article
    Avatar of faunFaun·2y

    Spring Boot 3.1 JWT Authentication &Authorization: Secure Your APIs Like a Pro🔒

    Learn how to secure your Spring Boot 3.1 applications using JWT authentication and authorization. This guide covers creating a Spring Boot project, setting up dependencies, creating secure endpoints, and configuring JWT tokens for user authentication. Includes practical examples and code snippets to help you implement security measures swiftly.

  6. 6
    Article
    Avatar of faunFaun·2y

    Deploy AI apps using Docker to containerize python-based GEN-AI Apps.

    Deploying AI applications can be streamlined using Docker to containerize Python-based generative AI apps. This guide walks you through setting up a full-stack application that answers questions about a PDF file, using LangChain for orchestration, Streamlit for the UI, Ollama for running the LLM, and Neo4j for vector storage. Key steps include cloning the repository, initializing Docker, configuring the Docker Compose file, and running the services to interact with the app via a browser.

  7. 7
    Article
    Avatar of faunFaun·2y

    Essential Linux Terminal Hacks for efficiency — Part 2

    Learn essential Linux terminal hacks for efficiency, including reverse cmd search, reusing commands from history, displaying date and time in history, running multiple commands at once, viewing content with 'less', using 'column' to format text output, truncating files, viewing head and tail of files, checking exit codes, creating nested directories, and using the 'file' command.

  8. 8
    Article
    Avatar of faunFaun·2y

    Essential Linux Terminal Hacks for Efficiency

    Discover essential Linux terminal hacks for improved productivity and quality of life. Learn how to clear the terminal, set aliases for commands, navigate through commands efficiently, change the hostname, get the public IP, and more.

  9. 9
    Article
    Avatar of faunFaun·2y

    A Guide to Git Branching Strategies

    Source control management is crucial for efficient collaboration and versioning in software development. This guide focuses on Git branching strategies, primarily trunk-based development and Gitflow. Trunk-based development facilitates fast integration and deployment using a single long-lived branch, while Gitflow supports parallel development and is ideal for established products with regular release cycles. Understanding these strategies helps teams choose the best workflow based on their size, experience, and deployment needs.

  10. 10
    Article
    Avatar of faunFaun·2y

    Git Branching Strategies: A Guide for Improved Development

    This post explains the basics of Git branching strategies and how they can improve development workflow. It introduces two prominent strategies - Git Flow and Trunk-Based Development - and highlights their benefits and considerations. Choosing the right strategy is important for collaboration, code quality, and efficiency.

  11. 11
    Article
    Avatar of faunFaun·2y

    Java 23, SpringBoot 3.3.4, Jakarta 10

    A rapid-start template optimized for microservices and cloud-native architectures using Java 23, SpringBoot 3.3.4, and Jakarta 10. It features a packaging structure based on Hexagonal Architecture, cross-cutting concerns handled via AOP, JWT for authentication and authorization, robust web security, and Docker containerization. The Hexagonal Architecture ensures a clear separation of concerns, maintaining flexibility and adaptability. Comprehensive logging, multiple Spring profiles, and extensive use of Swagger and OpenAPI for API documentation are also highlighted.

  12. 12
    Article
    Avatar of faunFaun·2y

    Understanding Branching Strategies and Deployment Workflows for Multi-Environment Applications

    A structured branching strategy and deployment workflow are essential for seamless code movement from development to production in multi-environment applications. Key branching models like feature branching, Gitflow, and trunk-based development help manage different environments. Effective CI/CD pipelines tailored to specific branches ensure stable and quality code at every stage, enabling efficient development and risk mitigation. Adopting these strategies fosters improved collaboration, quality assurance, controlled releases, and quick rollbacks.

  13. 13
    Article
    Avatar of faunFaun·2y

    Nitric is Terraform for Developers

    Nitric introduces a new paradigm called Infrastructure from Code (IfC), designed to bring the clarity and execution capabilities of Infrastructure as Code (IaC) tools like Terraform to application developers. With Nitric, you can document application requirements in a clear, concise, and executable format using Nitric SDKs and CLI, enabling easier and more efficient development and cloud infrastructure management.

  14. 14
    Article
    Avatar of faunFaun·2y

    GitOps: Argo CD vs Flux CD

    GitOps combines Git and Operations to apply continuous deployment to cloud-native applications using Git as the single source of truth for infrastructure and applications. Benefits include consistency, traceability, security, faster recovery, and improved developer experience. Argo CD and Flux CD are popular tools for implementing GitOps, with step-by-step installation guides provided for both. Best practices include separating build and deployment processes, handling secrets carefully, and using tools like Kustomize and Helm to simplify Kubernetes configurations.

  15. 15
    Article
    Avatar of faunFaun·1y

    Migrating From NGINX to Envoy Proxy

    This guide provides a detailed explanation on how to migrate from NGINX to Envoy Proxy, including step-by-step instructions for configuring each component. It covers the main elements of NGINX configuration, such as server, logging, Gzip feature, and compares them with Envoy's counterparts like listeners, filters, routers, and clusters. The article explains how Envoy handles worker threads, load balancing, access and error logging, and how to run Envoy in a Docker container. At the end, it includes commands to test Envoy's proxy functionality with Docker.

  16. 16
    Article
    Avatar of faunFaun·2y

    A (pain)less journey into Arch Linux

    The author shares their experience switching from Ubuntu 22.04 to Arch Linux and provides a step-by-step guide on installing and configuring Arch Linux. Key topics include creating bootable media, preparing partitions for dual booting, the installation process, setting up essential configurations, and customizing the desktop environment. The guide addresses necessary prerequisites, mentions potential pitfalls, and emphasizes the importance of understanding the system for effective customization.

  17. 17
    Article
    Avatar of faunFaun·2y

    Securely Scale CI/CD with Self-Hosted GitHub Runners on AWS

    Utilizing self-hosted GitHub runners on AWS addresses limitations with GitHub’s hosted runners by providing greater control over computing resources, environment customization, security, and integration with internal tools. This setup involves deploying an EC2 instance as a public-facing web server and a private instance as a self-hosted GitHub runner to improve the efficiency, security, and customization of CI/CD workflows. Key steps include configuring Docker, SSH key generation, setting up AWS CLI, and creating CI/CD workflows in GitHub Actions.

  18. 18
    Article
    Avatar of faunFaun·2y

    Breaking Through: How to Move from Junior to Senior Engineer

    Learn how to overcome roadblocks and transition from a junior to a senior engineer. Take the lead on projects, improve communication skills, seek feedback, understand the business context, and focus on technical depth.

  19. 19
    Article
    Avatar of faunFaun·2y

    Building a End to End Multi-Modal RAG System Using AWS Bedrock And Langchain

    Learn how to build an end-to-end Retrieval Augmented Generation (RAG) application using AWS Bedrock and Langchain. This project involves loading PDF documents, creating vector embeddings using the Titan model, storing them in a vector store, integrating Cloudy and Llama 2 language models, and building a user-friendly interface with Streamlit. The system efficiently retrieves and summarizes information from PDF files based on user queries.

  20. 20
    Article
    Avatar of faunFaun·1y

    5 Ansible Playbooks You Can’t Live Without in Your CI/CD Pipeline!

    Ansible is a key automation tool in CI/CD pipelines for reducing errors and enhancing workflow efficiency. Five essential playbooks recommended for optimal performance include environment provisioning, application deployment, configuration management, continuous monitoring setup, and rollbacks and recovery. These playbooks help ensure consistency, streamline deployments, manage configurations, set up monitoring, and enable reliable rollback mechanisms.

  21. 21
    Article
    Avatar of faunFaun·2y

    Monitoring in Kubernetes: Best Practices

    As Kubernetes adoption rises, effective monitoring is crucial to maintain the health and performance of containerized applications. The post outlines the importance of monitoring, explaining differences between monitoring and observability, and offers best practices including focusing on Four Golden Signals. It highlights the dynamic nature of Kubernetes, necessitating real-time monitoring to manage resource utilization, prevent outages, and ensure security. It also emphasizes the integration of monitoring into CI/CD pipelines and adopting a culture of observability for long-term success.

  22. 22
    Article
    Avatar of faunFaun·2y

    Top 10 Kubernetes Tools You Can Use In 2024

    Explore the top 10 Kubernetes tools to use in 2024, which enhance cluster management, monitoring, security, and deployment in the Kubernetes ecosystem. Tools include Kubectl, Helm, Kustomize, Rancher, Kubernetes Dashboard, Lens, Flux, Kubecost, Amazon EKS, and Google GKE. These tools bridge gaps in Kubernetes functionality, integrate smoothly with DevOps processes, and simplify activities like provisioning clusters, workload monitoring, and cost management.

  23. 23
    Article
    Avatar of faunFaun·2y

    .NET Application Development: Myths and Benefits

    The .NET framework, developed by Microsoft, is renowned for its versatility and ease of use in building web applications across various platforms. It offers numerous benefits such as secure applications, code reduction, support for multiple languages, and cross-platform capabilities. Despite common myths, .NET is cost-effective, reliable, and suitable for both small and large-scale projects.

  24. 24
    Article
    Avatar of faunFaun·2y

    GeoIP lookups with Nginx

    Learn how to perform GeoIP lookups with Nginx using the http_geoip_module and MaxMind database. This guide walks through installing necessary packages, configuring Nginx, and integrating MaxMind data files for geographical validation of requests. It's a straightforward process that enhances your server's geo control capabilities.

  25. 25
    Article
    Avatar of faunFaun·2y

    Learning Go by Instrumenting a Go Application for Prometheus Metrics

    A beginner's guide to learning Go by instrumenting a Go application for Prometheus metrics. This tutorial covers building a Prometheus metrics exporter to consolidate analytics and metrics from Datadog's SLO product. Key steps include parsing the Datadog API response, creating necessary structs in Go, declaring Prometheus metrics, initializing the Datadog client, fetching SLO data, and pushing the metrics to Prometheus.