<?xml version="1.0"?>
<!-- name="generator" content="blosxom/2.0" -->
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">
  <channel>
    <title>e dot dot dot 16 07 2026</title>
    <link>http://www.jamesraposa.com/index.cgi</link>
    <description>e dot dot dot - a mostly about the Internet weblog by James Raposa</description>
    <language>en</language>

  <item>
    <title>Everyone fights over 1Password vs. LastPass and ignores the better pick</title>
    <link>http://www.jamesraposa.com/index.cgi/2026/07/16#auto___everyone_fights_over_1password_vs__lastpass_and_ignores_the_better_pick</link>
    <description>Furnished content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                                            One password manager answers a question the popular ones dodge.                                        &lt;br /&gt;&lt;br /&gt;Read more &lt;a class=&quot;sw_sl&quot; href=&quot;https://www.makeuseof.com/everyone-fights-over-1password-vs-lastpass-ignores-better-pick/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;</description>
  </item>
  <item>
    <title>I don't do any work outside without this gadget</title>
    <link>http://www.jamesraposa.com/index.cgi/2026/07/16#auto___i_don_t_do_any_work_outside_without_this_gadget</link>
    <description>Furnished content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                                            I'm locked in while I'm outside.                                        &lt;br /&gt;&lt;br /&gt;Read more &lt;a class=&quot;sw_sl&quot; href=&quot;https://www.makeuseof.com/i-dont-do-any-work-outside-without-this-gadget-my-bone-conduction-headphones/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;</description>
  </item>
  <item>
    <title>I found this Android Auto feature so useful it made me switch from CarPlay</title>
    <link>http://www.jamesraposa.com/index.cgi/2026/07/16#auto___i_found_this_android_auto_feature_so_useful_it_made_me_switch_from_carplay</link>
    <description>Furnished content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                                            I find the news audio implementation much nicer via Android than iOS.                                        &lt;br /&gt;&lt;br /&gt;Read more &lt;a class=&quot;sw_sl&quot; href=&quot;https://www.makeuseof.com/i-found-this-android-auto-feature-so-useful-it-made-me-switch-from-carplay/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;</description>
  </item>
  <item>
    <title>5 smart home gadgets I consider completely non-negotiable - and why</title>
    <link>http://www.jamesraposa.com/index.cgi/2026/07/16#auto___5_smart_home_gadgets_i_consider_completely_non_negotiable___and_why</link>
    <description>Furnished content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;These smart home gadgets elevate my home and routine. Here's why you may want them too.&lt;br /&gt;&lt;br /&gt;Read more &lt;a class=&quot;sw_sl&quot; href=&quot;https://www.zdnet.com/article/5-smart-home-gadgets-i-consider-completely-non-negotiable-and-why/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;</description>
  </item>
  <item>
    <title>Jim Cramer says he needs 'cold hard' proof that AI is paying off </title>
    <link>http://www.jamesraposa.com/index.cgi/2026/07/16#auto___jim_cramer_says_he_needs__cold_hard__proof_that_ai_is_paying_off</link>
    <description>Furnished content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CNBC's Jim Cramer said he's looking for companies to start showing measurable financial returns from their AI investments.&lt;br /&gt;&lt;br /&gt;Read more &lt;a class=&quot;sw_sl&quot; href=&quot;https://www.cnbc.com/2026/07/15/jim-cramer-needs-proof-ai-paying-off-.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;</description>
  </item>
  <item>
    <title>Microsoft patches record 570 Windows security bugs with two exploited zero days - update now</title>
    <link>http://www.jamesraposa.com/index.cgi/2026/07/16#auto___microsoft_patches_record_570_windows_security_bugs_with_two_exploited_zero_days___update_now</link>
    <description>Furnished content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The July Patch Tuesday Windows update breaks the record for the most security bugs fixed in a single month, with three zero-day flaws and 61 rated critical.&lt;br /&gt;&lt;br /&gt;Read more &lt;a class=&quot;sw_sl&quot; href=&quot;https://www.zdnet.com/article/microsoft-patches-570-vulnerabilities-exploited-zero-days/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;</description>
  </item>
  <item>
    <title>I never leave for vacation without doing these 7 home security checks first</title>
    <link>http://www.jamesraposa.com/index.cgi/2026/07/16#auto___i_never_leave_for_vacation_without_doing_these_7_home_security_checks_first</link>
    <description>Furnished content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Burglars target empty homes, and insurers deny frozen-pipe claims. Here's the tech that solves these issues and others before you leave.&lt;br /&gt;&lt;br /&gt;Read more &lt;a class=&quot;sw_sl&quot; href=&quot;https://www.zdnet.com/article/7-home-security-checks-before-vacation/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;</description>
  </item>
  <item>
    <title>Three ways to write a table in Podlite</title>
    <link>http://www.jamesraposa.com/index.cgi/2026/07/16#auto___three_ways_to_write_a_table_in_podlite</link>
    <description>Furnished content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In my &lt;a href=&quot;https://www.perl.com/article/podlite-comes-to-perl-a-lightweight-block-based-markup-language-for-everyday-use/&quot;&gt;previous article&lt;/a&gt; I introduced Podlite as a block-based markup language. Today I&amp;rsquo;ll zoom into one piece: tables.I write tables in three rough shapes: a few rows of words I&amp;rsquo;m jotting down, a visual grid like a tic-tac-toe board, or a data export I want to embed in a document. Podlite has three syntaxes around the same model, one per shape. The first has several flavors, so let&amp;rsquo;s start with that.&lt;h2 id=&quot;one-model-three-syntaxes&quot;&gt;One model, three syntaxes&lt;/h2&gt;The first syntax is text-mode. It&amp;rsquo;s flexible. The simplest version is &lt;code&gt;=table&lt;/code&gt; followed by rows. Pipes for separators:&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-podlite&quot; data-lang=&quot;podlite&quot;&gt;=table    mouse    | mice    horse    | horses    elephant | elephants&lt;/code&gt;&lt;/pre&gt;&lt;img height=400 width=500 src=&quot;https://www.perl.com/images/three-ways-to-write-a-table-in-podlite/01-plurals.png&quot; alt=&quot;Plurals rendered as a two-column table. Pipes mark column boundaries; no header.&quot;&gt;Plus signs work too, and you can leave cells empty:&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-podlite&quot; data-lang=&quot;podlite&quot;&gt;=table    X | O |   ---+---+---      | X | O   ---+---+---      |   | X&lt;/code&gt;&lt;/pre&gt;&lt;img height=400 width=500 src=&quot;https://www.perl.com/images/three-ways-to-write-a-table-in-podlite/02-tic-tac-toe.png&quot; alt=&quot;Tic-tac-toe board rendered as a 33 grid. Empty cells preserved; horizontal separators (+&amp;mdash;+&amp;mdash;+) mark row boundaries.&quot;&gt;That renders as a tic-tac-toe board. Three rows of three cells, same table model as anything else.When you want a header and a caption, use the delimited form. Add &lt;code&gt;:caption(...)&lt;/code&gt; and put a &lt;code&gt;=====&lt;/code&gt; row under the head:&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-podlite&quot; data-lang=&quot;podlite&quot;&gt;=begin table :caption(&amp;#39;Critters&amp;#39;)    Animal     Legs    Eats    ======     ====    ====    Zebra      4       Cookies    Human      2       Pizza    Shark      0       Fish=end table&lt;/code&gt;&lt;/pre&gt;&lt;img height=400 width=500 src=&quot;https://www.perl.com/images/three-ways-to-write-a-table-in-podlite/03-critters.png&quot; alt=&quot;Critters rendered with bold header and caption. The ===== row marks the previous row as a semantic header.&quot;&gt;The parser handles whitespace, pipes, or plus signs as column boundaries. A &lt;code&gt;=====&lt;/code&gt; line marks the previous row as a header. I reach for this form first when I&amp;rsquo;m typing into a notebook. It stays readable as I edit, and it survives copy-paste from a terminal.The second syntax is structured. Use it when you need cell spans, semantic markup, or rich content in cells. Each row and each cell becomes its own block. The &lt;code&gt;=====&lt;/code&gt; line becomes a &lt;code&gt;:header&lt;/code&gt; attribute on the row:&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-podlite&quot; data-lang=&quot;podlite&quot;&gt;=begin table :caption(&amp;#39;My coffee morning&amp;#39;)=begin row :header=cell Step=cell Tool=cell Time=end row=begin row=cell Grind=cell Burr grinder=cell 20s=end row=begin row=cell Brew=for cell :colspan(2)Aeropress, 90 seconds with bloom=end row=end table&lt;/code&gt;&lt;/pre&gt;&lt;img height=400 width=500 src=&quot;https://www.perl.com/images/three-ways-to-write-a-table-in-podlite/04-coffee-morning.png&quot; alt=&quot;My coffee morning rendered as a structured table. The Brew step spans the Tool and Time columns via :colspan(2).&quot;&gt;A cell can hold any Podlite block: a paragraph, a code block, a picture, an embedded diagram. This call was made early in the spec: tables in Podlite are not a visual feature, they are containers that render as a grid.The third syntax is data-driven. If the numbers are short enough to live in the document, put them directly inside a &lt;code&gt;=data-table&lt;/code&gt; block:&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-podlite&quot; data-lang=&quot;podlite&quot;&gt;=begin data-table :caption(&amp;#39;Build status&amp;#39;) :mime-type&amp;lt;&amp;#39;text/csv; header=present&amp;#39;&amp;gt;component,statusparser,greenrenderer,greenplayground,yellow=end data-table&lt;/code&gt;&lt;/pre&gt;&lt;img height=400 width=500 src=&quot;https://www.perl.com/images/three-ways-to-write-a-table-in-podlite/05a-build-status.png&quot; alt=&quot;Build status rendered from inline CSV. The =data-table body holds the data; header=present marks the first row as a header.&quot;&gt;Some data has its own life: a CSV export, a TSV log, anything that exists before the document does. Keep it in a separate &lt;code&gt;=data&lt;/code&gt; block and reference it via &lt;code&gt;:src&lt;/code&gt;. If the data starts with column labels, mark them with the &lt;code&gt;header=present&lt;/code&gt; parameter from RFC 4180 3:&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-podlite&quot; data-lang=&quot;podlite&quot;&gt;=for data-table :src&amp;lt;data:walks&amp;gt; :caption(&amp;#39;Walks this month&amp;#39;)=begin data :key&amp;lt;walks&amp;gt; :mime-type&amp;lt;&amp;#39;text/tab-separated-values; header=present&amp;#39;&amp;gt;datedistancenote2026-04-125kmmorning fog2026-04-153kmpark loop2026-04-228kmcoastal trail=end data&lt;/code&gt;&lt;/pre&gt;&lt;img height=400 width=500 src=&quot;https://www.perl.com/images/three-ways-to-write-a-table-in-podlite/05-walks-this-month.png&quot; alt=&quot;Walks this month rendered with a semantic header. The date/distance/note row is marked via the header=present parameter from RFC 4180 3.&quot;&gt;The &lt;code&gt;=data&lt;/code&gt; block holds raw TSV: tab-split, no quoting, which is what most TSV tools emit. Tools that walk the document read the structured data directly, and readers see the rendered table from the same source.&lt;h2 id=&quot;when-tables-break&quot;&gt;When tables break&lt;/h2&gt;Tables break in real documents. A copy-paste loses a column, two rows pick different separators, a CSV cell holds an unmatched quote. The Podlite spec defines four rules so the parser warns you instead of silently corrupting the document:&lt;ul&gt;&lt;li&gt;Per-line separator detection. Each row decides its separator from what it sees.&lt;/li&gt;&lt;li&gt;Cell count validation. Short rows pad with empty cells, long rows truncate. Both produce a warning.&lt;/li&gt;&lt;li&gt;Mixed-separator warning. Pipes in the header and whitespace in data still work, but you get a warning.&lt;/li&gt;&lt;li&gt;CSV recovery. Missing data renders an empty table. A non-CSV MIME type falls back to a &lt;code&gt;=code&lt;/code&gt; block so the content stays visible.&lt;/li&gt;&lt;/ul&gt;I&amp;rsquo;d rather see a warning in the console than ship a document with a dropped row.&lt;h2 id=&quot;try-it&quot;&gt;Try it&lt;/h2&gt;Paste any of these examples into &lt;a href=&quot;https://pod6.in&quot;&gt;pod6.in&lt;/a&gt;. The playground renders Podlite live, no install needed. The full table grammar lives in the &lt;a href=&quot;https://podlite.org/specification&quot;&gt;Podlite specification&lt;/a&gt;.If you build something with this, or hit a case the spec does not cover, open a discussion at &lt;a href=&quot;https://github.com/podlite/podlite-specs/discussions&quot;&gt;podlite-specs&lt;/a&gt;.Thanks for reading,Alex&lt;br /&gt;&lt;br /&gt;Read more &lt;a class=&quot;sw_sl&quot; href=&quot;https://www.perl.com/article/three-ways-to-write-a-table-in-podlite/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;</description>
  </item>
  <item>
    <title>Jim Cramer questions whether Wednesday's rally in Big Tech will have staying power</title>
    <link>http://www.jamesraposa.com/index.cgi/2026/07/16#auto___jim_cramer_questions_whether_wednesday_s_rally_in_big_tech_will_have_staying_power</link>
    <description>Furnished content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CNBC's Jim Cramer warned that Wednesday's rally in tech may have gotten carried away from fundamentals.&lt;br /&gt;&lt;br /&gt;Read more &lt;a class=&quot;sw_sl&quot; href=&quot;https://www.cnbc.com/2026/07/15/jim-cramer-wednesday-rally-big-tech-staying-power.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;</description>
  </item>
  <item>
    <title>Alibaba and Baidu shares jump in Hong Kong on Apple AI partnership </title>
    <link>http://www.jamesraposa.com/index.cgi/2026/07/16#auto___alibaba_and_baidu_shares_jump_in_hong_kong_on_apple_ai_partnership</link>
    <description>Furnished content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The technological rivalry between China and the U.S. has intensified, as they race for AI dominance.&lt;br /&gt;&lt;br /&gt;Read more &lt;a class=&quot;sw_sl&quot; href=&quot;https://www.cnbc.com/2026/07/16/alibaba-baidu-shares-jump-apple-ai-partnership-.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;</description>
  </item>
  </channel>
</rss>