<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Programming — Host Boards</title>
        <link>https://hostboards.com/index.php?p=/</link>
        <pubDate>Wed, 29 Jul 2026 12:24:27 +0000</pubDate>
        <language>en</language>
            <description>Programming — Host Boards</description>
    <atom:link href="https://hostboards.com/index.php?p=/discussions/tagged/programming/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Deploying a React Application with Nginx on Ubuntu</title>
        <link>https://hostboards.com/index.php?p=/discussion/7706/deploying-a-react-application-with-nginx-on-ubuntu</link>
        <pubDate>Thu, 21 Nov 2024 08:11:19 +0000</pubDate>
        <category>Tutorials</category>
        <dc:creator>MivoCloud</dc:creator>
        <guid isPermaLink="false">7706@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>You can quickly deploy React applications to a server using the default Create React App build tool. The build script compiles the application into a single directory containing all of the JavaScript code, images, styles, and HTML files. With the assets in a single location, you can deploy to a web server with minimal configuration.</p>

<p>In this tutorial, you’ll deploy a React application on your local machine to an Ubuntu 20.04 server running Nginx.</p>

<p><span data-youtube="youtube-WKfmhgYQlCM?autoplay=1"><a rel="nofollow" href="https://www.youtube.com/watch?v=WKfmhgYQlCM"><img src="https://img.youtube.com/vi/WKfmhgYQlCM/0.jpg" width="640" height="385" border="0" alt="image" /></a></span></p>

<p><strong>Commands used</strong><br />
npx create-react-app mivo-deploy<br />
cd mivo-deploy<br />
npm start<br />
npm run build<br />
cat /etc/nginx/sites-enabled/your_domain<br />
scp -r ./build/* username@server_ip:/var/www/your_domain/html</p>
]]>
        </description>
    </item>
    <item>
        <title>2022, A Great Year for CSS! Video by Google</title>
        <link>https://hostboards.com/index.php?p=/discussion/5901/2022-a-great-year-for-css-video-by-google</link>
        <pubDate>Sun, 30 Oct 2022 15:38:50 +0000</pubDate>
        <category>Coding Languages</category>
        <dc:creator>DeluxeNames</dc:creator>
        <guid isPermaLink="false">5901@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>The year 2022 is set to be one of CSS's greatest years, in both features and cooperative browser feature releases, with a collaborative goal to implement 14 features!</p>

<p>Here's a link to watch the State of CSS from Google I/O '22:<br />
<span data-youtube="youtube-Xy9ZXRRgpLk?autoplay=1"><a rel="nofollow" href="https://www.youtube.com/watch?v=Xy9ZXRRgpLk"><img src="https://img.youtube.com/vi/Xy9ZXRRgpLk/0.jpg" width="640" height="385" border="0" alt="image" /></a></span></p>

<p>Overview #<br />
This post is the article form of the talk given at Google IO 2022. It's not meant to be an in-depth guide on each feature, rather an introduction and brief overview to pique your interest, providing breadth instead of depth. If your interest is piqued, check the end of a section for resource links to more information.</p>

<p>Table of contents #<br />
Use the list bel</p>

<p>Fresh in 2022   2022 and beyond<br />
2022 Browser compatibility  <a href="https://hostboards.com/index.php?p=/profile/scope" rel="nofollow">@scope</a><br />
<a href="https://hostboards.com/index.php?p=/profile/layer" rel="nofollow">@layer</a>  <a href="https://hostboards.com/index.php?p=/profile/nest" rel="nofollow">@nest</a><br />
subgrid <a href="https://hostboards.com/index.php?p=/profile/media" rel="nofollow">@media</a> (prefers-reduced-data)<br />
<a href="https://hostboards.com/index.php?p=/profile/container" rel="nofollow">@container</a>  <a href="https://hostboards.com/index.php?p=/profile/custom-media" rel="nofollow">@custom-media</a><br />
hwb()   Media query ranges<br />
lch, oklch, lab, oklab, display-p3, etc <a href="https://hostboards.com/index.php?p=/profile/property" rel="nofollow">@property</a><br />
color-mix() scroll-start<br />
color-contrast()    :snap-target<br />
Relative color syntax   snapChanging() and snapChanged()<br />
Gradient color spaces   toggle()<br />
accent-color    anchor()<br />
inert   <br />
Color fonts v1<br />
Viewport unit variants<br />
:has()<br />
Browser compatibility #<br />
A primary reason so many CSS features are set to cooperatively release is due to the efforts of Interop 2022. Before studying the Interop efforts, it's important to look at Compat 2021’s efforts.</p>

<p>Compat 2021 #<br />
The goals for 2021, driven by developer feedback via surveys, were to stabilize current features, improve the test suite and increase passing scores of browsers for five features:</p>

<p>sticky positioning<br />
aspect-ratio sizing<br />
flex layout<br />
grid layout<br />
transform positioning and animation<br />
Test scores were raised across the board, demonstrating upgraded stability and reliability. Big congratulations to the teams here!</p>

<p>Interop 2022 #<br />
This year, browsers met together to discuss the features and priorities they intended to work on, uniting their efforts. They planned to deliver the following web features for developers:</p>

<p><a href="https://hostboards.com/index.php?p=/profile/layer" rel="nofollow">@layer</a><br />
Color spaces and functions<br />
Containment<br />
<br />
Form compatibility<br />
Scrolling<br />
Subgrid<br />
Typography<br />
Viewport units<br />
Web compat<br />
This is an exciting and ambitious list that I can't wait to see unfold.</p>

<p>Fresh for 2022 #<br />
Unsurprisingly, the state of CSS 2022 is dramatically impacted by the Interop 2022 work.</p>

<p>Before <a href="https://hostboards.com/index.php?p=/profile/layer" rel="nofollow">@layer</a>, the discovered order of loaded stylesheets was very important, as styles loaded last can overwrite previously loaded styles. This led to meticulously managed entry stylesheets, where developers needed to load less important styles first and more important styles later. Entire methodologies exist to assist developers in managing this importance, such as ITCSS.</p>

<p>With <a href="https://hostboards.com/index.php?p=/profile/layer" rel="nofollow">@layer</a>, the entry file can pre-define layers, and their order, ahead of time. Then, as styles load, are loaded or defined, they can be placed within a layer, allowing a preservation of style override importance but without the meticulously managed loading orchestration.</p>

<p>The video shows how the defined cascade layers allow for a more liberated and freestyle authoring and loading process, while still maintaining the cascade as needed.</p>

<p>Chrome DevTools is helpful for visualizing which styles are coming from which layers:</p>

<p>Before subgrid, a grid inside of another grid couldn't align itself to its parent cells or grid lines. Each grid layout was unique. Many designers place a single grid over their whole design and constantly align items within it, which couldn't be done in CSS.</p>

<p>After subgrid, a child of a grid can adopt its parents’ columns or rows as its own, and align itself or children to them!</p>

<p>In the following demo, the body element creates a classic grid of three columns: the middle column is called main, and the left and right columns name their lines fullbleed. Then, each element in the body,</p>

<p>&lt;</p>

<p>nav&gt; and </p><main>, adopts the named lines from body by setting grid-template-columns: subgrid.

<p>​​body {<br />
  display: grid;<br />
  grid-template-columns:<br />
    [fullbleed-start]<br />
    auto [main-start] min(90%, 60ch) [main-end] auto<br />
    [fullbleed-end]<br />
  ;<br />
}</p>

<p>body &gt; * {<br />
  display: grid;<br />
  grid-template-columns: subgrid;<br />
}<br />
Lastly, children of</p>

<p>&lt;</p>

<p>nav&gt; or </p> can align or size themselves using the fullbleed and main columns and lines.

<p>.main-content {<br />
  grid-column: main;<br />
}</p>

<p>.fullbleed {<br />
  grid-column: fullbleed;<br />
}</p>

<p>Devtools can help you see the lines and subgrids (Firefox only at the moment). In the following image, the parent grid and subgrids have been overlaid. It now resembles how designers were thinking about the layout.</p>

<p>Screenshot of a subgrid demo, using the Chrome Devtools grid overlay tooling to show the lines defined by CSS.<br />
In the elements panel of devtools you can see which elements are grids and subgrids, which is very helpful for debugging or validating layout.</p>

<p>Screenshot of the Chrome Devtools Elements panel labelling which elements have grid or subgrid layouts.<br />
Screenshot from Firefox Devtools<br />
Resources #<br />
Subgrid specification<br />
Subgrid on MDN<br />
Bramus: Practical CSS Subgrid Video Tutorials<br />
Container queries #<br />
Browser support:<br />
105<br />
×<br />
105<br />
16<br />
Source<br />
Before <a href="https://hostboards.com/index.php?p=/profile/container" rel="nofollow">@container</a>, elements of a webpage could only respond to the size of the whole viewport. This is great for macro layouts, but for micro layouts, where their outer container isn't the whole viewport, it's impossible for the layout to adjust accordingly.</p>

<p>After <a href="https://hostboards.com/index.php?p=/profile/container" rel="nofollow">@container</a>, elements can respond to a parent container size or style! The only caveat is the containers must declare themselves as possible query targets, which is a small requirement for a large benefit.</p>

<p>/* establish a container */<br />
.day {<br />
  container-type: inline-size;<br />
  container-name: calendar-day;<br />
}<br />
These styles are what make the Mon, Tues, Wed, Thurs, and Fri columns in the following video able to be queried by the event elements.</p>

<p>Demo by Una Kravets<br />
Here is the CSS for querying the calendar-day container for its size, then adjusting a layout and font sizes:</p>

<p><a href="https://hostboards.com/index.php?p=/profile/container" rel="nofollow">@container</a> calendar-day (max-width: 200px) {<br />
  .date {<br />
    display: block;<br />
  }</p>

<p>.date-num {<br />
    font-size: 2.5rem;<br />
    display: block;<br />
  }<br />
}<br />
Here's another example: one book component adapts itself to the space available in the column that it's dragged to:</p>

<p>Demo by Max Böck<br />
Una is correct in assessing the situation as the new responsive. There are many exciting and meaningful design decisions to make when using <a href="https://hostboards.com/index.php?p=/profile/container" rel="nofollow">@container</a>.</p>

<p>Resources #<br />
Container Queries specification<br />
Container Queries explainer<br />
Container Queries on MDN<br />
The new responsive on web.dev<br />
Calendar demo by Una<br />
Awesome container queries collection<br />
How we built Designcember on web.dev<br />
Ahmad Shadeed: Say Hello To CSS Container Queries<br />
accent-color #<br />
Browser support:<br />
93<br />
92<br />
93<br />
15.4<br />
Source<br />
Before accent-color, when you wanted a form with brand matching colors, you could end up with complex libraries or CSS solutions that became hard to manage over time. While they gave you all the options, and hopefully included accessibility, the choice to use the built-in components or adopt your own becomes tedious to continue to choose.</p>

<p>After accent-color, one line of CSS brings a brand color to the built-in components. In addition to a tint, the browser intelligently chooses proper contrasting colors for ancillary parts of the component and adapts to system color schemes (light or dark).</p>

<p>/* tint everything */<br />
:root {<br />
  accent-color: hotpink;<br />
}</p>

<p>/* tint one element */<br />
progress {<br />
  accent-color: indigo;<br />
}<br />
Light and dark accented HTML elements side by side for comparison.<br />
To learn more about accent-color, check out my post on web.dev where I explore many more aspects of this useful CSS property.</p>

<p>Resources #<br />
accent-color specification<br />
accent-color on MDN<br />
accent-color on web.dev<br />
Bramus: Tint User-Interface Controls with CSS accent-color<br />
Color level 4 and 5 #<br />
The web has been dominated by sRGB for the past decades, but in an expanding digital world of high-definition displays and mobile devices pre-equipped with OLED or QLED screens, sRGB is not enough. Furthermore, dynamic pages that adapt to user preferences are expected, and color management has been a growing concern for designers, design systems, and code maintainers.</p>

<p>Not in 2022 though—CSS has a number of new color functions and spaces:</p>

<p>Colors that reach into the HD color capabilities of displays.<br />
Color spaces that match an intent, such as perceptual uniformity.<br />
Color spaces for gradients that drastically change the interpolation outcomes.<br />
Color functions to help you mix and contrast, and choose which space you do the work in.<br />
Before all these color features, design systems needed to precalculate proper contrasting colors, and ensure appropriately vibrant palettes, all while preprocessors or JavaScript did the heavy lifting.</p>

<p>After all these color features, the browser and CSS can do all the work, dynamically and just in time. Instead of sending many KBs of CSS and JavaScript to users to enable theming and data visualization colors, CSS can do the orchestrating and calculations. CSS is also better equipped to check for support before usage or handle fallbacks gracefully.</p>

<p><a href="https://hostboards.com/index.php?p=/profile/media" rel="nofollow">@media</a> (dynamic-range: high) {<br />
  .neon-pink {<br />
    --neon-glow: color(display-p3 1 0 1);<br />
  }<br />
}</p>

<p><a href="https://hostboards.com/index.php?p=/profile/supports" rel="nofollow">@supports</a> (color: lab(0% 0 0)) {<br />
  .neon-pink {<br />
    --neon-glow: lab(150% 160 0);<br />
  }<br />
}<br />
hwb() #<br />
Browser support:<br />
101<br />
96<br />
101<br />
15<br />
Source<br />
HWB stands for hue, whiteness, and blackness. It presents itself as a human-friendly way of articulating color, as it's just a hue and an amount of white or black to lighten or darken. Artists who mix colors with white or black may find themselves appreciating this color syntax addition.</p>

<p>Using this color function results in colors from the sRGB color space, the same as HSL and RGB. In terms of newness for 2022, this doesn’t give you new colors, but it may make some tasks easier for fans of the syntax and mental model.</p>

<p>Resources #<br />
HWB specification<br />
HWB on MDN<br />
Stefan Judis: hwb() – a color notation for humans?<br />
Color spaces #<br />
The way colors are represented is done with a color space. Each color space offers various features and trade-offs for working with color. Some may pack all the bright colors together; some may line them up first based on their lightness.</p>

<p>2022 CSS is set to offer 10 new color spaces, each with unique features to assist designers and developers in displaying, picking, and mixing colors. Previously, sRGB was the only option for working with color, but now CSS unlocks new potential and a new default color space, LCH.</p>

<p>Before color-mix(), developers and designers needed preprocessors like Sass to mix the colors before the browser saw them. Most color-mixing functions also didn't provide the option to specify which color space to do the mixing in, sometimes resulting in confusing results.</p>

<p>After color-mix(), developers and designers can mix colors in the browser, alongside all their other styles, without running build processes or including JavaScript. Additionally, they can specify which color space to do the mixing in, or use the default mixing color space of LCH.</p>

<p>Often, a brand color is used as a base and variants are created from it, such as lighter or darker colors for hover styles. Here's what that looks like with color-mix():</p>

<p>.color-mix-example {<br />
  --brand: #0af;</p>

<p>--darker: color-mix(var(--brand) 25%, black);<br />
  --lighter: color-mix(var(--brand) 25%, white);<br />
}<br />
and if you wanted to mix those colors in a different color space, like srgb, change it:</p>

<p>.color-mix-example {<br />
  --brand: #0af;</p>

<p>--darker: color-mix(in srgb, var(--brand) 25%, black);<br />
  --lighter: color-mix(in srgb, var(--brand) 25%, white);<br />
}<br />
Here follows a theming demo using color-mix(). Try changing the brand color and watch the theme update:</p>

<p>Enjoy mixing colors in various color spaces in your stylesheets in 2022!</p>

<p>Before color-contrast(), stylesheet authors needed to know accessible colors ahead of time. Often a palette would show black or white text on a color swatch, to indicate to a user of the color system which text color would be needed to properly contrast with that swatch.</p>

<p>Screenshot of 3 Material palettes, showing 14 colors and their appropriate white or black contrast colors for text.<br />
Example from 2014 Material Design color palettes<br />
After color-contrast(), stylesheet authors can offload the task entirely to the browser. Not only can you employ the browser to automatically pick a black or white color, you can give it a list of design system appropriate colors and have it pick the first to pass your desired contrast ratio.</p>

<p>Here's a screenshot of an HWB color palette set demo where the text colors are automatically chosen by the browser based on the swatch color:</p>

<p>Screenshot of the HWB demo where each palette has a different pairing of light or dark text, as determined by the browser.<br />
Try the demo<br />
The basics of the syntax look like this, where gray is passed to the function and the browser determines if black or white have the most contrast:</p>

<p>color: color-contrast(gray);<br />
The function can also be customized with a list of colors, from which it will pick the highest contrasting color.</p>

<p>Lastly, in case it's preferable not to pick the highest contrasting color from the list, a target contrast ratio can be provided, and the first color to pass it is chosen:</p>

<p>color: color-contrast(<br />
  var(--bg-blue-1)<br />
  vs<br />
  var(--text-lightest), var(--text-light), var(--text-subdued)<br />
  to AA /* 4.5 could also be passed */<br />
);<br />
This function can be used for more than just text color, though I estimate that will be its primary use case. Think about how much easier it will be to deliver accessible and legible interfaces once the choosing of proper contrasting colors is built into the CSS language itself.</p>

<p>Resources #<br />
color-contrast() specification<br />
color-contrast() on MDN</p>

<p>Before relative color syntax, to compute on color and make adjustments, the color channels needed to be individually placed into custom properties. This limitation also made HSL the primary color function for manipulating colors because the hue, saturation, or lightness could all be adjusted in a straightforward way with calc().</p>

<p>After relative color syntax, any color in any space can be deconstructed, modified, and returned as a color, all in one line of CSS. No more limitations to HSL—manipulations can be done in any color space desired, and many less custom properties need to be created to facilitate it.</p>

<p>In the following syntax example, a base hex is provided and two new colors are created relative to it. The first color --absolute-change creates a new color in LCH from the base color, then proceeds to replace the base color’s lightness with 75%, maintaining the chroma (c) and hue (h). The second color --relative-change creates a new color in LCH from the base color, but this time reduces the chroma (c) by 20%.</p>

<p>.relative-color-syntax {<br />
  --color: #0af;<br />
  --absolute-change: lch(from var(--color) 75% c h);<br />
  --relative-change: lch(from var(--color) l calc(c-20%) h);<br />
}<br />
It's akin to mixing colors, but it's more similar to alterations than it is mixing. You get to cast a color from another color, getting access to the three channel values as named by the color function used, with an opportunity to adjust those channels. All in all, this is a very cool and powerful syntax for color.</p>

<p>In the following demo I've used relative color syntax to create lighter and darker variants of a base color, and used color-contrast() to ensure the labels have proper contrast:</p>

<p>Screenshot with 3 columns, each column is either darker or lighter than the center column.<br />
Try the demo<br />
This function can also be used for color palette generation. Here is a demo where entire palettes are generated off a provided base color. This one set of CSS powers all the various palettes, each palette simply provides a different base. As a bonus, since I've used LCH, look at how perceptually even the palettes are—no hot or dead spots to be seen, thanks to this color space.</p>

<p>:root {<br />
  --_color-base: #339af0;</p>

<p>--color-0:  lch(from var(--_color-base) 98% 10 h);<br />
  --color-1:  lch(from var(--_color-base) 93% 20 h);<br />
  --color-2:  lch(from var(--_color-base) 85% 40 h);<br />
  --color-3:  lch(from var(--_color-base) 75% 46 h);<br />
  --color-4:  lch(from var(--_color-base) 66% 51 h);<br />
  --color-5:  lch(from var(--_color-base) 61% 52 h);<br />
  --color-6:  lch(from var(--_color-base) 55% 57 h);<br />
  --color-7:  lch(from var(--_color-base) 49% 58 h);<br />
  --color-8:  lch(from var(--_color-base) 43% 55 h);<br />
  --color-9:  lch(from var(--_color-base) 39% 52 h);<br />
  --color-10: lch(from var(--_color-base) 32% 48 h);<br />
  --color-11: lch(from var(--_color-base) 25% 45 h);<br />
  --color-12: lch(from var(--_color-base) 17% 40 h);<br />
  --color-13: lch(from var(--_color-base) 10% 30 h);<br />
  --color-14: lch(from var(--_color-base) 5% 20 h);<br />
  --color-15: lch(from var(--_color-base) 1% 5 h);<br />
}<br />
Screenshot of 15 palettes all generated dynamically by CSS.<br />
Try the demo<br />
Hopefully by now you can see how color spaces and different color functions can all be used for different purposes, based on their strengths and weaknesses.</p>

<p>Resources #<br />
Relative color syntax specification<br />
Building color palettes with relative color syntax<br />
Building color variants with relative color syntax<br />
Gradient color spaces #<br />
Before gradient color spaces, sRGB was the default color space used. sRGB is generally reliable, but does have some weaknesses like the gray dead zone.</p>

<p>4 gradients in a grid, all from cyan to deeppink. LCH and LAB have more consistent vibrancy, where sRGB goes a bit desaturated in the middle.<br />
After gradient color spaces, tell the browser which color space to use for the color interpolation. This gives developers and designers the ability to choose the gradient they prefer. The default color space also changes to LCH instead of sRGB.</p>

<p>The syntax addition goes after the gradient direction, uses the new in syntax, and is optional:</p>

<p>background-image: linear-gradient(<br />
  to right in hsl,<br />
  black, white<br />
);</p>

<p>background-image: linear-gradient(<br />
  to right in lch,<br />
  black, white<br />
);<br />
Here's a basic and essential gradient from black to white. Look at the range of results in each color space. Some reach dark black earlier than others, some fade to white too late.</p>

<p>11 color spaces shown comparing black to white.<br />
In this next example, black is transitioned to blue because it's a known problem space for gradients. Most color spaces creep into purple during color interpolation or, as I like to think of it, as colors travel inside their color space from point A to point B. Since the gradient will take a straight line from point A to point B, the shape of the color space drastically changes the stops that the path takes along the way.</p>

<p>okLCH and okLAB are specialized color spaces that account for various drifts, like this one into purple, making them especially accurate for gradients.<br />
11 color spaces shown comparing blue to black.<br />
For more deep explorations, examples and comments, read this Twitter thread.</p>

<p>Before inert, it was good practice to guide the user's focus to areas of the page or app that needed immediate attention. This guided focus strategy became known as focus trapping because developers would place focus into an interactive space, listen for focus change events and, if the focus left the interactive space, then it was forced back in. Users on keyboards or screen readers are guided back to the interactive space to ensure the task is complete before moving on.</p>
</main>]]>
        </description>
    </item>
    <item>
        <title>Kathleen Booth, the inventor of assembly language, passes away.</title>
        <link>https://hostboards.com/index.php?p=/discussion/5899/kathleen-booth-the-inventor-of-assembly-language-passes-away</link>
        <pubDate>Sat, 29 Oct 2022 23:20:31 +0000</pubDate>
        <category>Coding Languages</category>
        <dc:creator>DeluxeNames</dc:creator>
        <guid isPermaLink="false">5899@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>RIP: Kathleen Booth, the inventor of assembly language.<br />
---------‐----------------------<br />
Professor Kathleen Booth, one of the last of the early British computing pioneers, has died. She was 100.</p>

<p>Kathleen Hylda Valerie Britten was born in Worcestershire, England, on July 9, 1922. During the Second World War, she studied at Royal Holloway, University of London, where she got a BSc in mathematics in 1944. After graduating, she became a junior scientific officer at the Royal Aircraft Establishment, a research organization in Farnborough. Two years later she moved to Birkbeck College, first as a research assistant, and later a lecturer and then research fellow.</p>

<p>She also worked at the British Rubber Producers' Research Association (BRPRA), where she met and worked with mathematician and physicist Andrew Donald Booth, who later became her husband. After studying with X-ray crystallographer Professor J D Bernal – inventor of the Bernal Sphere – A D Booth was working out crystal structures using X-ray diffraction data, and finding the manual calculations very tedious; he built an analog computer to automate part of this.</p>

<p>Kathleen Booth<br />
Kathleen Booth at work</p>

<p>In 1946, Britten and Booth collaborated at Birkbeck on a very early digital computer, the Automatic Relay Calculator (ARC), and in doing so founded what is now Birkbeck's Department of Computer Science and Information Systems.</p>

<p>The ARC was constructed in Welwyn Garden City, close to the BRPRA's headquarters. A D Booth designed it, but Kathleen Britten and her fellow research assistant Xenia Sweeting built the hardware. Bernal obtained funding from the Rockefeller Foundation for Booth and Britten to visit the Institute of Advanced Study at Princeton, where Booth reported that only Bernal's friend John von Neumann gave them any time. Von Neumann explained his concept of what is now called the von Neumann computer architecture.</p>

<p>RIP Katherine Johnson: The extraordinary NASA mathematician astronauts trusted over computers<br />
Farewell to two pivotal figures: The founder of Inmos, and the co-creator of MIME<br />
RIP: Creators of the GIF and TRS-80<br />
Mary Coombs, first woman commercial programmer, dies at 93<br />
Booth and Britten returned to the UK and redesigned their calculator based around these ideas, leading to the ARC2 and in the process inventing the first drum memory to provide enough storage to hold both program information and data. Building the ARC2 from relays proved too much, so in 1948, Booth and Britten moved on to the Simple Electronic Computer (SEC) and then the All Purpose Electronic X-Ray Computer or APE(X)C. You can try out the APE(X)C in the MESS emulator.</p>

<p>The APE(X)C design was commercialized and sold as the HEC by the British Tabulating Machine Co Ltd, which eventually became ICL. A video about the HEC1 is below.</p>

<p>In 1950, Kathleen and Andrew married, the same year that she got a PhD in applied mathematics, again from the University of London. To secure further funding for their work, the Booths again went to the Rockefeller Foundation, which provided it on condition that the APE(C)X worked with human languages as well as just mathematics. The result was a demonstration of machine translation in November 1955.</p>

<p>As well as building the hardware for the first machines, she wrote all the software for the ARC2 and SEC machines, in the process inventing what she called "Contracted Notation" and would later be known as assembly language.</p>

<p>She also discusses synchronous versus asynchronous operation in the paper linked at the bottom of this article. Her 1958 book, Programming for an Automatic Digital Calculator, may have been the first one on programming written by a woman.</p>

<p>The same year, she started working with neural networks, also the subject of her last paper, "Using neural nets to identify marine mammals", co-written with her son Dr Ian J M Booth and published in 1993.</p>

<p>The Booth family moved to Canada in the early 1960s, where Kathleen and Andrew continued working in academia; she retired in the late 1970s.</p>

<p>Kathleen Booth died September 29, 2022, and is survived by a daughter as well as her son.<br />
Source: <a href="https://www.theregister.com/2022/10/29/kathleen_booth_obit/" rel="nofollow">https://www.theregister.com/2022/10/29/kathleen_booth_obit/</a></p>
]]>
        </description>
    </item>
    <item>
        <title>Sawyer X Resigns from the Council Overseeing Pearl Language, Leaves 3-person Perl Steering Committee</title>
        <link>https://hostboards.com/index.php?p=/discussion/4345/sawyer-x-resigns-from-the-council-overseeing-pearl-language-leaves-3-person-perl-steering-committee</link>
        <pubDate>Wed, 14 Apr 2021 00:50:38 +0000</pubDate>
        <category>Coding Languages</category>
        <dc:creator>DeluxeNames</dc:creator>
        <guid isPermaLink="false">4345@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Key Perl Core developer quits, says he was bullied for daring to suggest programming language contained 'cruft'<br />
'After saying this, I immediately received hostile messages' says pumpking of version 5.x</p>

<h2>Story by Thomas Claburn - Tue 13 Apr 2021</h2>

<p>On Monday, the Perl Core developer known as Sawyer X announced his intention to leave the three-person Perl Steering Committee, or Council, and the Perl Core group because of what he described as community hostility.</p>

<p>Sawyer X, who became "pumpking" – manager of the core Perl 5 language – in 2016 when he took over that role from Ricardo Signes, explained his rationale for departing in a post to a Perl discussion list.</p>

<p>"Due to the continuous abusive behavior by prominent Perl community members and just about anyone else who also feels entitled to harass me (and unfortunately, other Core developers), I am stepping down from the Steering Council, from the Perl security list, and from the Perl Core," Sawyer said, adding that he is stepping down from the Perl Foundation's Grants Committee and that he will not be speaking at or attending the next Perl conference.</p>

<p>"The Perl Foundation will publish a fuller response in due course once we understand more about the situation that led up to Sawyer’s recent announcement," the organization said. "However I can say that we are saddened to learn of Sawyer’s statement of resignation."</p>

<p>Sawyer X's disaffection with the volunteer-based Perl community further complicates the road ahead for the programming language, damaged over the past two decades by cannibalization from PHP and Python, incompatibility between Perl 5 and Perl 6 (renamed Raku in recognition of that schism), and recent governance troubles in part related to disagreements about the planned release of Perl 7 and backward compatibility.</p>

<p>The precipitating interaction, as Sawyer X tells it, followed after he opined to other Core developers on a mailing list that there is "cruft," or poorly written or superseded code, in Perl – not exactly an outrageous claim for a language that has been around since 1987.</p>

<p>pearl<br />
Perl.com theft blamed on social engineering attack: Registrar 'convinced' to alter DNS records by miscreants<br />
READ MORE<br />
"After saying this, I immediately received hostile messages – how dare I suggest we recognize there is cruft (and that we would be happy if it weren't there)," he recounted. "After all, there are emails by a few Core developers (who are on this list) that say otherwise."</p>

<p>Sawyer X described the responses he received as "just one example in a chain of continuous bullying and hostility I've been receiving in recent years, especially in the last year, at the hands of Perl community members."</p>

<p>Nonetheless, he plans to shepherd the release of Perl 5.34 in May 2021.</p>

<p>The health of open source projects has a lot to do with the feelings of acceptance and camaraderie among those who contribute their time, energy, and code. Community, and how to sustain it, is a frequent topic at open source conferences. If Sawyer X's sentiments about the Perl world are shared by others, it's not a good sign to the language's longevity.</p>

<p>However, one of the individuals involved in the fracas, Perl developer Christian Walde (Mithaldu), disputes the accusations and, following a brief apology, has documented discussions related to the alleged "cruft" afflicting Perl.</p>

<p>"I'm sorry that I wasn't able to word myself in a way that did not feel to him like I'm going after him at the same time, I do not believe I deserve the accusations," said Walde.</p>

<p>In a Reddit post, Dan Book, known as Grinnz in the Perl community, offered an interpretation of events similar to that proposed by Walde.</p>

<p>"In my view, every reply to Sawyer was necessary to challenge the information presented publicly by an authority figure," he said.</p>

<p>"I am sorry he apparently interpreted it as bullying, but I am not sure what response would have not constituted such to him, or if it was simply because of one of the people he replied to. Authority comes with responsibility for your public words."</p>

<p>Therein lies the difficulty with open source work – people have different expectations about the permissible range of interpersonal interaction and different definitions about toxic behavior. Instituting rituals and rules that suit everyone isn't easy. ®</p>

<p>SOURCE: <a href="https://www.theregister.com/2021/04/13/perl_dev_quits/" rel="nofollow">https://www.theregister.com/2021/04/13/perl_dev_quits/</a></p>
]]>
        </description>
    </item>
<div class="SFBox SFVCBox"><span>Online Since</span>April 2004</div><div class="SFBox SFVCBox"><span>Total Views</span>3.1M</div><div class="SFBox SFUBox"><span>Total Users</span>3.7M</div><div class="SFBox SFTBox"><span>Total Topics</span>7.8K</div><div class="SFBox SFPBox"><span>Post Count</span>33.3K</div>   </channel>
</rss>
