<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Web on Noetic Nought</title>
    <link>https://punchagan.muse-amuse.in/tags/web/</link>
    <description>Recent content in Web on Noetic Nought</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>© 2006-2026 CC-BY-SA-4.0</copyright>
    <lastBuildDate>Fri, 16 Jan 2026 21:37:00 +0530</lastBuildDate>
    <atom:link href="https://punchagan.muse-amuse.in/tags/web/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Safari and invalid HTTP/2 headers</title>
      <link>https://punchagan.muse-amuse.in/blog/safari-and-invalid-http-2-headers/</link>
      <pubDate>Fri, 16 Jan 2026 21:37:00 +0530</pubDate>
      <guid>https://punchagan.muse-amuse.in/blog/safari-and-invalid-http-2-headers/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/punchagan/elfeed-offline/&#34;&gt;Elfeed-offline&lt;/a&gt; currently has a &lt;a href=&#34;https://camlworks.github.io/dream/&#34;&gt;Dream web server&lt;/a&gt; which acts as a proxy server in&#xA;front of Elfeed&amp;rsquo;s Emacs &lt;a href=&#34;https://github.com/skeeto/emacs-web-server/tree/master&#34;&gt;simple-httpd&lt;/a&gt; server.&lt;/p&gt;&#xA;&lt;p&gt;simple-httpd supports HTTP/1.1 protocol, while Dream provides transparent&#xA;upgrading of connections to HTTP/2 — if the client can handle HTTP/2 and the&#xA;connection is using HTTPS, it is transparently upgraded to HTTP/2.&lt;/p&gt;&#xA;&lt;p&gt;My proxying code was too simplistic in forwarding the headers too along with&#xA;the content received from the simple-httpd server. Some of the HTTP/1 headers&#xA;are no longer valid in HTTP/2. And, Safari (and curl) strictly adhere to the&#xA;protocol and fail if there are invalid headers. Curl, for instance, fails with&#xA;the following error:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt; HTTP/2 200&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt; server: simple-httpd (Emacs 30.1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt; date: Fri, 16 Jan 2026 10:57:25 GMT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* Invalid HTTP header field was received: frame type: 1, stream: 1, name: [connection], value: [keep-alive]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* [HTTP2] [1] received invalid frame: FRAME[HEADERS, len=77, hend=1, eos=0], error -531: Invalid HTTP header field was received&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* HTTP/2 stream 1 was not closed cleanly: unknown (err 4294966765)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* Connection #0 to host 192.168.1.5 left intact&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl: (92) Invalid HTTP header field was received: frame type: 1, stream: 1, name: [connection], value: [keep-alive]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This was causing issues for &lt;a href=&#34;https://github.com/Feyorsh&#34;&gt;@Feyorsh&lt;/a&gt; who was trying out elfeed-offline with&#xA;Safari. Thanks for taking the time to debug the problem and for suggesting a&#xA;fix!&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Better styling bookmarklet</title>
      <link>https://punchagan.muse-amuse.in/blog/better-styling-bookmarklet/</link>
      <pubDate>Tue, 07 Jun 2016 14:39:01 +0530</pubDate>
      <guid>https://punchagan.muse-amuse.in/blog/better-styling-bookmarklet/</guid>
      <description>&lt;p&gt;Some sites that I like a lot for their content, have zero styling on them.&#xA;I find it pretty hard to read when the lines are long and I have to read all&#xA;the way on my screen.&lt;/p&gt;&#xA;&lt;p&gt;I had a simple bookmarklet until now that just changed the width of the page.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;getElementsByTagName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;body&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;].&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setAttribute&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;style&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;width: 600px&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://twitter.com/kamalx&#34;&gt;Kamal&lt;/a&gt; shared with me &lt;a href=&#34;http://bettermotherfuckingwebsite.com&#34;&gt;a recommendation&lt;/a&gt; for 7 simple styling rules that will make&#xA;pages easier to read. I liked them, and modified my bookmarklet to use these&#xA;rules now.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;../../images/better-websites.gif&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Drag and drop the link below onto your bookmarks bar if you want to use it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a style=&#34;border: 0.05em dashed; padding: 0.5em;&#34; href=&#39;javascript:void(function(){style = document.createElement(&#34;style&#34;); document.head.appendChild(style); style.sheet.insertRule(&#34;body{ margin:40px auto; max-width:650px; line-height:1.6; font-size:18px; color:#444; padding:0 10px; }&#34;); style.sheet.insertRule(&#34;h1,h2,h3{ line-height:1.2 }&#34;)}())&#39;&gt;Better website&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The code in a readable format is below.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Create new stylesheet&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;// Create the &amp;lt;style&amp;gt; tag&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;style&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;createElement&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;style&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;// Add the &amp;lt;style&amp;gt; element to the page&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;nb&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;appendChild&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;// Add rules from bettermotherfuckingwebsite.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;sheet&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;sheet&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;sheet&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;insertRule&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;body{ margin:40px auto; max-width:650px; line-height:1.6; font-size:18px; color:#444; padding:0 10px; }&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;sheet&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;insertRule&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;h1,h2,h3{ line-height:1.2 }&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;})();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Update &lt;span class=&#34;timestamp-wrapper&#34;&gt;&lt;span class=&#34;timestamp&#34;&gt;[2016-06-07 Tue]&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;: &lt;a href=&#34;https://twitter.com/baali_&#34;&gt;baali&lt;/a&gt; pointed me to Firefox&amp;rsquo;s &lt;a href=&#34;https://support.mozilla.org/en-US/kb/firefox-reader-view-clutter-free-web-pages&#34;&gt;Reader View&lt;/a&gt; which works well too.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Error: Missing one hebrew character</title>
      <link>https://punchagan.muse-amuse.in/blog/error-missing-one-hebrew-character/</link>
      <pubDate>Wed, 21 Nov 2012 00:00:00 +0530</pubDate>
      <guid>https://punchagan.muse-amuse.in/blog/error-missing-one-hebrew-character/</guid>
      <description>&lt;p&gt;Dear owner-of-a-random-web-startup,&lt;/p&gt;&#xA;&lt;p&gt;Thank you for starting your brand new, awesome web service.  But,&#xA;please don&amp;rsquo;t expect me to use it, if you ask me to have a password&#xA;with atleast one upper-case letter, one numeral, one symbol and&#xA;one unicode hindi character and 20 hebrew characters.  Is it&#xA;really so essential to enforce such complicated rules on my&#xA;passwords, making it difficult for me to remember what password I&#xA;used?  Isn&amp;rsquo;t OAuth and OpenID so much easier to use?  If you&#xA;really want to enforce such complex rules on my password, at least&#xA;show the arbitrary rules you enforce on me, at the login prompt too!&lt;/p&gt;&#xA;&lt;p&gt;Sincerely,&#xA;A frustrated-web-monkey&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>org2blog on the web</title>
      <link>https://punchagan.muse-amuse.in/blog/org2blog-on-the-web/</link>
      <pubDate>Sun, 29 Aug 2010 00:00:00 +0530</pubDate>
      <guid>https://punchagan.muse-amuse.in/blog/org2blog-on-the-web/</guid>
      <description>&lt;p&gt;Well, it&amp;rsquo;s been a week of lull on my blog.  Not that I&amp;rsquo;m very&#xA;busy.  But, just didn&amp;rsquo;t have anything to post.  I was feeling jobless&#xA;today and searched the web for org2blog users.  Here is what I found.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;This is a test post from org2blog&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Posting from emacs and org-mode&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Vim vs Emacs, or why it really doesn’t matter&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Posting subtree from org-mode buffer (take 2)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Here’s a test post to wordpress for Org2blog – an Emacs plugin&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Primeiro post usando org2blog&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Emacs中绘图－ ditaa篇&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;org2blog on identi.ca&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Marcel van der Boom &amp;ndash; StatusNet&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
    </item>
    <item>
      <title>I&#39;m back</title>
      <link>https://punchagan.muse-amuse.in/blog/im-back/</link>
      <pubDate>Sat, 17 Jul 2010 00:00:00 +0530</pubDate>
      <guid>https://punchagan.muse-amuse.in/blog/im-back/</guid>
      <description>&lt;p&gt;After a short break, I&amp;rsquo;m back to blogging!&#xA;A few things have changed meanwhile. A lot haven&amp;rsquo;t.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Noetic Nought shall now be called Rustic Reverie.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;The Blogs I read page is now manually populated. More pages might be&#xA;coming soon.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;My web presence has almost been reduced to just this blog. I hope to&#xA;be blogging more often this time around. I guess I&amp;rsquo;ll have shorter&#xA;and more frequent posts. &amp;ldquo;Release early, Release often.&amp;rdquo;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been inspired by Sacha Chua and her wonderful blog. She puts up&#xA;anything that -&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;she may look up in future.&lt;/li&gt;&#xA;&lt;li&gt;could be remotely useful to anybody on this planet.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I like her idea of &amp;ldquo;thinking of writing as sketching&amp;rdquo;. &amp;ldquo;Keep&#xA;repeating yourself, until the core message floats to the top&amp;rdquo;. It&#xA;feels similar to the idea - &amp;ldquo;Release early, Release often.&amp;rdquo;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Also, Thanks to Madhu and Vattam who set an impossibly high standard&#xA;by having their resumes and letters of recommendations and other&#xA;&amp;ldquo;personal&amp;rdquo; stuff on version control on public repositories.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;All my posts will be made from org2blog - a little org-mode based&#xA;client that I hacked up. Emacs and Org-mode all the way! This is the&#xA;first post by me (and probably anybody) from org2blog!&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
    </item>
  </channel>
</rss>
