Welcome to curated list of handpicked free online resources related to IT, cloud, Big Data, programming languages, Devops. Fresh news and community maintained list of links updated daily. Like what you see? [ Join our newsletter ]

Linked Lists explained in PHP

Categories

Tags backend-development frontend-and-mobile leadership-and-career product-and-design software-engineering

As one of the most common data structures, the linked list has to be one of the simplest in concept; yet still very powerful. In this post we will be looking at what linked lists are; what types of linked lists there are; when to use a linked list; and whether or why a linked list might be better than an array. By Doeke Norg.

A linked list is a data structure; a way of organizing data that can be used in a particular way. In its most basic form a linked list is a single node that holds a value, as well as an (optional) reference to another single node.

The article main parts are:

  • What are Linked lists?
  • Types of lists
  • Strengths of (singly) linked lists
  • Weaknesses of (singly) linked lists
  • Circular linked lists
  • When to use linked lists

A Singly Linked List is the most basic linked list. With this type every node has a single pointer to the next node. This makes it uni-directional, as you can only traverse from the head to the last node.

The goal of this post is to introduce the linked list as a data structure. I think it is useful for any programmer to know and recognize these basic data structures. Because by recognizing it in code, it can help you optimize your code; making it faster, and more readable. Excellent read!

[Read More]

The importance of model versioning in machine learning

Categories

Tags ai-and-machine-learning data-and-analytics leadership-and-career

Version control is an essential concept in software development. Version control tools, such as Git, are used to manage and track source codes. Developers and organizations alike value source code because it is the backbone of their product(s), from which they earn revenue. By Oghenefejiro Esosuota.

Machine learning and artificial intelligence offer an edge to businesses and developers over their competitors, motivating the competition to push to build the best model as it provides a business advantage. As developers optimize for speed and accuracy, minimizing errors also becomes a priority. Model versioning is a great tool for all of those purposes.

The article then walks over:

  • What is model versioning?
  • Benefits of model versioning
  • Best practices for model versioning
  • Limitations
  • Tools for model versioning

Model versioning is a valuable part of the development process for machine learning projects because of the need for collaboration, tracking changing codes, and monitoring the model’s performance over time. Good read!

[Read More]

Create a blog with Clojure, nbb, and MarkDoc

Categories

Tags software-engineering frontend-and-mobile product-and-design

This endeavor is my first adventure with Clojure(script). Meaning this is from a Clojure beginner perspective. By Alexander Carls.

For me, scripting is the perfect middle ground when going from small book exercises to more significant projects while learning the language. I’d argue that a static site generation is on the larger side of “scripting”.

The article then explains this plan:

  • Create a minimalistic blogging site to get started blogging about my Clojure journey
  • Write blog posts in Markdown
  • Use functionality from MarkDoc with React
  • Tailwind CSS
  • Create static HTML for each Markdown post
  • Deploy with Netlify
  • Must work without JavaScript on the browser
  • RSS Feed
  • Comments support with GitHub
  • No CI/CD. Given the short scope of the project. Running commands on my local machine is OK
  • No Analytics

You will also find plenty of Clojure code examples. Good read!

[Read More]

Building a websocket server in a Microservice architecture

Categories

Tags architecture-and-apis product-and-design

Designing a WebSocket server in a microservice architecture for real-time communications. This article was written to share author’s exploration of real-time communication between frontend and backend using WebSocket. In recent years, microservice is an architectural approach that many developers have adopted, and one of the key principles of microservice architecture is the “Single Responsibility Principle.” By KBryan.

We will look into designing and implementing a WebSocket server that is responsible for establishing a WebSocket connection with the frontend (web application) and also acting as a middleware (or proxy) for real-time communications between the frontend and backend.

The article is mainly about:

  • Background context
  • WebSocket server design
  • Building a websocket server
  • Testing websocket connection
    • Test #1: Send message from backend to frontend (via API)
    • Test #2: Send message from backend to frontend (via Pub/Sub)
    • Test #3: Send message from frontend to backend (via Pub/Sub)

In summary, we have run through a possible design of a WebSocket server in a microservice architecture. Having a WebSocket server greatly aligns with the “Single Responsibility Principle” of microservices, where it manages all WebSocket connections to the web application (frontend) as well as handles real-time communications between the web application (frontend) and other microservices (backend). Nice one!

[Read More]

Securing Kafka infrastructure at Uber

Categories

Tags architecture-and-apis security-and-privacy devops-and-ci-cd software-engineering data-and-analytics

Uber has one of the largest deployments of Apache Kafka® in the world. It empowers a large number of real-time workflows at Uber, including pub-sub message buses for passing event data from the rider and driver apps, as well as financial transaction events between the backend services. By Prateek Agarwal, Ryan Turner, and KK Sriramadhesikan.

During our performance runs, we saw ~2.5X degradation in the p99 latencies when enabled security feature on the clusters. On further investigation, we discovered that Java 11 has significant SSL/TLS performance improvements over Java 8 because of faster cryptographic operation handling in Java 9+.

The article deep dives into:

  • Kafka security concepts
    • Encryption
    • Authentication
    • Authorization
    • Security provider
    • Uber PKI (uPKI) framework
  • Architecture
  • Charter IAM framework
    • Key/Certificate retrieval flow
    • Authorization flow
  • Enabling Security Feature on Clusters

… and much more. In this blog we showed the essential components to enable security features on a Kafka cluster. We then showed how Kafka interacts with uPKI and Charter (IAM) systems together to attain security on the Kafka clusters. We discussed how we incrementally enabled security features on Kafka clusters and topics without any degradation. Nice one!

[Read More]

Lessons learned from combining SQS and Lambda in a data project

Categories

Tags architecture-and-apis ai-and-machine-learning software-engineering data-and-analytics

The built-in functionality of SQS and Lambda provided us serverless, scalable and fault-tolerant basis, but while running the solution we also learned some important lessons. In this blog post I will discuss the issue of valid messages ending up in dead-letter queues (DLQ) and correctly configuring your DLQ to catch only erroneous messages from your source SQS queue. By Miia Niemelä.

In brief, Amazon SQS is a lightweight, fully managed message queueing service, that enables decoupling and scaling microservices, distributed systems and serverless applications. With SQS, it is easy to send, store, and receive messages between software components, without losing messages.

The article deals with:

  • What are Amazon SQS and Lambda?
  • Problems with valid messages ending up in DLQ
  • Lambda scales automatically with the number of messages arriving to SQS – up to a limit
  • Configuring DLQ to your SQS and Lambda combination

When testing our solution with pushing thousands of messages rapidly to the queue, we observed many of the messages ending up in a dead-letter queue, even though they were not erroneous.From the CloudWatch metrics, we found no execution errors during the given period, but instead there was a peak in the Lambda throttling metric. We had configured a DLQ to catch erroneous messages, but ended up having completely valid and unprocessed messages in the DLQ.

With carefully tuning the parameters of our SQS queue, mainly by increasing the maxReceiveCount and VisibilityTimeOut, we were able to overcome the problems with Lambda functions throttling. Excellent read!

[Read More]

Microservices vs APIs: Understanding the difference

Categories

Tags architecture-and-apis frontend-and-mobile product-and-design

Microservices and APIs are becoming famous everywhere in the software development space with the increasing need to produce scalable, secure, and flexible applications at faster turnaround times. By Durga Prasad Acharya.

But many people confuse between them, and when it comes to developing a software application, they don’t know what will be suitable for them This article will compare microservices vs API with an aim to put an end to all your confusion so you can decide the best way to build and deploy your application.

The article contains information on:

  • What are microservices?
  • What is an API?
  • Microservices vs API: How do they work?
  • Microservices vs API: Benefits of each
  • Microservices vs API: What are they used for?
  • Microservices vs API: Similarities and differences
  • Can microservices and API work together? How?

Microservices and API can work together in an application. Although they can exist separately, using both together in your application can help organizations effectively implement the microservices architecture. Many companies face difficulties deploying microservices architecture when they already have other architectures deployed. In addition, integrating multiple, smaller services and benefitting from them is problematic. Interesting read!

[Read More]

Automated farming robots: Five awesome use cases

Categories

Tags business-and-emerging-tech ai-and-machine-learning data-and-analytics

Automation has found its way into almost all industries. Many industries have adopted automation to reduce human efforts and boost productivity to meet customer demands. Recently, automated farming robots are being used for various agricultural practices. They minimize the intensive hard work required for farming and save a lot of time. By Amna Faryad.

As a result, the agriculture industry has adapted advanced approaches to tackle different uncertain situations like reducing human errors and costs. The article then explains:

  • Smart agriculture
  • Robots for planting
  • Irrigation drones
  • Harvest robots
  • Weeding robots
  • Robots for pruning

With the use of these automated farming approaches, it has become easy for farmers to increase their land’s productivity even in the absence of enough labor. Automated farming robots use artificial intelligence technology and computer vision to increase their efficiency for the effective use of available resources. Interesting read!

[Read More]

A technique to teach bimanual robots stir-fry cooking

Categories

Tags business-and-emerging-tech miscellaneous cloud-and-infrastructure ai-and-machine-learning data-and-analytics

As robots make their way into a variety of real-world environments, roboticists are trying to ensure that they can efficiently complete a growing number of tasks. For robots that are designed to assist humans in their homes, this includes household chores, such as cleaning, tidying up and cooking. By Ingrid Fadelli , Tech Xplore.

Stir-fry, the cooking style that the team focused on in their recent paper, involves complex bimanual skills that are difficult to teach to robots. To effectively do this, Liu and his colleagues first tried to train a bimanual coordination model known as a “structured-transformer” using human demonstrations.

Researchers at the Idiap Research Institute in Switzerland, the Chinese University of Hong Kong (CUHK) and Wuhan University (WHU) have recently developed a machine learning-based method to specifically teach robots to master stir-fry, the Chinese culinary cooking technique. Their method, presented in a paper published in IEEE Robotics and Automation Letters, combines the use of a transformer-based model and a graph neural network (GNN).

Food preparation and cooking are two crucial activities in the household, and a robot chef that can follow arbitrary recipes and cook automatically would be practical and bring a new interactive entertainment experience. The researchers assessed their model’s performance both in simulations and on a physical two-handed robotic platform, known as the Panda robot. In these tests, their model allowed the robot to successfully and realistically reproduce the motions involved in stir-fry. Interesting read!

[Read More]

Things a city needs to become a startup hub

Categories

Tags business-and-emerging-tech miscellaneous cloud-and-infrastructure leadership-and-career

It’s common sense that being part of a thriving startup community can bring immense advantages to your own project. Yet, not all startup founders have the opportunity or desire to move to Silicon Valley, New York, London, Beijing, or any of the other big startup hubs. By Abdo Riani.

If you are serious about building a tech startup, it’s a great idea to create a strong connection with at least one investor, mentor, or partner located in an active startup hub.

In this article, we’ll talk about how to find a productive compromise. The article captures:

  • Access to knowledge
  • Connectedness and access to talent
  • Access to capital

Being connected to a thriving ecosystem is a crucial factor for the success of any startup project. It’s hard to be successful in a high-value-added field if you have to start by reinventing the wheel, so access to fellow successful startup founders, mentors, and knowledgeable partners is an advantage that’s hard to compensate for. Good read.

[Read More]