Top 10 Hugging Face Datasets

The most important task in any machine learning model is finding or building a dataset that perfectly accommodates your algorithm. Without the correct foundation, your machine learning model may not perform in its intended way.

While well-known sites such as Kaggle allow you to download and utilize thousands of adequate datasets, a few other dataset providers are increasing in popularity. In this article, we will cover one known as Hugging Face.

Adopt Site Reliability Engineering to Win

The coronavirus pandemic accelerated the offering of online services even in the most traditionally "offline" sectors: fitness, banking, retail, and government. 

As more companies started moving their offerings online, the reliability of these critical services has garnered particular attention from the public. In early July, Rogers, a Canadian telecom behemoth, experienced an outage that lasted 19 hours, disrupting internet and telecom services for over 10 million Canadians. For the duration of the incident, critical services, 911, and hospitals were interrupted. 

CarePet Tutorial: An Example IoT Use Case with Go and ScyllaDB

To help people get started with ScyllaDB NoSQL, we published CarePet: a project that demonstrates a generic Internet of Things (IoT) use case. The application is written in Go and allows tracking of pets’ health indicators. It consists of three parts:

  • A collar that reads and pushes sensors data
  • A web app for reading and analyzing the pets’ data
  • A database migration tool

In this article, I will cover the main points. Check out the GitHub repo with the full code. You can find more extensive lessons for this use case in these guides.

Theme Redone: A New Block-Based Starter Theme for Building WordPress Websites and Gutenberg Blocks with an MVC Framework

In the days before Gutenberg, the maturity of the WordPress theme ecosystem offered a diverse selection of dozens of well-known starter themes where developers were likely to find one that suited their individual preferences or could easily be modified. Theme authors have frequently asked if there is a good starter theme for building block themes, but at the moment there are really only a handful, as the block themes era is just dawning.

WebREDONE, a Serbia-based web agency, has open sourced its new starter theme, Theme Redone, that offers a foundation for building websites and Gutenberg blocks with an MVC framework:

We’ve taken the inspiration from Laravel and other similar projects that really approached this aspect of coding cleverly and made it a breeze to organize and reason about the code.

In Laravel, we would write plain old PHP for the logic, and then we would use Blade templates for the View layer, we also have model, view, and controller files to separate the concerns and organize code logically and efficiently. We have adopted that same approach but in the context of the WordPress environment. Conceptually, the way we organize code is similar to Laravel, but with a few differences.

Theme Redone brings this approach to Gutenberg block files, identifying a  model.jsoncontroller.php, and view.latte file. It uses the Latte templating engine. The JSON file contains the fields schemas with the data passed through to controller.php where it can be filtered or modified before getting passed to view.latte to be rendered on the front end.

Theme Redone Latte template files example

The starter theme uses Gulp 4 and ESBuild for compilation and watching tasks, configured to support React, Svelte, Vue, and Petite Vue out of the box. Its GitHub page summarizes everything included in the framework:

WebREDONE has developed a fast way to create new blocks through its TRB CLI (Theme Redone Blocks) NPM package, which will instantly create a new block with a single terminal command. It includes a custom UI along with the block preview image. The UI looks out of place inside block editor and somewhat more restricted in terms of controls available to users. This may not matter if the agency is creating sites that are not edited by users, but it seems confusing.

The theme’s creators have also written 50 pages of documentation over the course of two months, including how to get started, working with the template files, the theme’s helper functions, block structure within the framework, and more.

Theme Redone is an opinionated starter theme. WebREDONE decided to share it because it saves their agency time. It may not work for everyone, but it’s interesting to see the diverse ways agencies are evolving their tools to build websites more efficiently in the block era. Check out Theme Redone on GitHub for detailed installation instructions.

WebRTC Video Calls With Angular and Spring Boot

WebRTC video calls have been added to the AngularPwaMessenger project. The back end supports WebSocket connections that are secured by JWT tokens to enable WebRTC signaling. The current browsers support video calls with WebRTC. The Angular front end supports the WebRTC calls and needs to access the camera and the microphone. The browsers need to be able to connect to each other directly and use the server backend to do that. That means that home/company networks that prevent incoming connections prevent the creation of a video call. Installing the PWA on a smartphone does work because no router/firewall stops the connections. For development, a setup with a self-signed certificate is used that enables testing inside a firewalled network.

WebRTC Documentation

The Mozilla Development Network has WebRTC documentation. The WebRTC protocol is documented here and the AngularPwaMessenger backend provides a STUN server implementation for the ICE protocol. The signaling and video calls are documented here. The diagrams/code show the creation of the connection for the video call.

Custom SVG Cursors with an Interactive Emitter Effect

From the custom cursor on my portfolio marvinx.com using blurred SVG circles, I created several variations which I would like to share with you today.

Without going into too much detail, I’d like to explain some points on how I approached the making of this set.

For the demos, the idea is to set a main class grouping all the functions inherent to all cursors.

Then, I separate demos in different classes where each variable is configurable: number of particles, colors, size, gradient, opacity, filters, radius, speed, acceleration, direction, etc.

Everything is coded in native JavaScript and does not use any libraries (only d3.js if we want to sort particles).

This is how particles are drawn in the Cursor class:

  drawParticles() {
    return `<g class="particles" filter=${this.filterParticles || "none"}>
      ${(() => {
        if (this.strokeGradient) {
          return `
          <defs>
            <linearGradient id=${this.strokeGradient.idStrokeGradient} x1="0%" y1="0%" x2="0%" y2="100%">
              <stop offset="0%" stop-color=${this.strokeGradient.color1} />
              <stop offset="100%" stop-color=${this.strokeGradient.color2} />
            </linearGradient>
          </defs>`
        }
      })()}
      ${Array(this.nbrParticles).fill().map((_,i) =>
        `<circle
          r="${this.setRadiusParticles(i)}"
          cx=${this.pos.x} cy=${this.pos.y}
          fill="${this.fillParticles || "none"}"
          fill-opacity="${this.fillOpacityParticles || 1}"
          stroke="${this.strokeGradient ? `url(#${this.strokeGradient.idStrokeGradient})` : this.strokeColorParticles}"
          stroke-width="${this.strokeWidthParticles || 0}"
          stroke-opacity="${this.strokeOpacityParticles || 1}"
          id="${i}">
        </circle>`).join('')}
    </g>`
  }

This is how each parameter is then configured:

export class Cursor1 extends Cursors{

  constructor(index) {
    super(index);
    this.speed = !isTouchDevices ? 0.5 : 1;
    this.init();
    this.loop();
  }

  setParamsCursor() {
    this.radiusCursor = 15;
    this.fillCursor = getComputedStyle(document.body).getPropertyValue('--primary');
    this.maxSqueeze = 0.6;
    this.accelerator = 1000;
  }

  setParamsParticles() {
    this.strokeGradient = {
      idStrokeGradient : "gradient",
      color2 : getComputedStyle(document.body).getPropertyValue('--primary'),
      color1 : getComputedStyle(document.body).getPropertyValue('--secondary'),
    }
    this.strokeWidthParticles = 1.5;
    this.strokeOpacityParticles = .15;
    this.radiusDiff = 7;
    this.radiusStart = this.radiusCursor*3;
    this.nbrParticles = Math.round((this.diagonalWindow() + this.radiusDiff - this.radiusStart) / this.radiusDiff);
    this.transitionParticles = {
      duration: 18,
      delay: !isTouchDevices ? 4 : 14,
      easing : "linear"
    };
  }
}

1. Waves effect

2. Trail effect

3. Tube effect

4.Mask effect

On this last demo, I use twice the same superimposed video (from Mikhail Nilov‘s beautiful royalty free collection).

The first video uses a grayscale filter:

  filterImageBack() {
    return
    `<filter id=${this.filterBackId}>
      <feColorMatrix type="matrix" values=".33 .33 .33 0 0
        .33 .33 .33 0 0
        .33 .33 .33 0 0
        0 0 0 1 0">
      </feColorMatrix>
    </filter>`
  }

And the second one is placed inside a mask where I apply a duotone filter:

  filterImageCursor() {
    return 
     `<filter id=${this.filterCursorId} filterUnits="objectBoundingBox" primitiveUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
      <feColorMatrix type="matrix" values=".44 .44 .44 0 0
        .44 .44 .44 0 0
        .44 .44 .44 0 0
        0 0 0 1 0">
      </feColorMatrix>
      <feComponentTransfer color-interpolation-filters="sRGB" result="duotone">
        <feFuncR type="table" tableValues="0.55 0.25"></feFuncR>
        <feFuncG type="table" tableValues="0.06 1"></feFuncG>
        <feFuncB type="table" tableValues="0.93 0.91"></feFuncB>
        <feFuncA type="table" tableValues="0 1"></feFuncA>
      </feComponentTransfer>
    </filter>`
  }

I also thank Ghislain Auzillon, for his help on the design.

Hope you enjoy it!

On Some Aspects of Big Data Processing in Apache Spark, Part 4: Versatile JSON and YAML Parsers

In my previous post, I presented design patterns to program Spark applications in a modular, maintainable, and serializable way—this time I demonstrate how to configure versatile JSON and YAML parsers to be used in Spark applications. 

A Spark application typically needs to ingest JSON data to transform the data, and then save the data in a data source. On the other hand, YAML data is needed primarily to configure Spark jobs. In both cases, the data needs to be parsed according to a predefined template. In a Java Spark application, these templates are POJOs. How to program a single parser method to process a wide class of such POJO templates with data taken from local or distributed file systems?

Increase Your Vector Database Read Throughput with In-Memory Replicas

With its official release, Milvus 2.1 comes with many new features such as in-memory replicas, support for string data type, embedded Milvus, tunable consistency, user authentication, and encryption in transit to provide convenience and a better user experience. Though the concept of the in-memory replica is nothing new to the world of distributed databases, it is a critical feature that can help you boost system performance, increase database read throughput, and enhance the utilization of hardware resources in an effortless way. 

Therefore, this post sets out to explain what in-memory replica is and why it is important, and then introduces how to enable this new feature in Milvus, a vector database for AI.

Concepts Related to In-Memory Replica

Before getting to know what in-memory replica is and why it is important, we need to first understand a few relevant concepts, including replica group, shard replica, streaming replica, historical replica, and shard leader. The image below is an illustration of these concepts.

Replica concepts.

Replica concepts

Replica Group

A replica group consists of multiple query nodes that are responsible for handling historical data and replicas. More specifically, the query nodes in the Milvus vector database retrieve incremental log data and turn them into growing segments by subscribing to the log broker, loading historical data from the object storage, and running hybrid searches between vector and scalar data.

Shard Replica

A shard replica consists of a streaming replica and a historical replica, both belonging to the same shard (i.e., Data manipulation language channel, abbreviated as DML channel in Milvus). Multiple shard replicas make up a replica group. And the exact number of shard replicas in a replica group is determined by the number of shards in a specified collection.

Streaming Replica

A streaming replica contains all the growing segments from the same DML channel. A growing segment keeps receiving the newly inserted data till it is sealed. Technically speaking, a streaming replica should be served by only one query node in one replica.

Historical Replica

A historical replica contains all the sealed segments from the same DML channel. A sealed segment no longer receives any new data and will be flushed to the object storage, leaving new data to be inserted into a freshly created growing segment. The sealed segments of one historical replica can be distributed on several query nodes within the same replica group.

Shard Leader

A shard leader is the query node serving the streaming replica in a shard replica.

Node.js vs PHP

Web development is a wide field that incorporates many features you need comprehensive knowledge about. Node.js vs PHP are some of the most developed technologies that are mostly featured in web development activities. These two technologies take part in the development of the server-side. However, Node.js tend to serve the client-side and the server-side development. 

According to research, 34.88% of the available websites are currently hosted on PHP. In addition, PHP has been in existence for more than three decades, making it serve approximately 78% of the entire web. In terms of comparison, Node.js is relatively new in the industry compared to PHP, although it is growing significantly. 

On Some Aspects of Big Data Processing in Apache Spark, Part 3: How To Deal With Malformed Data?

In my previous post, I presented design patterns to program Spark applications in a modular, maintainable, and serializable way. This time I demonstrate a solution to deal with malformed date/time data, and how to set a default value to malformed data.

When I worked on a big data project, my tasks were to load data in different formats (JSON, orc, etc) from different sources (Kafka, Hadoop Distributed File System, Apache Hive, Postgres, Oracle), then transform the data, and to save the data to the same or different sources. The simplest task was to load data from a single data source (Postgres), and then save the data to another source (Hive), without any transformations. 

Compare The Best Web Design Agencies

Want to jump straight to the answer? The best web design agency for most people is WebiMax.

Having launched several high-profile websites, I’ve worked with countless web design agencies throughout my career. Some were great, some not so much.

When you hire a good web design agency, you’re surrounded by experts who know responsive web design, can guide you through the entire process, and deliver an attractive and functional website that just…works. But when you pick a bad website agency, nothing will seem to go right. Visions won’t be alignment and they don’t deliver on their promises, leaving you with a dreadful website that makes you feel duped.

To help you avoid any bad experiences, I have handpicked six reliable web design agencies that will help you create a strong online brand presence.

The Top 6 Best Web Design Agencies

Keep reading to find out why these agencies win over other options on the market.

WebiMax — Best for Conversion-Based Web Design

  • Customized web designs
  • Free design analysis
  • Get more conversions
  • Additional agency services
Get a Free Quote

Everyone wants their website to look good. But WebiMax takes that one step further, ensuring sites also perform at a high level. 

WebiMax is one of the few web design services on the market that take a conversion-based approach to website builds and redesigns. They offer a guided and collaborative approach to provide businesses with a truly customized website design.

So you’ll get the look and feel that you want while still getting pages designed for conversions.

WebiMax web design landing page with bullet list of benefits and free consultation form
WebiMax designs websites and landing pages to drive business results.

Here’s how it works: When you reach out to WebiMax for assistance, they’ll conduct a free design analysis on your site. From there, WebiMax will provide you with their recommendations on what needs to be changed and why. They also work with your input throughout the design process to ensure everything aligns with your brand image.

In addition to helping you drive more conversions, the final designs are also modern and beautiful. You’ll be happy with the results, and so will your site visitors.

I also recommend WebiMax for the agency services they offer beyond web design. They can help you with SEO, online reputation management, public relations, and more. You can even rely on WebiMax to get more reviews and remove negative content about your brand from the web. 

Pricing

WebiMax does not have pricing information published online. You can reach out for a free custom quote to get started

Clay — Best for SaaS and FinTech Websites

  • Creates immersive web experiences
  • Functional and visual web designs
  • High-profile clientele
  • Storytelling in UX designs
Request a quote

If you sell a FinTech or SaaS product, I really cannot recommend Clay enough.

A San Francisco-based web design agency, Clay is well renowned for creating stellar websites that combine functionality and visual appeal. They have partnered with some of the biggest companies in the world as well as budding startups to create immersive web experiences. 

Its clientele includes Google, Slack, Snapchat, Amazon, Facebook, and Coinbase.

Screenshot of Clay landing page that says, "Clay is a UI/UX design and branding agency in San Francisco."

Clay has a very straightforward approach to every web design project. It defines, designs, and develops stunning digital products and then, based on your industry, applies proven best practices to boost customer engagement across all channels.

Aside from web design, you can also opt for branding, mobile app development, innovation consulting, and digital marketing services.

You can trust Clay to truly transform your visual brand identity through expert storytelling and UX designs to deliver next-level brand communications.

Pricing

Clay hasn’t published any pricing information on its website, but Clutch puts its average hourly rate between $200-$300 per hour.

Digital Silk — Best for Ecommerce Websites

  • Delivers superior digital experiences
  • Effective web assets
  • Offers an easy-to-use CMS
  • Vast range of services
Request a quote

Your customers are the lifeline of your business. Digital Silk understands this too, which is why it takes the extra initiative to create appealing e-commerce websites that are sure to get the customer smitten right from the minute they land on them. 

Its expertise lies in developing highly effective digital assets that drive brand exposure and boost customer engagement. You can trust Digital Silk to create streamlined online shopping experiences, complete with an easy-to-use CMS that generates higher conversions and drive brand loyalty.

Screenshot of Digital Silk home page

Digital Silk has a simple web design process, starting from a kickoff and discovery session. After that, the team will create a digital strategy for your brand and build information architecture and design mockups. 

Once they get the technical stuff sorted (coding and development and quality assurance), you’ll have a brand-new website ready for launch. 

This web design agency focuses on delivering superior digital experiences and has partnered with several B2B and B2C brands like HP, Xerox, NASA, and AT&T in the past. Digital Silk’s extensive offering list includes website development, branding, logo design, e-commerce development, and social media marketing.

Pricing

Digital Silk hasn’t published pricing information on its website, so you’ll have to request a custom quote. According to Clutch, the agency charges between $100-$149 per hour.

Kobe Digital — Best for Growing and Scaling Brands

  • Well-rounded design perspectives
  • Offers goal-driven video content
  • For growing businesses
  • World-class marketing solutions
Request a quote

Everything about Kobe Digital, from its programmatic layout to its color scheme, is designed to impress its visitors. Expect the team to deliver your customers similarly delightful digital experiences and solutions that meet (and often exceed) expectations.

Using its rigorous frameworks and well-rounded perspectives on innovative web design, Kobe Digital can effectively connect your growing brand to target audiences. It also uses goal-driven video content to help brands tell stories that better resonate with a target audience.

Screenshot of Kobe Digital landing page that says, "Well-rounded perspectives to achieve effective marketing outcomes."

Kobe Digital has previously worked with brands like Weedbuzz, Wowdesk, Eezy Life, and the Royal Thai Consulate. 

You can rely on this web design agency for world-class marketing solutions to generate sales, leads, and interest, complete with the right design and technology mix, regardless of your business size or budget. 

Pricing

Kobe Digital hasn’t published pricing information on its website, so you’ll have to request a custom quote. That said, expect to pay between $50-$99 per hour.

Blue Fountain Media — Best for Midmarket and Enterprise Websites

  • Conversion-focused design services
  • Optimized web designs
  • User-focused approach
  • Drives superior results
Request a quote

Blue Fountain Media was established back in 2013. Since then, it has made a name in the web designing niche by merging creativity and technology to help brands build a solid online presence. 

Blue Fountain Media specializes in creating high-performing and aesthetically-pleasing websites for midmarket and enterprise businesses. If you look at the web designing agency’s own website, you’ll see what a stellar job they have done at communicating their unique selling proposition: “Demand more from your website.“

Screenshot of Blue Fountain Media home page

When designing and building websites, the web design agency focuses on strategic planning and delivering a flawless user experience. Add a compelling visual design to the mix, and it becomes the perfect recipe to drive superior results.

With a user-focused approach, Blue Fountain Media creates website designs that are built with a clear view of your most important goals and conversion points while connecting your users to these goals. It also optimizes the website with relevant and engaging landing pages to ensure better visibility in the SERPs.

Easy to see why big brands like Microsoft, FedEx, Sony, and Cathay Bank chose Blue Fountain Media over its competitors.

Pricing

As no pricing information is available on Blue Fountain Media‘s website, you’ll have to contact the team for a customized quote. But expect to pay anywhere between $150-$199 per hour based on reports.

SPINX Digital — Best for B2C Websites

  • Optimized web designs
  • Applies fact-based knowledge
  • Streamlined delivery process
  • Delivers intuitive web experiences
Request a quote

Combining imagination with creativity and technology, SPINX Digital understands what it takes to create an optimized and engaging business website.

It has a full-fledged team of certified developers, innovators, and digital marketers who use their in-depth domain expertise, design skills, and tech to deliver professional and customized user experiences. And despite this high level of expertise, SPINX Digital is more affordable, offering services at a fraction of its competition.

The team prides itself on having a deep understanding of user habits and behaviors and uses this fact-based knowledge to create high-functioning websites for both B2C and B2B markets. They use a mix of agile methodology, attributes, and processes to go a step further than simply designing your website—they deliver a holistic web solution customized to your exact needs.

I also like how streamlined SPINX Digital’s delivery process is. It first defines your needs and goals in connection with your audience and, based on it, takes a customized approach to create engaging and intuitive website experiences. 

SPINX Digital’s client portfolio includes several prominent B2C companies like Amazon, Beats Audio, General Electric, and Wet n Wild.

Pricing

To learn more about SPINX Digital‘s pricing, you’ll have to contact the sales team. But expect to pay between $150-$199 per hour.

How to Find the Best Web Design Agency for You

Here’s my honest take: choosing a reliable web design agency isn’t an easy task. It takes hard work, patience, and a lot of research. And considering who you pick will become a partner that’ll take over your business website, you don’t want to settle for anything but the best.

Here’s a complete rundown of factors I take into account when choosing a web design agency:

Their Own Website

The first step in your evaluation process should be to thoroughly examine your prospective web design agency’s website.

Try to get a feel of their ideology, company culture, style, and their approach when it comes to web design. I recommend checking out the About Us, Testimonials, and Work/Process sections. This should help you identify and cross out agencies that don’t share your vision or approach, narrowing down your options.

Their Work Portfolio

Visit the web design agency’s portfolio. Do you like their style of work? Have they previously designed for a brand similar to yours? Does their work meet your expectations or the standards you have in place?

Ideally, you should pick a firm that has worked in a variety of industries as they are likely to have a diverse understanding of the market and, therefore, a more creative perspective. 

Carefully analyze its client designs, looking for elements of versatility and adaptation. This indicates whether the web design agency can tailor its user experience and strategy to accommodate your business needs.

Additionally, some web design agencies only work with a certain sized business. For example, they may only offer services for small businesses and not enterprise-sized businesses. Always research before setting up a meeting to avoid wasting your time. 

Their Success Record

Avoid working with a web design agency that doesn’t have a proven record of successful work—that’s of course if you aren’t consciously working with a brand-new agency. 

Ask for proof showing they have continuously satisfied customers. you can also have them provide you with real-life testimonials and case studies, as well as references from long-standing accounts. If the agency has long-term partnerships with companies, it likely has a high client retention rate that proves they are reliable.

Their Design and Approach

Partner with web design agencies that stay up-to-date with the latest technology. They should have cutting-edge ideas that are fresh and unique and should be used to constant updates and innovation in the web design industry. 

At the same time, you don’t want to settle for agencies whose approach to web design is simply updating certain visual elements. Instead, they should embrace change in all forms and come up with responsive designs that are entirely different from the competition and make a lasting impact on your users.

Summary

Based on my experience and research, WebiMax is the best web design agency in the industry. Not only do they offer a fresh approach to responsive design, but they also have exemplary customer reviews and testimonials to back up their professionalism and accessibility. 

Still, when narrowing down web design agencies for your website, prioritize your needs. Look for companies with a strong background and a dedicated approach to help you build the website of your dreams.

Things Every Product Manager Must Know About Testing

Being responsible for the development and maintenance of a rapidly evolving tech product is arguably one of the most technical and fast-paced jobs out there. The fact that the whole landscape of relevant technologies is also evolving outside your company and product adds another layer of complexity to the mix.  

New devices, new features on your favorite cloud platform, latest APP frameworks, new DB paradigms, best IDE for your team, etc. The number of right decisions that a product team needs to make to ensure a smooth functioning application is quite large.