pro

Biodiversity Isn’t Just Pretty: It Future-Proofs Our World

By Elizabeth Boakes Aeon A small boy hauls enthusiastically on his fishing rod. The line flies up and a needle-spined fish strikes him in the eye. Desperate to stay outdoors, he ignores the pain, but his sight deteriorates over the … Continue reading




pro

Self-Host Your Identity Provider with authentik

Authentication! What a hassle!

Evans, where's that SAML from Earth!?

You start off simple enough — username / password authentication in your application. Then, well, someone mentions that traditional passwords are a security vulnerability, so maybe we should use one-time passwords. That inevitably leads to discussions about magic links and multi-factor authentication. Next thing you know, one dev is in a corner, rocking back and forth and muttering something about SAML, and another dev just left — walked out the door, never to be seen again.

Well, not to worry, we've got just the tool for you.

authentik is an open-source identity provider written in Python. I'm going to focus on the self-hosted version, but they also offer a paid enterprise plan if you want some extra support.

Self-Hosting

The philosophy of open-source tools and self-hosting is a big, complex topic for another post. In the world of SaaS products, you likely don't need to self-host. I quite like hosted identity providers like Clerk and Auth0. They're good and appropriate solutions for different types of apps and companies.

But I just love to self-host tools. Tinkering and toying with Docker, reverse proxies, and sometimes even server hardware is a lot of fun to me. It does add complexity in some (or many) places, but a little extra complexity means you've got a little more control over your tooling.

Self-hosting also allows me to disconnect from the Internet and still be able to work on features and enhancements in my projects. As long as I've already installed the relevant packages or pulled the right Docker images, I can keep working if I'm in a place where I can't (or don't want to) connect to the Internet. This is a small thing, but really important to me.

authentik makes it really easy to self-host your application. Right out of the gates, they provide a Docker Compose example and a Kubernetes example. Getting authentik running took me about 10 minutes using the Docker Compose example. Most of that was reading. This can make authentik a great tool during the proof-of-concept or beta phase of your application, getting authentication out of the way so you can focus on building the cool and unique features of your app.

Integrations

One of the great things that authentik has waiting for you is a bunch of documentation on integrating with a lot of tools you probably already use. These integrations range from other self-hosted apps like Outline (another favorite of mine) to cloud providers like AWS and even platforms like WordPress.

authentik's integration docs show you how to set up authentik for your existing providers and applications, so no need to dig around for the right configuration. Sure, if you're building your own application, you don't have the luxury of a README (until you write one, of course!), but don't worry — all the documentation you'll need for your choice of providers is at your fingertips. Personally, I'm fan of the OAuth2 provider for most my pet projects, but I also find the Proxy Provider to be a really great tool if you want to secure a static site that doesn't have any means of authenticating users.

Customization

This is a pretty nice default login screen, but maybe a mountain road isn't your vibe. You can change this background, add your own company logo, and add your own CSS. Just add your static files to your authentik deployment and modify to your heart's content.

But actually, that's not even the cool part of the customization to me.

authentik has the concepts of Flows and Stages that are used to determine what steps a user should take to log in, log out, and more. First, you define Stages that represent a single step of authentication — something like requiring a user to enter their username or a password. There's a whole lot to choose from. Once you've set up your Stages, you'll create a Flow, stringing those Stages together until you have a complete process to authenticate, register, or even delete a user. Flows can be imported and exported as .yaml files, making it easy to keep your Flows and Stages synced between different environments.

authentik comes with a pretty reasonable set of default Flows and Stages. If you're setting authentik up just to try it out, you might not need to add anything. They do have a couple of example Flows to get you started, though.

Flows and Stages can feel pretty intimidating. On your dev server, I'd recommend basically deleting all of the default Flows and Stages and building up new ones from scratch. It's the easiest way to learn how these pieces fit together. If you accidentally break something in dev, you can always just drop your database and spin up a fresh install.

Conclusion

authentik is an awesome tool and I've only scratched the surface of what it can do for you. As a self-hosted identity provider, it gives you a lot of control on how your services are authenticated. It's great for local development and beyond, and it has a lot of ready-to-go integrations for services you might already use.

If you're interested in further reading, I'd definitely recommend checking out the docs on Outposts and External Sources.

Hopefully this has given you some inspiration to spin up a local instance of authentik and try it out! It will definitely simplify your authentication needs.

Here's your SAML, Mr. Horrible Gelatinous Blob!




pro

Motion Magic: Project Insights From My Viget Internship

When we open an app or website, we do so to accomplish a task or find information. A well-designed user experience ensures users can achieve their goals efficiently. But what keeps us engaged beyond basic functionality? What differentiates a mundane interface from an exciting one? In my opinion as an up and coming UI developer, one key element is motion.

During my summer internship at Viget, I had the opportunity to dive deep into the world of agency work. From getting the chance to contribute to client sites to participating in a hackathon and pursuing a personal project, I seriously leveled up my stack and gained valuable development experience. Not to mention the amount I learned from exceptional, dedicated mentorship and micro-classes on everything from React to SQL to business models. 

However, coming into the internship, I had the specific goal of learning how to add motion to my web projects. I walked in on day one with no idea where to start, and now I’m leaving my last week with a complex knowledge of Rive, canvas elements, JavaScript animation, GSAP, and more. Here’s how… 

Spinet

In this two week hackathon project, I worked alongside Faye and Paul, the Product Designer and App Developer interns, to create a spinning wheel name picker. During the first week, I took on branding and visual design work. 

I spent the second week implementing wireframes. Through this project I learned how to transform client specifications into design directions, a style guide, and ultimately, UI components.

For this app, the motion of the spinning wheel was critical to the experience. Initially, client feedback indicated that the spin felt too uniform. I adjusted the motion parameters by extending the slowdown time and changing the easing function from linear to cubic, which increased feelings of suspense at the end of the spin animation. 

To add a level of joy and celebration to the winner announcement popup at the end of a spin, I incorporated confetti animations. In doing so, I discovered the world of JavaScript animation libraries that make implementing animations as easy as simple as adding the script to my HTML and adjusting the timing and placement of the animation object. Finally, we had ultimately decided on a modern, clean-cut video game aesthetic for the branding, and pulled this in through inspired sound effects, the logo design, and a 3D button component with a click animation accomplished entirely through Tailwind. 

Luna chatbot

After the hackathon, I got the chance to work on a personal project of my choice: an AI mental health chatbot inspired by tools like Woebot and EarKick. I was motivated by the question of what could make conversational AI feel less intimidating and more empathetic. My answer was an AI support companion with an animated avatar to enhance feelings of emotional connection and understanding. 

To get started, I experimented with various chatbot APIs and found that the Llama3 model was the best at following system prompts and offered the most natural interactions. A huge part of this project was the chatbot’s expression animations. I surveyed several popular tools and found Rive was the best fit for this, offering intricate animation capabilities, easy web integration, and a state machine for managing overlapping states and complex transitions.

The first step of animating in Rive is to create a design. Luckily, Rive has a vibrant open-source community, and I learned a lot from examining and remixing community files. The second step was learning to create the animations themselves. This was my first time animating anything, but the concept of keyframes was relatively intuitive, and the UI reminded me of video editing software, like iMovie, I’d used in the past.

The third and most challenging step for me was making all the animations work together in a state machine. 

This is the logic that connects animations together, taking input values that determine when to transition between states. Getting smooth animations between emotional states required a lot of rewiring and experimenting. Finally, embedding the Rive file in my project and linking the emotion data from API responses to the animation inputs was relatively straightforward using vanilla JavaScript. 

In conclusion

Animations, whether simple or complex, add a layer of interactivity and visual interest to digital products. Over a short 10 weeks, my internship projects allowed me to explore UI development, modern animation tools, and motion using CSS and JavaScript.

If you’re interested in bringing ideas to life and sparking joy through motion design, then diving into a passion project, seeking inspiration from the community, and exploring tools like Rive and GSAP will definitely kickstart your journey!



  • Code
  • Internships and Apprenticeships

pro

Setting up a Python Project Using asdf, PDM, and Ruff

When I was tasked with looking into alternative ways to set up a new Python project (not just using the good ol' pip and requirements.txt setup), I decided to try to find the tools that felt best to me, as someone who writes Python and Ruby. On this journey, I found a way to manage dependencies in Python that felt as good as bundler, among other great tools.

The Runtime Version Manager #

asdf has been my primary tool of choice for language version management for multiple years now. The ease of adding plugins and switching between versions of those plugins at a local or global level has saved me massive amounts of time compared to alternatives.

If you've never set up asdf before, follow the instructions here to get it set up. For reference, I use fish for my shell, so I installed asdf using the "Fish & Git" section.

Once you have asdf on your machine, the next step is to add the plugins you need for your project. Plugins are the actual tools that you want to manage the versions of, like NodeJS, Python, Ruby, etc. For the purposes here, I'll start with adding the plugin for Python:

asdf plugin-add python

Once you have added a plugin to asdf, you're ready to install various versions of that plugin. Since we just installed Python, we can install the version we want:

asdf install python 3.12.4
# OR if we want to just use whatever the latest version is
asdf install python latest

Once the version you want is installed, you can tell asdf to use that version in the current directory by running:

asdf local python 3.12.4
# OR 
asdf local python latest

depending on which version of python you installed.

The Dependency Manager #

In the past, I just used pip install and requirements file(s) to handle most of this. I knew of other options, like pipx or pipenv, but I still have never tried using them. I was more interested in finding a dependency manager that did these things in a significantly different way than what I was used to with pip.

Therefore, I wanted to find something that felt similar to bundler for Ruby. Luckily, very early on in my journey here, I found PDM.

Upon reading what PDM did, I immediately decided to try it out and get a feel for what it offered. Some key notes for me that piqued my interest:

  • Lockfile support
  • Can run scripts in the "PDM environment"
    • pdm run flask run -p 3000 executes the normal flask run -p 3000 command within the context of your installed packages with PDM.
    • In other words, it adheres to PEP 582 and allows you to run project commands without needing to be in a virtual environment, which to me is a big plus.
  • Similar commands to bundler
    • pdm run => bundle exec
    • pdm install => bundle install
    • pdm add <package> => bundle add <gem-name>
      • Note: My workflow was almost always to just add gem <gem-name> to the Gemfile rather than using bundle add, but there is no direct 1:1 equivalent of a Gemfile with PDM.

Installing PDM #

PDM has its own asdf plugin, so let's just use that here as well! Running:

asdf plugin-add pdm

adds the plugin itself to asdf, and running:

asdf install pdm latest 
# can replace 'latest' with a specific version number here too

installs the latest version of PDM. Finally, set the local version with:

asdf local pdm latest
Side note about asdf local
  asdf local creates a .tool-versions file (if it doesn't already exist) in the current working directory, and appends the plugin and version number to it. At this point, the directory in which you ran asdf local python 3.12.4 and asdf local pdm latest should have that .tool-versions file, and the contents should be a line each for Python and PDM with their associated version numbers. This way, if someone else pulls down your project, they can just run asdf install and it will install the versions of those plugins, assuming the user has the necessary plugins added themselves.

Now that we have PDM and Python set up, we're ready to use PDM to install whichever packages we need. For simplicity, let's set up a simple Flask app:

pdm add flask flask-sqlalchemy flask-htmx

This line adds Flask, Flask-SQLAlchemy and Flask HTMX. Flask is a web application framework, Flask-SQLAlchemy adds SQLAlchemy and its ORM, and HTMX builds on top of HTML to allow you to write more powerful HTML where you'd otherwise need some JS. Side note, but HTMX is really cool. If you haven't used it before, give it a go! I'm even a part of the exclusive group of HTMX CEOs.

Linting and Formatting #

Finally, I wanted to find a way to avoid pulling in multiple packages (commonly, Black, Flake8 and isort) to handle linting and formatting, which felt to me like it could be the job of one tool.

Pretty quickly I was able to find Ruff which did everything I wanted it to, along with being really fast (thanks Rust ????).

First things first, we need to install Ruff. Since it's a Python package, we can do it using PDM:

pdm add ruff

Once it's installed, we can use ruff check and ruff format to lint and format, respectively. Note that since we installed via PDM, we need to prepend those ruff calls with pdm run:

pdm run ruff check --fix

This runs the linter and fixes any issues found (if they are automatically fixable). The linter can also be run in --watch mode:

pdm run ruff check --watch

which re-lints on every saved change and tells you of any new errors it finds.

The Ruff formatter is similar to use:

pdm run ruff format

which will automatically fix any formatting issues that it finds and can fix. If you want to use this in CI (which you should), you can use the --check flag that will instead exit with a non-zero status code, rather than actually formatting the files:

pdm run ruff format --check

Bringing it all together #

Working with projects set up this way is much easier than how I used to do it. Using tools like asdf, PDM, and Ruff rather than pyenv, pip, and Black/Flake8/isort make both setting up projects and pulling down/installing existing projects more straightforward. I hope the contents of this article are helpful to anyone interested in setting up Python projects in a similar way.




pro

The Keys to Successful Concept Testing: Prototyping

This is part two of a three-part series on how to successfully conduct concept testing with users, focused on prototyping. Check out part one (planning) to learn more.
 

Prototype your concepts

Once a well-aligned research plan has been crafted, it’s time to create a prototype (or multiple) based on your concept. There are a plethora of ways you can create prototypes that communicate your concepts to users; I’ll cover strategies that will help spark meaningful reactions and conversation.

Provide context to ground your concept

We humans as a whole are poor predictors of our own future behaviors, so it’s really important that your concept testing simulates the future experience you’re trying to test. Ideally, you want to ground your concepts, so a participant can envision it in their own day-to-day. One of the best ways to do this is by building in context, whether into the prototype itself or in the way you actually test out the concepts.

You can ground a participant in what they would actually do by: 

  • Adding small contextual details into the prototype (e.g. the participant’s name or location). 
  • Providing the participant with a realistic scenario to frame the prototypes
  • Designing a certain scenario into the actual prototype (e.g. error messages appear in).  
  • Conducting the test in the actual or simulated environment where it will be used. 

Grounding a participant can make a difference in how someone interacts with your prototype. Let’s imagine you and your team are redesigning a part of an online food delivery platform for restaurants, specifically the parts that hosts and cashiers use. When you put your concept to the test, you can ground participants by “simulating” a lunch rush atmosphere (distractions, loud noises, etc).

Build real-ish prototypes

It might sound counterintuitive but you don’t need high-fidelity prototypes for concept testing. While high-fidelity prototypes may best simulate the future experience, that level of fidelity may not be feasible for a few reasons: 

  • You don’t have the time to create something at that level of detail or complexity before testing.
  • You don’t have the details fleshed out yet.
  • You want your users to help define these details with you. 

Low to mid-fidelity (or as I like to call “real-ish”) prototypes can still get you to the insights you need and even have some unexpected benefits. It’s easier for research participants to focus on overarching concepts when interacting with low-fidelity prototypes. Higher fidelity prototypes tend to invoke feedback hyper-focused on the details. With lower-fidelity, research participants are more likely to provide critical feedback on ideas, since they don’t seem as “final.” You can also leave out certain details in a low-fidelity concept, which allows you to brainstorm with participants.

Again, crafting context is a large part of building out an idea that starts to feel “real” enough for a user to invoke a response. Some examples of real-ish prototypes with just enough context include: 

  • Setting the stage with realistic scenarios for how and when research participants would reach out to an AI chat bot in a therapy app.
  • Creating initial wireframes for a ride-sharing app that research participants test out in a simulated car ride experience, to understand what info is most helpful at each moment on the ride.
  • Sending research participants “updates” on their food delivery order, to learn what participants might want to know about their order’s progress. 

Be selective about which concepts to show

You may have several concepts (or variations on a single concept) that you want to prototype out, and test through research. They may all feel exciting and important, but showing too many in one session can leave a research participant with decision fatigue. Even if you need to test multiple concepts to move forward, you don’t want to show every single one you’ve come up with.

Instead, you’ll want to be selective. One way to help you decide which concepts are best to test is by mapping them out on a matrix.

Let’s imagine again you and your team have generated multiple concepts for your food delivery app that aim to tempt users to order takeout more frequently. Perhaps some concepts focus on individualized recommendations, while other concepts show social trends. First, create a matrix that has extreme aspects of the concepts on each end and place them where you think they might belong. 

Then, ask yourself a few questions: 

  • Are there two concepts that are too similar to each other? 
  • Is this concept playing it too safe?

These kinds of concepts may not give you useful feedback because they’re not distinct enough or they’re too neutral over all. Instead, you’ll want to select concepts that are on the edges of your extremes. Those concepts will allow you to learn much more about your users and how they might interact with your concepts in the future.


These tips will help you craft prototypes that research participants can more easily and accurately react to. 

To end this series, I’ll discuss how to prepare for the actual testing in my next article.




pro

How to Make More Money as a Pro Photographer

The world is still in dire need of professional photographers, for everything from capturing the spirit of major events to artfully presenting meaningful moments in our personal lives.




pro

6 Tactics for Promoting Your Local Business

As a small business proprietor, you must establish connections with local patrons, integrate into the community, and differentiate yourself from your rivals. However, understanding how to market your business locally requires clever marketing techniques. Given the limited pool of potential customers in your vicinity, prioritizing local marketing endeavors is essential, especially when considering that your […]




pro

Web Designer Must-Have Skills As A Pro in 2024 – Web Design Tips

As we navigate the ever-evolving landscape of web design, it’s crucial to stay ahead of the curve and continuously expand our skill set. As a seasoned web designer with years of experience, I’ve witnessed firsthand the rapid changes in our industry. Today, I’ll share my insights on the must-have skills for professional web designers in […]



  • Web Design
  • Adobe XD
  • advanced web design tools
  • AI in web design
  • CMS for web design
  • content management systems
  • continuous learning in web design
  • design prototyping tools
  • design systems
  • ethical web design
  • Figma for web design
  • Git for web designers
  • HTML CSS JavaScript
  • microinteractions in web design
  • mobile-first design
  • modern web design trends
  • must have web design skills
  • privacy and security in web design
  • professional web designer
  • Responsive web design
  • SEO best practices
  • Sketch for web design
  • user experience design
  • ux design
  • version control for web designers
  • web accessibility
  • web design animation
  • web design collaboration tools
  • web design skills 2024
  • web designer skills 2024
  • website performance optimization

pro

Rekomendasi Provider Slot Online Paling Populer

Tidak di pungkiri saat ini permainan slot sudah berkembang pesat, dimana para penggemarnya dapat mainkan slot tersebut secara online. Tidak perlu lagi pergi ke casino untuk mainkan slot ini, cukup menggunakan smartphone atau laptop yang terhubung ke internet sudah dapat bermain sepuasnya. Kelebihan dari permainan slot online ini lebih variatif dengan tema-tema permainan yang berbeda-beda. […]




pro

The Apple TV 4K Device is a Deeply Flawed and Frustrating Product… for Me

About 12 years ago, in 2006, I had what at the time felt like the biggest technological change in my life. I switched from a PC to my first MacBook Pro. Switching computer operating systems at the time seemed like a massive chasm to overcome, but I did it and I’m glad I did. My …




pro

Illustration for Impact: HART Curatorship Incubation Programme Visuals

Illustration for Impact: HART Curatorship Incubation Programme Visuals

abduzeedo

Discover Anthony Lam’s captivating illustration work for the HART Curatorship Incubation Programme 2024, blending art with purpose.

HART Collective Limited’s 2024 Curatorship Incubation Programme comes alive through a series of vibrant visuals and social media collaterals designed by Anthony Lam. This illustration project, aimed at amplifying the HART initiative’s reach, seamlessly combines creativity and purpose. Let’s dive into the thought process, design elements, and impact of these compelling illustrations.

Bringing Artful Storytelling to HART

The HART Curatorship Incubation Programme is more than just an event; it’s a platform that nurtures emerging curators and fosters artistic engagement in Hong Kong. For this initiative, HART Haus collaborated with Anthony Lam to create visuals that encapsulate the spirit of innovation and community central to the programme. With a focus on vibrant, eye-catching design, Lam’s illustrations breathe life into the promotional material, making the programme’s message resonate visually.

One of the striking features of this project is the careful choice of typography. The primary typeface used is Degular Display by James Edmondson from OH no Type Co. This choice lends a contemporary and approachable vibe to the design, complementing the modern and energetic illustrations. The type’s bold and clean lines create a sense of structure amidst the dynamic visuals.

Lam’s illustrations use a playful yet sophisticated color palette, striking a balance between the avant-garde and the accessible. The design approach draws heavily from art movements that emphasize form and rhythm, mirroring the essence of a programme that curates art as an experience. Each piece incorporates abstract shapes and flowing patterns that evoke a sense of motion, representing the evolving journey of curatorship and the fluid nature of artistic collaboration.

Illustration isn’t just about static visuals; it’s about telling a story that connects with an audience. For this project, Lam crafted designs meant to adapt seamlessly across multiple platforms, from print to digital media. The social media assets, in particular, utilize animations and interactive elements to capture the attention of a fast-scrolling audience. These designs ensure that the HART Curatorship Incubation Programme stands out in the crowded digital space.

The use of illustration as a core element of the visual identity allows for more flexibility and engagement. It provides a canvas where abstract concepts about art and curatorship can be expressed in a way that feels both authentic and exciting. Whether seen on a poster, a website, or a social post, each visual invites viewers to explore and learn more about the programme.

Illustration plays a crucial role in making art initiatives accessible to a broader audience. By employing a visually striking yet relatable design language, Anthony Lam’s work for HART bridges the gap between curators and the community. The visuals don’t just inform; they inspire curiosity and engagement, which is essential for an incubation programme that seeks to elevate emerging curators.

This collaboration also highlights the impact of thoughtful design in the arts sector. By leveraging illustration, HART Collective can convey complex ideas in a way that is immediately understandable and appealing. The choice of colors, the movement within the compositions, and the bold typography all work together to create a cohesive narrative that draws people in.

The HART Curatorship Incubation Programme’s visual identity showcases how illustration can elevate an arts initiative, making it more engaging and impactful. Anthony Lam’s designs prove that illustration, when done thoughtfully, can serve as a bridge between art and the public, turning viewers into participants and supporters.

This project is a reminder that effective visual identity goes beyond aesthetics; it tells a story that connects and captivates. As HART continues to grow its curatorship programme, the illustrations created for this year’s campaign will undoubtedly leave a lasting impression, drawing more people into the world of art and collaboration.

Graphic design and illustration artifacts

Credits




pro

Spring Cleaning: Five Ways to Improve Your Ecommerce Site

Spring is on the horizon, so you know what that means. Spring-cleaning time is coming soon too. This yearly refresh is more than just a reminder to dust your home; it’s also a chance to revitalize your ecommerce business, attract new customers and delight loyal shoppers. Here are five easy ways to improve your ecommerce … Continue reading Spring Cleaning: Five Ways to Improve Your Ecommerce Site

The post Spring Cleaning: Five Ways to Improve Your Ecommerce Site appeared first on Design Shard.




pro

Free advise from the pro’s in Vegas

WordCamp Las Vegas is taking place this weekend. But its a special event in collaboration with Blog World Expo! That means that it’s going to be a big crazy weekend for geeks and techies in the Vegas area. I will be working the WordPress genius bar inside the Las Vegas Convention center. So if you’re […]

The post Free advise from the pro’s in Vegas appeared first on WPCult.




pro

WordPress: Provides a Great Framework for Your Website

It doesn’t really matter in what kind of business you are; it is human behavior to have an urge of standing out of the crowd, of its kind. The same story goes with online business and for an online venture, you need a blog or website of your own. The website you tend to own […]

The post WordPress: Provides a Great Framework for Your Website appeared first on WPCult.




pro

4 Super Easy Ways to Improve SEO

Having a web presence is extremely important when it comes to marketing your business, and search engine optimization (SEO) is one of the best ways to improve your visibility and reach. Some companies don’t have the time or resources to invest in an in-depth and thorough SEO strategy, but that doesn’t mean that they can’t […]

The post 4 Super Easy Ways to Improve SEO appeared first on WPCult.




pro

Best Of Pro Scheduler Libraries

For teams working remotely across the globe or together in an office, as well as for any group of collaborating users, a scheduler can be a valuable tool indeed. In this post, you’ll find some of the best commercial web scheduler libraries (JavaScript based) with amazing UX and high efficiency that are currently available.




pro

How To Defend Your Design Process

Ever felt pressure to speed up your design process? Here’s how to address unrealistic expectations and foster a shared understanding with stakeholders, ensuring everyone is aligned on the path to a successful delivery. Part of [Smart Interface Design Patterns](https://smart-interface-design-patterns.com) by yours truly.




pro

Pricing Projects As A Freelancer Or Agency Owner

Discover effective pricing strategies for digital projects. Learn how to balance fixed pricing, time and materials, and value-based approaches while managing client expectations and scope creep.




pro

The Big Difference Between Digital Product And Web Design

Designing for digital products requires a different mindset than traditional websites. It’s all about continuous adaptation, refining, and iterating as user behavior and needs evolve. Paul Boag reflects on the key differences, including how the frequency of usage impacts your design approach and what you can do about it.




pro

How A Bottom-Up Design Approach Enhances Site Accessibility

You can’t overstate the importance of accessible website design. By the same token, bottom-up philosophies are crucial in modern site-building. A detail-oriented approach makes it easier to serve a more diverse audience along several fronts. Making the most of this opportunity will both extend your reach to new niches and make the web a more equitable place.




pro

Urging Multi-Pronged Effort to Halt Climate Crisis, Scientists Say Protecting World’s Forests as Vital as Cutting Emissions

By Julia  Conley Common Dreams “Our message as scientists is simple: Our planet’s future climate is inextricably tied to the future of its forest.” With a new statement rejecting the notion that drastically curbing emissions alone is enough to curb … Continue reading




pro

Process Wire





pro

To Improve Beijing’s Air Quality, Cut Household Fuel Use Too

By Jeffrey Norris UC Berkeley News China’s plans to curb Beijing’s health-damaging air pollution by focusing on restricting emissions from power plants and vehicles may have limited impact if household use of coal and other dirty fuels is not also … Continue reading




pro

Microbeads – The Story of Stuff Project

Courtesy of The Story of Stuff Project  Another gem from The Story of Stuff Project – this time about the dangers of tiny plastic microbeads in many products we use daily, which go down the drain and into our lakes, … Continue reading




pro

Heavily Used Pesticide Linked to Breathing Problems in Farmworkers’ Children

By Brett Israel UC Berkeley News Elemental sulfur, the most heavily used pesticide in California, may harm the respiratory health of children living near farms that use the pesticide, according to new research led by UC Berkeley. In a study … Continue reading




pro

The 5 Best Degrees for Job Prospects in Tech

Whether you want to make it as a graphic designer or work in an up-and-coming tech company, the world of technology offers some of the best job prospects of any field in the world. It is very fast-paced but has outgrown the days where you did not need a degree to master the field – […]

The post The 5 Best Degrees for Job Prospects in Tech appeared first on Snap2objects.




pro

The Problem with Plastics

This infographic shares the depressing small amount of plastic that gets recycled. Information is Beautiful created The Problem with Plastics infographic by visualizing data by Geyer et al, Science Advances, back in 2017. The infographic uses a Sankey Diagram to show the fate of all plastics that were ever made.

Why plastic recycling doesn’t work ????

“Most ‘recycled’ plastic still ends up being dumped or incinerated”

n.b. These numbers are from 2017. Humanity produces approx. 345 million tonnes of plastic a year. That means another ~1.7 billion tonnes since this study was released.

Found on Informationisbeautiful.net




pro

How Google’s Accelerated Mobile Pages Project Affects Photography Websites

Back in October 2015, Google announced the launch of a project that may change the internet forever. The Accelerated Mobile Pages (AMP) project makes static pages and images load faster than ever before, and despite the youth of the project, big names like Pinterest, WordPress, and Twitter have all voiced their support. For photography website owners, the […]




pro

Our 10 Best Professional WordPress Photography Themes

Are you having a hard time finding a professional WordPress photography theme to perfectly display your work? If so, this article will set you straight. Below, we will show you all of our best professional WordPress photography themes specifically designed for professional photographers. We’ll provide a brief overview of the main features of each theme. By […]




pro

5 Best WordPress Photo Gallery Plugins for Professional Photographers

Finding the best way of presenting your images online can be overwhelming given the minefield of choices. A photo gallery plugin is the ideal solution, and fortunately, there are plenty on the market to choose from. Each offers a myriad of features to display your work, all customizable at the touch of a button (or […]




pro

How to Improve Sales Using Photo Keywords in WordPress

When it comes to browsing a stock image website, user experience is key. Effective navigation is vitally important, and it’s imperative that users have a clear and easy way of searching for images. If they struggle at any point in the process, they are likely to go elsewhere, resulting in the loss of a sale and potential repeat business. Fortunately, […]




pro

11 Ways Professional Photographers Fail Online

Having a web presence is essential for any modern photographer to generate new business, showcase their portfolio and get their images seen by as many people as possible. However, it’s unfortunate that so many photographers are missing out on the potential of a great business website by getting some fundamental things wrong. Is your website […]




pro

Our 10 Best Professional WordPress Portfolio Themes

If you are finding it difficult to locate the right theme for your portfolio website, you are in the right place. This article will show you our best professional WordPress portfolio themes, giving you a good idea for how your perfect portfolio website should be. We’ll provide a quick description of each theme telling about it’s […]




pro

How to Improve Sales by Offering Coupons Using Sell Media

Running a successful business should be your ultimate goal, and offering coupons to your customers is a key aspect of strengthening sales. However, it’s important to also devise a plan of action – without one, you could essentially hamstring your overall campaign. By harnessing the power of Sell Media (and elements such as the Discount Codes […]











pro

Study tests novel approach to PTSD treatment that helps individuals and spouses

Posttraumatic stress disorder (PTSD) among active-duty service members and veterans impacts not only individuals experiencing PTSD, but also their spouses and families. Left untreated, PTSD is typically chronic and very impairing. However, for individuals experiencing PTSD, one weekend retreat with their partner can support recovery while simultaneously improving their romantic relationships, according to a pilot study led by Steffany Fredman, associate professor of human development and family studies and associate professor of psychology at Penn State.




pro

Hyperbaric Oxygen Therapy Shows Promise in Treating PTSD

New research data offers much-needed hope for veterans wrestling with combat-associated posttraumatic stress disorder (PTSD). The study explores the use of hyperbaric oxygen therapy (HBOT) to address symptoms that persist despite standard treatments.




pro

Worldwide community of activists protest OverDrive and others forcing DRM upon libraries

BOSTON, Massachusetts, USA -- Tuesday, November 28, 2023 -- The Free Software Foundation (FSF) has announced its Defective by Design campaign's 17th annual International Day Against DRM (IDAD). It will protest uses of Digital Restrictions Management technology's hold over public libraries around the world, exemplified by corporations like OverDrive and Follett Destiny. IDAD will take place digitally and worldwide on December 8, 2023.




pro

EmacsConf joins Free Software Foundation fiscal sponsorship program

BOSTON, Massachusetts, USA -- Thursday, November 30, 2023 -- The Free Software Foundation (FSF) announced today that EmacsConf will join the Working Together for Free Software Fund. The one and only conference dedicated to the joy of Emacs is joining just before their event on December 2 and 3, 2023.




pro

FSF adds three provisional board members




pro

Cigarette Carbon Monoxide May Protect Against Parkinson's

A new study suggests that molecular mechanisms triggered by low-dose carbon monoxide (CO) could slow the progression of Parkinson's disease (PD).



  • Cell &amp; Molecular Biology