<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Devesh Patel</title>
    <description>The latest articles on DEV Community by Devesh Patel (@devsso).</description>
    <link>https://dev.to/devsso</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1058243%2F804f9899-3d13-40f0-b56b-b928cb0b0bd1.png</url>
      <title>DEV Community: Devesh Patel</title>
      <link>https://dev.to/devsso</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devsso"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Devesh Patel</dc:creator>
      <pubDate>Thu, 20 Mar 2025 06:00:45 +0000</pubDate>
      <link>https://dev.to/devsso/-4fm2</link>
      <guid>https://dev.to/devsso/-4fm2</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/devteam" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F1%2Fd908a186-5651-4a5a-9f76-15200bc6801f.jpg" alt="The DEV Team" width="800" height="800"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F264%2F40d89fb9-4de0-414d-8a06-f52ddda0bc75.jpg" alt="" width="400" height="400"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/devteam/join-our-first-ever-wecoded-challenge-celebrating-underrepresented-voices-in-tech-through-stories-5m5" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Join Our First-Ever WeCoded Challenge – Celebrating Underrepresented Voices in Tech Through Stories &amp;amp; Code!&lt;/h2&gt;
      &lt;h3&gt;Jess Lee for The DEV Team ・ Mar 5&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#devchallenge&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#wecoded&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dei&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#career&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>devchallenge</category>
      <category>wecoded</category>
      <category>dei</category>
      <category>career</category>
    </item>
    <item>
      <title>Unlocking the Future of Golang: Trends, Predictions, and Business Impact in 2025</title>
      <dc:creator>Devesh Patel</dc:creator>
      <pubDate>Wed, 19 Mar 2025 12:58:13 +0000</pubDate>
      <link>https://dev.to/ssojet/unlocking-the-future-of-golang-trends-predictions-and-business-impact-in-2025-3p63</link>
      <guid>https://dev.to/ssojet/unlocking-the-future-of-golang-trends-predictions-and-business-impact-in-2025-3p63</guid>
      <description>&lt;p&gt;Profile-guided optimization (PGO) has emerged as a powerful technique for improving application performance by utilizing runtime data to inform compiler decisions. In a recent implementation, Uber collaborated with Google to &lt;a href="https://www.uber.com/en-AU/blog/automating-efficiency-of-go-programs-with-pgo/" rel="noopener noreferrer"&gt;integrate PGO&lt;/a&gt; into Golang, resulting in significant performance improvements and resource savings across their service fleet.&lt;/p&gt;

&lt;p&gt;PGO takes advantage of actual runtime behavior to make smarter compiler decisions compared to traditional static analysis. By collecting execution profiles during representative runs, PGO identifies hot code paths and optimizes them accordingly through techniques like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Intelligent function inlining based on call frequency&lt;/li&gt;
&lt;li&gt;Improved code and data layout for better locality&lt;/li&gt;
&lt;li&gt;Enhanced register allocation and instruction scheduling&lt;/li&gt;
&lt;li&gt;Basic block reordering to optimize execution paths&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The implementation of PGO at Uber encompasses several key phases: profiling, analysis, and recompilation. Initially, runtime profiling data is collected during representative executions of applications. This data is then analyzed to identify optimization opportunities, which are subsequently applied during the recompilation process to produce optimized binaries. While languages like C++, Rust, Java, and Swift have long supported PGO, its integration into Go is relatively recent. Uber collaborated with Google to introduce PGO support in Go, with PGO-driven inlining introduced in version 1.20 and devirtualization optimizations added in version 1.21.&lt;/p&gt;

&lt;p&gt;To seamlessly incorporate PGO into its continuous optimization framework, Uber established a systematic process:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Daily Profile Collection: Continuous profiling data is gathered from multiple instances to create representative profiles.&lt;/li&gt;
&lt;li&gt;Service-Specific Enrollment: A configuration system enrolls specific services for PGO, ensuring targeted optimizations.&lt;/li&gt;
&lt;li&gt;Continuous Integration (CI) Testing: The PGO Software Development Kit (SDK) undergoes CI tests to validate changes and maintain stability.&lt;/li&gt;
&lt;li&gt;Deployment: Post-validation, PGO-optimized services are deployed into the production environment.&lt;/li&gt;
&lt;li&gt;Performance Monitoring: A performance dashboard monitors the impact of PGO on services, facilitating ongoing assessment.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A significant challenge encountered during PGO implementation was the increase in build times, with some services experiencing delays of up to eight times. This was primarily due to the extensive time required for parsing profiling data during compilation. To address this, Uber developed a profile preprocessing tool that extracts runtime profiling data, constructs call graphs, and caches this information for use during compilation. This preprocessing significantly reduced build times, making PGO integration more practical for developers.&lt;/p&gt;

&lt;p&gt;The performance impact of PGO was evaluated using synthetic benchmarks and real-world service assessments. For instance, benchmarks demonstrated that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;30% reduction in instruction Translation Lookaside Buffer (iTLB) misses for Go’s widely used third-party JSON library, &lt;code&gt;go-json&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;4% performance improvement through optimized inlining.&lt;/li&gt;
&lt;li&gt;24,000 fewer CPU cores required across Uber’s top services, leading to significant cost savings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Several other technology companies have embraced Profile-Guided Optimization (PGO) to enhance the performance of their Go applications. Companies like &lt;a href="https://blog.cloudflare.com/reclaiming-cpu-for-free-with-pgo/" rel="noopener noreferrer"&gt;&lt;strong&gt;Cloudflare&lt;/strong&gt;&lt;/a&gt; and &lt;a href="https://docs.datadoghq.com/profiler/guide/save-cpu-in-production-with-go-pgo/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;&lt;strong&gt;Datadog&lt;/strong&gt;&lt;/a&gt; have integrated PGO into their Go-based services, resulting in reduced CPU usage and improved performance. Similarly, &lt;a href="https://grafana.com/blog/2024/03/11/how-to-use-pgo-and-grafana-pyroscope-to-optimize-go-applications/" rel="noopener noreferrer"&gt;&lt;strong&gt;Grafana Labs&lt;/strong&gt;&lt;/a&gt; utilizes PGO in conjunction with Grafana Pyroscope, an open-source continuous profiling platform, to optimize Go applications.&lt;/p&gt;

&lt;h1&gt;
  
  
  The Future of Golang in 2025
&lt;/h1&gt;

&lt;p&gt;Golang, or the Go Programming Language, is a statically typed, procedural language developed by Google, known for its simplicity and efficiency. Its future growth is expected to focus on cloud-native development, IoT, and machine learning, alongside significant enhancements in its upcoming version 2.0.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.geeksforgeeks.org%2Fwp-content%2Fuploads%2F20240318133341%2FThe-Future-of-Golang-Top-Trends-and-Predictions.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.geeksforgeeks.org%2Fwp-content%2Fuploads%2F20240318133341%2FThe-Future-of-Golang-Top-Trends-and-Predictions.webp" alt="The Future of Golang Top Trends and Predictions" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Current State of Golang
&lt;/h2&gt;

&lt;p&gt;Golang has an important place in the programming language industry, characterized by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity and Readability:&lt;/strong&gt; Go emphasizes neat syntax, making learning and maintaining code bases easier, especially for large teams.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Concurrency and Performance:&lt;/strong&gt; Golang supports concurrency through goroutines and channels, enabling the development of scalable applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Statically Typed and Compiled:&lt;/strong&gt; This leads to strong applications with good performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rich Standard Library:&lt;/strong&gt; The Go standard library limits the need for additional dependencies, simplifying development.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Source and Community-Driven:&lt;/strong&gt; Continuous improvements and innovations arise from its thriving community.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Latest Version of Golang
&lt;/h2&gt;

&lt;p&gt;As of February 2025, the latest version is Golang 1.22, featuring key enhancements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Generics:&lt;/strong&gt; Allows writing more generic code, reducing redundancy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error Handling:&lt;/strong&gt; Improved error wrapping mechanisms for clearer code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Package Management:&lt;/strong&gt; Streamlined dependency management with Go Mod improvements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tooling Advancements:&lt;/strong&gt; Ongoing refinement of existing tools enhances the developer experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Comparison of Golang with Other Languages
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Golang vs Python
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Similarities:&lt;/strong&gt; Both prioritize readability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Differences:&lt;/strong&gt; Golang is generally faster and more efficient due to its compiled nature.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Golang vs Java
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Similarities:&lt;/strong&gt; Both are statically typed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Differences:&lt;/strong&gt; Golang’s simpler syntax makes it easier to learn and use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Golang vs C++
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Similarities:&lt;/strong&gt; Both offer high performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Differences:&lt;/strong&gt; Golang is easier to learn compared to C++, which has a steeper learning curve.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Future of Golang: Top Trends and Predictions
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Cloud-Native Development:&lt;/strong&gt; Golang fits well with scalable, deployable cloud software.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Internet of Things (IoT):&lt;/strong&gt; Golang is a strong candidate for IoT development due to its performance and minimal resource usage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer Experience:&lt;/strong&gt; Focus on improving tooling libraries and frameworks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Machine Learning and AI:&lt;/strong&gt; Golang is gaining traction in ML/AI applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security:&lt;/strong&gt; The Golang community will focus on improving security libraries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ecosystem Expansion:&lt;/strong&gt; New frameworks and libraries will serve various domains.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Golang 2.0 Enhancements:&lt;/strong&gt; Generics, better error handling, and improved package management are expected.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Business Perspective on Golang
&lt;/h2&gt;

&lt;p&gt;Golang is gaining traction in 2025 due to its scalability, performance, and business impact in cloud computing, microservices, and enterprise tech.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Strengths of Golang for Business
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity and Maintainability:&lt;/strong&gt; Clean syntax reduces onboarding time and maintenance costs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance and Scalability:&lt;/strong&gt; High-performance applications with efficient memory overhead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Concurrency for Modern Demands:&lt;/strong&gt; Efficient handling of multiple tasks simultaneously.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rich Ecosystem and Advanced Tooling:&lt;/strong&gt; Extensive standard library reduces reliance on third-party dependencies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strong Industry Backing:&lt;/strong&gt; Continuous updates from Google and a thriving open-source community.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Latest Version of Go (1.22 – February 2025)
&lt;/h3&gt;

&lt;p&gt;Go 1.22 introduces generics, improved error handling, and enhanced package management. These updates increase productivity and maintainability, making Go a compelling option for modern software development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges and Limitations of Go
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Foreign Function Interface (FFI):&lt;/strong&gt; Integration with C or other languages can introduce performance overhead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Garbage Collection (GC):&lt;/strong&gt; Prioritizes low latency over high throughput.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Code Loading:&lt;/strong&gt; Limited compared to Java or Python.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use Case Limitations:&lt;/strong&gt; Lack of a native UI framework makes it impractical for standalone desktop applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Competition from Established Languages:&lt;/strong&gt; Java and C# continue to dominate enterprise software.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>news</category>
      <category>programming</category>
    </item>
    <item>
      <title>Cloudflare Unveils Media Transformations and Content Credentials for Enhanced Video and Image Management</title>
      <dc:creator>Devesh Patel</dc:creator>
      <pubDate>Wed, 19 Mar 2025 12:56:15 +0000</pubDate>
      <link>https://dev.to/ssojet/cloudflare-unveils-media-transformations-and-content-credentials-for-enhanced-video-and-image-3bic</link>
      <guid>https://dev.to/ssojet/cloudflare-unveils-media-transformations-and-content-credentials-for-enhanced-video-and-image-3bic</guid>
      <description>&lt;p&gt;Cloudflare has introduced Media Transformations, a service designed to optimize short-form video content by simplifying the video optimization process. This service extends its &lt;a href="https://developers.cloudflare.com/images/transform-images/" rel="noopener noreferrer"&gt;Image Transformations capabilities&lt;/a&gt; to short-form video files, regardless of storage location. It eliminates complex video pipelines, making it easier for users to enhance videos directly from existing storage solutions like &lt;a href="https://www.cloudflare.com/developer-platform/products/r2/" rel="noopener noreferrer"&gt;Cloudflare R2&lt;/a&gt; or &lt;a href="https://www.cloudflare.com/developer-platform/solutions/s3-compatible-object-storage/" rel="noopener noreferrer"&gt;S3&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frqp8dsg492tkp81ovdp9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frqp8dsg492tkp81ovdp9.png" alt="Media Transformations" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Image courtesy of Cloudflare&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The service allows users to apply various optimizations via URL-based parameters, facilitating automation and integration for video adjustments without the need for complex coding. Key features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Format Conversion&lt;/strong&gt; : Output videos as optimized MP4 files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frame Extraction&lt;/strong&gt; : Generate still images from video frames.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video Clipping&lt;/strong&gt; : Trim videos with specified start times and durations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resizing and Cropping&lt;/strong&gt; : Adjust video dimensions with parameters like “fit,” “height,” and “width.”&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio Removal&lt;/strong&gt; : Strip audio from video outputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spritesheet Generation&lt;/strong&gt; : Create images with multiple frames.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The service is currently in beta and free for all users until Q3 2025, after which a pricing model similar to Image Transformations will be adopted.&lt;/p&gt;

&lt;p&gt;For businesses focusing on short-form video, alternatives such as &lt;a href="https://cloudinary.com/" rel="noopener noreferrer"&gt;Cloudinary&lt;/a&gt;, &lt;a href="https://imagekit.io/" rel="noopener noreferrer"&gt;ImageKit&lt;/a&gt;, and &lt;a href="https://www.gumlet.com/" rel="noopener noreferrer"&gt;Gumlet&lt;/a&gt; offer features for video optimization, but Cloudflare’s Media Transformations aims to provide a more streamlined solution.&lt;/p&gt;

&lt;h1&gt;
  
  
  Cloudflare Launches One-Click Content Credentials
&lt;/h1&gt;

&lt;p&gt;Cloudflare has also announced the launch of a one-click solution for preserving image authenticity and creator attribution through Content Credentials. This feature allows publishers and media organizations to maintain the digital history of images across Cloudflare’s global network.&lt;/p&gt;

&lt;p&gt;The digital ‘nutrition label’ attaches directly to images, enabling creators to be credited for their work and allowing consumers to verify the origin and alterations of digital content. The solution is based on standards from the &lt;a href="https://c2pa.org/about/" rel="noopener noreferrer"&gt;Coalition for Content Provenance and Authenticity&lt;/a&gt; (C2PA).&lt;/p&gt;

&lt;p&gt;Matthew Prince, co-founder and CEO of Cloudflare, stated, “The future of the Internet depends on trust and authenticity.” This integration helps media organizations verify authenticity and maintain ownership of their work, crucial in an age where AI-generated content is prevalent.&lt;/p&gt;

&lt;p&gt;Users of &lt;a href="https://www.cloudflare.com/developer-platform/products/cloudflare-images/" rel="noopener noreferrer"&gt;Cloudflare Images&lt;/a&gt; can enable the “Preserve Content Credentials” option to safeguard embedded metadata across the Cloudflare network. This ensures that transformations made to images are recorded using public key cryptography, allowing viewers to verify the digital history of images using the Adobe Content Authenticity &lt;a href="https://contentauthenticity.adobe.com/inspect" rel="noopener noreferrer"&gt;Inspect tool&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For more details, check the following resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Blog: &lt;a href="https://blog.cloudflare.com/preserve-content-credentials-with-cloudflare-images" rel="noopener noreferrer"&gt;Preserving content provenance by integrating Content Credentials into Cloudflare Images&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Content Authenticity Initiative Blog: &lt;a href="https://contentauthenticity.org/blog/cloudflare-becomes-the-first-major-content-delivery-network-to-implement-content-credentials" rel="noopener noreferrer"&gt;Cloudflare becomes the first major content delivery network to implement Content Credentials&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Introducing Media Transformations from Cloudflare Stream
&lt;/h1&gt;

&lt;p&gt;The Media Transformations service allows customers to optimize short video content without the need to migrate existing assets. The URL structure for transforming videos mirrors that of Image Transformations, making it easy for users to integrate this feature into their existing setup.&lt;/p&gt;

&lt;p&gt;Example URL format for transformations:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://example.com/cdn-cgi/media/&amp;lt;OPTIONS&amp;gt;/&amp;lt;SOURCE-VIDEO&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This service provides a significant reduction in file size while maintaining quality, facilitating smoother user experiences on websites.&lt;/p&gt;

&lt;p&gt;For more information on transforming videos, visit &lt;a href="https://developers.cloudflare.com/stream/transform-videos/" rel="noopener noreferrer"&gt;Transforming Videos&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>news</category>
    </item>
    <item>
      <title>Google DeepMind Launches Gemini Robotics: Merging AI with the Physical World</title>
      <dc:creator>Devesh Patel</dc:creator>
      <pubDate>Tue, 18 Mar 2025 11:29:55 +0000</pubDate>
      <link>https://dev.to/ssojet/google-deepmind-launches-gemini-robotics-merging-ai-with-the-physical-world-1g07</link>
      <guid>https://dev.to/ssojet/google-deepmind-launches-gemini-robotics-merging-ai-with-the-physical-world-1g07</guid>
      <description>&lt;p&gt;Google DeepMind has unveiled &lt;a href="https://deepmind.google/discover/blog/gemini-robotics-brings-ai-into-the-physical-world/" rel="noopener noreferrer"&gt;Gemini Robotics&lt;/a&gt;, an advanced AI model leveraging the Gemini 2.0 framework to enhance robotics through the integration of vision, language, and action. This development is pivotal for creating robots that can adapt and respond to their environments more effectively.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FI3LyOcpijrKfJ90UteiAN9ny73Ly-eNb2l3vsC6fOtl3UQKKufCzgeZMh26--7nV36oTUOk9B7B4FIhCKrVYAksGW2DVcviQoWL5BmErDNsIMiX7AQ%3Dw1072-h603-n-nu" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FI3LyOcpijrKfJ90UteiAN9ny73Ly-eNb2l3vsC6fOtl3UQKKufCzgeZMh26--7nV36oTUOk9B7B4FIhCKrVYAksGW2DVcviQoWL5BmErDNsIMiX7AQ%3Dw1072-h603-n-nu" alt="Hands from the Robot’s POV. A pair of robotic hands move tiles into the word ‘world’ under the text ‘Gemini for the Physical’." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Image courtesy of Google DeepMind&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of Gemini Robotics
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Embodied Reasoning
&lt;/h3&gt;

&lt;p&gt;A notable aspect of &lt;a href="https://www.infoq.com/news/2024/12/google-gemini-2/" rel="noopener noreferrer"&gt;Gemini Robotics&lt;/a&gt; is its embodied reasoning capability, allowing robots to comprehend and react to their surroundings similar to humans. This feature is essential for tasks requiring quick adaptation in dynamic environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Humanoid Robotics Initiative
&lt;/h3&gt;

&lt;p&gt;Google DeepMind is collaborating with &lt;a href="https://apptronik.com/" rel="noopener noreferrer"&gt;Apptronik&lt;/a&gt; to develop the next generation of humanoid robots. This partnership aims at creating robots that can operate alongside humans in various settings, including homes and workplaces.&lt;/p&gt;

&lt;h3&gt;
  
  
  Safety and Ethical Considerations
&lt;/h3&gt;

&lt;p&gt;With safety as a priority, Gemini Robotics incorporates collision avoidance and force limitation mechanisms. The &lt;a href="https://asimov-benchmark.github.io/" rel="noopener noreferrer"&gt;ASIMOV dataset&lt;/a&gt; is utilized to enhance safety protocols, inspired by Isaac Asimov’s Three Laws of Robotics, ensuring robots act ethically and safely around humans.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini Robotics’ Capabilities
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Generality
&lt;/h3&gt;

&lt;p&gt;Gemini Robotics is designed to generalize across various tasks, even those it has not encountered before. The model demonstrates superior performance on generalization benchmarks compared to existing state-of-the-art models.&lt;/p&gt;

&lt;h3&gt;
  
  
  Interactivity
&lt;/h3&gt;

&lt;p&gt;The model's interaction capabilities allow it to process commands in natural language, adapting its behavior in real-time to instructions or changes in its environment. This “steerability” enhances collaboration between humans and robots in diverse settings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FOl9zZz6cyuRAD_K2d-rS8FUFnxFl49pe8BXh1Tmu974n-ohlTNLLeVb0INZwnAyBAzt6-w-odpt80jYt3XqGd_iMyTmrDU5BdpEFgbUpy1naDdY8_5Q%3Dw1070" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FOl9zZz6cyuRAD_K2d-rS8FUFnxFl49pe8BXh1Tmu974n-ohlTNLLeVb0INZwnAyBAzt6-w-odpt80jYt3XqGd_iMyTmrDU5BdpEFgbUpy1naDdY8_5Q%3Dw1070" alt="If an object slips from its grasp, or someone moves an item around, Gemini Robotics quickly replans and carries on — a crucial ability for robots in the real world." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Image courtesy of Google DeepMind&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Dexterity
&lt;/h3&gt;

&lt;p&gt;Gemini Robotics excels in executing complex, multi-step tasks that require precise manipulation, such as origami folding or packing items. This level of dexterity is crucial for performing tasks that humans usually handle effortlessly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini Robotics-ER Model
&lt;/h2&gt;

&lt;p&gt;Alongside Gemini Robotics, the Gemini Robotics-ER (Embodied Reasoning) model enhances spatial reasoning abilities, enabling roboticists to integrate their programs with Gemini's advanced capabilities. This model significantly improves performance in tasks requiring spatial understanding.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2Fgs6-8ViSSMd63YQlQR6eSoIpKNrpJMRn_jAFkLlATk8IzYUEbOGN4Fq3uthY6w7fGiQeMTipo6MNJ0CJDy9Dc-H1k-Dx3ua7zyu4KkophVhOn2yhSg%3Dw1070" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2Fgs6-8ViSSMd63YQlQR6eSoIpKNrpJMRn_jAFkLlATk8IzYUEbOGN4Fq3uthY6w7fGiQeMTipo6MNJ0CJDy9Dc-H1k-Dx3ua7zyu4KkophVhOn2yhSg%3Dw1070" alt="Gemini Robotics-ER excels at embodied reasoning capabilities including detecting objects and pointing at object parts." width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Image courtesy of Google DeepMind&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Safety and Ethical Frameworks
&lt;/h3&gt;

&lt;p&gt;Google DeepMind emphasizes a holistic approach to safety, integrating low-level motor control with high-level semantic understanding. The development of the &lt;a href="https://deepmind.google/discover/blog/shaping-the-future-of-advanced-robotics/" rel="noopener noreferrer"&gt;Robot Constitution&lt;/a&gt; framework aims to ensure that robots operate within defined ethical boundaries, promoting human safety.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implications for Robotics Industry
&lt;/h2&gt;

&lt;p&gt;The introduction of Gemini Robotics signifies a pivotal shift in robotics, particularly in how AI can enhance physical interactions. As highlighted by Kanishka Rao, director of robotics at DeepMind, the model addresses a core challenge in robotics: the failure to generalize in unfamiliar scenarios.&lt;/p&gt;

&lt;p&gt;This leap forward, combining AI and robotics, aligns with the trend of integrating large language models into robotic systems, making them more adaptable and responsive to human commands. The Gemini framework is expected to enable a new generation of robots capable of performing tasks with minimal programming.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FaCLLuYMMvEK6Q5AmlMpgnVt8YStv_y7TltTj1OZO2z4_s3WPMGTM7AyF39FXPEln5ptvEvBOgzT94Va2HADYp03zDjRy2RL3XLGtdjkyZfTKZJ_-Sw%3Dw1070" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FaCLLuYMMvEK6Q5AmlMpgnVt8YStv_y7TltTj1OZO2z4_s3WPMGTM7AyF39FXPEln5ptvEvBOgzT94Va2HADYp03zDjRy2RL3XLGtdjkyZfTKZJ_-Sw%3Dw1070" alt="Gemini Robotics displays advanced levels of dexterity." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Image courtesy of Google DeepMind&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Collaboration with Other Robotics Companies
&lt;/h3&gt;

&lt;p&gt;Google DeepMind is collaborating with trusted testers, including Agile Robots and Boston Dynamics, to refine the capabilities of the Gemini Robotics-ER model. These partnerships are aimed at exploring applications of the technology in real-world scenarios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;To explore how advanced authentication solutions can enhance the security and user management in enterprise settings, consider SSOJet’s API-first platform. Implement secure SSO and user management with features such as directory sync, SAML, OIDC, and magic link authentication. Discover more at &lt;a href="https://ssojet.com" rel="noopener noreferrer"&gt;SSOJet&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>news</category>
    </item>
    <item>
      <title>The Model Context Protocol (MCP) Explained: A Game-Changer for AI and Startups</title>
      <dc:creator>Devesh Patel</dc:creator>
      <pubDate>Mon, 17 Mar 2025 11:05:26 +0000</pubDate>
      <link>https://dev.to/devsso/the-model-context-protocol-mcp-explained-a-game-changer-for-ai-and-startups-3hk6</link>
      <guid>https://dev.to/devsso/the-model-context-protocol-mcp-explained-a-game-changer-for-ai-and-startups-3hk6</guid>
      <description>&lt;p&gt;MCPs (Model Capability Protocols) are revolutionizing AI integrations. If you’ve ever built an AI agent that connects with APIs like Slack, Gmail, or a custom database, you know the pain of manually setting up and maintaining these integrations. You have to write custom prompts, enforce restrictions (e.g., limiting Gmail API access to sending emails only), and ensure smooth communication between the agent and APIs.&lt;/p&gt;

&lt;p&gt;But here’s the problem: if you want to use the same AI agent in another application, you have to redo all that work from scratch. That’s where &lt;strong&gt;MCP (Model Capability Protocol)&lt;/strong&gt; comes in, offering a standardized way to connect AI agents to various services effortlessly.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Old Way vs. The MCP Way&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Without MCP, every new integration requires custom implementations. If you build an agent that works with Slack, Gmail, and a custom database in one app, it won’t work seamlessly in another app like &lt;a href="https://www.cursor.com/" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt;or &lt;a href="https://codeium.com/windsurf" rel="noopener noreferrer"&gt;WindSurf&lt;/a&gt;without redoing all the work.&lt;/p&gt;

&lt;p&gt;With MCP, you don’t have to reinvent the wheel. Instead, you can set up an MCP server that connects to different APIs. Any AI agent—whether it’s Cursor, &lt;a href="https://codeium.com/windsurf" rel="noopener noreferrer"&gt;WindSurf&lt;/a&gt;, or another tool—can then communicate with this MCP server using a common protocol, making integration effortless and reusable.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;How MCP Works&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;MCP operates through three key components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Host&lt;/strong&gt; : The application running the AI agent (e.g., &lt;a href="https://www.cursor.com/" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt;, an IDE).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Client&lt;/strong&gt; : The tool communicating with the MCP server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server&lt;/strong&gt; : The backend handling API interactions (e.g., &lt;a href="https://github.com/modelcontextprotocol/servers/tree/main/src/slack" rel="noopener noreferrer"&gt;Slack’s MCP server&lt;/a&gt;, Gmail’s MCP server, or a custom one you build).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fld7twsdqgo8gpyupo0hl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fld7twsdqgo8gpyupo0hl.png" width="800" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, if Slack provides an MCP server, any AI agent (Cursor, WindSurf, etc.) can instantly connect to Slack without needing custom API implementations. The server handles everything, and the agent just plugs in.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Real-World Example: Using MCP for Machine Learning Experiments&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Let’s say you’re working on a machine learning project where your model runs locally, and you frequently need to test it with different variables. Instead of writing new scripts for every experiment, you can integrate it with an AI agent like Cursor using MCP.&lt;/p&gt;

&lt;p&gt;Here’s how it works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Define a tool&lt;/strong&gt; on your MCP server called &lt;code&gt;invoke_model&lt;/code&gt;, which takes a payload (data) and sends a request to your locally running model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Include documentation&lt;/strong&gt; that tells AI agents how to format the data correctly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Register this MCP server&lt;/strong&gt; in Cursor, allowing it to communicate with your model seamlessly.&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft2ugwozhbz77f6onxu61.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft2ugwozhbz77f6onxu61.png" width="800" height="582"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, you can simply tell Cursor: &lt;em&gt;“Invoke the model with three samples from penguins.csv,”&lt;/em&gt; and it figures out the format, retrieves the data, and runs the model automatically. You can even say: &lt;em&gt;“Now change body weight to one standard deviation and run again,”&lt;/em&gt; and it executes the entire experiment for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why MCP is a Game-Changer&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;MCP solves key problems that developers and businesses face when integrating AI with external services:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reusability&lt;/strong&gt; : The same MCP server can work with different AI agents without modifications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalability&lt;/strong&gt; : Companies can provide MCP servers, making their APIs instantly accessible to multiple applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Efficiency&lt;/strong&gt; : AI agents interact with APIs in a structured way, reducing manual work and eliminating redundant integrations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Traditionally, integrating AI models with multiple tools was frustrating due to inconsistencies in APIs. Every tool had its own format, and any changes could break the system. MCP eliminates these challenges by introducing a &lt;strong&gt;standardized&lt;/strong&gt; way for AI models to interact with services, leading to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Easier and faster integrations&lt;/strong&gt; – No more spending hours configuring each tool manually.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More reliable AI assistants&lt;/strong&gt; – Fewer disruptions when APIs change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optimized resource utilization&lt;/strong&gt; – Businesses can dynamically allocate computing power based on model capabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Startup Opportunities with MCP&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Whenever a major protocol (like HTTP or SMTP) becomes widely adopted, &lt;strong&gt;new business opportunities emerge&lt;/strong&gt;. So, how can startups capitalize on MCP?&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Building MCP-Based Developer Tools&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Technical founders can create tools that &lt;strong&gt;simplify MCP adoption&lt;/strong&gt; , such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP integration platforms&lt;/strong&gt; that automate model onboarding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP monitoring tools&lt;/strong&gt; that track model performance and reliability.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. MCP App Store&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A marketplace where developers can browse and deploy different MCP-compatible models and services, similar to how APIs are listed on &lt;a href="https://rapidapi.com/" rel="noopener noreferrer"&gt;RapidAPI&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. AI Automation Services&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;As MCP adoption grows, businesses will look for &lt;strong&gt;no-code or low-code AI automation platforms&lt;/strong&gt; that integrate seamlessly with MCP-enabled tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. AI Consulting &amp;amp; Implementation&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;For non-technical founders, offering &lt;strong&gt;MCP integration services&lt;/strong&gt; to businesses could be an excellent opportunity.&lt;/p&gt;

&lt;p&gt;While MCP is still in its early days, understanding its impact now will help entrepreneurs &lt;strong&gt;move quickly when the market matures&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Future of MCP&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Many companies are already adopting MCP, with directories listing hundreds of plug-and-play MCP servers. The possibilities are endless, from automating workflows to integrating AI agents seamlessly across platforms.&lt;/p&gt;

&lt;p&gt;Despite its potential, MCP faces some challenges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Adoption &amp;amp; Standardization&lt;/strong&gt; – AI companies need to align on a single protocol.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security &amp;amp; Privacy&lt;/strong&gt; – Exposing model capabilities raises concerns about data security.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complexity of Implementation&lt;/strong&gt; – Not all models fit neatly into predefined capability schemas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, &lt;strong&gt;the future of MCP looks promising&lt;/strong&gt;. As AI adoption expands, having a universal protocol for model interaction will be essential.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;MCP is more than just a technical standard—it’s a &lt;strong&gt;revolutionary shift&lt;/strong&gt; in how AI models interact with external services. Whether you’re a &lt;strong&gt;developer, a startup founder, or an AI enthusiast&lt;/strong&gt; , keeping up with MCP developments could put you ahead of the curve.&lt;/p&gt;

&lt;p&gt;If you’re working with AI, &lt;strong&gt;now is the time to explore MCP&lt;/strong&gt;. It might just redefine the way AI models are built, deployed, and monetized.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>What is SAML and how SAML authentication works</title>
      <dc:creator>Devesh Patel</dc:creator>
      <pubDate>Mon, 03 Apr 2023 20:43:22 +0000</pubDate>
      <link>https://dev.to/ssojet/what-is-saml-and-how-saml-authentication-works-5634</link>
      <guid>https://dev.to/ssojet/what-is-saml-and-how-saml-authentication-works-5634</guid>
      <description>&lt;h2&gt;
  
  
  What is SAML
&lt;/h2&gt;

&lt;p&gt;Security Assertion Markup Language (SAML) is an XML-based standard protocol for exchanging authentication data between two parties. SAML is designed to enable Single Sign- On (SSO) across different applications and systems that belong to the same organization or consortium. SAML allows a user to log in once and then access multiple applications or services without having to log in again for each application or service, this is exactly SSO.&lt;/p&gt;

&lt;p&gt;SAML is based on the concept of a trust relationship between the identity provider (IdP) and the service provider (SP). The IdP is responsible for authenticating the user and providing the necessary identity information in the form of SAML assertions to the SP. SP uses the SAML assertions to grant or deny access to resources.&lt;/p&gt;

&lt;p&gt;SAML is famous in enterprise environments, online service providers and government agencies. It is most popula SSO protocols. The SAML standard is maintained by the Organization for the Advancement of Structured Information Standards (OASIS), and it is continually evolving to meet the changing security and privacy requirements of modern internet based applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of SAML
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Secure&lt;/strong&gt;: SAML allows for secure transfer of authentication and authorization data between parties and make sure that user identity and access information is confidential. SAML is designed by keeping in mind security requirement of enterprises and regulated industry, that’s why it’s highly secure protocol.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSO&lt;/strong&gt;: Using SAML organizations can implement SSO for their multiple applications means users can access multiple web applications and services without login multiple time. it solves the problems of multiple credentials for multiple applications which belongs to one organizations.&lt;br&gt;
Scalability: SAML supports a wide range of authentication and authorization scenarios and use cases. This makes SAML highly scalable and adaptable to variety of business requirements. It can fit in most of the industry with it’s flexibility and security.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interoperability&lt;/strong&gt;: SAML is a popular SSO Protocol which means it can be used with different vendor’s applications and systems. It’s specificiations are well defined and give great flexibility without doing customization to it, that’s make sure that cross oganizations applications are compatible with each other.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Save cost&lt;/strong&gt;: SAML reduce cost of managing user’s authnetications and access to multiple applications and services, Login once reduce processsing of number of authentications on multiple applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enhanced User Experience&lt;/strong&gt;: SSO always make user experience better, if organization have multiple applications and if user doesn’t require to singup as well login multiple time.&lt;br&gt;
Compliance: SAML is well designed for enterprises requirements, it has all security and privacy scenerios which make it’s compliant protocol.&lt;/p&gt;
&lt;h2&gt;
  
  
  SAML terminology
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Identity Provider (IdP)&lt;/strong&gt;: Identity Provider is authenticate users and generte SAML assertions that contain data about user identity and access related.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service Provider (SP)&lt;/strong&gt;: Service provider is application that users want to access after successfull authentication by Identity Provider. Service Provider accept SAML assertion sent by Identity Provider.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SAML Assertion&lt;/strong&gt;: A SAML assertion is an XML document that contains data of user’s identity (ID and Atrributes) and access, also metadata of the assertion itself, such as its validity period, public key and the IdP that issued it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SAML Protocol&lt;/strong&gt;: A set of rules and methods for exchanging SAML assertions between the Identity provider and the Service Provider. In January 2001, OASIS Security Services Technical Committee (SSTC) convened for the first time with mandate of creating an XML framework to facilitate the exchange of authentication and authorization information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attribute&lt;/strong&gt;: An attribute is a use profile related fields, such as name, email address, or group. It is paert of a SAML assertion. Attributes are used by the SP to identify identify user and provide access according to it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NameID&lt;/strong&gt;: A NameID is a unique identifier that is assigned to a user by the IdP and included in a SAML assertion. NameID is used by the SP to identify the user across different applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Metadata&lt;/strong&gt;: Metadata is information about a identity Provider or Service Provider, SP require IdP’s meta data and IdP require SP’s metadata to establish trust between both. Metadata includes information about the SP or IdP’s endpoints (assertion consumer service URL, SLO URL etc.), certificate, audience and other relevant details.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subject&lt;/strong&gt;: Subject refers to user on whose behalf the SAML assertion has been generated, it contains NameID XML tag also.&lt;br&gt;
Single Logout (SLO): A process that enables a user to log out of all web applications or services that use SAML authentication with a single action.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Binding&lt;/strong&gt;: Method for transmitting SAML messages between an IdP and an SP, such as HTTP Redirect, HTTP POST, or SOAP.&lt;/p&gt;
&lt;h2&gt;
  
  
  SAML flows
&lt;/h2&gt;

&lt;p&gt;Here is The general steps of creating a SAML assertion and consumption involves the following steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Attempt to Access Restriucted Resources&lt;/strong&gt;: User attempts to access a service provider (SP) application that requires authentication. SP redirects the user to the Identity Provider (IDP) for authentication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IdP Authentication&lt;/strong&gt;: IdP authenticates the user in this step if user’s session doesn’t exist. IdP can authanticate using a various methods example username and password, two-factor authentication, or smart card authentication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assertion Creation&lt;/strong&gt;: Once the user is authenticated, IdP creates a SAML assertion that contains data about user and authentication status. IdP Sign the assertion using IdP Proivate key to ensure its authenticity and integrity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assertion Delivery&lt;/strong&gt;: IdP sends the SAML assertion to the SP via the user’s browser, using either the HTTP POST or HTTP Redirect binding. IdP Sends assertion in XML format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assertion Validation&lt;/strong&gt;: SP receives the SAML assertion and validates it by verifying the signature, checking the expiration date, and verifying that the assertion is intended for the SP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attribute Extraction&lt;/strong&gt;: Once the SAML assertion is validated, SP extracts user attributes such as name, email, and group.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Session Creation&lt;/strong&gt;: SP creates a session for user, allowing user to access SP application. There are two types flows in SAML, these are IdP-Intiaited and SP-Initiated flows.&lt;/p&gt;
&lt;h2&gt;
  
  
  IdP initiated
&lt;/h2&gt;

&lt;p&gt;SAML IdP-initiated flow is a scenario where the user is first authenticated by the Identity Provider (IDP) and then redirected to a Service Provider (SP) application without the user having to initiate the request. The process involves the following steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IdP Authentication&lt;/strong&gt;: User try to access the specific SP application, IdP authenticates the user in this step if user’s session doesn’t exist. IdP can authanticate using a various methods example username and password, two-factor authentication, or smart card authentication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assertion Creation&lt;/strong&gt;: Once the user is authenticated, IdP creates a SAML assertion that contains data about user and authentication status. IdP Sign the assertion using IdP Proivate key to ensure its authenticity and integrity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assertion Delivery&lt;/strong&gt;: IdP sends the SAML assertion to the SP via the user’s browser, using either the HTTP POST or HTTP Redirect binding. IdP Sends assertion in XML format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assertion Validation&lt;/strong&gt;: SP receives the SAML assertion and validates it by verifying the signature, checking the expiration date, and verifying that the assertion is intended for the SP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attribute Extraction&lt;/strong&gt;: Once the SAML assertion is validated, SP extracts user attributes such as name, email, and group.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Session Creation&lt;/strong&gt;: SP creates a session for user, allowing user to access SP application. In the IdP-initiated flow, the user is first authenticated by IdP, and request is initiated by the IdP, which then sends SAML assertion to SP. This flow is typically used in situations where user is on IdP portal and use want to access SP directly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhfcn4dsbjhf86jsxl3v8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhfcn4dsbjhf86jsxl3v8.png" alt="Image description" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  SP-Intiated
&lt;/h2&gt;

&lt;p&gt;SAML SP-initiated flow is a scenario where user initiates the request to access a Service Provider (SP) application and is then redirected to the Identity Provider (IDP) for authentication. The process involves the following steps:&lt;/p&gt;

&lt;p&gt;User Attempt to Access Restriucted Resources: User attempts to access a service provider (SP) application that requires authentication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SP Request:&lt;/strong&gt; The SP determines that user needs to be authenticated and sends a SAML request to the IdP, requesting user’s authentication and authorization information,.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SP Request validation&lt;/strong&gt;: IdP receives the SAML request and validate and verify by signature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IdP Authentication&lt;/strong&gt;: IdP authenticates the user in this step if user’s session doesn’t exist. IdP can authanticate using a various methods example username and password, two-factor authentication, or smart card authentication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assertion Creation&lt;/strong&gt;: Once the user is authenticated, IdP creates a SAML assertion that contains data about user and authentication status. IdP Sign the assertion using IdP Proivate key to ensure its authenticity and integrity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assertion Delivery&lt;/strong&gt;: IdP sends the SAML assertion to the SP via the user’s browser, using either the HTTP POST or HTTP Redirect binding. IdP Sends assertion in XML format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assertion Validation&lt;/strong&gt;: SP receives the SAML assertion and validates it by verifying the signature, checking the expiration date, and verifying that the assertion is intended for the SP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attribute Extraction&lt;/strong&gt;: Once the SAML assertion is validated, SP extracts user attributes such as name, email, and group.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Session Creation&lt;/strong&gt;: SP creates a session for user, allowing user to access SP application. In the SP-initiated flow, the user initiates the request to access the SP application, and the SP sends a SAML request to the IDP for authentication and authorization. This flow is typically used in situations where the user needs to access a specific resource or application directly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn8e7wmxkfpd2ass0eyty.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn8e7wmxkfpd2ass0eyty.png" alt="Image description" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  SAML Use cases
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Workforce SSO&lt;/strong&gt;&lt;br&gt;
SAML is very popular into Workforce SSO, All the Workforce SSO providers support SAML so it can be integrated with internal tools either SaaS or on-prem. Using workfoce SSO companies can control their employees accesses from a single dashboard, onboarding, management and offbording. As SAML is well defined protocol so it’s highly secure and flexible which fits in enterprise ecosystem for identity use case. All the enterprises and mid-sized businesses use Workforce SSO.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B2B SaaS SSO&lt;/strong&gt;&lt;br&gt;
When we say that all the Enterprise and mid-sized use Workforce SSO means all B2B SaaS solution who deal or want to deal in this segment means they require to integrate SAML so their customer’s Workforce SSO can be integrated with their system. All the B2B SaaS platform these days supports integration of Workforce SSO.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Example SAML Response: *&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;samlp:Response ID="_257f9d9e9fa14962c0803903a6ccad931245264310738"
IssueInstant="2009-06-17T18:45:10.738Z" Version="2.0"&amp;gt;
&amp;lt;saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"&amp;gt;
https://www.salesforce.com
&amp;lt;/saml:Issuer&amp;gt;
&amp;lt;samlp:Status&amp;gt;
&amp;lt;samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/&amp;gt;
&amp;lt;/samlp:Status&amp;gt;

&amp;lt;saml:Assertion ID="_3c39bc0fe7b13769cab2f6f45eba801b1245264310738"
IssueInstant="2009-06-17T18:45:10.738Z" Version="2.0"&amp;gt;
&amp;lt;saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"&amp;gt;
https://www.salesforce.com
&amp;lt;/saml:Issuer&amp;gt;
&amp;lt;saml:Signature&amp;gt;
&amp;lt;saml:SignedInfo&amp;gt;
&amp;lt;saml:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/&amp;gt;
&amp;lt;saml:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/&amp;gt;
&amp;lt;saml:Reference URI="#_3c39bc0fe7b13769cab2f6f45eba801b1245264310738"&amp;gt;
&amp;lt;saml:Transforms&amp;gt;

&amp;lt;saml:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-
signature"/&amp;gt;

&amp;lt;saml:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"&amp;gt;
&amp;lt;ec:InclusiveNamespaces PrefixList="ds saml xs"/&amp;gt;
&amp;lt;/saml:Transform&amp;gt;
&amp;lt;/saml:Transforms&amp;gt;
&amp;lt;saml:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/&amp;gt;
&amp;lt;saml:DigestValue&amp;gt;vzR9Hfp8d16576tEDeq/zhpmLoo=
&amp;lt;/saml:DigestValue&amp;gt;
&amp;lt;/saml:Reference&amp;gt;
&amp;lt;/saml:SignedInfo&amp;gt;
&amp;lt;saml:SignatureValue&amp;gt;
AzID5hhJeJlG2llUDvZswNUrlrPtR7S37QYH2W+Un1n8c6kTC
Xr/lihEKPcA2PZt86eBntFBVDWTRlh/W3yUgGOqQBJMFOVbhK
M/CbLHbBUVT5TcxIqvsNvIFdjIGNkf1W0SBqRKZOJ6tzxCcLo
9dXqAyAUkqDpX5+AyltwrdCPNmncUM4dtRPjI05CL1rRaGeyX
3kkqOL8p0vjm0fazU5tCAJLbYuYgU1LivPSahWNcpvRSlCI4e
Pn2oiVDyrcc4et12inPMTc2lGIWWWWJyHOPSiXRSkEAIwQVjf
Qm5cpli44Pv8FCrdGWpEE0yXsPBvDkM9jIzwCYGG2fKaLBag==
&amp;lt;/saml:SignatureValue&amp;gt;
&amp;lt;saml:KeyInfo&amp;gt;
&amp;lt;saml:X509Data&amp;gt;
&amp;lt;saml:X509Certificate&amp;gt;
MIIEATCCAumgAwIBAgIBBTANBgkqhkiG9w0BAQ0FADCBgzELM
[Certificate truncated for readability...]
&amp;lt;/saml:X509Certificate&amp;gt;
&amp;lt;/saml:X509Data&amp;gt;
&amp;lt;/saml:KeyInfo&amp;gt;
&amp;lt;/saml:Signature&amp;gt;
&amp;lt;saml:Subject&amp;gt;
&amp;lt;saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"&amp;gt;
saml01@salesforce.com
&amp;lt;/saml:NameID&amp;gt;
&amp;lt;saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"&amp;gt;
&amp;lt;saml:SubjectConfirmationData NotOnOrAfter="2009-06-17T18:50:10.738Z"
Recipient="https://login.salesforce.com"/&amp;gt;
&amp;lt;/saml:SubjectConfirmation&amp;gt;
&amp;lt;/saml:Subject&amp;gt;
&amp;lt;saml:Conditions NotBefore="2009-06-17T18:45:10.738Z" NotOnOrAfter="2009-06-
17T18:50:10.738Z"&amp;gt;
&amp;lt;saml:AudienceRestriction&amp;gt;

&amp;lt;saml:Audience&amp;gt;https://saml.salesforce.com&amp;lt;/saml:Audience&amp;gt;
&amp;lt;/saml:AudienceRestriction&amp;gt;
&amp;lt;/saml:Conditions&amp;gt;
&amp;lt;saml:AuthnStatement AuthnInstant="2009-06-17T18:45:10.738Z"&amp;gt;
&amp;lt;saml:AuthnContext&amp;gt;
&amp;lt;saml:AuthnContextClassRef&amp;gt;urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
&amp;lt;/saml:AuthnContextClassRef&amp;gt;
&amp;lt;/saml:AuthnContext&amp;gt;
&amp;lt;/saml:AuthnStatement&amp;gt;
&amp;lt;saml:AttributeStatement&amp;gt;
&amp;lt;saml:Attribute Name="portal_id"&amp;gt;
&amp;lt;saml:AttributeValue xsi:type="xs:anyType"&amp;gt;060D00000000SHZ
&amp;lt;/saml:AttributeValue&amp;gt;
&amp;lt;/saml:Attribute&amp;gt;
&amp;lt;saml:Attribute Name="organization_id"&amp;gt;
&amp;lt;saml:AttributeValue xsi:type="xs:anyType"&amp;gt;00DD0000000F7L5
&amp;lt;/saml:AttributeValue&amp;gt;
&amp;lt;/saml:Attribute&amp;gt;
&amp;lt;saml:Attribute Name="ssostartpage"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"&amp;gt;
&amp;lt;saml:AttributeValue xsi:type="xs:anyType"&amp;gt;
http://www.salesforce.com/security/saml/saml20-gen.jsp
&amp;lt;/saml:AttributeValue&amp;gt;
&amp;lt;/saml:Attribute&amp;gt;
&amp;lt;saml:Attribute Name="logouturl"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"&amp;gt;
&amp;lt;saml:AttributeValue xsi:type="xs:string"&amp;gt;
http://www.salesforce.com/security/del_auth/SsoLogoutPage.html
&amp;lt;/saml:AttributeValue&amp;gt;
&amp;lt;/saml:Attribute&amp;gt;
&amp;lt;/saml:AttributeStatement&amp;gt;
&amp;lt;/saml:Assertion&amp;gt;
&amp;lt;/samlp:Response&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;SAML solves the Security and User experience problems with greater flexibility, it is defacto solution when we think about the identity exchange between two parties. SAML’s strength is it’s well define specification which make this fir for most of the use canse of Identity Federation and SSO. SAML is not that popular in B2C applications, JWT, OAuth and OIDC are well known protocols into B2C.&lt;/p&gt;

</description>
      <category>saml</category>
      <category>sso</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
