Articles

In this article, we will see how to implement a data pipeline from an application to Mongo DB database and from there into an Elastic Search keeping the same document ID using Kafka connect in a Microservice Architecture. In recent days and years, all the microservices architectures are asynchronous in nature and are very loosely coupled. At the same time, the prime approach to have minimum code (minimum maintenance and cost), no batch systems (real-time data), and promising performance without data loss fear. Keeping all the features in mind Kafka and Kafka connect is the best solution so far to integrate different sources and sinks in one architecture to have very robust and reliable results.

We will Depp drive and implement such a solution using Debezium Kafka connect to achieve a very robust pipeline of data from one application into Mongo and then into Elastic cluster.

Source de l’article sur DZONE

Artificial intelligence. Just hearing the phrase has been a trigger for many in the technology world since that creepy Haley Joel Osment film circa 2001. But more recently, artificial intelligence and machine learning strike fear into the hearts of skilled workers for an entirely different reason: job security, or lack thereof.

Smart-home devices, streaming services, self-checkouts, even Google searches are ways that artificial intelligence has seeped into everyday life, exemplifying the abilities of computers and machines to master both simple and complex tasks. In some instances, these technological advancements make our lives easier, but for some people, their proliferation has meant job loss and skill replacement. There’s no wonder that when artificial intelligence starts being mentioned along with web design and site creation, the spidey senses of designers all over the world start tingling.

designers think outside the box, something that AI just can’t do

But let’s get real about what AI and automation really mean for designers for a second. Talented designers with busy schedules should view these advancements as virtual assistants. For some small businesses on a limited budget, the websites that artificial intelligence can pump out might be fine…for a while. However, as businesses grow, change, require updating and customization to adapt to their customer base, the expertise of creative and talented designers will always be needed. Even the best AI that we see today is limited by evaluating, replicating, and revising what already exists. It may be able to mix 1,000 different color schemes into 10 million potential combinations, but great designers think outside the box, something that AI just can’t do.

In fact, rather than being scared of automation, designers ought to embrace automation and artificial intelligence as a way to unleash their creative thinking. Delegate repetitive, straightforward tasks to the right software, and suddenly you have time to bring your best ideas to the table and push the boundaries of your own innovation. 

Where AI has Failed in Design

The ultimate goal of artificial intelligence and automation in design work is a grand vision that has yet to be realised.

Consider the case of The Grid, which began as a crowdfunding campaign in 2014. The “revolutionary” product posed itself as an artificial intelligence solution for building thoughtfully, yet automatically, designed websites in five minutes. Research “Reviews of the Grid” in any search engine and you’ll be met with scathing criticism with only some small praise sprinkled in. Most of the initial users cite underwhelming results, the feeling of being duped by the Grid’s marketing tactics, nonsensical placement of text, and ultimately, the Grid being a complete waste of money for the resulting product. Even at the low cost of $100, compared to hiring a talented designer, most users felt their investment was wasted.

For the AI capabilities that exist now, most small business owners, or those looking to put together a simple website, are better off using drag and drop site builders (Wix, Squarespace, Weebly, etc) that have been around for ages. Even so, there are plenty of businesses still willing to hire designers to take this simple task off their plate due to a lack of technical expertise or lack of time. And let’s be honest, are there even enough talented (keyword here!) designers out there to keep up with the millions of websites created every year, without each one working themselves to death? 

Where Automation Shines for Designers

Fortunately for good designers, it appears for now that the days of artificial intelligence completely taking over their jobs is a fantasy. However, what AI and automation do offer designers is a solid starting point for success, eliminating much of the lower-level grunt work that most designers would rather skip anyway.

Even well-received AI website builders like Firedrop still require a basic eye for design and specialised knowledge to produce truly unique, high-converting, and user-friendly websites. Tools and practices that designers should adopt are the artificial intelligence and automation resources that will help them do their jobs better, faster, and leave them with more time to focus on project elements that AI cannot accomplish on its own.

Bridging the Gap Between Designers and Developers

Well-established brands are likely to already have design systems in place that guide the creation of new elements across their digital profiles whether on social media, various mobile apps, or different sections of a website. But even in large corporations — excepting those who have perfected the process — there’s often a breakdown between a designer’s vision and resulting product from the developers. It stems from the basic difference in how they each approach their work and the limitations of the systems they use.

While component libraries — or even full design systems for that matter — won’t reconcile every question, they provide both developers and designers a source of truth to work from that both parties can understand. Design collaboration tools like Invision and Visme, specifically, keep designers and developers on the same page with automated version saving and code-friendly workflows.  

Understanding the Consumer

I don’t suggest using artificial intelligence to produce content for your site

Digging into and understanding the behaviours and habits of site users is a relatively new component of site design, but offers invaluable insights. Tools like HotJar, Mouseflow, or Smartlook make it simple to see holes or leaks in your conversion funnels, detect which page elements users are interacting with, and which they’re not interested in to refine the look and feel of a page for maximum conversions. Even though these tools provide the data, it still takes a keen eye and understanding of design to implement the right changes to improve site performance.

Site content is another way that artificial intelligence has the potential to improve our understanding of customer behaviour and improve site performance for individual users. I don’t suggest using artificial intelligence to produce content for your site, no matter how much the results have improved. However, static landing pages or a single set of further reading recommendations are unlikely to appeal to the majority of site visitors. Artificial intelligence tools like CliClap and Personyze instantly collect and analyse consumer data to provide dynamic, personalised experiences that drive more leads and encourage conversions. Creative designers will also learn from this data to improve customer experience with other pages or elements throughout the site.

Removing Distracting, Time-Sucking Administrative Tasks

Because “artificial intelligence” has become a term with such negative connotations, we often overlook the simple way that AI actually makes our work lives better and easier. Machine learning in email filtering is a great example of this. Consider a simple interface like a Gmail inbox. We have the option to mark certain senders as spam or as important, and our inbox learns that type of communication is and isn’t useful to the user. Pandora, Spotify, Apple Music, and more all take cues from the user behaviour of liking a certain song, artists, or genre of music to build customised playlists. There are a myriad of ways that artificial intelligence and its branches of disciplines merge with our everyday lives. 

Some of the most useful automations for business, and especially for designers, are related to the administrative tasks that frequently take time away or distract from more pressing projects. A perfect example of automation that can relieve stress and cut down on mindless work is an email autoresponder. I’ve always found that having time blocked off in my calendar to tackle complex or important projects helps me to focus on the task at hand and be more efficient. In order to more effectively block out my time, closing my email and setting an autoresponder to reply to all incoming emails serves two purposes: 

  1. Lets those trying to get in touch with me know that I only check my email at certain times of the day and that my response may not be immediate — tempering their expectations of when they might hear from me.
  2. Relieves my personal stress of being tethered to my inbox, splitting my focus, and also saves the time of having to initially respond to each email individually. 

This is just one simple way to use automation in your email, although there are many others to explore.

While Zapier isn’t the only workflow automation service on the market, it’s probably the most well known. Workflow automation reduces time spent on mind-numbing, repetitive tasks and helps designers connect apps that might not natively work together. Do you keep a task list in Todoist? Set up a Zap, then create a task in Todoist anytime someone mentions you on Asana or assigns you a task in Trello.

This is especially helpful for freelance designers who work with multiple clients across various project management platforms. The potential for automation to relieve unnecessary mental overhead for designers is nearly limitless.

Don’t be Afraid of AI, Embrace It

The bottom line of this brief overview of artificial intelligence and automation in design is that this emerging technology isn’t something designers should be scared of. In fact, it’s something to welcome with open arms because ultimately it can make our jobs, and our lives, better. Leave the monotonous tasks of collecting and analysing huge amounts of data or administrative minutiae to the machines; they can handle it.

Save the interesting, creative, abstract work for the talented designers who can turn AI recommendations into unique and intuitive digital experiences. Making the relationship between artificial intelligence and design symbiotic will yield the best results for every entity involved: the business, the AI, and yes, even the designer.

 

Featured image via Unsplash.

Source


Source de l’article sur Webdesignerdepot

You’ve been working away at your latest design project, and the client has given the go-ahead on your lovingly created digital concepts. Now it’s time to bring those designs to life, and you have a developer queued up to do just that.

So your part’s done, right? Not quite. You’re going to want to make sure your developer has the best head start they can in order to create the site as you imagined.

Below are a few tips to make that handover process a little easier.

Communicate to Make It Great

Get Talking

Scheduling a face-to-face meeting with your developer to talk over your project’s specifics and ambitions will help align your expectations and make the intent behind your concepts more clear. It’s quite likely they’ll even ask questions and request assets you haven’t even thought of yet!

It’s not just a one-and-done thing either, your developer’s going to have questions or requirements that arise as the project progresses. Deciding on a communication channel to allow easy discussion will help you both immensely.

Annotating Your Concepts

Developers might seem like magicians with the way they bring your websites to life, but they’re not clairvoyant! Annotating your concepts where advanced functionality is required reduces ambiguity and makes it more likely that your cool, quirky idea is going to make it to production. If it’s a feature that’s particularly unusual, you might want to find an example of a website or code sandbox that does something similar.

An example of Figma’s comment tool in use to make developer notes.

Figma and Sketch both have comment functionality in order to make annotations a little easier, also allowing multiple parties to comment. If dealing with PDFs, there is also an annotation tool available through Adobe Acrobat.

Specify the Basics

The basis of modern front end development revolves around DRY thinking. Some might argue thinking about code can be pretty dry, but we’re not talking about that – in this case, DRY stands for Don’t Repeat Yourself.  Most developers will tackle a project by starting with defining variables: what colors, font sizes, grid columns… anything that can be reused! Good, consistent design follows this same principle – although it’s a habit that can be hard to get going at first.

Tip: It’s always easier to define variables if this mentality is approached towards the start of the project!  

Colors

Make a style guide that specifies the colors you’ve used in your designs. Think about their logical applications to help signpost how they might work as a variable – for example, what colors did you use for paragraph text, hyperlinks and backgrounds? Did you consider colors to convey status messaging, such as successes, warnings and errors?

Typefaces

Which fonts have you used for your project? Is there a consistent set of font sizes you used throughout? If you haven’t already, maybe consider a ratio-based type scale – I like to use ModularScale to help with this.

Basic HTML Elements

Think about general styling for these basic html tags:

  • Paragraphs <p>
  • Headings <h1–h6>
  • Bullet lists <ul> and numbered lists <ol>
  • Emphasized text <b>, <strong> and <em>

Buttons

How about buttons and links? What should they do when they’re hovered over, focused (using the tab key on a keyboard) or disabled?

Forms Fields and Inputs

What should form fields look like? Is there any validation checking that should occur when a form is submitted?  How about checkboxes and radio buttons?

It’s unlikely that you’re going to be able to cover absolutely every single eventuality – allow your developer to use some common sense to fill in the gaps, and be available to them if they have any questions. In the words of John Maxwell and your aunt’s home office wall sticker, teamwork makes the dream work.

Get Your Favic-on

Favicons are widely recognized as the small icon that appears to the left of the site title on your browser’s tab bar. Nowadays, the application of your site’s favicon is much further reaching, showing up in Google search results and app tiles. There’s also extra theming options available, such as the ability to customize the color of Google Chrome Android’s browser bar color for your site.

Using a generator site such as realfavicongenerator takes the pain out of much of this decision-making, allowing you to upload specific graphics as desired, creating silhouettes of your icon for Windows Metro tiles and macOS Safari pins, and packaging everything into easy-to-use files and code.

 Compress Your Images

Nobody wants to load a 20MB image when they’re on a slow connection or a data plan – it pays dividends to plan ahead and downsize your images so that they’re production-ready for the web. If you’re worried image compression is going to harm your image quality, fear not – you can go a long way with image compression before quality is seriously compromised.

  1. Start by reducing the image resolution – for batch jobs, I use Adobe Photoshop’s image processor script to downsize images to fit 1920 x 1200 pixels
  2. Alternatively, if you’re working on a static project – where specific images will be used only in specific places – you could use your design software (nearly all mainstream UI software allows you to do this now) to export your images at 2x size to support devices with high pixel densities.
  3. I also convert my image color profiles to SRGB to ensure consistency across most modern display types (this one’s optional)
  4. I then take my newly downsized images and run them through imageOptim at 80% quality. Generally I would aim to get my images under 300kb – if there are any that are still significantly over this target once compressed, I’d run these through again at 70% quality (I wouldn’t recommend going lower than this, though).

Don’t forget you can also do this for PNGs! Enabling PNGCrush in imageOptim will let you significantly reduce the size of PNGs… just be ready for it to take a while.

Make Your Vectors SVG-Easy to Use

If your design contains graphics or illustrations you created using vector software, it can be used on the web as an SVG file. Usually, these files will be a lot smaller than JPGs or PNGs. You can export graphics in most (if not all) vector software in this format.

Optionally, you could use imageOptim or SVGOMG to compress the SVG code without sacrificing quality. Your developer might already use a script that does this automatically when processing the site for production, so it may be worth asking ahead.

Get Your Licenses in Check

If you’re using premium fonts, make sure you’ve purchased a webfont license so you can hand over the correct files to the developer. I’d recommend doing this sooner rather than later – although not often, occasionally web versions of fonts can have slightly different bounding boxes to their desktop counterparts, making it a real pain for developers to work with further down the line.

If you’ve been using samples of stock photos (or if you’ve been going crazy lifting whatever you can find on Google Images), make sure everything is kosher before you go live. Make sure you purchase licensed photos, and if certain photos you want to use require attribution, make the developer aware of this.

Source

p img {display:inline-block; margin-right:10px;}
.alignleft {float:left;}
p.showcase {clear:both;}
body#browserfriendly p, body#podcast p, div#emailbody p{margin:0;}

Source de l’article sur

I didn’t do it.

I have a long list of people I like to blame for the dysfunction I see in organizations. I blame Managers, Directors, CEOs, Testers, Salesmen, Recruiters, Architects, IT Engineers, Customers, Business Analysts, Help Desk, HR, Finance, Consultants, and Coaches.

I blame those with more experience and those just starting. I blame the courageous and the scared. I blame my friends, my foes, and my family. I blame those I understand and those I don’t. I am expert in everyone else’s problems.

Source de l’article sur DZONE

‘Please don’t let it break, please don’t let it break, please…’

It’s deployment day, and you feel that familiar dread that comes with knowing that your code is going into production. You whisper a silent prayer: “Please God, don’t let my code take down production.” As the servers are restarted you feel the pit in your stomach growing. Beads of sweat roll down your forehead as you watch the logs, check the alarms, and monitor the sales.

If this sounds familiar, you may be working in an environment that practices fear-driven development.

There are two critical factors that need to be present in an enterprise for fear-driven development to take hold.

Source de l’article sur DZONE