Categories
Design Software

From color perception to CSS

Color perception

The way humans perceive colors is not universal. Rather, we are capable of comparing and contrasting colors according to individually understood criteria of similarity, sameness, or distinctness. Moreover, even the choice of specific colors in the spectrum is an individual feature.

It is known that colors have a structure based on three primary colors and their combinations. After all, it is an interesting observation that only the concepts of lightness (white) and darkness (black) are basically universal, and also, if there is one, red color including reds, oranges, as well as yellows, pinks and purples up to filberts. An analysis of color naming in various languages indicates that languages distinguishing six colors have names for the light, dark, red, green, yellow, and blue.

Art perception theory [1] treats shape and color separately. Shape is indicated as a feature that better identifies the object and reveals more numerous qualitative features. Color, on the other hand, depends more on the environment, such as lighting, e.g., strong light makes reds appear brighter, while dim light serves blues and greens.

The basic concepts used in color theory are primary and complementary colors. However, a distinction has to be made between fundamental primary colors, i.e., the pure colors on which the perception of colors is built, and simple generative colors, i.e. the colors needed to gain a wide range of tones in a physical sense.

All color systems assume that a certain small number of tones is enough to obtain a full, or at least a wide color gamut. According to Hering’s color theory [2], humans have sensitivity to the colors black and white, blue and yellow, and green and red. The trichromatic Young-Helmholtz theory [4], on the other hand, assumes the existence of three basic generative colors: red, green, and filbert. Finally, in the 20th century, it was confirmed that pigments on retinal receptors respond to three wavelengths: 447 nm (blue-violet), 540 nm (green), and 577 nm (yellow).

Color theory further indicates that which colors will best form a wide range of colors depends on the method of combination: whether by addition (additive combination) or subtraction (subtractive combination). With additive combining, the eye perceives the sum of the waves (e.g., those emitted by a screen), and with subtractive combining, the impression of color is caused by the remainder left over after light absorption (e.g., stained glass).

To conclude this section, let us recall the concept of complementarity. Generative complementaries are those which, combined, produce monochromatic whites or grays, and fundamental complementaries are which, in perception, desire and complement each other. For example, Helmholz gives as complementary pairs red and blue green, yellow and blue, and green and pink red.

Want to become a part of #espeocrew? Check our current job offers and apply!

from color perception to css

Color models

RYB

Historically, RYB is the first color model based on the discoveries of Isaac Newton. The generative colors in this model are red, yellow, and blue. The model was patented in 1719 by Jacob Christoph Le Blon. The RYB model is a subtractive one and was used for printing on white paper. RYB pigments combined together produce black. The colors that are generated by mixing the base pigments include orange (red with yellow), green (yellow with blue), and purple (blue with red).

RGB

The RGB model creates a gamut from the primary generative colors: red, green, and blue. Zero intensity of each component defines black, while the full intensity of the generative colors gives white. Equal intensity of all the components produces gray. Color ranges are defined in several ways: from 0 to 1, with any fractional value in between, or as unsigned integers ranging from 0 to 255, (8-bit). High-end digital imaging equipment often uses larger ranges, such as 10, 16, or 24 bits. In practice, for the use on monitors, printers, and the World Wide Web, the sRGB standard created by HP and Microsoft in 1996 is used.

CMY (CMYK)

The CMY model uses cyan, magenta, and yellow as the primary generative colors. The colors in the possible palette are obtained by layering the producing colors. When cyan, magenta, and yellow inks are combined, the result (in theory) is black. In practice, however, this combination results in a dark gray or dark brown. Therefore, in practical solutions, the color black is added to this model (CMYK model). It is also possible to achieve the so-called deep black by mixing generative colors and adding black. In this model, the color white is treated as no color (C0 M0 Y0 K0). The colors of the RGB model are obtained by mixing magenta with cyan (blue), magenta with yellow (red), and cyan with yellow (green), respectively.

Furthermore, the generative colors of the CMY model are obtained by combining the corresponding colors of the RGB model: red with green gives yellow, green with blue gives cyan, and blue with red gives magenta.

The RYB, RGB, and CMY models can be graphically described as cubic models: generative colors are placed on the X, Y and Z axes of length 1, and a color is defined as a point with three coordinates. Note that in the above models, it is difficult to define the concepts of color intensity, brightness or saturation. Other models are used for this purpose.

HSL/HSV

The HSL color model was developed in 1938 by Georges Valensi as a method of adding color coding to existing monochrome transmissions containing only the L signal. The model uses the parameters hue from the RGB model, saturation, and lightness. The angular coordinate starts at red (angle 0°), then passes through green (angle 120°) and blue (angle 240°) before returning to red (angle 360°). The distance from the cylinder axis defines the saturation. The vertical axis is achromatic or gray, ranging from white with a brightness of 1 o black with a brightness of 0. Primary and secondary colors red, yellow, green, cyan, blue, and magenta are arranged around the outer edge of the cylinder with the saturation value of 1. However, in this model, lightness is quite meaningless [3]. Colors can have the same lightness value, with wildly different perceptual lightness.

CIE L*a*b*

The CIE LAB model (also Lab) is a color model defined in 1976 by the International Commission on Illumination (CIE). It expresses color by indicating three values: brightness (L) and a* and b* for the four colors recognized by the eye: red, green, blue, and yellow. CIE L*a*b* was designed to be a perceptually uniform space in which the numerical change corresponds to the corresponding perceived color change. It is used to detect small differences in color.

CIE L*a*b* is a device-independent model of the standard observer. Colors refer to the averaged results of color matching experiments under laboratory conditions. The CIE L*a*b* space is three-dimensional and covers the entire range of color perception. It is based on the model of complementary colors. The brightness value (L) defines black at 0 and white at 100. The a* axis refers to the green-red complementary colors, with values negative toward green and positive toward red. The b* axis represents the blue-yellow complements with negative toward blue and positive toward yellow. CIE L*a*b* is calculated with respect to white. Although the a* and b* axes are unbounded, software implementations often limit these values for practical reasons, such as limiting a* and b* to integers in the range of -128 to 127.

LCH

To solve the problem of HSL model lightness, one can use the LCH model. The first argument specifies the CIE Lightness (L), interpreted as Lightness argument of Lab. The second is the chroma, understood as the amount of color, starting a 0 and maximum theoretically unbounded, but practically not exceeding 230. The third argument is the hue angle interpreted similarly to the hue on HSL, with 0° along the positive a* axis (red), 90° pointing along the positive b* axis (yellow), 180° along the negative a* axis (green), and 270° along the negative b* (blue). If the chroma is set to 0%, the hue component can be omitted. If the lightness of an LCH color is 0%, both the hue and chroma components matter.

from color perception to css

Cascading StyleSheet color evolution

Let us now trace the evolution of color support in successive versions of the Cascading Style Sheets (CSS) specifications. The first version of the specification [5] was published in late 1996. Basic CSS support was provided by Internet Explorer 3, but only IE4, which was released in late 1997, correctly supported CSS1. Later implementations, such as in Netscape 4, had numerous bugs, leading it to be thought that CSS itself was flawed. Finally, in 1996, CSS1 was recommended as the standard.

CSS1

Color in CSS1 [5] is either a keyword or an RGB numeric specification. CSS1 supported 16 colors derived from the Windows VGA palette (aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, and yellow). However, their RGB values are not defined. The RGB color model was used in numeric color specifications. The format for hexadecimal RGB values included the # character followed by three or six hexadecimal characters. The three-digit RGB notation #rgb is converted to the six-digit #rrggbb by duplicating digits rather than by adding zeros, such as #abc converts to #aabbcc. The functional notation rgb() is also specified, which gives a comma-separated list of three numeric values in the range 0-255 or three percentage values in the range 0% to 100%. RGB colors are specified in the sRGB color space.

CSS2

In the next version of the specification [6], the color orange was added to the color list, and numerical values were defined for the colors in the palette:

maroon #800000
red #ff0000
orange #ffA500
yellow #ffff00
olive #808000
purple #800080
fuchsia #ff00ff
white #ffffff
lime #00ff00
green #008000
navy #000080
blue #0000ff
aqua #00ffff
teal #008080
black #000000

In the next version of CSS2.2 released in 2016 [7], the specification remained unchanged.

CSS Color Module 3

Unlike CSS 2, which is a specification that defines a variety of features, CSS3 was broken up into separate documents (modules). The CSS Color Module Level 3 [8], recommended as a valid specification in 2018, has been extracted from the specification.

CSS Color 3 introduces the concept of opacity taking values from 0 (fully transparent) to 1 (fully opaque), and the RGB color model has been extended with an alpha channel to the RGBA model to allow color opacity to be specified. The rgba() function was added to the functional notation to allow the opacity value to be written as the last parameter.

CSS Color 3 extends the color value with the transparent keyword, and allows it to be used in all properties that take a color value. It also extends the color list to the X11COLORS list with the addition of gray variants from SVG 1.0.

CSS Color 3 adds support for the HSL model in addition to numeric RGB colors, and the conversion from HSL to sRGB is purely mathematical. The functional notation hsl() has an equivalent that supports the alpha channel — hsla().

Are you a Front-end Developer looking for new career opportunities? Check out our open job positions and apply!

CSS Color Module Level 4

Subsequent drafts [9] of the CSS Color Module specification extends definitions of color and color space.

Color is understood as a numerical or textual definition of human perception of light or a physical object illuminated by light. The color of an object depends on how much light it reflects at each visible wavelength and the actual color of the light illuminating it, while the color of a light-emitting object such as the colors on a computer screen, depends on the amount of light emitted at each visible wavelength. Color comparisons are made by converting spectra to the CIE XYZ scale — an additive color space with luminance as the Y component.

CSS Color 4 also defines the term color space as the organization of colors with respect to a basic colorimetric model, so that there is a clear, objectively measurable meaning for each color in that color space. It also means that the same color can be expressed in multiple color spaces or transformed from one color space to another and still look the same.

CSS Color 4 also uses the concept of chromaticity as a measure of color in which the brightness component has been subtracted.

CSS Color 4 adds to the already existing color functions rgb(), rgba(), hsl(), hsla() new ones: hwb(), lab(), lch(), oklab(), oklch(), and color(). Of these, hsl(), hsla(), hwb(), lch(), and oklch() are cylindrical polar color representations, specifying color using the hue angle, a central axis representing brightness (black to white), and a radius representing saturation or chromaticity, i.e., how far the color is from neutral gray.

The color() function allows to specify a color in a color space other than sRGB, in which most other functions operate. These include P3, Adobe RGB (1998), ProPhoto RGB, or Rec. 2020.

CSS Color 4 also covers the issue of color interpolation, which occurs in gradients, compositions, filters, transitions, animations, and color mixing and modification functions. It is done by linear interpolation of each component of a calculated color value separately, in a specified color space. In some cases, the result of physically mixing two colored lights is desired. In such a case, the linear CIE XYZ or sRGB color space is appropriate because they are linear in light intensity. However, if the colors must be perceptually uniform (e.g., in a gradient), then it is reasonable to use Lab/OKLab spaces, which are perceptually uniform. To avoid maximizing chromaticity, the use of LCH/OKLCH is recommended, and for compatibility with older web content, the sRGB color space should be chosen.

from color perception to css

CSS Color Module 5

The next draft [10] of the specification adds two new functions: color-mix() and color-contrast().

The first one mixes two colors in the given space in the given proportions. The following algorithm is used: both colors are converted to the required color space, and then the colors are interpolated. If an alpha multiplier was created during percentage normalization, the alpha component of the result is multiplied by the alpha multiplier.

The second function takes as parameters a single color, a list of two or more colors, and, optionally, a target luminance contrast. The single color is separated from the list by the vs keyword, and the target contrast, if any, is separated from the list by the to keyword. The first color that meets or exceeds the target contrast value is then selected from this list. If no target value is specified, the first color with the highest contrast relative to a single color is selected.

Follow us on Instagram for more insights from our experts!

Final remarks

According to MDN [11], CSS Color 3 is rather fully implemented in the modern web browsers. However, the CSS Color 4 and CSS Color 5 recommendations, which are still in development, are implemented partially, e.x., color(), lab(), and lch() functions are available in Safari browser, while color-mix() or color-contrast() are not available at all. 

And while color is a key element of good graphic design, still not all graphic designers’ ideas can be supported in web applications. Despite its rapid development, color in the Web still has a long way to go.

References and further reading

[1] R. Arnheim, Art and Visual Perception. A psychology of the creative eye, California 1974.

[2] E. Hering, Zur Lehre vom Lichtsinn, Vienna 1878.

[3] https://lea.verou.me/2020/04/lch-colors-in-css-what-why-and-how/

[4] T. Young, Bakerian Lecture: On the Theory of Light and Colours. Phil. Trans. R. Soc. Lond. (1802) 92, pp.12–48.

[5] Cascading Style Sheets, level 1, https://www.w3.org/TR/CSS1/

[6] Cascading Style Sheets Level 2 Revision 1, https://www.w3.org/TR/CSS2/

[7] Cascading Style Sheets Level 2 Revision 2, https://www.w3.org/TR/CSS22/

[8] CSS Color Module Level 3, https://www.w3.org/TR/css-color-3/

[9] CSS Color Module Level 4, https://www.w3.org/TR/2022/WD-css-color-4-20220428/

[10] CSS Color Module Level 5, https://www.w3.org/TR/2022/WD-css-color-5-20220428/

[11] https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#browser_compatibility

Categories
Software Technology

Coding.fest meetup: PHP, Node.js and Blockchain insights that you cannot miss

The worst pandemic times seem to be already behind us and the market is slowly coming back to life after two years of lockdowns and online events. Since we can meet stationary without fear, our focus is to conduct conferences, workshops and other face to face events. At Espeo, we believe that nothing can replace interpersonal contact in a traditional form. This is why our first post-pandemic stationary event, coding.fest, took place on the 21st of April. It was an amazing meeting hosted in Gdańsk (Olivia Business Centre, O4 Coworking), from where our employees from Tricity work. Three of our employees (Piotr Horzycki, and Szymon Biduła) have prepared prelections about PHP, Node.js, and Blockchain technologies. In this piece, we have collected summaries of the most important information from each speech that may be useful for you at work.

From this article you will learn about:

Handling currency in an international fintech (Piotr Horzycki, Senior PHP Developer)

It’s tricky to handle multiple currencies in international fintech projects. From payment gateways to billing engines, there is a risk of losing money due to wrong calculations. When different systems have their own way of handling money, it’s easy to make a terrible mistake. Fortunately, we have a set of good practices, industry standards, and libraries for popular programming languages. Let’s start from using proper data types. Because most currencies have minor units of 1/100, it is natural to use decimal numbers to represent the amount. However, computers do not handle decimal numbers natively. Try adding 0.1 + 0.2 in a browser’s debugging console and you will not get the expected 0.3 due to a binary floating point system being used internally. This is why most e-commerce applications store an amount in the smallest unit as an integer. To make the calculations more reliable, especially across multiple currencies, a Money Pattern was invented. It already has successful implementations across PHP, Java, Javascript and other languages (MoneyPHP, Java Money, Dinero.js). Addition, subtraction, tax calculation, allocation, currency conversion – these are easily handled by well-tested libraries. When interchanging data between APIs, it is crucial to agree upon a contract. It’s not enough to just send a number and label it as “price.” Thus, it is common to provide an object that combines an amount and a currency, like {“amount”: 1234, “currency”: “EUR”}. It would be even better to clarify use of integers with a label like amountInteger. This way we can avoid all misunderstandings.

Piotr Horzycki, Senior PHP Developer

Hexagonal NestJS (Wojtek, Senior Node.js Developer)

Wojtek took us on a journey through the Yet Another NestJS App. Together, we discovered the unpleasant factors that developers encounter quite often during application development, such as: tangled codebase – instilling fear of change, fixed dependencies – causing vendor lock and reducing migration possibilities, cannonade of Mocked Dependencies – to set up your every single test. This final state of evolution is recognizable in the industry as The Big Ball of Mud and often ties developer’s hands, making it difficult for them to adapt to current business needs. This may end up with exponentially growing maintenance expenses, issues with meeting desired time-to-market and draining morale with poor development experience. Later, we highlighted The Architecture we Might Need: explicit, flexible and testable. These factors led us to the concept of Hexagonal Architecture. We’ve learned about its rules, building blocks, flow, and dependency relations between components. Limiting the integration points to the bare minimum and explicitly defining them introduced a bunch of improvements: better code organisation – through cognitive-friendly structure, increased testability – making entire business flow unit-testable, enhanced understanding – by exposing business processes, flexibility – possibility to delay critical decisions (aka. points of no return). Wojtek also showed us a NestJS project implemented in Hexagonal Architecture, cleverly using DI mechanism, encapsulating dependencies in Self-Contained Modules – hiding all implementation details and setting them up via Composition Root. We also saw how a modular, hexagonal approach can help us with microservice separation.

Are you a Node.js Developer looking for unique career opportunities? Check our job offer and join #espeocrew!

Connecting the DeFi space: Building bridges between blockchains (Szymon Biduła, Blockchain Developer)

Currently, the blockchain landscape is composed of many protocols that represent different design choices and as a result are mostly incompatible with each other. Yet, the liquidity, that could be measured by the overall market cap, is divided only among a few top players. Given the rapid rise of decentralized finance (DeFi) that is shaping the current market, underdogs need to find a way to bring the liquidity that enables DeFi or face unpleasant consequences. Therefore, many foundations and companies are interested in creating bridges between different blockchains. Creating such a solution for the client could be a daunting task for the developer. After all, one needs to take into consideration even the miniscule details of each blockchain to enable a seamless token swap. Thus, during the presentation a mental framework was presented that could make this task easier. This framework consisted of a list of issues that needed to be resolved on every bridge and questions that were worthy of lengthy discussion with the client during the design phase. Finally, the potential security risks were highlighted as bridges are currently the main target of the hackers attacks in the blockchain space.

Are you a Blockchain developer looking for new challenges? We have multiple growth opportunities for you! Check out our open job positions, apply and join our team!

The meetup provided ample opportunity to discuss interesting questions raised by participants. The planned Q&A session after each lecture and the networking session after the main part of the event happened to be very engaging. During the event, the participants were given the opportunity of winning the GoPro Hero 8 webcam by answering one question: “In applications we often have a common database schema – both for Write and Read. What is the name of the approach that uses separate Read / Write models?”. The correct answer was Command Query Responsibility Segregation. The event showed us how important it is to return to offline meetings, which have been lacking in the past few years. We are already planning further ones for all programming enthusiasts. We hope to meet you there! Stay up to date with all the latest meetups and workshops we organize. Follow us on Linkedin, Facebook, and Instagram not to miss anything.

Are you a software developer looking for new challenges? Join our team and work with the best experts! Check out our job offers, apply and boost your career!

Categories
Other Technology

Green tech: what it is about and why you should keep an eye on its development in 2022

Despite its relative youth, the green technology market has attracted a considerable amount of interest. Some of the reasons for this are the growing consciousness about climate change and the depletion of natural resources. Going green and being eco-friendly is becoming more and more popular: not only when it comes to consumers but also organizations.

Many people think being green simply means recycling and turning off the lights but there is more to the topic. Especially when it comes to new technologies, where green tech has taken the lead. Green technology, cleantech, green software, environmental technology – if you have ever come across those terms and wondered what they were all about, this article is for you.

Table of contents:

What is green tech? Definition and its purpose

The term “green technology” refers to the use of technology and science to create environmentally friendly products and services. By combining environmental science with many innovative solutions, green tech helps prevent climate damage in the future and mitigate the damage already done by reducing or eliminating the sources of it.

Green tech, which can also be addressed as an environmental technology, concentrates on sustainable innovation which factors in short-term and long-term environmental effects. Over the years, green technology has also grown into a booming industry that has attracted huge amounts of capital.

How is green tech different from cleantech

Green tech entitles the utilization of technology in processes of sustainable forms of energy production, whereas cleantech specifically refers to the products and services that in their core reduce energy consumption, waste, cost and environmental impact.

The main goals of green tech

Essentially, green technology aims to protect and restore the environment, conserve natural resources, and restore the damage inflicted on it in the past. The main goal of green tech is to minimize the negative impact of new technologies on the planet by using clean energy (alternative fuel sources and technologies that do less harm than fossil fuels). However, it has additional goals that consist of:

  • Finding new ways to fulfill our needs while reducing our negative impact on the environment.
  • Using resources more efficiently, reducing waste, and reducing pollution.
  • Replacing existing technologies with new eco-friendly ones.
  • Introducing new green technologies and creating jobs to support them.

How are these green tech goals accomplished?

The goals mentioned above can be accomplished thanks to the activity of green tech companies that utilize science-based technologies and methodologies. The business models of such companies often incorporate financial, social, and environmental sustainability. Moreover, by making profit, green tech companies are able to sustain and scale their businesses as well as increase the positive impact they make on the planet while reducing their carbon footprint as much as possible. The reduction of corporate carbon emissions has become an important part of business strategies. As a result, a growing number of corporations took a pledge to become carbon neutral. Apple is an example of a company which has made a commitment to achieve 100 percent carbon neutrality by 2030 for its supply chain and products.

History of green tech

While green tech has gained popularity in the modern age, elements of these business practices date back to the Industrial Revolution. Scientists began to note the ecological impacts of coal-burning industrial plants in the early 19th century. Since then, manufacturers have tried to minimize the environmental damage by altering production processes to produce less soot. During the Second World War, one of the biggest milestones was observed in the United States. As part of the war effort, more than 400,000 volunteers collected metals, paper, rubber, and other materials. After the war, scientists and doctors all over the world began warning about dangers that came with chemical pesticides and nuclear radiation. For many, that era is believed to be the genesis of the ecological movement that we can continue to see today. As time went by, more and more government bodies recognized the importance of protecting environmental resources. During this time, awareness-raising programs on household waste became increasingly popular. Another breakthrough occurred in 1970, when the Environmental Protection Agency was established. Its main accomplishments included establishing requirements for pollution and waste and mandating coal scrubbers as well as other clean technologies.

The most important areas of green tech

Some of the most important areas of green technology include:

Environmentally preferred purchasing

The policy of environmentally preferred purchasing entails purchasing goods that were made with energy-efficient methods.

Green building

Green building focuses on sustainability in the construction processes. It involves the use of environmentally friendly building materials, sustainable construction methods, as well as locating constructions in the most appropriate locations.

Green chemistry

In green chemistry, the goal is to design new chemicals that can replace those that have a negative impact on the environment.

Green nanotechnology

The primary aim of green nanotechnology is to produce new nanomaterials that minimize the negative impact we have on the planet.

Green energy production

One of the most well-known areas of green tech is green energy production. Using renewable energy sources, it is focused on developing new ways of generating electricity and fuel.

Green software

In the context of software, green tech means using solutions that have minimal impact on the environment. Green software makes it possible to implement needed changes in a quicker and more efficient manner. Microsoft created Principles of Sustainable Software Engineering which help establish if the software is really green. This document consists of a set of competencies for designing, building, and running sustainable software applications.

When does green tech actually come into play? Examples of green tech products in everyday use

Although we might not realize it, we are surrounded by green technology in almost every aspect of our lives. A few typical applications for green tech solutions include recycling wastewater, producing electricity through solar panels, and use of wind turbines. Electric vehicles, which reduce the very negative impact of gas vehicles, and cloud storage, which replaces hard drives that require a large amount of electricity, are other examples of cleantech solutions that are getting increasingly popular.

Nevertheless, we can also see that cleantech is very present in our immediate surroundings. LED lighting is a good example. LED bulbs consume less energy than traditional incandescent bulbs and are commonly used in many households. This also applies to programmable thermostats, which are currently gaining traction. These low-cost green tech products make it possible to automate and schedule temperature adjustments, thus saving both energy and money.

Green tech: what it is about and why you should keep an eye on its development in 2022

The importance of environmental technology

Many studies have examined the negative impact humans have on the environment. Deforestation, pollution, overpopulation, and burning fossil fuels are some of the ways in which humans impact the physical environment. Such actions have dire consequences: climate change, soil erosion, poor air quality, and undrinkable water. Today, when so much technology surrounds us, it becomes more critical than ever that those environmental issues are taken seriously. Thanks to green tech, the environmental situation can be improved. Ultimately, the more environmentally friendly innovations we invent and use every day, the less polluted our planet will become. Using green technology, the problem of global warming can be solved, while creating clean energy and making the world a more sustainable place.

Benefits of green technology

Green tech has a lot of benefits. Below we share a list of the most important ones:

  • Green tech solutions don’t emit any harmful substances to the environment.
  • As the technology market grows and consumers become more environmentally conscious, cleantech products give them the opportunity to reduce their carbon footprint and resource use.
  • It requires less cost for maintenance. As a result, the operating cost and hence overall cost in the long run can be decreased.
  • Green tech uses renewable natural resources which won’t ever run out.
  • The usage of green technology slows down the effects of global warming due to reduction in CO2 emissions.
  • The emergence of new green tech companies stimulates the economy by creating new jobs.

Disadvantages of green tech

Despite its long list of advantages, green technology is not without downsides. They consist of:

  • A very high initial investment or implementation cost.
  • The technology is still new to most people, so it will take some time for it to become commonly used.
  • Green technology is still advancing and many of the products are in the R&D stage.
  • The installation and implementation of green technology based systems and products are difficult due to the shortage of skilled human resources.
  • In most countries, green technology-based policies have not been finalized yet.

Software development in green technology: an example

As a software development company, we have worked on many green tech-related projects over the years. One of them was in cooperation with a Finnish company Ensto where our team delivered expertise in the latest trends and technology. Ensto produces charging stations for electric vehicles and was in need of updated software for an existing hardware system. Our designer created the interactive admin panel in Invision and handed it over to front end and back end developers to build the code base.

The update in the panel was especially important for Ensto’s end-clients who buy EV charging devices and want to track electricity usage. We built a modern and visually appealing front end for them. We mainly worked on the software for the electric vehicle charging stations. Each station collects vital usage data and compiles it in an intuitive display dashboard. You can find more details about this project here.

The state of green tech in 2022 and its future

The industry of green technology is constantly growing. As shared in the “Green Technology and Sustainability Market by Technology: Global Opportunity Analysis and Industry Forecast, 2021–2030” report, in 2020, the global green technology and sustainability market size was valued at $10.32 billion and is projected to reach $74.64 billion by 2030, growing at a CAGR of 21.9% from 2021 to 2030. Environmental awareness and the growing concern of organizations and individuals about global warming will only continue to enhance the growth of the green technology market. Furthermore, governments all over the world are starting to invest in green technology businesses to decarbonise the economy and make their countries more energy efficient. An example of such an initiative is the funding announced by the Department for Business, Energy and Industrial Strategy (BEIS) in the United Kingdom. In addition to carbon capture projects, the funding will be used to strengthen energy efficiency in UK homes and businesses by finding cleaner, greener ways to heat and power them. We predict that more and more funds like this will be established in the near future.

Sources

https://www.investopedia.com/terms/g/green_tech.asp
https://www.greentech.earth/what-is-greentech
https://cleartax.in/g/terms/green-tech
https://www.electropages.com/blog/2019/09/what-is-green-technology
https://www.future-processing.com/blog/what-is-greentech-a-guide-to-green-technology/
https://www.epa.gov/history/milestones-epa-and-environmental-history
https://www.apple.com/newsroom/2020/07/apple-commits-to-be-100-percent-carbon-neutral-for-its-supply-chain-and-products-by-2030/
https://docs.microsoft.com/en-us/learn/modules/sustainable-software-engineering-overview/
https://www.nationalgeographic.org/topics/resource-library-human-impacts-environment/?q=&page=1&per_page=25 
https://www.fortunebusinessinsights.com/green-technology-and-sustainability-market-102221
https://www.alliedmarketresearch.com/green-technology-and-sustainability-market-A06033#:~:text=The%20global%20green%20technology%20and,21.9%25%20from%202021%20to%202030
https://www.computerweekly.com/news/252510572/Government-makes-116m-pledge-to-help-UKs-green-tech-firms-innovate-to-fight-climate-change

Categories
Software Technology

Non-technical books for IT people

The IT sector is growing very fast and more and more people are interested in new technologies that affect our lives. The industry is always faced with new challenges and problems as it develops. If you want to know more about the IT industry, about coders, artificial intelligence, mathematics that surrounds us everywhere, you should certainly take a look at books mentioned in this article.

“Coders. The Making of a New Tribe and the Remaking of the World” by Clive Thompson

Have you ever heard a question “What do you really do as a software developer” at the family table? Has your friend ever asked you to repair her or his computer? If the answer to any of these questions is yes, you should certainly let them read the book “Coders” – reportage written by Canadian freelance journalist Clive Thompson.

This story is a complex introduction to a world of new technologies and software developers; it answers questions about the programmers – why they are the way they are, why they are sometimes so frustrated and closed to other people. Thompson shows how powerful and intelligent they are, how they think and work. But this is not only the laurel for the developers. The author isn’t afraid of writing about the tough and bad sides of the IT industry. He shows that it is not only a place of nice hipsters smoking weed but there are many social problems like sexual harassment, racism, and nationalism. Thompson proves that the IT industry and career as a software developer is for everyone, for people of all genders, all nations and skin colors. The best summary of this theory is: “if a given tool is created by a team that is essentially homogeneous in terms of culture, it will have significant weaknesses – resulting from the failure to perceive certain aspects of representatives of this one culture.”

Link to english version: https://www.amazon.com/Coders-Making-Tribe-Remaking-World/dp/0735220565

Link to polish version: https://www.znak.com.pl/ksiazka/koderzy-opowiesc-o-ludziach-ktorzy-zmienili-nasz-clive-thompson-147344

“Ada’s Algorithm. How Lord Byron’s Daughter Ada Lovelace Launched the Digital Age through the Poetry of Numbers” by James Essinger

Ada Lovelace was a daughter of Lord Byron, the famous poet, but she didn’t follow in her father’s footsteps. She became well-known as a brilliant English mathematician. She wrote a publication about Charles Babbage’s mechanical general-purpose computer. Ada started to be known as the first computer programmer after she published the algorithm.

James Essinger in his book called “Ada’s Algorithm. How Lord Byron’s Daughter Ada Lovelace Launched the Digital Age through the Poetry of Numbers” tells the fantastic story about Ada, her stubbornness in pursuing the goal and her analytical thinking. The book also tells the story of the very beginnings of computers, programming, and algorithms. It is even hard to believe that all of that happened in the early XIX century, almost 200 hundred years ago. This is a story about an amazing woman who not only proves her outstanding intelligence but also does it in a world dominated by men.

Link to english version: https://www.amazon.com/Adas-Algorithm-Daughter-Lovelace-Launched/dp/1612194575

Link to polish version: https://www.znak.com.pl/ksiazka/algorytm-ady-james-essinger-163789

“Infinite Powers. How Calculus Reveals the Secrets of the Universe” by Steven Strogatz

When I was participating in my Mathematics course at the university, we had an exam about ​​integrals and differentials. It was one of the most difficult exams in the first year of our studies. Some of us passed the exam on the first try, some of us passed the exam in the next attempts. I noticed that none of us, the ones who passed and didn’t pass the exam, didn’t really understand the integrals and differentials. We just knew how to solve exercises and remember the mathematical formulas. It changed when I read the book “Infinite Powers. How Calculus reveals the Secrets of the University” by Steven Strogatz.

The author explains the power of mathematics in a very simple way. He uses a lot of stories that help to understand what integral and differentials really are and how they affect everyday life. Without differential and integral calculus, there wouldn’t be mobile phones, television, we wouldn’t be able to disintegrate the atom or land on the Moon. If you want to understand mathematics and how it affects almost everything around us, you should definitely spend a weekend with Steven Strogatzs book.

Link to english version: https://www.amazon.com/Infinite-Powers-Calculus-Reveals-Universe/dp/0358299284/ref=sr_1_1?keywords=infinite+powers&qid=1649844765&s=books&sprefix=Infinite+Powers%2Cstripbooks-intl-ship%2C159&sr=1-1

Link to polish version: https://www.ccpress.pl/potega-nieskonczonosci-jak-rachunek-rozniczkowy-i-cakowy-odkrywa-tajemnice-wszechswiata

“Hello world. How to be Human in the Age of the Machine” by Hannah Fry

We live in a technologically advanced age. It develops in a very fast way, the fastest way in the world’s history. About 30 years ago, mobile phones started to be popular, but the internet wasn’t as popular as it is now. We are witnesses of a great era, at least in context of fast evolution. But is everything going in the right direction?

Hannah Fry, the British mathematician, in her book “Hello World. How to be Human in the Age of the Machine” in a very good way describes technological progress in the last few years and also predicts what we should expect in the near future. Should we be afraid of the development of smart homes? Should we be afraid of autonomous cars? Should we be afraid of data leaks? In this book, you will find answers to these and many other questions. Hannah Fry wrote that this book is about who we are, where we are heading, what is important for us, and how everything changes thanks to the new technology. It is a book about our relations with algorithms, the ones which already exist and work with us everyday.

Link to english version: https://www.amazon.com/Hello-World-Being-Human-Algorithms/dp/039363499X/ref=tmm_hrd_swatch_0?_encoding=UTF8&qid=1649844818&sr=1-1

Link to polish version: https://www.wydawnictwoliterackie.pl/produkt/3514/hello-world

“American Kingpin: The Epic Hunt for the Criminal Mastermind Behind the Silk Road” by Nick Bilton

Last but not least, I wanted to write about “American Kingpin: The Epic Hunt for the Criminal Mastermind Behind the Silk Road” written by Nick Bilton. The book tells the story of a man who started an online illegal drugs and guns shop on the Darknet. Ross Ulbricht wasn’t even a software developer, he was a radical libertarian who believed that online drug stores would decrease criminality. In his opinion, people who buy drugs on the streets would have an opportunity to order them online which might result in less gang shootings on the streets. Ulbricht didn’t have coding skills, he started the whole thing by reading tutorials on the web and creating his first store which was full of bugs and errors in security. The shop occured to be a good business and Ross Ulbricht became a millionaire in a very short time. The book written by Nick Bilton is a reportage but you can read it as an interesting crime story. It shows the study of insanity that pushes the boundaries further and further. To be honest, this is one of the best books I have recently had the opportunity to read.

English version: https://www.amazon.com/American-Kingpin-Criminal-Mastermind-Behind/dp/1591848148/ref=tmm_hrd_swatch_0?_encoding=UTF8&qid=1649844890&sr=1-1

Polish version: https://czarne.com.pl/katalog/ksiazki/krol-darknetu?gclid=CjwKCAjw6dmSBhBkEiwA_W-EoNi61HjY4MHRNKuN2DGP_xW2KeljhWS2KnQbUsCm0jSvuBg8EFQgcxoCL6YQAvD_BwE

Summary

All five books mentioned above are very good ones, written by leading journalists and scientists. You don’t need to have any technological knowledge in order to enjoy them. Especially if you are a software developer, project manager, ux designer or you just want to know more about the present and future world, you won’t be disappointed with these books.

Are you an IT Specialist looking for new career opportunities? Make sure to check out our job offers and join the team of software development experts!