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 ]

A glance at the Java performance toolbox

Categories

Tags frameworks performance app-development jvm java

Performance tuning starts with analysis, and JDK tools can help you gain insights on classes and threads and can perform live GC analysis or heap dump postprocessing: jcmd, jconsole, jstat, jmap and jfr. By Ana-Maria Mihalceanu.

We’ll examine the functional visibility areas essential to Java and how these tools provide that information. Moreover, will discuss options on how to integrate information gathered from these tools with widespread monitoring systems like Prometheus.

After this talk, you will be ready to understand what your application spends time on and why so you can start improving its performance with complete information. Watch the video to learn more. Nice one!

[Read More]

How to use PyScript – A Python frontend framework

Categories

Tags frameworks web-development app-development frontend

Python has grown in popularity immensely in recent years. It has a wide range of applications, from its most popular use in Artificial Intelligence, to Data Science, Robotics, and Scripting. Anaconda announced a framework named PyScript that allows you to use Python on the web using standard HTML. By Ifihanagbara Olusheye.

PyScript is a Python front-end framework that enables users to construct Python programs using an HTML interface in the browser. Further in the article:

  • Why PyScript?
  • How to Get Started with PyScript
  • More Operations with PyScript
  • Run REPL in the browser

PyScript provides an interface for running Python code in browsers. With PyScript, it’s easier to run and perform Python operations on the web, as this wasn’t easy before. This is a great tool for anyone who’s looking forward to using Python on the web. Good read!

[Read More]

Delivering messages at the scale of the World Cup

Categories

Tags messaging cloud queues nosql microservices

Events like the World Cup bring together a huge number of fans like Alex all over the world. The biggest challenge in maintaining such a service is scale. The type of traffic for such events can be extremely spiky. A very steady traffic volume can suddenly spike when Mbappe scores the goal that ties the game. Suddenly, FCM needs to notify 250M users about this event. By Michelangelo Mecozzi.

To prepare for an event of this size, Firebase Messaging implemented several changes and best practices that we want to share with the rest of the engineering community. Hopefully, lessons learned here will help you prepare your infrastructure for the next big event. The article then delve into:

  • Understanding the traffic
    • Using the past to predict the future
  • Capacity planning
  • Load balancing
  • Defense in depth
  • Cluster scaling
  • Load tests

Managing high spikes in traffic is certainly no easy task. But equipped with the right best practices and the most effective mitigation strategies, you will be in the best position to handle large traffic volumes. Very interesting!

[Read More]

Character sets and collations in MySQL

Categories

Tags web-development app-development sql database how-to

Understanding the differences between character sets and collations in MySQL. Character sets and collations are fundamentally important concepts to understand when dealing with string columns in MySQL. A slight misunderstanding of either can lead to poor performance or unexpected errors when inserting data. By planetscale.com.

The article then goes over (with examples):

  • Character sets in MySQL
  • How do you define a character set?
  • Collations in MySQL#
  • How do you define a collation?#

MySQL supports a wide range of character sets, which you can view by selecting from the information_schema database. There are a few ways to define the character set of a column. If you don’t specify a character set at the table or column level, the server default of utf8mb4 will be applied (unless you’ve explicitly declared a different server or database default).

While character sets define the legal characters that can be stored in a column, collations are rules that determine how string comparisons are made. If you are sorting or comparing strings, MySQL uses the collation to decide the order and whether the strings are the same. Understanding character sets and collations is fundamental when dealing with string data in MySQL. A character set defines the legal characters that can be stored in a column, while a collation determines how string comparisons are made. Good read!

[Read More]

PayPal open sources key-value store JunoDB

Categories

Tags open-source performance web-development app-development database

PayPal last month released the source code for JunoDB, a distributed key-value store it developed internally and which today powers a variety of backend services at the payment site, including 350 billion transaction requests per day, the company says. By Alex Woodie.

JunoDB was originally developed over a decade ago in C++ to address the specific needs of the company. Since no commercial or open-source solutions were available to handle the required scale out-of-the-box, we developed our own solution to adopt a horizontal scaling strategy for key-value stores.

The new database would addresses two primary scaling needs in distributed key-value stores. Handling the a large number of client connections, and handling growth in read and write throughput. PayPal database developers created JunoDB with a proxy-based architecture to enable horizontal scaling. The JunoDB client library, which resides in the application, was developed to enable simple data actions through the JunoDB proxy, which manage requests from the clients, coordinates with the data stored on the JunoDB storage server, and provides load balancing. All data is encrypted, either at the client or the proxy layer using TLS; all stored data is also encrypted using TLS.

JunoDB utilizes consistent hashing to partition data and minimize data movement. To support horizontal scale, it shards data among a number of database partitions located on server nodes. JunoDB has since been rewritten in Golang to provide multi-threading and multi-core capabilities. With JunoDB’s data replication methods, including within-data center and cross-data center replication, the key-value store delivers six 9’s of system availability for PayPal. Interesting read!

[Read More]

Develop data visualization interfaces in Python with Dash

Categories

Tags python programming web-development frameworks analytics

In the past, creating analytical web applications was a task for seasoned developers that required knowledge of multiple programming languages and frameworks. That’s no longer the case. Nowadays, you can make data visualization interfaces using pure Python. One popular tool for this is Dash. By Bob Pacheco.

Dash gives data scientists the ability to showcase their results in interactive web applications. You don’t need to be an expert in web development. In an afternoon, you can build and deploy a Dash app to share with others. Dash is an open-source framework for building data visualization interfaces. Released in 2017 as a Python library, it’s grown to include implementations for R, Julia, and F#. Dash helps data scientists build analytical web applications without requiring advanced web development knowledge.

The article then explains in detail:

  • What is Dash?
  • Get started with Dash in Python
  • Style your Dash application
  • Add interactivity to your Dash apps using callbacks
  • Deploy your dash Application to PythonAnywhere

You can use Dash to build analytical applications to share with others. As more companies put more weight on the use of data, knowing how to use Dash will increase your impact in the workplace. What used to be a task only experts could perform, you can now do in an afternoon. Excellent read!

[Read More]

CI/CD with Crunchy Postgres for Kubernetes and Argo

Categories

Tags devops cloud cicd kubernetes

Continuous Integration / Continuous Delivery (CI/CD) is an automated approach in which incremental code changes are made, built, tested and delivered. Organizations want to get their software solutions to market as quickly as possible without sacrificing quality or stability. While CI/CD is often associated with application code, it can also be beneficial for managing changes to PostgreSQL database clusters. By Bob Pacheco.

Crunchy Postgres is the first commercially available open source relational database management system to receive Common Criteria certification. Turnkey Monitoring. Easily deploy Kubernetes native open source PostgreSQL - powered by Crunchy Postgres Operator (PGO).

GitOps plays an important part in enabling CI/CD. If you are unfamiliar with GitOps, I recommend starting with my previous post on Postgres GitOps with Argo and Kubernetes. The article covers:

  • Prerequisites
  • Self test container
  • ArgoCD
  • Create an ArgoCD repository
  • Create an ArgoCD project
  • Create the ArgoCD applications
  • Deploy the Crunchy Postgres for Kubernetes cluster

The declarative nature of the manifest combined with the power of GitOps and ArgoCD makes creating a CI/CD pipeline easier than ever. This blog only covers a segment of a full end to end pipeline. In my next blog we will look at how to apply new images to an existing application using ArgoCD Image Update. Nice one!

[Read More]

How to access, install, and use AI ChatGPT-4 plugins (and why you should)

Categories

Tags startups cloud machine-learning miscellaneous

ChatGPT-3.5 is useful. ChatGPT-4 can be very useful. But, for the most useful version of ChatGPT to date, you need to add, implement, and use ChatGPT-4 with plugins. By Steven Vaughan-Nichols.

Plugins add more search capabilities to the chatbot and integrate it with third-party services. Extensions, like any Chrome extensions, are just added via the Chrome Web Store. Plugins are trickier. Here’s how you find and install them. Further in the article:

  • How to install ChatGPT-4 plugins
  • How to use ChatGPT Browse with Bing
  • Select your AI model and feature
  • How to use ChatGPT plugins
  • Explore the plugins
  • What are the caveats of ChatGPT-4 plugins?

Once installed, you simply choose to use the model with them activated. That’s all there is to it. Under the hood, the ChatGPT application programming interfaces (API)s are being invoked, but you don’t have to worry about the tech details. Just write your prompt and go. Good read!

[Read More]

The role of User Experience (UX) in custom software development

Categories

Tags ux web-development app-development miscellaneous

User Experience, commonly called UX, is an all-encompassing term that refers to a user’s overall perception of and response to using a product, system, or service. In the context of software development solutions, it is the quality of the interaction a user has with a software product. By Naveen Joshi.

This article explores the importance of UX design in software development. Amongst others it explains:

  • Components of UX
  • The difference between UX and UI
  • How does UX impact custom software development?
  • Incorporating UX into custom software development solutions
  • Challenges in integrating UX
  • The future of UX in custom software development

… and more. The field of UX is evolving rapidly, driven by technological advancements and changes in user behavior. One significant trend is the growing role of Artificial Intelligence (AI) in UX design. AI and machine learning algorithms can analyze large amounts of user data to deliver personalized experiences, predict user behavior, and make intelligent recommendations. Good read!

[Read More]

Rails design patterns - the big picture

Categories

Tags web-development app-development cloud open-source

A design pattern is a repeatable solution to solve common problems in a software design. When building apps with the Ruby on Rails framework, you will often face such issues, especially when working on big legacy applications where the architecture does not follow good software design principles. By Paweł Dąbrowski.

The article then explains:

  • Advantages of using design patterns
  • Commonly used design patterns in Rails applications
    • Service
    • Value object
    • Presenter
    • Decorator
    • Builder
    • Form object
    • Policy object
    • Query object
    • Observer
    • Interactor
    • Null object

Any design pattern should be used with caution. When using them not correctly, we can harm our architecture and overcomplicate the code, which leads to longer development time and higher technical debt. Interesting read!

[Read More]