fabiochiu/medium-articles huggingface dataset:
Write for Inspired Writer
By: Kelly Eden
Tags: Writing, Self, Writing Tips, Creativity, Submission Guidelines

Update for Holiday Period: To lighten the load over the next month we will not be taking any new writers. If you entered the recent Christmas Writing Contest and would like to submit your story for publication that’s fine. Any other new writers please apply after Jan 4th 2021. Thank you!

If you’d like to write for Inspired Writer, we’d love to hear from you. Please carefully read our writer’s guidelines below. If you wish to be added as a writer, all the details are in the guidelines.

You will need to send us a draft you think is a good fit for Inspired Writer with your application.

Experienced writers go here:

Emerging writers go here:

Who are we:

Kelly Eden

Hi, I’m Kelly Eden. I live on the edge of a beautiful rain-forest in New Zealand with my family.

I’m a professional writer with over 12 years of experience in the writing industry. I’ve been featured in newspapers, blogs, and online and print magazines. Some of these include Thought Catalog, Mamamia, Zoosk, Natural Parent, Family Times, and Highly Sensitive Refuge.

I have also worked with clients from around the world, helping writers, businesses, and government organisations to develop and polish their content.

I am passionate about writing and love to see others find and share their own unique writing voices.

Ash Jurberg

G’day I’m Ash Jurberg. I live in the world’s most livable city — Melbourne, Australia.

I have worked in Marketing for (a LONG time) and have written copy for advertisements, websites, brochures, and blogs during that (LONG) time.

I am a passionate writer who believes that being a successful writer is a combination of 50% writing skill and 50% marketing skill.

I would love to be able to assist writers of all levels in how best to promote, market and sell their skills — across Medium — and other markets.
Migrating Single-Page Applications from Heroku to AWS
By: Justin Menestrina
Tags: Single Page Applications, Software Engineering, Frontend Architecture, Software Architecture, AWS

Our deployment architecture can be divided into two main categories:

SPA hosting URL Routing

As mentioned earlier, this split comes from the desire to separate our hosting and routing layers. By splitting them up, we are better able to design for future changes.

SPA Hosting

“Hosting” simply refers to where the SPA files (html, css, and javascript files, etc.) physically live, and a URL that can be hit to access them.

Our new design uses Amazon Simple Storage Service (S3) for hosting. Each SPA is given its own S3 bucket. Some of the key advantages of S3 are its high availability (99.9%) and robust backups. For any public-facing website, where being available at all times is critical, these features provide major advantages. S3’s biggest drawback is that it can only host static artifacts. Because our SPAs are client-side rendered, this limitation is ok.

For URL access, SSL security, and caching, Guild uses Cloudfront (not to be confused with Cloudflare, already mentioned, for DNS and routing). AWS Cloudfront provides us with a unique URL that can be used to access the application hosted in a bucket.

Tips for S3 hosting

Keep separate buckets for each SPA. Doing so will help keep each SPA isolated and allows for independent deployment lifecycles.

Enforce naming standards to enable discoverability. You want it to be fairly obvious what a bucket does, just by looking at the name. We name our SPA buckets after the Github repo they serve, and the domain name they are hosted on. (E.g. {github-repo-name}.{domain-name}.com ). This allows us to easily identify which application a bucket hosts.

). This allows us to easily identify which application a bucket hosts. Remember to make use of object “metadata”. We use metadata to provide HTTP headers like MIME types and cache control headers.

URL Routing

URL routing emerged as the most challenging aspect of our deployment architecture. It also proved to be the most vital in accomplishing the decoupling we were going for.

Previously, each application employed its own unique way of routing its public-facing URL (i.e. the route a user visited to see a page) to the URL that Heroku provided for an application deployment.

To address these challenges, we broke up URL routing into two parts:

Translating a public request Translating an asset request

Translating a public request
Display Rich Text In The Console Using Python
By: Christopher Tao
Tags: Technology, Software Engineering, Artificial Intelligence, Software Development, Programming

Are you using the terminal more than GUI-based operating systems? Or, do you usually develop command-line interface programs using Python? Recently, I found an amazing Python library called “Rich” on GitHub, which already has 15.2k stars by the time I’m writing this article.

It can not only display text in colour and styles in the terminal but also emoji, tables, progress bars, markdown and even syntax highlighted code. If you have read one of my previous articles below:

The “Rich” library can almost do everything that I have introduced in that article, as well as some other awesome stuff.

In this article, I’ll introduce this library with examples to show its capabilities.

Introduction & Installation

Image source: https://github.com/willmcgugan/rich (Official GitHub README.md)

The image above shows the major features that the library can do. You can find the project on GitHub:

The library requires Python 3.6.1 or above to be functional. Installing the library is quite simple because we can use pip .

pip install rich

Rich Printing

Let’s first look at how it can print.

Tags and Emoji

It supports formatting tags and emoji.
Applying Deep Learning To Airbnb Search
By: Malay Haldar
Tags: Machine Learning, Artificial Intelligence, AI, Data Science, Deep Learning

Presumably all such challenges can be overcome by accumulating sufficient amounts of data. But the Airbnb inventory has an additional twist. Each listing can be booked only once for a night. As soon as the listing is booked, it becomes unavailable for any subsequent search for that night, so no further data accrues for it. This makes the data per listing very sparse. The plot below shows the normalized distribution of impressions per listing, and the long tail nature of the data available.

Consequently, the solution to the ranking problem demands broad generalization from a few examples, memorizing the top results in this case is of little use.

The task of deciphering guest preference has an equally fascinating side. We get to see the guests when they are planning their trips, which is not everyday for most. But once they arrive, the guests engage heavily with search and usually have very specific preferences and budgets. One guest may end up booking a bargain private room, while another a lavish penthouse, but both may start by searching for a place for 2 in Rome. To effectively personalize the search experience, we need to process a huge volume of data in realtime.

The large number of dimensions and the relative sparsity of data on both guest and host side creates the perfect storm where quite a few of the known optimization techniques break down.

So how do we address all these challenges? The tl;dr version of the answer is: neural networks. But how we reached there and how we continue to evolve is a tale with twists and turns. Celebrating the culture of sharing, in a first ever in-depth look at Airbnb search ranking, we have published a paper that describes our journey to deep neural networks.

Access the Paper

Applying Deep Learning To Airbnb Search, pdf 8 pages, published in arXiv, Oct 2018.

We hope the story of our setbacks and triumphs provides insights useful to other teams facing similar challenges. We always welcome ideas from our readers. For those interested in hands on action, please check out the open positions for engineers and data scientists on the search team.
AI Summit | San Francisco and Wired to Wear
By: Joanna Strom
Tags: Artificial Intelligence, AI, IoT, Internet of Things, NASA

Here are early confirmed Keynote Speakers obtained from the website: Tad Smith, President & CEO, Sotheby’s; Alan Boehme, Global Chief Technology Officer, VP of IT Services, and Chief IT Innovation Officer, Proctor & Gamble; Srini Venkatraman, Chief Data Scientist, Boeing; Swatee Singh, Vice President and Distinguished Architect, American Express; Nav Kesher, Head of Data Science, Facebook; Zoubin Ghahramani, Chief Scientist, Uber; Melody Ayeli, Director of Software Licensing and Complex Acquisitions, Toyota; Ningyu Chen, VP Data and Platforms, Macy’s; Thomas Stubbs, Vice President, Engineering and Innovation, The Coca Cola Company; Steve Chien, Senior Research Scientist, Autonomous Systems, NASA; David Newman, SVP Innovation, Wells Fargo; Ashish Lahoti, SVP, Global Data Technology, Charles Schwab; Anand Mariappan, Senior Director Of Engineering Data Science, Search and ML, Reddit; Dinakar Deshmukh, VP Data Sciences and Analytics, GE Aviation; Ganesh Harinath, VP, Head of AI Platform and Applications, Verizon; Gilad Lotan, VP and Head of Data Science, Buzzfeed; Piers Lingle, SVP of Customer Experience, Comcast; Denis Garagic, Chief Scientist AI and Machine Learning, BAE Systems; Danny Lange, VP of AI and Machine Learning, Unity Technologies; Ravi Boggaram, Sr Director, Digital Services, PepsiCo; Gil Arditi, Head of Machine Learning Platform, Lyft; Keoki Jackson, CTO, Lockheed Martin; Hans-Aloys Wischmann, VP Research and Innovation, Philips Research; Steve Eglash, Executive Director, Research Initiatives, Computer Science Dept, Stanford University; Mark Young, CTO — Climate, Bayer; Nimit Jain, Global Director of Data Science, Novartis; Rajeev Kalamdani, Sr. Analytics Scientist, Ford; Scott Mathis, CISO, RBC; Charles Givre, VP Lead Data Scientist, Deutsche Bank; and Somnath Banerjee, Director, Machine Learning, Walmart Labs.

Because we are on the advent of the most important events of this year, yet alone, this decade, it’s a monstrous undertaking pulling together the “best of the best” …so here we are.

25–26 SEPTEMBER 2019 | THE PALACE OF FINE ARTS

At the Museum of Science+Industry in Chicago, the “Wired to Wear” Exhibit is now open. See how this futuristic wearable technology will define how we dress such as a jacket that “barks” instead of your dog, racing suits that deploy with airbags, and headgear (with lasers) that help those with Parkinson’s the assistance to visualize their walking.
Modern-Day Architecture Design Patterns for Software Professionals
By: Tanmay Deshpande
Tags: Software Engineering, Software Development, Software Architecture, Programming, Design Patterns

Circuit Breaker

Distributed systems should be designed by taking failures into consideration. These days the world has adopted microservices, and these services are mostly dependent on other remote services. These remote services could fail to respond in time due to various reasons like network, application load, etc. In most cases, implementing retries should be able to solve the issues.

But sometimes there may be major issues like service degradation or complete service failure in and of itself. It’s pointless to keep retrying in such cases. That’s where the Circuit Breaker pattern can be useful.

Circuit Breaker. Image by the author.

The above diagram showcases the implementation of the Circuit Breaker pattern, where when Service 1 understands there are continuous failures/ timeouts when Service 2 is called, instead of retrying, Service 1 trips the calls to Service 2 and returns the fallback response.

There are popular open-source libraries, like Netflix’s Hystrix or Reselience4J, that can be used to implement this pattern very easily.

If you’re using API gateways or sidecar proxies like Envoy, then this can be achieved at the proxy level itself.

Note: It’s very important that there’s sufficient logging and alerting implemented when the circuit is open in order to keep track of requests received during this time and that the operations team is aware of this.

You can also implement a circuit breaker with the half circuit open to continue to service clients with degraded service.

When to use this pattern

When a service is dependent on another remote service, and it’s likely to fail in some scenarios

When a service has a very high dependency (for example, master data services)

When not to use this pattern
AWS — Amazon EKS vs ECS — Comparison
By: Ashish Patel
Tags: Eks, AWS, Ecs, K8s, Kubernetes

EKS vs ECS — Key differences:

Networking

With ECS, ENIs can be allocated to a ‘Task’, and an EC2 instance can support up to 120 tasks. With EKS, ENIs can be allocated to and shared between Kubernetes pods, enabling the user to place up to 750 Kubernetes pods per EC2 instance (depends on instance type) which achieves a much higher container density than ECS.

Ease of Deployment

ECS is a more straightforward platform while EKS is a little more complex and requires more configuration.

As ECS is AWS native solution, there is no control plane, Where as EKS is based on Kubernetes, there is a control plane (managed).

ECS is a fully managed service, it doesn’t have as many moving parts, components and functionality as k8s does. Once it is set up, users can start deploying tasks straight away from AWS console.

EKS is a bit trickier and requires a more complex deployment configuration and expertise. After setting it up in the AWS console, user is required to configure and deploy Pods via Kubernetes, using Kops.

Security

ECS and EKS, both supports IAM roles per task/container.

Previously, it was not possible to associate an IAM role to a container in EKS, but this functionality was added in late 2019.

Compatibility/Portability

ECS is an AWS proprietary technology, whereas EKS based on Kubernetes which is open source.

While both ECS and EKS are AWS-specific services, Kubernetes-as-a-service can be used with any cloud provider and on-premise. By using a managed Kubernetes service like EKS, you’re still investing in a cloud-agnostic platform, both in terms of tech and expertise. This isn’t the case for ECS, though, as it’s offered exclusively for AWS.

Pricing

For both, EKS and ECS — You simply pay for the compute resources consumed by your containers, whether that be on EC2 instances or serverless compute with Fargate.

EKS is subjected to an additional cost of running Master nodes (Control plane), as EKS manages the master nodes (that run across multiple availability zones) separate from the worker nodes ($0.10/hour/cluster). While that’s not the case with ECS.

Community and Support

Kubernetes is an open-source platform with a large and ever-growing community behind that brings apparent advantages. On the other hand, being proprietary, ECS gets less community support, although you’ll have excellent corporate support from AWS.

Kubernetes (EKS) is way more widespread than ECS, given its multi-platform support.

Namespaces

Contrary to ECS, Kubernetes has the “namespaces” concept, which is a feature intended to isolate workloads running in the same cluster. This seems like an insignificant feature but it offers a lot of advantages.

For example, you could have staging and production namespaces running in the same cluster while sharing resources across environments, reducing spare capacity in your clusters.
Where Would We Be Without Music?
By: Victoria Ponte
Tags: Coping Strategies, Self, Music, Mental Health, Pandemic

richard hewat for Unsplash

Where Would We Be Without Music?

Fortunately, it won’t be shut down

He who sings scares away his woes. — Cervantes , writer

Music events may have been cancelled because of the coronavirus pandemic, but we may need music in our lives more than ever. Lucky for us, there isn’t a way to make it go away.

If we can’t go to bars and concert halls to hear live music, we can stream nearly unlimited performances of every genre into our homes if we are lucky to have an internet connection. We are also free to make our own music in our homes and in the streets.

We like to listen to music when we are both happy and sad. Upbeat tunes lift our mood, and sad ones can make us feel as if someone understands us.

From Psychology Today:

Upbeat songs of your own choosing can pull you out of a funk but sad tunes can do the same. Freud wrote that we feel better when we are exposed to art with pathos because we feel understood, as if we are not alone, and that we are connected to a clan of like-minded beings. Further, we experience the artist as a benevolent figure who sees, cares, guides, and expresses what we might not be able to voice ourselves.
Re-animated History
By: Vlad Alex, Merzmensch
Tags: Published Tds, Artificial Intelligence, AI, Ai And Creativity, Culture

Get this newsletter By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information about our privacy practices.

Check your inbox

Medium sent you an email at to complete your subscription.
Tissue Stiffness Regulates Immune Responses
By: Tara Fernandez
Tags: Medicine, Health, Cell Biology, Science, Immunology

Cells are remarkably sensitive to the mechanical properties of their environment, changing their behavior as a result of physical forces exerted by the surrounding tissues. Over the last 20 years, scientists have uncovered that this phenomenon, known as mechanosensing, dictates a plethora of cellular responses, from cell division and differentiation to the activation of the immune system.

After a sprain, for example, joints swell and become stiff and mechanically rigid. How the physics of this tissue rigidity influences the dynamics of immune cells such as T and B lymphocytes, however, has remained unknown.

A team of researchers at UCLA may have found a missing piece of this puzzle: a molecule called yes-associated protein, or YAP. Through a series of experiments using genetically-modified mice, they found that T cells use YAP as a sensor of tissue rigidity, responding to these mechanical cues by either accelerating inflammation or hitting the brakes on it.

The study’s senior author, Manish J. Butte explains, “In cases of both autoimmune activity and fighting off infection, YAP acts as an accelerator of the immune response in stiff tissues, and as a brake when there is mechanical softness.” Specifically, YAP is able to access the metabolic control panel of T cells, flicking the switch for increased nutrient uptake to cope with a spike in energy requirements upon sensing tissue rigidity.

This new paradigm of immune system regulation has significant implications on future therapeutic strategies for diseases that have an immune component: autoimmune diseases, chronic infections, and some forms of cancer.

“This is a whole new pathway that can be targeted to drive up immune responses in order to better fight infections, or slow down immune activity in conditions such as diabetes,” said Butte. YAP-driven pathways are a prime target for potential drug targets and the subject of future research.

In follow up studies, Butte and colleagues plan to investigate whether YAP’s molecular pathways could be leveraged to treat mechanically rigid tumors, such as pancreatic and breast cancers. The team hypothesizes that YAP’s keen ability to sense tissue stiffness could be leveraged to amplify anti-tumor immune responses.

Sources: News Medical Life Sciences, Journal of Experimental Medicine.
The Most Important Race in Tech
By: Ella Alderson
Tags: Technology, Science, Tech, Politics, Future

The difference between classical and quantum computers can be represented by Google’s claim to quantum supremacy in 2019. To achieve this claim of quantum supremacy, one of Google’s 53 qubit quantum computers (called ‘Sycamore’) was able to do a calculation in just over 3 minutes when it would have taken even the world’s most powerful classical computer over 10,000 years to process the same calculation. There has been some dispute over this claim by rival company IBM who says that the calculation would have taken a matter of days and not the tens of thousands of years that Google claimed. But the main idea behind this computing transformation persists. Quantum tech aims to be faster, more efficient, and revolutionary in ways its classical counterparts never will be. And it’s able to do this because of one advantage in particular.

When classical computers store their information it’s either as a 1 or a 0. These 1’s and 0’s we call ‘bits’. But quantum computers can leverage a property known as superposition where their quantum bits (‘qubits’) can be a 1, a 0, both a 1 and a 0 at the same time, or some combination of both numbers. By taking advantage of the quantum trait of superposition these new computers can make great computational strides where classical technology just isn’t enough. The fact that subatomic particles like electrons exist in a superposition of states makes it difficult for classical computers to simulate them. This ability to simulate particles and their quantum properties is how quantum computers succeed where classical computers fail.

A visualization of classical computer bits and the larger range of qubits. Image by Pranith Hengavalli.

Yet despite their computational prowess and their promises for the future, quantum computers are really quite fickle machines. Their chips function only at temperatures close to absolute zero (−459.67 °F or −273.15 °C). The focus for qubits has been, up until now, using small superconducting loops. The oscillations of these loops means that they are systems with 2 possible quantum states, making them a viable basis for a qubit. But attention has recently turned to trapped-ion systems, a technology that formed the basis of quantum circuits before superconducting loops were in use.

Trapped-ion systems use the energy level of ions trapped in electric fields to form the computer’s qubits. The quantum states of the ions last longer than their superconducting counterparts. And where superconducting qubits only interact with other nearby qubits, the ions’ interactions are widespread and allow them to run certain complex calculations more easily. They are, however, slower at these interactions, something which may hurt their ability to correct realtime errors.

Within the world of quantum computing there is a race between materials as much as there is a race between countries.
From $0 to $100,000: The Business Side of Writing Is the Hardest to Learn and the Easiest to Implement
By: Tim Denning
Tags: Marketing, Writing, Social Media, Money, Business

From $0 to $100,000: The Business Side of Writing Is the Hardest to Learn and the Easiest to Implement

If you can do it for free, you can do it for money. If you can’t, game over.

Photo by Martin Katler on Unsplash

Treating writing like a business is crucial. It’s not about the money.

When writing is a business, you market it.

When writing is a business, you invest in it.

When writing is a business, you learn about the business.

When writing is a business, you market the business.

That last point is key. The old days of just writing, hitting publish, and letting the book publisher gatekeepers take care of everything for you are over.

If you write, you have to market your work.

But marketing is a messed up word. It causes people to shove selfie poles in front of their faces and fall head over heel in love with themselves. We don’t want that. You’re a writer, not an insecure influencer searching for a Lambo in the Hollywood Hills.

A friend of mine calls what I’m referring to here as the “business side of writing.” I’ve made a business out of my writing and gone from $0 to more than $100,000. I believe you can do the same with a shift in thinking.

As writers, most of us suck at the business side of writing.

I don’t market my blog posts as much as I should. I publish and prey like many other writers. The world is shifting though.
Getting Entertained by the Creativity of Others Recharges Your Own
By: Simona Rich
Tags: Creativity, Entertainment, Talent Development, Motivation, Inspiration

In the past, I used to be totally focused on my work. Hardly ever did I allow myself to get entertained.

Whenever I would relax into some leisure, be it watching a video or attending a gathering of friends, there was always this uneasiness in the background of my mind nagging me not to waste my time.

I was happy with my productivity and I accomplished a lot in the twelve years of self-employment. I wasn’t even stressed since I really loved what I did. Yet there was an imbalance in my life — it was all about giving and there was no time for receiving.

I was always uneasy that were I to truly like the entertainment of others, I may not want to produce my own. I was afraid of getting addicted to the creations of those perfect at what they do — what if I would become too lazy to create my own? the reasoning went.

Workaholism is an addiction, and like all addictions, it blocks creative energy. — Julia Cameron

Finally, there came a stage in my life where I allowed myself to fully rest from my work and to enjoy the talents of others. I can honestly say that only for about two years now I’m able to guiltlessly relax into such a way of being.

The main cause of such a change was my boyfriend. We complement each other because he tends to be all entertainment and I tend to be all work. He taught me how to fully relax and not feel bad about consuming interesting content.
Late Season Blooms
By: Julie Artz
Tags: Creativity, Personal Development, Gardening, Life Lessons, Writing

Each spring, I survive the long, gray Pacific Northwest winters by counting down the minutes until the cherries blossom. This annual occurrence, usually around mid-March, is when the drab gray skies of Seattle recede into the background at last, outshone by a riot of pink and white blossoms so prolific that they fall like snowflakes all over town.

The first spring we lived here, I waited as the buds swelled on the two flowering plums we had in the yard at our new house. Each morning, I’d check them on the way out to the mailbox, hoping for a riot of color. The neighbors’ trees started to put on their show, while our trees remained stubbornly bare.

This is what I though my trees *ought* to be doing. But they remained stubbornly bare.

“Maybe our yard is too shady,” I said to my husband. “Maybe they’re not healthy enough.”

The leaves emerged, which convinced me they’d never bloom. The flowering cherries and plums I’d seen all around our neighborhood, all around greater Seattle, all bloomed before they leafed out, which is part of what made them so spectacular — nothing but flowers and the backdrop of the occasional beautiful blue sky.

By early April, when rain showers and wind had knocked down most of the gorgeous blossoms, I was ready to get out the chainsaw because my trees still hadn’t bloomed.

Patience is not always my strength, and I’m apt to pull out the metaphorical chainsaw when I get impatient for results. I’ve been at a particularly low point in my journey as a writer and feeling like slashing and burning everything in sight. Even as my freelance editing business grows, my writing has had a series of setbacks over the past six months that have left me questioning whether I’ll always be a better coach than I am a writer, whether I’ll ever hold one of my quirky, magical books for young readers in my hands instead of just my heart.

Then this week, I got a little reminder from Mother Nature that I just needed to be patient a little longer. Those flowerless trees I was talking about? They’re flowering plums, and they’re a beautiful double-flowering variety that blooms after the tree leafs out instead of before. So weeks after the other trees are back to looking like plain old trees, the magic starts in our yard. Our trees are gorgeous, they’re just on a slightly different timeline than all the others. Just like me.

I’m glad I didn’t take a chainsaw to those trees. If I had, I’d have missed out on this little bit of magic:

My double-flowering plum showing us its magic at its own pace.

If you’re feeling like your time will never come to bloom, or feeling shabby in the shadow of friends and colleagues who are full of showy blooms while your branches still feel bare, all I can say is don’t give up. Those blooms are inside you, they’re just not quite ready to emerge. When they do, they’ll be magic.
The Complete Guide on How to Code Review
By: Nick Bull
Tags: Software Engineering, Programming, Software Development, Code Review, Startup

The Complete Guide on How to Code Review

Best practices from Apple, Google, Microsoft, Amazon, and Facebook

Photo by Nicole Wolf on Unsplash

What’s the end goal of the code review?

To make sure that changes work? To validate if code is following the style guide? To check if new changes won’t break anything? All of these? None of these?

All of these questions are necessary parts of the code review, but none of them are its ultimate goal.

The primary purpose of the code review is to make sure the solution is solving the problem in the best possible way — from both the code and product perspective.

All code-review practices are designed to meet this end goal.

But how do you determine if the solution you’re reviewing is the best way to solve the problem? In other words, how do you code review?

Let’s deep dive into it.
4 Simple Emails You Should Send Every Week
By: Michael Thompson
Tags: Creativity, Relationships, Self Improvement, Productivity, Inspiration

I used to despise email. That changed, however, when my wife asked me an interesting question: “How did you feel about it when you first started using it?”

In a flash, I was transported back to my freshman year of college. My buddies and I would huddle around one of the few computers in the library taking turns sending messages to our high school girlfriends who went to other schools. We thought it was rad. And don’t get me started on how giddy I used to feel when the old PC warmed up and meowed “You’ve got mail.”

But much like our girlfriends at the time, the love affair with email came to an end. As the years passed, it became a thorn instead of a rose.

A few years ago, however, when my wife asked me about my first impression she got me thinking about all the good things it has brought into my life.

Yes. Email can be a pain.

Yes. Your inbox can be interpreted as “other people’s to-do list.”

Yes. Marketers talk more than they listen.

But it can also be a glorious tool to tighten your relationships and mobilize your career. In fact, since my family and I traded in city life in Barcelona for the Catalan countryside, email has turned into my weapon of choice and it has played a vital role in helping me become a full-time writer and career coach.

So let your hatred for email simmer for a minute and see if the 5 types of emails resonate with you. Each of them will only take you a few minutes to write but the effects of them may end up seriously improving your quality of life.
A Journey From React to Vue.js
By: Muhammad Anser
Tags: JavaScript, React, Reactive Programming, Vuejs, Programming

A Journey From React to Vue.js

What it was like to switch to Vue after four years with React

I have been working with React for the last four years. Now I’ve just started working with Vue. What you can do in React can also be done in Vue. There are some important conceptual differences, though, some of which reflect Angular’s influence on Vue. Honestly, I am getting the feeling that Vue is the combination of the best parts of Angular and React.

One of the key factors for the comparison was that Evan You, creator of the Vue framework, used React as a source of inspiration for new framework development.

“I figured, what if I could just extract the part that I really liked about React and build something really lightweight without all the extra concepts involved? I was also curious as to how its internal implementation worked. I started this experiment just trying to replicate this minimal feature set, like declarative data binding. That was basically how Vue started. ”— Evan You

My focus in this article will be to highlight the differences between the two.

To begin with, let’s look at some facts:
Understanding the Builder Design Pattern
By: Carlos Caballero
Tags: JavaScript, Programming, Design Patterns, Typescript, Builder Pattern

Example 2: Creating Video Game Heroes

You've now seen the classic theoretical example so you understand the responsibilities of each of the classes in the pattern. Now, here’s another example where we identify each of these classes with a specific problem.

Our problem is the representation of different heroes or characters in a video game. We’ll focus on the classic WoW (World of Warcraft) game, in which the heroes are divided into two races: Humans and Orcs. Each of these heroes can have armor , weapon s or different skills depending on whether the hero is a human or orc.

In the event that the builder pattern is not applied, it causes a constructor to be defined in the Hero class with a long list of parameters ( race , armor , skills , etc), which in turn causes logic to be defined in the constructor to decide whether the armor is human or orc. So, with this initial solution, the problem is coupled since any change in the business logic would mean having to rewrite quite a few pieces of code, with hardly any possibility of reuse.

So, the first thing we have to do is stop and think about how the builder pattern helps us solve this problem. So, we focus on showing the UML diagram that solves this problem and we begin to implement it.

Builder pattern applied to the Hero creation problem of a video game.

In this example, we follow the same order as in the previous example and we start with the model or object that we want to build flexibly.

The Hero class defines the race , armor , weapon and skills properties. All these attributes could be objects but to keep this example simple we’ve left them as character strings.

The HeroBuilder interface defines methods for specific builders. Let’s observe look at how the Hero object is configured, little by little, with setArmor , setWeapon , and setSkills . Finally, we have the build method that finishes the configuration of the object and extracts the Hero object.

Once the builder is defined (as an abstract class or interface) we must build the two specific builders that our problem requires: HumanHeroBuilder and OrcHeroBuilder . In the demo code we have completed with a different string according to each builder. It’s important to note that the build method of each of the builders returns the built object ( Hero ) and resets the state of the object, so it can build another one.

The last element of the pattern is the Hero-Director class that allows you to store configurations repeated throughout the code. In our example, we created three Hero creation setups. For example, the createHero method builds a complete hero — that is, it assigns armor, abilities, and weapons. We also create a hero without any equipment with the createHeroBasic method. Finally, to illustrate another configuration, the createHeroWithArmor method is defined, which returns a hero for whom only the armor has been assigned.
Creating Custom Face Datasets: From Zero To Hero
By: Shubham Panchal
Tags: Machine Learning, Artificial Intelligence, Image Processing, Data Science, Data

Face recognition, classification, and detection have numerous real-world applications. Right from the mobile device’s camera to your office’s attendance system, the ever-increasing demand for face detection systems has given rise to a number of online APIs, services, and apps that perform this task for developers, for instance, Firebase MLKit, Google Cloud Vision, Microsoft Face API, IBM Visual Recognition.

If you’re a seasoned ML developer, you’d like to train your own model and using your own data. The reason why you’re collecting your own data could be,

The task which the model will preform is different from the services/APIs which tech giants offer. Your model performs badly in real-world situations as the existing dataset does not include varied samples.

We’ll walk through this short story on how to collect images from the internet like a pro!

We’ll try to make an end-to-end solution to our problem. Given a keyword, we’ll directly get a .npy file containing cropped and resized images.

You can find the Python implementation in this Colab notebook,

Google Image Search is the place where we’ll search for images.

Yeah absolutely! But not randomly downloading each image and cropping faces out of them. We’ll use a web crawler which will one by one download each image from a Google Search result and saves it on your machine.

We’ll use the icrawler package available in PIP to scrape images from the Google Search.

Snippet 1

You can use more attributes for type , size and license also. See here.

Wait, the downloaded images are very big. I only need a cropped part of the face.

We know, that face classification systems will require cropped and aligned face images like the ones shown below. Somehow, we need to crop multiple faces from these images.

Cropped face images.

We can use dlib. It’s a face detection system for Python. Given an image, it outputs a bounding box. Using this bounding box, we can crop the image and store it separately in a list . We may also resize the cropped image using PIL to the size which our model will require like 224 * 224.

Snippet 2

That’s All! The image dataset is ready to use as a .npy file! You may visualize the cropped images using matplotlib like,

Snippet 3

The output will look like this,
Image Processing with OpenCV
By: Aymane Hachcham
Tags: Machine Learning, Data Science, Computer Vision, Image Processing, Opencv

Image Processing is a field of knowledge that falls in Computer Vision. The premises of machine learning were first laid down by computer vision theory, applying a whole set of techniques to process and analyze imagery data to extract valuable information that computers and machines may use for a wide range of applications, such as:

Stitching : Turning overlapping photos into a seamless panorama

: Turning overlapping photos into a seamless panorama Morphing : Changing or merging through a smooth transition different pictures to create a new one

: Changing or merging through a smooth transition different pictures to create a new one 3D Modeling : Converting 2D snapshots into a 3D composition

: Converting 2D snapshots into a 3D composition Face detection : Identifying human faces in digital images

: Identifying human faces in digital images Visual Authentication: Automatically logging your family members onto a computer or a mobile while sitting in front of a webcam

The intended purpose of Vision is to reconstruct the complex, colorful, and vivid three-dimensional world from the most simple and elementary building blocks leveraging on reliable models that would help to interpret images in an estimable way.

Preprocessing or namely image processing is a prior step in computer vision, where the goal is to convert an image into a form suitable for further analysis. Examples of operations such as exposure correction, color balancing, image noise reduction, or increasing image sharpness are highly important and very care demanding to achieve acceptable results in most computer vision applications like computational photography or even face recognition.

For this article, I propose to introduce some of the commonly used image processing techniques leveraging a very popular Computer Vision library, OpenCV. I’ll try to describe briefly how each operation works and focus more on tackling the topic more practically, giving you all the code you need so you have a hands-on experience of the material.

The image given below will be used in our experiments.
Advertising to Facebook “Fans” Alone Contradicts Marketing Theory
By: Alysha Lalji
Tags: Marketing, Social Media, Facebook, Facebook Marketing, Advertising

Not only does this mean that a very few people are seeing a brand’s content, but those exposed to this content are only the page “Likes” or, as we used to call them, Facebook ‘fans’.

This implies that many marketers believe there’s value in consistently publishing content for their social fan community alone — essentially, driving business results through a loyalty approach.

The problem is, we know loyalty campaigns (across any channel) have consistently proven ineffective at driving brand growth.

Penetration Campaigns outperform Loyalty Campaigns, every time.

In the 880 cases analyzed from the IPA databank by Les Binet & Peter Field in 2007, the percentage of cases that reported “very large” business effects (sales, market share, penetration, loyalty, price sensitivity, or profit) for loyalty campaigns was only 44%, while penetration campaigns had an effective success rate of 77% for the metrics outlined above.
NaNoWriMo Superhero on Medium: Leo, 6th grader
By: Julie Russell
Tags: Creativity, Writing, Fiction, Nanowrimo Superheroes, NaNoWriMo

Welcome to the tenth, and last November episode of NaNoWriMo Superheroes and Superheroines on Medium! In this episode we meet Leo, who completed his first novel last year during NaNo at age 10, and this year said on November 9 to his parents, I have to start writing! November is the month I write a novel. Hear more from Leo about novel writing in the interview, and I hope you’re as inspired as I am by this young writer.

Leo, pondering the nature of penguins.

I asked Leo the same questions as his schoolmates Janet and Adi from Barrington Lloyd-Lovett, Josh Gauthier, and my daughter Ava.

If you leave a response to this post, I’ll make sure Leo sees it.
How to Not Suck at Design, a 5 Minute Guide for the Non-Designer.
By: Marc Hemeon
Tags: Design, Innovation, Marketing, UX, Business

6. Use a list view for results, if order is important

Most mobile and web apps have some type of search and there can be some healthy design debates on how to display the results.

If order is important then a list view is most effective.

If order doesn’t matter and you would like to encourage discovery (like Pinterest or AirBnB) then a grid view will encourage a gaze pattern to support discovery.

7. Design in black and white first, add color later

Designing in black and white will keep the focus on solving and designing the core experience of your app.

Color evokes strong emotional responses and often interrupts our ability to focus on the core design problem.

8. Create comfortable design

Hand strain is a real issue, consider the graphic below from Luke Wroblewski’s amazing article: Responsive Navigation: Optimizing for Touch Across Devices.

Luke lays out the areas of a phone that are easiest to reach and use (at least for right handers) — I’d love to see apps have a setting where you can switch the interface from right hand dominant to left hand dominant.

Many effective mobile apps keep navigation and core actions in the bottom third of the phone.

Image Credit: Luke Wroblewski Responsive Navigation: Optimizing for Touch Across Devices

9. Borrow Color Palettes

Color is a bit of an elusive dark art. I highly recommend heading over to Dribbble and searching for “Color Palettes” or use a color palette generator like Coolors or Color Claim.

Save yourself the hours of endless debate and second guessing.

10. Use Apple and Google OS Conventions

Apple and Google have created incredible resources for anyone building software for Android or iOS.

For example, the Google Material spec has guidelines, resources, colors, icons and components to help jump start the design of your app.

Apple has the HIG — their Human Interface Guidelines, which outline everything you need to know on how to design an iOS app.
DeOldify: GAN based Image Colorization
By: Vlad Alex, Merzmensch
Tags: AI, Published Tds, Artificial Intelligence

Get this newsletter By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information about our privacy practices.

Check your inbox

Medium sent you an email at to complete your subscription.
Enable Multiple Apps Access to the same Google Cloud Services
Tags: Mobile App Development, Google Cloud Platform, Google, Android, Android App Development

Understanding Mobile Development

Enable Multiple Apps Access to the same Google Cloud Services

Google Cloud Services can be shared

Photo by Alex Machado on Unsplash

It has been some time since I worked on GoogleMap. The key is there, and everything is working fine. There’s no need to access to Google Cloud Console.

Lately, I work on introducing App Bundle and uses a different Key to Upload the App.

For internal testing, I sign with the upload key. All works fine until I notice that the Google Map is no longer working!!

Forgotten how enabling the map work, I wonder if I need a new key, a new certificate, etc? Try google around, and nothing speaks of this question I have.

Google Cloud Services

After quick hunting around, Google Map is part of Google Cloud Services. To enable any services, do check out the formal guide by Google.

The entire setup can be summarized by the diagram below

Setup the Billings (you can have more than 1 if you like) Create a project and attached to which one you like to be billed In the Project, you then select what API you would like to enable (e.g. Google Map, Place API) Lastly, create the API Keys, and decide if the Keys should access to all API or restrict it to some of it.

If my App is signed differently, do I need a new API Key?

Now, the problem I faced is, given I’m using the App Bundle, and it is signed differently before uploading. For internal testing, we have a local APK that is signed with the uploading Keystore.

So how can I get it to have access to all the same access as the main App to be upload to the store?

Option 1: Create a different key for the internal App.

To enable this to work, other than create the new key, I need to

Change my build Gradle to have different Key Access for my internal testing app vs the production version Need to set all the API Key restrictions the original key has. Any future changes need to be catered to as well.

The pro of this approach though is, you can have separate control of which API services to be access by Internal and Production.

Option 2: Sign the APK with the same original Keystore

This is back to square one, where the internal App Keystore signature is the same as production. No changes to Gradle, nor need to introduce a new API Key.

The drawback is the benefit App Bundle, where we no longer need to have the original Keystore has been discarded.

Option 3: Use the same API Key, but support for different Keystore signature.

Wow, actually this is possible.

To do so, you can go to menu →APIs & Services →Credentials

From there you’ll get a list of API Keys. Select the one that you’re currently using