<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Building at the Edge]]></title><description><![CDATA[Clear thinking on building software, teams, and AI systems under real-world constraints.]]></description><link>https://www.havlena.com</link><image><url>https://substackcdn.com/image/fetch/$s_!a_fB!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84f2a7de-de0d-4606-a527-dbeae0127a55_600x600.png</url><title>Building at the Edge</title><link>https://www.havlena.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 22 May 2026 19:59:13 GMT</lastBuildDate><atom:link href="https://www.havlena.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Matous Havlena]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[matoushavlena@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[matoushavlena@substack.com]]></itunes:email><itunes:name><![CDATA[Matous Havlena]]></itunes:name></itunes:owner><itunes:author><![CDATA[Matous Havlena]]></itunes:author><googleplay:owner><![CDATA[matoushavlena@substack.com]]></googleplay:owner><googleplay:email><![CDATA[matoushavlena@substack.com]]></googleplay:email><googleplay:author><![CDATA[Matous Havlena]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[AI Is Already Working. Just Not Where You Think.]]></title><description><![CDATA[What software engineering reveals about how AI will change work everywhere else]]></description><link>https://www.havlena.com/p/ai-is-already-working-just-not-where</link><guid isPermaLink="false">https://www.havlena.com/p/ai-is-already-working-just-not-where</guid><dc:creator><![CDATA[Matous Havlena]]></dc:creator><pubDate>Tue, 10 Mar 2026 07:32:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a_fB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84f2a7de-de0d-4606-a527-dbeae0127a55_600x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>After years of building agentic systems with IBM Research, including production systems used beyond demos and labs, one fact stopped surprising us.</p><p>The most advanced AI agents today don&#8217;t run companies or negotiate contracts.<br>They write code.</p><p>Not because programming is easy, but because the environment around it is built around structure, tools, and fast feedback loops.</p><p>What&#8217;s happening in software engineering isn&#8217;t an anomaly.<br>It&#8217;s an early signal.</p><h2>We&#8217;re looking for agents in the wrong places</h2><p>When people talk about AI agents, they talk about what comes next.</p><p>Digital coworkers. Autonomous teams. Companies running themselves.</p><p>That framing misses what&#8217;s already happening.</p><p>It focuses attention on intelligence, when the real constraint has always been the environment the intelligence operates in.</p><p>The first place AI agents deliver real, repeatable value is software engineering.<br>Enough to permanently change the industry.</p><h2>Why coding agents work first</h2><p>This isn&#8217;t a sudden breakthrough in intelligence.</p><p>Coding agents work because software engineering is built for machines.</p><p>Code is structured, work happens through tools, feedback is fast and clear.</p><p>Work breaks into small steps that can be validated.</p><p>Repositories, terminals, CI pipelines, logs, tests.</p><p>A bounded workspace that contains the context.<br>Tools that let agents inspect that context and act on it.<br>Feedback loops that immediately show what worked and what didn&#8217;t.</p><p>That&#8217;s the environment coding agents operate in. It&#8217;s why they succeed there.</p><h2>The work moves from execution to clarity</h2><p>As execution gets cheaper, the bottleneck shifts.</p><p>It&#8217;s no longer writing code.<br>It&#8217;s deciding what should happen.</p><p>When agents can implement quickly, the cost of a vague instruction becomes obvious.<br>They do exactly what you ask. Including the parts you didn&#8217;t think through.</p><p>The hard work moves upstream.</p><p>Clarifying the work itself. What matters, what doesn&#8217;t, what &#8220;done&#8221; actually means.</p><p>This is where projects fail. Not because agents can&#8217;t execute, but because the system around them isn&#8217;t clear enough.</p><p>Bad code used to be the problem.<br>Now it&#8217;s unclear goals, fuzzy ownership, and implicit expectations.</p><p>When execution is cheap, clarity becomes the constraint.</p><h2>What changes once execution gets cheap</h2><p>Trying ideas no longer burns weeks of developer time.<br>You can explore, discard, and iterate without committing upfront.</p><p>That changes behavior.</p><p>Teams experiment more, they take smaller bets, they test assumptions earlier.</p><p>It changes how software gets built.</p><p>SaaS starts to feel heavy.<br>Building exactly what you need becomes cheaper than forcing existing systems to adapt.</p><p>It changes who builds.</p><p>People closer to the problem start creating solutions themselves.<br>Product managers.<br>Designers.<br>Operators.</p><p>Not because they suddenly became engineers, but because the cost of being wrong dropped.</p><p>Data and systems shift.</p><p>Instead of retrofitting RAG onto existing architectures, teams start designing data, interfaces, and context with agents in mind from the beginning.</p><h2>Agents amplify lack of clarity</h2><p>There&#8217;s a cold reality here.</p><p>When workflows aren&#8217;t clear, agents don&#8217;t bring order.<br>They just reproduce the chaos faster.</p><p>We saw this in practice.</p><p>In one system, an agent was given broad access to analytics data and asked to &#8220;figure things out&#8221;.</p><p>It worked.<br>The outputs looked reasonable.<br>They were wrong.</p><p>Not because the agent failed, but because the work wasn&#8217;t clearly defined.<br>There was no feedback validating results.</p><p>So it did exactly what the system allowed.</p><p>Agents aren&#8217;t general managers.</p><p>They need a clearly defined job.</p><p>That&#8217;s the foundation.</p><h2>The pattern taking shape</h2><p>Software engineering isn&#8217;t special.</p><p>It&#8217;s just first. </p><p>It was the first field where work became structured enough, tool-driven enough, and measurable enough for agents to operate reliably. Other industries are starting to follow.</p><p>Not because AI suddenly gets smarter, but because the work itself becomes structured the same way.</p><p>Clear, inspectable context.<br>Actionable tools.<br>Work broken into steps.<br>Fast validation.</p><p>Where that environment exists, agents work.</p><p>The companies preparing it now won&#8217;t be scrambling later.</p><p>We see this at Apoco while building agentic frameworks, protocols, and platforms for IBM Research.</p><p>The breakthrough isn&#8217;t the models.<br>It&#8217;s designing systems where agents can do real work without guessing.</p><p>The signal is already visible.</p><p>The real risk isn&#8217;t missing the AI wave.</p><p>It&#8217;s waiting too long to prepare the environment that makes it work. Inside your own organization.</p>]]></content:encoded></item><item><title><![CDATA[I Automated Monday Morning Triage]]></title><description><![CDATA[A 30-second briefing that replaces morning triage.]]></description><link>https://www.havlena.com/p/i-automated-monday-morning-triage</link><guid isPermaLink="false">https://www.havlena.com/p/i-automated-monday-morning-triage</guid><dc:creator><![CDATA[Matous Havlena]]></dc:creator><pubDate>Thu, 19 Feb 2026 13:26:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a_fB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84f2a7de-de0d-4606-a527-dbeae0127a55_600x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every Monday I lost 15-25 minutes to &#8220;triage&#8221; that wasn&#8217;t work. I&#8217;d reshuffle my Things (todo app) list until it felt safe, then start the day already behind. So I automated it into a 30-second briefing and forced myself to pick one anchor.</p><h2>Sunday Night: 40 Todos</h2><p>Sunday was great in that quiet way. Long walk, a few good ideas, notes captured without trying too hard.</p><p>Then Sunday night I did the thing I always do: a quick peek at Monday. Things opened, and there it was - 40 todos staring back at me.</p><p>My stomach tightened. Not because the work was impossible, but because I could already feel the Monday morning shuffle starting.</p><p>I&#8217;ve used <a href="https://culturedcode.com/things/">Things</a> (Apple only) as my todo app for years because it stays out of my way. It&#8217;s on every device, and I keep the Today widget on my phone so I can glance and move on.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6pCh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc942009f-5f8c-4390-8893-d1340b43aef4_1024x795.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6pCh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc942009f-5f8c-4390-8893-d1340b43aef4_1024x795.png 424w, https://substackcdn.com/image/fetch/$s_!6pCh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc942009f-5f8c-4390-8893-d1340b43aef4_1024x795.png 848w, https://substackcdn.com/image/fetch/$s_!6pCh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc942009f-5f8c-4390-8893-d1340b43aef4_1024x795.png 1272w, https://substackcdn.com/image/fetch/$s_!6pCh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc942009f-5f8c-4390-8893-d1340b43aef4_1024x795.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6pCh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc942009f-5f8c-4390-8893-d1340b43aef4_1024x795.png" width="728" height="565.1953125" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c942009f-5f8c-4390-8893-d1340b43aef4_1024x795.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:795,&quot;width&quot;:1024,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:1400445,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/188482402?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43ab6d7-ba8e-46be-ab51-bab2a56ce9fd_1024x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6pCh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc942009f-5f8c-4390-8893-d1340b43aef4_1024x795.png 424w, https://substackcdn.com/image/fetch/$s_!6pCh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc942009f-5f8c-4390-8893-d1340b43aef4_1024x795.png 848w, https://substackcdn.com/image/fetch/$s_!6pCh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc942009f-5f8c-4390-8893-d1340b43aef4_1024x795.png 1272w, https://substackcdn.com/image/fetch/$s_!6pCh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc942009f-5f8c-4390-8893-d1340b43aef4_1024x795.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I keep it almost boring: 5 areas, 3 tags (quick, important, waiting), no projects. Just a clean list and a single place my brain can trust.</p><p>But that night the clean list didn&#8217;t feel clean. I closed the app and decided to build something.</p><h2>I Built a Small Triage Skill</h2><p>I built a tiny triage skill that reads my Things list and turns it into a 30-second briefing.</p><p>It talks to Things through an MCP server and runs in whatever I&#8217;m using that day - Claude Code, Cursor, any agent that supports MCP. It pulls the list, scans it, and applies a few dumb rules.</p><p>It groups by area, applies tags (quick, important, waiting), and flags anything blocked that needs a nudge. Then it suggests the next concrete move, not a re-org.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!htq2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18989bc3-6b26-4755-b516-679bc1647681_2400x844.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!htq2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18989bc3-6b26-4755-b516-679bc1647681_2400x844.png 424w, https://substackcdn.com/image/fetch/$s_!htq2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18989bc3-6b26-4755-b516-679bc1647681_2400x844.png 848w, https://substackcdn.com/image/fetch/$s_!htq2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18989bc3-6b26-4755-b516-679bc1647681_2400x844.png 1272w, https://substackcdn.com/image/fetch/$s_!htq2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18989bc3-6b26-4755-b516-679bc1647681_2400x844.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!htq2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18989bc3-6b26-4755-b516-679bc1647681_2400x844.png" width="2400" height="844" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/18989bc3-6b26-4755-b516-679bc1647681_2400x844.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:844,&quot;width&quot;:2400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:367302,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/188482402?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9963e8c-44f0-4622-bef8-20f783b3c361_2400x1912.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!htq2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18989bc3-6b26-4755-b516-679bc1647681_2400x844.png 424w, https://substackcdn.com/image/fetch/$s_!htq2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18989bc3-6b26-4755-b516-679bc1647681_2400x844.png 848w, https://substackcdn.com/image/fetch/$s_!htq2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18989bc3-6b26-4755-b516-679bc1647681_2400x844.png 1272w, https://substackcdn.com/image/fetch/$s_!htq2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18989bc3-6b26-4755-b516-679bc1647681_2400x844.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>It felt like hiring a quiet side assistant. Not to do the work, just to set the table so I can start.</p><h2>Monday Morning, Now in 30 Seconds</h2><p>The real problem wasn&#8217;t the number of todos. It was the mental overhead of loading each one: what is this, how hard is it, how important is it, am I waiting on someone?</p><p>Before, I&#8217;d spend 15-25 minutes doing that sorting in my head. I&#8217;d open Slack already tired.</p><p>Now the list is already organized. I read a 30-second briefing:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Good morning! Happy Thursday.

"The effective executive focuses on contribution. He looks up from his work and outward toward goals." &#8212; Peter Drucker

&#128308; Must do (4)

- Schedule share-out of AI-driven methods &#8212; 6 days old and tagged important. Don't be the blocker &#8212; even a quick video works. Get this off your plate today.
- Let the team know XYZ strategy &#8212; key strategic alignment your team needs now.
- Work with Joe &amp; Doe on operationalizing technical strategy &#8212; iterative, but chip away today while momentum is fresh.
- Convert brainstorm into 3 bets + 3 next experiments - important. Capture it before the ideas fade.

&#128993; Should do (2)

- Draft one hypothesis: &#8220;How enterprises will manage AI context in 3 years.&#8221; - strategic thinking that compounds.
- Decide where institutional knowledge lives - infrastructure decision that unblocks the team

&#128994; Could do (5)

- Send XYZ to Ondrej &#8212; quick, 5 min max
- Kiddo's doctor appointment &#8212; quick personal items
- Resolve XYZ family account &#8212; quick personal errand
- A2A DeepLearning.ai &#8212; learning, explore if you have a gap
- Read one article from queue &#8212; learning snack

&#128203; Daily Routine

Answer all Slack messages
Read next chapter
Check XYZ Launchpad</code></pre></div><p>That does one thing for me: it keeps me focused. I pick one important thing to anchor the day, and I let everything else be secondary.</p><p>Drucker&#8217;s point in <em>The Effective Executive</em> is that effective people don&#8217;t start with tasks. They start with their time and what only they can contribute. The triage runs before my morning starts. The list is already organized, the noise is gone. I just pick my focus and start.</p><p>Before: 15-25 minutes of mental shuffling.<br>After: 30 seconds and I know what to work on.</p><h2>Under the Hood</h2><p>Ok, here&#8217;s the actual technical part.</p><p>On the first run, it reads my Things areas and tags, asks a couple questions about my daily routines, then saves a local config file. It&#8217;s plain text and editable by hand.</p><p>Every morning after that, it does the boring maintenance: it categorizes uncategorized todos into areas, adds missing tags, creates any missing routine todos, then prints the briefing.</p><p>My tags are simple: quick (fits in a boring meeting), important (self-explanatory), waiting (blocked on someone else).</p><p>The output is always the same shape: Must do / Should do / Could do / Daily routine. It&#8217;s meant to be a 30-second read, not a dashboard.</p><p>It&#8217;s also idempotent (safe to run multiple times). It never deletes or renames. It only adds what&#8217;s missing.</p><p>If you want to try it:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;shell&quot;,&quot;nodeId&quot;:&quot;d51e4e77-05a4-4845-a176-dbff16d447dc&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-shell">npx skills add apocohq/skills --skill things-morning-organizer</code></pre></div><p> It&#8217;s open source on <a href="https://github.com/apocohq/skills">apocohq/skills</a>.</p><h2>What&#8217;s Next</h2><p><s>Next step is making it automatic: a scheduled task that runs every morning.<br></s>(Update: Done through launchpad. Automatically starts whenever you turn on your laptop in the morning. Feel free to reach out for guidance.)</p><p>I also want to ground it in context: who I am, what I&#8217;m optimizing for, what my company is working on. This is an unsolved problem for most teams using AI, and I&#8217;ll write about it separately.</p><p>I also want a meeting notes loop: integrate with tools like Granola, or just paste a transcript, extract todos, review them, and only then let anything land in Things.</p><p>Finally, I want better suggestions through a Drucker lens: what can only I do, and what should I delegate or drop?</p><p>If you want to contribute or follow along, I keep a <a href="https://github.com/apocohq/skills/blob/main/skills/things-morning-organizer/ROADMAP.md">full roadmap</a> in the repo.</p><p>I still wake up to 40 todos sometimes. The difference is I don&#8217;t treat the list like the work anymore, and I start.</p>]]></content:encoded></item><item><title><![CDATA[2025 Retrospective and 2026 Plans]]></title><description><![CDATA[A year in review, and the rules I'm taking forward]]></description><link>https://www.havlena.com/p/2025-retrospective-and-2026-plans</link><guid isPermaLink="false">https://www.havlena.com/p/2025-retrospective-and-2026-plans</guid><dc:creator><![CDATA[Matous Havlena]]></dc:creator><pubDate>Tue, 20 Jan 2026 16:50:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a_fB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84f2a7de-de0d-4606-a527-dbeae0127a55_600x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>The year of yes</h2><p>2025 was the year I made myself to step out of my comfort zone. I said yes to things that scared me a little.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d83ec5c6-fec5-4e3f-9fc8-8d15dac9fbc6_2001x3000.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6757ba0a-5fe5-421a-9f76-ef8751702487_4032x1816.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/afc7673f-8a0e-422c-97cd-85dc0d1c6361_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99db791b-0999-492c-bef4-2b52dd5ea1d2_5536x3691.jpeg&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84137245-312f-4452-af05-125431faf4de_1456x1456.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>I <a href="https://www.havlena.com/p/so-i-recorded-my-first-podcast">recorded my first podcast</a>. I spoke at three conferences: Startup Disrupt, IBM Put AI to Work, and Data Day. At Data Day I talked about AI, protocols, and some of the architectural flaws people do not realize. Two ideas resonated the most:</p><ul><li><p>LLMs should not execute plans.</p></li><li><p>LLMs should not transfer data.</p></li></ul><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ef36efa-953c-4517-90eb-d94c3549429d_1829x1028.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b1c2a69-da45-4dc0-82b4-e81e95da3af4_1829x1028.png&quot;}],&quot;caption&quot;:&quot;Data Day selected slides&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/92737827-2761-45bc-b29c-1ea49c0c73e3_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>I posted more on LinkedIn, and the feed grew from around 800 to 2k followers. I restarted blogging (I talk about the motivation in <a href="https://www.havlena.com/p/writing-is-how-i-think">Writing Is How I Think</a>).</p><p>At work, I leaned further into the CTO role. Less heads-down building. More representing the company, more decisions for the team, more standing in front of rooms.</p><p>At home, first skiing with our kiddo. Swimming classes. Safari. Boat trip.</p><h2>What we actually built</h2><p>Most of my time went into agentic systems (systems where an AI can use tools to actually do work, not just generate text) as part of a project for IBM Research. Some of what we shipped publicly:</p><ol><li><p><a href="https://lfaidata.foundation/communityblog/2025/08/29/acp-joins-forces-with-a2a-under-the-linux-foundations-lf-ai-data/">ACP merged into Google&#8217;s A2A</a>.</p></li><li><p><a href="https://github.com/i-am-bee/beeai-framework">BeeAI Framework</a> crossed 3k stars.</p></li><li><p><a href="https://github.com/i-am-bee/agentstack">Agent Stack</a> was the answer to agentic infrastructure.</p></li><li><p>I built a couple of personal agentic systems.</p></li><li><p>AI Fridays. We meet and discuss practical AI with the team. Best ritual.</p></li><li><p>We rebranded Apoco (logo and site design by Jan Broz).</p></li><li><p>We moved to a new office. Pragovka Art District.</p></li><li><p>Forbes Czech wrote about us.</p></li><li><p>A friend of mine joined, helping us with business development.</p></li><li><p>The team represented our projects on stages in Boston, Amsterdam, Orlando, and Stockholm.</p></li><li><p>We did have some fun along the way.</p></li></ol><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4168632c-9b38-437f-8daf-af942ad744fe_5712x3213.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd3a56de-2224-4f55-a388-74a83e0bd383_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06995759-63ee-409f-a696-853250c0d6bd_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5b3d84a-2cb3-41a2-b87c-93429107adfb_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6e86e45-4d26-4d8c-b07a-1268c84eac49_5712x4284.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77c13e42-00ee-4efe-acf3-24ce40b1b15d_6048x4032.jpeg&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e08e8faa-5f27-47c5-8c55-a2bf48f549e9_1456x964.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>One opinion I earned the right to say this year, after hearing the same question at every event: MCP (a popular standard for plugging tools into agents) will not save your project. Tailored integrations focused on precision are what deliver value. Do one thing well.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XbEQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c4b5a03-8b16-4cdb-9981-24b2589ce408_1829x1028.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XbEQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c4b5a03-8b16-4cdb-9981-24b2589ce408_1829x1028.png 424w, https://substackcdn.com/image/fetch/$s_!XbEQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c4b5a03-8b16-4cdb-9981-24b2589ce408_1829x1028.png 848w, https://substackcdn.com/image/fetch/$s_!XbEQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c4b5a03-8b16-4cdb-9981-24b2589ce408_1829x1028.png 1272w, https://substackcdn.com/image/fetch/$s_!XbEQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c4b5a03-8b16-4cdb-9981-24b2589ce408_1829x1028.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XbEQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c4b5a03-8b16-4cdb-9981-24b2589ce408_1829x1028.png" width="1456" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c4b5a03-8b16-4cdb-9981-24b2589ce408_1829x1028.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:109781,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/188891017?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c4b5a03-8b16-4cdb-9981-24b2589ce408_1829x1028.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XbEQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c4b5a03-8b16-4cdb-9981-24b2589ce408_1829x1028.png 424w, https://substackcdn.com/image/fetch/$s_!XbEQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c4b5a03-8b16-4cdb-9981-24b2589ce408_1829x1028.png 848w, https://substackcdn.com/image/fetch/$s_!XbEQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c4b5a03-8b16-4cdb-9981-24b2589ce408_1829x1028.png 1272w, https://substackcdn.com/image/fetch/$s_!XbEQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c4b5a03-8b16-4cdb-9981-24b2589ce408_1829x1028.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What I didn&#8217;t choose</h2><p>Some things in 2025 were not yeses I made.</p><p>I lost loved ones. I think about them often. I like the way Mexico thinks about the dead: as long as someone remembers you, you still live. I find some comfort in it.</p><p>My brother moved out of Prague. We used to live five minutes apart. Now it&#8217;s several hours of driving, and I&#8217;m still adjusting.</p><p>Biking was the steady thing through all of it.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b77a98af-0a8e-4733-acf4-30e977e98ac3_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ad9e185-4c1f-43d2-a3c2-b2dfd512bdc7_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/436ec101-91bf-4664-b803-c1f76356d83d_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab44f28f-28fe-470c-89b8-2ec556d20938_4032x3024.jpeg&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a487b81-27b1-42a2-accd-8f714e21bcf4_1456x1456.png&quot;}},&quot;isEditorNode&quot;:true}"></div><h2>Slowing down on purpose</h2><p>By the end of 2025 I had to slow down. Nothing broke. I could just feel the engine running hot.</p><p>Too much FOMO around AI. Too much pressure I was putting on myself. Too many 30-minute blocks on the calendar where nothing real could happen. Too much trying to be a perfectionist.</p><p>So I stopped. I traveled. I read more. I gave myself nights and weekends back. I did a lot of thinking that I had been putting off.</p><p>What I noticed when I slowed down:</p><ul><li><p>I had neglected the team a bit. Stepping back to give them more freedom was the right call, but I let some of the leadership work slip.</p></li><li><p>The deep work had moved to the edges of the week.</p></li><li><p>The reading and thinking I needed had nowhere to land.</p></li></ul><p>You have to slow down to run again. That&#8217;s the lesson I&#8217;m taking out of the year.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Do-Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb60c88-c8b1-4468-9454-ff0ea6103576_4032x3024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Do-Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb60c88-c8b1-4468-9454-ff0ea6103576_4032x3024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Do-Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb60c88-c8b1-4468-9454-ff0ea6103576_4032x3024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Do-Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb60c88-c8b1-4468-9454-ff0ea6103576_4032x3024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Do-Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb60c88-c8b1-4468-9454-ff0ea6103576_4032x3024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Do-Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb60c88-c8b1-4468-9454-ff0ea6103576_4032x3024.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1cb60c88-c8b1-4468-9454-ff0ea6103576_4032x3024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3993506,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/188891017?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb60c88-c8b1-4468-9454-ff0ea6103576_4032x3024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Do-Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb60c88-c8b1-4468-9454-ff0ea6103576_4032x3024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Do-Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb60c88-c8b1-4468-9454-ff0ea6103576_4032x3024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Do-Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb60c88-c8b1-4468-9454-ff0ea6103576_4032x3024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Do-Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb60c88-c8b1-4468-9454-ff0ea6103576_4032x3024.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Rules for 2026</h2><p>Not a wishlist. A small set of rules.</p><p><strong>Deep work</strong></p><ul><li><p>No news in the morning. No social feeds (I can post, I consume through my own curated feed).</p></li><li><p>Read 30 minutes before bed.</p></li><li><p>One protected weekly block to build agentic systems.</p></li></ul><p><strong>Public work</strong></p><ul><li><p>Write once a month, even if it&#8217;s short. Write for yourself.</p></li><li><p>One podcast per quarter.</p></li><li><p>One uncomfortable yes per month.</p></li></ul><p><strong>CTO and team</strong></p><ul><li><p>Share direction per quarter. Where we&#8217;re going, why, what success looks like.</p></li><li><p>Put 1:1s back.</p></li><li><p>One priority per week, done first. Drucker is right.</p></li><li><p>Quarterly time audit. Time is life, no refill.</p></li><li><p>Continue AI Fridays.</p></li></ul><p><strong>Personal</strong></p><ul><li><p>Take a whole month off.</p></li><li><p>Keep biking, 3 rides a week. Bike with kiddo. Print a map and explore together.</p></li><li><p>Surprise my wife once a quarter.</p></li><li><p>Celebrate. Wins, milestones, small ones too.</p></li></ul><p>And one outcome I want: build one big thing that gets used by real users. Something to be proud of.</p>]]></content:encoded></item><item><title><![CDATA[Writing Is How I Think]]></title><description><![CDATA[On clear thinking in a world of generated words]]></description><link>https://www.havlena.com/p/writing-is-how-i-think</link><guid isPermaLink="false">https://www.havlena.com/p/writing-is-how-i-think</guid><dc:creator><![CDATA[Matous Havlena]]></dc:creator><pubDate>Wed, 31 Dec 2025 17:41:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a_fB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84f2a7de-de0d-4606-a527-dbeae0127a55_600x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Words are easy to generate now. Clear thinking is not.<br>The problem is that fluent words often look like understanding.</p><p>When I write, I slow down. I decide what matters. I follow an idea until it makes sense. It brings clarity and completeness.</p><p>That&#8217;s why I&#8217;ve kept writing, from my early days as a software engineer to my work today as a CTO.</p><h2>Find the answer by writing</h2><p>Any time I face a non-trivial problem, I write. Not to document an answer, but to find one.</p><p>I&#8217;m the type of person who needs space to think. I rarely form opinions on the spot. I need to think through the details, consequences, and tradeoffs.</p><p>Writing forces ideas onto the paper, where they either hold up or collapse. Very often, it shows me that I don&#8217;t understand the problem as well as I thought I did.</p><p>That moment is uncomfortable, but useful.</p><h2>Break the loop and free space</h2><p>In my head, ideas circle. Busy, but unproductive.</p><p>Writing interrupts that loop. It makes them line up.</p><p>Some survive. Some fall apart.</p><p>Once they are written, they stop demanding attention. I no longer have to carry them around or remember them.</p><p>That creates space. Space for new thoughts, new problems, or simply a bit of calm.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hl-a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8c72804-1330-4797-8ba1-e54369ab24a1_480x480.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hl-a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8c72804-1330-4797-8ba1-e54369ab24a1_480x480.gif 424w, https://substackcdn.com/image/fetch/$s_!Hl-a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8c72804-1330-4797-8ba1-e54369ab24a1_480x480.gif 848w, https://substackcdn.com/image/fetch/$s_!Hl-a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8c72804-1330-4797-8ba1-e54369ab24a1_480x480.gif 1272w, https://substackcdn.com/image/fetch/$s_!Hl-a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8c72804-1330-4797-8ba1-e54369ab24a1_480x480.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hl-a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8c72804-1330-4797-8ba1-e54369ab24a1_480x480.gif" width="480" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8c72804-1330-4797-8ba1-e54369ab24a1_480x480.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:480,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51697,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/183000787?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8c72804-1330-4797-8ba1-e54369ab24a1_480x480.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hl-a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8c72804-1330-4797-8ba1-e54369ab24a1_480x480.gif 424w, https://substackcdn.com/image/fetch/$s_!Hl-a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8c72804-1330-4797-8ba1-e54369ab24a1_480x480.gif 848w, https://substackcdn.com/image/fetch/$s_!Hl-a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8c72804-1330-4797-8ba1-e54369ab24a1_480x480.gif 1272w, https://substackcdn.com/image/fetch/$s_!Hl-a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8c72804-1330-4797-8ba1-e54369ab24a1_480x480.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Discover what you did not know you knew</h2><p>While writing, new angles appear. Edge cases surface that thinking alone missed.</p><p>A lot of what we know is unconscious. Writing pulls some of it into the open. </p><p>(As Paul Graham says<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>, there is no good substitute for that kind of discovery.)</p><h2>Let it compound</h2><p>The effects of writing are not immediate.</p><p>A single note rarely impresses. But notes, explanations, ways of thinking accumulate.</p><p>When I read books, writing about them is what makes it stick. Months later, those notes shape how I approach problems, often without me noticing.</p><p>The writing stays. And it quietly changes how I think.</p><h2>Judgment in the age of AI</h2><p>AI makes it easy to sound like you understand something you haven&#8217;t thought through.</p><p>It also makes it easy to generate words and code.</p><p>What it removes is the pressure to decide what matters and why.</p><p>Writing keeps the thinking mine.</p><p>In engineering, it is where intent and tradeoffs become clear.</p><p>When I prepare for public speaking, I write first, not slides.</p><p>While others outsource thinking to AI, clear thinking is becoming the advantage.</p><h2>Taking responsibility for thinking</h2><p>This is why I write.</p><p>Not to publish answers, but to take responsibility for my thinking.</p><p>In a world full of generated words, the scarce thing is judgment. Writing is how I practice it.</p><p>Over time, writing shapes what I pay attention to.<br>And what I pay attention to shapes who I become.</p><p>If I don&#8217;t write, I don&#8217;t trust my thinking.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Paul Graham, &#8220;The Need to Read&#8221;<br><a href="https://paulgraham.com/read.html">https://paulgraham.com/read.html</a></p></div></div>]]></content:encoded></item><item><title><![CDATA[A2A and the Real Problems of Enterprise Agentic Systems]]></title><description><![CDATA[Lessons from building and operating A2A in production systems.]]></description><link>https://www.havlena.com/p/a2a-and-the-real-problems-of-enterprise</link><guid isPermaLink="false">https://www.havlena.com/p/a2a-and-the-real-problems-of-enterprise</guid><dc:creator><![CDATA[Matous Havlena]]></dc:creator><pubDate>Fri, 19 Dec 2025 23:27:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a_fB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84f2a7de-de0d-4606-a527-dbeae0127a55_600x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Enterprises do not ask whether a protocol can power a demo. They ask whether it can power a platform.</p><p>When we first looked at A2A, we were asking whether it could support real systems, not just simple interactions.</p><p>Questions like:</p><ul><li><p>Can different teams build agents in different stacks and still interoperate?</p></li><li><p>Can you understand and replay what agents did and why?</p></li><li><p>Can agents access internal systems in a secure, policy safe way?</p></li><li><p>Can you route, secure, and observe traffic without introspecting payloads?</p></li><li><p>Can you stream partial results without breaking timelines?</p></li><li><p>Can you evolve implementations without breaking existing agents?</p></li><li><p>Can you support multi-agent orchestration patterns?</p></li></ul><p>These are the questions that show up when agentic AI moves beyond demos and into production.</p><p>Some teams hit them because they genuinely need interoperability. Others hit them because leadership wants a shared AI standard.</p><p>In both cases, A2A is the most serious contender.</p><h3>MCP solved integration. A2A is solving systems</h3><p>MCP fixed a real enterprise problem.<br>Internal services were useful but hard to expose to AI. You needed technical context, tribal knowledge, and manual glue. Only a few engineers could work with them.</p><p>MCP changed that. It made internal services easy to wrap, easy to consume, and easy to extend.<br>Clear inputs. Clear outputs. One request. One response.<br>Perfect for tools.</p><p>Agents do not work like that.</p><p>Agents plan. They reason. They maintain state. They call each other. Their interactions are multi-turn, long-running, and open-ended.</p><p>MCP solved a narrow, well defined problem.<br>A2A tries to solve a wide, messy one.<br>It picks up exactly where MCP ends.</p><p>As soon as you move from &#8220;use a tool&#8221; to &#8220;work with another agent&#8221;, you need progress updates, lifecycle management, partial results, history, artifacts, and a shared understanding of how a task unfolds.</p><p>This is the gap A2A tries to fill.</p><h2><strong>What breaks when real systems adopt A2A</strong></h2><p>When we integrated A2A into <a href="https://github.com/i-am-bee/agentstack">Agent Stack</a>, the problems did not appear at the beginning.<br>They surfaced as we built more agents and when other teams started writing their own agents.</p><p>Real systems surface problems that demos hide.</p><p>Here are the ones that mattered most.</p><h3> 1) Ambiguous semantics break interoperability</h3><p>A2A treats <code>Message</code> and <code>Artifact</code> as separate concepts, but the boundary between them is unclear.<br>The same output can be modeled in multiple ways. Teams pick different patterns.</p><p>When semantics are unclear, implementations drift. SDKs try to support every variation, and interoperability suffers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MlWy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61275854-d51a-4baa-8c01-ccd3b9ed9320_2345x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MlWy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61275854-d51a-4baa-8c01-ccd3b9ed9320_2345x630.png 424w, https://substackcdn.com/image/fetch/$s_!MlWy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61275854-d51a-4baa-8c01-ccd3b9ed9320_2345x630.png 848w, https://substackcdn.com/image/fetch/$s_!MlWy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61275854-d51a-4baa-8c01-ccd3b9ed9320_2345x630.png 1272w, https://substackcdn.com/image/fetch/$s_!MlWy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61275854-d51a-4baa-8c01-ccd3b9ed9320_2345x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MlWy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61275854-d51a-4baa-8c01-ccd3b9ed9320_2345x630.png" width="1456" height="391" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/61275854-d51a-4baa-8c01-ccd3b9ed9320_2345x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:391,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:98488,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/182114898?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61275854-d51a-4baa-8c01-ccd3b9ed9320_2345x630.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MlWy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61275854-d51a-4baa-8c01-ccd3b9ed9320_2345x630.png 424w, https://substackcdn.com/image/fetch/$s_!MlWy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61275854-d51a-4baa-8c01-ccd3b9ed9320_2345x630.png 848w, https://substackcdn.com/image/fetch/$s_!MlWy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61275854-d51a-4baa-8c01-ccd3b9ed9320_2345x630.png 1272w, https://substackcdn.com/image/fetch/$s_!MlWy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61275854-d51a-4baa-8c01-ccd3b9ed9320_2345x630.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Streaming exposes this even more.<br>Because <code>Messages</code> cannot stream properly, developers are forced to use <strong>Artifact</strong> updates even when the content is not an artifact at all.</p><p>These are not theoretical issues.<br>They show up the moment multiple teams build agents independently.</p><p>We documented six related pain points and a path forward here:<br>&#128073; <a href="https://github.com/a2aproject/A2A/issues/1313">https://github.com/a2aproject/A2A/issues/1313</a></p><p>If you are hitting similar problems, a &#128077; helps signal it to the steering group.</p><h3>2) JSON-RPC does not fit enterprise routing</h3><p>JSON-RPC puts routing metadata into the payload.<br>Enterprise routing needs it in headers.</p><p>Inspecting bodies is expensive, slow, and often impossible.<br>Duplicating metadata in both places creates drift and risk.</p><p>We hit this in 2023 while working with Red Hat on an inference service that routed model requests across data centers.<br>(That time we didn&#8217;t use JSON-RPC, but the problem was the same.)</p><p>Yes, we questioned JSON-RPC early on.<br>Some use cases may require non-HTTP transports, but the problem remains:<br>Enterprise-grade routing cannot rely on metadata inside payloads.</p><h3>3) Extensions are an escape hatch, not interoperability</h3><p>Extensions are useful. We rely on them.<br>Our Service Dependency Injection idea started as one:<br>&#128073; https://github.com/a2aproject/A2A/discussions/962</p><p>But extensions create dialects.</p><p>The moment two teams depend on different extensions, they are no longer speaking the same protocol.<br>They are speaking local variants based on assumptions and internal constraints.</p><p>Extensions are fine early on.<br>They cannot replace protocol design.<br>Use them wisely.</p><h3>4) A2A is low level and lacks strong opinions</h3><p>To build anything non-trivial, you need to understand multi-turn task lifecycle, skills and content negotiation, event queues, and state transitions. The protocol exposes all of these, but many of the semantics around them are loosely defined.</p><p>This creates real ambiguity. For example:</p><ul><li><p>In a multi-turn conversation between agents, is every turn a new <code>Task</code>, or is it one long-running <code>Task</code> with many events?</p></li><li><p>When exactly is a <code>Task</code> considered &#8220;completed&#8221;? After the final message? After the final artifact? Only when the executor decides so?</p></li><li><p>When should something be modeled as a <code>Message</code> vs an <code>Artifact</code>?</p></li><li><p>Can artifacts still be streamed after a task has already completed?</p></li></ul><p>Small differences in how teams interpret these do not break demos, but compound as you scale, especially across teams or services.</p><p>The ecosystem would benefit from stronger default opinions.</p><h3>5) Most teams are not there yet</h3><p>This is not a criticism. It is a reality.</p><p>Most teams still run:</p><ul><li><p>one agent, or</p></li><li><p>a small cluster of agents inside a shared runtime, or</p></li><li><p>A2A as a way to standardize shared UI or build an internal agent catalog.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!153k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F259fa75a-c241-44be-9e25-8cf6fac4f074_3262x785.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!153k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F259fa75a-c241-44be-9e25-8cf6fac4f074_3262x785.png 424w, https://substackcdn.com/image/fetch/$s_!153k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F259fa75a-c241-44be-9e25-8cf6fac4f074_3262x785.png 848w, https://substackcdn.com/image/fetch/$s_!153k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F259fa75a-c241-44be-9e25-8cf6fac4f074_3262x785.png 1272w, https://substackcdn.com/image/fetch/$s_!153k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F259fa75a-c241-44be-9e25-8cf6fac4f074_3262x785.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!153k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F259fa75a-c241-44be-9e25-8cf6fac4f074_3262x785.png" width="1456" height="350" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/259fa75a-c241-44be-9e25-8cf6fac4f074_3262x785.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:350,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:159608,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/182114898?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F259fa75a-c241-44be-9e25-8cf6fac4f074_3262x785.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!153k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F259fa75a-c241-44be-9e25-8cf6fac4f074_3262x785.png 424w, https://substackcdn.com/image/fetch/$s_!153k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F259fa75a-c241-44be-9e25-8cf6fac4f074_3262x785.png 848w, https://substackcdn.com/image/fetch/$s_!153k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F259fa75a-c241-44be-9e25-8cf6fac4f074_3262x785.png 1272w, https://substackcdn.com/image/fetch/$s_!153k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F259fa75a-c241-44be-9e25-8cf6fac4f074_3262x785.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><p>Very few deploy agents as a distributed system across teams or services.<br>As a result, A2A often gets adopted for simpler use cases.</p><p>These are not what A2A was designed for.</p><p>The danger is that A2A hardens around early, non-representative use cases.<br>As more distributed agent systems emerge, A2A will need to adjust.<br>And early adopters may need to revisit choices.</p><h2>How platform teams should approach A2A</h2><p>Be honest about what you will actually need in the next 1&#8211;2 years.</p><ul><li><p><strong>Choose one internal semantic model and stick to it.</strong><br>Drift happens when every team interprets the spec differently.</p></li><li><p><strong>Treat A2A as maturing infrastructure.</strong><br>Plan for change. Expect some rewrites.<br>Build with loose coupling so you can switch out parts.</p></li><li><p><strong>Use A2A where it helps, not where it complicates.</strong><br>It shines in multi-agent orchestration and long-running tasks.<br>It might be heavy for simple use cases.</p></li><li><p><strong>Accept that complexity comes from the work, not the spec.</strong><br>Long-running tasks, shared timelines, partial results, and agent coordination are genuinely hard problems. Distributed systems problems.</p></li></ul><p>Even with gaps, A2A is the strongest shared standard we have.<br>The important part is giving feedback when the protocol gets in your way and sharing what real systems expose.<br>That is how the spec improves.</p><p></p>]]></content:encoded></item><item><title><![CDATA[So I Recorded My First Podcast]]></title><description><![CDATA[Why I did it, how I prepared, and what I got in return]]></description><link>https://www.havlena.com/p/so-i-recorded-my-first-podcast</link><guid isPermaLink="false">https://www.havlena.com/p/so-i-recorded-my-first-podcast</guid><dc:creator><![CDATA[Matous Havlena]]></dc:creator><pubDate>Sat, 13 Dec 2025 01:50:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a_fB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84f2a7de-de0d-4606-a527-dbeae0127a55_600x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I like time to think, space to prepare, and control over details.<br>Sitting in front of a microphone takes all of that away.</p><p>That is exactly why I said yes.</p><h2>How it started</h2><p>Over the last few years, our company grew and we started speaking more openly about the hard technical problems we work on.</p><p>We took those topics to meetups and conferences. The reactions surprised us. The things we shared resonated, and it felt like we were giving something genuinely valuable back to the community (not just showing slides).</p><p>That is how the <a href="https://www.datatalk.cz/podcast/">Data Talk</a> team reached out. They felt that what we were doing around agentic AI was practical and world class in a very non hyped way (their words, not mine).</p><p>The topic was obvious from the start. Who we are and what we work on. Agentic AI.</p><h2>Why I said yes</h2><p>I always try to push myself out of my comfort zone.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LVQX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179432fb-8ad9-4191-ad81-e82e6fad0c09_3548x2588.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LVQX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179432fb-8ad9-4191-ad81-e82e6fad0c09_3548x2588.png 424w, https://substackcdn.com/image/fetch/$s_!LVQX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179432fb-8ad9-4191-ad81-e82e6fad0c09_3548x2588.png 848w, https://substackcdn.com/image/fetch/$s_!LVQX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179432fb-8ad9-4191-ad81-e82e6fad0c09_3548x2588.png 1272w, https://substackcdn.com/image/fetch/$s_!LVQX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179432fb-8ad9-4191-ad81-e82e6fad0c09_3548x2588.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LVQX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179432fb-8ad9-4191-ad81-e82e6fad0c09_3548x2588.png" width="1456" height="1062" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/179432fb-8ad9-4191-ad81-e82e6fad0c09_3548x2588.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1062,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14821445,&quot;alt&quot;:&quot;Graduation photo from my studies in the USA.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://matoushavlena.substack.com/i/181471726?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179432fb-8ad9-4191-ad81-e82e6fad0c09_3548x2588.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Graduation photo from my studies in the USA." title="Graduation photo from my studies in the USA." srcset="https://substackcdn.com/image/fetch/$s_!LVQX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179432fb-8ad9-4191-ad81-e82e6fad0c09_3548x2588.png 424w, https://substackcdn.com/image/fetch/$s_!LVQX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179432fb-8ad9-4191-ad81-e82e6fad0c09_3548x2588.png 848w, https://substackcdn.com/image/fetch/$s_!LVQX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179432fb-8ad9-4191-ad81-e82e6fad0c09_3548x2588.png 1272w, https://substackcdn.com/image/fetch/$s_!LVQX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179432fb-8ad9-4191-ad81-e82e6fad0c09_3548x2588.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Saying yes to stepping far outside my comfort zone took me to the US, later to an MBA, and to meeting my future wife (on the right).</figcaption></figure></div><p>This felt like a good opportunity to do exactly that. I knew it would not be easy, and that I might struggle a bit (especially live, without edits).</p><p>But I also knew the benefits would be significant. Personally, and also for the company.</p><p>As I grew into my CTO role, I no longer speak just for myself. We are still a small company, but close to 30 people now, and I increasingly represent their work as well.</p><p>That means I need to be able to explain clearly what we do, why we do it, and why it matters. Not in slides, but in words.</p><h2>How I prepared</h2><p>I did not prepare by memorizing answers. I prepared by getting clear about the story.</p><p>First, I forced myself to pick a single topic. For me, that was the story of me, Apoco, and the kind of problems we work on around agentic AI (everything else was secondary).</p><p>I wrote a short retrospective of my path. Chronological. No polish. Just facts, projects, and decisions.</p><p>Then I highlighted a few things using different colors so I could scan it quickly. Milestones. Stories. Examples. Things that felt important.</p><p>From that, I picked three core topics I wanted to get across. Not more. I also made a short list of things I really did not want to forget to mention (mostly context that would be hard to recover on the fly).</p><p>I thought about the audience and what would actually be useful for them. And I thought about a simple CTA (nothing fancy).</p><p>That was it.</p><p>Some preparation is necessary. Too much preparation kills authenticity. The goal was not control, but clarity.</p><h2>How it went</h2><p>It went great.</p><p>The moderator (Jirka Vicherek) was friendly and well prepared. I shared my preparation document with him in advance, which helped set the tone.</p><p>Even though I had notes ready, I did not look at them once. The conversation flowed naturally. It felt more like a focused discussion than a performance.</p><p>Everything was recorded in one take. No cuts. It took longer than I expected, but that was a good sign.</p><p>If you are curious, you can listen to the episode here &#128073; (the episode is in Czech):</p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8aa751ea9efffb57e372335fc6&quot;,&quot;title&quot;:&quot;Data Talk #145: Matou&#353; Havlena (Apoco)&quot;,&quot;subtitle&quot;:&quot;Ji&#345;&#237; Vicherek&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/2rhmMlh1NiwL83paL6WQaX&quot;,&quot;belowTheFold&quot;:true,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/2rhmMlh1NiwL83paL6WQaX" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" loading="lazy" data-component-name="Spotify2ToDOM"></iframe><p>I am currently planning a separate podcast episode in English on a similar topic. It is still in preparation, but coming later</p><h2>What worked, what didn&#8217;t</h2><p>I still made some mistakes.</p><p>I think I talked too much (especially my brother thought so). The intro was probably too long and too personal. The story matters a lot to me, but it might not have been the most relevant starting point for everyone listening.</p><p>That was a good reminder.</p><p>If someone gives you their time, they expect something in return. Insight, context, a new way of thinking. Not just your backstory.</p><p>A few things I would keep in mind next time:</p><p>Do:</p><ul><li><p>Be yourself. Nothing matters more than being authentic.</p></li><li><p>Think about the audience and the bigger picture.</p></li><li><p>Stay concrete. Stories over abstractions.</p></li><li><p>Slow down when something matters. Silence is fine (introverts often rush when they should not).</p></li><li><p>React naturally. If you are genuinely excited about something, let it show (even if it feels a bit awkward).</p></li></ul><p>Don&#8217;t:</p><ul><li><p>Overprepare or try to control the conversation.</p></li><li><p>Do not optimize for sounding smart. Instead, optimize for being understood.</p></li><li><p>Repeat the same words or ideas over and over.</p></li><li><p>Drift into abstractions when a concrete example would work better.</p></li><li><p>Forget why people are listening in the first place.</p></li></ul><h2>What I got out of it</h2><p>The biggest long term benefit was clarity.</p><p>If someone asks me about my story now, I can give them a short, coherent answer. And if they want more context, I can point them to the Data Talk episode instead of trying to compress everything into a few sentences.</p><p>Going through the preparation and the conversation helped me sort my own thoughts. It forced me to articulate not just what we do, but why we do it.</p><p>That matters personally, but it also matters for the company. It makes it easier to explain our work.</p><p>And on a more personal note, my parents and family got to hear what I actually do for a living (even if they forgot most of it already).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HoPE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafad5dfd-efb1-4fbb-a0b6-52af2cdb9148_480x270.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HoPE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafad5dfd-efb1-4fbb-a0b6-52af2cdb9148_480x270.gif 424w, https://substackcdn.com/image/fetch/$s_!HoPE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafad5dfd-efb1-4fbb-a0b6-52af2cdb9148_480x270.gif 848w, https://substackcdn.com/image/fetch/$s_!HoPE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafad5dfd-efb1-4fbb-a0b6-52af2cdb9148_480x270.gif 1272w, https://substackcdn.com/image/fetch/$s_!HoPE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafad5dfd-efb1-4fbb-a0b6-52af2cdb9148_480x270.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HoPE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafad5dfd-efb1-4fbb-a0b6-52af2cdb9148_480x270.gif" width="480" height="270" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/afad5dfd-efb1-4fbb-a0b6-52af2cdb9148_480x270.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:270,&quot;width&quot;:480,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2679605,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://matoushavlena.substack.com/i/181471726?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafad5dfd-efb1-4fbb-a0b6-52af2cdb9148_480x270.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HoPE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafad5dfd-efb1-4fbb-a0b6-52af2cdb9148_480x270.gif 424w, https://substackcdn.com/image/fetch/$s_!HoPE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafad5dfd-efb1-4fbb-a0b6-52af2cdb9148_480x270.gif 848w, https://substackcdn.com/image/fetch/$s_!HoPE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafad5dfd-efb1-4fbb-a0b6-52af2cdb9148_480x270.gif 1272w, https://substackcdn.com/image/fetch/$s_!HoPE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafad5dfd-efb1-4fbb-a0b6-52af2cdb9148_480x270.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>Would I do it again</h2><p>Yes.</p><p>I will.</p><p>I enjoyed it. It pushed me forward.</p><p>And I want to keep doing it. Another podcast is already in planning (this time in English). Stay tuned.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.havlena.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">If you want to follow along, you can subscribe.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Node.js – How it differs from traditional web servers?]]></title><description><![CDATA[Notes on Node.js architecture]]></description><link>https://www.havlena.com/p/nodejs-how-it-differs-from-traditional</link><guid isPermaLink="false">https://www.havlena.com/p/nodejs-how-it-differs-from-traditional</guid><dc:creator><![CDATA[Matous Havlena]]></dc:creator><pubDate>Tue, 07 Jul 2015 15:32:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a_fB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84f2a7de-de0d-4606-a527-dbeae0127a55_600x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Node.js is an open source, cross-platform JavaScript runtime environment for server-side and networking applications. Node.js is built on top of the Google V8 JavaScript engine, which means Node.js applications are written in JavaScript and use a similar syntax as front-end JavaScript applications, including objects, functions, and methods.</p><p>Node.js comes with a built-in library that allows applications to act as a web server. Thanks to its event-driven architecture and a non-blocking I/O API that optimizes an application&#8217;s throughput, Node.js excels when it comes to real-time communication. The following are advantages of Node.js:</p><ul><li><p>It is very lightweight and fast.</p></li><li><p>It is easy to configure and highly customizable.</p></li><li><p>It comes with the npm package manager that contains 140.000+ packages that are available for free, and it handles dependencies excellently.</p></li><li><p>It removes silos that existed between frontend and backend developers, making the development process more effective. Backend and frontend teams can be merged into one unit.</p></li><li><p>It allows one to build the application in JavaScript &#8220;top-to-bottom&#8221;, even down to the database level if NoSQL DB that stores objects in JSON (like MongoDB or Cloudant) is used. This makes development and even hiring significantly easier.</p></li><li><p>It is capable of handling a huge number of simultaneous connections with high throughput. Therefore, it excels in building fast and scalable network applications.</p></li><li><p>It allows code to be reused across the client-side and server-side of the application.</p></li><li><p>Even though Node.js is initially designed without threads, one can still take advantage of multiple cores and spawn child processes using ChildProcess API.</p></li></ul><div><hr></div><p><strong>Blocking I/O vs Non-blocking I/O<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a><br></strong><em>Blocking example<br></em>An example of blocking is how some web servers like ones in Java or PHP handle requests. If your code does something blocking, like reading something from the database, your code &#8220;stalls&#8221; at that line and waits for the operation to finish. In that period, your machine is holding onto memory and processing time for a thread that is not doing anything. In order to cater other requests while that thread has stalled depends on your setup. Your server can spawn more threads to cater the request or, if you have a load balancing setup, forwards requests to the next available instance. This instills more setup, more memory consumed, more processing.</p><p><em>Non-blocking example<br></em>In contrast, non-blocking servers like ones made in Node.JS, only use one thread to service all requests. This might sound counter-intuitive, but the creators designed it with the idea that the I/O is the bottleneck i.e. not computations. When requests arrive at the server, they are serviced one at a time. When the code serviced needs to query the DB for example, it sends off a request to the DB. However, instead of waiting for the response and stall, it sends the callback to a second queue and the code continues running. Now when the DB returns data, the callback gets queued in a third queue where they are pending execution. When the engine is doing nothing (stack empty), it picks up a callback from the third queue and executes it.</p><div><hr></div><p>Node.js has one disadvantage &#8211; it is not designed for heavy computations as any CPU intensive operation annuls all of the throughput and any incoming request is blocked while the thread is busy crunching numbers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CzHN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f732752-b430-4f9f-a3c7-59e6dd98aab7_1402x716.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CzHN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f732752-b430-4f9f-a3c7-59e6dd98aab7_1402x716.png 424w, https://substackcdn.com/image/fetch/$s_!CzHN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f732752-b430-4f9f-a3c7-59e6dd98aab7_1402x716.png 848w, https://substackcdn.com/image/fetch/$s_!CzHN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f732752-b430-4f9f-a3c7-59e6dd98aab7_1402x716.png 1272w, https://substackcdn.com/image/fetch/$s_!CzHN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f732752-b430-4f9f-a3c7-59e6dd98aab7_1402x716.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CzHN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f732752-b430-4f9f-a3c7-59e6dd98aab7_1402x716.png" width="1402" height="716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f732752-b430-4f9f-a3c7-59e6dd98aab7_1402x716.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:716,&quot;width&quot;:1402,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:118796,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/183255919?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f732752-b430-4f9f-a3c7-59e6dd98aab7_1402x716.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CzHN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f732752-b430-4f9f-a3c7-59e6dd98aab7_1402x716.png 424w, https://substackcdn.com/image/fetch/$s_!CzHN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f732752-b430-4f9f-a3c7-59e6dd98aab7_1402x716.png 848w, https://substackcdn.com/image/fetch/$s_!CzHN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f732752-b430-4f9f-a3c7-59e6dd98aab7_1402x716.png 1272w, https://substackcdn.com/image/fetch/$s_!CzHN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f732752-b430-4f9f-a3c7-59e6dd98aab7_1402x716.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Comparison between request handling in Node.js and a traditional server</figcaption></figure></div><p>&#8220;How it works under-the-hood is pretty interesting. Compared to traditional web-serving techniques where each connection (request) spawns a new thread, taking up system RAM and eventually maxing-out at the amount of RAM available, Node.js operates on a singlethread, using non-blocking I/O calls, allowing it to support tens of thousands of concurrent connections (held in the event loop). A quick calculation: assuming that each thread potentially has an accompanying 2 MB of memory with it, running on a system with 8 GB of RAM puts us at a theoretical maximum of 4000 concurrent connections, plus the cost of context-switching between threads. That is the scenario you typically deal with in traditional web-serving techniques. By avoiding all that, Node.js achieves scalability levels of over 1M concurrent connections.&#8221;<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p><a href="http://stackoverflow.com/questions/10570246/what-is-non-blocking-orasynchronous-i-o-in-node-js">What is non-blocking or asynchronous I/O in Node.js?</a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p><a href="http://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js">Why The Hell Would I Use Node.js? A Case-by-Case Tutorial</a></p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[iBeacons - How do they (technically) work?]]></title><description><![CDATA[Notes on iBeacons]]></description><link>https://www.havlena.com/p/ibeacons-how-do-they-technically</link><guid isPermaLink="false">https://www.havlena.com/p/ibeacons-how-do-they-technically</guid><dc:creator><![CDATA[Matous Havlena]]></dc:creator><pubDate>Thu, 27 Mar 2014 15:54:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a_fB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84f2a7de-de0d-4606-a527-dbeae0127a55_600x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>iBeacons are playing very important role in this era of Internet of Things. Recently, a lot has been written about them, but there are actually just a few sources explaining the technical perspective. This article should very briefly explain how iBeacons communicate with other devices.</p><blockquote><p>&#8220;iBeacon is an indoor positioning system that Apple Inc. calls &#8220;a new class of low-powered, low-cost transmitters that can notify nearby iOS 7 devices of their presence.&#8221; They can also be used by the Android operating system (limited to central-only). The technology enables an iOS device or other hardware to send push notifications to iOS devices in close proximity.&#8221;</p><p>The iBeacon works on Bluetooth Low Energy (BLE), also known as Bluetooth Smart. Bluetooth LE can also be found on Bluetooth 4.0 devices that support dual mode. In a real life scenario it would be more of a location-aware, context-aware, pervasive small wireless sensor beacon that could pinpoint users&#8217; location in a store: iBeacons could send notifications of items nearby that are on sale or items customers may be looking for, and it could enable payments at the point of sale (POS) where customers don&#8217;t need to remove their wallets or cards to make payments. It could be a possible Near Field Communication (NFC) competitor.</p></blockquote><p>To understand how iBeacons work, we need to start with BLE.</p><h2>BLE &#8211; Bluetooth Low Energy</h2><p>iBeacons use BLE (Bluetooth Low Energy) technology also marketed as Bluetooth Smart. BLE was introduced under the name Wibree by Nokia in 2006 and is part of the Bluetooth 4.0 specification since it was merged to Bluetooth standard in 2010. BLE uses different protocol than Classis Bluetooth and therefore is not backwards-compatible. Bluetooth LE uses the same 2.4 GHz radio frequencies.</p><p>So except <strong>Classic Bluetooth</strong>, we have 2 more types of Bluetooth peripherals:</p><ul><li><p><strong>Bluetooth Smart Ready</strong> &#8211; dual-mode device compatible with both Classic and LE</p></li><li><p><strong>Bluetooth Smart</strong> &#8211; LE-only device which is not compatible with Classic Bluetooth</p></li></ul><p>Most of the newest mobile devices and computers support Bluetooth Smart Ready (so both Classic and LE protocols). iBeacons are (usually) LE-only devices and therefore not compatible with older Classic Bluetooth.</p><p>The biggest advantage of BLE is its low energy consumption. This enables iBeacons to transmit a signal continuously on a single button cell battery for a couple of years (usually 2-3 years). As with the Classic Bluetooth, LE can reach up to 100 meters.</p><h3>How does BLE communication work</h3><p>Without going too deep into details, there are two modes of communication:</p><ul><li><p><strong>advertising</strong> &#8211; one-way discovery</p></li><li><p><strong>connecting</strong> &#8211; two-way communication</p></li></ul><p><strong>iBeacons use only advertising mode</strong> and I&#8217;m not going to talk about connecting mode (for those who are interested, you can look at <a href="https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/AboutCoreBluetooth/Introduction.html#//apple_ref/doc/uid/TP40013257-CH1-SW1">Apple&#8217;s Core Bluetooth guide</a>). As I said before, iBeacons run in the advertising mode. This means they periodically send packets of data that can be received by other devices like smartphones or tablets. iBeacons behave like a beacon that is only sending &#8220;Here I am!&#8221; signals and not listening. This messages can be transmitted in intervals from 20 ms to 10 seconds and the longer the interval, the longer is the battery life.</p><h3>Packets</h3><p>iBeacons transmit packets and its size can by up to 47 bytes. Following is a diagram of this packet broke down to particular blocks.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8Jtp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c6bb0b-9b06-4c93-a3ea-99445f1584ea_600x349.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8Jtp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c6bb0b-9b06-4c93-a3ea-99445f1584ea_600x349.png 424w, https://substackcdn.com/image/fetch/$s_!8Jtp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c6bb0b-9b06-4c93-a3ea-99445f1584ea_600x349.png 848w, https://substackcdn.com/image/fetch/$s_!8Jtp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c6bb0b-9b06-4c93-a3ea-99445f1584ea_600x349.png 1272w, https://substackcdn.com/image/fetch/$s_!8Jtp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c6bb0b-9b06-4c93-a3ea-99445f1584ea_600x349.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8Jtp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c6bb0b-9b06-4c93-a3ea-99445f1584ea_600x349.png" width="600" height="349" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/42c6bb0b-9b06-4c93-a3ea-99445f1584ea_600x349.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:349,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26279,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/183251985?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c6bb0b-9b06-4c93-a3ea-99445f1584ea_600x349.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8Jtp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c6bb0b-9b06-4c93-a3ea-99445f1584ea_600x349.png 424w, https://substackcdn.com/image/fetch/$s_!8Jtp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c6bb0b-9b06-4c93-a3ea-99445f1584ea_600x349.png 848w, https://substackcdn.com/image/fetch/$s_!8Jtp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c6bb0b-9b06-4c93-a3ea-99445f1584ea_600x349.png 1272w, https://substackcdn.com/image/fetch/$s_!8Jtp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42c6bb0b-9b06-4c93-a3ea-99445f1584ea_600x349.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">iBeacon packet blocks</figcaption></figure></div><p>So the BLE packet in advertising mode consists of:</p><ul><li><p>Preamble (1 byte)</p></li><li><p>Access Address (4 bytes) &#8211; always <code>0x8E89BED6</code></p></li><li><p>PDU Header (2 bytes)</p></li><li><p>PDU MAC address (6 bytes)</p></li><li><p>PDU Data (0-31 bytes)</p><ul><li><p>iBeacon prefix (9 bytes)</p></li><li><p>Proximity UUID (16 bytes)</p></li><li><p>Major (2 bytes)</p></li><li><p>Minor (2 bytes)</p></li><li><p>TX power (2 bytes)</p></li></ul></li><li><p>CRC (3 bytes)</p></li></ul><p>The most important block for us is the PDU Data. Following is an example of this block split into sub-blocks:</p><pre><code>02 01 06 1A FF 4C 00 02 15 # iBeacon prefix (fixed)
B9 40 7F 30 F5 F8 46 6E AF F9 25 55 6B 57 FE 6D # Proximity UUID
00 49 # Major
00 0A # Minor
C5: 2&#8217;s complement of measured TX power</code></pre><p>Let&#8217;s explain meaning of each block (line):</p><p><strong>iBeacon prefix (1st line)</strong> &#8211; these are 9 fixed bytes with the following meaning. <strong>iBeacon prefix indicates that this BLE device is actually an iBeacon device.</strong></p><pre><code>02 # Number of bytes that follow in first AD structure
01 # Flags AD type
06 # Flags value
1A # Number of bytes that follow in second (and last) AD structure
FF # Manufacturer specific data AD type
4C 00 # Company identifier code (0x004C == Apple)
02 # Byte 0 of iBeacon advertisement indicator
15 # Byte 1 of iBeacon advertisement indicator</code></pre><p><strong>Proximity UUID (2nd line)</strong> &#8211; is an identifier that distinguishes your iBeacons from the others. Your mobile app is then set up to listen just to this proximity UUID.</p><p><strong>Major (3rd line)</strong> &#8211; is used to group a related set of iBacons.</p><p><strong>Minor (4th line)</strong> &#8211; is used to identify individual iBeacons.</p><p><strong>2&#8217;s complement of measured TX power (5th line)</strong> &#8211; actual TX power can be calculated as a 2&#8217;s complement: 0xc5 = 197 =&gt; 256-197 = -59 dBm. TX power is the strength of the signal measured at 1 meter from the iBeacon. This number is then used to determine how close you are to the iBeacon. The calculation is based on the fact that you know TX power (RSSI at distance of 1 meter from the iBeacon) and current RSSI (Received Signal Strength Indication). iOS does the calculation for us. Other platforms need to calculate it &#8211; the only one example I found: <a href="http://stackoverflow.com/questions/20416218/understanding-ibeacon-distancing">http://stackoverflow.com/questions/20416218/understanding-ibeacon-distancing</a></p><h2><strong>So what exactly iBeacon is?</strong></h2><p>It&#8217;s a Bluetooth LE device with the specific packet format. Other devices recognize iBeacon by the PDU Data block (exactly by the first 9 bytes of this block) and based on this data block can determine their distance from the iBeacon. This means, that every device capable of BLE can be turned into an iBeacon. iBeacons are widely used for micro-location purposes (especially inside buildings where GPS or other technologies aren&#8217;t capable of accurate results).</p><p>In the next article, I will show you how to turn your smartphone, tablet or laptop into an iBeacon transmitter. I&#8217;m also exploring how machine learning could be used together with iBeacons in order to locate devices inside buildings.</p><h2>Where to get iBeacons</h2><ul><li><p><a href="https://kontakt.io">https://kontakt.io</a></p></li><li><p><a href="https://flybuy.com">https://flybuy.com</a></p></li><li><p><a href="https://estimote.com/">https://estimote.com/</a></p></li><li><p>and more&#8230;</p></li></ul>]]></content:encoded></item><item><title><![CDATA[What is DevOps? ]]></title><description><![CDATA[Notes on DevOps]]></description><link>https://www.havlena.com/p/what-is-devops</link><guid isPermaLink="false">https://www.havlena.com/p/what-is-devops</guid><dc:creator><![CDATA[Matous Havlena]]></dc:creator><pubDate>Sat, 22 Jun 2013 01:22:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a_fB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84f2a7de-de0d-4606-a527-dbeae0127a55_600x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Lately there have been a lot of talks about DevOps as one of the trends in business (together with Big Data, Cloud, Mobile, and Social media). Since I&#8217;m starting to play around with the tools that helps to bring DevOps approach to an organization, I decided to write this article and briefly explain what DevOps stands for.</p><blockquote><p>&#8220;DevOps (a portmanteau of development and operations) is a software development method that stresses communication, collaboration and integration between software developers and information technology (IT) professionals. DevOps is a response to the interdependence of software development and IT operations. It aims to help an organization rapidly produce software products and services.&#8221;</p></blockquote><p>I see DevOps as a philosophy that helps <strong>increase delivery speed and quality</strong> via frequent, automated releases. Many companies are adopting agile practices and tries to reduce customer feedback cycles. These companies usually come to the point when development teams successfully follow the agile practice (produce software incrementally in short time cycles), but they are <strong>struggling with the delivery process</strong>. They are not able to <strong>rapidly and more frequently deploy software to many different environments</strong>, they need a continuous delivery pipeline from development to operations, and all the way to production.</p><p>For example Flickr developed DevOps capability to support a business requirement of ten deployments per day; this daily deployment cycle would be much higher at organizations producing multi-focus or multi-function applications (think about Google, they do many releases every day but most of them are not noticeable). This is referred to as <strong>continuous deployment or continuous delivery</strong>.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p><p>While DevOps is an approach and not a set of tools, the adoption of the DevOps philosophy can be greatly aided by having the right tools. In April 2013, IBM acquired UrbanCode company and strengthened its DevOps portfolio by tools as uDeploy and uRelease. But I will talk about these tools in another article.</p><h2>Why DevOps?</h2><p>In 2013, IBM Institute of Business Value made a study<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a> saying that <strong>54 %</strong> of companies believe <strong>software delivery is critical</strong> but only <strong>25 % leverage</strong> software delivery <strong>effectively</strong> today. In the end <strong>69 % of companies outperform those who don&#8217;t adopt DevOps approach</strong>.</p><h3>Challenges of software delivery</h3><ul><li><p><strong>Costly, error prone</strong> manual processes and efforts to deliver software across an enterprise</p></li><li><p><strong>Slow</strong> deployment to development and test environments leave teams <strong>waiting and unproductive</strong></p></li><li><p><strong>Higher risk</strong> due to managing multiple application configurations and versions across servers</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c5Rz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a99d66-9edb-4868-a9a5-4bf3e974e7a8_628x343.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c5Rz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a99d66-9edb-4868-a9a5-4bf3e974e7a8_628x343.png 424w, https://substackcdn.com/image/fetch/$s_!c5Rz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a99d66-9edb-4868-a9a5-4bf3e974e7a8_628x343.png 848w, https://substackcdn.com/image/fetch/$s_!c5Rz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a99d66-9edb-4868-a9a5-4bf3e974e7a8_628x343.png 1272w, https://substackcdn.com/image/fetch/$s_!c5Rz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a99d66-9edb-4868-a9a5-4bf3e974e7a8_628x343.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c5Rz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a99d66-9edb-4868-a9a5-4bf3e974e7a8_628x343.png" width="628" height="343" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59a99d66-9edb-4868-a9a5-4bf3e974e7a8_628x343.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:343,&quot;width&quot;:628,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:217974,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/182383430?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a99d66-9edb-4868-a9a5-4bf3e974e7a8_628x343.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!c5Rz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a99d66-9edb-4868-a9a5-4bf3e974e7a8_628x343.png 424w, https://substackcdn.com/image/fetch/$s_!c5Rz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a99d66-9edb-4868-a9a5-4bf3e974e7a8_628x343.png 848w, https://substackcdn.com/image/fetch/$s_!c5Rz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a99d66-9edb-4868-a9a5-4bf3e974e7a8_628x343.png 1272w, https://substackcdn.com/image/fetch/$s_!c5Rz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59a99d66-9edb-4868-a9a5-4bf3e974e7a8_628x343.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Benefits</h3><ul><li><p><strong>Drive down cost</strong> by automating manual tasks, eliminating wait-time and rework. It reduces the amount of manual labor, resource wait-time, and rework by eliminating errors and providing self-service environments.</p></li><li><p><strong>Speed time</strong> to market by increasing the frequency of software delivery through automated, repeatable, deployment processes across development, test and production.</p></li><li><p><strong>Reduce risk</strong> through increased compliance of application deployments. It delivers higher quality application releases with increased compliance through end-to-end transparency, auditability and reduced time to feedback.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WSfl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b29d3c1-e263-49ff-a693-b51ed228b44e_595x296.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WSfl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b29d3c1-e263-49ff-a693-b51ed228b44e_595x296.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WSfl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b29d3c1-e263-49ff-a693-b51ed228b44e_595x296.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WSfl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b29d3c1-e263-49ff-a693-b51ed228b44e_595x296.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WSfl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b29d3c1-e263-49ff-a693-b51ed228b44e_595x296.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WSfl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b29d3c1-e263-49ff-a693-b51ed228b44e_595x296.jpeg" width="595" height="296" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4b29d3c1-e263-49ff-a693-b51ed228b44e_595x296.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:296,&quot;width&quot;:595,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33850,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/182383430?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b29d3c1-e263-49ff-a693-b51ed228b44e_595x296.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WSfl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b29d3c1-e263-49ff-a693-b51ed228b44e_595x296.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WSfl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b29d3c1-e263-49ff-a693-b51ed228b44e_595x296.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WSfl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b29d3c1-e263-49ff-a693-b51ed228b44e_595x296.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WSfl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b29d3c1-e263-49ff-a693-b51ed228b44e_595x296.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><ul><li><p>Reduce errors: Automated software release and deployment</p></li><li><p>Improve productivity: Push-button deployments for developer and operations</p></li><li><p>Compliance and auditability: Enforced security and traceability</p></li></ul><h2>Conclusion</h2><p>DevOps enables organizations to <strong>rapidly and more frequently deliver applications</strong> to market with <strong>reduced cost, risk and increased quality</strong>. It&#8217;s helping organization realize the value of agile with continuous software delivery.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Wikipedia, the free encyclopedia: DevOps, <a href="http://en.wikipedia.org/wiki/DevOps">http://en.wikipedia.org/wiki/DevOps</a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>IBM Institute for Business Value: The software edge &#8211; How effective software development and delivery drives competitive advantage, <a href="http://www.ibm.com/smarterplanet/global/files/se__sv_se__products__the_software_edge__.pdf">http://www.ibm.com/smarterplanet/global/files/se__sv_se__products__the_software_edge__.pdf</a></p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Business Intelligence in IBM Cognos 10]]></title><description><![CDATA[Notes on BI in Cognos 10]]></description><link>https://www.havlena.com/p/business-intelligence-in-ibm-cognos</link><guid isPermaLink="false">https://www.havlena.com/p/business-intelligence-in-ibm-cognos</guid><dc:creator><![CDATA[Matous Havlena]]></dc:creator><pubDate>Mon, 17 Dec 2012 18:59:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a_fB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84f2a7de-de0d-4606-a527-dbeae0127a55_600x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Recently, I did a school project together with my schoolmate about Business Intelligence in IBM Cognos and I decided to share our findings. First of all, I will very briefly describe Cognos BI solution, then I will share whole presentation we presented as a final outcome.</p><p>IBM Cognos Business Intelligence is part of the IBM Business Analytics solution. It provides a unified workspace for business intelligence and analytics that can be used to answer key business questions and outperform the competition. With IBM Cognos BI, users can:</p><ul><li><p>Easily view, assemble and personalize information</p></li><li><p>Explore all types of information from all angles to assess the current business situation</p></li><li><p>Analyze facts and anticipate tactical and strategic implications by simply shifting from viewing to more advanced, predictive or what-if analysis</p></li><li><p>Collaborate to establish decision networks to share insights and drive toward a collective intelligence</p></li><li><p>Access information and take action anywhere, taking advantage of mobile devices and real-time analytics</p></li><li><p>Integrate and link analytics in everyday work to business workflow and process</p></li></ul><p>IBM Cognos BI consists of these tools:</p><ul><li><p><strong>IBM Cognos Business Insight</strong><br>Web-based tool which allows you to use Cognos content and external data sources to interact, analyze and build sophisticated interactive dashboards that facilitate collaborative decision making.</p></li><li><p><strong>IBM Cognos Business Insight Advanced</strong><br>Web-based tool that allows you to analyze your data. The user interface is designed to help business users gain insight into their business. You can create reports with relational or dimensional data sources, and than show data in lists, crosstabs, and charts.</p></li><li><p><strong>IBM Cognos Framework Manager</strong><br>Desktop application for importing data definitions and modeling that information to provide simplified data access for business reporting and analysis. Models can be published as packages and deployed to Cognos 10, where users can create reports based on the package content.</p></li><li><p>and others &#8211; IBM Cognos Report Studio, IBM Cognos Query Studio, IBM Cognos Analysis Studio, IBM Cognos Event Studio, IBM Cognos Metric Studio, IBM Cognos Administration (for more info about these tools check Handbook &#8211; link below)</p></li></ul><h2>Basic Architecture</h2><p>Following diagram displays basic architecture describing relations between Framework Manager, Business Insight, and Business Insight Advanced. Very briefly, Framework Manager provides simplified data access to Datawarehouse, Business Insight Advanced then offers capability to create reports based on the model created in Framework Manager (these models are published to Cognos as packages), Business Insight can create interactive dashboards consisting of reports from Business Insight Advanced and additional external data as excel files.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uMFp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5e35fe6-a3db-416a-adc6-ca921c04c76f_960x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uMFp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5e35fe6-a3db-416a-adc6-ca921c04c76f_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!uMFp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5e35fe6-a3db-416a-adc6-ca921c04c76f_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!uMFp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5e35fe6-a3db-416a-adc6-ca921c04c76f_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!uMFp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5e35fe6-a3db-416a-adc6-ca921c04c76f_960x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uMFp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5e35fe6-a3db-416a-adc6-ca921c04c76f_960x720.png" width="960" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5e35fe6-a3db-416a-adc6-ca921c04c76f_960x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80806,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/183272393?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5e35fe6-a3db-416a-adc6-ca921c04c76f_960x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uMFp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5e35fe6-a3db-416a-adc6-ca921c04c76f_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!uMFp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5e35fe6-a3db-416a-adc6-ca921c04c76f_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!uMFp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5e35fe6-a3db-416a-adc6-ca921c04c76f_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!uMFp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5e35fe6-a3db-416a-adc6-ca921c04c76f_960x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Framework Manager Architecture</h3><p>Framework Manager is a desktop application for modeling metadata which provides simplified data access for business reporting and analysis. Models are published as packages and deployed to Cognos.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VIGB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6260175f-a6ac-430e-9173-009bc3fef42d_960x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VIGB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6260175f-a6ac-430e-9173-009bc3fef42d_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!VIGB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6260175f-a6ac-430e-9173-009bc3fef42d_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!VIGB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6260175f-a6ac-430e-9173-009bc3fef42d_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!VIGB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6260175f-a6ac-430e-9173-009bc3fef42d_960x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VIGB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6260175f-a6ac-430e-9173-009bc3fef42d_960x720.png" width="960" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6260175f-a6ac-430e-9173-009bc3fef42d_960x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65948,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/183272393?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6260175f-a6ac-430e-9173-009bc3fef42d_960x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VIGB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6260175f-a6ac-430e-9173-009bc3fef42d_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!VIGB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6260175f-a6ac-430e-9173-009bc3fef42d_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!VIGB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6260175f-a6ac-430e-9173-009bc3fef42d_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!VIGB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6260175f-a6ac-430e-9173-009bc3fef42d_960x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Business Insight Advanced Architecture</h3><p>Business Insight Advanced is a web-based tool that allows you to create reports with relational or dimensional data sources, and than show data in lists, crosstabs, and charts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dNZD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc8c91e-0b05-4a61-91dc-cdca687cdf36_960x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dNZD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc8c91e-0b05-4a61-91dc-cdca687cdf36_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!dNZD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc8c91e-0b05-4a61-91dc-cdca687cdf36_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!dNZD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc8c91e-0b05-4a61-91dc-cdca687cdf36_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!dNZD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc8c91e-0b05-4a61-91dc-cdca687cdf36_960x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dNZD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc8c91e-0b05-4a61-91dc-cdca687cdf36_960x720.png" width="960" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3bc8c91e-0b05-4a61-91dc-cdca687cdf36_960x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:63628,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/183272393?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc8c91e-0b05-4a61-91dc-cdca687cdf36_960x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dNZD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc8c91e-0b05-4a61-91dc-cdca687cdf36_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!dNZD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc8c91e-0b05-4a61-91dc-cdca687cdf36_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!dNZD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc8c91e-0b05-4a61-91dc-cdca687cdf36_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!dNZD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc8c91e-0b05-4a61-91dc-cdca687cdf36_960x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Business Insight Architecture</h3><p>Business Insight is a web-based tool which allows you to use Cognos content and external data sources to interact, analyze and build sophisticated interactive dashboards that facilitate collaborative decision making.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FBUs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cb730b-6922-4fbf-b402-61ee34f3000b_960x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FBUs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cb730b-6922-4fbf-b402-61ee34f3000b_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!FBUs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cb730b-6922-4fbf-b402-61ee34f3000b_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!FBUs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cb730b-6922-4fbf-b402-61ee34f3000b_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!FBUs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cb730b-6922-4fbf-b402-61ee34f3000b_960x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FBUs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cb730b-6922-4fbf-b402-61ee34f3000b_960x720.png" width="960" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1cb730b-6922-4fbf-b402-61ee34f3000b_960x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61340,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.havlena.com/i/183272393?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cb730b-6922-4fbf-b402-61ee34f3000b_960x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FBUs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cb730b-6922-4fbf-b402-61ee34f3000b_960x720.png 424w, https://substackcdn.com/image/fetch/$s_!FBUs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cb730b-6922-4fbf-b402-61ee34f3000b_960x720.png 848w, https://substackcdn.com/image/fetch/$s_!FBUs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cb730b-6922-4fbf-b402-61ee34f3000b_960x720.png 1272w, https://substackcdn.com/image/fetch/$s_!FBUs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1cb730b-6922-4fbf-b402-61ee34f3000b_960x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Original Presentation</h2><p>Original presentation about our project is available on slideshare:</p><p>&#128073; <a href="https://www.slideshare.net/slideshow/business-intelligence-in-ibm-cognos-10-utc/15242505">https://www.slideshare.net/slideshow/business-intelligence-in-ibm-cognos-10-utc/15242505</a></p>]]></content:encoded></item></channel></rss>