Tag: a-la-carte
News
Pulito and VanillaJS updated to webpack 4
Both Pulito and VanillaJS have updated to webpack 4.
Additionally both have moved from yarn to npm. While npm still isn’t as fast as yarn, the support for package-lock.json files and increased attention to security and speed are worth the tradeoff.
News
VanillaJS apps have been ported to a la carte web development
My VanillaJS project, where I re-implement popular framework sample apps in vanilla JavaScript, has now been ported over to ‘a la carte’ web development. In this case that means they all use pulito for their tooling and directory structure, and individual framework ports bring in templating libaries as needed. For example, the React sample rewrite uses lit-html for templating, and the Angular sample rewrite uses hyperHTML for templating.
This is a perfect example of the power of a la carte web development, where you get to pick the components you want and only have to ‘pay’ for what you use.
News
A la carte Web Development
Stop using JS Frameworks is something I’ve been advocating for years now, and a legitimate question I get is what do you replace it with?
The answer is “a la carte” web development.
Instead of picking a monolithic solution like a web framework, you just pick the pieces you need. I don’t mean any old random pieces, below I am going to outline specific criteria that need to be met for some components to participate in a la carte web development.
Tag: climate-change
News
The Great Famine of 1315-1317
Great Famine The Great Famine of 1315-1317 only lasted two years, was no where close to the change in climate that we are looking in the face right now, and it wiped out 10-25% of the population.
To provide some measure of relief, the future was mortgaged by slaughtering the draft animals, eating the seed grain, abandoning children to fend for themselves (see “Hansel and Gretel”) and, among old people, voluntarily refusing food for the younger generation to survive.
News
Hot Take
Here are a few articles that are good background on what I am about to talk about:
The Planet Has Seen Sudden Warming Before. It Wiped Out Almost Everything. The Insect Apocalypse Is Here Here’s How Far the World Is From Meeting Its Climate Goals In my opinion, after watching climate change research for years and watching the effects of climate change arrive faster than predicted, and the continual shortening of timelines for climate change effects, and the fact that we are nowhere close to cutting emissions fast enough, I firmly believe that climate change is an existential threat to humans and that we need to start researching geoengineering strategies for cooling the planet today.
Tag: definitions
News
Public Service Announcement: Wealth Induced Tech Bro Sociopathy
Do you, or someone you know, suffer from the following symptoms?
Willful ignorance of history because doing otherwise might impact your bottom line? Mark Zuckerberg
Do you equate self-driving cars with dismembering journalists? Uber
Do you take umbrage at women’s suffrage? Peter Theil
Is your name Marc Andreessen?
Then you might be suffering from Wealth Induced Tech Bro Sociopathy, an old disease currently experiencing an outbreak in Silicon Valley.
News
Time Crimp
Defn: Time Crimp, Temporal Crimp, or simply Crimp A term that describes the compression of time during a crisis. During times of crisis events unfold with a speed unthinkable outside a crisis. Vaccines for Covid-19 may be available in a year or two, as opposed to the normal development timeline of decades. Sweeping changes to zoning laws that would normally have been impossible, or at least taken years to get approved are done in a matter of days.
News
Murkowski
Murkowski verb
To express "concern" about something you have no intention of doing anything about. Derived from Senator Lisa Murkowski who claimed she was "concerned" about about President Trumps behavior but still decided to vote against impeaching him. Four months later Trump was tear-gassing peaceful protesters. Example usage: "Wow, Zuckerburg totally Murkowski'd on Trump's violent rhetoric." See also: Duplicitious.
News
Meritocracy
Meritocracy A system in which venture capitalists give large sums of money to 20-something male Stanford graduates in computer science.
News
Hi-REST, Lo-REST and Everything-in-between-REST
So Don Box has unintentionally coined terms for a couple different kinds of REST.
Lo-REST Just using GET and POST like HTML does today. Hi-REST Using all four methods (GET, PUT, POST and DELETE) like the Atom Publishing Protocol. By why stop there? How about an intermediate level that just uses three methods?
Somewhere-in-the-middle-REST Using just three methods (GET, PUT, and DELETE).
News
GETSful
GETSful (adj.) Derogatory Any web services protocol that claims to be RESTful but only uses GET for everything. See, for example, del.icio.us and 30boxes.
Tag: economics
News
Concentrated corporate power as a threat to democracy
In this essay, I will argue that the interaction of concentrated corporate power and politics it a threat to the functioning of the free market economy and to economic prosperity it can generate, and a threat to democracy as well.
Towards a Political Theory of the Firm (PDF).
Glad to see the Chicago School of Economics trying to resuscitate their image after the previous damage they’ve done.
News
simplifying income
Bill Gates
In terms of revenue collection, you wouldn’t want to just focus on the ordinary income rate, because people who are wealthy have a rounding error of ordinary income.
I would love to see the U.S. do away with categories of income (income, earned interest, capital gains, etc) and make it all just one bucket and tax that at a progressive rate.
News
CEO Pay
I’ve said the Harvard MBA is the most second most damaging thing to happen to business in the last 40 years. I might have to clarify that to “the myth of the Harvard MBA is the second most damaging thing to happen to business in the last 40 years”.
We found no statistically significant alphas — despite testing every possible school with a reasonable sample size. MBA programs simply do not produce CEOs who are better at running companies, if performance is measured by stock price return.
News
I'm not done trickling on you!
Look at poor Ken, so freaked out that everyone is talking about taxes. Obviously a firm believer in trickle-down economics, his entire screed boils down to:
Don’t tax me, bro! I’m not done trickling on you!
Ironically he refers to Bill Gates, who appears not to agree with Ken at all.
To get the full context it’s useful to watch the video from the beginning where Historian Rutger Bregman schools Michael Dell on his ignorant comment about a top marginal tax rate of 70%:
News
The real value of a 70% top marginal tax rate
The last time we had a 70% top marginal tax rate in the U.S. it generated very little revenue. That doesn’t mean it failed, that means it was doing it’s job, as explained in The opportunity cost of firm payouts.
News
Tim O'Reilly on Silicon Valley
The fundamental problem with Silicon Valley’s favorite growth strategy is great article by Tim O’Reilly on the fundamental harm Silicon Valley’s single-minded pursuit of unicorns does to the whole economy.
News
Nine steps for Facebook
Facebook must be restructured. The FTC should take these nine steps now
This was published back in March of 2018, but it’s still a good list of things that should be done.
News
Oligopoly collusion
Don’t you just love it when oligopolies collude?
{:title=“Alaska Airlines giving preferential treatment to Facebook and Apple."}
Imagine you were a small startup with a new idea for a chat application. How could you ever compete with this? Is there any wonder there’s a startup slump?
News
Welcome to your Corporatocracy
The Monopolization of America:
On Monday, the Open Markets Institute — an anti-monopoly think tank — is releasing the first part of a data set showing the market share that the largest companies have in each industry.
Nothing surprising there, unless you didn’t realize you lived in a corporatocracy/oligarchy and not a functioning democracy.
News
Lina Khan on antitrust and Amazon
This Yale Law Journal Note from Lina M. Khan on Amazon’s Antitrust Paradox is an amazing read on several levels.
First, the case it makes against Amazon is impressive, shining a light on quite a few unsavory things Amazon has done over the years.
Second, she then expands that case to the rest of the tech giants.
Third, for a Note in the Yale Law Journal, the entire thing is very readable.
News
Hold my beer
When I first started working I told everyone I could that I thought that the single most damaging entity to the American economy was the Harvard Business School. Little did I know that the University of Chicago Economics Department was like, “Hold my beer.”
News
Space Gas Station
This SingularityHub post brings a good perspective on the economics of asteroid mining: Want Faster Data and a Cleaner Planet? Start Mining Asteroids
Besides, the idea of our gateway to becoming a space faring civilization being bootstrapped from a space gas station is so much more Expanse level scifi that I can’t help but like it.
News
North Carolina Urbanization and Rural Flight
The rural areas of North Carolina are emptying out. .tooltip { position: absolute; width: 200px; height: 28px; pointer-events: none; } text { font-size: 15px; } North Carolina County Population vs Count Population Growth Rate (2010 - 2014).Click on the graph to toggle between population density and county population. North Carolina is not immune to Rural Flight, nor is it a special victim, as the phenomenon is happening world wide.
News
Tech Driven Deflation
The article Will Tech-Driven Deflation Export Japan’s Economic Woes to the World?reminded me of this video, "Evolution of the Desk": The origin for the above video is http://bestreviews.com/electronics#evolution-of-the-desk. Each time an object gets digitized that's one less object to manufacture, one less object to ship, one less object consuming raw materials. It's actually more surprising that this hasn't had an even larger impact on the U.
News
Pat McCrory in the context of elite overproduction.
As we head into the fourth week of Pat McCrory's failure to conceeed in the NC gubernatorial race, it's important to look at McCrory's infantile behavior in a larger context. While it would be tempting to try to psychoanalyze his continued intransigence as yet another man-child temper tantrum, there are larger forces at work, of which McCrory is just one sad symptom. The root of the problem stems from the ever widening wealth gap and subsequent elite overproduction.
News
Surely we've seen this before. Not.
You might think that as the U.S. moves from an industrial and manufacturing based economy to a knowledge based economy that we surely have weathered similar tranistions. For example, as we moved from an agricultural economy to a manufacturing based one. While we did indeed weather the same changes, the vital difference is the timescale over which those changes took place. As you can see from this data on agricultural employment, we did experience a loss of 6 million agricultural jobs over a 50 year period from 1910 to 1960.
News
Safe Harbor for Negative Externalities
Negative externalities are the bane of a market economy. Those wider costs to products and services that aren’t included in the actual cost of a item can wreak major havoc on society and almost always result in years of litigation, lawmaking, and acrimony between businesses and government. So what exactly is an negative externality? Let’s start with the definition of externality from Wikipedia: In economics, an externality (or transaction spillover) is a cost or benefit, not transmitted through prices[1], incurred by a party who did not agree to the action causing the cost or benefit.
Tag: formats
News
A failure of formats
A failure of formats I have a very long diatribe on the state of document editors that I am working on, and almost anyone that knows me has heard parts of it, as I frequently rail against all of them: MS Word, Google Docs, Dropbox Paper, etc. In the process of writing up my screed I started thinking what a proper document format would look like and realized the awfulness of all the current document formats is a much more pressing problem than the lack of good editors.
News
Inline Forms
Based on a Twitter discussion about optimizing the performance of web apps, I implemented a very crude polyfill for an idea I recently had.
HTML forms support multiple target values, i.e. where should the result of submitting the form be displayed, but there is no value for of target for inline, that is, you submit the form and instead of the whole page refreshing the server returns HTML that takes the place of the Form contents.
Tag: geometric-algebra
News
Geometric Algebra
Table of contents An Introduction to Geometric Algebra over R^2 Geometric Algebra applied to Physics The Shoelace Formula via Geometric Algebra
News
The Shoelace Formula via Geometric Algebra
img { vertical-align: baseline; } th { background: #fff; } body { counter-reset: h3; } h3 { counter-reset: h4; } h4 { counter-reset: h5; } h5 { counter-reset: h6; } h3:before { counter-increment: h3; content: counter(h3) '. '; } h4:before { counter-increment: h4; content: counter(h3) '.' counter(h4) '. '; } h5:before { counter-increment: h5; content: counter(h3) '.' counter(h4) '.' counter(h5) '. '; } h6:before { counter-increment: h6; content: counter(h3) '.
News
Geometric Algebra applied to Physics
img { vertical-align: baseline; } th { background: #fff; } Geometric Algebra can be applied to Physics, and many of the introductions to GA online cover this, but they immediately jump to electromagnetic fields or quantum mechanics, which is unfortunate since GA can also greatly simplify 2D kinematics. One such example is uniform circular motion. You should be familiar with all the concepts presented in An Introduction to Geometric Algebra over R^2before proceeding.
News
An Introduction to Geometric Algebra over R^2
img { vertical-align: baseline; } th { background: #fff; } body { counter-reset: h3; } h3 { counter-reset: h4; } h4 { counter-reset: h5; } h5 { counter-reset: h6; } h3:before { counter-increment: h3; content: counter(h3) '. '; } h4:before { counter-increment: h4; content: counter(h3) '.' counter(h4) '. '; } h5:before { counter-increment: h5; content: counter(h3) '.' counter(h4) '.' counter(h5) '. '; } h6:before { counter-increment: h6; content: counter(h3) '.
Tag: google
News
gcsfuse and systemd --user
Google Cloud Storage has an officially supported fuse client!
This is something I have always wanted and would have expected for Google Drive, but 🤷.
The only thing better than a fuse client is a fuse directory that gets mounted automatically when you log in, which you can do fairly simply using systemd --user, which is just systemd, but everthing runs as you.
Here’s a gist of how I set this up on my machine:
News
Google SRE Book and Workbook
I never realized the detail that the Google SRE book provided on the production environment at Google, including such things as D, Colossus, Jupiter, BNS, and GSLB.
Also there’s now The Site Reliability Workbook, a hands-on implementation guide.
News
Firebase Hosting
Firebase Hosting is amazing, so fast and easy to setup and they even take care of the SSL cert for you. I work for Google and didn’t even know we had this as a product, so just posting it here in case anyone else missed it.
News
Google Cloud Free Tier
Looks like Google Cloud Platform now has a Free Tier. I know Google App Engine has always had a free tier, it’s nice to see Cloud Platform offer something similar.
That explains why my monthly bill for hosting my blog went from $9/month to around 0.75$/month. The only thing I exceed the free tier on is egress bandwidth.
News
gRPC
Today Google launched gRPC, a new HTTP/2 and Protocol Buffer based system for building APIs. This is Google's third system for web APIs. The first system was Google Data, which was based on the Atom Publishing Protocol [RFC 5023]. It was an XML protocol over HTTP. The serving system for that grew, but started to hit scalability issues at around 50 APIs. The scaling issues weren't in the realm of serving QPS, but more in the management of that many APIs, such as rolling out new features across all APIs and all clients.
Tag: history
News
The Great Famine of 1315-1317
Great Famine The Great Famine of 1315-1317 only lasted two years, was no where close to the change in climate that we are looking in the face right now, and it wiped out 10-25% of the population.
To provide some measure of relief, the future was mortgaged by slaughtering the draft animals, eating the seed grain, abandoning children to fend for themselves (see “Hansel and Gretel”) and, among old people, voluntarily refusing food for the younger generation to survive.
Tag: humor
News
Public Service Announcement: Wealth Induced Tech Bro Sociopathy
Do you, or someone you know, suffer from the following symptoms?
Willful ignorance of history because doing otherwise might impact your bottom line? Mark Zuckerberg
Do you equate self-driving cars with dismembering journalists? Uber
Do you take umbrage at women’s suffrage? Peter Theil
Is your name Marc Andreessen?
Then you might be suffering from Wealth Induced Tech Bro Sociopathy, an old disease currently experiencing an outbreak in Silicon Valley.
News
Colostomy Takedown
This colostomy takedown surgery is the second in the pair of surgeries I have had this year. If you would like to read the story of how I came to need a colostomy takedown please read A thing that happened.
As opposed to the first surgery which was done as an emergency procedure, this was a planned surgery, which made a world of difference. We were able to research and hire a patient advocate to stay with me a few nights, apply for short term disability before the surgery, etc.
News
Arts and crafts
When you have a stoma every day is arts and crafts day.
I swear I’ve modified more articles of clothing than my sister did during her entire teenage life in the 80s.
News
More TMI recovery stories
This is another story from my recovery that might be TMI for some people. Read with caution, or skip.
So while describing my initial hospitalization I mentioned an open question:
What exactly my anus is supposed to be doing for those three months is a question I forget to ask.
And now I know from the questions and comments I’ve received that many of you are curious too.
News
Three weeks out
It’s now been close to three weeks since my emergency surgery and I am recoving slowly. As I’ve gotten better I’ve progressed through the three stages of TV watching:
Can’t watch TV, too much activity and sound. I could sit here and watch David Attenborough for days on end. If I watch any more TV my brain is going to melt and flow out through my ears. BTW, what happened to cooking shows on TV?
News
A thing that happened
So here I am on a Tuesday morning, in the bathroom, getting ready for work while my wife still sleeps. The only context you need for what’s about to happen next is that my intestines had been a little sore the previous two days and that last year I found out that I had diverticulosis. The latter found because when you turn 50 you get a free colonoscopy. I really don’t think there is a more apt metaphor for turning 50 than a free colonoscopy.
News
Meritocracy
Meritocracy A system in which venture capitalists give large sums of money to 20-something male Stanford graduates in computer science.
News
The Federalist Society
The Federalist Society The coonskip cap and musket branch of constitutional scholars.
News
Slithering silently into political obscurity
You know what my favorite non-sound from the mid-term elections is? Paul Ryan slithering silently into political obscurity.
News
Hold my beer
When I first started working I told everyone I could that I thought that the single most damaging entity to the American economy was the Harvard Business School. Little did I know that the University of Chicago Economics Department was like, “Hold my beer.”
News
Silicon Valley Libertarianism - An Obituary
Facebook’s Role in Data Misuse Sets Off Storms on Two Continents
On March 18th, 2018 Libertarianism, aka the #Just-Trust-In-The-Giant-Corporations movement, died of a self-inflicted gun wound to the head. In lieu of flowers, please send regulators to look after your citizens privacy.
News
GOP Climate Change Denial Timeline
Building on The Republican race: Five degrees of climate denial, extended to the full seven stages: Stage 1: Denial Pre 2010 - The climate is not changing. Stage 2: Ignorance 2010 - The climate might be changing, or it might not, we just don't know. Stage 3: GAIA Bashing 2014 - Climate change is real, but it’s natural. Stage 4: We so tiny 2016 - Climate change is real, but humans aren't the primary cause.
News
Self-conscious
I've been a little self-conscious about our Christmas decorations this year. Because of a family vacation earlier this year we didn't get to put up Halloween decorations until the day before Halloween, and even then it was a pretty paltry showing. We also didn't get to run our haunted house, which was a big disappointment to the rest of the neighborhood. We had no idea we'd become such an institution, but we heard from many of the trick-or-treaters that they were looking forward to it.
News
Septoplasty
I have been absent for the majority of the past three weeks due to various family medical issues. Everyone is OK now and I'm back to work. Part of the time I was out was because I had surgery, a septoplasty and turbinate reduction. Let me tell you about that surgery. Oh, if you are squeamish you should stop reading now.
Really, just stop now.
You've been warned.
Tag: maker
News
Inertial Balance
What to do when it's late at night and your high schooler says his table wasn't able to complete their physics lab today because they were missing equipment, and the teacher said, maybe half jokingly, that they could complete the lab at home if they didn't finish it in class? That's right, you build experimental equipment in your garage. This is the Interial Balance we built from scratch using two hacksaw blades.
News
Halloween Dragon
We do large displays for Halloween, usually involving converting the garage into a haunted house. They're major undertakings, with four or more actors, so we only do them every other year. I also try to roll a "build" into every Halloween. For example, 6 years ago I built this as part of the haunted house: And two years ago the same skeleton got taken out of the jail and laid out on a table, this time animated with pneumatics.
News
Dragon Sound Effects Web Audio API
.controls button:hover { background: #eee; } .controls button { padding: 1em; background-color: white; border: solid gray 1px; } A sound effects board with the sounds of a dragon built using the Web Audio API. Because Halloween. Start Snoring Stop Snoring Sniff Roar Chains: [Source] Roar: [Source] Sniff: [Source] Snore: [Source] Code function onload() { var audioCtx = new (window.
News
Halloween Skelton
If time permits for Halloween I like to try to build some sort of prop for our yearly haunted house. This year we moved the haunted house out of the shed and into the garage, and the prop I built was a jailed skeleton, rattling the bars to get out: The skeleton and chain come from our healthy stock of Halloween materials, but the rest of the system was built out of materials I had around the house.
Tag: medical
News
Colostomy Takedown
This colostomy takedown surgery is the second in the pair of surgeries I have had this year. If you would like to read the story of how I came to need a colostomy takedown please read A thing that happened.
As opposed to the first surgery which was done as an emergency procedure, this was a planned surgery, which made a world of difference. We were able to research and hire a patient advocate to stay with me a few nights, apply for short term disability before the surgery, etc.
News
Arts and crafts
When you have a stoma every day is arts and crafts day.
I swear I’ve modified more articles of clothing than my sister did during her entire teenage life in the 80s.
News
More TMI recovery stories
This is another story from my recovery that might be TMI for some people. Read with caution, or skip.
So while describing my initial hospitalization I mentioned an open question:
What exactly my anus is supposed to be doing for those three months is a question I forget to ask.
And now I know from the questions and comments I’ve received that many of you are curious too.
News
Three weeks out
It’s now been close to three weeks since my emergency surgery and I am recoving slowly. As I’ve gotten better I’ve progressed through the three stages of TV watching:
Can’t watch TV, too much activity and sound. I could sit here and watch David Attenborough for days on end. If I watch any more TV my brain is going to melt and flow out through my ears. BTW, what happened to cooking shows on TV?
News
A thing that happened
So here I am on a Tuesday morning, in the bathroom, getting ready for work while my wife still sleeps. The only context you need for what’s about to happen next is that my intestines had been a little sore the previous two days and that last year I found out that I had diverticulosis. The latter found because when you turn 50 you get a free colonoscopy. I really don’t think there is a more apt metaphor for turning 50 than a free colonoscopy.
News
Septoplasty
I have been absent for the majority of the past three weeks due to various family medical issues. Everyone is OK now and I'm back to work. Part of the time I was out was because I had surgery, a septoplasty and turbinate reduction. Let me tell you about that surgery. Oh, if you are squeamish you should stop reading now.
Really, just stop now.
You've been warned.
Tag: openid
News
OpenID Connect for US Citizens
Is there an OpenID Connect for US Citizens run by the US government? I’m not sure why I’ve been thinking a lot about such a utility lately. )
Tag: pandemic
News
Adapting to new patterns in the pandemic.
It’s amazing to me how quickly something can become a habit; After only a couple months of one-way aisles, this weekend I was a little rattled with two-way traffic in the grocery store.
For context, North Carolina entered Phase II of our opening on Friday.
Tag: politics
News
Alone in the White House
From June of 2017, this Tweet has aged like a fine wine:
He eventually fires everyone. Just him, alone, on Twitter, in the WH. And the person that brings him his soda, that person never gets fired. https://t.co/eVISOqQw5i
— Joe Gregorio (@bitworking) June 6, 2017
News
The Federalist Society
The Federalist Society The coonskip cap and musket branch of constitutional scholars.
News
Slithering silently into political obscurity
You know what my favorite non-sound from the mid-term elections is? Paul Ryan slithering silently into political obscurity.
News
North Carolina Urbanization and Rural Flight
The rural areas of North Carolina are emptying out. .tooltip { position: absolute; width: 200px; height: 28px; pointer-events: none; } text { font-size: 15px; } North Carolina County Population vs Count Population Growth Rate (2010 - 2014).Click on the graph to toggle between population density and county population. North Carolina is not immune to Rural Flight, nor is it a special victim, as the phenomenon is happening world wide.
News
Pat McCrory in the context of elite overproduction.
As we head into the fourth week of Pat McCrory's failure to conceeed in the NC gubernatorial race, it's important to look at McCrory's infantile behavior in a larger context. While it would be tempting to try to psychoanalyze his continued intransigence as yet another man-child temper tantrum, there are larger forces at work, of which McCrory is just one sad symptom. The root of the problem stems from the ever widening wealth gap and subsequent elite overproduction.
News
Surely we've seen this before. Not.
You might think that as the U.S. moves from an industrial and manufacturing based economy to a knowledge based economy that we surely have weathered similar tranistions. For example, as we moved from an agricultural economy to a manufacturing based one. While we did indeed weather the same changes, the vital difference is the timescale over which those changes took place. As you can see from this data on agricultural employment, we did experience a loss of 6 million agricultural jobs over a 50 year period from 1910 to 1960.
News
This is voter suppression.
To get an idea of voter suppression in action let's overlap the The Racial Dot Map with Wake County's early voting locations.
News
GOP Climate Change Denial Timeline
Building on The Republican race: Five degrees of climate denial, extended to the full seven stages: Stage 1: Denial Pre 2010 - The climate is not changing. Stage 2: Ignorance 2010 - The climate might be changing, or it might not, we just don't know. Stage 3: GAIA Bashing 2014 - Climate change is real, but it’s natural. Stage 4: We so tiny 2016 - Climate change is real, but humans aren't the primary cause.
Tag: presentations
News
machine learning for continuous integration
Here are the slides for my OSCON presentation Machine Learning for Continuous Integration.
As usual my slides are pretty worthless on their own, except for the links.
Update (24-Sep-2018) Recording is now available:
News
No more JS frameworks
Stop writing Javascript frameworks. Translations: Chinese Japanese Russian Here's the talk, based on this essay, that I gave at OSCON 2015. [Slides] The 100-line templating library presented as a Gist has been cleaned up, documented, and published as the Stamp library. JavaScript frameworks seem like death and taxes; inevitable and unavoidable. I'm sure that if I could be a fly on that wall every time someone started a new web project, the very first question they'd ask is, which JS framework are we using?
News
PyCon - Threading is not a model
Here are my slides (pdf) (OpenOffice) from my presentation "Threading is not a model" from PyCon. Be warned that they aren't very useful, there are no speaker notes and the slides themselves are pretty light on content, except for near the end of the deck where it gets into Stackless Python, Go and IO code examples. If you weren't actually in my talk you should wait for it to appear on pycon.
News
The (lack of) design patterns in Python - PyCon 2009
The video for my design patterns talk at PyCon 2009 has been posted: Which explains the success of lisp - minimal syntax, and a macro system powerful enough to build up additional syntax if necessary. Posted by Chris E on 2009-05-08
Tag: prometheus
News
Prometheus alerts and missing data
Alerting in Prometheus is great, and easy, but one of the gotchas is that there’s no warnings or errors if you write an alert rule and there’s no data for that alert.
Now Prometheus does have the absent() function, and you could tack
OR absent(some_metric_name) == 1 to the end of every alert you write, but that’s tedious and error prone. So I wrote promk-absent a quick little tool on Go to create a set of absence alerts based on an existing set of alerts.
News
Prometheus vs InfluxDB
We just finished migrating all of our monitoring from InfluxDB to Prometheus and I thought I'd write up our reasons for the change. Please note that these are my own personal observations and relate to a specific project, these issue may not apply to you and you should evaluate each product for your own uses. Update: To clarify, the versions of InfluxDB and Prometheus that I am talking about are InfluxDB 1.
Tag: recipe
News
Turkey Recipe
Here's my Roasted Turkey recipe. Click on any picture to bring up the lightbox with captions. new LuminousGallery( document.querySelectorAll('.gallery'), { arrowNavigation: true, }, { caption: function (trigger) { return trigger.
News
Chana Masala Recipe
Here's my Chana Masala recipe. Click on any picture to bring up the lightbox with captions. ul.recipe { display: flex; flex-wrap: wrap; } ul.recipe li { list-style: none; margin: 8px; } .lum-lightbox-caption { color: white; background: black; font-size: 150%; padding: 16px; } new LuminousGallery( document.
News
Spinach Rice Recipe
I've seen Spinach Rice recipes where the spinach is all bright green and fluffy and the rice is brilliant white. That is wrong, and this is not that recipe. If you cook this right the chicken stock combined with the Dill Weed and the carmalized onions will give the dish a nice meaty taste. Click on any picture to bring up the lightbox with captions. new LuminousGallery( document.
News
Pizza Dough Recipe
Doughs really aren't that difficult or finicky, start with some warm water and yeast and mix in flour until you get the right consistency, no precise measuring or scales needed. Click on any picture to bring up the lightbox with captions. new LuminousGallery( document.
News
Baked Stuffed Zucchini Recipe
Here is my Baked Stuffed Zucchini recipe. Click on any picture to bring up the lightbox with captions. ul.recipe { display: flex; flex-wrap: wrap; } ul.recipe li { list-style: none; margin: 8px; } .
News
Meatballs Recipe
My kids have asked me to write up my recipes, but the problem is that for the vast majority of the things I cook are done by eye, so I'm attempting to document them with pictures. Here is my meatballs recipe. Click on any picture to bring up the lightbox with captions. new LuminousGallery( document.
News
Tzatziki Recipe
My kids have asked me to write up my recipes, but the problem is that for the vast majority of the things I cook are done by eye, so I'm attempting to document them with pictures, starting with my Tzatziki recipe. Click on any picture to bring up the lightbox with captions. new LuminousGallery( document.
Tag: space
News
Space Gas Station
This SingularityHub post brings a good perspective on the economics of asteroid mining: Want Faster Data and a Cleaner Planet? Start Mining Asteroids
Besides, the idea of our gateway to becoming a space faring civilization being bootstrapped from a space gas station is so much more Expanse level scifi that I can’t help but like it.
Tag: standards
News
Custom Element Naming
In My approach to HTML web components Jeremy Keith goes into a naming convention for both web components and their attributes.
While I don’t have any opinions on attribute naming, I do have a strong opinion on element names, and that’s if you decide to namespace your elements it should be done using a post-fix and not a pre-fix.
As an example, all the elements we’ve build in Skia Infra are post-fixed with -sk:
News
Inline Forms
Based on a Twitter discussion about optimizing the performance of web apps, I implemented a very crude polyfill for an idea I recently had.
HTML forms support multiple target values, i.e. where should the result of submitting the form be displayed, but there is no value for of target for inline, that is, you submit the form and instead of the whole page refreshing the server returns HTML that takes the place of the Form contents.
News
Looking back on five years of web components
Over 5 years ago I wrote No more JS frameworks and just recently Jon Udell asked for an update.
It's almost 4 years since @bitworking said: "Stop using JS frameworks, start writing reusable, orthogonally-composable units of HTML+CSS+JS." I'm curious, Joe, about what you've since learned, thought about, and done with the idea.https://t.co/zdKjEZfIe3
— Jon Udell (@judell) July 17, 2019 I have been blogging bits and pieces over the years but Jon’s query has given me a good excuse to roll all of that up into a single document.
News
Stream
I’ve launched a new micro-blog at stream.bitworking.org, which has an Atom Feed if you want to follow along. You can also follow along on Mastodon by following @stream.bitworking.org@stream.bitworking.org thanks to https://fed.brid.gy/. Any entries will also appear on Twitter thanks to https://brid.gy. Interactions on any of those sites should flow back to Stream thanks to webmention support via github.com/jcgregorio/webmention-run.
Finally the admin interface to Stream is a PWA that supports the Web Share Target API, which means I can trivially share content to Stream using the native Android Share intent.
News
OpenID Connect for US Citizens
Is there an OpenID Connect for US Citizens run by the US government? I’m not sure why I’ve been thinking a lot about such a utility lately. )
News
Guidelines for creating web platform compatible components
Via Alex Russell, I just found Guidelines for creating web platform compatible components, which further contains a link to The Gold Standard Checklist for Web Components, both of which look like excellent resources when creating custom elements.
This is a good time to mention that work is progressing on elements-sk, a set of neat Vanilla JS custom elements.
News
VanillaJS apps have been ported to a la carte web development
My VanillaJS project, where I re-implement popular framework sample apps in vanilla JavaScript, has now been ported over to ‘a la carte’ web development. In this case that means they all use pulito for their tooling and directory structure, and individual framework ports bring in templating libaries as needed. For example, the React sample rewrite uses lit-html for templating, and the Angular sample rewrite uses hyperHTML for templating.
This is a perfect example of the power of a la carte web development, where you get to pick the components you want and only have to ‘pay’ for what you use.
News
A la carte Web Development
Stop using JS Frameworks is something I’ve been advocating for years now, and a legitimate question I get is what do you replace it with?
The answer is “a la carte” web development.
Instead of picking a monolithic solution like a web framework, you just pick the pieces you need. I don’t mean any old random pieces, below I am going to outline specific criteria that need to be met for some components to participate in a la carte web development.
News
Custom Elements "Neat"
“Neat” – as applied to drinks served in bars – refers to a shot of liquor poured directly from the bottle and into a glass. There is no chilling involved with a “neat” drink. There is never an additional ingredient in a drink served “neat”. Up, Neat, Straight Up, or On the Rocks The Custom Elements V1 spec has reached concensus and implementations are going well, which is all great news, but what I find surprising is the lack of VanillaJS custom elements on WebComponents.
News
Shadow DOM and CSS
I love custom elements! I've been building UIs with them since Polymer 0.5 was announced in 2014. One of the things that I've questioned with custom elements has been Shadow DOM and its relationship to CSS. This page is an experiment for comparing custom elements with and without Shadow DOM. Press the buttons below and 1,000 spinners will be displayed on the page, when 'Light' is pressed the custom element uses CSS defined for the whole page, and when 'Shadow' is pressed the custom elements have a style sheet attached to their Shadow DOM, and when 'External' is pressed the CSS for the element is still encapsulated in the Shadow DOM, but it is loaded as an external stylesheet.
News
Having fun with silo metadata
I just recently finished adding support for Twitter metadata to the blog, mostly motivaged by brid.gy’s ability to use Webmentions to automatically post my blog entries to Twitter. As I worked on the Twitter metadata I wondered if other silos had their own metadata they supported. Indeed they do, and Kevin Marks brilliantly demonstrates how ridiculous the situation is by creating a blog post that appears different in every silo.
News
Webmention parsing and formatting is now complete
As Chris suggested, I have gone beyond my minimal webmentions, and thanks to the heavy lifting of Will Norris, I got to avoid handwriting a microformats parser in the process.
This is what they should look like in action:
News
One Million Webmentions
Ryan Barrett celebrating over 1 Million Webmentions in the wild.
Not bad for a specification that only became a recommendation a year ago.
News
Vanilla JS Sample Apps
I spent some time over the holidays porting web framework sample apps over to vanilla JS.
I’ll add the same caveat here that I also included in the code:
The code works w/o polyfils in Chrome. To get it to run in a wider range of browsers you will need to add polyfills and, depending on the target browser version, compile the JS back to an older version of ES, and run a prefixer on the CSS.
News
Custom Element Spinner
Now that Custom Elements has reached v1 and is starting to appear in browsers, let's make some elements. We'll start with one of the simplest elements possible, a busy spinner, or activity indicator. Caveats: No accessibility.
spinner-bw { display: none; border-radius: 50%; width: 2em; height: 2em; border: 0.4em solid #a6cee3; border-left: 0.4em solid #1f78b4; animation: spinner-bw-spin 1.5s infinite linear; } spinner-bw[active] { display: inline-block; } @keyframes spinner-bw-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } window.
News
Data binding and JS frameworks
It was over three years ago that I wrote No more JS frameworks, at which time I was roundly criticized for not understanding that data binding could only be done via JS framework, the two were inextricably linked, and only 2-way data binding would do, as one way data binding was for weak-minded fools who weren’t building real applications. You can find the comments on HN yourself, I don’t link to that cesspool.
News
Six Places
Note: This post was updated in Jan 2017 to use the Custom Elements V1 spec. One of the questions that comes up regularly when talking about zero frameworksis how can you expect to stitch together an application without a framework? The short answer is "the same way you stitch together native elements," but I think it's interesting and instructional to look at those ways of stitching elements together individually.
News
No more JS frameworks
Stop writing Javascript frameworks. Translations: Chinese Japanese Russian Here's the talk, based on this essay, that I gave at OSCON 2015. [Slides] The 100-line templating library presented as a Gist has been cleaned up, documented, and published as the Stamp library. JavaScript frameworks seem like death and taxes; inevitable and unavoidable. I'm sure that if I could be a fly on that wall every time someone started a new web project, the very first question they'd ask is, which JS framework are we using?
News
No Distributed Extensibility Needed
What I said last year, now the W3C apparently agrees.
In short the case that was presented for distributed extensibility was weak.
News
Distributed Extensibility
XML namespaces are designed to provide distributed extensibility using URIs. Distributed extensibility means that multiple people, or organizations, can extend an XML format with out any communication between them, and if they follow the rules they will avoid syntactic collisions. That statement shouldn't be controversial, it's a statement of fact, the definition of distributed extensibility. The problem is that everyone seems to accept the underlying assumption that distributed extensibilty is a desirable property.
News
Joel-in-a-box
At a previous employer we made tensile testing equipment. Now for tensile testing a material you cut it into a dogbone shape and then pull at each end of the dogbone, plotting out the change in length of the specimen against how much load is on the specimen. Once you have all that data you can plot stress-strain curves and learn all sorts of interesting things about said material. Now if you are developing a new material, or in general working in a laboratory setting, the amount of material to test isn't large, and the amount of work of preparing specimens and loading them into a tester and reading off the results falls into that's-what-we-have-interns-for.
News
The Atom Publishing Protocol is a failure
The Atom Publishing Protocol is a failure. Now that I've met by blogging-hyperbole-quotient for the day let's talk about standards, protocols, and technology. This is all the fodder I was going to throw together for a presentation I proposed for OSCon. Since that proposal got rejected I'm going to post it here. On the other hand, my App Engine tutorial got accepted, so I'll still see you at the conference.
Tag: tech
News
gcsfuse and systemd --user
Google Cloud Storage has an officially supported fuse client!
This is something I have always wanted and would have expected for Google Drive, but 🤷.
The only thing better than a fuse client is a fuse directory that gets mounted automatically when you log in, which you can do fairly simply using systemd --user, which is just systemd, but everthing runs as you.
Here’s a gist of how I set this up on my machine:
News
Google SRE Book and Workbook
I never realized the detail that the Google SRE book provided on the production environment at Google, including such things as D, Colossus, Jupiter, BNS, and GSLB.
Also there’s now The Site Reliability Workbook, a hands-on implementation guide.
News
Meritocracy
Meritocracy A system in which venture capitalists give large sums of money to 20-something male Stanford graduates in computer science.
News
Prometheus alerts and missing data
Alerting in Prometheus is great, and easy, but one of the gotchas is that there’s no warnings or errors if you write an alert rule and there’s no data for that alert.
Now Prometheus does have the absent() function, and you could tack
OR absent(some_metric_name) == 1 to the end of every alert you write, but that’s tedious and error prone. So I wrote promk-absent a quick little tool on Go to create a set of absence alerts based on an existing set of alerts.
News
Core Slicing
With Spectre and Meltdown we can see the inevitable results of trying to squeeze more and more performance out of a small number of cores. I believe the future is in processors with a high number of cores, such as RISC-V. With hundreds or thousands of cores on a single chip you can stop doing time-slicing and start doing core-slicing. That is, instead of doing preemtive multitasking, each process will be scheduled with a subset of the total number of core.
News
Lina Khan on antitrust and Amazon
This Yale Law Journal Note from Lina M. Khan on Amazon’s Antitrust Paradox is an amazing read on several levels.
First, the case it makes against Amazon is impressive, shining a light on quite a few unsavory things Amazon has done over the years.
Second, she then expands that case to the rest of the tech giants.
Third, for a Note in the Yale Law Journal, the entire thing is very readable.
News
Why crowdsourcing will die
Crowdsourcing, the idea of slapping together an algortihm that quietly works alone in the background on a large corpus of data to generate recommendations, most popular lists, etc. is slowly dying. I pointed this out in my 2018 Predictions post, but didn’t offer a concise explaination as to why that would occur, but as I’ve watched the year progress, and added more examples to that predicitions post, I’ve come up with a fairly simple model.
News
kubectl
The kubectl command combined with jq is the Swiss Army Chainsaw of kubernetes management. Some of my more useful kubectl commands:
watch 'kubectl get pods | column' # Delete all failed pods. kubectl get pods --field-selector=status.phase=Failed -o json | jq -r '.items[] .metadata.name' | xargs kubectl delete pod # All images running that have the word 'dirty' in their name. kubectl get pods -o json | jq -r '..|.containerStatuses?|select(.!=null)|.[].image' | sort | uniq | grep dirty
News
Firebase Hosting
Firebase Hosting is amazing, so fast and easy to setup and they even take care of the SSL cert for you. I work for Google and didn’t even know we had this as a product, so just posting it here in case anyone else missed it.
News
machine learning for continuous integration
Here are the slides for my OSCON presentation Machine Learning for Continuous Integration.
As usual my slides are pretty worthless on their own, except for the links.
Update (24-Sep-2018) Recording is now available:
News
sociopaths
As usual, XKCD nails it, our society is built under the basic premise that people aren’t sociopaths. This is the root of Facebook and Twitter’s issues, which is that they have built platforms that are being exploited by sociopaths, but they seem unwilling to act, always concerned about free speech. It is a particularly Silicon Valley conceit to not understand the difference.
While Zuckerberg is busy enabling holocaust deniers:
News
k-means clustering
A simple demo of k-means clustering. The little squares are the observations and the cirles are the centroids. Press the 'Step:' button to step through the algorithm. Restart const K = 3; const WIDTH = 500; const HEIGHT = 500; const RADIUS = 0.1; const STEP1 = 'Step 1: Assign observations to clusters.'; const STEP2 = 'Step 2: Update centroids.'; const COLORS = ['darkgreen', 'blue', 'darkorange', 'red', 'purple']; let ctx = document.
News
Pulito and VanillaJS updated to webpack 4
Both Pulito and VanillaJS have updated to webpack 4.
Additionally both have moved from yarn to npm. While npm still isn’t as fast as yarn, the support for package-lock.json files and increased attention to security and speed are worth the tradeoff.
News
Silicon Valley Libertarianism - Remembered
Remember the last time silicon valley was growing like crazy without any supervision? We’re still dealing with that mess.
News
Silicon Valley Libertarianism - An Obituary
Facebook’s Role in Data Misuse Sets Off Storms on Two Continents
On March 18th, 2018 Libertarianism, aka the #Just-Trust-In-The-Giant-Corporations movement, died of a self-inflicted gun wound to the head. In lieu of flowers, please send regulators to look after your citizens privacy.
News
2018 Predictions
The End of Crowdsourcing With Russian bots on Twitter, the attack on Rotten Tomatoes scores, the deluge of fake comments sent to the FCC, and even attacks on a DARPA Network Challenge, I think 2018 is the beginning of the end for crowdsourcing.
There are two problems to solve, the first is that some of these systems are trying to extract a signal from noisy data, and it only takes a small number of bad actors to intentionally inject a strong signal into that data stream and overwhelm the real signal.
News
Facebook pivoting away from engagement
Via Joel Spolsky, I learned that Facebook was pivoting away from engagement.
Meanwhile Twitter continues to be Twitter, and Uber continues to be an ethical cesspool.
News
Data binding and JS frameworks
It was over three years ago that I wrote No more JS frameworks, at which time I was roundly criticized for not understanding that data binding could only be done via JS framework, the two were inextricably linked, and only 2-way data binding would do, as one way data binding was for weak-minded fools who weren’t building real applications. You can find the comments on HN yourself, I don’t link to that cesspool.
News
Compute and Moore's Law
This article from Technology Review, How AI Can Keep Accelerating After Moore’s Law is a good follow-on from a previous article Moore’s Law Is Dead. Now What?.
From the second article:
Engineers have kept GPUs getting more powerful because they can be more specialized to the particular math they need to perform for graphics or machine learning, he says.
In order to continue to squeeze more performance out of the same number of transistors and/or watts, we are going to need to get closer to the metal, and the metal is going to have to become more and more specialized, or at the very least, the metal has to stop looking like monolithic CPUs with a small number of cores.
News
Tech Driven Deflation
The article Will Tech-Driven Deflation Export Japan’s Economic Woes to the World?reminded me of this video, "Evolution of the Desk": The origin for the above video is http://bestreviews.com/electronics#evolution-of-the-desk. Each time an object gets digitized that's one less object to manufacture, one less object to ship, one less object consuming raw materials. It's actually more surprising that this hasn't had an even larger impact on the U.
News
Prometheus vs InfluxDB
We just finished migrating all of our monitoring from InfluxDB to Prometheus and I thought I'd write up our reasons for the change. Please note that these are my own personal observations and relate to a specific project, these issue may not apply to you and you should evaluate each product for your own uses. Update: To clarify, the versions of InfluxDB and Prometheus that I am talking about are InfluxDB 1.
Tag: visualization
News
k-means clustering
A simple demo of k-means clustering. The little squares are the observations and the cirles are the centroids. Press the 'Step:' button to step through the algorithm. Restart const K = 3; const WIDTH = 500; const HEIGHT = 500; const RADIUS = 0.1; const STEP1 = 'Step 1: Assign observations to clusters.'; const STEP2 = 'Step 2: Update centroids.'; const COLORS = ['darkgreen', 'blue', 'darkorange', 'red', 'purple']; let ctx = document.
News
D3 and L-Systems with live controls and Redux
This is just D3 and L-Systems with live controls, but now state is managed by Redux. Oh, and also arrow functions, because they're available everywhere I care about. I've been reading about Redux and wanted to try it out. It seems nice, as it forced me to consolidate everything about page state, which caused me to clean up the code quite a bit. I like that in a tool.
News
North Carolina Urbanization and Rural Flight
The rural areas of North Carolina are emptying out. .tooltip { position: absolute; width: 200px; height: 28px; pointer-events: none; } text { font-size: 15px; } North Carolina County Population vs Count Population Growth Rate (2010 - 2014).Click on the graph to toggle between population density and county population. North Carolina is not immune to Rural Flight, nor is it a special victim, as the phenomenon is happening world wide.
News
Geometric Algebra applied to Physics
img { vertical-align: baseline; } th { background: #fff; } Geometric Algebra can be applied to Physics, and many of the introductions to GA online cover this, but they immediately jump to electromagnetic fields or quantum mechanics, which is unfortunate since GA can also greatly simplify 2D kinematics. One such example is uniform circular motion. You should be familiar with all the concepts presented in An Introduction to Geometric Algebra over R^2before proceeding.
News
An Introduction to Geometric Algebra over R^2
img { vertical-align: baseline; } th { background: #fff; } body { counter-reset: h3; } h3 { counter-reset: h4; } h4 { counter-reset: h5; } h5 { counter-reset: h6; } h3:before { counter-increment: h3; content: counter(h3) '. '; } h4:before { counter-increment: h4; content: counter(h3) '.' counter(h4) '. '; } h5:before { counter-increment: h5; content: counter(h3) '.' counter(h4) '.' counter(h5) '. '; } h6:before { counter-increment: h6; content: counter(h3) '.
News
This is voter suppression.
To get an idea of voter suppression in action let's overlap the The Racial Dot Map with Wake County's early voting locations.
News
The LCD Toy Universe
.plot { border-bottom: solid lightgray 1px; border-left: solid lightgray 1px; margin: 1em 0; } canvas { display: block; } button { min-width: 5.14em; background-color: #fff; color: #1f78b4; text-align: center; text-transform: uppercase; outline: none; border-radius: 3px; padding: 0.6em 1.2em; border: solid lightgray 1px; margin: 0.6em; } button:hover { background: #eee; } button:focus { background-color: #ddd; transition: background-color 0.1s cubic-bezier(0.4, 0, 0.2, 1); } select, input, label { margin: 0.6em 0 0.
News
Snow
Reilly has been learning Javascript, and one of the projects he wanted to do was a snow simulation. I guess growing up in the south snow is a rare and wonderous event for him. window.onload = function () { var canvas = document.getElementById('snow'); var ctx = canvas.getContext('2d'); var W = canvas.width; var H = canvas.height; var angle = 0; var mp = 10; var snowLine = []; for (var i = 0; i W) { p.
Tag: web-components
News
Custom Element Naming
In My approach to HTML web components Jeremy Keith goes into a naming convention for both web components and their attributes.
While I don’t have any opinions on attribute naming, I do have a strong opinion on element names, and that’s if you decide to namespace your elements it should be done using a post-fix and not a pre-fix.
As an example, all the elements we’ve build in Skia Infra are post-fixed with -sk:
News
Shadow Dom Example
We need to talk about Shadow DOM. While the Google official docs strongly encourage the use of Shadow DOM, I quite strongly disagree.
As an example, a couple weeks ago I realized I could style the <summary> part of a <details><summary> set of elements as a button, which would look great and more readily indicate its function. You can see the improvement here:
Before:
After:
Thankfully I hadn’t swallowed the party-line on Shadown DOM and this is the full set of CSS changes I had to make, just the following additions:
News
Looking back on five years of web components
Over 5 years ago I wrote No more JS frameworks and just recently Jon Udell asked for an update.
It's almost 4 years since @bitworking said: "Stop using JS frameworks, start writing reusable, orthogonally-composable units of HTML+CSS+JS." I'm curious, Joe, about what you've since learned, thought about, and done with the idea.https://t.co/zdKjEZfIe3
— Jon Udell (@judell) July 17, 2019 I have been blogging bits and pieces over the years but Jon’s query has given me a good excuse to roll all of that up into a single document.
News
Guidelines for creating web platform compatible components
Via Alex Russell, I just found Guidelines for creating web platform compatible components, which further contains a link to The Gold Standard Checklist for Web Components, both of which look like excellent resources when creating custom elements.
This is a good time to mention that work is progressing on elements-sk, a set of neat Vanilla JS custom elements.
News
The experience driven source of the elements-sk set of custom elements.
Last August, as my team was pondering moving away from Polymer and creating our own set of neat vanilla js custom elements, I decided to take a data driven stab at deciding is this was a viable plan. My team has been building web applications for over four years using Polymer and that corpus of code could be used to guide the decision. The first thing I did was scan each project and record every Polymer or Iron element used in every project.
News
elements-sk material design icons
The latest release of elements-sk has added elements for all the Material Design Icons. You can see the full set of icons in action on the elements-sk documentation site. Each one is its own module, so you only pay for what you use.
News
Pulito and VanillaJS updated to webpack 4
Both Pulito and VanillaJS have updated to webpack 4.
Additionally both have moved from yarn to npm. While npm still isn’t as fast as yarn, the support for package-lock.json files and increased attention to security and speed are worth the tradeoff.
News
VanillaJS apps have been ported to a la carte web development
My VanillaJS project, where I re-implement popular framework sample apps in vanilla JavaScript, has now been ported over to ‘a la carte’ web development. In this case that means they all use pulito for their tooling and directory structure, and individual framework ports bring in templating libaries as needed. For example, the React sample rewrite uses lit-html for templating, and the Angular sample rewrite uses hyperHTML for templating.
This is a perfect example of the power of a la carte web development, where you get to pick the components you want and only have to ‘pay’ for what you use.
News
A la carte Web Development
Stop using JS Frameworks is something I’ve been advocating for years now, and a legitimate question I get is what do you replace it with?
The answer is “a la carte” web development.
Instead of picking a monolithic solution like a web framework, you just pick the pieces you need. I don’t mean any old random pieces, below I am going to outline specific criteria that need to be met for some components to participate in a la carte web development.
News
Custom Elements "Neat"
“Neat” – as applied to drinks served in bars – refers to a shot of liquor poured directly from the bottle and into a glass. There is no chilling involved with a “neat” drink. There is never an additional ingredient in a drink served “neat”. Up, Neat, Straight Up, or On the Rocks The Custom Elements V1 spec has reached concensus and implementations are going well, which is all great news, but what I find surprising is the lack of VanillaJS custom elements on WebComponents.
News
Shadow DOM and CSS
I love custom elements! I've been building UIs with them since Polymer 0.5 was announced in 2014. One of the things that I've questioned with custom elements has been Shadow DOM and its relationship to CSS. This page is an experiment for comparing custom elements with and without Shadow DOM. Press the buttons below and 1,000 spinners will be displayed on the page, when 'Light' is pressed the custom element uses CSS defined for the whole page, and when 'Shadow' is pressed the custom elements have a style sheet attached to their Shadow DOM, and when 'External' is pressed the CSS for the element is still encapsulated in the Shadow DOM, but it is loaded as an external stylesheet.
News
Vanilla JS Sample Apps
I spent some time over the holidays porting web framework sample apps over to vanilla JS.
I’ll add the same caveat here that I also included in the code:
The code works w/o polyfils in Chrome. To get it to run in a wider range of browsers you will need to add polyfills and, depending on the target browser version, compile the JS back to an older version of ES, and run a prefixer on the CSS.
News
Custom Element Spinner
Now that Custom Elements has reached v1 and is starting to appear in browsers, let's make some elements. We'll start with one of the simplest elements possible, a busy spinner, or activity indicator. Caveats: No accessibility.
spinner-bw { display: none; border-radius: 50%; width: 2em; height: 2em; border: 0.4em solid #a6cee3; border-left: 0.4em solid #1f78b4; animation: spinner-bw-spin 1.5s infinite linear; } spinner-bw[active] { display: inline-block; } @keyframes spinner-bw-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } window.
News
Data binding and JS frameworks
It was over three years ago that I wrote No more JS frameworks, at which time I was roundly criticized for not understanding that data binding could only be done via JS framework, the two were inextricably linked, and only 2-way data binding would do, as one way data binding was for weak-minded fools who weren’t building real applications. You can find the comments on HN yourself, I don’t link to that cesspool.
News
Six Places
Note: This post was updated in Jan 2017 to use the Custom Elements V1 spec. One of the questions that comes up regularly when talking about zero frameworksis how can you expect to stitch together an application without a framework? The short answer is "the same way you stitch together native elements," but I think it's interesting and instructional to look at those ways of stitching elements together individually.
News
No more JS frameworks
Stop writing Javascript frameworks. Translations: Chinese Japanese Russian Here's the talk, based on this essay, that I gave at OSCON 2015. [Slides] The 100-line templating library presented as a Gist has been cleaned up, documented, and published as the Stamp library. JavaScript frameworks seem like death and taxes; inevitable and unavoidable. I'm sure that if I could be a fly on that wall every time someone started a new web project, the very first question they'd ask is, which JS framework are we using?
Tag: webmention
News
Stream
I’ve launched a new micro-blog at stream.bitworking.org, which has an Atom Feed if you want to follow along. You can also follow along on Mastodon by following @stream.bitworking.org@stream.bitworking.org thanks to https://fed.brid.gy/. Any entries will also appear on Twitter thanks to https://brid.gy. Interactions on any of those sites should flow back to Stream thanks to webmention support via github.com/jcgregorio/webmention-run.
Finally the admin interface to Stream is a PWA that supports the Web Share Target API, which means I can trivially share content to Stream using the native Android Share intent.
News
Webmention on Google Cloud Run
I just published webmention-run, a Google Run application written in Go that implements Webmention. I’m now using this to handle webmentions on bitworking.org. Given the generous free quota for Google Run I don’t expect this to cost me anything. This is on top of using Firebase Hosting to host the static (Jekyll) parts of my blog, which is also effectively free.
Another awesome feature is that both services will provide SSL certificates; in my case Firebase Hosting provides the cert for https://bitworking.
News
Bridgy, webmentions, and publishing.
Brid.gy has a cool feature for automatically posting blog posts to Twitter, which is interesting because it uses Webmentions to kick off the whole process. I.e. just including the link:
<a href="https://brid.gy/publish/twitter"></a> The webmention sent to brig.gy triggers it to look back at the post, parse it and look for microformats indicating what content to publish, and then posts it to Twitter.
Note that this also works for Facebook and Flickr, and you obviously need to authorize brid.
News
Webmention parsing and formatting is now complete
As Chris suggested, I have gone beyond my minimal webmentions, and thanks to the heavy lifting of Will Norris, I got to avoid handwriting a microformats parser in the process.
This is what they should look like in action:
News
First
Chris Aldrich has the honor of being the first sender of an organic incoming Webmention received on bitworking.org, which you can see on this post.
I say “organic” because I’ve been using all the testing tools listed on the indieweb.org site to test my implementation.
News
Going beyond minimal Webmentions
Chris Aldrich
I suspect that next, with a tad bit of parsing using microformats, you can add some display elements to your webmentions to indicate the author, their url, date/time, and actually include the reply text to have a better UI for them.
Indeed, my current implementation just shows the validated Webmention links, and my plan is to slowly enhance them over time. I think, just like in the case of the basic Webmention support, Will Norris may have my back again and have already done the heavy lifting for Microformats and Go.
News
One Million Webmentions
Ryan Barrett celebrating over 1 Million Webmentions in the wild.
Not bad for a specification that only became a recommendation a year ago.
News
Silos
In A Decade of Silos Has Throttled Open Content Distribution Louis Gray says:
To properly make the Web as desirable and viable a platform for publishing, we need to work together to fix the distribution and discovery gaps, make content fantastic on mobile for creation and consumption, and allow for engagement that is as simple as a Like.
Totally agree. I’m in the process of implementing WebMention on the blog, in the hope that it gets more traction.
Tag: woodworking
News
Bunk Bed
In this episode of “Woodworking with Joe”, I build a bunkbed. We needed a full size bunkbed that was also long enough to span two twin beds. After looking around online we couldn’t find anything that was both fit our dimensions and also be rugged enough for under $1,500, so I designed and built this one for around $400.
I first designed out the bed in SketchUp:
Here is an STL model if you would prefer that.