intertwingly

It’s just data

Absentee Ballot Application

Today I recieved a Absentee Ballot application from the Center of Voter Information. It appears legit.

iCalendar explorations

After nearly 20 years away, I found it was surprisingly easy to set up a full development environment on a modern Windows 10 machine. Given a decent browser, terminal, shell, and IDE, the underlying desktop environment turns out not to be much of an impediment.

Prepping a Windows Machine for Development

After nearly 20 years away, I found it was surprisingly easy to set up a full development environment on a modern Windows 10 machine. Given a decent browser, terminal, shell, and IDE, the underlying desktop environment turns out not to be much of an impediment.

React Hooks as Middleware

Unless I'm missing something, I don't see React often used as middleware. There is a subtle, but important, difference between using React as templates and as middleware.

Ubuntu 20.04 on Chromebook

Chromebook's support Linux now. There are instructions on the web that are incomplete and out of date to switch to Ubuntu. This post pulls much of that information together.

Please Pardon the Mess

I've migrated my site to 11ty, a static site generator. I've undoubtedly broken many things in the process.

Realtime Updates of Web Content Using WebSockets

Three mini-demos showing how to implement realtime updates of web pages using WebSockets.

Achieving Response Time Goals with Service Workers

Blending cache and live responses in order to achieve response time goals.

Converting to Vue.js

I’m in the process of converting four Whimsy applications from React.js to Vue; and I’m taking a moment to jot down a list of things I like a lot, things I find valuable, things I dislike (but can work around), and things I’m not using.

On balance, so far I like Vue better than React.js (even ignoring licensing issues) or Angular.js, and am optimistic that Vue will continue to improve.

Badges? We don't need no stinkin' badges!

I found myself included in an IBM Resource Action ("RA").  I’m fine, nothing has changed.  I’m already working with a non-profit, namely the Apache Software Foundation, and find my work there to be very rewarding.

Service Workers - First Impressions

Created by potrace 1.13, written by Peter Selinger 2001-2015 Cache put and match worked right the first time; cache keys not so much. Authentication is a mystery. Outline of future plans, and a call for help.

FacePalm

Automated Publishing with Instant Articles

<description> A summary of your article, in plain text form.

<pubDate> The date of the article’s publication, in ISO-8601 format.

Related: plaintext, May Day, June Bug, Another Month, and numerous others.

Brief history of the ASF Board Agenda tool

the current implementation is a lot more fun to develop and easier to maintain than prior versions.  As an example, if it were decided that the moment the secretary clicked the ‘timestamp` button on the 'Call to order’ page, all comment buttons are to be removed from all windows and all comment modal dialogs are to be closed, this could be implemented using a single if statement as the event is already propagated, and a re-render is already triggered.  All that would be required is to change the conditions under which the comment button appears.

The board agenda tool has been tested on Linux, Mac OS/X, Vagrant, and Docker.  It contains a suite of tests.

Spartan Test Results

I replaced IE results with Spartan results in my urltests.  Other than the user agent string, nothing changed.

Following are selected examples where three out of four of the top browsers agree, identified by the odd browser out:

Ruby2JS 2.0

I’ve released Ruby2JS version 2.0.  Key new features:

The Whimsy Agenda rewrite-in-progress (previously based on Angular.js, now being rebased on React.js) can be used to explore both of these features.

React.rb updates

I’ve made a number of updates to the demos.  The tutorial demo has been updated to do server side rendering.  This means that it is able to be used by clients which either don’t support or have turned off JavaScript. 

The second demo is a calendar.  Unlike the tutorial which is a single file, this application is organized in a manner more consistent with how I expect projects to be organized.

DSL for JavaScript

W]></text> </svg> <p><a href="https://web.archive.org./web/20210616234304/https://twitter.com/jashkenas/status/562635888753377281">Jeremy Ashkenas</a>: <em>&#8220;work towards building a language that is to ES6 as CoffeeScript is to ES5&#8221;&#8230; close, but&#8212;do it for [ES6+HTML+CSS], and you&#8217;ll win ;)</em></p> <p>It occurs to me that there is a shortcut available.&#160; Let a library like React replace [ES6+HTML+CSS].&#160; Then build a <a href="https://web.archive.org./web/20210616234304/http://en.wikipedia.org/wiki/Domain-specific_language">DSL</a> for that library.</p></article><article> <header> <h3><a href="/web/20210616234304/https://www.intertwingly.net/blog/2015/02/02/Web-Components">Web Components</a></h3> </header> <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewbox="0 0 100 100"> <g transform="translate(50,50)"> <circle fill="#00D8FF" r="8"></circle> <g fill="none" stroke="#00D8FF" stroke-width="4"> <ellipse rx="45" ry="17"></ellipse> <ellipse rx="45" ry="17" transform="rotate(60)"></ellipse> <ellipse rx="45" ry="17" transform="rotate(120)"></ellipse> </g> </g> </svg> <p><a href="https://web.archive.org./web/20210616234304/https://twitter.com/brianleroux/status/561594569913950208">Brian Leroux</a>: <em>ES6 and Web Components</em></p> <p>My take is that this talk lumps React in with others based on when it was introduced; but that it is fundamentally different from, say Angular.js as Angular.js is from jQuery.</p></article><article> <header> <h3><a href="/web/20210616234304/https://www.intertwingly.net/blog/2015/01/28/Email-addresses">Email addresses</a></h3> </header> <svg xmlns="http://www.w3.org/2000/svg" width="167" height="60" viewbox="0 0 167 60"> <rect x="32" y="15" fill="#f3b457" rx="3" height="37" width="113"></rect> <g stroke="#FFF" stroke-width="2"> <path d="M38,9c-3,17-11,31-12,33c11,4,21,9,31,15c3-8,5-16,7-24-8-11-17-17-26-24" fill="#64a15a"></path> <path d="M38,9c5,12,8,20,11,30l15-6" fill="#64a15a"></path> <path d="M53,14c10,12,20,24,24,38c10-8,20-16,29-22-1-15-8-23-17-29z" fill="#57a295"></path> <path d="M53,14c13,0,26,2,38,6c0-6,1-13-2-20" fill="#57a295"></path> <path d="M91,33c11-7,22-13,38-15c17,6,16,11,21,17-14,3-25,14-35,23-7-16-16-18-24-25z" fill="#d37736"></path> <path d="M91,33c14-2,26-1,39,0v-14" fill="#d37736"></path> </g> <path d="M4,24l5,4-5,4h7v-8z" fill="#FFF200"></path> <path d="M25,27l-5-3h-16l9,4-9,4h16l5-3z" fill="#d4477e"></path> <path d="M27,28l-4-2h-14l4,2-4,2h14l5-3z" fill="#e55d9c"></path> <path d="M61,27h38l-4,2h-32zM31,27h-28l-3,1l4,1h27zM122,27h33v2h-31z" fill="#303f7a"></path> <path d="M151,31l17-3-17-3c4,2,4,4,0,6" fill="#303f7a"></path> </svg> I have been telling all non-IBMers to not use my ibm.com email address for years, but this advice is routinely ignored.&#160; I&#8217;ve repeated the reaons behind why I ask this enough times that it makes sense for me to post the reasons in one place so that I can point to it.</article><article> <header> <h3><a href="/web/20210616234304/https://www.intertwingly.net/blog/2015/01/22/React-rb">React.rb</a></h3> </header> <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewbox="0 0 100 100"> <g transform="translate(50,50)"> <circle fill="#00D8FF" r="8"></circle> <g fill="none" stroke="#00D8FF" stroke-width="4"> <ellipse rx="45" ry="17"></ellipse> <ellipse rx="45" ry="17" transform="rotate(60)"></ellipse> <ellipse rx="45" ry="17" transform="rotate(120)"></ellipse> </g> </g> </svg> Having determined that Angular.js is overkill for my <a href="https://web.archive.org./web/20210616234304/http://intertwingly.net/blog/2014/12/19/Weblog-Software-Rewrite-Underway">blog rewrite</a>, I started looking more closely at <a href="https://web.archive.org./web/20210616234304/http://facebook.github.io/react/">React</a>.&#160; It occurred to me that I could do better than <a href="https://web.archive.org./web/20210616234304/http://facebook.github.io/jsx/">JSX</a>, so I wrote a <a href="https://web.archive.org./web/20210616234304/https://github.com/rubys/ruby2js">Ruby2JS</a> filter.&#160; Compare for yourself.</article> <aside> <h2>Nav Bar</h2> <nav> <ul> <li><a href="https://web.archive.org./web/20210616234304/http://en.wikipedia.org/wiki/Sam_Ruby">About</a></li> <li><a href="https://web.archive.org./web/20210616234304/http://twitter.com/samruby">Twitter</a></li></ul> </nav> </aside> <footer> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 100 100"> <defs xmlns:xlink="http://www.w3.org/1999/xlink"> <radialgradient id="i1" fx=".4" fy=".2" r=".7"> <stop stop-color="#FE8" offset="0"></stop> <stop stop-color="#D70" offset="1"></stop> </radialgradient> <radialgradient id="i2" fx=".8" fy=".5" xlink:href="#i1"></radialgradient> <radialgradient id="i3" fx=".5" fy=".9" xlink:href="#i1"></radialgradient> <radialgradient id="i4" fx=".1" fy=".5" xlink:href="#i1"></radialgradient> </defs> <g stroke="#940"> <path d="M73,29c-37-40-62-24-52,4l6-7c-8-16,7-26,42,9z" fill="url(#i1)"></path> <path d="M47,8c33-16,48,21,9,47l-6-5c38-27,20-44,5-37z" fill="url(#i2)"></path> <path d="M77,32c22,30,10,57-39,51l-1-8c3,3,67,5,36-36z" fill="url(#i3)"></path> <path d="M58,84c-4,20-38-4-8-24l-6-5c-36,43,15,56,23,27z" fill="url(#i4)"></path> <path d="M40,14c-40,37-37,52-9,68l1-8c-16-13-29-21,16-56z" fill="url(#i1)"></path> <path d="M31,33c19,23,20,7,35,41l-9,1.7c-4-19-8-14-31-37z" fill="url(#i2)"></path> </g> </svg> </footer> </aside> </body> </html> <!-- FILE ARCHIVED ON 23:43:04 Jun 16, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 15:55:56 Nov 05, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.88 exclusion.robots: 0.021 exclusion.robots.policy: 0.012 esindex: 0.011 cdx.remote: 30.333 LoadShardBlock: 256.094 (3) PetaboxLoader3.datanode: 149.966 (4) PetaboxLoader3.resolve: 119.733 (2) load_resource: 133.878 -->