<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Daniel Gaio · Writing</title>
    <link>https://danielgaio.com/en/blog/</link>
    <description>Notes on software, AI and learning, in English and Portuguese.</description>
    <atom:link href="https://danielgaio.com/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>From Clicking Robots to Thinking Systems: The Journey from RPA to APA</title>
      <link>https://danielgaio.com/en/blog/from-clicking-robots-to-thinking-systems-the-journey-from-rpa-to-apa-933c4a597fe4/</link>
      <guid isPermaLink="false">https://medium.com/p/933c4a597fe4</guid>
      <pubDate>Sat, 07 Mar 2026 21:07:32 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>en</dc:language>
      <description>A Monday Morning, Two Years Apart In 2022, Laura started her day the same way she always did. Open ERP. Download CSV. Rename file. Paste into accounting system. Fix column misalignment. Reply to three emails asking for…</description>
      <content:encoded>&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/933c4a597fe4/ee6a8c33aa7099c473c0.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@milada_vigerova?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Milada Vigerova&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;h3&gt;A Monday Morning, Two Years Apart&lt;/h3&gt;&lt;p&gt;In 2022, Laura started her day the same way she always did.&lt;/p&gt;&lt;p&gt;Open ERP.&lt;/p&gt;&lt;p&gt;Download CSV.&lt;/p&gt;&lt;p&gt;Rename file.&lt;/p&gt;&lt;p&gt;Paste into accounting system.&lt;/p&gt;&lt;p&gt;Fix column misalignment.&lt;/p&gt;&lt;p&gt;Reply to three emails asking for the same report.&lt;/p&gt;&lt;p&gt;She didn’t hate her job. She hated the repetition.&lt;/p&gt;&lt;p&gt;So the company implemented automation. Suddenly, a digital worker logged in, clicked the same buttons, downloaded the same file, and pasted the same data.&lt;/p&gt;&lt;p&gt;Productivity skyrocketed.&lt;/p&gt;&lt;p&gt;Two years later, the process broke.&lt;/p&gt;&lt;p&gt;The ERP added a new column. The bot failed.&lt;/p&gt;&lt;p&gt;Someone sent a PDF instead of a CSV. The bot failed.&lt;/p&gt;&lt;p&gt;An email subject changed slightly. The bot failed again.&lt;/p&gt;&lt;p&gt;The automation team fixed it each time — until leadership asked a simple question:&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;“Why does our automation still behave like an intern that memorized steps instead of an employee that understands work?”&lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;That question marks the shift from &lt;strong&gt;RPA (Robotic Process Automation)&lt;/strong&gt; to &lt;strong&gt;APA (Agentic Process Automation)&lt;/strong&gt;.&lt;/p&gt;&lt;h3&gt;What RPA Was Designed For&lt;/h3&gt;&lt;h4&gt;Definition&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Robotic Process Automation (RPA)&lt;/strong&gt; automates deterministic, rule-based digital tasks by mimicking human actions in user interfaces.&lt;/p&gt;&lt;p&gt;It does not understand tasks.&lt;/p&gt;&lt;p&gt;It reproduces them.&lt;/p&gt;&lt;p&gt;Think of RPA as a &lt;strong&gt;perfect imitator&lt;/strong&gt;.&lt;/p&gt;&lt;h4&gt;The Original Purpose&lt;/h4&gt;&lt;p&gt;RPA solved a specific industrial-era problem inside modern offices:&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;Humans were acting like APIs between systems that were never designed to communicate.&lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;People copied, pasted, downloaded, renamed, uploaded, reconciled, and retyped data across applications. Not because it required thinking — but because software architecture demanded it.&lt;/p&gt;&lt;p&gt;RPA’s mission was simple:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Remove humans from mechanical digital labor.&lt;/strong&gt;&lt;/p&gt;&lt;h3&gt;How RPA Works (Conceptually)&lt;/h3&gt;&lt;p&gt;RPA follows an explicit script:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Open application&lt;/li&gt;&lt;li&gt;Click coordinates&lt;/li&gt;&lt;li&gt;Read field&lt;/li&gt;&lt;li&gt;Transform value&lt;/li&gt;&lt;li&gt;Paste elsewhere&lt;/li&gt;&lt;li&gt;Repeat&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;It relies on:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Selectors&lt;/li&gt;&lt;li&gt;UI coordinates&lt;/li&gt;&lt;li&gt;Deterministic rules&lt;/li&gt;&lt;li&gt;Structured inputs&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Where RPA Excels&lt;/h3&gt;&lt;p&gt;RPA is extremely effective when:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Inputs are structured&lt;/li&gt;&lt;li&gt;Steps never change&lt;/li&gt;&lt;li&gt;Decisions are binary&lt;/li&gt;&lt;li&gt;Interfaces remain stable&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Real Examples&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Finance&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Invoice posting from standardized PDFs&lt;/li&gt;&lt;li&gt;Bank reconciliation with fixed layouts&lt;/li&gt;&lt;li&gt;Payroll export/import&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;HR&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Employee onboarding forms&lt;/li&gt;&lt;li&gt;ID generation&lt;/li&gt;&lt;li&gt;Benefits enrollment transfers&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Operations&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Order entry from web portals&lt;/li&gt;&lt;li&gt;Shipment tracking updates&lt;/li&gt;&lt;li&gt;Inventory synchronization&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Analogy&lt;/h4&gt;&lt;p&gt;RPA is like a &lt;strong&gt;player piano&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Insert the correct roll, and it performs perfectly.&lt;/p&gt;&lt;p&gt;Change the music slightly — it stops making sense.&lt;/p&gt;&lt;h3&gt;The Limits of Imitation&lt;/h3&gt;&lt;p&gt;Companies discovered a paradox:&lt;/p&gt;&lt;p&gt;They automated tasks… but not work.&lt;/p&gt;&lt;p&gt;Why?&lt;/p&gt;&lt;p&gt;Because real processes are not deterministic.&lt;/p&gt;&lt;p&gt;They include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Emails written in natural language&lt;/li&gt;&lt;li&gt;Exceptions&lt;/li&gt;&lt;li&gt;Ambiguity&lt;/li&gt;&lt;li&gt;Missing information&lt;/li&gt;&lt;li&gt;Judgment&lt;/li&gt;&lt;li&gt;Interpretation&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The moment variability enters the process, RPA becomes fragile.&lt;/p&gt;&lt;p&gt;Organizations compensated by adding:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;More rules&lt;/li&gt;&lt;li&gt;More exception branches&lt;/li&gt;&lt;li&gt;More maintenance&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Eventually, automation cost began rising again.&lt;/p&gt;&lt;p&gt;The problem wasn’t automation.&lt;/p&gt;&lt;p&gt;It was the model of intelligence behind it.&lt;/p&gt;&lt;p&gt;RPA automates &lt;em&gt;steps&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Businesses need automation that handles &lt;em&gt;intent&lt;/em&gt;.&lt;/p&gt;&lt;h3&gt;The Emergence of APA&lt;/h3&gt;&lt;h4&gt;Definition&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;Agentic Process Automation (APA)&lt;/strong&gt; automates goal-oriented workflows using autonomous agents capable of reasoning, interpreting context, and adapting actions dynamically.&lt;/p&gt;&lt;p&gt;RPA asks:&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;“What are the steps?”&lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;APA asks:&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;“What is the objective?”&lt;/em&gt;&lt;/blockquote&gt;&lt;h3&gt;From Script to Intent&lt;/h3&gt;&lt;p&gt;Instead of programming a sequence, APA defines:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Goal&lt;/li&gt;&lt;li&gt;Constraints&lt;/li&gt;&lt;li&gt;Available tools&lt;/li&gt;&lt;li&gt;Knowledge sources&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The agent decides the path.&lt;/p&gt;&lt;h4&gt;Analogy&lt;/h4&gt;&lt;p&gt;If RPA is a player piano,&lt;/p&gt;&lt;p&gt;APA is a musician.&lt;/p&gt;&lt;p&gt;Both produce music.&lt;/p&gt;&lt;p&gt;Only one understands it.&lt;/p&gt;&lt;h3&gt;How APA Works&lt;/h3&gt;&lt;p&gt;An agentic system typically combines:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Language models&lt;/strong&gt; — interpret meaning&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Planning mechanisms&lt;/strong&gt; — decide actions&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Tool usage&lt;/strong&gt; — execute operations&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Memory&lt;/strong&gt; — maintain context&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Feedback loops&lt;/strong&gt; — self-correct&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Instead of hardcoding logic:&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;We describe the job, not the clicks.&lt;/em&gt;&lt;/blockquote&gt;&lt;h3&gt;Example: The Same Process, Reimagined&lt;/h3&gt;&lt;h4&gt;Task: Process incoming supplier invoices&lt;/h4&gt;&lt;h4&gt;RPA Approach&lt;/h4&gt;&lt;p&gt;Rules:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;If email subject contains “Invoice”&lt;/li&gt;&lt;li&gt;Download attachment&lt;/li&gt;&lt;li&gt;Extract fixed fields&lt;/li&gt;&lt;li&gt;If format differs → send to human&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Outcome:&lt;/p&gt;&lt;p&gt;Works perfectly until it doesn’t.&lt;/p&gt;&lt;h4&gt;APA Approach&lt;/h4&gt;&lt;p&gt;Goal:&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;“Record payable obligations accurately in the accounting system.”&lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;Agent behavior:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Reads email&lt;/li&gt;&lt;li&gt;Understands whether it’s an invoice&lt;/li&gt;&lt;li&gt;Interprets attachment (PDF, image, text, portal link)&lt;/li&gt;&lt;li&gt;Finds missing data via vendor history&lt;/li&gt;&lt;li&gt;Queries ERP API&lt;/li&gt;&lt;li&gt;Requests clarification if uncertain&lt;/li&gt;&lt;li&gt;Logs reasoning for auditability&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Outcome:&lt;/p&gt;&lt;p&gt;Not step automation — work automation.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/933c4a597fe4/aa977b4ecf581df5cce4.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;h3&gt;Why APA Naturally Emerged&lt;/h3&gt;&lt;p&gt;RPA reached a ceiling called &lt;strong&gt;process brittleness&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;The business world runs on semi-structured information:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Conversations&lt;/li&gt;&lt;li&gt;Documents&lt;/li&gt;&lt;li&gt;Decisions&lt;/li&gt;&lt;li&gt;Negotiations&lt;/li&gt;&lt;li&gt;Interpretation&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Generative AI introduced machine reasoning over unstructured data.&lt;/p&gt;&lt;p&gt;Once machines could understand instructions, the automation paradigm changed:&lt;/p&gt;&lt;p&gt;We stopped automating interfaces.&lt;/p&gt;&lt;p&gt;We started automating responsibilities.&lt;/p&gt;&lt;h3&gt;The Conceptual Shift&lt;/h3&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/933c4a597fe4/b428a2b3e54199ed137f.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;h3&gt;Practical Applications of APA&lt;/h3&gt;&lt;h4&gt;1. Customer Support Resolution&lt;/h4&gt;&lt;p&gt;Not just classify tickets — solve them.&lt;/p&gt;&lt;p&gt;Agent:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Reads conversation&lt;/li&gt;&lt;li&gt;Queries knowledge base&lt;/li&gt;&lt;li&gt;Executes refunds&lt;/li&gt;&lt;li&gt;Schedules technicians&lt;/li&gt;&lt;li&gt;Escalates only edge cases&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;2. Sales Operations&lt;/h4&gt;&lt;p&gt;Instead of CRM data entry automation:&lt;/p&gt;&lt;p&gt;Agent:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Analyzes meeting transcript&lt;/li&gt;&lt;li&gt;Updates CRM fields&lt;/li&gt;&lt;li&gt;Generates follow-ups&lt;/li&gt;&lt;li&gt;Schedules next steps&lt;/li&gt;&lt;li&gt;Predicts deal risk&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;3. Internal Knowledge Navigation&lt;/h4&gt;&lt;p&gt;Employees don’t search documents anymore.&lt;/p&gt;&lt;p&gt;They ask:&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;“How do I approve an international supplier contract under compliance policy?”&lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;Agent:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Interprets policy&lt;/li&gt;&lt;li&gt;Verifies context&lt;/li&gt;&lt;li&gt;Generates action steps&lt;/li&gt;&lt;li&gt;Launches workflow&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;4. Financial Close&lt;/h4&gt;&lt;p&gt;Rather than reconcile spreadsheets:&lt;/p&gt;&lt;p&gt;Agent:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Investigates discrepancies&lt;/li&gt;&lt;li&gt;Explains variance&lt;/li&gt;&lt;li&gt;Proposes journal entries&lt;/li&gt;&lt;li&gt;Requests approval&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;The Human Analogy&lt;/h3&gt;&lt;p&gt;RPA replaces a clerk’s hands.&lt;/p&gt;&lt;p&gt;APA augments a professional’s judgment.&lt;/p&gt;&lt;p&gt;RPA = Muscle automation&lt;/p&gt;&lt;p&gt;APA = Cognitive automation&lt;/p&gt;&lt;h3&gt;Why APA Does Not Replace RPA&lt;/h3&gt;&lt;p&gt;Important distinction:&lt;/p&gt;&lt;p&gt;APA did not make RPA obsolete.&lt;/p&gt;&lt;p&gt;It made it a component.&lt;/p&gt;&lt;p&gt;RPA becomes a &lt;strong&gt;tool used by agents&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;The agent decides &lt;em&gt;when&lt;/em&gt; to use a deterministic robot.&lt;/p&gt;&lt;p&gt;Think of it this way:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;RPA is a calculator&lt;/li&gt;&lt;li&gt;APA is the accountant&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The accountant still uses the calculator.&lt;/p&gt;&lt;h3&gt;The New Automation Architecture&lt;/h3&gt;&lt;p&gt;Old stack:&lt;/p&gt;&lt;p&gt;Human → UI → RPA → UI → System&lt;/p&gt;&lt;p&gt;New stack:&lt;/p&gt;&lt;p&gt;Human → Agent → APIs / Tools / RPA → Systems&lt;/p&gt;&lt;p&gt;Automation moved up one abstraction level.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/933c4a597fe4/233870a29a399c9d9a1e.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;h3&gt;The Real Impact&lt;/h3&gt;&lt;p&gt;The disruptive aspect is not cost reduction.&lt;/p&gt;&lt;p&gt;It is operational redesign.&lt;/p&gt;&lt;p&gt;RPA optimized existing processes.&lt;/p&gt;&lt;p&gt;APA questions whether the process should exist.&lt;/p&gt;&lt;p&gt;When software can reason, workflows no longer need to mimic paper procedures.&lt;/p&gt;&lt;p&gt;Organizations stop asking:&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;“How do we automate this process?”&lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;They start asking:&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;“What outcome do we actually need?”&lt;/em&gt;&lt;/blockquote&gt;&lt;h3&gt;Returning to Laura&lt;/h3&gt;&lt;p&gt;In 2026, Laura still receives invoices.&lt;/p&gt;&lt;p&gt;But she no longer processes them.&lt;/p&gt;&lt;p&gt;She supervises an agent that explains:&lt;/p&gt;&lt;blockquote&gt;&lt;em&gt;“Vendor used outdated pricing — I corrected using contract version 3.2. Confidence 92%. Please confirm.”&lt;/em&gt;&lt;/blockquote&gt;&lt;p&gt;Laura does not execute work.&lt;/p&gt;&lt;p&gt;She governs decisions.&lt;/p&gt;&lt;p&gt;That is the real transition:&lt;/p&gt;&lt;p&gt;From digital labor → digital collaboration.&lt;/p&gt;&lt;h3&gt;Final Thought&lt;/h3&gt;&lt;p&gt;RPA automated actions because computers couldn’t understand intent.&lt;/p&gt;&lt;p&gt;APA automates outcomes because they now can.&lt;/p&gt;&lt;p&gt;The history of automation is not about replacing humans.&lt;/p&gt;&lt;p&gt;It is about removing the need for humans to behave like machines.&lt;/p&gt;&lt;p&gt;RPA removed repetition.&lt;/p&gt;&lt;p&gt;APA removes interpretation burden.&lt;/p&gt;&lt;p&gt;The next frontier is not faster clicking.&lt;/p&gt;&lt;p&gt;It is delegated thinking.&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>The Daily Architecture: Velocity vs. Preservation</title>
      <link>https://danielgaio.com/en/blog/the-daily-architecture-velocity-vs-preservation-8753ef6d81c8/</link>
      <guid isPermaLink="false">https://medium.com/p/8753ef6d81c8</guid>
      <pubDate>Wed, 21 Jan 2026 13:03:20 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>en</dc:language>
      <description>Consider the modern workday as a logistical problem involving a finite energy source — the human brain—and a fixed timeline. When attempting to navigate from morning to evening without succumbing to exhaustion or…</description>
      <content:encoded>&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/8753ef6d81c8/94729d25d9ba46d8cd53.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@dougbagg_?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Doug Bagg&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Consider the modern workday as a logistical problem involving a finite energy source — the human brain—and a fixed timeline. When attempting to navigate from morning to evening without succumbing to exhaustion or apathy, two distinct operating methodologies often present themselves.&lt;/p&gt;&lt;p&gt;The first is a strategy of Total Conservation: approaching tasks with deliberate slowness and calm, theoretically preserving the battery life of the worker to ensure they survive until evening. The second is a strategy of Total Velocity: moving fast enough to outrun one’s own executive dysfunction, relying on sheer momentum to bypass the need for thought.&lt;/p&gt;&lt;p&gt;The question is not which philosophy is more efficient, but rather which aligns with the actual physics of human motivation. The answer lies not in selecting one, but in understanding where speed is a utility and where it becomes a liability.&lt;/p&gt;&lt;h3&gt;Mode 1: The Conservation Strategy (Slow and Calm)&lt;/h3&gt;&lt;p&gt;This approach treats the worker as a delicate resource that must be carefully rationed. It prioritizes stability over output speed.&lt;/p&gt;&lt;p&gt;The Narrative Arc:&lt;/p&gt;&lt;p&gt;The day begins with a gentle ease. Stress hormones remain low, and the mood is stable. Complex, ambiguous tasks are handled with precision because the cognitive load is manageable. However, as the hours tick by, the silence becomes deafening. The lack of urgency allows the mind to wander, and what began as &amp;quot;pacing oneself&amp;quot; slowly morphs into a state of highly efficient lethargy.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Strengths: High endurance, superior quality control, and emotional stability.&lt;/li&gt;&lt;li&gt;Weaknesses: High risk of under-stimulation. Without the friction of urgency, motivation decays.&lt;/li&gt;&lt;li&gt;The Irony: This mode protects energy perfectly, yet fails to generate the will to use it.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Mode 2: The Velocity Strategy (Fast and Reactive)&lt;/h3&gt;&lt;p&gt;This approach assumes that thinking is the enemy of doing. It relies on the &amp;quot;act first, think later&amp;quot; principle to generate dopamine through quick wins.&lt;/p&gt;&lt;p&gt;The Narrative Arc:&lt;/p&gt;&lt;p&gt;The day starts with a sprint. Action is taken before the brain has time to formulate an objection. Inertia is shattered immediately, and a sense of progress creates a feedback loop of motivation. However, maintaining a sprint for eight hours is biologically impossible. By early afternoon, the error rate spikes, and the worker crashes—exhausted not by the work, but by the frantic inefficiency of the pace.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Strengths: Bypasses overthinking, breaks inertia, and manufactures motivation through movement.&lt;/li&gt;&lt;li&gt;Weaknesses: High energy cost, prone to errors, and guarantees an eventual crash.&lt;/li&gt;&lt;li&gt;The Irony: This mode creates abundant motivation, but burns the very fuel required to sustain it.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;The Synthesis: Sequencing over Selection&lt;/h3&gt;&lt;p&gt;The failure point for most arises from attempting to make a lifestyle out of a tactic.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Adopting Slow Mode exclusively leads to stagnation and boredom.&lt;/li&gt;&lt;li&gt;Adopting Fast Mode exclusively leads to burnout and a pile of rushed, mediocre work.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The most effective day does not choose between the two; it sequences them to exploit the benefits of each while mitigating their respective crashes.&lt;/p&gt;&lt;h3&gt;1. The Launch Phase: Start Fast&lt;/h3&gt;&lt;p&gt;Objective: Overcoming static friction.&lt;/p&gt;&lt;p&gt;At the beginning of the day, or immediately following a break, resistance is at its peak. This is the time for the Velocity Strategy.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Duration: Short bursts (10–30 minutes).&lt;/li&gt;&lt;li&gt;Method: Concrete, unoptimized tasks performed quickly.&lt;/li&gt;&lt;li&gt;Rationale: Speed solves the problem of activation energy. One cannot steer a parked car; one must simply hit the gas.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;2. The Cruising Phase: Work Slow&lt;/h3&gt;&lt;p&gt;Objective: Sustainability and depth.&lt;/p&gt;&lt;p&gt;Once the vehicle is moving, velocity is no longer required to stay in motion. This is the time to downshift into the Conservation Strategy.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Method: Measured pace, fewer task switches, focus on correctness.&lt;/li&gt;&lt;li&gt;Rationale: This prevents the dopamine crash. It allows for deep work without depleting the energy reserves needed for the afternoon.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;3. The Recovery Phase: Restart Fast&lt;/h3&gt;&lt;p&gt;Objective: Breaking new resistance.&lt;/p&gt;&lt;p&gt;When the mind inevitably stalls or distraction sets in, the cycle resets. The worker briefly returns to Velocity mode to regain traction, before settling back into a sustainable rhythm.&lt;/p&gt;&lt;h3&gt;The Operational Conclusion&lt;/h3&gt;&lt;p&gt;To reach the end of the day with both energy and motivation intact, one must abandon the idea of a single &amp;quot;correct&amp;quot; speed.&lt;/p&gt;&lt;p&gt;Fast mode is the ignition key; it gets the machine moving but will not carry it the distance. Slow mode is the transmission; it sustains the journey but cannot start the engine.&lt;/p&gt;&lt;p&gt;The Effective Protocol:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Start Fast: To overcome resistance.&lt;/li&gt;&lt;li&gt;Work Slow: To preserve energy and ensure quality.&lt;/li&gt;&lt;li&gt;Restart Fast: When momentum is lost.&lt;/li&gt;&lt;/ul&gt;</content:encoded>
    </item>
    <item>
      <title>How to Build Your Own Free GitHub Copilot Alternative With Local Models</title>
      <link>https://danielgaio.com/en/blog/how-to-build-your-own-free-github-copilot-alternative-with-local-models-6875d4b21a59/</link>
      <guid isPermaLink="false">https://medium.com/p/6875d4b21a59</guid>
      <pubDate>Mon, 29 Sep 2025 13:01:57 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>en</dc:language>
      <description>If you love GitHub Copilot but don’t want to pay for it (or want your code to stay 100% private), the good news is: you can build a free Copilot alternative running entirely on your laptop. In this guide, I’ll show you…</description>
      <content:encoded>&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/6875d4b21a59/40fa18f83c65cdeb15b1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@davacorp?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;DAVIS VARGAS&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;If you love GitHub Copilot but don’t want to pay for it (or want your code to stay 100% private), the good news is: you can build a free Copilot alternative running entirely on your laptop.&lt;/p&gt;&lt;p&gt;In this guide, I’ll show you how to set up Ollama, DeepSeek Coder, and Continue inside VS Code to create your own “Copilot-like” experience.&lt;/p&gt;&lt;h3&gt;Key Components&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Ollama:&lt;/strong&gt; A lightweight runtime that lets you download and run large language models (LLMs) locally. Think of it like “Docker for AI models.”&lt;/p&gt;&lt;p&gt;&lt;strong&gt;DeepSeek Coder:&lt;/strong&gt; An open-source code generation model trained for programming tasks. It’s smaller than GPT-4 but good enough for inline completions and code assistance.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Continue:&lt;/strong&gt; A free, open-source VS Code extension that brings Copilot-like functionality. It connects to AI models (local or remote) and provides inline completions, refactoring, and code explanations.&lt;/p&gt;&lt;h3&gt;Step 1: Install Ollama&lt;/h3&gt;&lt;p&gt;Ollama runs the model locally on your machine.&lt;/p&gt;&lt;pre&gt;brew install ollama&lt;/pre&gt;&lt;p&gt;Start the Ollama server:&lt;/p&gt;&lt;pre&gt;ollama serve&lt;/pre&gt;&lt;p&gt;By default, it runs on &lt;a href=&quot;http://localhost:11434&quot;&gt;http://localhost:11434.&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;Step 2: Download a Coding Model&lt;/h3&gt;&lt;p&gt;DeepSeek Coder is a great open-source alternative for code completions. Let’s pull the 6.7B version, which runs well on modern Macs:&lt;/p&gt;&lt;pre&gt;ollama pull deepseek-coder:6.7b&lt;/pre&gt;&lt;p&gt;If you have limited resources → try deepseek-coder:1.3b.&lt;/p&gt;&lt;p&gt;If you have a powerful machine (M2 Pro/Max, 32GB+ RAM) → try deepseek-coder:33b for better results.&lt;/p&gt;&lt;h3&gt;Step 3: Install Continue in VS Code&lt;/h3&gt;&lt;p&gt;1. Open VS Code.&lt;br&gt;2. Go to Extensions (Cmd+Shift+X on Mac).&lt;br&gt;3. Search for Continue and install it.&lt;/p&gt;&lt;p&gt;Continue adds an inline assistant (triggered by Cmd+I) and a sidebar chat panel (Cmd+Shift+I).&lt;/p&gt;&lt;h3&gt;Step 4: Connect Continue to Ollama&lt;/h3&gt;&lt;p&gt;Open the Continue configuration file (Settings gear icon -&amp;gt; Models -&amp;gt; Add model -&amp;gt; config file (at the bottom)).&lt;/p&gt;&lt;p&gt;Add these model configurations (change according to your needs):&lt;/p&gt;&lt;pre&gt;name: Local Agent&lt;br&gt;version: 1.0.0&lt;br&gt;schema: v1&lt;br&gt;models:&lt;br&gt; - name: Qwen2.5-Coder 1.5B&lt;br&gt; provider: ollama&lt;br&gt; model: qwen2.5-coder:1.5b-base&lt;br&gt; roles:&lt;br&gt;  - autocomplete&lt;br&gt; - name: Nomic Embed&lt;br&gt; provider: ollama&lt;br&gt; model: nomic-embed-text:latest&lt;br&gt; roles:&lt;br&gt;  - embed&lt;br&gt; - name: Llama 3.2 3B&lt;br&gt; provider: ollama&lt;br&gt; model: llama3.2:3b&lt;br&gt; - name: deepseek-coder:1.3b&lt;br&gt; provider: ollama&lt;br&gt; model: deepseek-coder:1.3b&lt;/pre&gt;&lt;p&gt;To make the model available in the chat model selection, you can simply omit the role field.&lt;/p&gt;&lt;p&gt;Now Continue will talk directly to your locally running Ollama service.&lt;/p&gt;&lt;h3&gt;Step 5: Use Continue Like Copilot&lt;/h3&gt;&lt;p&gt;Open a code file.&lt;/p&gt;&lt;p&gt;Place your cursor where you want completions and start writing your code.&lt;/p&gt;&lt;p&gt;Select a block of code that you want to edit and press Cmd+I to open the text area where you can ask what modifications do you want → the model will generate suggestions inline.&lt;/p&gt;&lt;p&gt;Open the sidebar (Option+Cmd+B) → chat with the model about your code, request explanations, or generate new functions.&lt;/p&gt;&lt;h3&gt;Step 6: Switching Between GitHub Copilot and Continue&lt;/h3&gt;&lt;p&gt;Sometimes you might want to switch back to GitHub Copilot. To avoid Ollama competing with Copilot, you can stop the ollama server with a ctrl+c on the terminal and deactivate the Continue extension in VS Code, and just activating the Github Copilot extension and vice-versa.&lt;/p&gt;&lt;p&gt;This makes it easy to toggle between GitHub Copilot (cloud) and Continue with Ollama (local).&lt;/p&gt;&lt;h3&gt;Pros and Cons vs GitHub Copilot&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;✅ 100% free&lt;br&gt;✅ Fully private (code never leaves your machine)&lt;br&gt;✅ Works offline&lt;br&gt;✅ You can choose the model (DeepSeek, Code Llama, StarCoder, etc.)&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;⚡ Slower than Copilot (depends on your hardware)&lt;br&gt;📏 Smaller models = less accurate than GPT-4&lt;br&gt;⚙️ Requires some setup&lt;/p&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;&lt;p&gt;With just three free tools — Ollama, DeepSeek Coder, and Continue — you can turn VS Code into a free Copilot alternative that respects your privacy and doesn’t require a subscription.&lt;/p&gt;&lt;p&gt;And the best part? You can switch between GitHub Copilot and your local Copilot whenever you want by starting or stopping Ollama.&lt;/p&gt;&lt;p&gt;Give it a try, and see how much control you gain over your development workflow!&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Como criar sua própria alternativa gratuita ao GitHub Copilot com modelos locais</title>
      <link>https://danielgaio.com/pt/blog/como-criar-sua-pr%C3%B3pria-alternativa-gratuita-ao-github-copilot-com-modelos-locais-3c0957793ed2/</link>
      <guid isPermaLink="false">https://medium.com/p/3c0957793ed2</guid>
      <pubDate>Mon, 29 Sep 2025 13:01:51 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>Se você adora o GitHub Copilot, mas não quer pagar por ele (ou quer que seu código permaneça 100% privado), a boa notícia é que você pode criar uma alternativa gratuita ao Copilot rodando inteiramente no seu laptop.…</description>
      <content:encoded>&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/3c0957793ed2/40fa18f83c65cdeb15b1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@davacorp?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;DAVIS VARGAS&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Se você adora o GitHub Copilot, mas não quer pagar por ele (ou quer que seu código permaneça 100% privado), a boa notícia é que você pode criar uma alternativa gratuita ao Copilot rodando inteiramente no seu laptop.&lt;/p&gt;&lt;p&gt;Neste guia, mostrarei como configurar o Ollama, o DeepSeek Coder e a extensão Continue dentro do VS Code para criar sua própria experiência “semelhante ao Copilot”.&lt;/p&gt;&lt;h3&gt;Componentes Principais&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Ollama:&lt;/strong&gt; Um runtime leve que permite baixar e executar modelos de linguagem grandes (LLMs) localmente. Pense nele como um “Docker para modelos de IA”.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;DeepSeek Coder:&lt;/strong&gt; Um modelo de geração de código de código aberto treinado para tarefas de programação. É menor que o GPT-4, mas bom o suficiente para autocomplete e assistência ao código.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Continue:&lt;/strong&gt; Uma extensão gratuita e de código aberto do VS Code que traz funcionalidades semelhantes às do Copilot. Ela se conecta a modelos de IA (locais ou remotos) e fornece autocomplete, refatoração e explicações de código.&lt;/p&gt;&lt;h3&gt;Passo 1: Instale o Ollama&lt;/h3&gt;&lt;p&gt;O Ollama executa o modelo localmente na sua máquina.&lt;/p&gt;&lt;pre&gt;brew install ollama&lt;/pre&gt;&lt;p&gt;Inicie o servidor Ollama:&lt;/p&gt;&lt;pre&gt;ollama serve&lt;/pre&gt;&lt;p&gt;Por padrão, ele roda em &lt;a href=&quot;http://localhost:11434.&quot;&gt;http://localhost:11434.&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;Passo 2: Baixe um Modelo de Codificação&lt;/h3&gt;&lt;p&gt;O DeepSeek Coder é uma ótima alternativa de código aberto para autocompletar código.&lt;/p&gt;&lt;p&gt;Você pode baixar a versão 6.7B, que roda bem em Macs modernos:&lt;/p&gt;&lt;pre&gt;ollama pull deepseek-coder:6.7b&lt;/pre&gt;&lt;p&gt;Se você tem recursos limitados → tente deepseek-coder:1.3b.&lt;/p&gt;&lt;p&gt;Se você tem uma máquina potente (M2 Pro/Max, 32 GB+ RAM) → tente deepseek-coder:33b para obter melhores resultados.&lt;/p&gt;&lt;h3&gt;Passo 3: Instale o Continue no VS Code&lt;/h3&gt;&lt;p&gt;1. Abra o VS Code.&lt;br&gt;2. Acesse Extensões (Cmd+Shift+X no Mac).&lt;br&gt;3. Procure por Continue e instale-o.&lt;/p&gt;&lt;p&gt;O Continue adiciona um assistente em linha (acionado por Cmd+I) e um painel de chat na barra lateral (Option+Cmd+B).&lt;/p&gt;&lt;h3&gt;Etapa 4: Conecte o Continue ao Ollama&lt;/h3&gt;&lt;p&gt;Abra o arquivo de configuração do Continue (ícone de engrenagem Configurações -&amp;gt; Modelos -&amp;gt; Adicionar modelo -&amp;gt; arquivo de configuração (na parte inferior)).&lt;/p&gt;&lt;p&gt;Adicione estas configurações de modelo (altere de acordo com suas necessidades):&lt;/p&gt;&lt;pre&gt;name: Local Agent&lt;br&gt;version: 1.0.0&lt;br&gt;schema: v1&lt;br&gt;models:&lt;br&gt; - name: Qwen2.5-Coder 1.5B&lt;br&gt; provider: ollama&lt;br&gt; model: qwen2.5-coder:1.5b-base&lt;br&gt; roles:&lt;br&gt;  - autocomplete&lt;br&gt; - name: Nomic Embed&lt;br&gt; provider: ollama&lt;br&gt; model: nomic-embed-text:latest&lt;br&gt; roles:&lt;br&gt;  - embed&lt;br&gt; - name: Llama 3.2 3B&lt;br&gt; provider: ollama&lt;br&gt; model: llama3.2:3b&lt;br&gt; - name: deepseek-coder:1.3b&lt;br&gt; provider: ollama&lt;br&gt; model: deepseek-coder:1.3b&lt;/pre&gt;&lt;p&gt;Para o modelo ser listado na seleção de modelos no chat, você pode simplesmente omitir o campo &lt;em&gt;roles&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Agora, o Continue se comunicará diretamente com o serviço Ollama em execução local.&lt;/p&gt;&lt;h3&gt;Etapa 5: Use o Continue como o Copilot&lt;/h3&gt;&lt;p&gt;Abra um arquivo de código.&lt;/p&gt;&lt;p&gt;Posicione o cursor onde deseja um autocomplete e comece a escrever seu código.&lt;/p&gt;&lt;p&gt;Selecione um bloco de código que deseja editar e pressione Cmd+I para abrir a área de texto onde você pode pedir quais modificações deseja → o modelo gerará sugestões em linha.&lt;/p&gt;&lt;p&gt;Abra a barra lateral (Option+Cmd+B) → converse com o modelo sobre seu código, solicite explicações ou gere novas funções.&lt;/p&gt;&lt;h3&gt;Etapa 6: Alternando entre o GitHub Copilot e o Continue&lt;/h3&gt;&lt;p&gt;Às vezes, você pode querer voltar para o GitHub Copilot. Para evitar que o Ollama concorra com o Copilot, você pode parar o servidor Ollama com Ctrl+C no terminal e desativar a extensão Continue no VS Code, ativando apenas a extensão do GitHub Copilot e vice-versa.&lt;/p&gt;&lt;p&gt;Isso facilita a alternância entre o GitHub Copilot (nuvem) e o Continue com o Ollama (local).&lt;/p&gt;&lt;h3&gt;Prós e Contras vs. GitHub Copilot&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Prós:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;✅ 100% gratuito&lt;br&gt;✅ Totalmente privado (o código nunca sai da sua máquina)&lt;br&gt;✅ Funciona offline&lt;br&gt;✅ Você pode escolher o modelo (DeepSeek, Code Llama, StarCoder, etc.)&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Contras:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;⚡ Mais lento que o Copilot (depende do seu hardware)&lt;br&gt;📏 Modelos menores = menos precisos que o GPT-4&lt;br&gt;⚙️ Requer alguma configuração&lt;/p&gt;&lt;h3&gt;Conclusão&lt;/h3&gt;&lt;p&gt;Com apenas três ferramentas gratuitas — Ollama, DeepSeek Coder e Continue — você pode transformar o VS Code em uma alternativa gratuita ao Copilot que respeita sua privacidade e não requer assinatura.&lt;/p&gt;&lt;p&gt;E a melhor parte? Você pode alternar entre o GitHub Copilot e seu Copilot local sempre que quiser, iniciando ou encerrando o Ollama.&lt;/p&gt;&lt;p&gt;Experimente e veja quanto controle você ganha sobre seu fluxo de trabalho e desenvolvimento!&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>O que são Opções</title>
      <link>https://danielgaio.com/pt/blog/o-que-s%C3%A3o-op%C3%A7%C3%B5es-22ce6a6db766/</link>
      <guid isPermaLink="false">https://medium.com/p/22ce6a6db766</guid>
      <pubDate>Mon, 15 Sep 2025 14:20:18 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>Se você quer entender o que são Opções , este post vai apresentar os conceitos fundamentais e algumas técnicas de precificação. Opções são … No mercado financeiro existem diversos tipos de ativos. Alguns são mais…</description>
      <content:encoded>&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/22ce6a6db766/660723ecc0b623b0462a.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;p&gt;Se você quer entender o que são &lt;strong&gt;Opções&lt;/strong&gt;, este post vai apresentar os conceitos fundamentais e algumas técnicas de precificação.&lt;/p&gt;&lt;h3&gt;Opções são …&lt;/h3&gt;&lt;p&gt;No mercado financeiro existem diversos tipos de ativos. Alguns são mais simples, como títulos de dívida pública e privada ou ações de empresas. Outros, porém, são mais complexos e arriscados. Entre eles estão as &lt;strong&gt;Opções&lt;/strong&gt;, que são contratos que dão ao investidor o &lt;strong&gt;direito (mas não a obrigação)&lt;/strong&gt; de comprar ou vender um ativo-objeto (ação, commodity etc.) em uma data futura a um preço pré-determinado.&lt;/p&gt;&lt;p&gt;Chamamos as Opções de &lt;strong&gt;derivativos&lt;/strong&gt;, pois seu preço &lt;strong&gt;deriva&lt;/strong&gt; do valor do ativo ao qual estão vinculadas. A principal fonte de risco está na &lt;strong&gt;volatilidade&lt;/strong&gt; (ou imprevisibilidade) desse ativo.&lt;/p&gt;&lt;p&gt;O comprador da Opção (titular) paga um &lt;strong&gt;prêmio&lt;/strong&gt; ao vendedor (lançador). Em troca, ele adquire o direito de exercer a Opção, isto é, decidir se vai ou não comprar/vender o ativo pelo preço definido em contrato (strike).&lt;/p&gt;&lt;p&gt;👉 &lt;strong&gt;Analogia simples:&lt;/strong&gt; Pense em pagar uma entrada para garantir o direito de assistir a um show. Se o show for cancelado, você perde o valor da entrada (prêmio). Se o show acontecer e o ingresso no mercado estiver mais caro, você sai ganhando, pois já tem o direito de entrar pelo preço combinado.&lt;/p&gt;&lt;h3&gt;Call (Opção de Compra)&lt;/h3&gt;&lt;p&gt;Este é o direito de compra (Call), que concede ao detentor da opção o direito de comprar um ativo-objeto pelo preço e período estabelecidos em contrato. Ao se comprar uma opção de compra, está se fazendo um tratado onde quem tem a opção possui a segurança de poder comprar, até a data limite acordada, o ativo-objeto pelo preço que foi acordado em contrato, mesmo que este ativo-objeto tenha se valorizado. No ato da compra, o titular paga ao lançador o prêmio (valor da opção), à vista.&lt;/p&gt;&lt;p&gt;O lançador de uma Call deve realizar esta operação através de uma corretora de valores mobiliários. Ao fazer isso, ele assume perante a Bolsa de Valores a responsabilidade de vender o ativo-objeto se o titular da Call exercê-la. Ou seja, se o titular da opção resolver exercer seu direito de comprar o ativo-objeto, o lançador é obrigado a fazê-lo pelo preço de exercício (strike), que é o preço pré-acordado em contrato.&lt;/p&gt;&lt;p&gt;As opções de compra devem ser adquiridas quando houver a previsão de que o ativo-objeto vai se valorizar. Assim, se a valorização realmente ocorrer, a opção será exercida e o ativo-objeto será comprado por um preço abaixo do valor atual de mercado.&lt;/p&gt;&lt;h4&gt;Lucro e prejuíso nas Calls&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Para o titular (comprador):&lt;/strong&gt;&lt;br&gt; — Lucro:&lt;br&gt; 1. Revender a Call por um valor maior que o pago.&lt;br&gt; 2. Exercer a Call, comprando o ativo a um preço mais baixo que o de mercado.&lt;br&gt; — Prejuízo:&lt;br&gt;1. Revender a Call por um valor menor que o pago.&lt;br&gt;2. Deixar a Opção expirar sem exercer (perda do prêmio).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Para o lançador (vendedor):&lt;/strong&gt;&lt;br&gt; — Lucro:&lt;br&gt;1. Recomprar a Call por um valor menor.&lt;br&gt;2. A Opção expira sem ser exercida (lucro é o prêmio recebido).&lt;br&gt; — Prejuízo:&lt;br&gt;1. Recomprar por um valor maior.&lt;br&gt;2. Ser obrigado a vender o ativo por um preço abaixo do mercado.&lt;/li&gt;&lt;/ul&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/22ce6a6db766/d4bd8d4b199b9449f56d.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;h4&gt;Exemplo de Call&lt;/h4&gt;&lt;p&gt;Um exemplo prático de operação de Call no cotidiano é a compra de um imóvel. Imagine que João encontra uma casa avaliada em R$ 1 milhão que desperta seu interesse, mas ele não possui o valor integral para pagamento à vista. Sabendo que conseguirá o financiamento necessário em 30 dias, João decide fazer um contrato de opção de compra com o proprietário.&lt;/p&gt;&lt;p&gt;Neste acordo, João paga um prêmio de R$ 10.000 (equivalente a 1% do valor do imóvel) para garantir o direito exclusivo de comprar a propriedade pelo preço fixo de R$ 1 milhão durante os próximos 30 dias. O proprietário, em contrapartida, compromete-se a não vender o imóvel para terceiros neste período.&lt;/p&gt;&lt;p&gt;Durante esses 30 dias, João tem total flexibilidade: pode exercer seu direito e efetivar a compra pelo valor acordado, ou simplesmente deixar a opção expirar se mudar de ideia ou não conseguir o financiamento. Caso opte por não comprar, João perde apenas os R$ 10.000 do prêmio pago, sem qualquer obrigação adicional. O proprietário, por sua vez, fica livre para negociar com outros interessados e mantém o valor do prêmio como compensação pela exclusividade concedida.&lt;/p&gt;&lt;h3&gt;Put (Opção de Venda)&lt;/h3&gt;&lt;p&gt;O direito de venda (Put) concede ao detentor da opção o direito de vender um ativo-objeto pelo preço estabelecido em contrato, independentemente de sua cotação no mercado. Ao adquirir uma opção de venda, o comprador deve pagar imediatamente o prêmio à vista ao lançador (vendedor da opção).&lt;/p&gt;&lt;p&gt;O lançador assume perante a Bolsa de Valores a obrigação de comprar o ativo-objeto pelo preço de exercício (strike) caso o titular da opção decida exercê-la. É importante ressaltar que o detentor da Put possui apenas o direito, não a obrigação, podendo escolher exercer ou não a opção até a data de vencimento.&lt;/p&gt;&lt;p&gt;As opções de venda (Puts) servem principalmente como proteção (hedge) contra a desvalorização de ativos no mercado. Representam uma estratégia defensiva que permite ao investidor estabelecer um “preço mínimo” de venda para seus ativos.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Quando utilizar Puts:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Comprar uma Put:&lt;/strong&gt; Quando se prevê desvalorização do ativo-objeto. O investidor garante o direito de vender pelo preço do strike, mesmo que o mercado esteja em queda.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Vender uma Put:&lt;/strong&gt; Quando se acredita na valorização do ativo-objeto. O lançador aposta que a opção não será exercida, lucrando com o prêmio recebido.&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Lucro e prejuíso nas Puts&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Para o Titular (comprador da Put):&lt;/strong&gt;&lt;br&gt; — Lucro:&lt;br&gt; 1. Revenda por valor superior: Vender a Put por um prêmio maior que o pago&lt;br&gt; 2. Exercício da opção: Vender o ativo-objeto pelo strike quando o preço de mercado estiver abaixo&lt;br&gt; — Prejuíso:&lt;br&gt; 1. Revenda por valor inferior: Vender a Put por prêmio menor que o pago&lt;br&gt; 2. Expiração sem exercício: Perder o prêmio pago quando não vende nem exerce a opção&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Para o Lançador (vendedor da Put):&lt;/strong&gt;&lt;br&gt; — Lucro:&lt;br&gt; 1. Recompra por valor inferior: Comprar de volta a Put por um prêmio menor&lt;br&gt; 2. Expiração sem exercício: Manter o prêmio quando a opção não é exercida&lt;br&gt; — Prejuíso:&lt;br&gt; 1. Recompra por valor superior: Comprar de volta por prêmio maior que o recebido&lt;br&gt; 2. Exercício forçado: Ser obrigado a comprar o ativo-objeto pelo strike quando o preço de mercado está &lt;strong&gt;abaixo&lt;/strong&gt; desse valor&lt;/li&gt;&lt;/ul&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/22ce6a6db766/fd8d0d433fbcb37fd48a.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;h4&gt;Exemplo de Put&lt;/h4&gt;&lt;p&gt;Um exemplo prático de opção de venda (Put) pode ser observado no seguro automotivo. Quando um proprietário contrata um seguro para seu veículo, ele está, na essência, adquirindo uma opção de venda onde:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;O proprietário (titular da Put)&lt;/strong&gt; paga um prêmio anual à seguradora e obtém o direito de “vender” seu veículo pelo valor da tabela FIPE em caso de sinistro. Mesmo que o carro esteja completamente destruído (valor de mercado = zero), a seguradora é obrigada a indenizá-lo pelo valor integral estabelecido na apólice.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;A seguradora (lançadora da Put)&lt;/strong&gt; assume a obrigação de “comprar” o veículo sinistrado pelo preço acordado, independentemente do estado em que se encontre. Se não houver sinistros durante a vigência da apólice, a seguradora mantém o prêmio recebido como lucro.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Cenários possíveis:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Sinistro total:&lt;/strong&gt; O proprietário “exerce a opção”, recebendo a indenização pelo valor da tabela&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Sem sinistros:&lt;/strong&gt; O proprietário perde o prêmio pago, mas manteve a proteção durante o período&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Os códigos de negociações de Opções&lt;/h3&gt;&lt;p&gt;Assim como as ações, as opções também possuem um &lt;em&gt;ticker&lt;/em&gt; de negociação. Esse código é composto por sete ou oito caracteres, sendo os cinco primeiros letras e os dois ou três últimos números. A estrutura do ticker revela diversas informações importantes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Ativo-objeto:&lt;/strong&gt; Os quatro primeiros caracteres correspondem ao ticker do ativo-objeto, ou seja, o mesmo utilizado para negociar a ação principal. Exemplos comuns incluem &lt;strong&gt;PETR&lt;/strong&gt; (Petrobras) e &lt;strong&gt;VALE&lt;/strong&gt; (Vale).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Tipo de opção e vencimento:&lt;/strong&gt; O quinto caractere é uma letra que indica se a opção é de compra ou de venda, além de revelar o mês de vencimento. Existe uma tabela específica que relaciona cada letra ao tipo de opção e ao mês correspondente.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Preço de exercício (strike):&lt;/strong&gt; Os dois ou três últimos caracteres representam o preço de exercício. No entanto, esse valor pode não refletir o strike real, já que o código não é ajustado automaticamente em casos de grupamentos, bonificações, desdobramentos ou outros eventos corporativos que afetam o ativo-objeto.&lt;/li&gt;&lt;/ul&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/22ce6a6db766/0df7d085214c43a90c51.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Descrição das partes do código de uma Opção. Fonte: [5]&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;O vencimento das opções é sempre na &lt;strong&gt;terceira segunda-feira de cada mês&lt;/strong&gt;. Como mencionado, o quinto caractere do ticker — uma letra — indica tanto o mês de vencimento quanto o tipo da opção (compra ou venda), conforme detalhado na tabela a seguir.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/22ce6a6db766/958ea33323d79c73d7ef.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Tabela de vencimento de Opções. Fonte: [5]&lt;/figcaption&gt;&lt;/figure&gt;&lt;h3&gt;Moneyness das Opções&lt;/h3&gt;&lt;p&gt;O termo moneyness classifica a posição do preço de uma opção em relação ao preço do ativo-objeto. As três categorias são: In the money (ITM), At the money (ATM) e Out of the money (OTM).&lt;/p&gt;&lt;blockquote&gt;📌 &lt;strong&gt;Analogia:&lt;/strong&gt; Pense em ingressos de cinema.&lt;br&gt;- ITM: você já tem o ingresso comprado por um preço menor que a bilheteria atual.&lt;br&gt;- ATM: o ingresso custa praticamente o mesmo do balcão.&lt;br&gt;- OTM: você tem um “vale-ingresso”, mas ele só vale se o preço subir ou cair — caso contrário, não compensa.&lt;/blockquote&gt;&lt;h4&gt;Definições claras&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;In the money (ITM)&lt;/strong&gt;&lt;br&gt; — Call: o preço à vista do ativo-objeto é maior que o strike.&lt;br&gt; — Put: o preço à vista do ativo-objeto é menor que o strike. &lt;br&gt; — ITM representa valor intrínseco positivo para a opção.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;At the money (ATM)&lt;/strong&gt; &lt;br&gt; — O strike está aproximadamente igual ao preço à vista do ativo-objeto. Pode haver pequena diferença para cima ou para baixo, mas a opção está essencialmente na região do dinheiro.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Out of the money (OTM)&lt;/strong&gt;&lt;br&gt; — Call: o preço à vista do ativo-objeto é menor que o strike.&lt;br&gt; — Put: o preço à vista do ativo-objeto é maior que o strike. &lt;br&gt; — OTM não apresenta valor intrínseco.&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Exercício no vencimento&lt;/h4&gt;&lt;p&gt;Opções que estiverem ITM na data de vencimento normalmente são exercidas automaticamente, pois apresentam valor intrínseco realizável no exercício. O lucro resultante do exercício corresponde à diferença entre o preço do ativo-objeto e o strike, considerando custos e taxas.&lt;/p&gt;&lt;h4&gt;Exemplo de moneyness&lt;/h4&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/22ce6a6db766/1488a368e36039072366.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Exemplo de classificação por Moneyness. Criado pelo autor com dados da plataforma OpLab coletados em 20 de abril de 2020.&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Na linha 1, a opção VALEE427 apresenta valor de mercado R$1,28 distante do strike, mas a ferramenta a classifica como No dinheiro ou na região do dinheiro. Na linha 2, a opção está Fora do dinheiro, pois o preço de mercado está abaixo do strike, tornando improvável seu exercício. Na linha 3, o strike é bem inferior ao valor atual do ativo, o que favorece o exercício da opção, já que permitiria comprar o ativo por um preço abaixo do mercado, caracterizando-a como Dentro do dinheiro.&lt;/p&gt;&lt;h3&gt;Volatilidade Implicita&lt;/h3&gt;&lt;p&gt;Na precificação de opções, existem dois tipos principais de volatilidade: a histórica e a implícita.&lt;/p&gt;&lt;p&gt;A volatilidade histórica é calculada a partir dos preços passados do ativo-subjacente e costuma servir de referência para estimar a volatilidade futura na aplicação da fórmula de Black-Scholes. Já a volatilidade implícita é obtida invertendo o modelo de Black-Scholes: parte-se do preço de mercado da opção (pressuposto como preço justo), insere-se esse valor na fórmula e isola-se a volatilidade.&lt;/p&gt;&lt;p&gt;Quanto mais uma opção está fora do dinheiro (OTM) ou muito dentro do dinheiro (ITM), maior tende a ser sua volatilidade implícita em comparação às ATM. Essa diferença nas volatilidades conforma a “volatility smile”, ou curva em formato de sorriso, ao se plotar a volatilidade implícita em função dos strikes.&lt;/p&gt;&lt;p&gt;A volatilidade implícita é um dos principais insumos para traders de opções, pois permite especular sobre o movimento futuro da volatilidade. Em geral:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Quando a volatilidade implícita está baixa, costuma-se comprar opções ou estratégias de compra de volatilidade.&lt;/li&gt;&lt;li&gt;Quando ela está alta, a venda de volatilidade (por meio de venda de opções) tende a ser mais atraente.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Observa-se também uma relação inversa entre preço do ativo e volatilidade: em mercados em queda ou em crise, a volatilidade cresce devido ao aumento da incerteza. Já em momentos de recuperação ou de mercados estáveis, a volatilidade tende a diminuir.&lt;/p&gt;&lt;p&gt;Pontos de Atenção:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Black-Scholes aceita qualquer estimativa de volatilidade como input, não somente a histórica.&lt;/li&gt;&lt;li&gt;A smile pode assumir outros formatos (skew, smirk) dependendo do ativo e das condições de mercado.&lt;/li&gt;&lt;li&gt;Em crises, o skew (assimetria) costuma se acentuar, elevando mais ainda a volatilidade de puts profundas OTM.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Conclusão&lt;/h3&gt;&lt;p&gt;Em resumo, as Opções são ferramentas poderosas no mercado financeiro, capazes de gerar proteção, alavancagem e também oportunidades de especulação — mas, como vimos, carregam riscos proporcionais à sua complexidade. Dominar conceitos como Call, Put, moneyness e volatilidade é apenas o primeiro passo. A prática, acompanhada de estudo contínuo, é o que realmente ajuda a transformar teoria em estratégia sólida. Se este conteúdo despertou sua curiosidade, recomendo seguir explorando materiais adicionais e simulando operações em plataformas de teste antes de investir de fato — assim, você constrói confiança e reduz a chance de erros custosos.&lt;/p&gt;&lt;p&gt;🎧 &lt;strong&gt;Recomendação de podcast sobre Opções:&lt;/strong&gt;&lt;br&gt;&lt;a href=&quot;https://pca.st/episode/efb46cee-b2c7-48ae-8cf5-e4a06f74396e&quot;&gt;Ouvir&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;Referências&lt;/h3&gt;&lt;p&gt;1. Portal do Investidor. Mercado de Opções. Disponível em: [&lt;a href=&quot;https://www.investidor.gov.br/menu/Menu_Investidor/derivativos/mercado_opcoes.html&quot;&gt;https://www.investidor.gov.br/menu/Menu_Investidor/derivativos/mercado_opcoes.html](https://www.investidor.gov.br/menu/Menu_Investidor/derivativos/mercado_opcoes.html).&lt;/a&gt; Acesso em: 20 mar. 2020.&lt;br&gt;2. MESA DE OPERAÇÕES DA CLEAR. Mercado de Opções. São Paulo, 28 p. Disponível em: [&lt;a href=&quot;https://www.clear.com.br/site/pubfiles/ebook/eBook-Opcoes-Clear.pdf&quot;&gt;https://www.clear.com.br/site/pubfiles/ebook/eBook-Opcoes-Clear.pdf](https://www.clear.com.br/site/pubfiles/ebook/eBook-Opcoes-Clear.pdf).&lt;/a&gt; Acesso em: 03 abr. 2020.&lt;br&gt;3. Opções: Venda (Put). Disponível em: [&lt;a href=&quot;https://br.advfn.com/investimentos/opcoes/opcao-de-venda&quot;&gt;https://br.advfn.com/investimentos/opcoes/opcao-de-venda](https://br.advfn.com/investimentos/opcoes/opcao-de-venda).&lt;/a&gt; Acesso em: 04 abr. 2020.&lt;br&gt;4. Opções: Compra (Call). Disponível em: [&lt;a href=&quot;https://br.advfn.com/investimentos/opcoes/opcao-de-compra&quot;&gt;https://br.advfn.com/investimentos/opcoes/opcao-de-compra](https://br.advfn.com/investimentos/opcoes/opcao-de-compra).&lt;/a&gt; Acesso em: 05 abr. 2020.&lt;br&gt;5. ADVFN. Opções: Código Bovespa. Disponível em: [&lt;a href=&quot;https://br.advfn.com/investimentos/opcoes/codigo-bovespa&quot;&gt;https://br.advfn.com/investimentos/opcoes/codigo-bovespa](https://br.advfn.com/investimentos/opcoes/codigo-bovespa).&lt;/a&gt; Acesso em: 17 abr. 2020.&lt;br&gt;6. O QUE é ATM, ITM e OTM nas OPÇÕES? — Opções para Iniciantes. [s.i.]: Youtube, 2019. (9 min.), color. Legendado. Disponível em: [&lt;a href=&quot;https://youtu.be/dRLesPcTE54&quot;&gt;https://youtu.be/dRLesPcTE54](https://youtu.be/dRLesPcTE54).&lt;/a&gt; Acesso em: 18 abr. 2020.&lt;br&gt;7. XP INVESTIMENTOS. Compra e venda de Opções: Calls e Puts. Disponível em: [&lt;a href=&quot;https://institucional.xpi.com.br/investimentos/produtos-estruturados/Compra%20e%20Venda%20de%20Call%20e%20Put.pdf&quot;&gt;https://institucional.xpi.com.br/investimentos/produtos-estruturados/Compra%20e%20Venda%20de%20Call%20e%20Put.pdf](https://institucional.xpi.com.br/investimentos/produtos-estruturados/Compra%20e%20Venda%20de%20Call%20e%20Put.pdf).&lt;/a&gt; Acesso em: 19 abr. 2020.&lt;br&gt;8. ROXO, Luiz Fernando. O que é Volatilidade Implícita para o mercado de Opções? 2019. Disponível em: [&lt;a href=&quot;https://blog.luizfernandoroxo.com.br/volatilidade-implicita/&quot;&gt;https://blog.luizfernandoroxo.com.br/volatilidade-implicita/](https://blog.luizfernandoroxo.com.br/volatilidade-implicita/).&lt;/a&gt; Acesso em: 21 abr. 2020.&lt;/p&gt;&lt;p&gt;Originalmente publicado em 09/05/2020.&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Amplificador Somador Não Inversor: Entendendo Passo a Passo</title>
      <link>https://danielgaio.com/pt/blog/amplificador-somador-n%C3%A3o-inversor-entendendo-passo-a-passo-aca0b13fa5c4/</link>
      <guid isPermaLink="false">https://medium.com/p/aca0b13fa5c4</guid>
      <pubDate>Mon, 01 Sep 2025 13:01:38 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>O objetivo deste circuito é obter uma expressão para a saída V_o . Para isso, começamos encontrando as expressões de V_+ e V_- . Como sabemos que em um amplificador operacional ideal esses dois pontos estão no mesmo…</description>
      <content:encoded>&lt;p&gt;O objetivo deste circuito é obter uma expressão para a saída &lt;strong&gt;&lt;em&gt;V_o&lt;/em&gt;&lt;/strong&gt;. Para isso, começamos encontrando as expressões de &lt;strong&gt;&lt;em&gt;V_+&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;V_-&lt;/em&gt;&lt;/strong&gt;. Como sabemos que em um amplificador operacional ideal esses dois pontos estão no mesmo potencial, basta igualá-los e manipular as equações até isolar &lt;strong&gt;&lt;em&gt;V_o&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;h3&gt;1. Representação do circuito&lt;/h3&gt;&lt;p&gt;Antes de começarmos as manipulações, veja abaixo o aspecto geral do circuito que vamos analisar:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/7c67483171c56ab89d9e.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Diagrama esquemático de um amplificador operacional não inversor configurado como somador, com múltiplas fontes de entrada conectadas ao terminal não inversor via resistores, e feedback através de resistores ao terminal inversor.&lt;/figcaption&gt;&lt;/figure&gt;&lt;h3&gt;2. Encontrando V_+&lt;/h3&gt;&lt;p&gt;No nó &lt;strong&gt;&lt;em&gt;V_+&lt;/em&gt;&lt;/strong&gt;, o &lt;strong&gt;somatório das correntes que chegam pelos resistores conectados às fontes de tensão&lt;/strong&gt; deve ser igual à corrente que sai pelo resistor &lt;strong&gt;&lt;em&gt;R_z&lt;/em&gt;&lt;/strong&gt;, que está aterrado.&lt;/p&gt;&lt;p&gt;Ou seja, aplicamos a &lt;strong&gt;Lei de Kirchhoff das Correntes (LKC)&lt;/strong&gt;: a soma das correntes que entram em um nó é igual à soma das correntes que saem. Em (1) temos que a diferença entre a tensão da fonte &lt;strong&gt;&lt;em&gt;V_1&lt;/em&gt;&lt;/strong&gt; e a fonte &lt;strong&gt;&lt;em&gt;V_+&lt;/em&gt;&lt;/strong&gt; dará a tensão sobre o resistor &lt;strong&gt;&lt;em&gt;R_1&lt;/em&gt;&lt;/strong&gt;, da mesma forma para as demais tensões. (2) nos apresenta a lei de ohm dos nós, onde o somatório das correntes que entram em um nó deve ser igual ao somatório das correntes que saem.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/0c8d1d62ad5e422f5c24.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Descrição: Equação mostrando a soma das correntes que chegam ao nó &lt;strong&gt;&lt;em&gt;V_+&lt;/em&gt;&lt;/strong&gt; através dos resistores &lt;strong&gt;R_1&lt;/strong&gt;, &lt;strong&gt;R_2&lt;/strong&gt;, …, &lt;strong&gt;R_n&lt;/strong&gt;, igualada à corrente que sai pelo resistor &lt;strong&gt;R_z&lt;/strong&gt;.&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Cada corrente pode ser obtida pela Lei de Ohm:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/0b4dd8d825b602416b71.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;p&gt;E a corrente de saída é:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/af51f56617e4c810164d.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;p&gt;📌 &lt;strong&gt;Analogia&lt;/strong&gt;: pense em um cruzamento onde várias ruas trazem carros (correntes) de diferentes pontos (&lt;strong&gt;&lt;em&gt;V_1&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;V_2&lt;/em&gt;&lt;/strong&gt;, …, &lt;strong&gt;&lt;em&gt;V_n&lt;/em&gt;&lt;/strong&gt;). Toda essa movimentação precisa fluir de forma equilibrada, de modo que o total que chega ao cruzamento (&lt;strong&gt;&lt;em&gt;V_+&lt;/em&gt;&lt;/strong&gt;) seja o mesmo que sai pelo único caminho de saída (&lt;strong&gt;&lt;em&gt;R_z&lt;/em&gt;&lt;/strong&gt;).&lt;/p&gt;&lt;p&gt;Após algumas manipulações, obtemos a expressão simplificada para &lt;strong&gt;&lt;em&gt;V_+&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/405c29daf5a6c9885d88.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;p&gt;Formamos a equação (3) abaixo:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/31404ea31d8c1d2506b8.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;p&gt;E substituindo a somatória dos inversos das resistências por um fator &lt;strong&gt;&lt;em&gt;A&lt;/em&gt;&lt;/strong&gt;, obtemos (4).&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/5bb5d1a89f03c2972068.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Descrição: Expressão de &lt;strong&gt;V_+&lt;/strong&gt; em termos das tensões de entrada e resistores, já organizada em forma reduzida.&lt;/figcaption&gt;&lt;/figure&gt;&lt;h3&gt;3. Encontrando V_-&lt;/h3&gt;&lt;p&gt;No terminal inversor (&lt;strong&gt;&lt;em&gt;V_-&lt;/em&gt;&lt;/strong&gt;), sabemos que a corrente de entrada do amplificador operacional é praticamente nula (idealmente zero). Isso significa que a corrente que chega deve ser igual à que sai, ou seja:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/837869169599a7448b35.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;p&gt;Logo, obtemos a equação (5):&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/67208277a407f9ba74cc.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Representação das correntes que entram e saem do nó &lt;strong&gt;V_-&lt;/strong&gt;, mostrando a relação de equilíbrio entre elas.&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;A partir disso, obtemos uma relação matemática que depende dos resistores envolvidos, e introduzimos um fator &lt;strong&gt;&lt;em&gt;B&lt;/em&gt;&lt;/strong&gt; para simplificar a soma dos inversos das resistências. Tal como demonstrado nas manipulações a seguir:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/2f81eb4d0b1eb62dfd31.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;p&gt;Por fim, substituindo o termo contendo os inversos das resistências por um fator &lt;strong&gt;&lt;em&gt;B&lt;/em&gt;&lt;/strong&gt; e isolando a variável , nós obtemos a seguinte expressão:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/f212003fd0232da5223e.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Equação final de &lt;strong&gt;V_-&lt;/strong&gt;, já isolada em função das tensões e resistores.&lt;/figcaption&gt;&lt;/figure&gt;&lt;h3&gt;4. Igualando V_+ e V_-&lt;/h3&gt;&lt;p&gt;Agora estamos prontos para montar uma expressão para &lt;strong&gt;&lt;em&gt;V_o&lt;/em&gt;&lt;/strong&gt;. Como em um amplificador operacional ideal temos &lt;strong&gt;&lt;em&gt;V_+ = V_-&lt;/em&gt;&lt;/strong&gt;, podemos simplesmente igualar as duas expressões obtidas como se observa em (6) e então basta isolar &lt;strong&gt;&lt;em&gt;V_o&lt;/em&gt;&lt;/strong&gt; tal como em (7).&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/5435499cb712eca73611.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Expressão final de &lt;strong&gt;V_o&lt;/strong&gt; em função das tensões de entrada, resistores e fatores de simplificação &lt;strong&gt;A&lt;/strong&gt; e &lt;strong&gt;B&lt;/strong&gt;.&lt;/figcaption&gt;&lt;/figure&gt;&lt;h3&gt;5. Caso Particular: Resistores Iguais&lt;/h3&gt;&lt;p&gt;Se todos os resistores forem iguais (&lt;strong&gt;&lt;em&gt;R_1 = R_2 = … = R_n = R&lt;/em&gt;&lt;/strong&gt;), os fatores &lt;strong&gt;&lt;em&gt;A&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;B&lt;/em&gt;&lt;/strong&gt; se tornam expressões mais simples. Tal como pode se observar em (8) e (9).&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/7329aca5e79e6bd1a61a.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Equações mostrando o valor simplificado dos fatores &lt;strong&gt;A&lt;/strong&gt; e &lt;strong&gt;B&lt;/strong&gt; quando todas as resistências são iguais.&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Neste cenário, a saída &lt;strong&gt;&lt;em&gt;V_o&lt;/em&gt;&lt;/strong&gt; se transforma em uma soma ponderada das tensões de entrada, representando um &lt;strong&gt;amplificador somador não inversor balanceado&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;📌 &lt;strong&gt;Analogia&lt;/strong&gt;: é como uma votação em que cada entrada (&lt;strong&gt;V_1, V_2, … , V_n&lt;/strong&gt;) tem o mesmo peso. O resultado final (&lt;strong&gt;&lt;em&gt;V_o&lt;/em&gt;&lt;/strong&gt;) é a média ponderada dessas entradas, ajustada pelos resistores de feedback.&lt;/p&gt;&lt;p&gt;Agora basta substituirmos as novas formas de &lt;strong&gt;&lt;em&gt;A&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;B&lt;/em&gt;&lt;/strong&gt; na função de &lt;strong&gt;&lt;em&gt;V_o&lt;/em&gt;&lt;/strong&gt; obtida anteriormente como demonstrado a seguir:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/aca0b13fa5c4/6b802f4974f6aa82e7d4.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Expressão simplificada da saída &lt;strong&gt;V_o&lt;/strong&gt; no caso de resistores iguais, mostrando que o circuito funciona como um somador balanceado.&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Portanto, na equação (10) nós temos a função para a saída &lt;strong&gt;&lt;em&gt;V_o&lt;/em&gt;&lt;/strong&gt; para o caso em que todos os resistores são iguais.&lt;/p&gt;&lt;h3&gt;Conclusão&lt;/h3&gt;&lt;p&gt;O amplificador somador não inversor é uma ferramenta poderosa: ele permite combinar diversas tensões de entrada em uma única saída amplificada, sem inverter o sinal. Esse tipo de circuito é amplamente usado em sistemas de áudio (mistura de sinais), instrumentação e processamento analógico.&lt;/p&gt;&lt;p&gt;👉 Em resumo, o que fizemos aqui foi aplicar as leis fundamentais dos circuitos (Ohm e Kirchhoff), organizar as equações e, com isso, revelar como um op-amp pode atuar como “mixer inteligente” de sinais.&lt;/p&gt;&lt;p&gt;Originalmente publicado em 15/10/2019.&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Python pipenv: gerenciando dependências</title>
      <link>https://danielgaio.com/pt/blog/python-pipenv-gerenciando-depend%C3%AAncias-b37e974c774a/</link>
      <guid isPermaLink="false">https://medium.com/p/b37e974c774a</guid>
      <pubDate>Mon, 25 Aug 2025 13:01:39 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>Este post contém o seguinte conteúdo: Como criar ambiente virtual com pipenv. Demais comandos essenciais durante o desenvolvimento de um projeto. O que é o Pipenv? O Pipenv é uma ferramenta que facilita a vida de quem…</description>
      <content:encoded>&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/b37e974c774a/a000ea88a6c97855d2c8.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;p&gt;Este post contém o seguinte conteúdo:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Como criar ambiente virtual com pipenv.&lt;/li&gt;&lt;li&gt;Demais comandos essenciais durante o desenvolvimento de um projeto.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;O que é o Pipenv?&lt;/h3&gt;&lt;p&gt;O &lt;strong&gt;Pipenv&lt;/strong&gt; é uma ferramenta que facilita a vida de quem trabalha com Python. Ele combina duas tarefas que antes precisavam ser feitas separadamente:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Criar e gerenciar ambientes virtuais&lt;/strong&gt; (com virtualenv).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Instalar e controlar dependências&lt;/strong&gt; (com pip).&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Com o Pipenv, essas etapas ficam integradas em um único fluxo. É como ter uma agenda inteligente que, além de organizar suas reuniões, ainda garante que todas estejam na hora certa e no lugar certo.&lt;/p&gt;&lt;p&gt;O Pipenv cria e gerencia automaticamente ambientes virtuais para cada projeto. Ele também mantém um arquivo chamado &lt;strong&gt;Pipfile&lt;/strong&gt;, onde ficam listadas as bibliotecas que o seu projeto usa. Além disso, gera o &lt;strong&gt;Pipfile.lock&lt;/strong&gt;, que registra exatamente as versões dos pacotes instalados — garantindo que qualquer pessoa que clone o projeto possa reproduzir o mesmo ambiente sem surpresas.&lt;/p&gt;&lt;h3&gt;Instalar pipenv&lt;/h3&gt;&lt;pre&gt;pip install - user pipenv&lt;/pre&gt;&lt;h3&gt;Iniciar um projeto com Pipenv&lt;/h3&gt;&lt;p&gt;Para começar, você pode simplesmente rodar o comando abaixo. Ele cria a estrutura básica de um ambiente virtual:&lt;/p&gt;&lt;pre&gt;pipenv install&lt;/pre&gt;&lt;p&gt;Se quiser já instalar um pacote ao criar o projeto, basta incluir o nome dele:&lt;/p&gt;&lt;pre&gt;pipenv install flask&lt;/pre&gt;&lt;p&gt;Para pacotes de &lt;strong&gt;desenvolvimento&lt;/strong&gt; (como frameworks de teste ou ferramentas de lint), use a flag &lt;em&gt;-d&lt;/em&gt;:&lt;/p&gt;&lt;pre&gt;pipenv install -d pytest&lt;/pre&gt;&lt;p&gt;Para entrar e sair do shell do ambiente virtual:&lt;/p&gt;&lt;pre&gt;pipenv shell&lt;br&gt;deactivate&lt;/pre&gt;&lt;p&gt;👉 Pense no pipenv shell como a chave que liga o motor do seu projeto. Enquanto estiver dentro dele, todos os comandos Python vão rodar isolados daquele ambiente. Ao sair (deactivate), você volta para a sua máquina “normal”.&lt;/p&gt;&lt;h3&gt;Atualizar pacotes do projeto&lt;/h3&gt;&lt;p&gt;Para identificar pacotes desatualizados:&lt;/p&gt;&lt;pre&gt;pipenv update --outdated&lt;/pre&gt;&lt;p&gt;Para atualizar todos os pacotes ou apenas um específico:&lt;/p&gt;&lt;pre&gt;pipenv update&lt;br&gt;pipenv update &amp;lt;nome_pacote&amp;gt;&lt;/pre&gt;&lt;h3&gt;Gerenciando o ambiente virtual&lt;/h3&gt;&lt;p&gt;Visualizar a localização do ambiente virtual atual:&lt;/p&gt;&lt;pre&gt;pipenv --venv&lt;/pre&gt;&lt;p&gt;Excluir o ambiente virtual:&lt;/p&gt;&lt;pre&gt;pipenv --rm&lt;/pre&gt;&lt;p&gt;Listar as dependências de forma estruturada (incluindo subdependências):&lt;/p&gt;&lt;pre&gt;pipenv graph&lt;/pre&gt;&lt;p&gt;Esse comando é especialmente útil quando seu projeto começa a crescer e você precisa entender &lt;strong&gt;“quem depende de quem”&lt;/strong&gt;. É como abrir o mapa de ligações de uma cidade para enxergar quais ruas levam a quais destinos.&lt;/p&gt;&lt;h3&gt;Conclusão&lt;/h3&gt;&lt;p&gt;Neste post vimos os principais comandos do Pipenv que tornam o gerenciamento de ambientes virtuais e pacotes muito mais prático no dia a dia.&lt;/p&gt;&lt;p&gt;Para se aprofundar, vale explorar as referências abaixo e, principalmente, o &lt;a href=&quot;https://github.com/pypa/pipenv&quot;&gt;repositório oficial do projeto no GitHub&lt;/a&gt;. Lá você encontrará exemplos avançados e explicações detalhadas para casos específicos.&lt;/p&gt;&lt;h3&gt;Referências&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;“Pipenv: Python Dev Workflow for Humans — Pipenv 2023.4.30.Dev0 Documentation.” Pypa.io, 2023, pipenv.pypa.io/en/latest/. Accessed 14 May 2023.&lt;/li&gt;&lt;li&gt;“Basic Usage of Pipenv — Pipenv 2020.6.2.Dev0 Documentation.” Readthedocs.io, 2020, pipenv-fork.readthedocs.io/en/latest/basics.html. Accessed 15 May 2023.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Originalmente publicado em 16/05/2023.&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Energy Recovery and Mental Fatigue Clearing</title>
      <link>https://danielgaio.com/en/blog/energy-recovery-and-mental-fatigue-clearing-b9deaf64ca24/</link>
      <guid isPermaLink="false">https://medium.com/p/b9deaf64ca24</guid>
      <pubDate>Mon, 18 Aug 2025 13:03:27 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>en</dc:language>
      <description>Today I’ve been working since 5 a.m. — I’m now in the middle of the afternoon, still pushing through tasks. I did take a 30-minute nap at lunch, but as the day wears on, I can feel the tiredness and decision fatigue…</description>
      <content:encoded>&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/b9deaf64ca24/69f30352a1cee628034a.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@davidmatos?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;David Matos&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Today I’ve been working since 5 a.m. — I’m now in the middle of the afternoon, still pushing through tasks. I did take a 30-minute nap at lunch, but as the day wears on, I can feel the tiredness and decision fatigue creeping in.&lt;/p&gt;&lt;p&gt;You probably know the feeling: your energy drains, and even the smallest choices — replying to an email, picking what to focus on next — start to feel overwhelming.&lt;/p&gt;&lt;p&gt;If you’re like me, someone who deeply values productivity and purpose, then you don’t want to just “give in” and crash. But you also know pushing through in zombie mode is counterproductive.&lt;/p&gt;&lt;p&gt;So, I went looking for fast, effective techniques to restore energy and clarity — and here’s what I’ve learned and tested. You can use these techniques whether you’re a founder, a student, or just grinding through a long day at work.&lt;/p&gt;&lt;h3&gt;🔄 1. “Cognitive Reset” Break (5–10 min)&lt;/h3&gt;&lt;p&gt;This is my go-to when I need to clear mental fog quickly.&lt;/p&gt;&lt;p&gt;How to do it:&lt;/p&gt;&lt;p&gt;1. Step away from all screens.&lt;br&gt;2. Sit or lie down in silence with eyes closed — no input (not even music).&lt;br&gt;3. Breathe slowly: inhale 4 sec → hold 4 sec → exhale 6–8 sec.&lt;br&gt;4. Let your thoughts drift. Don’t force anything.&lt;/p&gt;&lt;p&gt;🧠 Why it works: This resets your prefrontal cortex — the decision-making center — and helps you return to work with clearer focus.&lt;/p&gt;&lt;h3&gt;🚶‍♂️ 2. Move + Sunlight (5–15 min)&lt;/h3&gt;&lt;p&gt;When the body is stagnant, so is the mind.&lt;/p&gt;&lt;p&gt;How to do it:&lt;/p&gt;&lt;p&gt;1. Go outside for a short, brisk walk — even if it’s just around the block.&lt;br&gt;2. Let natural light hit your eyes (no sunglasses).&lt;br&gt;3. Don’t bring your phone. Let your brain wander.&lt;/p&gt;&lt;p&gt;💡 Why it works: Movement and sunlight naturally increase alertness and realign your internal clock, which is often desynced during long workdays.&lt;/p&gt;&lt;h3&gt;🧠 3. The “Decision Flush” Technique (5 min)&lt;/h3&gt;&lt;p&gt;This one is a game-changer when you feel overwhelmed by choices.&lt;/p&gt;&lt;p&gt;How to do it:&lt;/p&gt;&lt;p&gt;1. Write down everything you’re undecided about — from major decisions to small, nagging tasks.&lt;br&gt;2. Label each one:&lt;br&gt; 1. ✅ Do now&lt;br&gt; 2. ⏳ Defer&lt;br&gt; 3. 🔁 Delegate&lt;br&gt;3. Act only on the “Do now” list — defer or ignore the rest.&lt;/p&gt;&lt;p&gt;🧹 Why it works: It empties your mental RAM. You’ll feel lighter, more in control, and regain momentum.&lt;/p&gt;&lt;h3&gt;🧊 4. Cold Water Reset (2–5 min)&lt;/h3&gt;&lt;p&gt;This is surprisingly effective and fast.&lt;/p&gt;&lt;p&gt;How to do it:&lt;/p&gt;&lt;p&gt;1. Splash cold water on your face for 30 seconds.&lt;br&gt;2. Or: hold ice cubes in your hands.&lt;br&gt;3. Or: apply a cold compress to your neck.&lt;/p&gt;&lt;p&gt;💥 Why it works: This activates the vagus nerve, which calms your nervous system, sharpens alertness, and reduces fatigue.&lt;/p&gt;&lt;h3&gt;☕🎧 5. Coffee Nap or Brainwave Music (10–20 min)&lt;/h3&gt;&lt;p&gt;When you’ve hit a wall but still have work to do — this combo is gold.&lt;/p&gt;&lt;p&gt;How to do it:&lt;/p&gt;&lt;p&gt;1. Drink a small cup of coffee quickly.&lt;br&gt;2. Immediately lie down and close your eyes for 10–15 minutes.&lt;br&gt;3. Use noise-canceling headphones or listen to binaural beats (try 4Hz theta waves for recovery).&lt;/p&gt;&lt;p&gt;⏱️ Why it works: Caffeine takes ~20 minutes to kick in. Just as you wake up, it’s hitting your brain — giving you a powerful energy + focus boost.&lt;/p&gt;&lt;h3&gt;⚡ Bonus Tip: Micro-Fuel Your Brain&lt;/h3&gt;&lt;p&gt;Eat a light protein snack (boiled egg, nuts, or Greek yogurt).&lt;/p&gt;&lt;p&gt;Drink water with a pinch of salt or electrolytes.&lt;/p&gt;&lt;p&gt;Avoid sugary snacks or heavy carbs — they’ll crash you fast.&lt;/p&gt;&lt;h3&gt;🧭 Final Thought&lt;/h3&gt;&lt;p&gt;Working from 5 a.m. into the evening can be sustainable — but only if you learn to reset, not just grind.&lt;/p&gt;&lt;p&gt;What I’ve found is that real productivity doesn’t come from nonstop hustle, but from knowing when and how to recover fast and on purpose.&lt;/p&gt;&lt;p&gt;You don’t need a full hour to recharge. Sometimes, just 5–10 minutes of the right kind of break can restore you better than a full afternoon off filled with distractions.&lt;/p&gt;&lt;p&gt;Take a moment. Breathe. Reset. Then get back to building your best work.&lt;/p&gt;&lt;p&gt;—&lt;/p&gt;&lt;p&gt;If this was helpful to you, feel free to share or drop a comment — I’d love to hear what quick resets you use during long days.&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Recuperação de Energia e Eliminação da Fadiga Mental</title>
      <link>https://danielgaio.com/pt/blog/recupera%C3%A7%C3%A3o-de-energia-e-elimina%C3%A7%C3%A3o-da-fadiga-mental-221b12ac5750/</link>
      <guid isPermaLink="false">https://medium.com/p/221b12ac5750</guid>
      <pubDate>Mon, 18 Aug 2025 13:03:26 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>Hoje estou trabalhando desde as 5 da manhã — agora estou no meio da tarde, ainda me esforçando para concluir as tarefas. Tirei um cochilo de 30 minutos no almoço, mas, com o passar do dia, sinto o cansaço e a fadiga de…</description>
      <content:encoded>&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/221b12ac5750/69f30352a1cee628034a.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@davidmatos?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;David Matos&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Hoje estou trabalhando desde as 5 da manhã — agora estou no meio da tarde, ainda me esforçando para concluir as tarefas. Tirei um cochilo de 30 minutos no almoço, mas, com o passar do dia, sinto o cansaço e a fadiga de decisão se infiltrando.&lt;/p&gt;&lt;p&gt;Você provavelmente conhece a sensação: sua energia se esgota e até as menores escolhas — responder a um e-mail, escolher no que focar em seguida — começam a parecer esmagadoras.&lt;/p&gt;&lt;p&gt;Se você é como eu, alguém que valoriza profundamente a produtividade e o propósito, não quer simplesmente “ceder” e desabar. Mas você também sabe que seguir em frente no modo zumbi é contraproducente.&lt;/p&gt;&lt;p&gt;Então, fui em busca de técnicas rápidas e eficazes para restaurar a energia e a clareza — e aqui está o que aprendi e testei. Você pode usar essas técnicas, seja você um fundador, um estudante ou alguém que esteja apenas passando por um longo dia de trabalho.&lt;/p&gt;&lt;h3&gt;🔄 1. Pausa para “Reinicialização Cognitiva” (5 a 10 min)&lt;/h3&gt;&lt;p&gt;Esta é a minha opção quando preciso limpar a névoa mental rapidamente.&lt;/p&gt;&lt;p&gt;Como fazer:&lt;/p&gt;&lt;p&gt;1. Afaste-se de todas as telas.&lt;br&gt;2. Sente-se ou deite-se em silêncio com os olhos fechados — sem estímulos (nem mesmo música).&lt;br&gt;3. Respire lentamente: inspire por 4 segundos → segure por 4 segundos → expire por 6 a 8 segundos.&lt;br&gt;4. Deixe seus pensamentos fluírem. Não force nada.&lt;/p&gt;&lt;p&gt;🧠 Por que funciona: Isso reinicia o córtex pré-frontal — o centro de tomada de decisões — e ajuda você a voltar ao trabalho com mais clareza e foco.&lt;/p&gt;&lt;h3&gt;🚶‍♂️ 2. Movimente-se + Luz Solar (5 a 15 min)&lt;/h3&gt;&lt;p&gt;Quando o corpo está estagnado, a mente também está.&lt;/p&gt;&lt;p&gt;Como fazer:&lt;/p&gt;&lt;p&gt;1. Saia para uma caminhada curta e rápida — mesmo que seja apenas uma volta no quarteirão.&lt;br&gt;2. Deixe a luz natural atingir seus olhos (sem óculos de sol).&lt;br&gt;3. Não leve seu celular. Deixe seu cérebro vagar.&lt;/p&gt;&lt;p&gt;💡 Por que funciona: O movimento e a luz do sol aumentam naturalmente o estado de alerta e realinham seu relógio biológico, que costuma ficar dessincronizado durante longos dias de trabalho.&lt;/p&gt;&lt;h3&gt;🧠 3. A Técnica da “Limpeza de Decisões” (5 min)&lt;/h3&gt;&lt;p&gt;Esta é uma mudança radical quando você se sente sobrecarregado por escolhas.&lt;/p&gt;&lt;p&gt;Como fazer:&lt;/p&gt;&lt;p&gt;1. Anote tudo o que você está indeciso — desde decisões importantes até tarefas pequenas e incômodas.&lt;br&gt;2. Identifique cada uma delas:&lt;br&gt; 1. ✅ Faça agora&lt;br&gt; 2. ⏳ Adie&lt;br&gt; 3. 🔁 Delegue&lt;br&gt;3. Aja apenas com base na lista “Faça agora” — adie ou ignore o restante.&lt;/p&gt;&lt;p&gt;🧹 Por que funciona: Esvazia sua memória RAM. Você se sentirá mais leve, com mais controle e recuperará o ritmo.&lt;/p&gt;&lt;h3&gt;🧊 4. Reinicialização com Água Fria (2 a 5 min)&lt;/h3&gt;&lt;p&gt;Isso é surpreendentemente eficaz e rápido.&lt;/p&gt;&lt;p&gt;Como fazer:&lt;/p&gt;&lt;p&gt;1. Jogue água fria no rosto por 30 segundos.&lt;br&gt;2. Ou: segure cubos de gelo nas mãos.&lt;br&gt;3. Ou: aplique uma compressa fria no pescoço.&lt;/p&gt;&lt;p&gt;💥 Por que funciona: Isso ativa o nervo vago, que acalma o sistema nervoso, aguça o estado de alerta e reduz a fadiga.&lt;/p&gt;&lt;h3&gt;☕🎧 5. Soneca com Café ou Música para Ondas Cerebrais (10 a 20 min)&lt;/h3&gt;&lt;p&gt;Quando você chega ao limite, mas ainda tem trabalho a fazer — essa combinação é ótima.&lt;/p&gt;&lt;p&gt;Como fazer:&lt;/p&gt;&lt;p&gt;1. Beba uma xícara pequena de café rapidamente.&lt;br&gt;2. Deite-se imediatamente e feche os olhos por 10 a 15 minutos.&lt;br&gt;3. Use fones de ouvido com cancelamento de ruído ou ouça batidas binaurais (experimente ondas teta de 4 Hz para recuperação).&lt;/p&gt;&lt;p&gt;⏱️ Por que funciona: A cafeína leva cerca de 20 minutos para fazer efeito. Assim que você acorda, ela já está atingindo seu cérebro — dando um poderoso impulso de energia e foco.&lt;/p&gt;&lt;h3&gt;⚡ Dica bônus: Micro-combustível para seu cérebro&lt;/h3&gt;&lt;p&gt;Coma um lanche leve e proteico (ovo cozido, nozes ou iogurte grego).&lt;/p&gt;&lt;p&gt;Beba água com uma pitada de sal ou eletrólitos.&lt;/p&gt;&lt;p&gt;Evite lanches açucarados ou carboidratos pesados — eles vão te deixar exausto rapidamente.&lt;/p&gt;&lt;h3&gt;🧭 Considerações finais&lt;/h3&gt;&lt;p&gt;Trabalhar das 5 da manhã até a noite pode ser sustentável — mas somente se você aprender a recomeçar, não apenas a se esforçar.&lt;/p&gt;&lt;p&gt;O que descobri é que a verdadeira produtividade não vem da correria ininterrupta, mas de saber quando e como se recuperar rapidamente e de propósito.&lt;/p&gt;&lt;p&gt;Você não precisa de uma hora inteira para recarregar as energias. Às vezes, apenas 5 a 10 minutos de uma pausa adequada podem te restaurar melhor do que uma tarde inteira de folga cheia de distrações.&lt;/p&gt;&lt;p&gt;Reserve um momento. Respire. Reinicie. Depois, volte a desenvolver seu melhor trabalho.&lt;/p&gt;&lt;p&gt;—&lt;/p&gt;&lt;p&gt;Se isso foi útil para você, sinta-se à vontade para compartilhar ou deixar um comentário — adoraria saber quais são as suas dicas rápidas para recuperar energia durante dias longos.&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Dividend Yield: o que é e como entender essa métrica</title>
      <link>https://danielgaio.com/pt/blog/dividend-yield-o-que-%C3%A9-e-como-entender-essa-m%C3%A9trica-fcb3b99be823/</link>
      <guid isPermaLink="false">https://medium.com/p/fcb3b99be823</guid>
      <pubDate>Mon, 11 Aug 2025 13:01:47 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>O dividend yield é a relação entre os dividendos anuais pagos por uma empresa e o preço atual de cada ação. Em outras palavras, ele indica, em forma de porcentagem, o quanto você recebe de dividendos em relação ao valor…</description>
      <content:encoded>&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/fcb3b99be823/464d0813a02083380a6d.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;p&gt;O &lt;strong&gt;dividend yield&lt;/strong&gt; é a relação entre os dividendos anuais pagos por uma empresa e o preço atual de cada ação. Em outras palavras, ele indica, em forma de porcentagem, o quanto você recebe de dividendos em relação ao valor que pagou pela ação.&lt;/p&gt;&lt;p&gt;A fórmula é simples:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/fcb3b99be823/21d86cf3c2d1a9da7316.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;&lt;/figure&gt;&lt;p&gt;Uma boa forma de pensar no dividend yield é compará-lo com um aluguel: se você comprasse um imóvel para alugar, o yield seria o “aluguel anual” dividido pelo “valor do imóvel”. No caso das ações, o imóvel é a ação e o aluguel são os dividendos.&lt;/p&gt;&lt;h3&gt;Algumas características&lt;/h3&gt;&lt;p&gt;Os dividendos estão sujeitos à tributação de imposto de renda. Quando você compra ações de uma empresa, após um período — normalmente trimestral — pode receber uma parte dos lucros dessa empresa, proporcional à quantidade de ações que possui. Isso acontece porque, como acionista, você é um sócio e participa nos lucros por meio dos dividendos.&lt;/p&gt;&lt;p&gt;O dividend yield relaciona o valor pago pela ação com os rendimentos que ela gera ao longo de um período, geralmente 12 meses.&lt;/p&gt;&lt;p&gt;Importante notar: &lt;strong&gt;o dividend yield tem relação inversa com o preço da ação&lt;/strong&gt;. Se o preço da ação sobe e os dividendos permanecem iguais, o yield cai. Se o preço da ação cai, o yield sobe — mas isso não significa, necessariamente, que seja algo positivo.&lt;/p&gt;&lt;p&gt;Assim, o dividend yield é uma estimativa de retorno do investimento baseada &lt;strong&gt;apenas&lt;/strong&gt; nos dividendos, sem considerar a valorização (ou desvalorização) do preço da ação.&lt;/p&gt;&lt;p&gt;Empresas grandes, estáveis e de setores não cíclicos tendem a ter yields mais altos. Já empresas jovens, especialmente em setores como tecnologia, podem ter yields baixos ou até mesmo não pagar dividendos, reinvestindo todo o lucro no próprio crescimento.&lt;/p&gt;&lt;h3&gt;Vantagens e desvantagens&lt;/h3&gt;&lt;p&gt;Uma vantagem de focar no dividend yield, especialmente para investimentos de longo prazo, é que o reinvestimento dos dividendos recebidos pode gerar um efeito de “bola de neve”, aumentando cada vez mais os rendimentos ao longo dos anos.&lt;/p&gt;&lt;p&gt;Por outro lado, um yield alto nem sempre é sinal de saúde financeira. Isso porque os valores pagos aos acionistas como dividendos poderiam estar sendo reinvestidos na própria empresa para financiar seu crescimento. Além disso, um yield elevado pode ser consequência da queda no preço da ação — que pode indicar dificuldades financeiras ou crises no setor.&lt;/p&gt;&lt;p&gt;Outro ponto é que a forma como os dividendos são distribuídos ao longo do ano varia de empresa para empresa. Algumas pagam pequenas parcelas trimestrais e um valor maior no fim do ano; outras seguem um calendário diferente. Por isso, é essencial entender o padrão de pagamentos antes de definir o período de análise do dividend yield.&lt;/p&gt;&lt;h3&gt;Conclusão&lt;/h3&gt;&lt;p&gt;Se os pagamentos de dividendos forem regulares, é possível estimar o yield multiplicando o valor pago no último trimestre por quatro. Isso dará uma visão mais atual, mas não necessariamente completa. Outra opção é usar o valor total do último relatório fiscal anual — útil apenas nos primeiros meses após a sua divulgação, já que, com o tempo, a realidade pode mudar.&lt;/p&gt;&lt;p&gt;Em resumo, o dividend yield é uma ferramenta importante, mas não deve ser usada isoladamente. Assim como um médico não faz um diagnóstico olhando apenas um exame, o investidor deve combinar o yield com outros indicadores para tomar decisões mais seguras e embasadas.&lt;/p&gt;&lt;h3&gt;Referências&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;CHEN, James. Dividend Yield. 2019. Elaborado por Investopedia. Disponível em: &lt;a href=&quot;https://www.investopedia.com/terms/d/dividendyield.asp&quot;&gt;https://www.investopedia.com/terms/d/dividendyield.asp.&lt;/a&gt; Acesso em: 24 mar. 2020.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Originalmente publicado em 03/05/2020.&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Circuito Amplificador Operacional</title>
      <link>https://danielgaio.com/pt/blog/circuito-amplificador-operacional-0e748093f980/</link>
      <guid isPermaLink="false">https://medium.com/p/0e748093f980</guid>
      <pubDate>Mon, 04 Aug 2025 14:30:36 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>Se você está começando a estudar eletrônica analógica, logo encontrará um dos blocos mais importantes e versáteis dessa área: o amplificador operacional (ou op-amp ). Esse componente é amplamente utilizado em circuitos…</description>
      <content:encoded>&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/258f36f8e522132f0944.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;526&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@vishnumaiea?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Vishnu Mohanan&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;fc43&quot;&gt;Se você está começando a estudar eletrônica analógica, logo encontrará um dos blocos mais importantes e versáteis dessa área: o &lt;strong&gt;amplificador operacional&lt;/strong&gt; (ou &lt;em&gt;op-amp&lt;/em&gt;). Esse componente é amplamente utilizado em circuitos que envolvem amplificação de sinais, comparações de tensão, filtragem, integração e muitas outras aplicações essenciais.&lt;/p&gt;&lt;p id=&quot;d267&quot;&gt;O amplificador operacional é, na verdade, um circuito integrado composto por transistores, resistores e outros elementos eletrônicos. Seu principal objetivo é amplificar a diferença de tensão entre suas duas entradas. A depender da forma como é configurado com componentes externos, pode assumir diversos comportamentos úteis em sistemas eletrônicos.&lt;/p&gt;&lt;p id=&quot;2bef&quot;&gt;Para quem busca reforçar o aprendizado ou revisar os conceitos apresentados aqui, há uma excelente &lt;strong&gt;playlist de videoaulas disponível no YouTube&lt;/strong&gt; com foco em amplificadores operacionais. Trata-se de um material complementar que pode ajudar bastante na fixação do conteúdo. Você pode acessá-la aqui:&lt;/p&gt;&lt;p id=&quot;6240&quot;&gt;🎥 &lt;a href=&quot;https://youtu.be/U0XaljeXVn8?list=PLf1lowbdbFIBSLXMLK4NoGgml7l5rK922&quot;&gt;Playlist: Amplificadores Operacionais (YouTube)&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;6d90&quot;&gt;A seguir, veremos a representação diagramática básica desse bloco funcional:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/2443cf85161a95b25c6f.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;669&quot; height=&quot;502&quot;&gt;&lt;figcaption&gt;Os terminais de +Vcc e -Vcc são de &lt;strong&gt;alimentação elétrica&lt;/strong&gt; e geralmente variam entre -5V e +5V, embora valores como ±15V também sejam comuns dependendo da aplicação.&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&quot;e845&quot;&gt;Por que o nome “operacional”?&lt;/h2&gt;&lt;p id=&quot;76a5&quot;&gt;Este componente leva este nome porque &lt;strong&gt;permite realizar operações matemáticas&lt;/strong&gt; sobre os sinais de entrada:&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;5a61&quot;&gt;Soma&lt;/li&gt;&lt;li id=&quot;b2ef&quot;&gt;Subtração&lt;/li&gt;&lt;li id=&quot;974c&quot;&gt;Multiplicação e divisão (com rede resistiva adequada)&lt;/li&gt;&lt;li id=&quot;815f&quot;&gt;Integração e derivação no tempo (com o uso de capacitores)&lt;/li&gt;&lt;li id=&quot;7f84&quot;&gt;Operações mais complexas como exponenciação e logaritmos (em arranjos específicos com diodos ou transistores)&lt;/li&gt;&lt;/ul&gt;&lt;p id=&quot;7ecb&quot;&gt;Ou seja, trata-se de um &lt;strong&gt;bloco funcional programável via hardware passivo&lt;/strong&gt;, muito utilizado em eletrônica analógica.&lt;/p&gt;&lt;h2 id=&quot;93b1&quot;&gt;Funcionamento&lt;/h2&gt;&lt;p id=&quot;dad4&quot;&gt;A saída do amplificador depende da &lt;strong&gt;diferença de tensão&lt;/strong&gt; entre os terminais de entrada (não inversora e inversora), multiplicada por um fator de ganho muito alto, representado por &lt;strong&gt;A&lt;/strong&gt;.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/26822d1030e89b3eb984.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;530&quot; height=&quot;280&quot;&gt;&lt;/figure&gt;&lt;ul&gt;&lt;li id=&quot;a9bd&quot;&gt;Quando esse valor ultrapassa os limites de alimentação (+Vcc ou -Vcc), o amplificador &lt;strong&gt;satura&lt;/strong&gt;, ou seja, a saída é limitada a esses extremos.&lt;/li&gt;&lt;li id=&quot;fbc3&quot;&gt;Quando está dentro desse limite, diz-se que o amplificador opera em &lt;strong&gt;regime linear&lt;/strong&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/1d537c57ae41f9770e26.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;454&quot;&gt;&lt;figcaption&gt;Gráfico com zonas de saturação e linearidade&lt;/figcaption&gt;&lt;/figure&gt;&lt;h3 id=&quot;0408&quot;&gt;Características do amplificador operacional ideal&lt;/h3&gt;&lt;ul&gt;&lt;li id=&quot;8fb8&quot;&gt;A diferença de potencial entre as entradas V_+ e V_- é &lt;strong&gt;zero&lt;/strong&gt; (no regime linear com realimentação negativa).&lt;/li&gt;&lt;li id=&quot;b44e&quot;&gt;A corrente de entrada em cada terminal é &lt;strong&gt;zero&lt;/strong&gt; — ou seja, os terminais possuem &lt;strong&gt;impedância infinita&lt;/strong&gt;.&lt;/li&gt;&lt;li id=&quot;23fb&quot;&gt;O ganho A é &lt;strong&gt;infinito&lt;/strong&gt;, o que na prática significa que o amp op tentará ajustar a saída para forçar V_+ = V_-, se possível.&lt;/li&gt;&lt;/ul&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/7634eaf86e8c758ce804.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;132&quot; height=&quot;172&quot;&gt;&lt;figcaption&gt;Modelo de amp op ideal&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&quot;fbb2&quot;&gt;Amplificador Inversor&lt;/h2&gt;&lt;p id=&quot;dd4a&quot;&gt;Será demonstrado um exemplo onde as tensões V_+ e V_- são &lt;strong&gt;iguais a zero&lt;/strong&gt; (análise ideal). O esquema diagramático é o seguinte:&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/66831a3350595888a06c.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;425&quot;&gt;&lt;/figure&gt;&lt;h3 id=&quot;fd4e&quot;&gt;Análise do circuito:&lt;/h3&gt;&lt;p id=&quot;f8e0&quot;&gt;Em problemas com amplificadores operacionais, normalmente busca-se determinar a função de saída V_o em função da entrada V_i e dos resistores do circuito. Duas propriedades importantes devem ser consideradas: (1) a tensão nas entradas positiva e negativa do amplificador são iguais; e, neste caso, como a entrada V_+ está conectada ao terra, a entrada V_- também terá tensão zero; (2) a corrente que entra em ambos os terminais do amplificador operacional é nula.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/c916973915ef2dfdeb07.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;340&quot; height=&quot;170&quot;&gt;&lt;figcaption&gt;Circuito com anotações das tensões e correntes&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;9988&quot;&gt;A corrente I_1 pode ser determinada pela diferença de potencial antes e depois do resistor R_1, ou seja, pela tensão sobre R_1, dividida pelo seu valor de resistência, conforme a Lei de Ohm. Como a corrente que entra na entrada V_- do amplificador operacional é nula, toda a corrente I_1 também passa por R_2. Vamos agora construir uma expressão para a tensão sobre R_2 (V_R}), que neste circuito corresponde à tensão de saída V_o. Esse desenvolvimento pode ser feito aplicando a Lei de Ohm, seguida de manipulações e substituições algébricas, conforme ilustrado nas etapas a seguir:&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/5725a490e7093bfe13fb.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;130&quot;&gt;&lt;/figure&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/849a44083c138d57db6a.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;361&quot;&gt;&lt;/figure&gt;&lt;h3 id=&quot;5085&quot;&gt;Como o sinal negativo aparece na expressão final?&lt;/h3&gt;&lt;p id=&quot;1ba2&quot;&gt;Isso ocorre devido à forma como determinamos a tensão de saída V_o. Ao imaginar uma medição de tensão com um multímetro, posicionamos a ponteira vermelha (positiva) na saída V_o e seguimos pelo circuito em direção ao aterramento. Neste diagrama, o caminho até o terra passa apenas por R_2, o que nos permite afirmar que V_o é igual à tensão sobre R_2 (V_R2). O sinal negativo surge porque, ao atravessarmos R_2 nesse sentido (da saída para o terra), encontramos primeiro o terminal negativo do resistor. Isso indica que a queda de tensão está no sentido oposto ao da corrente convencional, justificando a presença do sinal de menos na expressão da tensão.&lt;/p&gt;&lt;h2 id=&quot;4240&quot;&gt;Amplificador Não Inversor&lt;/h2&gt;&lt;p id=&quot;85ee&quot;&gt;Neste caso, o diagrama é:&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/2c81fb590e01ce87564a.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;319&quot;&gt;&lt;/figure&gt;&lt;p id=&quot;73c7&quot;&gt;A principal diferença neste caso é que agora a entrada V_in está conectada ao terminal não inversor (V_+) do amplificador. Ainda assim, como V_+ e V_- tendem a possuir o mesmo valor devido às características do amplificador ideal, podemos partir da seguinte consideração:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/61014f07442abfcf4629.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;579&quot; height=&quot;163&quot;&gt;&lt;/figure&gt;&lt;p id=&quot;ff6c&quot;&gt;Dada a relação anterior, podemos começar observando que a corrente que passa pelo resistor R_1 é dada pela razão entre a tensão de entrada V_{in} e a resistência R_1, como mostrado na equação (1). Como não há corrente fluindo para a entrada inversora (V_-) do amplificador operacional, a corrente que passa por R_2 será a mesma que passa por R_1, ou seja, I_1 = I_2.&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/aeea7a228afbcc4e9c28.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;315&quot;&gt;&lt;/figure&gt;&lt;p id=&quot;0997&quot;&gt;Além disso, podemos obter uma outra expressão para I_2, partindo do princípio de que a corrente é a razão entre a tensão e a resistência. Observando que a tensão sobre R_2 corresponde à diferença entre a tensão de saída V_o e a tensão no terminal V_-, obtemos a equação (2).&lt;/p&gt;&lt;p id=&quot;a3a3&quot;&gt;A seguir, utilizamos a equação básica para a tensão no resistor R_2, conforme indicado em (3), para desenvolver a expressão da tensão de saída V_o. Na equação (4), substituímos V_R2 por V_o — V_in, mantendo o lado direito da equação inalterado. Já na equação (5), realizamos a substituição de I_2 pelo seu valor encontrado anteriormente na equação (2).&lt;/p&gt;&lt;p id=&quot;f2b3&quot;&gt;Na equação (6), isolamos o termo V_o. Em seguida, na equação (7), colocamos V_{in} em evidência, fatorando a expressão. Por fim, na equação (8), realizamos o mínimo múltiplo comum (MMC) para simplificar a expressão dentro dos parênteses.&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/0e748093f980/ca7c708e61cbd143a151.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;295&quot;&gt;&lt;/figure&gt;&lt;p id=&quot;4b39&quot;&gt;Dessa forma, chegamos a uma expressão para a tensão de saída V_o, que depende diretamente do sinal de entrada V_in e dos valores dos resistores do circuito.&lt;/p&gt;&lt;h3 id=&quot;ad49&quot;&gt;Conclusão sobre Amplificador não Operacional:&lt;/h3&gt;&lt;ul&gt;&lt;li id=&quot;33b6&quot;&gt;O amplificador &lt;strong&gt;não inversor&lt;/strong&gt; fornece um ganho &lt;strong&gt;positivo&lt;/strong&gt; (não altera a fase do sinal).&lt;/li&gt;&lt;li id=&quot;9145&quot;&gt;O ganho depende da &lt;strong&gt;relação entre os resistores&lt;/strong&gt; R_1 e R_2.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;9a30&quot;&gt;Fechamento&lt;/h2&gt;&lt;p id=&quot;4fc6&quot;&gt;O estudo dos amplificadores operacionais e de suas propriedades fundamentais é essencial para compreender e projetar circuitos analógicos com precisão. Esses conceitos são amplamente aplicados em sistemas de instrumentação, processamento de sinais e controle, sendo a base para o funcionamento de uma infinidade de dispositivos eletrônicos modernos.&lt;/p&gt;&lt;p id=&quot;2634&quot;&gt;Originalmente publicado em 07/10/2019.&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Modelo de Animação de Imagens em tempo real</title>
      <link>https://danielgaio.com/pt/blog/modelo-de-anima%C3%A7%C3%A3o-de-imagens-em-tempo-real-f831c9eae1ff/</link>
      <guid isPermaLink="false">https://medium.com/p/f831c9eae1ff</guid>
      <pubDate>Mon, 28 Jul 2025 16:46:47 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>Este modelo foi proposto em um artigo escrito por Aliaksandr Siarohin, Stéphane Lathuilière, Sergey Tulyakov, Elisa Ricci e Nicu Sebe , no qual os autores desenvolveram um sistema que recebe como entrada um vídeo e uma…</description>
      <content:encoded>&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/f831c9eae1ff/6416f8213eeaf6c8220d.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;157&quot;&gt;&lt;figcaption&gt;A esquerda temos o video de entrada, a direita a animação resultante aplicada sobre diferentes imagens&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;1535&quot;&gt;Este modelo foi proposto em um artigo escrito por &lt;strong&gt;Aliaksandr Siarohin, Stéphane Lathuilière, Sergey Tulyakov, Elisa Ricci e Nicu Sebe&lt;/strong&gt;, no qual os autores desenvolveram um sistema que recebe como entrada um &lt;strong&gt;vídeo e uma imagem estática&lt;/strong&gt;, e a partir disso, &lt;strong&gt;transfere os movimentos do vídeo para a imagem&lt;/strong&gt;, como se a pessoa da foto estivesse se movendo.&lt;/p&gt;&lt;p id=&quot;338e&quot;&gt;Em outras palavras, trata-se de um &lt;strong&gt;gerador de animações faciais baseado em inteligência artificial&lt;/strong&gt;, o que muitos chamam de &lt;em&gt;DeepFace AI Generator&lt;/em&gt;.&lt;/p&gt;&lt;p id=&quot;feae&quot;&gt;Você pode conferir um resumo geral do sistema nesta página: &lt;a href=&quot;https://aliaksandrsiarohin.github.io/first-order-model-website/&quot;&gt;https://aliaksandrsiarohin.github.io/first-order-model-website/&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;164a&quot;&gt;O artigo completo pode ser baixado em PDF aqui: &lt;a href=&quot;http://papers.nips.cc/paper/8935-first-order-motion-model-for-image-animation&quot;&gt;http://papers.nips.cc/paper/8935-first-order-motion-model-for-image-animation&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;c77d&quot;&gt;O código-fonte está disponível no GitHub: &lt;a href=&quot;https://github.com/AliaksandrSiarohin/first-order-model&quot;&gt;https://github.com/AliaksandrSiarohin/first-order-model&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;61e3&quot;&gt;E há também uma &lt;strong&gt;demo pronta para execução no Google Colab&lt;/strong&gt;: &lt;a href=&quot;https://colab.research.google.com/github/AliaksandrSiarohin/first-order-model/blob/master/demo.ipynb&quot;&gt;https://colab.research.google.com/github/AliaksandrSiarohin/first-order-model/blob/master/demo.ipynb&lt;/a&gt;&lt;/p&gt;&lt;h2 id=&quot;d818&quot;&gt;A Popularidade do Projeto&lt;/h2&gt;&lt;p id=&quot;1831&quot;&gt;Devido à natureza extremamente visual e impressionante dos resultados, o projeto ganhou grande notoriedade rapidamente. Inclusive, &lt;strong&gt;derivados como o “Avatary”&lt;/strong&gt; surgiram com base nesse trabalho, como reportado pelo &lt;strong&gt;Olhar Digital&lt;/strong&gt;: &lt;a&gt;https://olhardigital.com.br/noticia/software-aberto-cria-deepfakes-em-tempo-real-durante-reunioes-no-zoom/99619&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;7fb8&quot;&gt;A matéria original também foi publicada pela Vice: &lt;a href=&quot;https://www.vice.com/en_us/article/g5xagy/this-open-source-program-deepfakes-you-during-zoom-meetings-in-real-time&quot;&gt;https://www.vice.com/en_us/article/g5xagy/this-open-source-program-deepfakes-you-during-zoom-meetings-in-real-time&lt;/a&gt;&lt;/p&gt;&lt;h2 id=&quot;8d3f&quot;&gt;Funcionamento do Sistema&lt;/h2&gt;&lt;p id=&quot;2f0c&quot;&gt;O projeto foi desenvolvido em &lt;strong&gt;Python&lt;/strong&gt;, e o autor utilizou &lt;strong&gt;Jupyter Notebook&lt;/strong&gt;, ferramentas muito comuns em projetos de inteligência artificial.&lt;/p&gt;&lt;p id=&quot;87ba&quot;&gt;O fluxo básico de funcionamento segue estas etapas:&lt;/p&gt;&lt;ol&gt;&lt;li id=&quot;fdef&quot;&gt;&lt;strong&gt;Redimensionamento da imagem e do vídeo&lt;/strong&gt;: ambos precisam estar em proporções compatíveis.&lt;/li&gt;&lt;li id=&quot;0222&quot;&gt;&lt;strong&gt;Carregamento dos dados&lt;/strong&gt;: a imagem estática (modelo) e o vídeo (base).&lt;/li&gt;&lt;li id=&quot;daf0&quot;&gt;&lt;strong&gt;Detecção de keypoints&lt;/strong&gt;: são identificados pontos-chave nos rostos (ou figuras), tanto no vídeo quanto na imagem. Esses pontos são usados para guiar os movimentos da animação.&lt;/li&gt;&lt;li id=&quot;0f6c&quot;&gt;&lt;strong&gt;Pareamento relativo de características&lt;/strong&gt;: os autores propõem um método para preservar as feições originais da imagem, evitando deformações baseadas nos movimentos do vídeo.&lt;/li&gt;&lt;li id=&quot;4ee1&quot;&gt;&lt;strong&gt;Animação&lt;/strong&gt;: o sistema utiliza a imagem, o vídeo e os dados extraídos para gerar uma nova animação. O resultado é, por exemplo, o rosto da foto reproduzindo os movimentos da pessoa no vídeo.&lt;/li&gt;&lt;/ol&gt;&lt;p id=&quot;9b56&quot;&gt;Esse processo também pode ser aplicado ao corpo inteiro ou até a animais, como é mostrado nos exemplos da página do projeto.&lt;/p&gt;&lt;h2 id=&quot;f270&quot;&gt;Criando Suas Próprias Animações&lt;/h2&gt;&lt;p id=&quot;e4e6&quot;&gt;É possível criar suas próprias animações seguindo um processo similar ao descrito acima:&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;e2cd&quot;&gt;Prepare uma imagem recortada de um rosto.&lt;/li&gt;&lt;li id=&quot;369b&quot;&gt;Prepare um vídeo com o rosto em movimento, com um enquadramento semelhante ao da foto.&lt;/li&gt;&lt;li id=&quot;d02c&quot;&gt;Execute o pipeline do projeto com esses novos dados.&lt;/li&gt;&lt;/ul&gt;&lt;p id=&quot;fb5c&quot;&gt;Contudo, o &lt;strong&gt;treinamento com novos dados&lt;/strong&gt; é um processo complexo, que exige leitura aprofundada do artigo e familiaridade com redes neurais. Para os mais curiosos, há alternativas mais simples, como o &lt;strong&gt;Avatary&lt;/strong&gt;, que permite animações em tempo real com interface amigável.&lt;/p&gt;&lt;h2 id=&quot;7096&quot;&gt;Considerações Sobre a Execução&lt;/h2&gt;&lt;p id=&quot;90fe&quot;&gt;Mesmo para rodar os exemplos prontos, é necessário configurar corretamente o ambiente, incluindo a instalação de pacotes — alguns dos quais requerem versões específicas. Esse processo pode se tornar trabalhoso e sujeito a imprevistos.&lt;/p&gt;&lt;p id=&quot;d387&quot;&gt;Para rodar a demo, é necessário baixar arquivos de checkpoints treinados (os “keypoints”), que são grandes (~700 MB). Isso indica que o &lt;strong&gt;treinamento original foi bastante custoso computacionalmente&lt;/strong&gt;.&lt;/p&gt;&lt;p id=&quot;8362&quot;&gt;Apesar disso, o projeto é &lt;strong&gt;fantástico e inovador&lt;/strong&gt;, e é provável que vejamos mais ferramentas acessíveis implementando essas técnicas em breve.&lt;/p&gt;&lt;h2 id=&quot;6d08&quot;&gt;Avatary: A Alternativa Simples&lt;/h2&gt;&lt;p id=&quot;5b3f&quot;&gt;Uma forma prática de experimentar essa tecnologia é usando o &lt;strong&gt;Avatary&lt;/strong&gt; — um projeto de código aberto criado pela comunidade e baseado no modelo do artigo.&lt;/p&gt;&lt;p id=&quot;a48a&quot;&gt;🔗 &lt;a href=&quot;https://github.com/alievk/avatarify&quot;&gt;https://github.com/alievk/avatarify&lt;/a&gt;&lt;/p&gt;&lt;h3 id=&quot;eca6&quot;&gt;Passo a Passo para Instalação (Linux Ubuntu)&lt;/h3&gt;&lt;ol&gt;&lt;li id=&quot;9783&quot;&gt;Baixe a rede de pesos: &lt;a href=&quot;https://drive.google.com/file/d/1coUCdyRXDbpWnEkA99NLNY60mb9dQ_n3/view?usp=sharing&quot;&gt;https://drive.google.com/file/d/1coUCdyRXDbpWnEkA99NLNY60mb9dQ_n3/view?usp=sharing&lt;/a&gt;&lt;/li&gt;&lt;li id=&quot;4122&quot;&gt;Baixe o Miniconda com Python 3.7: &lt;a href=&quot;https://docs.conda.io/en/latest/miniconda.html#linux-installers&quot;&gt;https://docs.conda.io/en/latest/miniconda.html#linux-installers&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p id=&quot;10c3&quot;&gt;3. Instale o Miniconda:&lt;/p&gt;&lt;pre&gt;bash Miniconda3-latest-Linux-x86_64.sh&lt;/pre&gt;&lt;p id=&quot;dd4a&quot;&gt;4. Clone o projeto e instale:&lt;/p&gt;&lt;pre&gt;git clone https://github.com/alievk/avatarify.git&lt;br&gt;cd avatarify&lt;br&gt;bash scripts/install.sh&lt;/pre&gt;&lt;p id=&quot;1d2b&quot;&gt;5. Coloque o arquivo da rede de pesos dentro da pasta avatarify.&lt;/p&gt;&lt;h3 id=&quot;0801&quot;&gt;Como Rodar&lt;/h3&gt;&lt;ul&gt;&lt;li id=&quot;55e7&quot;&gt;No diretório &lt;em&gt;avatars/&lt;/em&gt;, adicione as imagens que você deseja usar como avatar.&lt;/li&gt;&lt;li id=&quot;cc58&quot;&gt;Certifique-se de que as fotos sejam quadradas, com o rosto em tamanho mediano e fundo neutro.&lt;/li&gt;&lt;li id=&quot;444e&quot;&gt;Execute o Avatary:&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;bash run.sh&lt;/pre&gt;&lt;p id=&quot;e52c&quot;&gt;Isso criará uma webcam virtual. No seu app de vídeo (Zoom, Teams, etc.), selecione essa câmera como entrada.&lt;/p&gt;&lt;h3 id=&quot;89c7&quot;&gt;Possíveis Problemas&lt;/h3&gt;&lt;p id=&quot;e5fe&quot;&gt;O Avatary depende do &lt;strong&gt;v4l2loopback&lt;/strong&gt;, que cria a webcam virtual. Em sistemas mais modernos, &lt;strong&gt;o Secure Boot pode impedir sua execução&lt;/strong&gt;.&lt;/p&gt;&lt;p id=&quot;5295&quot;&gt;A solução que funcionou comigo foi &lt;strong&gt;desativar o Secure Boot&lt;/strong&gt;. Caso tenha problemas, pesquise a mensagem de erro no Google para possíveis alternativas.&lt;/p&gt;&lt;p id=&quot;32fb&quot;&gt;Originalmente publicado em 21/05/2020.&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Máquinas de Turing — Exercícios Resolvidos</title>
      <link>https://danielgaio.com/pt/blog/m%C3%A1quinas-de-turing-exerc%C3%ADcios-resolvidos-c5eefe0e0cc4/</link>
      <guid isPermaLink="false">https://medium.com/p/c5eefe0e0cc4</guid>
      <pubDate>Mon, 21 Jul 2025 13:03:04 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>Quem foi Alan Turing? Alan Turing foi um matemático britânico considerado o pai da computação moderna. Em 1936, criou o conceito de Máquina de Turing , base teórica dos computadores. Durante a Segunda Guerra Mundial,…</description>
      <content:encoded>&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/c5eefe0e0cc4/101fcd5d2570e83fa2b1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;467&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@londonweddingphotographer?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Chris Boland&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&quot;06da&quot;&gt;Quem foi Alan Turing?&lt;/h2&gt;&lt;p id=&quot;98be&quot;&gt;Alan Turing foi um matemático britânico considerado o pai da computação moderna. Em 1936, criou o conceito de &lt;em&gt;Máquina de Turing&lt;/em&gt;, base teórica dos computadores. Durante a Segunda Guerra Mundial, ajudou a decifrar os códigos da máquina Enigma, contribuindo decisivamente para a vitória dos Aliados.&lt;/p&gt;&lt;p id=&quot;e942&quot;&gt;Em 1950, propôs o &lt;em&gt;Teste de Turing&lt;/em&gt;, que avalia se uma máquina pode se comportar como um ser humano — referência até hoje na área de inteligência artificial.&lt;/p&gt;&lt;p id=&quot;ec85&quot;&gt;Apesar de suas contribuições, foi condenado por ser homossexual em 1952, e morreu dois anos depois, em circunstâncias trágicas. Hoje, é reconhecido como herói de guerra e ícone da ciência, com seu rosto estampando a nota de £50 no Reino Unido.&lt;/p&gt;&lt;h2 id=&quot;cdfa&quot;&gt;O que é uma Máquina de Turing?&lt;/h2&gt;&lt;p id=&quot;a8af&quot;&gt;A Máquina de Turing é um modelo teórico de computador criado por Alan Turing em 1936. Ela descreve uma máquina simples capaz de ler e escrever símbolos em uma fita infinita, seguindo um conjunto de regras.&lt;/p&gt;&lt;p id=&quot;2232&quot;&gt;Apesar de abstrata, essa ideia é poderosa: provou que certos problemas podem (ou não) ser resolvidos por algoritmos. Em outras palavras, a Máquina de Turing define os limites do que é computável.&lt;/p&gt;&lt;p id=&quot;355e&quot;&gt;Ela é a base da ciência da computação e inspirou o funcionamento dos computadores modernos. Até hoje, serve como referência para entender linguagens de programação, algoritmos e inteligência artificial.&lt;/p&gt;&lt;h2 id=&quot;f6f8&quot;&gt;Exercícios Resolvidos: Máquinas de Turing&lt;/h2&gt;&lt;p id=&quot;adfe&quot;&gt;A seguir, apresento um conjunto de exercícios resolvidos que ilustram a construção de Máquinas de Turing para decidir linguagens formais. A primeira imagem de exercício resolvido mostra, por exemplo, uma máquina que decide a linguagem:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/c5eefe0e0cc4/2b14a27c9fdd698edd52.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;572&quot; height=&quot;96&quot;&gt;&lt;/figure&gt;&lt;p id=&quot;cf47&quot;&gt;ou seja, o conjunto de palavras binárias que são palíndromos — iguais ao seu próprio reverso.&lt;/p&gt;&lt;p id=&quot;2868&quot;&gt;Uma Máquina de Turing funciona com base em três elementos fundamentais:&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;e600&quot;&gt;&lt;strong&gt;Fita&lt;/strong&gt; infinita dividida em células, que armazena símbolos e pode ser lida ou modificada;&lt;/li&gt;&lt;li id=&quot;1b3e&quot;&gt;&lt;strong&gt;Cabeça de leitura/gravação&lt;/strong&gt;, que se move para a esquerda ou direita a cada passo;&lt;/li&gt;&lt;li id=&quot;d479&quot;&gt;&lt;strong&gt;Conjunto de estados&lt;/strong&gt;, com uma função de transição que define o comportamento da máquina.&lt;/li&gt;&lt;/ul&gt;&lt;p id=&quot;3233&quot;&gt;A &lt;strong&gt;regra de transição&lt;/strong&gt; é determinada por uma tripla:&lt;/p&gt;&lt;pre&gt;(símbolo lido, símbolo a escrever, direção do movimento)&lt;/pre&gt;&lt;p id=&quot;73a5&quot;&gt;com base no &lt;strong&gt;estado atual&lt;/strong&gt;. Por exemplo, no diagrama da imagem, a transição:&lt;/p&gt;&lt;pre&gt;1, ␣, →&lt;/pre&gt;&lt;p id=&quot;d0a8&quot;&gt;significa que, ao ler o símbolo 1, a máquina escreve o símbolo branco (␣, indicando espaço vazio), move a cabeça para a direita e entra no próximo estado indicado.&lt;/p&gt;&lt;p id=&quot;dbd4&quot;&gt;A máquina &lt;strong&gt;aceita&lt;/strong&gt; a entrada se alcançar um estado final de aceitação (marcado com Y nas imagens), e &lt;strong&gt;rejeita&lt;/strong&gt; se cair em um estado de rejeição (N) ou entrar em um ciclo sem saída. Esse tipo de formalismo é essencial para entender o que significa “decidir” uma linguagem no contexto da Teoria da Computação.&lt;/p&gt;&lt;p id=&quot;a387&quot;&gt;Nos exemplos seguintes, você verá como outras linguagens podem ser decididas com construções semelhantes.&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/c5eefe0e0cc4/7dda11ae894142ec91bc.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;406&quot;&gt;&lt;figcaption&gt;Exercício 1&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/c5eefe0e0cc4/7b29eb2da04e8450a0ec.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;260&quot;&gt;&lt;figcaption&gt;Exercício 2&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/c5eefe0e0cc4/7db9cf0c946f292de48e.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;286&quot;&gt;&lt;figcaption&gt;Exercício 3&lt;/figcaption&gt;&lt;/figure&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/c5eefe0e0cc4/7532e2dea0e71be8803c.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;315&quot;&gt;&lt;figcaption&gt;Exercício 4&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;6e3b&quot;&gt;Originalmente publicado em 08/10/2019&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Principais anúncios do Databricks Data+AI Summit 2025</title>
      <link>https://danielgaio.com/pt/blog/principais-an%C3%BAncios-do-databricks-data-ai-summit-2025-a58eff243478/</link>
      <guid isPermaLink="false">https://medium.com/p/a58eff243478</guid>
      <pubDate>Mon, 14 Jul 2025 13:01:47 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>Olá! Sou Daniel Gaio, engenheiro de computação e entusiasta de IA, e hoje venho compartilhar os principais anúncios do Data + AI Summit que ocorreu em junho de 2025, com foco especial nas novidades em Machine Learning e…</description>
      <content:encoded>&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/a58eff243478/92ba5de473c2c9a95572.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;395&quot;&gt;&lt;figcaption&gt;Principal evento anual da Databricks, dedicado a dados e inteligência artificial&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;b66f&quot;&gt;Olá! Sou Daniel Gaio, engenheiro de computação e entusiasta de IA, e hoje venho compartilhar os principais anúncios do Data + AI Summit que ocorreu em junho de 2025, com foco especial nas novidades em Machine Learning e Generative AI.&lt;/p&gt;&lt;p id=&quot;ecae&quot;&gt;Vamos começar na categoria de engenharia de dados.&lt;/p&gt;&lt;h2 id=&quot;1260&quot;&gt;Lakeflow — Orquestração de dados&lt;/h2&gt;&lt;p id=&quot;26c7&quot;&gt;&lt;strong&gt;Disponibilidade:&lt;/strong&gt; Geral (GA)&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/a58eff243478/71d572fe9ede87e9e0f3.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;197&quot;&gt;&lt;figcaption&gt;Lakefow é uma solução unificada para Engenharia de Dados que contempla Ingestão, Transformação e Orquestração&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;4f00&quot;&gt;&lt;a href=&quot;https://www.databricks.com/blog/announcing-general-availability-databricks-lakeflow&quot;&gt;Link mais informações Lakeflow&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;b74d&quot;&gt;📌 &lt;strong&gt;Finalidade:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;117f&quot;&gt;Lakeflow é a nova fundação para pipelines de ingestão e transformação de dados na plataforma. Ele substitui abordagens fragmentadas por um fluxo declarativo e altamente escalável, integrando tudo: ingestão, transformação e orquestração.&lt;/p&gt;&lt;p id=&quot;0a0b&quot;&gt;❌ &lt;strong&gt;Problemas que resolve:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;75cb&quot;&gt;Antes, trabalhar com dados no Databricks envolvia montar scripts Spark + agendamento com Workflows + múltiplos conectores manuais. Isso criava complexidade operacional, desalinhamento entre times técnicos e de negócio, e dificuldade de governança.&lt;/p&gt;&lt;p id=&quot;3b7b&quot;&gt;✅ &lt;strong&gt;Casos de uso:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;b15b&quot;&gt;Ingestão contínua de dados financeiros de ERPs como SAP ou Oracle Cloud direto no lakehouse.&lt;/p&gt;&lt;p id=&quot;89c3&quot;&gt;Pipeline ELT que transforma arquivos CSV/DynamoDB de forma incremental em tabelas Delta otimizadas com Z-Ordering e atualizações via MERGE.&lt;/p&gt;&lt;p id=&quot;3be0&quot;&gt;Orquestração automática de tarefas críticas com alertas nativos quando a latência entre ingestão e consulta estoura o SLA.&lt;/p&gt;&lt;h2 id=&quot;a9d5&quot;&gt;Lakeflow Designer — ETL visual com IA&lt;/h2&gt;&lt;p id=&quot;3e85&quot;&gt;&lt;strong&gt;Disponibilidade:&lt;/strong&gt; Preview&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/a58eff243478/65cf1b63d02fd28ff468.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;469&quot;&gt;&lt;figcaption&gt;Lakeflow IDE for Data Engineering&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;7064&quot;&gt;&lt;a href=&quot;https://www.databricks.com/blog/announcing-lakeflow-designer-no-code-etl&quot;&gt;Link para mais detalhes sobre o Lakeflow Designer&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;6945&quot;&gt;📌 &lt;strong&gt;Finalidade:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;c1b8&quot;&gt;O Designer traz uma interface no-code para criação de pipelines Lakeflow usando texto natural ou blocos visuais.&lt;/p&gt;&lt;p id=&quot;0a43&quot;&gt;❌ &lt;strong&gt;Problemas que resolve:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;4e1c&quot;&gt;Analistas de dados ou engenheiros de negócio frequentemente esbarravam na barreira do código — mesmo para pipelines simples. Isso gerava atrasos e repasses desnecessários entre áreas técnicas e não técnicas.&lt;/p&gt;&lt;p id=&quot;b885&quot;&gt;✅ &lt;strong&gt;Casos de uso:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;1979&quot;&gt;Um analista de marketing pode construir um pipeline que conecta o CRM, transforma leads em segmentos e entrega ao time comercial sem escrever uma linha de código.&lt;/p&gt;&lt;p id=&quot;1e86&quot;&gt;Integração com o Unity Catalog permite versionar o pipeline criado e passar para um engenheiro refinar depois com código (se necessário).&lt;/p&gt;&lt;p id=&quot;65b5&quot;&gt;Isso democratiza engenharia de dados, literalmente. E como o pipeline é gerado em Lakeflow declarativo, dá pra revisar e versionar direitinho.&lt;/p&gt;&lt;h2 id=&quot;2e44&quot;&gt;Lakebase — OLTP serverless no Lakehouse&lt;/h2&gt;&lt;p id=&quot;02ba&quot;&gt;&lt;strong&gt;Disponibilidade:&lt;/strong&gt; Preview&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/a58eff243478/3bb4bbd039d4f2c06700.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;419&quot;&gt;&lt;figcaption&gt;Postgres on Databricks&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;9b98&quot;&gt;&lt;a href=&quot;https://www.databricks.com/product/lakebase&quot;&gt;Link para mais informações sobre Lakebase&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;d0ba&quot;&gt;📌 &lt;strong&gt;Finalidade:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;0a11&quot;&gt;Lakebase é um banco transacional compatível com PostgreSQL, mas gerenciado e serverless dentro do Databricks. Ele se propõe a ser o banco operacional dos agentes de IA.&lt;/p&gt;&lt;p id=&quot;ffc1&quot;&gt;❌ &lt;strong&gt;Problemas que resolve:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;6888&quot;&gt;Armazenar dados operacionais exigia usar soluções externas (como RDS, Firebase), fora do contexto do lakehouse.&lt;/p&gt;&lt;p id=&quot;1cc9&quot;&gt;Isso quebrava a governança unificada e gerava latência e duplicação de dados.&lt;/p&gt;&lt;p id=&quot;05dc&quot;&gt;✅ &lt;strong&gt;Casos de uso:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;5a6e&quot;&gt;Aplicativos e agentes que precisam ler/escrever dados com baixa latência (como apps web ou copilotos empresariais).&lt;/p&gt;&lt;p id=&quot;f386&quot;&gt;Criar um sistema de logging de ações do usuário em apps internos, com replicação automática para Delta Lake.&lt;/p&gt;&lt;p id=&quot;dfd8&quot;&gt;Manter uma camada OLTP atualizada para IA gerar insights ou atuar com base em eventos recentes.&lt;/p&gt;&lt;p id=&quot;af24&quot;&gt;Lakebase muda o jogo. Antes, era preciso montar um banco externo só pra manter estado de um agente… Agora ele roda tudo dentro da própria malha de dados!&lt;/p&gt;&lt;p id=&quot;01cf&quot;&gt;Além do Lakeflow, Lakeflow Designer e Lakebase, foram anunciadas também as funcionalidades:&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;7bdf&quot;&gt;&lt;a href=&quot;https://www.databricks.com/solutions/migration/lakebridge&quot;&gt;Lakebridge&lt;/a&gt; que é voltado a migração de data warehouses legados para o Databricks SQL.&lt;/li&gt;&lt;li id=&quot;cbca&quot;&gt;&lt;a href=&quot;https://www.databricks.com/blog/bringing-declarative-pipelines-apache-spark-open-source-project&quot;&gt;Pipelines Declarativos&lt;/a&gt;, adicionados pela Databricks ao Apache Spark 4.0. Trata-se de um novo padrão de APIs declarativas para construir pipelines de dados robustos (batch e streaming).&lt;/li&gt;&lt;/ul&gt;&lt;p id=&quot;55aa&quot;&gt;Agora vamos ver quais foram os lançamentos relacionados a Machine Learning.&lt;/p&gt;&lt;h2 id=&quot;e3ce&quot;&gt;MLflow 3.0 — Versão definitiva para IA generativa&lt;/h2&gt;&lt;p id=&quot;8016&quot;&gt;&lt;strong&gt;Disponibilidade:&lt;/strong&gt; Geral (GA)&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/a58eff243478/dd6197cc7d932e2bcec3.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;268&quot;&gt;&lt;figcaption&gt;MLflow 3 trás funcionalidades para IA generativa&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;7d27&quot;&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/mlflow/mlflow-3-install&quot;&gt;Link MLflow 3 documentação&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;52e2&quot;&gt;📌 &lt;strong&gt;Finalidade:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;9582&quot;&gt;Expandir o escopo do MLflow para controlar, auditar e evoluir aplicações GenAI, não apenas modelos tradicionais.&lt;/p&gt;&lt;p id=&quot;d1cc&quot;&gt;❌ &lt;strong&gt;Problemas que resolve:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;84a8&quot;&gt;Com LLMs e agentes, o “modelo” não é suficiente — precisamos rastrear prompts, respostas, avaliações humanas e custos de uso. Sem isso, colocar IA em produção é como dirigir sem painel.&lt;/p&gt;&lt;p id=&quot;19e7&quot;&gt;✅ &lt;strong&gt;Casos de uso:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;820f&quot;&gt;Experimentação com prompts versionados (prompt: v4.1) aplicando A/B testing em copilot de atendimento ao cliente.&lt;/p&gt;&lt;p id=&quot;8350&quot;&gt;Avaliação automática de qualidade de resposta com judges embutidos (como rouge, factualidade ou custo/token).&lt;/p&gt;&lt;p id=&quot;c532&quot;&gt;Registro completo de conversas com logs de latência e uso por usuário.&lt;/p&gt;&lt;p id=&quot;4c85&quot;&gt;É muito difícil escalar soluções sérias de GenAI sem algo como MLflow 3.0. Agora temos um sistema de rastreabilidade profissional para a nova geração de modelos.&lt;/p&gt;&lt;h2 id=&quot;a06c&quot;&gt;Serverless GPU Compute — Treinamento sem infra&lt;/h2&gt;&lt;p id=&quot;0cf0&quot;&gt;&lt;strong&gt;Disponibilidade:&lt;/strong&gt; Beta&lt;/p&gt;&lt;p id=&quot;1750&quot;&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/compute/serverless/&quot;&gt;Link documentação Databricks Serverless Computing&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;8b92&quot;&gt;📌 &lt;strong&gt;Finalidade:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;d14d&quot;&gt;Executar notebooks, jobs e modelos com GPUs on-demand sem precisar criar clusters manualmente.&lt;/p&gt;&lt;p id=&quot;3955&quot;&gt;❌ &lt;strong&gt;Problemas que resolve:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;a059&quot;&gt;Antes era necessário configurar manualmente VMs, drivers, ambientes. Isso atrasava testes e encarecia operações — gargalo de produtividade.&lt;/p&gt;&lt;p id=&quot;03fd&quot;&gt;✅ &lt;strong&gt;Casos de uso:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;03bd&quot;&gt;Treinar embeddings em um dataset de textos jurídicos com aceleradores A10g.&lt;/p&gt;&lt;p id=&quot;538e&quot;&gt;Fazer fine-tuning de LLMs médios (como LLaMA2–7B) sem alocar cluster específico.&lt;/p&gt;&lt;p id=&quot;bb3d&quot;&gt;Inferência de alto volume em modelos multimodais no pipeline de produção.&lt;/p&gt;&lt;p id=&quot;78e8&quot;&gt;Isso é um presente pra quem vive testando coisas com HuggingFace, LangChain e afins. Agora é só rodar!&lt;/p&gt;&lt;h2 id=&quot;7531&quot;&gt;Agent Bricks — Framework para agentes empresariais&lt;/h2&gt;&lt;p id=&quot;b2bc&quot;&gt;&lt;strong&gt;Disponibilidade&lt;/strong&gt;: Beta&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/a58eff243478/a25560b7bef2bc1d884f.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;367&quot;&gt;&lt;figcaption&gt;Novas funcionalidades para Construção, Monitoramento e Deploy de Agente da plataforma Databricks&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;b668&quot;&gt;&lt;a href=&quot;https://www.databricks.com/blog/introducing-agent-bricks&quot;&gt;Link para mais informações sobre Agent Bricks&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;55a4&quot;&gt;📌 &lt;strong&gt;Finalidade:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;bd7a&quot;&gt;Permitir que engenheiros criem agentes inteligentes modulares, testáveis, com estrutura robusta e escalável. Trata-se de um framework de alto nível para criar agentes de IA especializados em domínios de negócio. Basta descrever a tarefa desejada e apontar o conjunto de dados; o Agent Bricks gera automaticamente avaliações, otimizações e distribuições de custo, entregando agentes prontos para produção.&lt;/p&gt;&lt;p id=&quot;ae95&quot;&gt;❌ &lt;strong&gt;Problemas que resolve:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;2540&quot;&gt;Projetos de agentes muitas vezes são prototipagens frágeis, sem avaliação de performance, custo ou arquitetura modular. E quase sempre são feitos do zero.&lt;/p&gt;&lt;p id=&quot;f36a&quot;&gt;✅ &lt;strong&gt;Casos de uso:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;0c19&quot;&gt;Criar um agente que responde dúvidas sobre regulamentos internos da empresa com RAG + logging.&lt;/p&gt;&lt;p id=&quot;6ae7&quot;&gt;Assistente interno que monitora uma tabela de vendas e envia alertas de tendência fora do normal.&lt;/p&gt;&lt;p id=&quot;90a0&quot;&gt;Workflow de extração automática de dados de PDFs usando subagentes especializados.&lt;/p&gt;&lt;h2 id=&quot;2f75&quot;&gt;AI Functions em SQL + Gemini Models&lt;/h2&gt;&lt;p id=&quot;1d72&quot;&gt;&lt;strong&gt;Disponibilidade&lt;/strong&gt;: AI SQL (GA) + Gemini (Preview)&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/a58eff243478/489faa6fe3d84c3ab33d.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;250&quot;&gt;&lt;figcaption&gt;Realize queries a LLMs diretamente no SQL&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;3308&quot;&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/large-language-models/ai-functions&quot;&gt;Docs AI SQL functions&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;ac65&quot;&gt;📌 &lt;strong&gt;Finalidade:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;9b1e&quot;&gt;Transformar SQL em uma linguagem aumentada com IA, com suporte a modelos nativos como Gemini diretamente dentro da plataforma.&lt;/p&gt;&lt;p id=&quot;d545&quot;&gt;❌ &lt;strong&gt;Problemas que resolve:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;c5d9&quot;&gt;Antes, aplicar IA em SQL exigia chamadas externas, perda de governança e custos ocultos. A integração com Gemini traz raciocínio avançado, sem mover dados. Novos recursos multimodais foram adicionados: por exemplo, a função &lt;em&gt;ai_parse_document&lt;/em&gt; extrai informações estruturadas de documentos complexos (texto, imagens etc.), ampliando o alcance de workflows inteligentes.&lt;/p&gt;&lt;p id=&quot;1993&quot;&gt;✅ &lt;strong&gt;Casos de uso:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;868b&quot;&gt;&lt;em&gt;SELECT ai_extract_entities(text_column)&lt;/em&gt; para extrair entidades em massa de um dataset jurídico.&lt;/p&gt;&lt;p id=&quot;3e1f&quot;&gt;Enriquecer uma coluna de “resumo do caso” com LLM direto no pipeline de dados.&lt;/p&gt;&lt;p id=&quot;b8a8&quot;&gt;Usar Gemini Flash para responder perguntas comerciais com alta velocidade.&lt;/p&gt;&lt;h2 id=&quot;72fe&quot;&gt;Mosaic AI Gateway — Governança total da IA&lt;/h2&gt;&lt;p id=&quot;eea4&quot;&gt;&lt;strong&gt;Disponibilidade:&lt;/strong&gt; Geral (GA)&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/a58eff243478/18870a889698811cdb0b.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;548&quot;&gt;&lt;figcaption&gt;AI Gateway trás acesso seguro a modelos de AI&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;c2e1&quot;&gt;&lt;a href=&quot;https://www.databricks.com/product/ai-gateway&quot;&gt;Link para mais informações sobre Mosaic AI Gateway&lt;/a&gt;&lt;/p&gt;&lt;p id=&quot;954a&quot;&gt;📌 &lt;strong&gt;Finalidade:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;4fe0&quot;&gt;Um ponto centralizado de controle, auditoria e fallback para todas as chamadas de IA feitas na empresa.&lt;/p&gt;&lt;p id=&quot;374d&quot;&gt;❌ &lt;strong&gt;Problemas que resolve:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;a078&quot;&gt;Cada time usava um modelo diferente, sem governança, sem logs, sem segurança de dados sensíveis — um caos para compliance.&lt;/p&gt;&lt;p id=&quot;6904&quot;&gt;✅ &lt;strong&gt;Casos de uso:&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;b80d&quot;&gt;Limitar quem pode usar GPT-4 vs. modelos internos.&lt;/p&gt;&lt;p id=&quot;cf94&quot;&gt;Aplicar redaction automática para PII antes da inferência.&lt;/p&gt;&lt;p id=&quot;9512&quot;&gt;Registrar custos por projeto ou unidade de negócio.&lt;/p&gt;&lt;p id=&quot;aa27&quot;&gt;Isso é o que faltava pra convencer times de compliance e segurança de que IA pode, sim, ser auditável.&lt;/p&gt;&lt;h2 id=&quot;8cd8&quot;&gt;Outros Anúncios&lt;/h2&gt;&lt;p id=&quot;787a&quot;&gt;Além das funcionalidades listadas neste post, houveram outras que vou listar brevemente a seguir com links para mais informações.&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;c168&quot;&gt;&lt;a href=&quot;https://docs.databricks.com/aws/en/getting-started/free-edition&quot;&gt;&lt;strong&gt;Databricks Free Edition&lt;/strong&gt;&lt;/a&gt;: Antes, para estudar era necessário utilizar ambientes Lab ou fazer deploy de um Workspace Databricks em alguma cloud (ambas as opções com seus custos associados). Agora isso está muito mais acessível, crie sua conta &lt;a href=&quot;https://login.databricks.com/?dbx_source=docs&amp;amp;intent=CE_SIGN_UP&quot;&gt;Databricks Free Edition signup page&lt;/a&gt;.&lt;/li&gt;&lt;li id=&quot;70ca&quot;&gt;&lt;a href=&quot;https://www.databricks.com/blog/introducing-databricks-one&quot;&gt;&lt;strong&gt;Databricks One&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; Uma maneira simplificada para que usuários de negócio possam interagir com dados e IA. Com interface simplificada, o One reúne em um único portal dashboards pré-criados, espaços do AI/BI Genie (perguntas em linguagem natural) e aplicativos customizados (Databricks Apps), tudo orientado a domínios de negócio (como “Customer 360” ou “Desempenho de Marketing”).&lt;/li&gt;&lt;li id=&quot;57c0&quot;&gt;&lt;a href=&quot;https://www.databricks.com/product/business-intelligence/ai-bi-genie&quot;&gt;&lt;strong&gt;AI/BI Genie&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; (GA)&lt;/strong&gt;: O mecanismo de perguntas em linguagem natural sobre dados da plataforma (Genie) saiu do preview e está em disponibilidade geral. Com ele, usuários podem fazer consultas livres (“como o faturamento varia por região?”) e receber respostas imediatas em texto, tabelas e gráficos, explicando como foram geradas as respostas. Está em desenvolvimento a próxima geração (Genie Deep Research), que promete lidar com questões complexas multifacetadas, criando planos de pesquisa e citando conclusões.&lt;/li&gt;&lt;li id=&quot;89ff&quot;&gt;&lt;a href=&quot;https://www.databricks.com/product/databricks-apps&quot;&gt;&lt;strong&gt;Databricks Apps&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; (GA)&lt;/strong&gt;: Disponível em GA, o Databricks Apps permite criar e publicar aplicações interativas de dados e IA diretamente na plataforma. As equipes podem desenvolver, por exemplo, dashboards customizados ou copilotos baseados em LLMs, usando frameworks web como Streamlit, Dash ou React. Esses apps rodam de forma serverless e segura, sob governança do Unity Catalog.&lt;/li&gt;&lt;li id=&quot;9d33&quot;&gt;&lt;a href=&quot;https://www.databricks.com/product/machine-learning/vector-search&quot;&gt;&lt;strong&gt;Vector Search&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; otimizado:&lt;/strong&gt; O produto Mosaic AI Vector Search (busca vetorial) foi totalmente refeito com separação de compute e storage. A nova versão (preview) escala para bilhões de vetores e entrega até 7× menor custo, facilitando tarefas de RAG (retrieval-augmented generation) e buscas semânticas em larga escala. Em outras palavras, agora é mais viável criar chatbots ou sistemas de busca que cobrem todo o seu lakehouse sem custos proibitivos.&lt;/li&gt;&lt;/ul&gt;</content:encoded>
    </item>
    <item>
      <title>Como encontrar o intervalo de saturação de um amplificador?</title>
      <link>https://danielgaio.com/pt/blog/como-encontrar-o-intervalo-de-satura%C3%A7%C3%A3o-de-um-amplificador-69fa0f570d3c/</link>
      <guid isPermaLink="false">https://medium.com/p/69fa0f570d3c</guid>
      <pubDate>Mon, 07 Jul 2025 13:03:15 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>O intervalo de saturação de um amplificador define a faixa de valores da tensão de entrada em que o circuito opera de forma linear . Fora dessa faixa — ou seja, quando os valores ultrapassam certos limites — o…</description>
      <content:encoded>&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/69fa0f570d3c/3512e43e58880b9f46ce.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;526&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@trisolarian?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Axel Richter&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;22ab&quot;&gt;O &lt;strong&gt;intervalo de saturação&lt;/strong&gt; de um amplificador define a faixa de valores da tensão de entrada em que o circuito opera de forma &lt;strong&gt;linear&lt;/strong&gt;. Fora dessa faixa — ou seja, quando os valores ultrapassam certos limites — o amplificador entra em &lt;strong&gt;modo de saturação&lt;/strong&gt;, o que compromete sua função de amplificar o sinal corretamente.&lt;/p&gt;&lt;p id=&quot;6997&quot;&gt;A pergunta essencial a se fazer é:&lt;/p&gt;&lt;blockquote&gt;&lt;p id=&quot;b6c7&quot;&gt;&lt;strong&gt;Quais são os valores de &lt;em&gt;V_in&lt;/em&gt; para que o amplificador não opere em saturação?&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/69fa0f570d3c/485bf40d00a2fc93fd94.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;430&quot;&gt;&lt;figcaption&gt;Equações dos diferentes tipos de amplificadores&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;316d&quot;&gt;Como cada tipo de amplificador possui uma equação específica, o procedimento geral consiste em:&lt;/p&gt;&lt;p id=&quot;9feb&quot;&gt;1. &lt;strong&gt;Identificar os valores das tensões de alimentação&lt;/strong&gt;: &lt;em&gt;+V_cc&lt;/em&gt; e &lt;em&gt;-V_cc&lt;/em&gt;.&lt;br&gt;2. &lt;strong&gt;Substituir&lt;/strong&gt; &lt;em&gt;+V_cc&lt;/em&gt; no lugar da saída &lt;em&gt;V_o&lt;/em&gt; na equação do amplificador.&lt;br&gt;3. &lt;strong&gt;Inserir os valores dos resistores&lt;/strong&gt;, mantendo &lt;em&gt;V_in&lt;/em&gt; como incógnita.&lt;br&gt;4. &lt;strong&gt;Resolver a equação&lt;/strong&gt;, obtendo o &lt;strong&gt;valor máximo de &lt;em&gt;V_in&lt;/em&gt;&lt;/strong&gt; que mantém a operação linear.&lt;br&gt;5. Repetir o mesmo processo, &lt;strong&gt;substituindo &lt;em&gt;V_o&lt;/em&gt; por &lt;em&gt;-V_cc&lt;/em&gt;&lt;/strong&gt;, para obter o &lt;strong&gt;valor mínimo de &lt;em&gt;V_in&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;p id=&quot;347f&quot;&gt;O intervalo obtido para &lt;em&gt;V_in&lt;/em&gt; será justamente a faixa de operação linear. Por exemplo:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/69fa0f570d3c/00fe2539244d747e2f5e.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;434&quot; height=&quot;132&quot;&gt;&lt;figcaption&gt;Exemplo de resultado de um intervalo de saturação&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;1580&quot;&gt;Esse intervalo pode variar de acordo com a configuração do circuito e os valores escolhidos para &lt;em&gt;V_cc&lt;/em&gt; e os resistores.&lt;/p&gt;&lt;p id=&quot;2af3&quot;&gt;Publicado originalmente em: 22/10/2019&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Como Estudar de Forma Eficiente e Se Desenvolver Continuamente</title>
      <link>https://danielgaio.com/pt/blog/como-estudar-de-forma-eficiente-e-se-desenvolver-continuamente-570a2b44c840/</link>
      <guid isPermaLink="false">https://medium.com/p/570a2b44c840</guid>
      <pubDate>Mon, 30 Jun 2025 13:03:14 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>Quando estiver estudando uma videoaula ou lendo algum conteúdo novo, experimente as seguintes estratégias: Use post-its ou anotações rápidas para registrar frases marcantes ou ideias importantes. Anote aquelas “sacadas”…</description>
      <content:encoded>&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/570a2b44c840/13327c6a7a208d0bb3ef.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;467&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@mikeyharris?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Mikey Harris&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;770a&quot;&gt;Quando estiver estudando uma videoaula ou lendo algum conteúdo novo, experimente as seguintes estratégias:&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;5279&quot;&gt;&lt;strong&gt;Use post-its ou anotações rápidas para registrar frases marcantes ou ideias importantes.&lt;/strong&gt; Anote aquelas “sacadas” que você sente que vão te ajudar ou te motivar. Nesse momento inicial, não se preocupe com organização — o objetivo é capturar o insight. Mais tarde, você pode dar um destino mais específico para esse conteúdo (como organizá-lo em um caderno ou app de notas, ou até incluir em projetos).&lt;/li&gt;&lt;li id=&quot;1830&quot;&gt;&lt;strong&gt;Foque em uma única tarefa por vez.&lt;/strong&gt; Defina claramente o que você precisa fazer em seguida e direcione toda a sua atenção para isso. Se estiver lendo, elimine distrações como notificações, redes sociais e ruídos. Crie um ambiente que te favoreça. Se estiver assistindo a uma videoaula, coloque-a em tela cheia, e pause sempre que precisar anotar ou refletir sobre o que foi dito.&lt;/li&gt;&lt;/ul&gt;&lt;h3 id=&quot;ed8c&quot;&gt;Comece Antes de Estar Pronto&lt;/h3&gt;&lt;p id=&quot;5b0b&quot;&gt;Um hábito poderoso de se cultivar é: &lt;strong&gt;iniciar imediatamente&lt;/strong&gt;.&lt;/p&gt;&lt;p id=&quot;fd07&quot;&gt;Seja lá o que for, não espere até se tornar um profissional para começar a agir. &lt;strong&gt;Comece a agir para se tornar um profissional.&lt;/strong&gt; Essa mudança de mentalidade é fundamental para o crescimento. As pessoas que mais evoluem são aquelas que erram, corrigem, e continuam em movimento.&lt;/p&gt;&lt;h3 id=&quot;e37d&quot;&gt;Estudar Muito Não é Sinal de Fraqueza, e Sim de Inteligência&lt;/h3&gt;&lt;p id=&quot;6737&quot;&gt;Tenha sempre em mente: &lt;strong&gt;os melhores em qualquer área estudaram muito e praticaram mais ainda.&lt;/strong&gt; O estudo contínuo é uma característica comum entre os que se destacam.&lt;/p&gt;&lt;p id=&quot;a109&quot;&gt;Mas atenção: &lt;strong&gt;não estude porque se considera “burro” ou insuficiente&lt;/strong&gt;. Estude porque é &lt;strong&gt;inteligente o suficiente para reconhecer&lt;/strong&gt; que o conhecimento disponível no mundo é praticamente infinito. Estude porque quer se tornar melhor.&lt;/p&gt;&lt;p id=&quot;be7e&quot;&gt;Essa é a mentalidade do &lt;strong&gt;aperfeiçoamento contínuo&lt;/strong&gt;. Quem não estuda, para no tempo. Quem se desenvolve constantemente, constrói o próprio futuro.&lt;/p&gt;&lt;h3 id=&quot;300b&quot;&gt;Tenha um Objetivo — Mesmo que Incompleto&lt;/h3&gt;&lt;p id=&quot;c4fe&quot;&gt;Tenha em mente &lt;strong&gt;um objetivo&lt;/strong&gt;, mesmo que ainda seja vago. Mentalize &lt;strong&gt;por que&lt;/strong&gt; você está estudando, se esforçando, e dedicando seu tempo.&lt;/p&gt;&lt;p id=&quot;4b1e&quot;&gt;Esse objetivo não precisa ser perfeitamente definido, mas precisa te lembrar que o que você está fazendo &lt;strong&gt;hoje&lt;/strong&gt; é uma &lt;strong&gt;etapa&lt;/strong&gt;. Um &lt;strong&gt;bloco de construção&lt;/strong&gt; rumo ao que você quer alcançar.&lt;/p&gt;&lt;p id=&quot;2cb7&quot;&gt;Saber onde você quer chegar ajuda a manter o foco e a motivação.&lt;/p&gt;&lt;h3 id=&quot;b5d1&quot;&gt;Pratique Muito — Torne Suas Habilidades uma Extensão de Você&lt;/h3&gt;&lt;p id=&quot;2471&quot;&gt;Sempre que tiver oportunidade, &lt;strong&gt;pratique sua área.&lt;/strong&gt;&lt;/p&gt;&lt;p id=&quot;7fe6&quot;&gt;Transforme sua profissão, sua habilidade, em &lt;strong&gt;uma extensão do seu corpo e da sua mente.&lt;/strong&gt; Com o tempo, você vai desenvolver um domínio natural sobre aquilo que faz.&lt;/p&gt;&lt;p id=&quot;b4ed&quot;&gt;&lt;strong&gt;Masterize suas skills.&lt;/strong&gt; Quanto mais você pratica, mais intuitivo e poderoso se torna.&lt;/p&gt;&lt;p id=&quot;0c69&quot;&gt;Originalmente publicado em: 03/10/2019&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>API, Biblioteca e Framework: Entenda de Uma Vez por Todas a Diferença</title>
      <link>https://danielgaio.com/pt/blog/api-biblioteca-e-framework-entenda-de-uma-vez-por-todas-a-diferen%C3%A7a-c1f84beb094a/</link>
      <guid isPermaLink="false">https://medium.com/p/c1f84beb094a</guid>
      <pubDate>Mon, 23 Jun 2025 13:01:39 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>Se você está começando no mundo da programação ou já tem alguma experiência, é provável que já tenha ouvido falar dos termos API , biblioteca e framework . Eles são frequentemente usados — e muitas vezes confundidos.…</description>
      <content:encoded>&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/c1f84beb094a/6cd482da29e24a15f93d.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;467&quot;&gt;&lt;figcaption&gt;Diagrama comparando API, Biblioteca e Framework&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;a2f0&quot;&gt;Se você está começando no mundo da programação ou já tem alguma experiência, é provável que já tenha ouvido falar dos termos &lt;strong&gt;API&lt;/strong&gt;, &lt;strong&gt;biblioteca&lt;/strong&gt; e &lt;strong&gt;framework&lt;/strong&gt;. Eles são frequentemente usados — e muitas vezes confundidos. Apesar de parecerem similares, eles têm propósitos e formas de uso bem diferentes.&lt;/p&gt;&lt;p id=&quot;5453&quot;&gt;Neste artigo, vou explicar o que cada um é, usando definições claras, analogias simples e comparações que vão te ajudar a entender de vez o papel de cada um no desenvolvimento de software.&lt;/p&gt;&lt;h2 id=&quot;f03e&quot;&gt;🔧 O que é uma API?&lt;/h2&gt;&lt;p id=&quot;ac93&quot;&gt;&lt;strong&gt;API&lt;/strong&gt; significa &lt;em&gt;Application Programming Interface&lt;/em&gt;, ou em português, &lt;strong&gt;Interface de Programação de Aplicações&lt;/strong&gt;.&lt;/p&gt;&lt;h3 id=&quot;d465&quot;&gt;🧠 Definição&lt;/h3&gt;&lt;p id=&quot;36c6&quot;&gt;Uma API é um &lt;strong&gt;conjunto de regras e especificações&lt;/strong&gt; que permite que softwares diferentes se comuniquem entre si. Ela define como os desenvolvedores podem &lt;strong&gt;interagir com um sistema&lt;/strong&gt;, serviço ou componente.&lt;/p&gt;&lt;h3 id=&quot;97a5&quot;&gt;🎯 Finalidade&lt;/h3&gt;&lt;p id=&quot;0b05&quot;&gt;Permitir que um programa utilize funcionalidades de outro, sem precisar entender seus detalhes internos.&lt;/p&gt;&lt;h3 id=&quot;7a82&quot;&gt;🧩 Analogia&lt;/h3&gt;&lt;p id=&quot;7f7d&quot;&gt;Imagine que uma API é como o &lt;strong&gt;menu de um restaurante&lt;/strong&gt;. Você olha o cardápio (a interface), escolhe um prato (uma função) e o garçom (a API) leva seu pedido para a cozinha (o sistema interno). Você não precisa saber como o prato é preparado — apenas faz o pedido correto.&lt;/p&gt;&lt;h3 id=&quot;fb1e&quot;&gt;💡 Exemplo&lt;/h3&gt;&lt;ul&gt;&lt;li id=&quot;d805&quot;&gt;A API do Google Maps permite que você adicione mapas e localizações no seu aplicativo.&lt;/li&gt;&lt;li id=&quot;9597&quot;&gt;A API de um banco permite que você consulte o saldo ou faça transferências a partir do seu app financeiro.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;f30e&quot;&gt;📚 O que é uma Biblioteca?&lt;/h2&gt;&lt;p id=&quot;5ee4&quot;&gt;Uma &lt;strong&gt;biblioteca&lt;/strong&gt; é um &lt;strong&gt;conjunto de funções e rotinas reutilizáveis&lt;/strong&gt; que você pode usar no seu código para evitar reinventar a roda.&lt;/p&gt;&lt;h3 id=&quot;8107&quot;&gt;🧠 Definição&lt;/h3&gt;&lt;p id=&quot;fc8e&quot;&gt;Uma biblioteca é um &lt;strong&gt;código já pronto&lt;/strong&gt;, que você &lt;strong&gt;chama&lt;/strong&gt; quando precisa realizar tarefas específicas.&lt;/p&gt;&lt;h3 id=&quot;6039&quot;&gt;🎯 Finalidade&lt;/h3&gt;&lt;p id=&quot;f27f&quot;&gt;Reutilizar código confiável e testado para resolver problemas comuns, como manipular datas, criar gráficos ou conectar a um banco de dados.&lt;/p&gt;&lt;h3 id=&quot;d2d3&quot;&gt;🧩 Analogia&lt;/h3&gt;&lt;p id=&quot;477b&quot;&gt;Pense na biblioteca como uma &lt;strong&gt;ferramenta na sua caixa de ferramentas&lt;/strong&gt;. Quando você quer parafusar algo, pega uma chave de fenda. Mas &lt;strong&gt;você escolhe quando e como usá-la&lt;/strong&gt;.&lt;/p&gt;&lt;h3 id=&quot;8d0b&quot;&gt;💡 Exemplo&lt;/h3&gt;&lt;ul&gt;&lt;li id=&quot;31d3&quot;&gt;&lt;em&gt;NumPy&lt;/em&gt; é uma biblioteca Python para cálculos numéricos.&lt;/li&gt;&lt;li id=&quot;93d7&quot;&gt;&lt;em&gt;Lodash&lt;/em&gt; é uma biblioteca JavaScript para manipulação de arrays e objetos.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;0a44&quot;&gt;🏗️ O que é um Framework?&lt;/h2&gt;&lt;p id=&quot;81c1&quot;&gt;Um &lt;strong&gt;framework&lt;/strong&gt; é um &lt;strong&gt;esqueleto estruturado&lt;/strong&gt; que define como a sua aplicação deve ser construída.&lt;/p&gt;&lt;h3 id=&quot;40bf&quot;&gt;🧠 Definição&lt;/h3&gt;&lt;p id=&quot;415c&quot;&gt;É um conjunto de componentes e regras que &lt;strong&gt;impõe uma estrutura ao seu projeto&lt;/strong&gt; e geralmente &lt;strong&gt;chama o seu código&lt;/strong&gt; em determinados momentos — isso é conhecido como &lt;strong&gt;Inversão de Controle&lt;/strong&gt;.&lt;/p&gt;&lt;h3 id=&quot;539b&quot;&gt;🎯 Finalidade&lt;/h3&gt;&lt;p id=&quot;9ae2&quot;&gt;Acelerar o desenvolvimento fornecendo uma arquitetura base, boas práticas embutidas e integração de funcionalidades.&lt;/p&gt;&lt;h3 id=&quot;9647&quot;&gt;🧩 Analogia&lt;/h3&gt;&lt;p id=&quot;f965&quot;&gt;Imagine que um framework é como &lt;strong&gt;construir uma casa com uma planta pré-definida&lt;/strong&gt;. Você pode decorar os cômodos como quiser, mas a fundação, paredes e encanamento já estão definidos.&lt;/p&gt;&lt;h3 id=&quot;8765&quot;&gt;💡 Exemplo&lt;/h3&gt;&lt;ul&gt;&lt;li id=&quot;6e27&quot;&gt;&lt;em&gt;Django&lt;/em&gt; é um framework Python para desenvolvimento web.&lt;/li&gt;&lt;li id=&quot;af6a&quot;&gt;&lt;em&gt;React&lt;/em&gt; (apesar de ser muitas vezes considerado uma biblioteca, funciona quase como um framework completo em projetos mais robustos).&lt;/li&gt;&lt;li id=&quot;c719&quot;&gt;&lt;em&gt;Angular&lt;/em&gt; é um framework completo para construção de interfaces web com TypeScript.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;22ff&quot;&gt;🆚 Comparações Diretas&lt;/h2&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/c1f84beb094a/48d4e02a520ffe52f836.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;191&quot;&gt;&lt;figcaption&gt;Tabela comparativa&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&quot;a98f&quot;&gt;🚀 Qual usar, e quando?&lt;/h2&gt;&lt;ul&gt;&lt;li id=&quot;68e4&quot;&gt;&lt;strong&gt;API&lt;/strong&gt;: quando você quer acessar funcionalidades de outro sistema ou serviço.&lt;/li&gt;&lt;li id=&quot;fb8c&quot;&gt;&lt;strong&gt;Biblioteca&lt;/strong&gt;: quando você quer resolver tarefas específicas sem escrever tudo do zero.&lt;/li&gt;&lt;li id=&quot;e933&quot;&gt;&lt;strong&gt;Framework&lt;/strong&gt;: quando quer construir um projeto seguindo boas práticas e com base sólida, economizando tempo.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;1c03&quot;&gt;🧠 Conclusão&lt;/h2&gt;&lt;p id=&quot;7de7&quot;&gt;Saber a diferença entre API, biblioteca e framework não é só questão de terminologia — é sobre entender &lt;strong&gt;como construir software de forma eficiente&lt;/strong&gt;.&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;1933&quot;&gt;APIs &lt;strong&gt;conectam sistemas&lt;/strong&gt;.&lt;/li&gt;&lt;li id=&quot;73bb&quot;&gt;Bibliotecas &lt;strong&gt;ajudam a fazer tarefas específicas&lt;/strong&gt;.&lt;/li&gt;&lt;li id=&quot;1ae3&quot;&gt;Frameworks &lt;strong&gt;guiam a estrutura de todo o seu projeto&lt;/strong&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p id=&quot;fb37&quot;&gt;Com esse entendimento, você vai tomar decisões melhores ao escolher ferramentas para seus projetos — e vai se comunicar melhor com outros desenvolvedores.&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Classificação vs Regressão em Machine Learning</title>
      <link>https://danielgaio.com/pt/blog/classifica%C3%A7%C3%A3o-vs-regress%C3%A3o-em-machine-learning-7121617c7759/</link>
      <guid isPermaLink="false">https://medium.com/p/7121617c7759</guid>
      <pubDate>Mon, 16 Jun 2025 13:02:39 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>Classificação e regressão são duas técnicas fundamentais em aprendizado de máquina, cada uma voltada para resolver tipos diferentes de problemas. Entender a diferença entre elas é essencial para aplicar o método correto…</description>
      <content:encoded>&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/7121617c7759/ed2bb97c73f8fd1c74f7.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;467&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@jplenio?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Johannes Plenio&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;cd64&quot;&gt;Classificação e regressão são duas técnicas fundamentais em aprendizado de máquina, cada uma voltada para resolver tipos diferentes de problemas. Entender a diferença entre elas é essencial para aplicar o método correto conforme o objetivo da análise.&lt;/p&gt;&lt;h2 id=&quot;f3ba&quot;&gt;Classificação&lt;/h2&gt;&lt;p id=&quot;87d0&quot;&gt;Classificação é o processo de atribuir uma amostra de dados a uma categoria ou classe específica. Imagine que você tem uma caixa cheia de frutas e quer separar maçãs, bananas e laranjas. A classificação é justamente essa tarefa de identificar a qual grupo cada fruta pertence.&lt;/p&gt;&lt;p id=&quot;71c7&quot;&gt;Por exemplo:&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;5f4a&quot;&gt;Prever se um usuário finalizará uma compra (sim ou não).&lt;/li&gt;&lt;/ul&gt;&lt;p id=&quot;c408&quot;&gt;A classificação pode ser:&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;8922&quot;&gt;&lt;strong&gt;Binária&lt;/strong&gt;: quando existem apenas duas classes possíveis, como “sim” ou “não”.&lt;/li&gt;&lt;li id=&quot;c7a7&quot;&gt;&lt;strong&gt;Multiclasse&lt;/strong&gt;: quando há mais de duas classes, como:&lt;br&gt;- Identificar a espécie de uma planta (ex: rosa, girassol, margarida).&lt;br&gt;- Classificar e-mails em categorias como Principal, Social, Promoções e Importantes.&lt;/li&gt;&lt;/ul&gt;&lt;p id=&quot;67e4&quot;&gt;&lt;strong&gt;Analogia&lt;/strong&gt;: Pense na classificação como um porteiro que decide a qual sala cada visitante deve ir, baseado em características como roupa, comportamento ou documentos.&lt;/p&gt;&lt;h3 id=&quot;57fb&quot;&gt;Algoritmos comuns de classificação&lt;/h3&gt;&lt;p id=&quot;dba4&quot;&gt;Aqui estão alguns algoritmos populares para classificação, com links para documentação e vídeos explicativos:&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;8b83&quot;&gt;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html&quot;&gt;K-nearest neighbors (KNN) &lt;/a&gt;&lt;br&gt;- Vídeo explicativo: &lt;a href=&quot;https://youtu.be/HVXime0nQeI&quot;&gt;StatQuest: K-nearest neighbors, Clearly Explained&lt;/a&gt;&lt;/li&gt;&lt;li id=&quot;96e7&quot;&gt;&lt;a href=&quot;https://scikit-learn.org/stable/modules/svm.html&quot;&gt;Support Vector Machines (SVM) &lt;/a&gt;&lt;br&gt;- Vídeos explicativos: &lt;br&gt; — &lt;a href=&quot;https://youtu.be/efR1C6CvhmE&quot;&gt;Parte 1: Conceitos principais&lt;/a&gt; &lt;br&gt; — &lt;a href=&quot;https://youtu.be/Toet3EiSFcM&quot;&gt;Parte 2: Kernel polinomial&lt;/a&gt; &lt;br&gt; — &lt;a href=&quot;https://youtu.be/Qc5IyLW_hns&quot;&gt;Parte 3: Kernel radial (RBF)&lt;/a&gt;&lt;/li&gt;&lt;li id=&quot;4876&quot;&gt;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html&quot;&gt;Decision Tree Classifier&lt;/a&gt; &lt;br&gt;- Vídeo: &lt;a href=&quot;https://youtu.be/_L39rN6gz7Y&quot;&gt;Decision and Classification Trees, Clearly Explained!!!&lt;/a&gt;&lt;/li&gt;&lt;li id=&quot;7a95&quot;&gt;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html&quot;&gt;Random Forest Classifier&lt;/a&gt; &lt;br&gt;- Vídeos: &lt;br&gt; — &lt;a href=&quot;https://youtu.be/J4Wdy0Wc_xQ&quot;&gt;Parte 1: Construção e avaliação&lt;/a&gt; &lt;br&gt; — &lt;a href=&quot;https://youtu.be/sQ870aTKqiM&quot;&gt;Parte 2: Dados faltantes e clustering&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;8292&quot;&gt;Regressão&lt;/h2&gt;&lt;p id=&quot;9051&quot;&gt;Regressão é a técnica usada para prever valores numéricos contínuos, como preços, temperaturas ou receitas futuras. Diferente da classificação, que atribui categorias, a regressão estima um valor quantitativo.&lt;/p&gt;&lt;p id=&quot;1759&quot;&gt;Por exemplo:&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;ebde&quot;&gt;Prever o preço de uma casa com base em suas características.&lt;/li&gt;&lt;li id=&quot;0d20&quot;&gt;Estimar a receita mensal de uma empresa.&lt;/li&gt;&lt;/ul&gt;&lt;p id=&quot;dcc6&quot;&gt;&lt;strong&gt;Analogia&lt;/strong&gt;: Imagine um termômetro que mede a temperatura exata, em vez de apenas dizer se está quente ou frio. A regressão fornece essa medida precisa.&lt;/p&gt;&lt;h3 id=&quot;6076&quot;&gt;Algoritmos comuns de regressão&lt;/h3&gt;&lt;p id=&quot;e0d0&quot;&gt;Alguns algoritmos populares para regressão incluem:&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;081c&quot;&gt;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html&quot;&gt;Linear Regression&lt;/a&gt; &lt;br&gt;- Vídeo: &lt;a href=&quot;https://youtu.be/7ArmBVF2dCs&quot;&gt;Linear Regression, Clearly Explained!!!&lt;/a&gt;&lt;/li&gt;&lt;li id=&quot;a861&quot;&gt;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestRegressor.html&quot;&gt;Random Forest Regressor&lt;/a&gt; &lt;br&gt;- Vídeo: &lt;a href=&quot;https://youtu.be/g9c66TUylZ4&quot;&gt;Regression Trees, Clearly Explained!!!&lt;/a&gt;&lt;/li&gt;&lt;li id=&quot;a050&quot;&gt;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html&quot;&gt;Support Vector Regression (SVR)&lt;/a&gt; &lt;br&gt;- Vídeos: &lt;br&gt; — &lt;a href=&quot;https://youtu.be/3q3Iudp-cAg&quot;&gt;SVR comparado com regressão linear&lt;/a&gt; &lt;br&gt; — &lt;a href=&quot;https://youtu.be/DBApaR2mTg0&quot;&gt;Explicação aprofundada de SVR&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;0ae6&quot;&gt;Conclusão&lt;/h2&gt;&lt;p id=&quot;19cf&quot;&gt;Neste post, exploramos os conceitos básicos de classificação e regressão, destacando suas diferenças e aplicações típicas. Também apresentamos exemplos práticos e recursos para aprofundar o entendimento dos principais algoritmos usados em cada técnica. Com esse conhecimento, você estará melhor preparado para escolher a abordagem correta para seus projetos de aprendizado de máquina.&lt;/p&gt;&lt;h2 id=&quot;e58e&quot;&gt;Referências&lt;/h2&gt;&lt;ul&gt;&lt;li id=&quot;d412&quot;&gt;Brownlee, Jason. “4 Types of Classification Tasks in Machine Learning — MachineLearningMastery.com.” MachineLearningMastery.com, 7 Apr. 2020, machinelearningmastery.com/types-of-classification-in-machine-learning/. Accessed 27 Apr. 2023.&lt;/li&gt;&lt;li id=&quot;de5a&quot;&gt;“Machine Learning: Classificação Por Trás Dos Panos: Aula 1 — Atividade 8 Para Saber Mais: Classificação versus Regressão | Alura — Cursos Online de Tecnologia.” Alura.com.br, 2023, cursos.alura.com.br/course/machine-learning-classificacao-tras-panos/task/107923. Accessed 27 Apr. 2023.&lt;/li&gt;&lt;/ul&gt;&lt;p id=&quot;ddd0&quot;&gt;Originalmente publicado em 29/04/2023&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Assuntos iniciais de Mecânica Geral</title>
      <link>https://danielgaio.com/pt/blog/assuntos-iniciais-de-mec%C3%A2nica-geral-b4e7b37befc0/</link>
      <guid isPermaLink="false">https://medium.com/p/b4e7b37befc0</guid>
      <pubDate>Mon, 09 Jun 2025 13:12:12 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>A Mecânica Geral é uma das bases da engenharia e da física, e um dos seus primeiros tópicos é a estática. Nessa área, estudamos o equilíbrio dos corpos, sejam eles pontos materiais ou corpos extensos. Um conceito…</description>
      <content:encoded>&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/b4e7b37befc0/4645c2a53e1fe28c421b.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;700&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@sunder_2k25?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Sunder Muthukumaran&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;d6e1&quot;&gt;A Mecânica Geral é uma das bases da engenharia e da física, e um dos seus primeiros tópicos é a estática. Nessa área, estudamos o equilíbrio dos corpos, sejam eles pontos materiais ou corpos extensos. Um conceito fundamental é a decomposição de forças e a manipulação de vetores, essenciais para analisar situações de equilíbrio. Quando as forças atuam em cabos, recebem o nome de trações.&lt;/p&gt;&lt;h2 id=&quot;ed42&quot;&gt;Momento de uma Força&lt;/h2&gt;&lt;p id=&quot;5100&quot;&gt;O momento de uma força, também conhecido como torque, mede a capacidade de uma força de provocar rotação em um objeto em torno de um ponto ou eixo. O ponto de referência é chamado de polo. O sinal do momento indica o sentido da rotação: positivo para o sentido anti-horário (como a convenção dos ângulos) e negativo para o sentido horário.&lt;/p&gt;&lt;h2 id=&quot;360c&quot;&gt;Momento em Relação a Eixos&lt;/h2&gt;&lt;p id=&quot;c642&quot;&gt;O momento também pode ser calculado em relação a um eixo. Nesse caso, apenas as componentes da força que não passam pelo eixo contribuem para o momento — forças aplicadas diretamente sobre o eixo não geram momento.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/b4e7b37befc0/7d5f3c3bd350ea5827f6.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;620&quot; height=&quot;558&quot;&gt;&lt;figcaption&gt;Figura 1: Exemplo de momento&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;3fb8&quot;&gt;Um exemplo cotidiano é abrir ou fechar uma porta: o momento é definido em relação ao eixo das dobradiças.&lt;/p&gt;&lt;p id=&quot;3340&quot;&gt;A fórmula geral para calcular o momento em relação a um eixo qualquer é:&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/b4e7b37befc0/15da96a435de820a568e.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;263&quot;&gt;&lt;figcaption&gt;Figura 2: Fórmula do momento em um eixo qualquer&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;75de&quot;&gt;Onde:&lt;br&gt;- &lt;em&gt;M_a&lt;/em&gt; é o momento em relação ao eixo &lt;em&gt;a&lt;/em&gt;,&lt;br&gt;- &lt;em&gt;U_a&lt;/em&gt; é o vetor unitário na direção do eixo, calculado por:&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/b4e7b37befc0/28ef28a0a9e5a0feb5b5.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;615&quot;&gt;&lt;figcaption&gt;Figura 3: Fórmula para encontrar vetor unitário (direção)&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;2c80&quot;&gt;- &lt;em&gt;r&lt;/em&gt; é o vetor posição (ou braço de alavanca), que liga um ponto do eixo a um ponto da linha de ação da força,&lt;br&gt;- &lt;em&gt;F&lt;/em&gt; é a força, representada em sua forma vetorial.&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/b4e7b37befc0/ec8121bf6222b8bc1c5e.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;794&quot;&gt;&lt;figcaption&gt;Figura 4: Exercício de momento com relação a um eixo qualquer&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&quot;6be5&quot;&gt;Dicas Gerais para Resolver Problemas em 2D&lt;/h2&gt;&lt;ol&gt;&lt;li id=&quot;797c&quot;&gt;Faça sub-desenhos para visualizar melhor os ângulos e decompor as forças em cada eixo.&lt;/li&gt;&lt;li id=&quot;8c59&quot;&gt;Nomeie as componentes das forças (&lt;em&gt;F1x&lt;/em&gt;, &lt;em&gt;F1y&lt;/em&gt;, &lt;em&gt;F1z&lt;/em&gt;, etc.) e já calcule seus valores usando seno ou cosseno.&lt;/li&gt;&lt;li id=&quot;2761&quot;&gt;Monte as expressões dos somatórios das forças em &lt;em&gt;x&lt;/em&gt;, &lt;em&gt;y&lt;/em&gt; e &lt;em&gt;z&lt;/em&gt;. Escreva, por exemplo, &lt;em&gt;SUM(Fx) = …&lt;/em&gt; para manter a organização.&lt;/li&gt;&lt;li id=&quot;4cad&quot;&gt;Se for solicitado o módulo da força resultante, calcule-o agora.&lt;/li&gt;&lt;li id=&quot;6d4f&quot;&gt;Para determinar a direção, utilize a tangente:&lt;/li&gt;&lt;/ol&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/b4e7b37befc0/5fc99d27ec31edef9a2d.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;358&quot; height=&quot;166&quot;&gt;&lt;/figure&gt;&lt;h2 id=&quot;d38b&quot;&gt;Dicas para Problemas em 3D&lt;/h2&gt;&lt;ol&gt;&lt;li id=&quot;5462&quot;&gt;Nomeie os pontos e registre suas coordenadas.&lt;/li&gt;&lt;li id=&quot;bd3c&quot;&gt;Escreva os vetores necessários a partir dos pontos identificados.&lt;/li&gt;&lt;li id=&quot;1709&quot;&gt;Calcule o módulo de cada vetor.&lt;/li&gt;&lt;li id=&quot;0318&quot;&gt;Normalize os vetores (especialmente de forças ou tensões), usando a expressão abaixo. Assim, você terá um vetor unitário multiplicado pelo módulo desconhecido.&lt;/li&gt;&lt;/ol&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/b4e7b37befc0/30040a652cb88f75a396.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;292&quot; height=&quot;159&quot;&gt;&lt;/figure&gt;&lt;p id=&quot;945f&quot;&gt;5. Se o sistema estiver em equilíbrio, utilize as condições de equilíbrio, montando as equações dos somatórios das forças em cada direção.&lt;/p&gt;&lt;p id=&quot;d795&quot;&gt;6. Normalmente, você terá três equações com três incógnitas. Use métodos de soma ou subtração de equações para eliminar incógnitas e encontrar as soluções.&lt;/p&gt;&lt;p id=&quot;a4ae&quot;&gt;26th abril 2019&lt;/p&gt;</content:encoded>
    </item>
    <item>
      <title>Considerações sobre Análise e Projeto de Algoritmos</title>
      <link>https://danielgaio.com/pt/blog/considera%C3%A7%C3%B5es-sobre-an%C3%A1lise-e-projeto-de-algoritmos-4bbf75bdf96d/</link>
      <guid isPermaLink="false">https://medium.com/p/4bbf75bdf96d</guid>
      <pubDate>Mon, 02 Jun 2025 10:07:28 GMT</pubDate>
      <dc:creator>Daniel Gaio</dc:creator>
      <dc:language>pt-BR</dc:language>
      <description>A análise e o projeto de algoritmos são etapas fundamentais no desenvolvimento de soluções eficientes para problemas computacionais. Dois paradigmas clássicos se destacam nesse contexto: a programação dinâmica e os…</description>
      <content:encoded>&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/4bbf75bdf96d/0df05ceb7f611f8112ca.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;394&quot;&gt;&lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@vimal_saran?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Vimal S&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;50cd&quot;&gt;A análise e o projeto de algoritmos são etapas fundamentais no desenvolvimento de soluções eficientes para problemas computacionais. Dois paradigmas clássicos se destacam nesse contexto: a programação dinâmica e os algoritmos gulosos.&lt;/p&gt;&lt;h2 id=&quot;6e8d&quot;&gt;Programação Dinâmica&lt;/h2&gt;&lt;p id=&quot;d586&quot;&gt;Apesar do nome, programação dinâmica não está diretamente relacionada à programação de computadores, mas sim ao planejamento estratégico para resolução de problemas. Trata-se de um paradigma que consiste em decompor um problema em subproblemas menores, geralmente sobrepostos, e armazenar as soluções desses subproblemas em uma tabela para reutilização posterior.&lt;/p&gt;&lt;p id=&quot;572c&quot;&gt;Um princípio central da programação dinâmica é o princípio da otimalidade: em uma solução ótima para o problema original, as soluções dos subproblemas também devem ser ótimas. Essa abordagem evita o retrabalho, pois cada subproblema é resolvido apenas uma vez, e sua solução é reutilizada sempre que necessário.&lt;/p&gt;&lt;h2 id=&quot;dad7&quot;&gt;Algoritmos Gulosos&lt;/h2&gt;&lt;p id=&quot;1b8b&quot;&gt;Os algoritmos gulosos, por sua vez, seguem uma estratégia diferente: em cada etapa, escolhem a opção que parece ser a melhor naquele momento, na esperança de que essa escolha local leve a uma solução global ótima. Essa abordagem é bastante utilizada em problemas de otimização devido à sua simplicidade e baixa complexidade de implementação.&lt;/p&gt;&lt;p id=&quot;b155&quot;&gt;No entanto, é importante destacar que algoritmos gulosos nem sempre garantem a melhor solução global, pois as escolhas feitas não são reconsideradas posteriormente (não há rollback). Em geral, cada elemento do conjunto de possíveis escolhas é analisado apenas uma vez, e uma função de seleção determina qual elemento será incluído na solução naquele instante.&lt;/p&gt;&lt;h2 id=&quot;6b08&quot;&gt;Análise de Algoritmos&lt;/h2&gt;&lt;p id=&quot;7e07&quot;&gt;Após projetar um algoritmo, é essencial testá-lo e analisá-lo para garantir sua corretude. Em seguida, realiza-se a análise de desempenho, especialmente em relação ao tempo de execução. Para isso, consideram-se diferentes cenários de entrada:&lt;/p&gt;&lt;ul&gt;&lt;li id=&quot;fb10&quot;&gt;&lt;strong&gt;Pior caso&lt;/strong&gt;&lt;/li&gt;&lt;li id=&quot;1040&quot;&gt;&lt;strong&gt;Caso médio&lt;/strong&gt;&lt;/li&gt;&lt;li id=&quot;4d5a&quot;&gt;&lt;strong&gt;Melhor caso&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p id=&quot;2e5c&quot;&gt;O objetivo é identificar a ordem de grandeza da função de tempo do algoritmo, conhecida como ordem de complexidade. Em outras palavras, o tempo de execução é uma medida da complexidade do algoritmo.&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/4bbf75bdf96d/3d6f5c1c80754d189ace.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;394&quot;&gt;&lt;figcaption&gt;Exemplos de funções de progressão temporal&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&quot;c592&quot;&gt;Notação Big-O&lt;/h2&gt;&lt;p id=&quot;fa02&quot;&gt;A notação Big-O é utilizada para expressar o limite assintótico superior do tempo de execução de um algoritmo. Diferentemente da notação Teta, que define limites superior e inferior, e da notação Ômega, que define apenas o limite inferior, a notação Big-O foca no comportamento da função para valores grandes de &lt;em&gt;n&lt;/em&gt;.&lt;/p&gt;&lt;p id=&quot;8316&quot;&gt;Graficamente, temos:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/4bbf75bdf96d/88bc753fe7bb58abcd68.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;586&quot; height=&quot;588&quot;&gt;&lt;figcaption&gt;f é limitada superiormente por c·g&lt;/figcaption&gt;&lt;/figure&gt;&lt;p id=&quot;b69e&quot;&gt;A definição formal é:&lt;/p&gt;&lt;figure&gt;Press enter or click to view image in full size&lt;img src=&quot;https://danielgaio.com/blog-imports/4bbf75bdf96d/cee817470c79ce95713a.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;700&quot; height=&quot;60&quot;&gt;&lt;/figure&gt;&lt;p id=&quot;c62c&quot;&gt;Quando dizemos que &lt;em&gt;f(n)&lt;/em&gt; é &lt;em&gt;O(g(n))&lt;/em&gt;, estamos indicando que &lt;em&gt;f(n)&lt;/em&gt; pertence ao conjunto &lt;em&gt;O(g(n))&lt;/em&gt;.&lt;/p&gt;&lt;p id=&quot;2773&quot;&gt;Qualquer função linear &lt;em&gt;an+b&lt;/em&gt; está em &lt;em&gt;O(n²)&lt;/em&gt; e isso pode ser demonstrado escolhendo:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/4bbf75bdf96d/c357f10a7e3e37542944.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;248&quot; height=&quot;96&quot;&gt;&lt;/figure&gt;&lt;p id=&quot;1c76&quot;&gt;e:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://danielgaio.com/blog-imports/4bbf75bdf96d/76f903db4878f03c40a9.png&quot; alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;380&quot; height=&quot;96&quot;&gt;&lt;/figure&gt;&lt;p id=&quot;c1aa&quot;&gt;25th abril 2019&lt;/p&gt;</content:encoded>
    </item>
  </channel>
</rss>
