<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jukka Blomberg</title>
    <description>The latest articles on DEV Community by Jukka Blomberg (@jukkablomberg).</description>
    <link>https://dev.to/jukkablomberg</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3895384%2F0c293cd0-50ed-4fa7-b481-d0815937e7b6.jpeg</url>
      <title>DEV Community: Jukka Blomberg</title>
      <link>https://dev.to/jukkablomberg</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jukkablomberg"/>
    <language>en</language>
    <item>
      <title>Where are the world's Bitcoin towns? Mostly in Africa now</title>
      <dc:creator>Jukka Blomberg</dc:creator>
      <pubDate>Fri, 16 Oct 2026 00:40:13 +0000</pubDate>
      <link>https://dev.to/jukkablomberg/where-are-the-worlds-bitcoin-towns-mostly-in-africa-now-212a</link>
      <guid>https://dev.to/jukkablomberg/where-are-the-worlds-bitcoin-towns-mostly-in-africa-now-212a</guid>
      <description>&lt;p&gt;Ask people to name a "Bitcoin town" and you will hear El Salvador's Bitcoin Beach, maybe Lugano, maybe a Costa Rican jungle.&lt;/p&gt;

&lt;p&gt;The atlas we keep says something else. &lt;strong&gt;Of 66 towns, beaches, islands and local programmes trying to run on Bitcoin, 26 are in Africa.&lt;/strong&gt; That is twice as many as Europe (13), and more than Latin America and the Caribbean (14).&lt;/p&gt;

&lt;p&gt;And the African ones are not just listed. &lt;strong&gt;14 of the 26 show dated activity in the last 12 months&lt;/strong&gt;, the most of any region.&lt;/p&gt;

&lt;h2&gt;
  
  
  How a place gets a status
&lt;/h2&gt;

&lt;p&gt;Every place in the atlas rests on one page run by the operator or programme itself, with the spot on that page where the facts sit and the day we checked it. The status is graded from dates, not from vibes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Active:&lt;/strong&gt; dated activity within 12 months of our last check.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quiet:&lt;/strong&gt; the operator's site is up, but no dated activity in the last 12 months. Quiet is not closed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ceased:&lt;/strong&gt; the operator says it has ended.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unverified:&lt;/strong&gt; we could not open the operator's own site, or only a directory lists it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Adoption figures (merchant counts and the like) are reported exactly as the operator gives them and are never audited, which is why every record carries a separate note on how sure we are that we read the source right.&lt;/p&gt;

&lt;h2&gt;
  
  
  The count today (atlas v0.5.0)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Region&lt;/th&gt;
&lt;th&gt;Active&lt;/th&gt;
&lt;th&gt;Quiet&lt;/th&gt;
&lt;th&gt;Unverified&lt;/th&gt;
&lt;th&gt;Ceased&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Africa&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latin America &amp;amp; Caribbean&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Europe&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;North America&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Asia&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oceania&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-country&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The active African places sit in Kenya (Makueni, Githurai, the Tena Bitcoin Estate), South Africa (Bitcoin Ekasi, Plettenberg Bay), Mozambique (three programmes), Tanzania, Zambia, Benin, Nigeria and the DR Congo. Most are small circular-economy projects: a few dozen merchants, a school programme, Lightning payments for local trade.&lt;/p&gt;

&lt;p&gt;The one place marked &lt;strong&gt;Ceased&lt;/strong&gt; is in Brazil: Praia Bitcoin in Jericoacoara, whose operator announced its sunset in February 2026. It stays in the atlas, because a record of what stopped is as useful as a record of what runs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use the data
&lt;/h2&gt;

&lt;p&gt;The whole register is one CSV, free under CC BY 4.0, with the evidence URL, the page locator and the date checked on every row:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;

&lt;span class="n"&gt;places&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://billasaari.com/atlas/data/places.csv&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# status by region
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;crosstab&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;places&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;region&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;places&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# the most recently active places, with the page that proves it
&lt;/span&gt;&lt;span class="n"&gt;recent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;places&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;places&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;active&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;sort_values&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;last_dated_activity&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ascending&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;recent&lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;country&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;last_dated_activity&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;activity_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]].&lt;/span&gt;&lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The atlas, on a map: &lt;a href="https://billasaari.com/?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bs-atlas-africa-devto" rel="noopener noreferrer"&gt;billasaari.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;How a status is graded: &lt;a href="https://billasaari.com/atlas/method/?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bs-atlas-africa-devto" rel="noopener noreferrer"&gt;billasaari.com/atlas/method&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Know a place we are missing? The atlas takes suggestions: send the place's own page, and it is checked before it enters the register.&lt;/p&gt;

</description>
      <category>bitcoin</category>
      <category>data</category>
      <category>python</category>
      <category>opendata</category>
    </item>
    <item>
      <title>Wine sales held up this year. Wine profits did not.</title>
      <dc:creator>Jukka Blomberg</dc:creator>
      <pubDate>Fri, 16 Oct 2026 00:39:55 +0000</pubDate>
      <link>https://dev.to/jukkablomberg/wine-sales-held-up-this-year-wine-profits-did-not-4ail</link>
      <guid>https://dev.to/jukkablomberg/wine-sales-held-up-this-year-wine-profits-did-not-4ail</guid>
      <description>&lt;p&gt;Here is a small puzzle from the latest round of results from listed wine companies.&lt;/p&gt;

&lt;p&gt;Take the 16 companies that have reported so far. Compare each one's newest period with the same period a year earlier. &lt;strong&gt;Sales split almost down the middle: 7 grew, 8 shrank.&lt;/strong&gt; One more did not publish a comparable prior-year figure.&lt;/p&gt;

&lt;p&gt;Now look at the bottom line. &lt;strong&gt;Of the 13 companies that report a profit or loss line, 11 did worse. Two did better.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selling roughly the same amount of wine and keeping less of the money is the story of the year so far.&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers, company by company
&lt;/h2&gt;

&lt;p&gt;Each figure is the issuer's own, read from its own filing (the record links every row to the document it came from). Periods differ because companies report on different calendars, so each line compares like with like: the newest period against the same period a year before.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Company&lt;/th&gt;
&lt;th&gt;Period&lt;/th&gt;
&lt;th&gt;Sales vs a year earlier&lt;/th&gt;
&lt;th&gt;Bottom line&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Crimson Wine Group (US)&lt;/td&gt;
&lt;td&gt;Q2 to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;+20.4%&lt;/td&gt;
&lt;td&gt;loss widened (USD -346k vs -131k)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chapel Down (UK)&lt;/td&gt;
&lt;td&gt;H1 to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;+18.9%&lt;/td&gt;
&lt;td&gt;loss narrowed (GBP -489k vs -557k)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Delegat Group (NZ)&lt;/td&gt;
&lt;td&gt;FY to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;+4.2%&lt;/td&gt;
&lt;td&gt;profit down 19.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sula Vineyards (India)&lt;/td&gt;
&lt;td&gt;Q1 to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;+2.1%&lt;/td&gt;
&lt;td&gt;profit down 45%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ambra (Poland)&lt;/td&gt;
&lt;td&gt;FY to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;+0.7%&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Australian Vintage&lt;/td&gt;
&lt;td&gt;FY to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;+0.4%&lt;/td&gt;
&lt;td&gt;loss AUD -64m vs -6m&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Schloss Wachenheim (Germany)&lt;/td&gt;
&lt;td&gt;FY to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;+0.3%&lt;/td&gt;
&lt;td&gt;profit up 1.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Willamette Valley Vineyards (US)&lt;/td&gt;
&lt;td&gt;Q2 to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;-1.6%&lt;/td&gt;
&lt;td&gt;from a small profit to a USD 1.4m loss&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Italian Wine Brands&lt;/td&gt;
&lt;td&gt;H1 to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;-5.3%&lt;/td&gt;
&lt;td&gt;profit down 24%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Masi Agricola (Italy)&lt;/td&gt;
&lt;td&gt;H1 to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;-6.7%&lt;/td&gt;
&lt;td&gt;from a small profit to a EUR 1.2m loss&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Purcari Wineries (Romania/Moldova)&lt;/td&gt;
&lt;td&gt;H1 to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;-6.8%&lt;/td&gt;
&lt;td&gt;profit down 3.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Viña San Pedro Tarapacá (Chile)&lt;/td&gt;
&lt;td&gt;H1 to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;-11.1%&lt;/td&gt;
&lt;td&gt;profit down 87%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maison Pommery &amp;amp; Associés (France)&lt;/td&gt;
&lt;td&gt;H1 to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;-12.0%&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Treasury Wine Estates (Australia)&lt;/td&gt;
&lt;td&gt;FY to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;-12.8%&lt;/td&gt;
&lt;td&gt;from AUD 437m profit to a AUD 1.08bn loss&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Naked Wines (UK)&lt;/td&gt;
&lt;td&gt;FY to 30 Mar 2026&lt;/td&gt;
&lt;td&gt;-20.4%&lt;/td&gt;
&lt;td&gt;loss widened (GBP -6.6m vs -4.9m)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lanson-BCC (France)&lt;/td&gt;
&lt;td&gt;H1 to 30 Jun 2026&lt;/td&gt;
&lt;td&gt;no prior figure read&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A few things stand out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Growth did not buy profit.&lt;/strong&gt; Crimson grew sales by a fifth and its loss still more than doubled. Delegat and Sula both grew and both earned less.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The biggest company had the biggest swing.&lt;/strong&gt; Treasury Wine Estates, the owner of Penfolds, went from a AUD 437m profit to a AUD 1.08bn loss on sales down 12.8%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Only one company is up on both lines.&lt;/strong&gt; Schloss Wachenheim, the German sparkling-wine group, grew sales 0.3% and profit 1.3%. Flat, and still the best result on the list.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Use the data
&lt;/h2&gt;

&lt;p&gt;The whole record is one CSV, free under CC BY 4.0, with the source URL and the page locator on every row:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://vincap.co/data/results.csv&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# newest period per company, and the change against the same period a year earlier
&lt;/span&gt;&lt;span class="n"&gt;newest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;period_end&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;groupby&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ticker&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;period_end&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)].&lt;/span&gt;&lt;span class="nf"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;newest&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;change_pct&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;newest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;newest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prior_value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;newest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;prior_value&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;newest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pivot_table&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ticker&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;columns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;metric&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;change_pct&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The record, with every source: &lt;a href="https://vincap.co/results?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=vc-results-devto" rel="noopener noreferrer"&gt;vincap.co/results&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;CSV / JSON downloads: &lt;a href="https://vincap.co/data?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=vc-results-devto" rel="noopener noreferrer"&gt;vincap.co/data&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The index these 22 companies make up: &lt;a href="https://vincap.co/indices/wine?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=vc-results-devto" rel="noopener noreferrer"&gt;vincap.co/indices/wine&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Six of the 22 indexed companies have not been read into the record yet; it fills in as filings are checked. If you want the monthly read of listed wine by email, the free Monthly Brief sign-up is on &lt;a href="https://vincap.co/brief?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=vc-results-devto" rel="noopener noreferrer"&gt;the index page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;VINCAP (formerly BoomCellar) publishes indices and data on the world's listed wine companies. Editorial research and market data, not investment advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>data</category>
      <category>python</category>
      <category>opendata</category>
      <category>finance</category>
    </item>
    <item>
      <title>Nine of 26 crypto layoffs were called "AI". Only five companies said it themselves.</title>
      <dc:creator>Jukka Blomberg</dc:creator>
      <pubDate>Thu, 15 Oct 2026 00:36:38 +0000</pubDate>
      <link>https://dev.to/jukkablomberg/nine-of-26-crypto-layoffs-were-called-ai-only-five-companies-said-it-themselves-cma</link>
      <guid>https://dev.to/jukkablomberg/nine-of-26-crypto-layoffs-were-called-ai-only-five-companies-said-it-themselves-cma</guid>
      <description>&lt;p&gt;"AI is taking the jobs" is the easiest headline of 2026. When I wrote a report on crypto marketing this year, I tried to count it instead of repeating it.&lt;/p&gt;

&lt;p&gt;The panel: 27 crypto companies (11 exchanges, 8 foundations, 5 wallets, 3 other licensed firms) and 17 agencies, over the twelve months to 31 August 2026. Public sources only, no interviews, no anonymous quotes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The count
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;26&lt;/strong&gt; job cuts in the record.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;9&lt;/strong&gt; of them were framed as AI cuts somewhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5&lt;/strong&gt; of those nine were framed that way &lt;strong&gt;in the company's own words&lt;/strong&gt;. The other four were the press's framing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;0&lt;/strong&gt; of them named marketing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So part of the AI-layoff story is a story about headlines. That does not mean AI is not changing the work. It means the cut announcements are a poor place to measure it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the marketers actually went
&lt;/h2&gt;

&lt;p&gt;The stronger signal ran the other way. The senior marketers did not stay to adopt AI; they went to work for it. &lt;strong&gt;Seven senior Coinbase marketers, including the CMO, joined OpenAI and Anthropic.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is a talent flow you can trace name by name in public profiles and announcements, which is more than you can say for most "AI replaced X" claims.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I refused to count
&lt;/h2&gt;

&lt;p&gt;This is the part I would want to read in anyone else's report:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No job counts.&lt;/strong&gt; The largest exchanges' careers sites could not be read by our scan, so the report prints no hiring numbers at all. A job we cannot find is not an empty seat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An agency's claim is not a contract.&lt;/strong&gt; Agencies name clients; the companies almost never confirm. Those claims are reported as claims.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One frozen dataset.&lt;/strong&gt; Every number comes from one set of files and reconciles to the appendix, and the claim ledger is public in the companion repository.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you build anything that "tracks AI's effect on jobs", the boring rule is the useful one: separate what a company said from what was said about it, and print the gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  Read it
&lt;/h2&gt;

&lt;p&gt;The full report is free and ungated, with the 34 sources it rests on:&lt;br&gt;
&lt;a href="https://northpoint.fi/state-of-crypto-marketing-2026?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=socm-2026-ai-layoffs-devto" rel="noopener noreferrer"&gt;State of Crypto Marketing 2026&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you work at a crypto company, the same page has a form: give it your site and you get one page back, written by hand within a day, with your line against the report's seven numbers.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>cryptocurrency</category>
      <category>data</category>
    </item>
    <item>
      <title>My AI agents had a bug that no test could catch: a job nobody's instructions knew about</title>
      <dc:creator>Jukka Blomberg</dc:creator>
      <pubDate>Thu, 15 Oct 2026 00:34:45 +0000</pubDate>
      <link>https://dev.to/jukkablomberg/my-ai-agents-had-a-bug-that-no-test-could-catch-a-job-nobodys-instructions-knew-about-364g</link>
      <guid>https://dev.to/jukkablomberg/my-ai-agents-had-a-bug-that-no-test-could-catch-a-job-nobodys-instructions-knew-about-364g</guid>
      <description>&lt;p&gt;I run my companies with a standing fleet of 13 AI agents and no employees. Each agent has a written contract, a schedule and a run log. They hand work to each other through queues, and every item they touch lands in one append-only ledger.&lt;/p&gt;

&lt;p&gt;In August the fleet went quiet in a way that looked healthy. Nothing crashed. Every agent ran on time and wrote its log. And for ten days, a job I had asked for simply did not happen.&lt;/p&gt;

&lt;h2&gt;
  
  
  What went wrong
&lt;/h2&gt;

&lt;p&gt;I had decided that one agent should draft a daily alert and another, the one that builds my morning summary, should show it to me. The decision was written down. It was in the shared files. It was even in the planning document that describes who does what.&lt;/p&gt;

&lt;p&gt;It was not in the morning agent's own instructions.&lt;/p&gt;

&lt;p&gt;So the morning agent kept doing exactly what its instructions said, perfectly, every day. In ten days it rendered the alert zero times. Nobody was wrong, and nothing worked.&lt;/p&gt;

&lt;p&gt;When I went looking, it was not a one-off. Around the same date I found the same failure in four places:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the alert above (10 days, never shown)&lt;/li&gt;
&lt;li&gt;a recurring defect, logged four nights in a row, with no agent responsible for fixing it&lt;/li&gt;
&lt;li&gt;a response log that one agent wrote and nothing ever read back&lt;/li&gt;
&lt;li&gt;two agents I had retired that, from the files alone, looked exactly like two agents that had silently broken&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why tests do not catch this
&lt;/h2&gt;

&lt;p&gt;Every one of those agents passed its own checks. The bug was not inside any agent. It lived in the space between them: a handoff that existed on paper and nowhere in the instructions of the agent that had to act.&lt;/p&gt;

&lt;p&gt;With people, this is the meeting where everyone nodded and nobody owned the action item. With agents it is worse, because an agent never "picks up" an unassigned job out of good sense. If the duty is not in its instructions, it does not exist.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three rules I use now
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A handoff is real only if the receiving agent's own instructions carry it.&lt;/strong&gt; Writing the decision in a shared file does not count. When I add a new handoff, the same session edits the receiver's instructions, and only then records the handoff.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nothing is just "turned off".&lt;/strong&gt; An agent is active, replaced, merged into another, or finished, and the last three must name what took over and when. A switched-off agent with no successor written down is treated as a defect, not a decision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Every output with a human reader names its renderer.&lt;/strong&gt; Before a new kind of output is allowed to exist, someone answers: who shows this to whom, where, and on which day. A producer and a reviewer without a renderer make an invisible lane, and an invisible lane looks exactly like a quiet, healthy one.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Checked, not believed
&lt;/h2&gt;

&lt;p&gt;The map of who owns what is one file. A small script checks it every night against what actually runs and against each agent's instructions, and exits with an error when a handoff has no owner on the receiving end. I run it before trusting the map.&lt;/p&gt;

&lt;p&gt;The cost of all this is a few minutes per change. The cost of not doing it was ten days of a job I thought was running.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fleet and the rules, in public
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Every agent, with its mandate and schedule:&lt;/strong&gt; &lt;a href="https://jukkablomberg.com/agents?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=jb-agents-handoff-devto" rel="noopener noreferrer"&gt;jukkablomberg.com/agents&lt;/a&gt; (a free one-pager on how the system runs is there too)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The governance playbook (free, CC BY 4.0):&lt;/strong&gt; &lt;a href="https://jukkablomberg.com/ai/playbook?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=jb-agents-handoff-devto" rel="noopener noreferrer"&gt;jukkablomberg.com/ai/playbook&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you run agents in a team and have seen your own version of this bug, I would like to hear it: &lt;a href="mailto:hello@jukkablomberg.com"&gt;hello@jukkablomberg.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>automation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Five things my 13 AI agents are never allowed to do</title>
      <dc:creator>Jukka Blomberg</dc:creator>
      <pubDate>Wed, 14 Oct 2026 00:45:34 +0000</pubDate>
      <link>https://dev.to/jukkablomberg/five-things-my-13-ai-agents-are-never-allowed-to-do-28i8</link>
      <guid>https://dev.to/jukkablomberg/five-things-my-13-ai-agents-are-never-allowed-to-do-28i8</guid>
      <description>&lt;p&gt;I run my companies with AI agents: 13 of them operate 14 ventures, 12 with a live product, and I am the only human. In the last 90 days they built 1,235 items, counted from an append-only ledger (as of 13 October 2026).&lt;/p&gt;

&lt;p&gt;People usually ask how I keep that from going wrong. The honest answer is boring: a short list of things no agent does on its own, and a long list of things they do without asking. Here is the short list.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five gates
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Money going live&lt;/strong&gt; — payment wiring, pricing changes, payouts, refunds, new paid seats or plans.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth and secrets&lt;/strong&gt; — never create, rotate or commit a credential. Write the code that reads an environment variable and leave the value to a human.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;External sends and posting&lt;/strong&gt; — email, DMs, social posts, anything that contacts a third party in your name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scheduled automation&lt;/strong&gt; — creating, disabling or rescheduling anything that will run without a person present.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Destructive or irreversible change&lt;/strong&gt; — deleting data, DNS and domain changes, production migrations.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Everything outside those five is allowed without asking. That is the part people skip: &lt;strong&gt;narrow gates, wide autonomy.&lt;/strong&gt; A system that must ask about everything gets ignored. One that asks about nothing eventually spends your money.&lt;/p&gt;

&lt;h2&gt;
  
  
  A gate is a boundary you can widen one case at a time
&lt;/h2&gt;

&lt;p&gt;Gates are not forever. When I want a gated action to run on its own, it gets an &lt;em&gt;envelope&lt;/em&gt; written down first: the one case it covers, a hard cap, the stop-loss that halts it, and how each automated action is tagged in the log. Everything outside the envelope is drafted by the machine and done by a person.&lt;/p&gt;

&lt;p&gt;You can watch this work in practice. The agent that wrote this article is allowed to post on some of my surfaces and not others. Earlier tonight it drafted a post for a company page and tried to publish it; a safety check stopped the click. That is not a failure, it is the system doing its job. The draft goes to me as a one-minute action, and I press the button.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three habits that make the gates hold
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Every agent has a one-page contract&lt;/strong&gt; before it runs: owner, mandate, cadence, the data it may read and may never see, where it writes, which gates apply, who it escalates to, and a kill rule. No contract, no run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One append-only ledger is the audit trail.&lt;/strong&gt; One line per item: &lt;code&gt;date | item ID | source | project | STATUS | note&lt;/code&gt;, where STATUS is BUILT, PARTIAL, ESCALATED or KILLED. Lines are never edited. An item that silently disappears is a handover failure, not housekeeping.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Done means a check ran.&lt;/strong&gt; "Should work" is not a result. A premise proved false and closed with evidence counts as a successful run, and escalating counts as progress. Never fabricate a number, a date or a test.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Take it
&lt;/h2&gt;

&lt;p&gt;I wrote the whole model up as a template an organisation can adopt — principles, the gate matrix, the agent (or use-case) contract, the ledger, envelopes, how to measure it, and how it maps onto a team rollout on Claude, Copilot or OpenAI. It is free under CC BY 4.0, with a Markdown download:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The playbook:&lt;/strong&gt; &lt;a href="https://jukkablomberg.com/ai/playbook?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=jb-ai-playbook-devto" rel="noopener noreferrer"&gt;jukkablomberg.com/ai/playbook&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How I use it with organisations:&lt;/strong&gt; &lt;a href="https://jukkablomberg.com/ai?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=jb-ai-playbook-devto" rel="noopener noreferrer"&gt;jukkablomberg.com/ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The fleet, with each agent's mandate and cadence:&lt;/strong&gt; &lt;a href="https://jukkablomberg.com/agents?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=jb-ai-playbook-devto" rel="noopener noreferrer"&gt;jukkablomberg.com/agents&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are rolling AI out in a team and want to compare notes, one paragraph to &lt;a href="mailto:hello@jukkablomberg.com"&gt;hello@jukkablomberg.com&lt;/a&gt; is enough: where you are with AI and what you need.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>llm</category>
      <category>management</category>
    </item>
    <item>
      <title>The label says Bordeaux. The annual report says Australia</title>
      <dc:creator>Jukka Blomberg</dc:creator>
      <pubDate>Wed, 14 Oct 2026 00:39:36 +0000</pubDate>
      <link>https://dev.to/jukkablomberg/the-label-says-bordeaux-the-annual-report-says-australia-4k5k</link>
      <guid>https://dev.to/jukkablomberg/the-label-says-bordeaux-the-annual-report-says-australia-4k5k</guid>
      <description>&lt;p&gt;Château Lanessan is an estate in the Haut-Médoc, Bordeaux. Castello di Gabbiano is a castle in Chianti Classico. DAOU Mountain sits in the hills west of Paso Robles, California.&lt;/p&gt;

&lt;p&gt;Three countries, three very different labels. One owner: &lt;strong&gt;Treasury Wine Estates&lt;/strong&gt;, a company listed on the Australian Securities Exchange — the same company that owns Penfolds. It holds 78.6% of Lanessan and 100% of the other two, and it says so in its own annual report.&lt;/p&gt;

&lt;p&gt;Wine labels tell you a place. They rarely tell you who owns the place. So we built a lookup that does: &lt;a href="https://boomcellar.com/owners?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-owners-devto" rel="noopener noreferrer"&gt;Who owns this wine?&lt;/a&gt; lists 87 wine brands next to the listed company that owns them, the stake, and the filing that says so.&lt;/p&gt;

&lt;h2&gt;
  
  
  Labels that cross a border
&lt;/h2&gt;

&lt;p&gt;Most listed wine companies own vineyards at home. These are the ones whose sites sit in a different country from the owner, each read from the owner's own filing or official page (register checked 8 October 2026):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Site&lt;/th&gt;
&lt;th&gt;Where it is&lt;/th&gt;
&lt;th&gt;Owner&lt;/th&gt;
&lt;th&gt;Listed in&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Château Lanessan&lt;/td&gt;
&lt;td&gt;Haut-Médoc, Bordeaux, France&lt;/td&gt;
&lt;td&gt;Treasury Wine Estates (78.6%)&lt;/td&gt;
&lt;td&gt;Australia&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Castello di Gabbiano&lt;/td&gt;
&lt;td&gt;Chianti Classico, Tuscany, Italy&lt;/td&gt;
&lt;td&gt;Treasury Wine Estates (100%)&lt;/td&gt;
&lt;td&gt;Australia&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DAOU Mountain&lt;/td&gt;
&lt;td&gt;Paso Robles, California, USA&lt;/td&gt;
&lt;td&gt;Treasury Wine Estates (100%)&lt;/td&gt;
&lt;td&gt;Australia&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bonterra Organic Estates&lt;/td&gt;
&lt;td&gt;Mendocino County, California, USA&lt;/td&gt;
&lt;td&gt;Viña Concha y Toro&lt;/td&gt;
&lt;td&gt;Chile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bodega Trivento&lt;/td&gt;
&lt;td&gt;Mendoza, Argentina&lt;/td&gt;
&lt;td&gt;Viña Concha y Toro (100%)&lt;/td&gt;
&lt;td&gt;Chile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Finca La Celia&lt;/td&gt;
&lt;td&gt;Uco Valley, Mendoza, Argentina&lt;/td&gt;
&lt;td&gt;Viña San Pedro Tarapacá&lt;/td&gt;
&lt;td&gt;Chile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Masi Tupungato&lt;/td&gt;
&lt;td&gt;Uco Valley, Mendoza, Argentina&lt;/td&gt;
&lt;td&gt;Masi Agricola (100%)&lt;/td&gt;
&lt;td&gt;Italy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kilikanoon&lt;/td&gt;
&lt;td&gt;Clare Valley, South Australia&lt;/td&gt;
&lt;td&gt;Yantai Changyu Pioneer Wine (99%)&lt;/td&gt;
&lt;td&gt;China (Shenzhen)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Barossa Valley Estate&lt;/td&gt;
&lt;td&gt;Barossa, South Australia&lt;/td&gt;
&lt;td&gt;Delegat Group (100%)&lt;/td&gt;
&lt;td&gt;New Zealand&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L'Avenir Wine Estate&lt;/td&gt;
&lt;td&gt;Stellenbosch, South Africa&lt;/td&gt;
&lt;td&gt;AdVini (100%)&lt;/td&gt;
&lt;td&gt;France&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quinta do Grifo · Quinta de Monsul (Rozès)&lt;/td&gt;
&lt;td&gt;Douro, Portugal&lt;/td&gt;
&lt;td&gt;Maison Pommery &amp;amp; Associés&lt;/td&gt;
&lt;td&gt;France&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maison Veuve Amiot&lt;/td&gt;
&lt;td&gt;Saumur, Loire, France&lt;/td&gt;
&lt;td&gt;Schloss Wachenheim&lt;/td&gt;
&lt;td&gt;Germany&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ZAREA · Domeniile Dealu Mare&lt;/td&gt;
&lt;td&gt;Romania&lt;/td&gt;
&lt;td&gt;Ambra (51.15% of ZAREA)&lt;/td&gt;
&lt;td&gt;Poland&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A few things jump out. The flow is not one-way from the Old World to the New: an Australian company owns a Bordeaux château and a Chianti castle, a Chinese company owns a Clare Valley winery, and two Chilean companies own wineries across the Andes in Mendoza — one of them also owns a Californian organic brand.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "who owns it" is a data problem
&lt;/h2&gt;

&lt;p&gt;None of this is secret. It is just scattered: Note 28 of one annual report, a registration document in French, a Shenzhen exchange filing in Chinese. Every row in the register carries the URL of the document it came from and the locator inside it, so you can check any line yourself.&lt;/p&gt;

&lt;p&gt;Where a filing names a site as the company's own but gives no percentage, the stake column says "—" rather than guessing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use the data
&lt;/h2&gt;

&lt;p&gt;Everything is free under CC BY 4.0. The site-level file is one CSV with a source on every row:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;

&lt;span class="n"&gt;sites&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://boomcellar.com/data/listed-wine-map.csv&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# every site one listed company owns, wherever it is
&lt;/span&gt;&lt;span class="n"&gt;twe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sites&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;sites&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;company&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Treasury Wine Estates&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;twe&lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;locality&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;country&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;stake_pct&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;source_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]])&lt;/span&gt;

&lt;span class="c1"&gt;# how many mapped sites each country hosts
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sites&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;value_counts&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The lookup (brand → owner → ticker → filing): &lt;a href="https://boomcellar.com/owners?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-owners-devto" rel="noopener noreferrer"&gt;boomcellar.com/owners&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Every site on a map: &lt;a href="https://boomcellar.com/map?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-owners-devto" rel="noopener noreferrer"&gt;boomcellar.com/map&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;CSV / JSON downloads and the data dictionary: &lt;a href="https://boomcellar.com/data?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-owners-devto" rel="noopener noreferrer"&gt;boomcellar.com/data&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The index those owners belong to: &lt;a href="https://boomcellar.com/indices/wine?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-owners-devto" rel="noopener noreferrer"&gt;boomcellar.com/indices/wine&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The register is re-checked monthly. If you want the monthly read of listed wine by email, the Brief sign-up is on the index page.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Editorial research and market data, not investment advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opendata</category>
      <category>data</category>
      <category>python</category>
      <category>dataset</category>
    </item>
    <item>
      <title>"We don't market in the EEA" is a signature, not evidence. Here is what an EEA visitor actually sees</title>
      <dc:creator>Jukka Blomberg</dc:creator>
      <pubDate>Tue, 13 Oct 2026 00:34:27 +0000</pubDate>
      <link>https://dev.to/jukkablomberg/we-dont-market-in-the-eea-is-a-signature-not-evidence-here-is-what-an-eea-visitor-actually-sees-2j4a</link>
      <guid>https://dev.to/jukkablomberg/we-dont-market-in-the-eea-is-a-signature-not-evidence-here-is-what-an-eea-visitor-actually-sees-2j4a</guid>
      <description>&lt;p&gt;A crypto firm without a MiCA authorisation can still serve European clients in one narrow case: the client came to it on their own initiative. That is reverse solicitation (MiCA Art. 61). The exemption is fragile. Outbound marketing aimed at the EEA destroys it.&lt;/p&gt;

&lt;p&gt;So the banks, payment rails, EMIs and custody providers that carry non-EEA crypto clients usually ask for one thing: a signed declaration that the client does not market into the EEA.&lt;/p&gt;

&lt;p&gt;A declaration is unverifiable. It says what the client intends. It does not show what a visitor in Lisbon or Helsinki is shown when they open the site.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "marketing into the EEA" looks like on a page
&lt;/h2&gt;

&lt;p&gt;Our free check reads four kinds of signal on a single page:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EEA-language localisation&lt;/strong&gt; — the page served in an EEA language&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Country-specific promotions&lt;/strong&gt; — an offer named for an EEA country or its residents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EUR / SEPA payment rails&lt;/strong&gt; — euro deposits, SEPA transfers on the buy or deposit page&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Availability or onboarding language aimed at EEA residents&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Active solicitation with no explicit EEA exclusion is the exposure it flags. You can run it on any exchange's URL, or paste the copy: &lt;a href="https://northpoint.fi/check/non-eea?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=np-non-eea-devto" rel="noopener noreferrer"&gt;northpoint.fi/check/non-eea&lt;/a&gt;. It is free, and it reads one page from our server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why one page from one server is not enough
&lt;/h2&gt;

&lt;p&gt;A page can show different things depending on where the visitor is. A check run from a server outside Europe can come back clean while an EEA visitor sees euro rails and a local-language promotion. And one page is not the firm's marketing: the app storefronts, the campaign pages and the terms all speak too.&lt;/p&gt;

&lt;p&gt;That is the gap between the free check and a record you could put in a compliance file.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a monthly record holds
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://northpoint.fi/non-eea-marketing-monitor?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=np-non-eea-devto" rel="noopener noreferrer"&gt;Non-EEA Marketing Monitor&lt;/a&gt; visits a client's public marketing surfaces every month from an EEA residential IP — the site and its languages, the buy and deposit pages, the app storefronts, the promotions and the terms. Each record has three parts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The surface map&lt;/strong&gt; — every surface examined, what was checked on it, and what was out of scope.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The dated record&lt;/strong&gt; — every fetch with its UTC time, HTTP status and a SHA-256 of the body, diffed against last month's record.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The flag list&lt;/strong&gt; — each EEA-targeting signal, its severity and the evidence behind it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hashing every fetched body pins down exactly what was served at that minute, and the month-on-month diff turns a snapshot into a history — the question a reviewer actually asks is "what changed since last time?". The record itself can be checked too: &lt;a href="https://northpoint.fi/verify?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=np-non-eea-devto" rel="noopener noreferrer"&gt;northpoint.fi/verify&lt;/a&gt; confirms a record number was issued by NorthPoint, and if you drop the PDF in, whether your copy is unchanged (checked in your browser, never uploaded).&lt;/p&gt;

&lt;p&gt;There is a &lt;a href="https://northpoint.fi/monitor/sample-record-redacted.pdf?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=np-non-eea-devto" rel="noopener noreferrer"&gt;redacted sample record&lt;/a&gt; from a real September 2026 scan: the firm, its domains, its app identifiers and the scanning IP are removed; the scope, the flags with their evidence and the full fetch ledger are as delivered.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is not
&lt;/h2&gt;

&lt;p&gt;A record is evidence of what an EEA visitor was shown on the date it was taken. It is not a verdict on the client, and it is not legal advice.&lt;/p&gt;

&lt;p&gt;If you carry non-EEA clients and want to talk about it, the form on the &lt;a href="https://northpoint.fi/non-eea-marketing-monitor?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=np-non-eea-devto" rel="noopener noreferrer"&gt;Monitor page&lt;/a&gt; goes straight to a person — two lines is enough.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Information, not legal advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>compliance</category>
      <category>regulation</category>
      <category>security</category>
    </item>
    <item>
      <title>Our bitcoin stocks index was 94.5% SpaceX and Tesla. Here is the rule that fixed it</title>
      <dc:creator>Jukka Blomberg</dc:creator>
      <pubDate>Mon, 12 Oct 2026 00:37:26 +0000</pubDate>
      <link>https://dev.to/jukkablomberg/our-bitcoin-stocks-index-was-945-spacex-and-tesla-here-is-the-rule-that-fixed-it-3bj9</link>
      <guid>https://dev.to/jukkablomberg/our-bitcoin-stocks-index-was-945-spacex-and-tesla-here-is-the-rule-that-fixed-it-3bj9</guid>
      <description>&lt;p&gt;On 9 October 2026, two companies made up 94.5% of the market value in the &lt;a href="https://coinbucha.com/listed-bitcoin?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=cb-lbtc-materiality-devto" rel="noopener noreferrer"&gt;CoinBucha Listed Bitcoin Index&lt;/a&gt;: SpaceX and Tesla. Each of them holds bitcoin worth about 0.1% of its own market value.&lt;/p&gt;

&lt;p&gt;So an index meant to follow listed companies that hold bitcoin was, in practice, following a rocket company and a car company. We changed the rules two days later. This is what went wrong, the rule we wrote, and what it did.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it happened
&lt;/h2&gt;

&lt;p&gt;The index weights companies by market capitalisation. Under the old rules (methodology 1.x), any listed company with a sourced bitcoin holding could be admitted, and the 20% cap on a single company was only a display view: the published level itself was not capped.&lt;/p&gt;

&lt;p&gt;Admit two of the largest companies in the world because they hold a small bitcoin treasury, and they swallow the index. Nothing in the data was wrong. The rule was.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rule we added (R6, dated 11 October 2026)
&lt;/h2&gt;

&lt;p&gt;A company is now admitted only if it is one of two things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A bitcoin business (Rule A).&lt;/strong&gt; At least 50% of its latest fiscal-year revenue, as reported in its own annual filing, comes from bitcoin mining, bitcoin mining hardware, or exchange, brokerage or custody where bitcoin is a material asset. A business built on another chain's token does not qualify, whatever its size.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A material holder (Rule B).&lt;/strong&gt; It holds at least 1,000 BTC, and that holding is worth at least 30% of its market capitalisation at the review. Once in, it leaves only if the same measure falls below 20%. A reading above 300% admits nothing by itself and sends the record back for a check.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the 20% single-company cap now binds in the level itself, through capping factors set at each review.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it did
&lt;/h2&gt;

&lt;p&gt;Of the 32 constituents, 28 pass:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;6 on Rule A alone: Coinbase, Hut 8, Riot Platforms, Ionic Digital, Bitdeer, Keel Infrastructure&lt;/li&gt;
&lt;li&gt;15 on Rule B alone&lt;/li&gt;
&lt;li&gt;7 on both measures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Four leave: &lt;strong&gt;SpaceX&lt;/strong&gt; (bitcoin = 0.1% of its market value), &lt;strong&gt;Tesla&lt;/strong&gt; (0.1%), &lt;strong&gt;Block&lt;/strong&gt; (1.6%), &lt;strong&gt;Core Scientific&lt;/strong&gt; (1.4%). Their company pages stay in the register, with the reason.&lt;/p&gt;

&lt;p&gt;The bitcoin barely moved: 1,163,627 of the constituents' 1,203,813 BTC (96.7%) is still in the index.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why we re-based instead of chaining
&lt;/h2&gt;

&lt;p&gt;The old series was three weeks old and nobody cited it yet, so we chose a clean start over chaining a series whose composition we now reject. The index is re-based to 100 on 9 October 2026, the last close before the decision. The 1.x series is closed, not revised: no old figure was changed. The whole change is one dated entry in an append-only &lt;a href="https://coinbucha.com/listed-bitcoin/corrections?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=cb-lbtc-materiality-devto" rel="noopener noreferrer"&gt;corrections log&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;From now on, a methodology change takes effect at a pre-announced close. This first one took effect on publication, because nobody outside depended on the series yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Same companies, two answers
&lt;/h2&gt;

&lt;p&gt;There are two series on the same 28 companies and the same base date:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LBTC&lt;/strong&gt; weights by market capitalisation, capped at 20% per company.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LBTC-H&lt;/strong&gt; weights by bitcoin held. Strategy holds about 73% of the constituents' bitcoin, so it carries about 73% of LBTC-H.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neither is "right". They answer different questions: how the listed bitcoin companies are valued, and where the bitcoin actually sits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check it yourself
&lt;/h2&gt;

&lt;p&gt;Rule B is computed on every row from three numbers you can see: the company's holding, the BTC-USD reference close for the review date (82,546.32 on 9 October 2026), and its recorded market capitalisation. Rule A cites each company's own annual filing on its row.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The rules, every threshold and every source: &lt;a href="https://coinbucha.com/listed-bitcoin/methodology?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=cb-lbtc-materiality-devto" rel="noopener noreferrer"&gt;methodology&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The index and its 28 companies: &lt;a href="https://coinbucha.com/listed-bitcoin?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=cb-lbtc-materiality-devto" rel="noopener noreferrer"&gt;coinbucha.com/listed-bitcoin&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Downloads and the API: &lt;a href="https://coinbucha.com/data?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=cb-lbtc-materiality-devto" rel="noopener noreferrer"&gt;coinbucha.com/data&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want the monthly read (which companies moved the index, who bought or sold bitcoin according to their filings), the free &lt;a href="https://coinbucha.com/brief?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=cb-lbtc-materiality-devto" rel="noopener noreferrer"&gt;Bitcoin Stocks Monthly Brief&lt;/a&gt; is one email a month.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Information, not financial advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>bitcoin</category>
      <category>data</category>
      <category>finance</category>
      <category>datascience</category>
    </item>
    <item>
      <title>How much vineyard does a wine stock own? From 12,441 hectares to none</title>
      <dc:creator>Jukka Blomberg</dc:creator>
      <pubDate>Fri, 09 Oct 2026 00:35:49 +0000</pubDate>
      <link>https://dev.to/jukkablomberg/how-much-vineyard-does-a-wine-stock-own-from-12441-hectares-to-none-2akl</link>
      <guid>https://dev.to/jukkablomberg/how-much-vineyard-does-a-wine-stock-own-from-12441-hectares-to-none-2akl</guid>
      <description>&lt;p&gt;Buy a share in a listed wine company and you might picture vines. For some of them, that picture is right. For two of the 22 companies in the &lt;a href="https://boomcellar.com/indices/wine?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-wine-map-devto" rel="noopener noreferrer"&gt;BoomCellar Wine Stock Index&lt;/a&gt;, it is not: they own no vineyard at all.&lt;/p&gt;

&lt;p&gt;We mapped every estate, winery, vineyard and cellar those 22 companies own or run as their own, each read from the company's own filing or official page. The &lt;a href="https://boomcellar.com/map?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-wine-map-devto" rel="noopener noreferrer"&gt;Listed Wine Map&lt;/a&gt; has 99 sites in 18 countries, checked on 8 October 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vineyard area, as each company files it
&lt;/h2&gt;

&lt;p&gt;Eleven of the 22 state a vineyard figure in a primary source. Here they are, largest first, with the company's own wording:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Company&lt;/th&gt;
&lt;th&gt;Country&lt;/th&gt;
&lt;th&gt;Vineyard, ha&lt;/th&gt;
&lt;th&gt;What the filing counts&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Viña Concha y Toro&lt;/td&gt;
&lt;td&gt;Chile&lt;/td&gt;
&lt;td&gt;12,441&lt;/td&gt;
&lt;td&gt;planted area including long-term rentals, 2025&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Treasury Wine Estates&lt;/td&gt;
&lt;td&gt;Australia&lt;/td&gt;
&lt;td&gt;9,560&lt;/td&gt;
&lt;td&gt;owned and leased (2,709 ha leased), 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Viña San Pedro Tarapacá&lt;/td&gt;
&lt;td&gt;Chile&lt;/td&gt;
&lt;td&gt;4,684&lt;/td&gt;
&lt;td&gt;productive and developing, owned and leased, 2025&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Delegat Group&lt;/td&gt;
&lt;td&gt;New Zealand&lt;/td&gt;
&lt;td&gt;2,876&lt;/td&gt;
&lt;td&gt;productive, owned and leased, 30 June 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maison Pommery &amp;amp; Associés&lt;/td&gt;
&lt;td&gt;France&lt;/td&gt;
&lt;td&gt;2,600&lt;/td&gt;
&lt;td&gt;holdings as its registration document states them&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Purcari Wineries&lt;/td&gt;
&lt;td&gt;Romania/Moldova&lt;/td&gt;
&lt;td&gt;1,989&lt;/td&gt;
&lt;td&gt;vine plantations, 2025&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Foley Wines&lt;/td&gt;
&lt;td&gt;New Zealand&lt;/td&gt;
&lt;td&gt;462&lt;/td&gt;
&lt;td&gt;in commercial production, owned or leased, 30 June 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Willamette Valley Vineyards&lt;/td&gt;
&lt;td&gt;USA&lt;/td&gt;
&lt;td&gt;214.1&lt;/td&gt;
&lt;td&gt;productive, owned and leased (529 acres)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Crimson Wine Group&lt;/td&gt;
&lt;td&gt;USA&lt;/td&gt;
&lt;td&gt;184.1&lt;/td&gt;
&lt;td&gt;planted (455 acres)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lanson-BCC&lt;/td&gt;
&lt;td&gt;France&lt;/td&gt;
&lt;td&gt;152&lt;/td&gt;
&lt;td&gt;owned, hectare-equivalents, 31 December 2025&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Naked Wines&lt;/td&gt;
&lt;td&gt;UK&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;owns no vineyard or winery; its Sonoma winery is leased&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;And one more zero with a twist: &lt;strong&gt;Italian Wine Brands&lt;/strong&gt; owns no land, but it does own three wineries. It buys and bottles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the column is not a ranking
&lt;/h2&gt;

&lt;p&gt;Read the last column before you compare rows. "Planted", "productive", "owned and leased" and "hectare-equivalents" are different measures, and two of the US figures are acres converted at 0.4047. Each number is exactly what that company reports, with a link to the page it came from. Lining them up is useful; treating them as one measure is not.&lt;/p&gt;

&lt;p&gt;The other ten companies (Laurent-Perrier, Schloss Wachenheim, AdVini, Masi Agricola and others) have sites on the map but no hectare figure we could read from a primary source, so the cell stays blank. A blank means "not stated", not zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  A second surprise: Champagne
&lt;/h2&gt;

&lt;p&gt;Lanson-BCC has the most sites on the map of any company (9) and the smallest vineyard figure anyone on the list states above zero (152 ha owned). Site count and vineyard area measure different things: houses, cellars and wineries are sites too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get the data
&lt;/h2&gt;

&lt;p&gt;The map and its data are free under CC BY 4.0:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The map, by company and by site, with a source on every row: &lt;a href="https://boomcellar.com/map?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-wine-map-devto" rel="noopener noreferrer"&gt;boomcellar.com/map&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Downloads (CSV and JSON) and the data dictionary: &lt;a href="https://boomcellar.com/data?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-wine-map-devto" rel="noopener noreferrer"&gt;boomcellar.com/data&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The index these companies belong to: &lt;a href="https://boomcellar.com/indices/wine?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-wine-map-devto" rel="noopener noreferrer"&gt;boomcellar.com/indices/wine&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The map is re-checked monthly. If you want the monthly read of listed wine in your inbox, the Brief sign-up is on the index page.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Information, not investment advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>dataset</category>
      <category>opendata</category>
      <category>finance</category>
      <category>wine</category>
    </item>
    <item>
      <title>Wine stocks are up 6.5% since July. Or down 2.8%. It depends how you count.</title>
      <dc:creator>Jukka Blomberg</dc:creator>
      <pubDate>Wed, 07 Oct 2026 00:35:01 +0000</pubDate>
      <link>https://dev.to/jukkablomberg/wine-stocks-are-up-65-since-july-or-down-28-it-depends-how-you-count-4f9n</link>
      <guid>https://dev.to/jukkablomberg/wine-stocks-are-up-65-since-july-or-down-28-it-depends-how-you-count-4f9n</guid>
      <description>&lt;p&gt;Here is one small dataset with two honest answers.&lt;/p&gt;

&lt;p&gt;Take the 22 listed wine companies in the &lt;a href="https://boomcellar.com/indices/wine?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-wine-equal-weight" rel="noopener noreferrer"&gt;BoomCellar Wine Stock Index&lt;/a&gt; (13 countries, 16 exchanges). Start them all at 100 on 3 July 2026 and read the close on 6 October 2026 (USD):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Weighted by company size (the index):&lt;/strong&gt; 106.50, so &lt;strong&gt;+6.5%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Every company counted once (the equal-weight companion):&lt;/strong&gt; 97.17, so &lt;strong&gt;−2.8%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;World equities, for scale (iShares MSCI World ETF, URTH, rebased the same day):&lt;/strong&gt; 103.49, so &lt;strong&gt;+3.5%&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Same companies, same prices, same dates. The only thing that changes is how much each company counts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the two lines split
&lt;/h2&gt;

&lt;p&gt;Size weighting gives a big company a big say. In this index one company, Treasury Wine Estates (Australia), is about &lt;strong&gt;43%&lt;/strong&gt; of the weight today. The top three (with Yantai Changyu in China and Concha y Toro in Chile) are about &lt;strong&gt;67%&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So the weighted line mostly tells you how a few large producers did. The equal-weight line tells you how the typical listed wine company did. Over these three months those two stories are different: the headline is up and beating world stocks, while the average company is down.&lt;/p&gt;

&lt;p&gt;Neither number is wrong. They answer different questions, and a single headline number hides which question it answered.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the comparison is built
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The index is market-cap weighted; the equal-weight companion gives each company 1/N at the base date and, from now on, resets to 1/N at the last session of each calendar quarter (first reset 31 December 2026).&lt;/li&gt;
&lt;li&gt;The world line is the market price of a listed ETF, rebased to 100 on the same day. It is a reference line, not a licensed index.&lt;/li&gt;
&lt;li&gt;Levels before 3 July 2026 are back-calculated from today's companies, so they leave out firms that failed or delisted. That is why this note only uses the live period since the base date.&lt;/li&gt;
&lt;li&gt;The full method is versioned and has a DOI: &lt;a href="https://doi.org/10.5281/zenodo.23092835" rel="noopener noreferrer"&gt;10.5281/zenodo.23092835&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get the data
&lt;/h2&gt;

&lt;p&gt;Both series and the comparison are free to use with attribution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Index page with the "Equal weight" and "World ETF" toggles: &lt;a href="https://boomcellar.com/indices/wine?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-wine-equal-weight" rel="noopener noreferrer"&gt;boomcellar.com/indices/wine&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Downloads and data dictionary: &lt;a href="https://boomcellar.com/data?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=bc-wine-equal-weight" rel="noopener noreferrer"&gt;boomcellar.com/data&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;JSON: &lt;code&gt;https://boomcellar.com/api/series/wine?vs=world&lt;/code&gt; and &lt;code&gt;https://boomcellar.com/api/series/wine-ew&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want the monthly read of these numbers in your inbox, the Brief sign-up is on the index page.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Information, not investment advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>opendata</category>
      <category>finance</category>
      <category>data</category>
    </item>
    <item>
      <title>Six questions to read your crypto company against the 2026 public record</title>
      <dc:creator>Jukka Blomberg</dc:creator>
      <pubDate>Tue, 29 Sep 2026 00:34:28 +0000</pubDate>
      <link>https://dev.to/jukkablomberg/six-questions-to-read-your-crypto-company-against-the-2026-public-record-2ojl</link>
      <guid>https://dev.to/jukkablomberg/six-questions-to-read-your-crypto-company-against-the-2026-public-record-2ojl</guid>
      <description>&lt;p&gt;&lt;em&gt;Built from &lt;a href="https://northpoint.fi/state-of-crypto-marketing-2026?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=socm-2026-questions" rel="noopener noreferrer"&gt;State of Crypto Marketing 2026&lt;/a&gt;, NorthPoint's free report on 27 crypto companies and 17 agencies over the twelve months to 31 August 2026. Every number below is the report's own; page numbers refer to the PDF.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The report reads 27 companies from the outside. You can read your own company the same way in under an hour — only public sources, and silence counts as silence. Six questions, each with the number you are being compared against.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Does your European acquisition page say what you are allowed to do?
&lt;/h2&gt;

&lt;p&gt;On 1 July, two of the 27 — Binance and HTX — lost the right to win new customers in Europe. Six licensed exchanges, four of them in the report, ran offers at the customers left behind. The licence became the offer. &lt;em&gt;(p.4)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check:&lt;/strong&gt; open your EU landing page as a stranger. Is the permission you hold visible, or buried in a footer?&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Can you buy search ads in the EU at all?
&lt;/h2&gt;

&lt;p&gt;Google turned the licence register into an advertising condition: no MiCA authorisation, no Search, YouTube or Display ads in the EU. &lt;em&gt;(p.4)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check:&lt;/strong&gt; if the answer is no, which channel carries the EU plan instead — and is it written down?&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Where did your senior marketers go?
&lt;/h2&gt;

&lt;p&gt;Seven senior Coinbase marketers, including the CMO, joined OpenAI and Anthropic. The senior people did not stay to adopt AI; they went to work for it. &lt;em&gt;(p.7)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check:&lt;/strong&gt; list the last three senior marketing departures and where each one went.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Who described your last cut as "AI"?
&lt;/h2&gt;

&lt;p&gt;Nine of 26 cuts in the period were framed as AI; five in the company's own words. None named marketing. &lt;em&gt;(p.7)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check:&lt;/strong&gt; read your own announcement next to the press coverage of it. Whose word is "AI"?&lt;/p&gt;

&lt;h2&gt;
  
  
  5. How many agencies say you are their client?
&lt;/h2&gt;

&lt;p&gt;Seven of the ten companies any agency names are claimed by two or more agencies — KuCoin by three. Not one company has confirmed any of it. &lt;em&gt;(p.8)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check:&lt;/strong&gt; search your company name on agency case-study pages. Would you confirm each one?&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Have you ever put a number on your marketing?
&lt;/h2&gt;

&lt;p&gt;Eighteen of 27 never have. The three that do file it with the SEC; Coinbase's 2025 figure is $1.06 billion. &lt;em&gt;(p.10)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check:&lt;/strong&gt; is there one public number — spend, team size, or a result — that a reader could cite?&lt;/p&gt;

&lt;h2&gt;
  
  
  If you would rather have it read for you
&lt;/h2&gt;

&lt;p&gt;The report page has a short form: give your site and Jukka sends one page within a day — your line against the report's seven numbers, and the one thing to change first. The report itself stays free and ungated.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://northpoint.fi/state-of-crypto-marketing-2026?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=socm-2026-questions" rel="noopener noreferrer"&gt;northpoint.fi/state-of-crypto-marketing-2026&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dataset and sources (MIT): &lt;a href="https://github.com/jukkablomberg/state-of-crypto-marketing-2026" rel="noopener noreferrer"&gt;github.com/jukkablomberg/state-of-crypto-marketing-2026&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The numbers are the report's; this post was assembled and published by an AI agent on NorthPoint's behalf.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>marketing</category>
      <category>web3</category>
      <category>startup</category>
    </item>
    <item>
      <title>State of Crypto Marketing 2026: seven things from the public record</title>
      <dc:creator>Jukka Blomberg</dc:creator>
      <pubDate>Fri, 25 Sep 2026 00:36:05 +0000</pubDate>
      <link>https://dev.to/jukkablomberg/state-of-crypto-marketing-2026-seven-things-from-the-public-record-90d</link>
      <guid>https://dev.to/jukkablomberg/state-of-crypto-marketing-2026-seven-things-from-the-public-record-90d</guid>
      <description>&lt;p&gt;&lt;em&gt;A one-page summary of the &lt;a href="https://northpoint.fi/state-of-crypto-marketing-2026?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=socm-2026" rel="noopener noreferrer"&gt;State of Crypto Marketing 2026&lt;/a&gt; report, published by NorthPoint on 24 September 2026. The full report is a free PDF; the dataset is MIT-licensed on GitHub. Page numbers refer to the full report.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Seven things a crypto CMO needs to know about 2026
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Two of 27 companies lost the right to win new customers in Europe on 1 July — Binance and HTX.&lt;/strong&gt; Six licensed exchanges, four of them in this report, ran offers at the customers they left behind. &lt;em&gt;(p.4)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini left first&lt;/strong&gt;, four months before Binance, cutting roughly 25% of its staff — and still holds a licence for 29 countries. &lt;em&gt;(p.4)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google turned the licence register into an advertising condition.&lt;/strong&gt; No MiCA authorisation, no Search, YouTube or Display ads in the EU. &lt;em&gt;(p.4)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The senior marketers did not stay to adopt AI — they went to work for it.&lt;/strong&gt; Seven senior Coinbase marketers, including the CMO, joined OpenAI and Anthropic. &lt;em&gt;(p.7)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Part of the AI-layoff story is the press's.&lt;/strong&gt; Nine of 26 cuts were framed as AI; five in the company's own words. None named marketing. &lt;em&gt;(p.7)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seven of the ten companies any agency names are claimed by two or more agencies.&lt;/strong&gt; KuCoin by three. Not one company has confirmed any of it. &lt;em&gt;(p.8)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Eighteen of 27 have never put a number on their marketing.&lt;/strong&gt; The three that do file it with the SEC; Coinbase's 2025 figure is $1.06 billion. Binance publishes its compliance budget and nothing about marketing. &lt;em&gt;(p.10)&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How this was made
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Public sources only.&lt;/strong&gt; No interviews, no anonymous quotes. If it is not public, it is not here.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One dataset.&lt;/strong&gt; Every number comes from one frozen set of files and reconciles to the appendix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Silence stays silence.&lt;/strong&gt; A job we cannot find is not an empty seat. An agency's claim is not a contract.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limits.&lt;/strong&gt; The largest exchanges' careers sites cannot be read by our scan, so the report prints no job counts. The agency panel is crypto-native agencies only. Campaign pages were fetched from outside Europe.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Who and when.&lt;/strong&gt; 27 companies — 11 exchanges, 8 foundations, 5 wallets, 3 other licensed firms — and 17 agencies. Twelve months to 31 August 2026; dataset frozen 10 September 2026, tables re-read 15 September 2026.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Read it, check it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Full report (free PDF) and summary: &lt;a href="https://northpoint.fi/state-of-crypto-marketing-2026?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=socm-2026" rel="noopener noreferrer"&gt;northpoint.fi/state-of-crypto-marketing-2026&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dataset and sources (MIT): &lt;a href="https://github.com/jukkablomberg/state-of-crypto-marketing-2026" rel="noopener noreferrer"&gt;github.com/jukkablomberg/state-of-crypto-marketing-2026&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every line carries its source, so anyone can check it. Corrections welcome, in the open.&lt;/p&gt;

&lt;p&gt;— Jukka Blomberg, &lt;a href="https://northpoint.fi/?utm_source=devto&amp;amp;utm_medium=post&amp;amp;utm_campaign=socm-2026" rel="noopener noreferrer"&gt;NorthPoint&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Summary text is the report's own; this post was assembled and published by an AI agent on NorthPoint's behalf.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>marketing</category>
      <category>datascience</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
