ma

‘A World Without Clouds. Think About That a Minute’: New Study Details Possibility of Devastating Climate Feedback Loop

By Jessica Corbett Common Dreams “We face a stark choice [between] radical, disruptive changes to our physical world or radical, disruptive changes to our political and economic systems to avoid those outcomes.” As people across the globe mobilize to demand … Continue reading




ma

Humanity ‘Sleepwalking Towards the Edge of a Cliff’: 60% of Earth’s Wildlife Wiped Out Since 1970

By Julia Conley Common Dreams “Nature is not a ‘nice to have’—it is our life-support system.” Scientists from around the world issued a stark warning to humanity Tuesday in a semi-annual report on the Earth’s declining biodiversity, which shows that … Continue reading




ma

After 30 Years Studying Climate, Scientist Declares: “I’ve Never Been as Worried as I Am Today”

By Jake Johnson Common Dreams And colleague says “global warming” no longer strong enough term. “Global heating is technically more correct because we are talking about changes in the energy balance of the planet.” Declaring that after three decades of … Continue reading




ma

Scientists Warn Crashing Insect Population Puts ‘Planet’s Ecosystems and Survival of Mankind’ at Risk

By Jon Queally Common Dreams “This is the stuff that worries me most. We don’t know what we’re doing, not trying to stop it, [and] with big consequences we don’t really understand.” The first global scientific review of its kind … Continue reading




ma

‘A World Without Clouds. Think About That a Minute’: New Study Details Possibility of Devastating Climate Feedback Loop

By Jessica Corbett Common Dreams “We face a stark choice [between] radical, disruptive changes to our physical world or radical, disruptive changes to our political and economic systems to avoid those outcomes.” As people across the globe mobilize to demand … Continue reading




ma

‘Coming Mass Extinction’ Caused by Human Destruction Could Wipe Out 1 Million Species, Warns UN Draft Report

By Jessica Corbett Common Dreams Far-reaching global assessment details how humanity is undermining the very foundations of the natural world     On the heels of an Earth Day that featured calls for radical action to address the current “age … Continue reading




ma

Insects Are ‘Glue in Nature’ and Must Be Rescued to Save Humanity, Says Top Scientist

By Jake Johnson Common Dreams Rapidly falling insect populations, said Anne Sverdrup-Thygeson, “will make it even more difficult than today to get enough food for the human population of the planet, to get good health and freshwater for everybody.” A … Continue reading




ma

The future of UX research is automated, and that's a problem

If you compare the UX research methods we use today with the methods we used 16 years ago, something interesting emerges. We see that UX research is becoming increasingly remote and increasingly unmoderated. In other words, we're moving to a world where UX research is becoming automated. We can learn a lot from automated research. But it comes at the price of understanding our users.




ma

The minimalist field researcher: What's in my bag?

When carried out in a lab, user experience research is gear heavy. You need technology to record audio, video and the screen of the device under test. In contrast, when carried out in the field, user experience research is more lightweight. Even so, there are a few non-obvious items of kit that I find essential on a field visit.




ma

What is cognitive load and why does it matter in web and interface design?

Successful design manages cognitive load. Cognitive load is a technical term for “mental effort,” more specifically it’s the total amount of mental effort required for a given task. Completing any task requires some level of mental effort. This includes learning new information, analyzing stimuli, and working with short and long-term memory. Mental energy which has […]

The post What is cognitive load and why does it matter in web and interface design? appeared first on Psychology of Web Design | 3.7 Blog.




ma

Does the hero image matter?

An overwhelming majority of websites incorporate the “hero image” design pattern. This is where a large, visually impactful image is used at the top of the page along with key messaging to emotionally engage the target audience. As one of the first elements one sees, the actual imagery used is often subject of attention during […]

The post Does the hero image matter? appeared first on Psychology of Web Design | 3.7 Blog.




ma

Call to Action Marketing Strategy

In the past I’ve written about the importance of having a separate call to action for each stage of the buyers journey. In this article I’m going to expand on that concept and outline how to identify a strategy for each of these calls to action. First I’ll summarize why you need to have a […]

The post Call to Action Marketing Strategy appeared first on Psychology of Web Design | 3.7 Blog.



  • Psychology of Design
  • Strategy and Planning
  • Web Design

ma

Monthly Portfolio Inspiration - May 2020

Monthly Portfolio Inspiration - May 2020

tobiasMay 05, 2020

Hi! I’m Tobias van Schneider. I’m the co-founder of Semplice, a portfolio tool by designers for designers. We’re teaming up with Abduzeedo to share inspiring design portfolios each month. Here we’ll curate the best online portfolios from graphic designers, photographers, product managers, design studios, visual artists and more – all created from scratch using Semplice.

Web design

Andrew Footit

See portfolio →

Henrik & Sofia

See portfolio →

Ken Bam

See portfolio →

Gambade

See portfolio →

Mary Catherine Pflug

See portfolio →

Hello Dave

See portfolio →

Lennert Antonissen

See portfolio →

Zac Ong

See portfolio →

Florian Stumpe

See portfolio →

Stephie Muller

See portfolio →




ma

Intercellar - Accidental Anomalies of Particle Wallpapers

Intercellar - Accidental Anomalies of Particle Wallpapers

AoiroStudioMay 07, 2020

Intercellar is a series of free wallpapers designed 'by accident' by Crtomir Just. I mentioned 'accident' because 'the images are the results of errors in particle simulations'. I think they are super stunning and crispy. We took the liberty to share Crtomir's entire collection and their 'download links'. You can download the 8K wallpapers, this feature is a reminder of what we used to do back in the days. We are definitely living in different times but it's always a nice reminder to remember what we were made of.

These images are the results of errors in particle simulations. While accidentally trying to scrub through the timeline, the otherwise predictable simulation explodes and is forced to take strange turns by blindly filling the gap between missing frames.

About Crtomir Just

Crtomir is an art director and 3D artist based in Murska Sobota, Slovenia, his work slightly shifted and it’s plain awesome. Make sure to follow his work on Behance and store.

 

 

 

 

 




ma

Cinematic Street Photography by Victor Cambet

Cinematic Street Photography by Victor Cambet

AoiroStudioMay 07, 2020

Victor Cambet is a freelance graphic designer and an amazing photographer currently based in Montreal, QC. What initially caught my eyes on Victor's work is his perspective of how he sees things through his camera lenses. It's pure, raw, and cinematic street photography. That's one of the reasons why we decided to feature his work on ABDZ. Being a personal fan of Victor's, I have always enjoyed his shots from my hometown of Montreal (and still do). I have lived in this city for more than 30 years and it's quite a pleasant sentiment. Definitely check out his Instagram, you will get to follow the 'behind-the-scenes' stories and you will notice how Victor is passionate and patient with his photography. Make sure to give him some love.

La rue est un film où chaque inconnu en devient le personnage principal.

About Victor Cambet

Victor is a freelance graphic designer currently based in my hometown of Montreal, Qc in Canada. You should definitely follow Victor and check out his store.

View this post on Instagram

La rue est un film...

A post shared by Victor Cambet (@victorcambet) on

View this post on Instagram

L’homme au chapeau.

A post shared by Victor Cambet (@victorcambet) on

View this post on Instagram

De l’ombre à la lumière.

A post shared by Victor Cambet (@victorcambet) on

View this post on Instagram

Un regard.

A post shared by Victor Cambet (@victorcambet) on

View this post on Instagram

Une silhouette dans la nuit.

A post shared by Victor Cambet (@victorcambet) on

View this post on Instagram

À découvert.

A post shared by Victor Cambet (@victorcambet) on


ma

Abelardo Morell, Camera Obscura: Early Morning View of the East Side of Midtown Manhattan

Abelardo Morell
Camera Obscura: Early Morning View of the East Side of Midtown Manhattan, , 2014
Website - AbelardoMorell.net

Abelardo Morell was born in Havana, Cuba in 1948. He immigrated to the United States with his parents in 1962. Morell received his undergraduate degree in 1977 from Bowdoin College and an MFA from The Yale University School of Art in 1981. In 1997 he received an honorary degree from Bowdoin College.

His publications include a photographic illustration of Alice’s Adventures in Wonderland (1998) by Dutton Children’s Books, A Camera in a Room (1995) by Smithsonian Press, A Book of Books (2002) and Camera Obscura (2004) by Bulfinch Press and Abelardo Morell (2005), published by Phaidon Press. Recent publications include a limited edition book by The Museum of Modern Art in New York of his Cliché Verre images with a text by Oliver Sacks.

His work has been collected and shown in many galleries, institutions and museums, including the Museum of Modern Art, The Whitney Museum of American Art, the Metropolitan Art Museum in New York, The Chicago Art Institute, The San Francisco Museum of Modern Art, The Houston Museum of Art, The Boston Museum of Fine Art, The Victoria & Albert Museum and over seventy other museums in the United States and abroad. A retrospective of his work organized jointly by the Art Institute of Chicago, The Getty in Los Angeles and The High Museum in Atlanta closed in May 2014 after a year of travel. Abelardo will be having his first show at the Edwynn Houk Gallery in New York opening October 23, 2014 and will run until December 20, 2014 featuring a selection of new pictures.




ma

Christmas




ma

How to Create a Full-Screen Welcome Mat Optin Form in WordPress

Want to create a full-screen optin form in WordPress? Love it or hate it… using a welcome mat is one of the easiest ways to capture your users’ attention. Even big brands like Forbes use a welcome mat to promote their campaigns. In this article, we’ll show you how to properly create a welcome mat […]

The post How to Create a Full-Screen Welcome Mat Optin Form in WordPress appeared first on IsItWP - Free WordPress Theme Detector.




ma

12 Best GoDaddy Alternatives for Domain & Web Hosting (2020)

Are you looking for the best GoDaddy alternative for domain registration and web hosting? Without a doubt, Godaddy is one of the most popular names when it comes to registering domain names and hosting your business online. Over the last 22 years, GoDaddy has managed to establish a stronghold in the market. In this article, […]

The post 12 Best GoDaddy Alternatives for Domain & Web Hosting (2020) appeared first on IsItWP - Free WordPress Theme Detector.




ma

How to Create an Amazon Affiliate Store (Step by Step)

Do you want to add an Amazon affiliate store with WordPress? Amazon is the world’s largest online store that helps thousands of merchants to sell products online across the world. They have an official affiliate system that allows affiliate marketers like you to recommend Amazon products to your website’s audience and earn an affiliate commission. […]

The post How to Create an Amazon Affiliate Store (Step by Step) appeared first on IsItWP - Free WordPress Theme Detector.



  • WordPress Tutorials
  • amazon affiliate store
  • amazon affiliate store with wordpress
  • create an amazon affiliate store
  • create an amazon affiliate store with wordpress
  • how to create an amazon affiliate store

ma

Managing Your Money After a Brain Injury

Managing money is complicated, especially for people with a brain injury who may have trouble remembering what they spent or creating a budget. Adam shares some tips from online banking to keeping a spending journal.




ma

Maintaining Relationships with Family and Friends After TBI and PTSD

Adam talks frankly about his challenges keeping up with family and friends since his injury; he has good intentions but following through remains difficult.




ma

At College, Move Beyond the Stigma of Asking for Help After a Brain Injury

If extra time on a test or memory aids can make life easier during college, why not use them? Adam talks about moving past the "stigma" of using disability services and getting the help you need to succeed in college.




ma

5 Product Image Tips For High Converting Landing Pages

They say that a picture is worth a thousand words, but have you ever stopped to think what your Ecommerce images are saying about the products you’re trying to sell online? Are your photos helping your products to jump off the screen and convince shoppers to buy them? Or, are your product images quite simply […]

Original post: 5 Product Image Tips For High Converting Landing Pages

The post 5 Product Image Tips For High Converting Landing Pages appeared first on Daily Blog Tips.




ma

Every Day A Post of WordPress Tips and Tricks until Christmas!

The time has come and our loyal reader know already our traditional Advents Calendar. For the people who don’t know, […]




ma

Escaping the maintenance mode trap

WordPress makes upgrading very easy . You simply click “Update now”, wait for a minute or two and your system […]




ma

Inform user about automatic comment closing time

To prevent spammers from flooding old articles with useless comments you can set WordPress to close comments after a certain […]




ma

Customizing the User Registration Notification eMails

If a new user registers at a WordPress site the new user and the administrator receive notification mails: User: From: […]




ma

The return of language after brain trauma

Language sets humans apart in the animal world. Language allows us to communicate complex ideas and emotions.  But too often after brain injury be it stroke or trauma, language is lost. 




ma

How to Help Someone With Post-Traumatic Stress Disorder

Listening without judgement is one of the best things you can do for someone with PTSD.




ma

Remapping the Neural Pathways of Humanity

The pandemic has changed the daily lives of everyone. How we work, how we shop, and how we interact with each other are all shifting. Comparing life as it is now with how it used to be can lead to sadness or despair and what's called "ambiguous loss."





ma

Can Business Save the World From Climate Change?

By Bianca Nogrady Ensia A growing number of initiatives are giving corporations the resources to help achieve global climate goals regardless of government support “We are still in.” On June 5, 2017, with these four words a group of U.S. … Continue reading




ma

Electric Cars and Surging Solar Spell Market Doom for Fossil Fuels

By Jessica Corbett Common Dreams Analyses show how demand for electric vehicles and rapidly falling renewable energy prices could take down oil and gas industry As an increasing number of nations make plans for banning gas and diesel vehicles within … Continue reading



  • Business & Economy

ma

Children’s Exposure to Secondhand Smoke May Be Vastly Underestimated by Parents

Tel Aviv University Press Release Smoking parents misperceive where and when their kids are exposed to cigarette smoke, Tel Aviv University researchers say Four out of 10 children in the US are exposed to secondhand smoke, according to the American … Continue reading




ma

McDonald's Workers in Denmark Pity Us

Nicholas Kristof: Before the coronavirus pandemic, I crept behind [expletive] Danish lines to explore: How scary is Denmark? How horrifying would it be if the United States took a step or two in the direction of Denmark? Would America lose its edge, productivity and innovation, or would it gain well-being, fairness and happiness?




ma

Video Shows a Man Screaming 'Fake Pandemic' at a Florida Officer

A nearly two-minute, profanity-laced tirade at a code officer at a Miami Beach grocery store is the latest example of mounting tensions in the US over wearing masks to stem the spread of the coronavirus.




ma

Scientists Obtain 'lucky' Image of Jupiter

Astronomers have produced a remarkable new image of Jupiter, tracing the glowing regions of warmth that lurk beneath the gas giant's cloud tops. The picture was captured in infared by the Gemini North Telescope in Hawaii, and is one of the sharpest observations of the planet ever made from the ground.




ma

Everything is Figureoutable with Marie Forleo

You know her, the award-winning host, author and speaker, Marie Forleo returns to the podcast to talk about her new book , Everything Is Figureoutable. In the New York Times Best-Selling book, Marie gives readers tactics to look at setbacks positively and overcome obstacles creatively, so you can start reaching your dreams.  In this episode, we sit down to talk about how her life experiences influenced the book. She shares stories of fear, failure and always having fun have impacted her life. And we discuss a quote of hers (that I repeat all the time) that can help you get into the creative zone. Enjoy! FOLLOW MARIE: instagram | twitter | website Listen to the Podcast Subscribe   Watch the Episode  This podcast is brought to you by CreativeLive. CreativeLive is the world’s largest hub for online creative education in photo/video, art/design, music/audio, craft/maker, money/life and the ability to make a living in any of those disciplines. They are high quality, highly curated classes taught by the world’s top experts — Pulitzer, Oscar, Grammy Award winners, New York Times best selling authors and the best entrepreneurs of our times.

The post Everything is Figureoutable with Marie Forleo appeared first on Chase Jarvis Photography.




ma

Imagine What’s Possible – On Stage /w Humans of New York Creator Brandon Stanton

My book Creative Calling is out! Thanks for all your love, support, and help getting it out into the world. We kicked off celebrations in Seattle with over 700 people in attendance to talk about Creativity with my good buddy, Humans of New York creator, Brandon Stanton. I recorded the session for you. Hope you enjoy! FOLLOW HUMANS OF NEW YORK: instagram | twitter | website Listen to the Podcast Subscribe   This podcast is brought to you by CreativeLive. CreativeLive is the world’s largest hub for online creative education in photo/video, art/design, music/audio, craft/maker, money/life and the ability to make a living in any of those disciplines. They are high quality, highly curated classes taught by the world’s top experts — Pulitzer, Oscar, Grammy Award winners, New York Times best selling authors and the best entrepreneurs of our times.

The post Imagine What’s Possible – On Stage /w Humans of New York Creator Brandon Stanton appeared first on Chase Jarvis Photography.




ma

Design Your Life with Creative Calling + Debbie Millman

Debbie Millman is one of my dear friends, a powerhouse creative and someone who inspires me every day. When I was developing my online companion class to the Creative Calling book, of course I had to ask Debbie to join me on stage for a conversation around designing our life with intention. Debbie’s insight is pure gold. AND – this is just one of the segments from the class. If you already have my book, you can access the entire class for free. All you need to do is visit www.creativelive.com/creativecalling and sign up there. Enjoy! FOLLOW DEBBIE: instagram | twitter | website Listen to the Podcast Subscribe   This podcast is brought to you by CreativeLive. CreativeLive is the world’s largest hub for online creative education in photo/video, art/design, music/audio, craft/maker, money/life and the ability to make a living in any of those disciplines. They are high quality, highly curated classes taught by the world’s top experts — Pulitzer, Oscar, Grammy Award winners, New York Times best selling authors and the best entrepreneurs of our times.

The post Design Your Life with Creative Calling + Debbie Millman appeared first on Chase Jarvis Photography.




ma

Finding True North with Chelsea Yamase

So many of us are going along on the path that we think we want, only to realize that something is missing. The same was true for today’s guest, Chelsea Yamase (@chelseakauai) who found herself heading into a potential career that was slowly killing her soul. Through a winding path of architecture, graphic design, journalism, and a myriad of side hustles, she found herself faced with the big question: pursue the unconventional life of your dreams or stick to a “real job”. She lept. Today, Chelsea is a sought after model, photographer, influencer and movement enthusiast from Hawaii with a focus on mindful living. She’s been featured in Travel and Leisure, Cosmopolitan, Condé Nast Traveler, to name a few, and and worked with numerous brands such as Canon USA, Adidas, Google, Athleta, GoPro, DJI Global and The National Parks Foundation. In this episode: How to give yourself structure that can help you take a leap into an unconventional lifestyle What can you make with what’s around you? Constraints are a path to creativity and a key gaining new perspectives As money and opportunities come in, how do you stay in alignment with your values and the work you really want […]

The post Finding True North with Chelsea Yamase appeared first on Chase Jarvis Photography.




ma

Pay Attention to What Ignites You with Jody MacDonald

Imagine this: Your job is good, and safe, but it’s not fueling you anymore. You decide to quit your “real” job and sell all your belongings to live a life of adventure. And just as you are waving your last goodbye, the unthinkable happens and it changes everything. Like most of us, award winning photographer Jody MacDonald didn’t know what her path would be. Yet when her wake up call came, she listened. From train hopping in the Sahara to paragliding in the Himalaya, she’s no stranger to adventure and exploration. Her work blends insightful storytelling, big adventure expeditions and social change in the hopes of promoting the preservation of wild places. Men’s Journal named her “One of the 25 Most Adventures Women in the Past 25 Years and National Geographic said she’s one of the top female adventure photographers pushing the limits. I’ve admired Jody’s work from afar for years. Her life story and career arc is remarkable. It set her on a path to tackle some of the life’s biggest questions and what she has learned is pure gold. In this episode: Why waste your time on things that make you unhappy? What Jody does to tune into […]

The post Pay Attention to What Ignites You with Jody MacDonald appeared first on Chase Jarvis Photography.




ma

10 Breaths Back to Love with Kamal Ravikant

Kamal Ravikant was in a dark place. After four years of pouring his heart, soul, and money into his tech startup, it blew up. He lost everything – including himself. In a moment of desperation, a vow deep within came to the surface: to love himself. Though it was a bit of a foreign concept, he set out to undo the misery in his head through the lens of love. The practice Kamal formed became the self-published book: Love Yourself Like Your Life Depends on It. It sold over a half a million copies and is now newly expanded. In our conversation Kamal shares his ruthlessly practical way he unwound the negative thoughts and more importantly, made it last. In our conversation we explore: Mindset as a practice, including the 7 minute meditation Kamal uses to break old mental patterns Kamal shares his advice in getting unstuck, including giving yourself time to simply live Our brain is a monkey gone bananas. Pain, joy, loneliness, love are a universal part of the human condition such that no matter our individual circumstance we are all trying to tame it. and much more… Enjoy! FOLLOW KAMAL: instagram | twitter | website Listen to the Podcast […]

The post 10 Breaths Back to Love with Kamal Ravikant appeared first on Chase Jarvis Photography.




ma

Finding Mastery: A Conversation with Michael Gervais

This week I’m in the hot seat with one of the leading experts in mindset training. Dr. Michael Gervais is a high performance psychologist working in the trenches of high-stakes environments with some of the best in the world. His clients include world record holders, Olympians, internationally acclaimed artists, MVPs from every major sport and Fortune 100 CEOs. Dr. Gervais is also the co-founder of Compete to Create, an educational platform for mindset training. Today I’m on his podcast Finding Mastery which unpacks & decodes each guest’s journey to mastery through mindset skills and practices. If you’ve been a listener for awhile, you’ll know this is one of my favorite topics and something I wholeheartedly credit to unlocking my best work. In this episode: How I learned to trust my intuition Dr. Gervais aptly calls out two journeys to mastery: one of self, and one of craft. I share my perspective on how mastery of craft is a required step to mastering oneself We’re taught that making mistakes is bad so we should avoid them. What we really should be taught is it’s not about avoiding mistakes, it’s about error recovery. and much more… Enjoy! FOLLOW MICHAEL: instagram | twitter […]

The post Finding Mastery: A Conversation with Michael Gervais appeared first on Chase Jarvis Photography.




ma

Make It Til You Make It with Owen Smith

If you happened to come across a Youtube video I put out not too long ago featuring Owen Smith, you’ll know the backstory how we connected for this episode of the Chase Jarvis LIVE show. Of course, we hoped to meet in person, but for now we’re coming LIVE to you from our living rooms. Owen Smith is a comedian, actor, writer, and the creator of a new YouTube show: Notebooks. He has performed stand-up on Conan, Colbert and is a regular at the Comedy Store Hollywood and Comedy Cellar in New York. He’s written for shows such as ABC’s Black•ish, Survivor’s Remorse (Starz), The Arsenio Hall Show, The ESPY’s (on ESPN with Drake and ABC with Joel McHale), The Guy’s Choice Awards, Whitney(NBC), Deon Cole’s Black Box (TBS), Are We There Yet (TBS), and Everybody Hates Chris. In this episode, we explore Owen’s Notebook project (so good!) and go deep into growing and developing as an artist, putting work into the world, learning to trust your instincts, finding the right time/place for your ideas, and so much more. Definitely check out his new show Notebooks. So relatable and funny for any creator. Enjoy! FOLLOW OWEN: instagram | twitter | […]

The post Make It Til You Make It with Owen Smith appeared first on Chase Jarvis Photography.




ma

Do What You Can Do with Cellist Joshua Roman

Legendary musician Yo-Yo Ma called my guest today the future of classical music in America. Joshua Roman is a cellist, accomplished composer and curator whose performances embrace musical styles from Bach to Radiohead. At 22, he became the youngest principal cellist in the Seattle Symphony. Now as a soloist, his performances have been viewed by millions. I was able to catch up with Joshua on this special LIVE performance CreativeLive TV. Wherever you are in the world, hope this episode lifts you up. Please be sure to give Joshua a shout on the socials. Enjoy! FOLLOW JOSHUA: instagram | twitter | website Listen to the Podcast Subscribe   Watch the Episode This podcast is brought to you by CreativeLive. CreativeLive is the world’s largest hub for online creative education in photo/video, art/design, music/audio, craft/maker, money/life and the ability to make a living in any of those disciplines. They are high quality, highly curated classes taught by the world’s top experts — Pulitzer, Oscar, Grammy Award winners, New York Times best selling authors and the best entrepreneurs of our times.

The post Do What You Can Do with Cellist Joshua Roman appeared first on Chase Jarvis Photography.




ma

Hope in a Sea of Endless Calamity with Mark Manson

Today on the show, I’m chatting with New York Times bestselling author Mark Manson. He is the #1 New York Times Bestselling author of Everything is F*cked and The Subtle Art of Not Giving a F*ck, the mega-bestseller that reached #1 in fourteen different countries. Mark also runs one of the largest personal growth websites in the world, MarkManson.net, a blog with more than two million monthly readers and half a million subscribers, making him one of the largest and most successful independent publishers in the world. In this episode, we take a deep dive into the creative process. How to spend your time when you’re trying get comfortable with being uncomfortable. Mark helps bring into focus the up-side that this moment has created for us while also sharing some of the tactics he while quarantined. Enjoy! FOLLOW MARK: instagram | twitter | website Listen to the Podcast Subscribe   This podcast is brought to you by CreativeLive. CreativeLive is the world’s largest hub for online creative education in photo/video, art/design, music/audio, craft/maker, money/life and the ability to make a living in any of those disciplines. They are high quality, highly curated classes taught by the world’s top experts — Pulitzer, Oscar, […]

The post Hope in a Sea of Endless Calamity with Mark Manson appeared first on Chase Jarvis Photography.




ma

Markdown Comes Alive! Part 1, Basic Editor

In my last post, I covered what LiveView is at a high level. In this series, we’re going to dive deeper and implement a LiveView powered Markdown editor called Frampton. This series assumes you have some familiarity with Phoenix and Elixir, including having them set up locally. Check out Elizabeth’s three-part series on getting started with Phoenix for a refresher.

This series has a companion repository published on GitHub. Get started by cloning it down and switching to the starter branch. You can see the completed application on master. Our goal today is to make a Markdown editor, which allows a user to enter Markdown text on a page and see it rendered as HTML next to it in real-time. We’ll make use of LiveView for the interaction and the Earmark package for rendering Markdown. The starter branch provides some styles and installs LiveView.

Rendering Markdown

Let’s set aside the LiveView portion and start with our data structures and the functions that operate on them. To begin, a Post will have a body, which holds the rendered HTML string, and title. A string of markdown can be turned into HTML by calling Post.render(post, markdown). I think that just about covers it!

First, let’s define our struct in lib/frampton/post.ex:

defmodule Frampton.Post do
  defstruct body: "", title: ""

  def render(%__MODULE{} = post, markdown) do
    # Fill me in!
  end
end

Now the failing test (in test/frampton/post_test.exs):

describe "render/2" do
  test "returns our post with the body set" do
    markdown = "# Hello world!"                                                                                                                 
    assert Post.render(%Post{}, markdown) == {:ok, %Post{body: "<h1>Hello World</h1>
"}}
  end
end

Our render method will just be a wrapper around Earmark.as_html!/2 that puts the result into the body of the post. Add {:earmark, "~> 1.4.3"} to your deps in mix.exs, run mix deps.get and fill out render function:

def render(%__MODULE{} = post, markdown) do
  html = Earmark.as_html!(markdown)
  {:ok, Map.put(post, :body, html)}
end

Our test should now pass, and we can render posts! [Note: we’re using the as_html! method, which prints error messages instead of passing them back to the user. A smarter version of this would handle any errors and show them to the user. I leave that as an exercise for the reader…] Time to play around with this in an IEx prompt (run iex -S mix in your terminal):

iex(1)> alias Frampton.Post
Frampton.Post
iex(2)> post = %Post{}
%Frampton.Post{body: "", title: ""}
iex(3)> {:ok, updated_post} = Post.render(post, "# Hello world!")
{:ok, %Frampton.Post{body: "<h1>Hello world!</h1>
", title: ""}}
iex(4)> updated_post
%Frampton.Post{body: "<h1>Hello world!</h1>
", title: ""}

Great! That’s exactly what we’d expect. You can find the final code for this in the render_post branch.

LiveView Editor

Now for the fun part: Editing this live!

First, we’ll need a route for the editor to live at: /editor sounds good to me. LiveViews can be rendered from a controller, or directly in the router. We don’t have any initial state, so let's go straight from a router.

First, let's put up a minimal test. In test/frampton_web/live/editor_live_test.exs:

defmodule FramptonWeb.EditorLiveTest do
  use FramptonWeb.ConnCase
  import Phoenix.LiveViewTest

  test "the editor renders" do
    conn = get(build_conn(), "/editor")
    assert html_response(conn, 200) =~ "data-test="editor""
  end
end

This test doesn’t do much yet, but notice that it isn’t live view specific. Our first render is just the same as any other controller test we’d write. The page’s content is there right from the beginning, without the need to parse JavaScript or make API calls back to the server. Nice.

To make that test pass, add a route to lib/frampton_web/router.ex. First, we import the LiveView code, then we render our Editor:

import Phoenix.LiveView.Router
# … Code skipped ...
# Inside of `scope "/"`:
live "/editor", EditorLive

Now place a minimal EditorLive module, in lib/frampton_web/live/editor_live.ex:

defmodule FramptonWeb.EditorLive do
  use Phoenix.LiveView

  def render(assigns) do
    ~L"""
      <div data-test=”editor”>
        <h1>Hello world!</h1>
      </div>
      """
  end

  def mount(_params, _session, socket) do
    {:ok, socket}
  end
end

And we have a passing test suite! The ~L sigil designates that LiveView should track changes to the content inside. We could keep all of our markup in this render/1 method, but let’s break it out into its own template for demonstration purposes.

Move the contents of render into lib/frampton_web/templates/editor/show.html.leex, and replace EditorLive.render/1 with this one liner: def render(assigns), do: FramptonWeb.EditorView.render("show.html", assigns). And finally, make an EditorView module in lib/frampton_web/views/editor_view.ex:

defmodule FramptonWeb.EditorView do
  use FramptonWeb, :view
  import Phoenix.LiveView
end

Our test should now be passing, and we’ve got a nicely separated out template, view and “live” server. We can keep markup in the template, helper functions in the view, and reactive code on the server. Now let’s move forward to actually render some posts!

Handling User Input

We’ve got four tasks to accomplish before we are done:

  1. Take markdown input from the textarea
  2. Send that input to the LiveServer
  3. Turn that raw markdown into HTML
  4. Return the rendered HTML to the page.

Event binding

To start with, we need to annotate our textarea with an event binding. This tells the liveview.js framework to forward DOM events to the server, using our liveview channel. Open up lib/frampton_web/templates/editor/show.html.leex and annotate our textarea:

<textarea phx-keyup="render_post"></textarea>

This names the event (render_post) and sends it on each keyup. Let’s crack open our web inspector and look at the web socket traffic. Using Chrome, open the developer tools, navigate to the network tab and click WS. In development you’ll see two socket connections: one is Phoenix LiveReload, which polls your filesystem and reloads pages appropriately. The second one is our LiveView connection. If you let it sit for a while, you’ll see that it's emitting a “heartbeat” call. If your server is running, you’ll see that it responds with an “ok” message. This lets LiveView clients know when they've lost connection to the server and respond appropriately.

Now, type some text and watch as it sends down each keystroke. However, you’ll also notice that the server responds with a “phx_error” message and wipes out our entered text. That's because our server doesn’t know how to handle the event yet and is throwing an error. Let's fix that next.

Event handling

We’ll catch the event in our EditorLive module. The LiveView behavior defines a handle_event/3 callback that we need to implement. Open up lib/frampton_web/live/editor_live.ex and key in a basic implementation that lets us catch events:

def handle_event("render_post", params, socket) do
  IO.inspect(params)

  {:noreply, socket}
end

The first argument is the name we gave to our event in the template, the second is the data from that event, and finally the socket we’re currently talking through. Give it a try, typing in a few characters. Look at your running server and you should see a stream of events that look something like this:

There’s our keystrokes! Next, let’s pull out that value and use it to render HTML.

Rendering Markdown

Lets adjust our handle_event to pattern match out the value of the textarea:

def handle_event("render_post", %{"value" => raw}, socket) do

Now that we’ve got the raw markdown string, turning it into HTML is easy thanks to the work we did earlier in our Post module. Fill out the body of the function like this:

{:ok, post} = Post.render(%Post{}, raw)
IO.inspect(post)

If you type into the textarea you should see output that looks something like this:

Perfect! Lastly, it’s time to send that rendered html back to the page.

Returning HTML to the page

In a LiveView template, we can identify bits of dynamic data that will change over time. When they change, LiveView will compare what has changed and send over a diff. In our case, the dynamic content is the post body.

Open up show.html.leex again and modify it like so:

<div class="rendered-output">
  <%= @post.body %>
</div>

Refresh the page and see:

Whoops!

The @post variable will only be available after we put it into the socket’s assigns. Let’s initialize it with a blank post. Open editor_live.ex and modify our mount/3 function:

def mount(_params, _session, socket) do
  post = %Post{}
  {:ok, assign(socket, post: post)}
end

In the future, we could retrieve this from some kind of storage, but for now, let's just create a new one each time the page refreshes. Finally, we need to update the Post struct with user input. Update our event handler like this:

def handle_event("render_post", %{"value" => raw}, %{assigns: %{post: post}} = socket) do
  {:ok, post} = Post.render(post, raw)
  {:noreply, assign(socket, post: post)
end

Let's load up http://localhost:4000/editor and see it in action.

Nope, that's not quite right! Phoenix won’t render this as HTML because it’s unsafe user input. We can get around this (very good and useful) security feature by wrapping our content in a raw/1 call. We don’t have a database and user processes are isolated from each other by Elixir. The worst thing a malicious user could do would be crash their own session, which doesn’t bother me one bit.

Check the edit_posts branch for the final version.

Conclusion

That’s a good place to stop for today. We’ve accomplished a lot! We’ve got a dynamically rendering editor that takes user input, processes it and updates the page. And we haven’t written any JavaScript, which means we don’t have to maintain or update any JavaScript. Our server code is built on the rock-solid foundation of the BEAM virtual machine, giving us a great deal of confidence in its reliability and resilience.

In the next post, we’ll tackle making a shared editor, allowing multiple users to edit the same post. This project will highlight Elixir’s concurrency capabilities and demonstrate how LiveView builds on them to enable some incredible user experiences.



  • Code
  • Back-end Engineering

ma

Setting New Project Managers Up for Success

At Viget, we’ve brought on more than a few new Project Managers over the past couple of years, as we continue to grow. The awesome new people we’ve hired have ranged in their levels of experience, but some of them are earlier in their careers and need support from more experienced PMs to develop their skills and flourish.

We have different levels of training and support for new PMs. These broadly fall into four categories:

  • Onboarding: Learning about Viget tools and processes
  • Shadowing: Learning by watching others
  • Pairing: Learning by doing collaboratively
  • Leading: Learning by doing solo

Onboarding

In addition to conducting intro sessions to each discipline at Viget, new Viget PMs go through a lengthy set of training sessions that are specific to the PM lab. These include intros to:

PM tools and resourcesProject processes
Project typesProject checklists
Project taskingProject planning
Budgets, schedules, and resourcingRetrospectives
Working with remote teamsProject kickoffs
Thinking about developmentGithub and development workflow
Tickets, definition, and documentationQA testing
Account management

Shadowing

After PMs complete the onboarding process, they start shadowing other PMs’ projects to get exposure to the different types of projects we run (since the variety is large). We cater length and depth of shadowing based on how much experience a PM has coming in. We also try to expose PMs to multiple project managers, so they can see how PM style differs person-to-person.

We’ve found that it can be most effective to have PMs shadow activities that are more difficult to teach in theory, such as shadowing a PM having a difficult conversation with a client, or shadowing a front-end build-out demo to see how the PM positions the meeting and our process to the client. More straightforward tasks like setting up a Harvest project could be done via pairing, since it’s easy to get the hang of with a little guidance.

Pairing

While shadowing is certainly helpful, we try to get PMs into pairing mode pretty quickly, since we’ve found that most folks learn better by doing than by watching. Sometimes this might mean having a new PM setting up an invoice or budget sheet for a client while a more experienced PM sits next to them, talking them through the process. We’ve found that having a newer PM lead straightforward activities with guidance tends to be more effective than the newer PM merely watching the more experienced PM do that activity.

Another tactic we take is to have both PMs complete a task independently, and then meet and talk through their work, with the more experienced PM giving the less experienced PM feedback. That helps the newer PM think through a task on their own, and gain experience, but still have the chance to see how someone else would have approached the task and get meaningful feedback.

Leading

Once new PMs are ready to be in the driver’s seat, they are staffed as the lead on projects. The timing of when someone shifts into a lead role depends on how much prior experience that person has, as well as what types of projects are actively ready to be worked on.

Most early-career project managers have a behind-the-scenes project mentor (another PM) on at least their first couple projects, so they have a dedicated person to ask questions and get advice from who also has more detailed context than that person’s manager would. For example, mentors often shadow key client and internal meetings and have more frequent check-ins with mentees. This might be less necessary at a company where all the projects are fairly similar, but at Viget, our projects vary widely in scale and services provided, as well as client needs. Because of this, there’s no “one size fits all” process and we have a significant amount of customization per project, which can be daunting to new PMs who are still getting the hang of things.

For these mentorship pairings, we use a mentorship plan document (template here) to help the mentor and mentee work together to define goals, mentorship focuses, and touchpoints. Sometimes the mentee’s manager will take a first stab at filling out the plan, other times, the mentor will start that process.

Management Touchpoints

Along the way, we make sure new PMs have touchpoints with their managers to get the level of support they need to grow and succeed. Managers have regular 1:1s with PMs that are referred to as “project 1:1s”, and are used for the managee to talk through and get advice on challenges or questions related to the projects they’re working on—though really, they can be used for whatever topics are on the managee’s mind. PMs typically have 1:1s with managers daily the first week, two to three times per week after that for the first month or so, then scale down to once per week, and then scale down to bi-weekly after the first six months.

In addition to project 1:1s, we also have monthly 1:1s that are more bigger-picture and focused on goal-setting and progress, project feedback from that person’s peers, reflection on how satisfied and fulfilled they’re feeling in their role, and talking through project/industry interests which informs what projects we should advocate for them to be staffed on. We have a progress log template that we customize per PM to keep track of goals and progress.

We try to foster a supportive environment that encourages growth, feedback, and experiential learning, but also that lets folks have the autonomy to get in the driver’s seat as soon as they’re comfortable. Interested in learning more about what it’s like to work at Viget? Check out our open positions here.