Articles

Java for a lot of time has been accused and mocked for its verbosity. Even the most passionate Java developers have to admit that it felt ridiculous to declare a bean class with two attributes. If you follow the right recommendations, you end up adding not only getters and setters, but also the implementations of toString hashcode and equals methods. The final result is a chunk of boilerplate that invites you to start learning another language. 

Java

 

import java.util.Objects; public class Car { private String brand; private String model; private int year; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getModel() { return model; } public void setModel(String model) { this.model = model; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } @Override public String toString() { return "Car{" + "brand='" + brand + ''' + ", model='" + model + ''' + ", year=" + year + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Car car = (Car) o; return year == car.year && Objects.equals(brand, car.brand) && Objects.equals(model, car.model); } @Override public int hashCode() { return Objects.hash(brand, model, year); }
}

Source de l’article sur DZONE

In web development, no one is surprised when a new framework or library enters the stage. Implementing complex functionalities and creating UI elements from scratch only using the powers of a specific programming language is not always the most optimal way. Instead, developers either rely on the existing frameworks or create their own for internal use. In the case of programming languages, the situation is a little more complicated.

A fairly large number of coders are unhappy with the limitations of the programming language that they use every day. Therefore, from time to time, we can hear about the new programming language release. The question is, will the development community adopt it as a replacement for well-established technologies? As an example, we can take a look at Dart. It was initially released in 2011 but remained quite unpopular until the Flutter framework was launched in 2017.

Source de l’article sur DZONE

As I’m becoming a senior developer in terms of age, I’ve transitioned from one language to another. One of my main interests has always been clean, easy-to-understand UIs (User Interface). That journey started for me with Director (to create multimedia CD-ROMs), Flash website animation, and Flex Rich Internet Applications (= « Flash on steroids »). When I started developing with Java over 10 years ago, we had some projects with the early versions of Vaadin and JavaFX. As I went on with serverside applications, I only continued with JavaFX for some personal and side projects and loved the way you can create a UI both with XML (FXML actually) and code, exactly the same approach I loved with Flex. Since then, my love for Java and JavaFX only grew and it’s still my major programming environment.

But JavaFX has one missing piece: running it in the browser… Yes, JPRO can do this, but it needs a license and a dedicated server. And yes, there are some projects ongoing to bring JavaFX fully to the browser, but they are ongoing and not mature yet… Let’s look at another approach: Vaadin Flow and run it on a Raspberry Pi to control a LED and show the state of a button.

Source de l’article sur DZONE

Working with data, there are several scenarios to transform data from input files using the Mule 4 connector.

There are several scenarios for files with special characters or language-based characters.

Source de l’article sur DZONE

In a previous article, I described a way to organize low-latency products as multiple code bases which are bound together with a Maven Bill of Materials (BOM). Understandably, this requires setting up continuous integration and deployment for a large number of similar projects. Maintaining such a setup manually in the face of change while ensuring its consistency will take a lot of effort.  In this article, I will describe how the team at Chronicle Software has tackled these issues in different projects by writing code that does this for us, in the form of Kotlin DSL for TeamCity.

This guide will show how to configure the same set of CI/CD builds for multiple Maven project repositories of similar layouts programmatically, following the DRY (don’t repeat yourself) principle. Following it will require a base knowledge of git, Maven, and TeamCity but would not require knowledge of the Kotlin language, since all of the displayed code is self-explanatory.

Source de l’article sur DZONE

User Experience (UX) design and User Interface (UI) design are two terms people sometimes mistakenly use interchangeably. While aspects of each are interconnected, there are distinct differences between UI/UX design.

According to Internet Live Stats, there are over 1.9 billion websites, but not all are active at the same time. No matter how you slice it, there’s a lot of competition to grab and keep user attention. Good UX is just part of the equation. For a genuinely stellar site, you must also offer an excellent interface.

Learning the ins and outs of good UI and UX requires a bit of knowledge of how the two differ and what works. Although they weave in and out of the same design, they are different.

What Is the Biggest Difference Between Good UX and UI?

UI is the functionality of the design and what users see. How do they interact with various elements? UX is more the way things come together — both visual and interactive features — to create a feel for the user. You can certainly see why people confuse the two as they both apply to interacting with a website or app.

Top design firms often have team members specializing in each discipline. However, UX designers are also aware of UI, and UI designers are also mindful of UX. How can you ensure you’re offering excellent UI/UX design while covering the full spectrum of requirements for each?

Ensuring Effective UX Design

Good UX design increases conversion rates by 400% or more. The site visitor walks away feeling understood and not frustrated. What are some of the most important aspects of good UX design?

1. Create a Good Structure

What is the hierarchy of your site? What is the first thing the user sees when they pull it up? How do they navigate from one page to the next? A well-designed website classifies different aspects of the page, and new content naturally falls into the appropriate category as it grows.

When creating a structure for your site, think about how it might expand in the next five years. You want the hierarchy to work from day one, but you also want to think through significant shifts in the content you might see down the road.

Even your navigational hierarchy should accommodate new areas easily. Plan for the unexpected, so you know how to work it into the overall design when you must.

2. Choose Beautiful Aesthetics

You have a few seconds to make an excellent impression on your site visitors. Take the time to make sure your design functions and is visually appealing. Your color palette should work, images should be crisp and relevant, and typography should be readable and engaging.

Step back from your computer and look at your design from a distance. Does anything stand out that isn’t pleasing to the eye? Get feedback from visitors about what they like and dislike. Since the focus is on user experience, your best source of constructive criticism is from your target audience. Listen to their concerns and ideas.

3. Communicate With Site Visitors

Most experts agree that users want an element of interactivity on sites and apps. People want to know you hear them and get a response. Some ideas include adding a live chat option to your site or engaging in SMS customer support.

Put yourself in their shoes. A customer may visit your site for the first time, having never heard of your brand. They have no reason to trust you or that you’ll follow through on your promises. Potential leads may have a few questions before parting with their hard-earned dollars.

Adding various ways to communicate shows them you’ll be there should they have a problem. It’s much easier to trust a company when you know you can phone, engage in live chat or shoot off an email and get an almost immediate response.

4. Add Clear Direction

Excellent UX is intuitive. You should add calls to action (CTAs) and images pointing the user where they should go next. You can use graphics of arrows, people looking or pointing toward the next step, words, or CTA buttons.

Get feedback on how clear the directions are and tweak them as needed. The user should never have to stop and ponder what to do next. Everything on the page should guide them toward the ultimate goal.

5. Break Down Complex Data

Every industry has complicated data that is difficult for non-experts to understand. Part of good UX is breaking down complex information and sharing it in a simplified way.

One example might be the registration process. Instead of just showing text, a good UX designer would number the steps. Visualizations help add to understanding.

Embracing Effective UI Design

User Interface impacts UX and involves how the design works. The UI designer thinks through visitor expectations and then creates an interface that isn’t frustrating. UI works within the framework of a website to develop functional features. User experience isn’t the complete focus of UI, but it does tie into the planning phases. What are some elements of good UI design?

1. Set Standards

For a design to have good UI, it must perform as expected. Have you ever clicked on a button, and nothing happened? Determine how you want things to work and the minimum acceptable standards for your site.

For example, what happens when someone clicks on a link or button? How does the user know their action created the expected result? Consistency is crucial to how a site performs.

2. Choose the Right Colors

While UX designers look at the emotional impact of various colors, UI designers look at whether the shades match branding and how well the different ones contrast for readability and usability. UI/UX design often bridges a single designer’s work, so the employee ensures everything works as intended, both emotionally and functionally.

You may work with another designer to make the site aesthetically pleasing while also tapping into the emotions driving users. For example, some people love blue, so a blue button can have positive results.

UX and UI designers utilize split testing to see which users respond best to. Then, make adjustments as indicated by how site visitors respond.

3. Focus on Cognitive Matters

According to the Interaction Design Foundation, people can only retain around five things in their short-term memory. Designers should work with recognition instead, as users tend to rely on cues to find what they need.

UI designers may develop an intuitive navigation system and then use the same cues on every page, such as placement, color, and language. Users can then recognize the system without having to memorize it.

4. Prevent Errors

Your job is to ensure errors are kept to a minimum when designing a website or app. One of the most significant parts of a designer’s job is testing and retesting.

Think about all the potential problems a user might run into, such as broken links, images not showing, or incomplete actions. How can you keep those problems from occurring in the first place?

Error prevention is particularly vital when designing software as a service (SaaS) or apps. Users grow frustrated quickly and will find another solution rather than troubleshooting an issue. You’re much better off avoiding the error in the first place.

How Do UX and UI Work Together?

You’ve likely already figured out how closely UX and UI entwine to create a usable experience. The UX designer pays attention to function and interactivity, and the UI designer thinks through how the interface looks.

UX pays attention to the flow of the website and where users start, go next and end up. On the other end, UI figures out how the elements look to the viewer and where everything is placed.

The UX team may decide to add an extra button to the page. The UI team must determine where to place it, if any sizing needs must occur, and how it impacts usability on desktop and mobile devices.

Although each has a different function, user experience and user interface must work together to create a usable site the target audience responds to. You can’t have excellent UX without excellent UI, and vice versa. The best designers consider both and implement them to their fullest potential.

 

Featured image via Pexels.

Source

The post What’s the Difference Between Good UI and Good UX? first appeared on Webdesigner Depot.

Source de l’article sur Webdesignerdepot

Ever since the Python programming language was born, its core philosophy has always been to maximize the readability and simplicity of code. In fact, the reach for readability and simplicity is so deep within Python’s root that, if you type import this in a Python console, it will recite a little poem:

    Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. The complex is better than complicated. The flat is better than nested. Sparse is better than dense. Readability counts…

Simple is better than complex. Readability counts. No doubt, Python has indeed been quite successful at achieving these goals: it is by far the most friendly language to learn, and an average Python program is often 5 to 10 times shorter than equivalent C++ code. Unfortunately, there is a catch: Python’s simplicity comes at the cost of reduced performance. In fact, it is almost never surprising for a Python program to be 10 to 100 times slower than its C++ counterpart. It thus appears that there is a perpetual trade-off between speed and simplicity, and no programming language shall ever possess both.
But, don’t you worry, all hope is not lost.

Taichi: Best of Both Worlds

The Taichi Programming Language is an attempt to extend the Python programming language with constructs that enable general-purpose, high-performance computing. It is seamlessly embedded in Python, yet can summon every ounce of computing power in a machine — the multi-core CPU, and more importantly, the GPU.
We’ll show an example program written using taichi. The program uses the GPU to run a real-time physical simulation of a piece of cloth falling onto a sphere and simultaneously renders the result.
Writing a real-time GPU physics simulator is rarely an easy task, but the Taichi source code behind this program is surprisingly simple. The remainder of this article will walk you through the entire implementation, so you can get a taste of the functionalities that taichi provides, and just how powerful and friendly they are.
Before we begin, take a guess of how many lines of code this program consists of. You will find the answer at the end of the article.

Algorithmic Overview

Our program will model the piece of cloth as a mass-spring system. More specifically, we will represent the piece of cloth as an N by N grid of point-masses, where adjacent points are linked by springs. The following image, provided by Matthew Fisher, illustrates this structure:
The motion of this mass-spring system is affected by 4 factors:
  • Gravity
  • Internal forces of the springs
  • Damping
  • Collision with the red ball in the middle
For the simplicity of this blog, we ignore the self-collisions of the cloth. Our program begins at the time t = 0. Then, at each step of the simulation, it advances time by a small constant dt. The program estimates what happens to the system in this small period of time by evaluating the effect of each of the 4 factors above, and updates the position and velocity of each mass point at the end of the timestep. The updated positions of mass points are then used to update the image rendered on the screen.

Getting Started

Although Taichi is a programming language in its own right, it exists in the form of a Python package and can be installed by simply running pip install taichi.
To start using Taichi in a python program, import it under the alias ti:
import taichi as ti
The performance of a Taichi program is maximized if your machine has a CUDA-enabled Nvidia GPU. If this is the case, add the following line of code after the import: ti.init(arch=ti.cuda)

If you don’t have a CUDA GPU, Taichi can still interact with your GPU via other graphics APIs, such as ti.metal, ti.vulkan, and ti.opengl. However, Taichi’s support for these APIs is not as complete as its CUDA support, so, for now, use the CPU backend: ti.init(arch=ti.cpu)And don’t worry, Taichi is blazing fast even if it only runs on the CPU. Having initialized Taichi, we can start declaring the data structures used to describe the mass-spring cloth. We add the following lines of code:

Python

 

 N = 128 x = ti.Vector.field(3, float, (N, N)) v = ti.Vector.field(3, float, (N, N))

Source de l’article sur DZONE

Happy New Year, fabulous new website design trends!

This month’s design trends are a collection of the somewhat unexpected – from NFT website design to large text to illustrations; you won’t see a single photo or video here. Here’s what’s trending in design this month.

NFT Websites

This website design trend has more to do with the greater trends in digital marketplaces and commerce but has value in the design space as well. NFT websites are popping up everywhere.

Marketplaces for non-fungible tokens use modern design effects to draw users in and help them make purchases and view available images. If you haven’t delved into the world of NFTs, they are data units – often in the form of gifs – stored on a blockchain digital ledger. You can buy, sell, and trade these digital nuggets on various marketplaces.

The designs of NFTs could be explained as a trend of their own. Here, we’re focusing on the look and feel of the websites surrounding them. While some designs are relatively primitive, the best marketplaces have a full e-commerce feel with easy-to-use interfaces and a modern design.

Each of these three NFT marketplaces does it a little differently.

Styllar puts a focus on NFT avatars with a minimal aesthetic that gives plenty of room to individual NFTs. Sit on the website too long, though, and hundreds of options begin to cover the screen. Each visual element has a small text element to match that explains each image. It feels like a modern e-commerce experience that instills trust with users because of clean visual patterns. The site itself is just a gateway to a more traditional marketplace, but the calls to action are large, clear, and easy to follow.

OpenSea treats the NFT marketplace more like an art gallery with card-style buttons to look at different elements and images. Everything about the website design is tailored for the mobile user and quick browsing with large areas to click in the card format and easy-to-read headers that help you find your way through the NFT space, whether you want to buy, create, or sell. The site also does one more thing that’s not as common with e-commerce – it explains how to get started in this new digital territory with plenty of resources.

Rarible has an almost social media feel with lots of small blocks showing different NFTs. Digestible content in a grid-based design helps you navigate from images to rankings to what’s trending in NFTs. This site design is set up for high interaction and engagement, also featuring card-style elements and the ability to favorite items before bidding.

The key commonality with NFT website designs is that they are made for mobile users. These sites look good on desktops, but they are highly focused on a mobile, instant gratification user.

 

 

 

Text-Based Hero Headers

A trend in website design from 2021 is bleeding into 2022 with a lot of popularity: Hero headers that are mostly text. These designs have background texture and color, but for the most part, they don’t have a lot of other visuals.

These designs often rely on powerful language or messaging to help get user engagement. A secondary theme is the use of bright colors to help add focus and attention to the typography.

Font choices seem to be fairly neutral, with a lot of thicker sans serifs for the main headline and something a little lighter for secondary text options.
WeTransfer uses a smaller text block with multiple lines to create weight. The off-center placement draws the eye and is interesting even with the neutral background. Stacking elements create a nice focal area that encourages reading.

Halborn Blockchain Security goes with a less traditional font option and flips the color to the text to enhance the visual display. This design also uses an off-center, asymmetrical approach to create focus on the text element. The dark counterweight on the screen is an excellent guide to draw you back to the main hero headline.

FWD goes with giant oversized text elements to create a strong visual focus with this design. Other than the faint animation of the arrows next to “Here’s what they said,” everything is still and static. The color and blocky depth of the background help draw the eye through the text and to clickable elements so that you know what to do next.

 

 

Intricate Illustrations

Another trending design element is the use of intricate illustrations on homepages. These highly detailed images can tell a visual story, help add meaning to messaging, or serve as a remarkable visual element when you don’t have a photo or video.

The great thing about this trend is that the only limitation is your imagination.

Once you find someone to create the illustration (if you can’t do it yourself), the world is open to interpretation.

We are seeing three major themes within this trend, as showcased in the examples.

Multi-layer illustrations with hints of animation, such as the one from Highvibe Network. This illustration used lots of colors, layers, unexpected elements within outlines, and a little animation to pull it all together. The effect is rather stunning and provides a lot of interest for the user.

Realistic, painting-style illustrations, such as the one from Healthline, bring the content to life without real people or images. This technique is especially nice for industries where you may want to anonymize people in images. (Perfect for a healthcare website design because you don’t know if the illustrations are of real people or not.)

Detailed geo shapes and lines, such as the design from Radio Meuh Circus Festival. With great color and lines that draw the eye, this design can keep you looking and finding new depth for a long time. Color also helps draw you into the striking imagery.

 

 

Conclusion

What’s nice about all these design trends is that they have flexible elements that you can use and replicate across industries and projects. The common factor is that they lack traditional dominant imagery, which works exceptionally well.

These trends are likely a result of the worldwide pandemic as well. With less social contact, creating without conducting photo or video shoots is an ideal situation. Good luck trying some of these trending design elements on your own.

Source

The post 3 Essential Design Trends, January 2022 first appeared on Webdesigner Depot.

Source de l’article sur Webdesignerdepot


Introduction

What comes to your mind when you hear the term Black box, specifically concerning testing? Well, it is something that is not very common to listen to but remains an essential form of software testing. It is a software testing technique to examine the functioning of software from an external outlook without digging deeper into its code. The best thing about Black box testing is that it can be applied to all levels of testing ( Unit, integration, system, and acceptance). 

Anybody with minimum or no coding language can perform Black box testing of a software product, software testers with no coding language can also do it.

Source de l’article sur DZONE

A lot, if not all, of data science projects, require some data visualization front-end to display the results for humans to analyze. Python seems to boast the most potent libraries, but do not lose hope if you’re a Java developer (or if you’re proficient in another language as well). In this post, I will describe how you can benefit from such a data visualization front-end without writing a single line of code.

The Use Case: Changes From Wikipedia

I infer that you are already familiar with Wikipedia. If you are not, Wikipedia is an online encyclopedia curated by the community. In their own words:

Source de l’article sur DZONE