fabiochiu/medium-articles huggingface dataset:
6 Things to Know to Get Started With Python Data Classes
By: Yong Cui
Tags: Data Science, Python, Software Development, Programming, Artificial Intelligence

3. Equality/Inequality Comparisons

Besides the initialization and representation methods, the dataclass decorator also implements the comparison-related functionalities for us. We know that for a regular custom class, we can’t have meaningful comparisons between instances if we don’t define the comparison behaviors. Consider the following custom class that doesn’t use the dataclass decorator.

Equality Comparisons

As shown above, with a regular class, two instances with the same values for all attributes are evaluated to be unequal because these custom class instances are compared by their identities by default. In this case, these two instances are two distinct objects, and they’re deemed to be unequal.

However, with a data class, such an equality comparison evaluates True . This is because the dataclass decorator will also automatically generate the __eq__ special method for us. Specifically, equality comparison is conducted as if each of these instances is a tuple that contains the fields in the order that is defined. Because the two data class instances have the fields of the same values, they’re considered equal.

How about inequality comparisons, such as greater than and less than? They’re also possible with the dataclass decorator by specifying the order parameter for the decorator, as shown below in Line 1.

Inequality Comparisons

Similar to the equality comparisons, data class instances are compared as if they’re tuples of these fields, and they’re compared as tuples lexicographically. For a proof of concept, the above code only includes two fields, and as you can see, the comparison results are based on the tuple’s order.
Starting Stats: Day 1
By: Mary Lucus-Flannery
Tags: Storytelling, Journey, Weight Loss, Health, Ketosis

Age: 44

Height: 5'4"

Weight: 155 lbs

How my body feels: I feel pretty good. Minor headache, fuzzy head. It’s not a real headache — I’m just not clear headed. Does that make sense?

My emotional state: I am excited to get this project started because I know a system like this is good for me. I am motivated to do THIS project more than just the ketosis journey. I’m getting ready to catch a flight out this afternoon and start travelling most of the week, so that means I will have to be resourceful in order to work the plan. So, I’m a little anxious. I don’t want to eff it up right at the beginning.

What I can celebrate: STARTING. That’s the first step. It matters.
Remembering American Songwriter Legend John Prine
By: Judson Hurd
Tags: RIP, Death, Music, Coronavirus, John Prine

America, we have lost a true legend and treasure. I was so sad to hear about the passing of John Prine, whose music I have enjoyed over the years. When hearing the news that he had contracted COVID-19, I was among many people wishing that he could beat this.

Courtesy of John Prine

Originally from Maywood, Illinois, John Prine learned to play guitar at age 14. He got his start in classes at the Old Town School of Folk Music in Chicago. Not many know this, but John Prine was an army veteran in Germany in the year of 1966. After serving in the army, he moved to Chicago in the late 1960s and worked for the US Postal Service while writing songs as a hobby. The rest is history. Roger Ebert, the famous film critic, had this to say about the late songwriter legend in his 1970 Chicago Sun-Times article. “He sings rather quietly, and his guitar work is good, but he doesn’t show off. He starts slow. But after a song or two, even the drunks in the room begin to listen to his lyrics. And then he has you.”

Here are my top 3 songs by the late legend:

That’s the Way the World Goes Round

I remember hearing this song in the early 90s at the age of 8 and falling in love with his music. The simplicity and bare emotion of this song stuck with me at a young age. The flute harmony and the shuffling beat adds a nice touch. I also remember thinking that the lyrics “Naked as the eyes of a clown” as being the funniest thing an 8-year-old could hear at the time.

Angel From Montgomery

This song comes from his self titled record in 1971 and is one of my favorites. As a musician/keyboardist, I love the groovy and straightforward intro from the Hammond organ in the intro that fits so well with the piano, guitar, and John’s raspy voice. This song is a classic that has aged well over the years.

Dear Abby

The song “Dear Abby” was another childhood favorite of mine. I loved his simple storytelling and tongue in cheek lyrics “My feet are too long/My hair’s falling out, and my rights are all wrong/My friends they all tell me that I’ve no friends at all.” This classic from the 1973 album Sweet Revenge was a favorite of mine as I was figuring out my awkward teenage years and the advice in the lyrics “So listen up buster, and listen up good/Stop wishing for bad luck and knocking on wood” would-be sage, wise advice my late grandmother would have given me.

In Memory

As I was reading through people’s memories on Twitter of John Prine, I came across Hanif Abdurraquib, editor of GENMag, who, in my opinion, had the best response to John Prine’s passing.

While I was in my home studio last night, I raised a glass of Evan Williams to Mr. Prine and recorded a short video of my playing my favorite song of his on the piano. You can watch it here.

That’s the way that the world goes ‘round.

You’re up one day and the next you’re down.

Thanks for the memories, John.

What are some of your favorite John Prine songs? I would love to hear them in the comments below.
The Blackest City in the U.S. Is Facing an Environmental Justice Nightmare
By: Drew Costley
Tags: Health, Pollution, Environment, Equality, Black In Climate Change

Growing up in southwest Detroit, Vince Martin thought it was normal for the sky to be orange.

When he was three years old, his family moved from Cuba to one of the Black areas of town. At the time, discriminatory housing practices segregated the city. His Afro-Cuban family settled in the 48217, now Michigan’s most polluted zip code, where 71% of the population is Black and air pollution makes the sky look like it’s on fire.

Specifically, the Martins moved to Boynton, a working-class neighborhood. The town sits next door to a Marathon oil refinery and its sprawling industrial campus.

Martin, now an environmental activist in Detroit, remembers the refinery being made up of “one or two tankers” when his family settled there in the 1960s. Now, Marathon is a 250-acre tank farm that emits so much air pollution it’s received 15 violation notices from the Michigan Department of Environment, Great Lakes, and Energy since 2013 for surpassing state and federal regulations emission limits. (Marathon denies any wrongdoing, claiming it has reduced emissions by 75% over the last 20 years and only contributes to 3% of emissions in the area.)

But Martin saw air quality worsen as the refinery grew over the decades. He believes he escaped the worst of it in his youth because he traveled so often for sports, but others “weren’t so fortunate.”

At his 30-year high school reunion, it seemed to Martin that more people in his class were dead than living. He knew many had died from cancer. As a child, Martin’s younger brother David developed asthma and juvenile diabetes, both of which have been linked with air pollution. Every few days, Martin remembers, David was rushed to the hospital with respiratory issues. “These episodes kept happening every time he’d try to go outside and enjoy his environment,” says Martin. After a life of health complications, David died at age 45 from what Martin calls “toxic poisoning.”

“Seeing someone with such joy in life, seeing it stripped away little by little, it’s a terrible thing,” Martin says. “To be in a community like that and be exposed to those kinds of pollutants. It’s a sad story.”

These stories are common in the 48217. Four of the state’s top emitters of particulate matter sulfur dioxide and nitrous oxides, which can, respectively, cause respiratory issues, and create acid rain are located within a five-mile radius of Boynton. A portion of I-75, one of the busiest highways in Michigan, runs along the northern border of the neighborhood. The neighborhood is nine minutes from the traffic-choked Ambassador Bridge, the busiest international border crossing in North America. Plans to open the new Gordie Howe International Bridge next to the Ambassador Bridge in 2020 are expected to increase diesel truck traffic by 125%.
The two Google Search Python Libraries you should never miss!
By: Tanu N Prabhu
Tags: Python, API, Google, Google Search, Programming

The two Google Search Python Libraries you should never miss!

In this article, let us discover the usage of the two most used Google Search Python libraries.

Photo by Benjamin Dada on Unsplash

This morning while I was looking for search-related Python API, I saw these two amazing Google Search Libraries written in Python. So I thought of bringing them to light and share them with you guys. So that next time when you are in need, these libraries will be at your fingertips.

Now that we know the name of these two amazing Python libraries, let’s try to use them one-at-a-time and perform some searching. Before diving into the API’s, the whole code of this article can be found in my GitHub Repository down below:

googlesearch

It is a Python library used to do an effective Google search. It uses requests and BeautifulSoup4 libraries to scrape the data from Google.

Installation

To install googlesearch, run the following command

!pip install googlesearch-python

Note: If you are using any other IDE other than Google Colab, use pip install googlesearch-python no need for appending ! at the beginning. Also, make sure to restart the runtime/editor in order to use newly installed versions.

Perform basic searching

Now, with the help of this library, let’s search Katy Perry. I mean, why not?. To do this, you need to import the library first and then search for the topic.

import googlesearch

search = googlesearch.search('Katy Perry')

print(search)

As soon as you execute the following code, you will be prompted by Katy Perry’s search results as a list. Yes, you heard it right, the return type of the search method is a list.

Playing with search method

You can also control the number of search results as well with num_results and also get the results in other languages using lang parameters. Let’s use the same Katy Perry’s example and limit the search results to 5 and get the results in french.

import googlesearch

search = googlesearch.search('Katy Perry', num_results = 5, lang = 'fr')

print(search)

You know the outcome of the above code. The output will not be displayed in French rather the source they point to will be a French website. And this time there will only be 5 search results displayed.

Reference

To go through the full source code and more details of googlesearch library. Please visit their repository given down below:
Coupling and Cohesion
By: Nick Hodges
Tags: Design Patterns, Software Development, Software Engineering, Software Design, Programming

Thoughts on Coupling

Coupling is the measure of how dependent your code modules are on each other. Strong coupling is bad and low coupling is good.

High coupling means that your modules cannot be separated. It means that the internals of one module know about and are mixed up with the internals of the other module.

When your system is really badly coupled, it is said to be “spaghetti” code, as everything is all mixed up together like a bowl of spaghetti noodles.

High coupling means that a change in one place can have unknown effects in unknown other places. It means that your code is harder to understand because complex, intertwined relationships are difficult to understand.

Heavily coupled code is difficult to reuse because it is difficult to remove from the system for use elsewhere. One should strive to reduce coupling in one’s code to as high a degree as possible.

Of course, your code can’t be completely decoupled. A collection of completely decoupled modules can’t do anything. They need to be coupled in a thin and light manner.

I’ve said before that an interface is like a wisp of smoke — there is something there, but it is really hard to grab onto it. Code that is coupled via interfaces is coupled as thinly as it can possibly be coupled.

A real-world example of heavy coupling is the space shuttle.

Now, I’m no rocket scientist, but my guess is that a space shuttle is made up of hundreds of thousands — if not millions — of unique parts that fit together in one way and one way only.

The parts are not reusable, and if you need to alter one part — especially if you have to alter an interface of a part — you have a problem because the other parts around it will very likely need to be altered as well.

That initial alteration could spread a long way throughout the craft and have long-reaching ramifications. The space shuttle, then, is a highly coupled system.

What’s an example of loose coupling?

How about a space shuttle built out of Legos. Sure, it won’t go anywhere, but it would be easy to change its design as Lego pieces are easily put together and taken apart to make whatever you want. A Lego space shuttle would have low coupling

In summary, here’s what you should consider when writing uncoupled code:

Your code will be easier to read because it will be simple and not complex.

Your code will be reusable because it will be connected only by very thin interfaces.

Your code will be easy to change and maintain because changes to the code will be isolated.

So, if you don’t want your code to be tightly coupled, what do you want your code to be?
Headline Analyzers are use full
By: Hogan Torah
Tags: Headlines, AI, Writing, Success, Machine Learning

Sup Drake!

7 Reasons All The Greatest Writers in The History of The World Aren’t Afraid to Always Choose Powerful Headlines to Alert John Cena’s Eyes Attention

You don’t want to read this, but you will

Courtesy WWE All Rights Reserved

On Facebook there was a question posted about headline analyzers. The true purpose was attracting readers because they were promoting a story they wrote about headline analyzers. I gave my opinion anyways because I’m a writer and it was a prompt.

I find headline generators more useful than analyzers. I can spot a headline created with with help of analyzer and usually stay away. 7 reasons all the greatest writers in the history of the world always use powerful headlines to capture Bon Jovi’s full attention would probably get a high score but… Heh. I got an idea. Brb. — Hogan Torah

Welcome to my idea.

The quest for the perfect headline

I free — styled the headline “7 reasons all the greatest writers in the history of the world always use powerful headlines to capture Bon Jovi’s full attention” off the top of my head. I knew I was above a 70 but it would need a little fine tuning if I wanted to hit the hundred.
Our Shared Vision of the Future
By: Adam Gall
Tags: Blockchain, Future, Trust, Evolution, Bitcoin

It’s time to start being honest with ourselves. Blockchains are confusing, and kind of scary. They’re not easy to understand. People use words like “trustless” and “consensus” and “incentive structure” when describing them. Like what does that even mean?

Photo by Andreas P. on Unsplash

Well, society is evolving. Right now, we’re going through a rebirth of trust and values.

We started out trusting each other using facial expressions, body language, and eventually spoken language. Trust was based on social reputation.

As technology continued to grow, trust became “institutionalized” through the rise of centralized entities, like Facebook, Google, or the Federal Reserve. This was the natural evolution.

This new global, institutionalized trust model allowed strangers all over the world to communicate, share knowledge, participate in markets, and do business. That is, so long as we trusted the institutions in the middle to properly handle our data and money.

Things are good until they aren’t. But the shift is happening. I can sense it. Can you?

Public blockchain systems, beginning with Bitcoin, use our common interest — money — to incentivize immutability and finality of cryptographically-pure data.

That’s at the core of what’s happening. This a beautiful base on which to build new trust models. In fact, the builders among us are doing just that: hard at work designing, prototyping, and creating new businesses and industries based on a provably better way to participate in self-sovereign digital activities.

And with these new systems, the world is figuring out what it means to continue participating in a global digital economy like we’re used to, but without that traditional centralized institutional elephant in the room that we’re currently begrudgingly using to power our digital lives and businesses.

Like all good movements, this one happens from the bottom -> up. These new systems have been important since their ideas began to form over a decade ago. But they only truly matter once integrating with them is the norm. When the fabric of secured blockchain systems underpin our digital activities, considering the alternative will be ludicrous.

It’s time for us, as individuals, as businesses, as a community, as a species, to demand better for ourselves. We’re entrenched in our current ways, but don’t have to stay here. Let’s walk down this path together.
Public Relations: Using the Media as a Third-Party to Influence Your Audience
By: Daniel Hopper
Tags: Public Relations, Strategy, Business, Startup, Marketing

What are Public Relations?

Public relations (PR) is the manages the release and spread of publicity from a firm or individual to the public to influence their opinions, attitudes or behaviours. PR aims to build and maintain relationships with stakeholders and those who influence the target audience, to enhance the public reputation.

Public relations professionals are storytellers and image shapers who create a positive narrative for their clients by working closely with journalists and other media. This allows them to manage and generate positive publicity for their clients to enhance their reputations.

Public relations are controlled internally as a strategy, but publicity is controlled and distributed externally.

“(Public Relations) helps establish and maintain mutual lines of communication, understanding, acceptance and cooperation between an organisation and its publics; involves the management of problems and issues; helps management keep abreast of and effectively utilise change.” (Harlow, 1976)

PR has been a profession since the dawn of the 20th century, but the roots of the idea of widely influencing public opinion and action can be found and during the movement to abolish slavery in England 100 years before that.

Because of these beginnings, one of the underlying assumptions of PR is that it should be socially responsible and go beyond organisational goals to play a constructive role in society.

Depending on the situation, PR will have a particular tone. For example, it could be focused on showing empathy and understanding, storytelling and creativity, or more persuasive messaging.

Messages are tailored to the relevant target audiences.

PR applies to all organisations from small businesses to corporations to governments or activists. They could be from the private, public or third sector. The third sector is an umbrella term for voluntary and community organisations such as social enterprises.

Some of the tools used for PR are:

Owned media (e.g. website)

Earned media (e.g. newspapers)

Shared media (e.g. social networks)

Sponsorships and fundraising

Face-to-face

Photography

Moving images (video)

Print (e.g. newsletters)

Events (e.g. conferences)

Public Speaking
New Writers: Submission Guidelines
By: Kelly Eden
Tags: Write For Us, Writing, Submission Guidelines, Writing Tips, Creativity

New Writers: Submission Guidelines

Write for Inspired Writer

Photo by Corinne Kutz on Unsplash

Are you an emerging writer with a story to share? You’re in the right place!

Inspired Writer aims to bring together experienced and emerging writers to share their knowledge and stories. We want to support new writers, like you, to share your story, develop your writing skills, and kick-start you career.

How to Apply to Be a Writer

Remember to become a follower of Inspired Writer and join our newsletter to keep up with the best stories, opportunities and mentoring, and writing tips.

Read all the guidelines carefully before submitting.

If we accept you as a writer, you can then submit your story directly to Inspired Writer.

*Please Note: We ONLY accept unpublished drafts from new writers. Please only submit one story at a time.
Creating Python Functions for Exploratory Data Analysis and Data Cleaning
By: Freda Xin
Tags: Data Visualization, Exploratory Data Analysis, Python, Data Science

Exploratory Data Analysis and Data Cleaning are two essential steps before we start to develop Machine Learning Models, and they can be time-consuming, especially for people who are still familiarizing themselves with this whole process.

EDA and Data Cleaning is rarely a one-time, linear process: you might find yourself going back to earlier sections and modifying the way you treat the dataset quite often. One way to speed up this process is to recycle some of the code you find yourself using over and over again. This is why we should create functions to automate the repetitive parts of EDA and Data Cleaning. Another benefit of using functions in the EDA and Data Cleaning is to eliminate the inconsistency of results caused by accidental differences in the code.
Think of Fiction Writing as an Act of Telepathy
By: Brian Rowe
Tags: Creativity, Mystery, Life, Film, Writing

Is Fiction Writing Really an Act of Telepathy?

You bet it is!

In all my years of writing fiction, especially in the last ten years when I’ve primarily been writing novels, I’ve never really thought of the practice as telepathy. Because for the most part, I’m telling myself the story, not talking to anyone else.

A reader picking up your book months, maybe years, down the road is an act completely separate from the author’s own experience, after all.

Being an author isn’t like being a filmmaker in this regard. If you’re the director of a movie, when everything is done, all the shooting and all the intensive post-production, you get to eventually screen your movie for an audience and see how you did.

You can sit in a large theater and watch what moments make people laugh, watch what parts make them jump out of their seats.

I used to make movies, and this part of the process was always a huge thrill. I remember screening one of my movies for a crowd of more than 100 people, and at the end, as the credits rolled, I heard at least five people sniffling, trying to hold back tears.

A comedic movie of mine a year later got big laughs, followed by a huge round of applause at the end.

Screening your own movie for an audience is something enthralling like no other, it really is.
Write Books in React With Next.js and MDX
By: Matthew Caseres
Tags: Programming, React, JavaScript, Nextjs, Typescript

Dynamic Paths in Next.js

This section is confusing if you don’t know how dynamic routes work in Next.js! Just try to get a general picture of what is going on… but the code is there for you to ponder.

Now that we have a list of routes and locations of content, we need to feed this into Next.js, create routes, and serve the content. I will not go too deep into the source code, but essentially we are performing a depth-first search of the URL tree and making a list of all nodes in the tree that we need to generate routes from. We make our object look something like this:

This might look kind of funny, but the point of this object of objects is that we can map over the keys in Next.js’s getStaticPaths . This generates pages for a page [...id].js :

And you can use the path provided to you in getStaticProps to retrieve metadata like the GitHub URL:

Now everything is hooked up.
Convolutional Neural Networks — Part 3: Convolutions Over Volume and the Convolutional Layer
By: Brighton Nkomo
Tags: Neural Networks, Machine Learning, Deep Learning, Artificial Intelligence, Computer Vision

Convolutional Neural Networks — Part 3: Convolutions Over Volume and the Convolutional Layer Brighton Nkomo Follow Oct 5 · 7 min read

This is the third part of my blog post series on convolutional neural networks. Here are the pre-requisite parts for this blog post:

Here are the subsequent parts of this series:

A pre-requisite here is knowing matrix convolution, which I have briefly explained in the first section of part one of this series. Also knowing something about the rectifier linear unit (ReLU) activation function could help you understand some points that I mentioned in section 2 here.

A Rubik’s Cube. Some readers may find it useful to visualize the 3D filters, which will appear later in this post, as Rubik cubes.

In the previous parts, we were considering images on a grayscale (black and white images). So what if the input images have color? It turns out that now we have to consider 3D convolutions instead of 2D convolutions.

Did you know? That our smart phones use what is called the

Organic light emitting diode (OLED) to generate the high-quality images that we see whenever we look at our smartphones. An OLED display is composed of a massive grid of individual pixels and each pixel is composed of a red green, and blue subpixel. This picture shows an OLED grid of microscopic individually controlled dimmable red, green and blue lights . There could be over 10 million of these lights on your phone!

1. Convolutions Over Volume

1.1 Convolutions on RGB images

FIGURE 1: Convolving a 6 by 6 by 3 volume with a 3D filter (a 3 by 3 by 3 filter).

An RGB image is represented as a 6 by 6 by 3 volume, where the 3 here responds to the 3 color channels (RGB). In order to detect edges or some other feature in this image, you could convolve the 6 by 6 by 3 volume with a 3D filter (a 3 by 3 by 3 filter) as shown on figure 1, not with a 3 by 3 filter, as we have seen in the previous parts. So the filter itself will also have 3 layers corresponding to the red, green, and blue channels. From figure 1, notice that the first 6 is the height of the image, the second 6 is the width, and the 3 is the number of channels. And your filter also similarly has a height, a width, and the number of channels. The number of channels in your image must match the number of channels in your filter (notice the last numbers are connected by a curved line on figure 1). Also, notice that the output image is a 4 by 4 image (or 4 by 4 by 1 image) instead of a 4 by 4 by 3 image. This will become clear once we look at multiple filters in section 1.2.

FIGURE 2: A representation of a 3D convolution.

Here’s a 6 by 6 by 3 image, and a 3 by 3 by 3 filter once again shown on figure 2. Notice that the 3 by 3 by 3 filter has 27 numbers, or 27 parameters, that’s three cubes.
Why Depression Is Becoming an Issue for Software Engineers — And How to Deal With It
By: Jonathan Ferreira
Tags: Software Development, Mental Health, Self-awareness, Self Improvement, Programming

Practical Steps

1. Ask for help

Software developers are often too proud to admit they need help. My first and most important advice is: Ask for help. There's a ton of ways to do that, like online or in-person physiological sessions (highly recommended) or speaking with a close friend/husband/spouse/mate/preacher. This will produce two important fruits. a) You will acknowledge to yourself that you need help, but more importantly, you're progressing in healing and that's releases dopamine. It will also b) bring outside wisdom and accountability to the table.

2. Set small fitness goals

Yes, you heard that. F-I-T-N-E-S-S. A person who lives a life based in healthy habits is someone with far fewer chances to face depression. Additionally, habits are built upon goals, and goals, once achieved, produce happiness and fulfillment, and then dopamine. Remember, developer, we are logical people. We are breaking a bad cycle and in order to succeed, we need to fill this place with something else. Walking, running, some sit-ups, etc. Start slow, but start.

3. Stop eating garbage

Your body needs some fuel to help you get out of this cycle, so make a deal with yourself. Set a goal of small changes, i.e., Tuesdays without eating/drinking sugar, or drink three liters of water three days a week. Again, the main objective is to define small yet achievable goals that will produce direct and indirect benefits for you.

4. Join a community and socialise

In times like we're living in, it's really hard to be physically connected to a community, but if possible, I'd highly recommend that. Churches, small interest groups, meetups, mentorship meetings, etc. We are social animals and we need to interact with others, for real.

5. Help others

Yes, help others, even if you’re not ready with your own healing. There’s tremendous power in helping others. As a side effect of this, a different perspective based on somebody else’s problems can shift your mind and change your inside almost instantly. Teach a course for free, mentor junior developers, or do a Q&A session with people trying to get into our profession.

“The best way to find yourself is to lose yourself in the service of others.” — Mahatma Gandhi

6. Find an accountability partner

This is a golden rule. There's no need for it to be a close friend if you don't want to. Find someone who you can drop a daily message sharing your progress. This person will be like your personal trainer. You will be amazed at how many people are willing to play this role and help others.
3 to read: LA Times debacle | Goodbye, alt weeklies | Amazing 1950s dataviz
By: Matt Carroll
Tags: Journalism, Dataviz, Alt Weeklies, Media, Data Visualization

By Matt Carroll <@MattCData>

Aug. 29, 2017: Cool stuff about journalism, once a week. Get notified via email? Subscribe: 3toread (at) gmail.

Originally published on 3toread.co

What’s the matter with the L.A. Times?: The editorial leadership of the L.A. Times was fired this week, in a stunning move. Well, here’s some of the jaw-dropping backstory that led to the axings. Ed Leibowitz of L.A. Magazine details the ineptness of editor-in-chief and publisher Davan Maharaj, who sat on major investigative pieces for years, but had time to ask reporters to check out his new Italian shoes. The story ran in December, but it’s worth resurrecting for it’s excruciating detail of dysfunction at the top of what was once a great newsroom.

Logo by Leigh Carroll (Instagram: @leighzaah)

2. What we lose when we say goodbye to alt weeklies: The Village Voice is dead, at least in print. So, pretty much, are alt weeklies across the country. Paul Farhi of the WaPo has a nice elegy of what we have lost when those quirky mixes of band reviews, massage parlor ads, and hard-hitting political coverage closed up shop. A good read.

3. Amazing graphics from the 1950s NYT archive: Most people tend to think of “data viz” as a relatively new phenomenon. Not quite. News orgs have been doing impressive data viz for as long as they have existed. Stuart A. Thompson on Medium has a wonderful piece on some spectacular (and forgotten) visualizations done at the NYT during the 1950s. Check out the cool space travel illustrations (all b&w, by the way).

Get notified via email: Send a note to 3toread (at) gmail.com

Matt Carroll is a journalism professor at Northeastern University.
Let’s Help Each Other Grow
By: Tim Lekach
Tags: Entrepreneurship, Small Business, Business, Entrepreneur, Marketing

This idea was born as a result of seeing Darrin Atkins article We Can Help Each Other.

I’m not even entirely sure if this is allowed on this platform but at this point all I have to say is eeF-it. We need to come together and support each other.

I want nothing more than to see others succeed in this world. And that’s why I feel compelled to post this article.

So, if you have a business, comment the link to your website, social media or simply explain how we can help support your business.

No request is too big or too small.

You may be surprised by the type of support you get from this article.

I look forward to seeing how I can help.

Let’s Help Each Other Grow!

oh. P.S. This article is monetized but I will donate all of the proceeds of this article, if any, to a business or entrepreneur that has commented and I will pick at random on Jan 15, 2020.

Gain Access to Expert View — Subscribe to DDI Intel
A guide to IBM’s complete set of data & AI tools and services
By: Jennifer Aue
Tags: Machine Learning, Design, Ibm Data Science, AI, Ibm Watson

A guide to IBM’s complete set of data & AI tools and services

So you can be a fearless wielder of AI

Before you scroll down through this page and think “There is no way I’m getting into all this, no ma’am,” just hold up a sec and let me tell you one, er… four, very quick things first:

As someone who was trained in Swiss grids, rubylith, and letterpress — and has had to make those archaic skills work through 20+ years of design jobs evolving from print, branding, websites, apps, platform strategies, software and most recently AI — I 100% promise if you, if you follow these tried-and-true rules, you’ll be fine no matter how much of the tech stuff you do or don’t absorb. Ready? Burn this into your brain:

No matter what new technology comes along…

Designing for any medium will always be, first and foremost, about satisfying user and business needs.

Starting with why and designing with the end in mind always leads to the right results.

And finally, good design is still good design. Poop is still poop.

And the one tip I’ll add to this list specifically for AI…

For every single step of every AI use case you come up with, ask yourself, “Couldn’t AI just do that for the user?” and “How does the user know if what the AI is doing/recommending is right?”

All this said, the more of the tech stuff you DO understand, the more confidently you’ll be able to push your concepts and your team to build better, cooler AI features. So here it is my design lovelies…

the shortest, sweetest summary of all of IBM’s data & AI tools and services and what you can use them for that you’ll find on the interwebs as of 3:27pm, Monday, October 12th, 2020!

What we’re about to cover:

The AI Ladder

Cloud Pak for Data

Watson Studio

— Watson Natural Language Classifier in Watson Studio

— Data Refinery in Watson Studio

— Cognos Dashboard Embedded Service in Watson Studio

Watson Assistant

Watson Discovery

Watson Natural Language Understanding

Watson OpenScale

Watson Knowledge Catalog

Watson AIOps

Which IBM services to use for the six main AI capabilities

Recommended links

— —

Note: The vast majority of this content is consolidated and simplified from other sources that I’ve pointed to in the Recommended Links sections. Can’t take any credit for real authorship here, just a clean-up for your speed learning enjoyment :)
Despite Dying at 25, Here’s How This Poet Wrote Some of the Best Poems in History
By: Destiny Femi
Tags: Self Improvement, History, Writing, Poetry, Creativity

After some time, Keats had a desire to try his hand on poetry. But when he started writing, he discovered a huge setback in his learning process — he had no instructor or group he could exchange ideas with and get feedback from.

To overcome this setback, he would have to read as many great poets as possible. He began to structure his writing to mimic the style of the writers he wanted to be like. Soon, he was creating verses in dozens, slowly but steadily getting better and discovering his own voice through the works of the writers he modeled himself after.

As his love for poetry grew, he needed to find better and harder challenges to help him master this skill that he loved so much. Next, he set out on a rigorous task to write a long poem of precisely 4000 lines. This poem, which revolved around the ancient Greek myth of Endymion, he decided, would be a test to his imaginative and inventive power.

For Keats, it was all about the tension and difficulty. To make this task even more rigorous, he set his deadline at an impossible seven months period, during which he would write fifty lines per day.

Draft of Endymion by John Keats; from the collection in the Morgan Library. Via Wikipedia commons

This task wasn’t just difficult, it made Keats hate his own writing. Just a few lines into writing the poem, he discovered another flaw in his prose — it contained too many unnecessary words (and clichés). Though it frustrated him that he wasn’t half as good as he’d fancied himself to be, he found solace in the fact that this exercise was helping him discover his flaws.

Despite the setback, he finished the poem. Though he considered Endymion to be a mediocre piece, the lessons he learned from the rigorous exercise will change his writing forever.

He had learned to never depend on how he felt to write. He now knew that no matter the mood he was in, what mattered was to get himself to start and continue writing. That the best ideas came when he was writing the poem itself. Not when he was sitting, ruminating over his inadequacies.

He had acquired the habit of writing quickly with intensity and focus. He’d learned to write through drudgery, fishing out his own faults. Armed with these lessons from years practice and self-criticism Keats would go on to produce some of the most memorable poems and odes that would be talked about long after he was gone.

The years between 1818 and 1819, before Keats became gravely ill, became perhaps the most productive two years in the history of Western literature.

Though he died in Rome from a tuberculosis infection in 1821 (at an early age of 25), his reputation grew rapidly because of the magnificence of his writings.
Where To Live If You Want To Escape Climate Change
By: Danny Schleien
Tags: Environment, Disaster Preparedness, Real Estate, Climate Change, Science

Where To Live If You Want To Escape Climate Change

You don’t need to be a doomsday prepper to prepare for a warmer world.

Photo by Fabian Mardi on Unsplash

The world’s getting pretty crazy, isn’t it?

I’m only 25, but I can’t recall living through times as strange and surreal as these.

And lurking in the background of all the distressing headlines we see every day is the omnipresent threat of climate change.

The climate crisis is rearing its very ugly head these days. From massive wildfires in California to deadly hurricanes in the Atlantic to record-breaking monsoon flooding in South Asia, the natural world is reminding us every day that thanks to our exploitative attitude toward the planet, we’re running on borrowed time.

I’m cautiously optimistic we’ll solve the climate crisis in due time.

But while you should really hope for the best (since we’re talking about the whole freaking planet), you should prepare for the worst.

If you’re like me, you might be thinking about how you can get away from all this craziness while protecting yourself from the worst long-term impacts of climate change.

Out of personal curiosity, I recently did some Internet digging to evaluate where I might relocate in the long run to keep my head above water (literally and figuratively). I’m assuming we won’t all join hands and start a love train to Mars or the Moon with Elon Musk and/or Jeff Bezos as our overlords, although nothing is out of the realm of possibility these days!

I limited my search to the United States, although you can apply the rationale I detail below to consider where else you can live in a climate apocalypse.
Have a Happy, Healthy Holiday!
By: Marilyn Flower
Tags: Holidays, Health, Mental Health, Christmas, Wisdom

Have a Happy, Healthy Holiday!

Merry Christmas! Happy Kwanza! Happy New Year!

Photo by freestocks on Unsplash

Happy, Happy Holidays from all of us at Middle-Pause! Whatever and however you celebrate, may your joy overflow and spread out in all directions, blessing everyone and everything.

We are pleased to announce our Podcast Episode #3 launches on January 1, 2021. Start the new year with our very own Debbie Walker interviewing yours truly!

If you’ve missed our first two episodes, catch them here: STOMP! Stronger Together on Middle-Pause. We aim to inspire you while doing what you gotta do!

In the meantime, lift your spirits with these posts…

Delighted by a Magician’s Mistake — Aikya Param

All I want for Christmas is a Good Night’s Sleep — Marilyn Flower

Putting Up the Lights on Remembrance Day — Alison Acheson

How to Choose the Power of Joy in Your Life — Debbie Walker
When Parallelism Beats Concurrency
By: The Bored Dev
Tags: Programming, Java, Concurrency, Software Development, Software Engineering

Introduction

To start with, let’s take a brief look at what we should be understanding as concurrency and parallelism.

Concurrency

In layman’s terms, concurrency is the situation where, in order to solve a problem, we process it in a way that one single task gets processed concurrently by multiple workers; that said, let’s imagine a big array where we have multiple workers and each worker does some work on the next element to be processed in the array, until we reach the end of the array.

When concurrency takes place, some synchronisation is required in order to access the resource that gets shared among all the existing workers (in our example, this is the array).

The complexity and performance overhead involved in this approach could be very significant in some cases; we’ll try to demonstrate this later on in this article.

Parallelism

On the other hand, parallelism is the situation where, in order to solve a problem, we decide to take a “ Divide and Conquer” approach and split the problem into multiple small problems. This allows us to solve multiple smaller problems in parallel.

How would it look like using the same example we’ve shown above? Let’s imagine that we have four parallel workers. A parallel solution would be as shown below:

As you can see, the difference is substantial; we have now four smaller tasks that can be solved independently. Knowing this, we can affirm that the elements get processed sequentially by each worker! When each worker has completed the task, we can then combine their results to produce one single and final result.

The main benefit of this is that we don’t need to synchronise the access of the workers to a shared resource; now, each worker has its independent chunk of work to process.

I hope the difference between these two is clear, but what’s left? We have one more case, which is quite obvious: sequential processing.

In a standard sequential process, we’d be processing our task in sequential order with a single worker. This is the more common approach, and in some cases, it could surprisingly be the fastest!

If you need to have a better understanding about concurrency and multi-threading and why we do things in the way we do them nowadays, I’d recommend that you read the book “Java Concurrency in Practice” by Brian Goetz.
How to Choose the Best Open Source Module For Your Needs
By: David Passarelli
Tags: Programming, Software Engineering, Software Development, Open Source, Startup

Consider the Code

I don’t necessarily take the time to read every line of code in a module that I am considering using in my project. But I do check for the basics:

Does the module follow a coding standard? A good way to check is if the module includes a lint command, or if the README indicates that a standard is being followed.

I do have my own preference for coding in JS, but I’m not super concerned about which standard is used, as long as a standard is used. This is important because there’s a good chance that I will need to consult a module’s source code at some point in time, and I do not want to deal with code that is poorly formatted.

Does the module include automated tests? Are those tests automatically run by a CI system, and does the README include a badge indicating the current build/test state?

Cloud-based continuous integration services are so ubiquitous these days that I don’t think there is a reasonable excuse not to use them, even for the smallest of projects.

(There is a side note that I think is important to mention here. Just because a badge indicates that the latest build failed, it doesn’t mean the build actually failed. Sometimes web caching gets in the way of indicating the true status, and so I always click on these badges to check for myself. I’ve also found that the build matrix may include environments or versions that I’m not concerned about, and their failure may or may not be an issue.)

Does the module use Semantic Versioning, and is the current release at 1.0.0 or higher?

SemVer isn’t always the easiest concept to apply correctly, but I always award points to those who are trying. I also tend to avoid modules that are stuck in “not ready for prime time” mode (meaning, they proudly indicate they are major version 0 and were initially released months or years ago), even if they are at least somewhat popular and fill an important need. To me, this is a big red flag. Remember what I said above about reliability and consistency? I’ve come to the conclusion that using SemVer is a sign of respect and consideration for others. We should stand by our work, and if we’re ready to release something “into the wild,” so to speak, then we should at least provide and communicate some guarantee about stability.

Does the API generally conform to a style or pattern (functional vs. imperative, fluent, declarative, etc.) that I’m comfortable programming against?

API design is a little tricky to get right, and some APIs definitely make more sense than others. One of the good things about having multiple choices between different modules is that we can often pick one that matches our preferences.
The Roles of Service Mesh and API Gateways in Microservice Architecture
By: Tanmay Deshpande
Tags: Software Development, API, Microservices, Software Engineering, Programming

Service Mesh

A service mesh is a technology that manages service-to-service communication within a distributed software system. Service meshes manage the east-west type of network communications. East-west traffic indicates a traffic flow inside a data center, Kubernetes cluster, or a distributed system.

Service meshes consist of two important components:

Control plane

Data plane

The proxies residing next to the app are called the data plane, while the management components coordinating the behavior of proxies are called the control plane.

Service Mesh — Image credit: Author

A service mesh allows you to separate the application’s business logic from the network, reliability, security, and observability.

Networking and traffic management

A service mesh allows you to perform dynamic service discovery. A sidecar proxy can help you do the load balancing and rate limiting. It can help you do traffic splitting to perform an A/B type of testing, which can be helpful for canary releases.

Observability and reliability

A service mesh supports distributed tracing, which helps you do advanced monitoring (number of requests, success rates, and response latencies) and debugging. It even has the capability to tap service-to-service communication to better understand communication.

Since the service mesh provides health checks, retries, timeouts, and circuit breaking, it improves the baseline reliability of your application.

Security

A service mesh allows mutual TLS among the services, which helps increase the security of service-to-service communication. You can also implement access-control lists (ACLs) as security policies.

A true service mesh/sidecar proxy supports a wide range of services and implements L4/L7 traffic policies.

There are numerous service meshes available on the market. The following are a few of them:

You can find a number of articles on the internet comparing the service meshes listed above.