star

Article :: My Workflow: here's my typical start-to-finish project

In this sample chapter from The Adobe Photoshop Lightroom Classic CC Book for Digital Photographers, learn how Scott Kelby uses the same workflow in Lightroom for every type of project.




star

Article :: Getting Started

In this sample chapter from Engineering Design and Graphics with SolidWorks 2019, author James Bethune gets you started on SolidWorks. This chapter will show you how to start a New drawing and introduce the Line, Circle, and Edit tools. The Smart Dimension tool will be used to define and edit lines and circles. Line colors and relationships will also be introduced.




star

Article :: AutoCAD 2020: Quick Start Tutorial

Learn the basics necessary to start a new drawing, create and modify some objects, add annotation features, and print out your work with AutoCAD 2020.




star

Brain injuries in newborns could start before birth




star

Diet Diary: Don’t starve, eat ‘mindfully’ to lose weight




star

Maternal depression may start before giving birth: Study




star

Soursop or prickly custard apple – an adjunct to chemotherapy from tropics




star

The toxic university : zombie leadership, academic rock stars and neoliberal ideology / John Smyth

Smyth, W. J. (William John), 1944- author




star

Jumpstart! storymaking : games and activities for ages 7-12 / Pie Corbett

Corbett, Pie




star

It Starts With Clients: Your 100-Day Plan to Build Lifelong Relationships and Revenue


 

World-renowned client relationship authority shows you how to dramatically grow your business by mastering fourteen critical client development challenges

Andrew Sobel, author of the international bestsellers Clients for Life and Power Questions, offers a proven,100-day plan for conquering 14 tough client development challenges and growing your client base in any market conditions. He’s encapsulated 25 years of unique research, including personal interviews



Read More...




star

Making stars physical: the astronomy of Sir John Herschel / Stephen Case

Hayden Library - QB36.H59 C37 2018




star

Northern star: J.S. Plaskett / R. Peter Broughton ; with a foreword by James E. Hesser

Hayden Library - QB36.P55 B76 2018




star

Register now for "Starry Spring Nights"

Learn to identify the constellations and stars you see.




star

Stagville Under The Stars!

Morehead partners with Durham's Stagville Plantation for this one-of-a-kind program.




star

Stagville under the Stars!

Celebrate Black History Month with this special program at a North Carolina State Historic Site in Durham County.




star

Come to one of 40+ Statewide Star Parties on April 5!

The NC Science Festival kicks off with dozens of free skywatching sessions at communities across the state.




star

Star Families: Greek Myths and Legends

This might be a fun choice for any Percy Jackson fans out there!




star

Starry Nights: Fall Skies

The perfect opportunity to learn how to identify the planets, bright stars and constellations that are most prominent this season.




star

Star Families: Galaxies

Explore the night sky with your family on Dec. 14!




star

Starry Nights: Winter Skies

Explore the night sky with an expert guide on Dec. 18 from 7:30-9 p.m.




star

Register now for "Starry Nights: Summer Skies"

What constellations can you identify in the Summer sky?




star

November's Star Families: Native American Skies

Curious about the Milky Way? Here's your chance to learn more.




star

Incentivising Angels [electronic resource] : A Comparative Framework of Tax Incentives for Start-Up Investors / by Stephen Barkoczy, Tamara Wilkinson

Barkoczy, Stephen, author




star

French Open to start on September 27?

Organisers in talks with governing bodies amid rescheduling reports.




star

People from Karnataka stranded abroad to start arriving on May 8

All the 10,823 persons from Karnataka stranded in other countries, who will be arriving in the State from May 8, will be quarantined and compulsorily




star

Science Podcast - A binary star system that includes a white dwarf and a news roundup (18 April 2014)

A distinctive binary star system; roundup of daily news with David Grimm.




star

Podcast: What ants communicate when kissing, stars birthed from gas, and linking immune strength and social status

This week, we chat about kissing communication in ants, building immune strength by climbing the social ladder, and a registry for animal research with Online News Editor David Grimm. Plus, Science’s Alexa Billow talks to Bjorn Emonts about the birth of stars in the Spiderweb Galaxy 10 billion years ago.   Related research on immune function and social hierarchy.   Listen to previous podcasts.   [Image: Lauren Brent; Music: Jeffrey Cook]




star

How to weigh a star—with a little help from Einstein, toxic ‘selfish genes,’ and the world’s oldest Homo sapiens fossils

This week we have stories on what body cams reveal about interactions between black drivers and U.S. police officers, the world’s oldest Homo sapiens fossils, and how modern astronomers measured the mass of a star—thanks to an old tip from Einstein—with Online News Intern Ryan Cross. Sarah Crespi talks to Eyal Ben-David about a pair of selfish genes—one toxin and one antidote—that have been masquerading as essential developmental genes in a nematode worm. She asks how many more so-called “essential genes” are really just self-perpetuating freeloaders? Science Careers Editor Rachel Bernstein is also here to talk about stress and work-life balance for researchers and science students. Listen to previous podcasts. [Image: Chris Burns/Science; Music: Jeffrey Cook]




star

Cargo-sorting molecular robots, humans as the ultimate fire starters, and molecular modeling with quantum computers

This week we hear stories on the gut microbiome’s involvement in multiple sclerosis, how wildfires start—hint: It’s almost always people—and a new record in quantum computing with Online News Editor David Grimm. Andrew Wagner talks to Lulu Qian about DNA-based robots that can carry and sort cargo. Sarah Crespi goes behind the scenes with Science’s Photography Managing Editor Bill Douthitt to learn about snapping this week’s cover photo of the world’s smallest neutrino detector. Listen to previous podcasts. [Image: Curtis Perry/Flickr; Music: Jeffrey Cook]




star

LIGO spots merging neutron stars, scholarly questions about a new Bible museum, and why wolves are better team players than dogs

This week we hear stories about the Laser Interferometer Gravitational-Wave Observatory’s latest hit, why wolves are better team players than dogs, and volcanic eruptions that may have triggered riots in ancient Egypt with Online News Editor Catherine Matacic. Sarah Crespi interviews contributing correspondent Lizzie Wade about the soon-to-open Museum of the Bible in Washington D.C. Can it recover from early accusations of forgeries and illicitly obtained artifacts? Listen to previous podcasts. [Image: Public Domain; Music: Jeffrey Cook]  




star

The universe’s star formation history and a powerful new helper for evolution

In a fast-changing environment, evolution can be slow—sometimes so slow that an organism dies out before the right mutation comes along. Host Sarah Crespi speaks with Staff Writer Elizabeth Pennisi about how plastic traits—traits that can alter in response to environmental conditions—could help life catch up. Also on this week’s show, host Meagan Cantwell talks with Marco Ajello a professor of physics and astronomy at Clemson University in South Carolina about his team’s method to determine the universe’s star formation history. By looking at 739 blazars, supermassive black holes at the center of galaxies, Ajello and his team were able to model the history of stars since the big bang. Finally, in this month’s book segment, Jen Golbeck interviews Christine Du Bois about her book Story of Soy. You can listen to more book segments and read more reviews on our books blog, Books et al. This week’s episode was edited by Podigy. Read a transcript (PDF) Listen to previous podcasts. About the Science Podcast [Image: NASA/Goddard Space Flight Center Conceptual Image Lab; Music: Jeffrey Cook]




star

#ThrowbackDiaries: When stars were young

Time to look at intriguing flashback pix, posted by Bollywood folk.




star

Red star over Cuba : the Russian assault on the Western Hemisphere / Nathaniel Weyl

Weyl, Nathaniel, 1910-2005




star

Lionel Messi and his Barcelona teammates return to training as La Liga eyes restart

The players arrived alone for individual sessions and took to the three pitches without passing through the changing rooms.




star

Remembering beloved movie stars: Be kind and rewind, but be open-eyed too

Perhaps one should be able to speak of the ills or even just the shortcomings along with the good and the superlatives.




star

NBA’s restart plan amidst coronavirus includes daily testing of players, limited locations: Reports

NBA Commissioner Adam Silver explained the plan in a conference call open to all NBA players.




star

Building WordPress Websites With Zurb Foundation or Bootstrap: Comparisons and Starter Themes

WordPress is super versatile. You know that. I know that. But sometimes this can be an overwhelming prospect. How on earth will you get your site up and running? What platform will you use? Zurb Foundation and Bootstrap are two …




star

It All Starts with a Humble <textarea>

Andy Bell rings out a fresh call in support of the timeless concept of progressive enhancement. What does it mean to build a modern JavaScript-focussed web experience that still works well if part of the stack isn’t supported or fails? Andy shows us how that might be done.


Those that know me well know that I make a lot of side projects. I most definitely make too many, but there’s one really useful thing about making lots of side projects: it allows me to experiment in a low-risk setting.

Side projects also allow me to accidentally create a context where I can demonstrate a really affective, long-running methodology for building on the web: progressive enhancement. That context is a little Progressive Web App that I’m tinkering with called Jotter. It’s incredibly simple, but under the hood, there’s a really solid experience built on top of a minimum viable experience which after reading this article, you’ll hopefully apply this methodology to your own work.

What is a minimum viable experience?

The key to progressive enhancement is distilling the user experience to its lowest possible technical solution and then building on it to improve the user experience. In the context of Jotter, that is a humble <textarea> element. That humble <textarea> is our minimum viable experience.

Let me show you how it’s built up, progressively real quick. If you disable CSS and JavaScript, you get this:

This result is great because I know that regardless of what happens, the user can do what they needed to do when the loaded Jotter in their browser: take some notes. That’s our minimum viable experience, completed with a few lines of code that work in every single browser—even very old browsers. Don’t you just love good ol’ HTML?

Now it’s time to enhance that minimum viable experience, progressively. It’s a good idea to do that in smaller steps rather than just provide a 0% experience or a 100% experience, which is the approach that’s often favoured by JavaScript framework enthusiasts. I think that process is counter-intuitive to the web, though, so building up from a minimum viable experience is the optimal way to go, in my opinion.

Understanding how a minimum viable experience works can be a bit tough, admittedly, so I like to use a the following diagram to explain the process:

Let me break down this diagram for both folks who can and can’t see it. On the top row, there’s four stages of a broken-up car, starting with just a wheel, all the way up to a fully functioning car. The car enhances only in a way that it is still mostly useless until it gets to its final form when the person is finally happy.

On the second row, instead of building a car, we start with a skateboard which immediately does the job of getting the person from point A to point B. This enhances to a Micro Scooter and then to a Push Bike. Its final form is a fancy looking Motor Scooter. I choose that instead of a car deliberately because generally, when you progressively enhance a project, it turns out to be way simpler and lighter than a project that was built without progressive enhancement in mind.

Now that we know what a minimum viable experience is and how it works, let’s apply this methodology to Jotter!

Add some CSS

The first enhancement is CSS. Jotter has a very simple design, which is mostly a full height <textarea> with a little sidebar. A flexbox-based, auto-stacking layout, inspired by a layout called The Sidebar is used and we’re good to go.

Based on the diagram from earlier, we can comfortably say we’re in Skateboard territory now.

Add some JavaScript

We’ve got styles now, so let’s enhance the experience again. A user can currently load up the site and take notes. If the CSS loads, it’ll be a more pleasant experience, but if they refresh their browser, they’re going to lose all of their work.

We can fix that by adding some local storage into the mix.

The functionality flow is pretty straightforward. As a user inputs content, the JavaScript listens to an input event and pushes the content of the <textarea> into localStorage. If we then set that localStorage data to populate the <textarea> on load, that user’s experience is suddenly enhanced because they can’t lose their work by accidentally refreshing.

The JavaScript is incredibly light, too:

const textArea = document.querySelector('textarea');
const storageKey = 'text';

const init = () => {

  textArea.value = localStorage.getItem(storageKey);

  textArea.addEventListener('input', () => {
    localStorage.setItem(storageKey, textArea.value);
  });
}

init();

In around 13 lines of code (which you can see a working demo here), we’ve been able to enhance the user’s experience considerably, and if we think back to our diagram from earlier, we are very much in Micro Scooter territory now.

Making it a PWA

We’re in really good shape now, so let’s turn Jotter into a Motor Scooter and make this thing work offline as an installable Progressive Web App (PWA).

Making a PWA is really achievable and Google have even produced a handy checklist to help you get going. You can also get guidance from a Lighthouse audit.

For this little app, all we need is a manifest and a Service Worker to cache assets and serve them offline for us if needed.

The Service Worker is actually pretty slim, so here it is in its entirety:

const VERSION = '0.1.3';
const CACHE_KEYS = {
  MAIN: `main-${VERSION}`
};

// URLS that we want to be cached when the worker is installed
const PRE_CACHE_URLS = ['/', '/css/global.css', '/js/app.js', '/js/components/content.js'];

/**
 * Takes an array of strings and puts them in a named cache store
 *
 * @param {String} cacheName
 * @param {Array} items=[]
 */
const addItemsToCache = function(cacheName, items = []) {
  caches.open(cacheName).then(cache => cache.addAll(items));
};

self.addEventListener('install', evt => {
  self.skipWaiting();

  addItemsToCache(CACHE_KEYS.MAIN, PRE_CACHE_URLS);
});

self.addEventListener('activate', evt => {
  // Look for any old caches that don't match our set and clear them out
  evt.waitUntil(
    caches
      .keys()
      .then(cacheNames => {
        return cacheNames.filter(item => !Object.values(CACHE_KEYS).includes(item));
      })
      .then(itemsToDelete => {
        return Promise.all(
          itemsToDelete.map(item => {
            return caches.delete(item);
          })
        );
      })
      .then(() => self.clients.claim())
  );
});

self.addEventListener('fetch', evt => {
  evt.respondWith(
    caches.match(evt.request).then(cachedResponse => {
      // Item found in cache so return
      if (cachedResponse) {
        return cachedResponse;
      }

      // Nothing found so load up the request from the network
      return caches.open(CACHE_KEYS.MAIN).then(cache => {
        return fetch(evt.request)
          .then(response => {
            // Put the new response in cache and return it
            return cache.put(evt.request, response.clone()).then(() => {
              return response;
            });
          })
          .catch(ex => {
            return;
          });
      });
    })
  );
});

What the Service Worker does here is pre-cache our core assets that we define in PRE_CACHE_URLS. Then, for each fetch event which is called per request, it’ll try to fulfil the request from cache first. If it can’t do that, it’ll load the remote request for us. With this setup, we achieve two things:

  1. We get offline support because we stick our critical assets in cache immediately so they will be accessible offline
  2. Once those critical assets and any other requested assets are cached, the app will run faster by default

Importantly now, because we have a manifest, some shortcut icons and a Service Worker that gives us offline support, we have a fully installable PWA!

Wrapping up

I hope with this simplified example you can see how approaching web design and development with a progressive enhancement approach, everyone gets an acceptable experience instead of those who are lucky enough to get every aspect of the page at the right time.

Jotter is very much live and in the process of being enhanced further, which you can see on its little in-app roadmap, so go ahead and play around with it.

Before you know it, it’ll be a car itself, but remember: it’ll always start as a humble little <textarea>.


About the author

Andy Bell is an independent designer and front-end developer who’s trying to make everyone’s experience on the web better with a focus on progressive enhancement and accessibility.

More articles by Andy




star

Phailin starts pounding Orissa, Andhra coast

This might be the second biggest evacuation exercise undertaken since 1990, NDMA officials.




star

Computing in algebraic geometry [electronic resource] : a quick start using SINGULAR / Wolfram Decker, Christoph Lossen

Berlin ; Springer ; [2006]




star

Samsung starts taking online pre-orders for TVs, ACs, and other electronics

Consumers pre-booking on Samsung Shop will get 15 per cent cashback when paying with HDFC cards




star

Sony India starts advanced booking for home audio-video products

Under its 'Stay Home, Stay Safe' programme, Sony is offering discounts and special price offer on its products




star

151 JSJ Getting Started with a Career in Web Development with Tyler McGinnis

02:21 - Tyler McGinnis Introduction

03:23 - Getting Started at DevMountain

04:38 - DevMountain Conception

05:37 - How Do I Learn How to Code?

  • Struggle. Fail. Tears.
  • [Confreaks] Tyler McGinnis: What I’ve Learned about Learning from Teaching People to Code

08:03 - Resources => Consume ALL THE Information

11:16 - Two Camps: Art (Creators) and Technicians <= Does DevMountain Cater to One or the Other?

13:08 - Repetition as a Way to Learn

15:23 - Letting People Struggle vs Helping Them    

17:14 - Training/Finding Instructors / Teaching Teachers to be Better Teachers

21:08 - Why Is JavaScript a Good Language to Learn?

24:11 - DevMountain Mentors

26:30 - Student Success Stories

28:56 - Bootcamp Learning Environments

34:11 - Oldest and Youngest Students (Success Stories Cont’d)

37:18 - Bootcamp Alumni (Employment Rates and Statistics)

Picks

Costco Kirkland Brand Peanut Butter Cups (Dave)
[Confreaks] Tyler McGinnis: What I’ve Learned about Learning from Teaching People to Code (Dave)

[YouTube] Katya Eames: How to Teach Angular to your Kids (Dave)
[YouTube] Misko Hevery and Rado Kirov: ng-conf 2015 Keynote 2 (Dave)
Mandy’s Fiancé (AJ)
[YouTube] Katya Eames: How to Teach Angular to your Kids (Joe)
ng-conf Kids (Joe)
Salt (Joe)
[YouTube] Dave Smith: Angular + React = Speed (Tyler)
[YouTube] Igor Minor: (Super)Power Management (Tyler)
React.js Newsletter (Tyler)
Dave Smith’s addendum to his talk (Joe)




star

JSJ 427: How to Start a Side Hustle as a Programmer with Mani Vaya

JavaScript Remote Conf 2020

May 14th to 15th - register now!


Mani Vaya joins Charles Max Wood to talk about how developers can add the enterepreneur hat to the others they wear by starting a side gig. They discuss various ideas around entrepreneurship, the books they got them from, and how they've applied them in their own businesses.

Panel

  • Charles Max Wood

Guest

  • Mani Vaya

Sponsors

__________________________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

__________________________________________________

Picks

Mani Vaya:

Charles Max Wood:


Follow JavaScript Jabber on Twitter > @JSJabbber




star

Agritech start-up Brainwired raises funding

Agritech start-up Brainwired, which provides livestock health monitoring and tracking solution has raised undisclosed funding from Mumbai Angels. The




star

The Zen of magic squares, circles, and stars [electronic resource] : an exhibition of surprising structures across dimensions / Clifford A. Pickover

Pickover, Clifford A




star

There's a profusion of movie stars contesting 2014 polls

Movie stars in 2014's polls are a welcome addition to the fray. For those carping about how stars represent glamour and gloss, why not?




star

Star Wars, 2014: BJP and Congress target each others’ biggies in candidate selection, but not consistently

By fielding one of its vice-presidents – former television soap star Smriti Irani – against Congress’s Rahul Gandhi in Amethi Lok Sabha constituency, BJP has shown it is inclined to take the electoral battle to one of two Gandhi pocket boroughs in Uttar Pradesh.




star

Product :: Adobe Acrobat X for Windows and Macintosh: Visual QuickStart Guide




star

Product :: Microsoft Office 2011 for Mac: Visual QuickStart