News AggregatorA Complete Guide to Deploying Github Projects on Amazon EC2Aggregated on: Mon Mar 21 2022 03:20:19 GMT+0000 (Coordinated Universal Time) GitHub Actions: Performs the build and test (Continuous Integration) AWS CodeDeploy: Automates the deployment process to EC2 (Continuous Deployment) View more...What Are The Key Challenges a Platform Team Experiences?Aggregated on: Mon Mar 21 2022 03:20:19 GMT+0000 (Coordinated Universal Time) With the increased reliance on various technologies for software development, both software and hardware need to grow along with those technologies to provide reliable and secure services. However, this need has led to creating more complex solutions than ever. Thus, the importance of robust infrastructure has come to the forefront to deliver these solutions reliably at a global scale. Due to these facts, the platform team has to face different challenges to provide and maintain this infrastructure without affecting the software development lifecycle (SDLC) or end-users. What Is a Platform Team? We have Dev for development, QA for testing, and likewise, the platform team for managing the infrastructure of an organization. This infrastructure includes both internal SDLC resources like CI/CD pipelines, staging/testing environments, production resources, and in most cases, managing software deployments. The platform team will handle most operational aspects of an SDLC. They are the key component that manages most of DevOps tools and platforms, bringing the full benefits of DevOps. View more...Generating Secure Properties in Mule 4Aggregated on: Mon Mar 21 2022 03:20:19 GMT+0000 (Coordinated Universal Time) Secure Property Placeholder is an essential standard for keeping sensitive data like User ID and Password secure (encrypted/cypher-text) in the Property file. Securing properties is one of the crucial elements in every Mule project. MuleSoft has introduced a Secure properties generator with a point and click environment that saves time and effort in specific scenarios. This blog will explore both traditional methods — using jar — and modern methods — using secure property generator — of generating secure properties in Mule 4. View more...What China’s Tech Crackdown Means For IoTAggregated on: Mon Mar 21 2022 03:20:19 GMT+0000 (Coordinated Universal Time) The latest slew of regulation changes by the Chinese Communist Party (CCP) has had a profound effect on the status of IoT companies in China. The gaming industry was the first to feel the wrath of the new CCP legislation. After being torpedoed with penalties and regulatory changes to alter entire areas of business operation, gaming companies like Tencent and NetEase watched the government compare their industry to a type of digital drug addicting the Chinese youth. Now, there is serious cause for concern for the Internet of Things (IoT). Foreign investors have already begun to pull out after seeing a collective $50 billion decrease in the market value of China’s biggest tech corporations. Likewise, the fractious political situation between the CCP and Hong Kong — an international hub for IoT products — has added yet more uncertainty. View more...What Every Java Developer Should Know About Thread, Runnable, and Thread PoolAggregated on: Mon Mar 21 2022 02:50:19 GMT+0000 (Coordinated Universal Time) Multithreading Is Most Complex And Biggest Part Of Java Multithreading chapters are the most difficult to understand and use in Java. Unfortunately, there are not that many sources where you can get all the answers. Meanwhile, concurrency knowledge is critically important. In this article, I explain the core aspects of multithreading that every Java developer has to know. In this part, we start with the Thread and Runnable subject. Why Is Concurrency Knowledge So Critical? You Can't Get Senior Java Job Without Good Knowledge Of Multithreading Multithreading knowledge almost certainly is the subject of interviews for senior Java positions. Without a clear understanding of multithreading with and without hands-on experience, you most likely will fail. View more...What Is Sanity Testing? - A Brief GuideAggregated on: Sun Mar 20 2022 23:35:19 GMT+0000 (Coordinated Universal Time) Software testing is crucial in the development and delivery of software. There are various types of software testing, each with its own function in the software development process. One of the most useful tests among them is sanity testing. What Is Sanity Testing? It's a type of software testing that ensures flaws are repaired and that the modifications don't cause any new problems. It's a form of retesting to make sure that any updates or newly introduced features work as planned. The goal of sanity testing is to validate the application's functionality, not to perform extensive testing. It's typically used to fix major bugs. It is done to check that fresh code changes are working properly. The goal is not to test the application's important functionalities, but rather to see if the defects have been fixed. It generally works after a slight adjustment. View more...How to Use JWT SecurelyAggregated on: Sun Mar 20 2022 23:35:19 GMT+0000 (Coordinated Universal Time) In my articles about Spring Boot Security and LDAP authentication, we implemented JWT as a user information carrier between client and server. You can access those articles from here and here. In this article, we will dig into another concept, usage of JWT securely in a Spring Boot application. JWT (JSON Web Token) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. You may get detailed information from its official website. View more...Sanity vs Smoke Testing: What’s the DifferenceAggregated on: Sun Mar 20 2022 23:35:19 GMT+0000 (Coordinated Universal Time) Before we get into sanity vs. smoke testing, it's important to understand the difference between the two. What Is Smoke Testing? Smoke Testing is a software testing procedure that determines whether or not a software build has been delivered and is stable. The QA team does smoke testing to validate that the software is ready for further testing. Smoke testing is often known as "Build Verification Testing" or "Confidence Testing." View more...How To Change Node.JS VersionAggregated on: Sun Mar 20 2022 21:35:19 GMT+0000 (Coordinated Universal Time) In this quick guide, we'll be looking at the easiest way to change the Node.JS version using nvm. Using NVM To Change node.JS Version First, you will need to install nvm, which stands for node version management. To install nvm, you can do it by running the following script: View more...Testing Golang With httptestAggregated on: Sun Mar 20 2022 19:35:19 GMT+0000 (Coordinated Universal Time) Go, often referred to as Golang, is a popular programming language built by Google. Its design and structure help you write efficient, reliable, and high-performing programs. Often used for web servers and rest APIs, Go offers the same performance as other low-level languages like C++ while also making sure the language itself is easy to understand with a good development experience. Go’s httptest package is a useful resource for automating your server testing process to ensure that your web server or REST API works as expected. Automating server testing not only helps you test whether your code works as expected; it also reduces the time spent on testing and is especially useful for regression testing. The httptest package is also useful for testing HTTP clients that make outbound requests to remote servers. View more...JVM Memory Architecture and GC Algorithm BasicsAggregated on: Sun Mar 20 2022 19:35:19 GMT+0000 (Coordinated Universal Time) Purpose This article discusses the basic concept of JDK8 and upwards memory management with heap and stack memory. and the basics of GC and its Algorithms. Importance of Memory Management Java garbage collector doesn't ensure that the heap memory will be completely free, and also, for a developer, it is not possible to force a garbage collector to run at a specific time. So it is helpful to know how memory management in Java works. View more...MongoDB to Couchbase (Part 3): Data TypesAggregated on: Sun Mar 20 2022 19:05:19 GMT+0000 (Coordinated Universal Time) In the article on MongoDB and Couchbase database objects, we saw the mapping from databases to buckets, collections to collections, documents to documents, and field to fields. The data itself is stored within these fields. The {"field": "value"} is commonly called key-value pairs. Every key has a value and the value is the data. This value self describes the data under BSON or JSON definition in MongoDB and Couchbase. MongoDB uses BSON, Couchbase uses JSON -- both are document-oriented and JSON-based. Couchbase uses JSON exactly, MongoDB uses extended JSON called BSON, binary JSON. View more...A Simple Code Generator Using a Cool Python featureAggregated on: Sun Mar 20 2022 19:05:19 GMT+0000 (Coordinated Universal Time) For my most recent project, I wrote a couple of code generators - three variants of a Python/Spark application generator and at least four variants of an Airflow DAG generator. Different variants were needed as the requirements and the complexity of the output evolved over a period of time. Using this experience, I will show how you can get started on your journey of writing a code generator using a cool feature of Python.For the purpose of this article, I will use a Python program that generates a basic Python/Spark application to get and display 10 rows of the specified table. The application to be generated is as below Python import os import sys import pyspark from pyspark import SparkContext from pyspark.sql import SQLContext from pyspark.sql import SparkSession spark_session = SparkSession.builder.appName("generator").getOrCreate() try: df = spark_session.sql("select * from user_names") df.show(10, False) except Exception as e: print("Got an error {er}".format(er=str(e))) spark_session.stop() Version 1The simplest method for generating this application is to make use of print statements as below View more...Did We Build The Right Thing? That's What UAT Is About.Aggregated on: Sun Mar 20 2022 19:05:19 GMT+0000 (Coordinated Universal Time) There are reasons to give key stakeholders the opportunity to officially sign off on a new software release. We need some formal approval from the people who commissioned it, or at least their delegates. This last stage prior to release is commonly called the user-acceptance test and executed in a UAT environment. It’s an indispensable stage, but treating it as the final step in testing is problematic for several reasons. Let me start with a car example. Dealerships are generous with free test drives for the same reason that clothing stores let your try on three different shirts. It’s to let the endowment effect do its dirty work: wearing (or driving) something feels more like you already own it. It's to get a taste for the look and feel, and a catalyst for closing the deal. It's not about really testing the vehicle -- they expect it back unscratched. Toyota doesn’t need their customers taking an active part in their QA process. View more...DynamoDB Partition Key Strategies for SaaSAggregated on: Sun Mar 20 2022 18:35:19 GMT+0000 (Coordinated Universal Time) Amazon DynamoDB is a fully managed NoSQL database service built for scalability and high performance. It’s one of the most popular databases used at SaaS companies.. We selected DynamoDB for the same reasons as everyone else: autoscaling, low cost, zero downtime. However, at scale, DynamoDB can present serious performance issues. SaaS applications commonly follow a multi-tenant architecture, which means every customer receives a single instance of the software. At scale, this can often lead to hotkey problems due to an uneven partitioning of data in Amazon DynamoDB, which can be resolved with two solutions that will allow the system to scale. When using Amazon DynamoDB for a multi-tenant solution, you need to know how to effectively partition the tenant data in order to prevent performance bottlenecks as the application scales over time. View more...Ultimate Guide to Types in TypeScriptAggregated on: Sun Mar 20 2022 16:20:19 GMT+0000 (Coordinated Universal Time) TypeScript is a strongly typed language built on top of Javascript. As such, types have to be defined in TypeScript when we write our code, rather than inferred as they normally are in Javascript. In this guide, we'll be diving into how types work in TypeScript, and how you can make the most of them. If you're totally new to TypeScript, start with our guide on making your first TypeScript project. View more...Lessons Learned Moving From On-Prem to Cloud NativeAggregated on: Sun Mar 20 2022 16:20:19 GMT+0000 (Coordinated Universal Time) Recently, I came across a sample e-commerce application that demonstrates how to use Next.js, GraphQL engine, Postgres, and a few other frameworks to build a modern web application. The application supports basic e-commerce capabilities such as product inventory and order management, recommendation system, and checkout function. This made me curious as to how much effort it would take to turn this application from an on-prem to a cloud-native solution. The original architecture for this sample app looked like the below diagram. You can start the whole setup in a few minutes following this guide. View more...Cookies at the Edge: Not a Baking Blog PostAggregated on: Sun Mar 20 2022 16:20:19 GMT+0000 (Coordinated Universal Time) I came across an interesting use case for edge compute the other day: cookie management at the edge. It probably won’t be super relevant to a ton of people, but it’s an interesting use case I wanted to share nonetheless. Brief Background About Cookies When most people think of cookies, they picture delicious baked morsels. But we’re not here to talk about those (unfortunately). In the context of web development, cookies are one of the options web developers have to store data. View more...What Are Linear Data Structures?Aggregated on: Sun Mar 20 2022 15:50:19 GMT+0000 (Coordinated Universal Time) Why should I care? We use these data structures every day in programming. Even if you're already familiar with them, it's helpful to recap them occasionally. View more...What Is JDBC PreparedStatement?Statement vs PreparedStatementAggregated on: Sun Mar 20 2022 10:20:19 GMT+0000 (Coordinated Universal Time) In the video below, we take a closer look at JDBC PreparedStatement with example and Statement vs PreparedStatement. Let's get started! View more...Query S3 With SQL Using S3 SelectAggregated on: Sun Mar 20 2022 09:50:19 GMT+0000 (Coordinated Universal Time) S3 Select is an AWS S3 feature that allows developers to run SQL queries on objects in S3 buckets. Here's an example. SQL SELECT s.zipcode, s.id FROM s3object s where s.name = 'Harshil' Previously we wrote about the different ways you can write SQL with AWS. In this article, we will see how to configure and use S3 Select to make working with big datasets easier. View more...Hands-On With Adobe Document Generation APIAggregated on: Sat Mar 19 2022 17:35:18 GMT+0000 (Coordinated Universal Time) This week Adobe is proud to announce the availability of the Document Generation API as part of Adobe Document Services. This is a powerful new service that enables developers to generate both Word and PDF documents from a template and dynamic data. This new API is fully supported by our Java, .Net, and Node SDKs already and can be used in any other language via a REST API. Let’s take a look at how this works. Document generation is done by combining a Word document that acts as a template along with your data. This data could be hard-coded in a JSON file or fetched on the fly from another API. Adobe Document Generation API will take your Word document template, inject your data, and then output either a Word document or PDF as the result. How about a simple demo? View more...How to Customise SuperTokens APIsAggregated on: Sat Mar 19 2022 16:35:18 GMT+0000 (Coordinated Universal Time) Auth requirements are quite varied. Therefore any auth solution must provide the ability to customise their APIs. Each solution uses its own terminology for this feature: Keycloak uses “Implementing an SPI” View more...Compare JSON Documents and Apply Patches With TerminusDB and MongoDBAggregated on: Sat Mar 19 2022 15:20:18 GMT+0000 (Coordinated Universal Time) In this demo tutorial, we will show how the diff and patch operation can be applied to monitor changes in TerminusDB schema, TerminusDB documents, JSON schema, and other document databases like MongoDB. A Little Background on JSON Diff and Patch A fundamental tool in Git’s strategy for distributed management of source code is the concept of the diff and the patch. These foundational operations are what make git possible. Diff is used to construct a patch that can be applied to an object such that the final state makes sense for some value of makes sense. View more...Deploy a Multi-Datacenter Apache Cassandra Cluster in Kubernetes (Pt. 1)Aggregated on: Sat Mar 19 2022 14:35:18 GMT+0000 (Coordinated Universal Time) The Get Started examples on the K8ssandra site are primarily concerned with spinning up a single Apache Cassandra™ datacenter in a single Kubernetes cluster. However, there are many situations that can benefit from other deployment options. In this series of posts, we’ll examine different deployment patterns and show how to implement them using K8ssandra. Flexible Topologies With Cassandra From its earliest days, Cassandra has included the ability to assign nodes to datacenters and racks. A rack was originally conceived as mapping to a single rack of servers connected to shared resources, like power, network, and cooling. A datacenter could consist of multiple racks with physical separation. These constructs allowed developers to create high-availability deployments by replicating data across different fault domains. This ensured that Cassandra clusters remain operational amid failures ranging from a single physical server, rack, to an entire datacenter facility. View more...JavaScript: Building Table Sorting and PaginationAggregated on: Sat Mar 19 2022 14:05:18 GMT+0000 (Coordinated Universal Time) As part of my job in managing this blog, I check my stats frequently, and I've noticed that some of my more basic Vue.js articles have had consistently good traffic for quite some time. As I find myself doing more and more with "regular" JavaScript (sometimes referred to as "Vanilla JavaScript", but I'm not a fan of the term) I thought it would be a good idea to update those old posts for folks who would rather skip using a framework. With that in mind, here is my update to my post from over four years ago, Building Table Sorting and Pagination in Vue.js You don't need to read that old post as I think the title is rather descriptive. How can we use JavaScript to take a set of data - render it in a table - and support both sorting and pagination? Here's how I solved this. Before I begin, a quick note. I'll be loading all of my data and while that works with a "sensible" amount of data, you don't want to be sending hundreds of thousands of rows of data to the client and sorting and paging in the client. That being said, I think an entirely client-side solution is absolutely safe if you understand the size of your data and know it's not going to impact performance. View more...Postgres Connection Pooling and ProxiesAggregated on: Sat Mar 19 2022 14:05:18 GMT+0000 (Coordinated Universal Time) One essential concept that every backend engineer should know is connection pooling. This technique can improve the performance of an application by reducing the number of open connections to a database. Another related term is "proxies," which help us implement connection pools. In this article, we'll discuss connection pooling, implementing it in Postgres, and how proxies fit in. We'll do this while also examining some platform-specific considerations. View more...How the cat Command Works on LinuxAggregated on: Sat Mar 19 2022 13:35:18 GMT+0000 (Coordinated Universal Time) cat, short for concatenate, is used on Linux and Unix-based systems like MacOS for reading the contents of a file, concatenating the contents with other files, and for creating new, concatenated files. It's also frequently used to copy the contents of files. The syntax for cat is shown below, where x is the file name, and [OPTIONS] are optional settings which alter how cat works. View more...Lessons Learned From Previous ProjectsAggregated on: Sat Mar 19 2022 13:35:18 GMT+0000 (Coordinated Universal Time) An exciting part of software development is what was unanimously considered good practice at one point in time can be more ambiguous years later. Or even plain wrong. However, you generally need to do it multiple times over time to realize it. Here are my top learnings from my experience in Java projects. Packaging by Layers When I started my developer career in Java, every project organized their classes by layers - controllers, services and DAOs (repositories). A typical project's structure would look like this: View more...What Is Jaro-Winkler Similarity?Aggregated on: Sat Mar 19 2022 13:35:18 GMT+0000 (Coordinated Universal Time) Why Should I Care? String similarity metrics have various uses; from user-facing search, functionality to spell checkers. There are a few common string similarity metrics. Knowing a little about each will help you to choose the right one, should you ever need to implement something like this yourself. View more...Serverless for SurvivalAggregated on: Fri Mar 18 2022 20:05:18 GMT+0000 (Coordinated Universal Time) When new technologies arise, we first adopt them for their technical value. If that value proves out, then we reach the magic “crossing the chasm” moment: when a technology jumps to widespread adoption through proven business value and goes mainstream. Some technologies, a very select few, make one more jump forward, however — from mainstream to existential imperative. View more...How To Hire Remote Developers SuccessfullyAggregated on: Fri Mar 18 2022 19:35:18 GMT+0000 (Coordinated Universal Time) There are many aspects to consider when you want to hire remote developers: the candidate’s technical and soft skills, the region where you hire, how to find a developer, hiring format, and many more. Here, we’ll talk about what a developer needs to work efficiently in the remote format, as well as how to check if this work is efficient. Ask an HR manager about what is important for a remote developer and most likely you will hear that this person should be independent, organized, self-disciplined, structured, etc. That sounds reasonable, but what hides behind these names in reality? Let’s take a thorough look at the candidate requirements from a practical perspective. View more...Asynchronous API Calls: Spring Boot, Feign, and Spring @AsyncAggregated on: Fri Mar 18 2022 19:35:18 GMT+0000 (Coordinated Universal Time) The requirement was to hit an eternal web endpoint and fetch some data and apply some logic to it, but the external API was super slow and the response time grew linearly with the number of records fetched. This called for the need to parallelize the entire API call in chunks/pages and aggregate the data. Our synchronous feign client: View more...Environmental Impact of the Cloud: 5 Data-Based Insights and One Good FixAggregated on: Fri Mar 18 2022 18:35:18 GMT+0000 (Coordinated Universal Time) Does using the cloud make your business sustainable? Research suggests that it’s a greener choice. By moving to the cloud, the e-commerce giant Etsy slashed its energy consumption by 13% (from 7330 MWh in 2018 to 6376 MWh in 2019), saving enough energy to power 450 households for a month.(1) However, migrating to the cloud doesn’t guarantee anything if you neglect to optimize your resource utilization over the long term. View more...Apache Kafka Landscape for Automotive and ManufacturingAggregated on: Fri Mar 18 2022 18:35:18 GMT+0000 (Coordinated Universal Time) Before the Covid pandemic, I had the pleasure of visiting "Motor City" Detroit in November 2019. I met with several automotive companies, suppliers, startups, and cloud providers to discuss use cases and architectures around Apache Kafka. A lot has happened. Since then, I have also met several OEMs and suppliers in Europe and Asia. As I finally go back to Detroit this January 2022 to meet customers again, I thought it would be a good time to update the status quo of event streaming and Apache Kafka in the automotive and manufacturing industry. Today, in 2022, Apache Kafka is the central nervous system of many applications in various areas related to the automotive and manufacturing industry for processing analytical and transactional data in motion across edge, hybrid, and multi-cloud deployments. This article explores the automotive event streaming landscape, including connected vehicles, smart manufacturing, supply chain optimization, aftersales, mobility services, and innovative new business models. View more...MQTT Messaging With Java and Raspberry PiAggregated on: Fri Mar 18 2022 17:50:18 GMT+0000 (Coordinated Universal Time) In December 2021, I had the chance to write a three-post blog series for HiveMQ. They provide an MQTT compatible message broker you can install yourself, or through a cloud service they provide. That cloud service is free to connect up to 100 devices! Even for the most enthusiastic maker, that’s a lot of microcontrollers or computers! You can find example code for many programming languages on the HiveMQ site, but as a Java and Raspberry Pi fan, I wanted to add some extra examples. The full descriptions are available on the HiveMQ blog, so let me give you a short overview here on DZone to give you an idea of the possibilities. View more...Garbage Collection Tuning Success Story: Reducing Young Gen SizeAggregated on: Fri Mar 18 2022 17:20:18 GMT+0000 (Coordinated Universal Time) When you tune Garbage collection performance, you are not only improving Garbage collection pause time but also the overall application’s response time and reducing cloud computing cost. Recently, we helped to tune the Garbage collection behavior of a popular application. Just by making a minor change, it resulted in a dramatic improvement. Let’s discuss this garbage collection tuning success story in this post. Garbage Collection KPIs There is a famous saying that "you can’t optimize something that you can’t measure." When it comes to garbage collection tuning, there are only 3 primary Key Performance Indicators (KPIs) that you should be focusing upon: View more...PwnKit, or How 12-Year-Old Code Can Give Root To Unprivileged UsersAggregated on: Fri Mar 18 2022 16:50:18 GMT+0000 (Coordinated Universal Time) It looks like IT teams have no respite. Following all the hassles caused by Log4j (and its variants), there is a new high profile, high-risk vulnerability making the rounds. CVE-2021-4034, or PwnKit if you’re into fancy CVE nicknames, is a polkit vulnerability that lets unprivileged users gain root privileges on basically any Linux system out there that has polkit installed. NOTE: Patches are now available for Centos6, Oracle6, CL6, Ubuntu16, and Centos8.4 with more to follow. You can track actual distribution support through a CVE dashboard here. View more...BPMN Workflows Version Management With Milestone Camunda CawemoAggregated on: Fri Mar 18 2022 15:50:18 GMT+0000 (Coordinated Universal Time) This article contains a step-by-step guide on how to manage BPMN file versioning and avoid conflicts in Cawemo when multiple team members are working together. It will also help you to avoid overriding BPMN files while updating and tells you how to sync files between the repository and Cawemo. What Is Milestone? This feature in the Cawemo tool is used to maintain Versioning in BPMN. We can see all of the BPMN history, the creator’s name who has done the changes, and the Last Changed date. We can upload the new version of BPMN without removing/deleting its older version. Steps to Follow: Create a new directory (e.g., Demo) in Cawemo for signed-off deployed BPMN files. Upload working/developed and integrated BPMN (e.g., Demo_BPMN) from code repository/local to the newly created directory as follows. View more...7 Common Kubernetes Backup and Recovery MistakesAggregated on: Fri Mar 18 2022 14:50:18 GMT+0000 (Coordinated Universal Time) As enterprises move Kubernetes into production and increase the number of Kubernetes clusters and applications in use, they need to deliver the same “enterprise-level” services as for other production applications. Implementing Kubernetes backup is critical to protect your applications in the event of an accident, system failure, or deliberate attack. You need an effective and appropriate backup strategy—in addition to whatever built-in resiliency and data protection features your applications may have. There are several use cases that your Kubernetes backup and recovery strategy should satisfy: View more...Spring Boot: Cross-Origin AJAX HTTP RequestsAggregated on: Fri Mar 18 2022 14:50:18 GMT+0000 (Coordinated Universal Time) What is CORS (Cross-Origin Resource Sharing)? In this Spring Boot video tutorial, we take a closer look at the Cross-Origin AJAX HTTP Requests. Let's get started! View more...Blink a LED on a Raspberry Pi With VaadinAggregated on: Fri Mar 18 2022 00:20:17 GMT+0000 (Coordinated Universal Time) As I'm becoming a senior developer in terms of age, I've transitioned from one language to another. One of my main interests has always been clean, easy-to-understand UIs (User Interface). That journey started for me with Director (to create multimedia CD-ROMs), Flash website animation, and Flex Rich Internet Applications (= "Flash on steroids"). When I started developing with Java over 10 years ago, we had some projects with the early versions of Vaadin and JavaFX. As I went on with serverside applications, I only continued with JavaFX for some personal and side projects and loved the way you can create a UI both with XML (FXML actually) and code, exactly the same approach I loved with Flex. Since then, my love for Java and JavaFX only grew and it's still my major programming environment. But JavaFX has one missing piece: running it in the browser... Yes, JPRO can do this, but it needs a license and a dedicated server. And yes, there are some projects ongoing to bring JavaFX fully to the browser, but they are ongoing and not mature yet... Let's look at another approach: Vaadin Flow and run it on a Raspberry Pi to control a LED and show the state of a button. View more...Building a Vector Database for Scalable Similarity SearchAggregated on: Thu Mar 17 2022 23:50:17 GMT+0000 (Coordinated Universal Time) According to statistics, about 80%-90% of the world's data is unstructured. Fueled by the rapid growth of the Internet, an explosion of unstructured data is expected in the coming years. Consequently, companies are in urgent need of a powerful database that can help them better handle and understand such kinds of data. However, developing a database is always easier said than done. This article aims to share the thinking process and design principles of building Milvus, an open-source, cloud-native vector database for scalable similarity search. This article also explains the Milvus architecture in detail. Unstructured Data Requires a Complete Basic Software Stack As the Internet grew and evolved, unstructured data became more and more common, including emails, papers, IoT sensor data, Facebook photos, protein structures, and much more. For computers to understand and process unstructured data, these are converted into vectors using embedding techniques. View more...Streaming Real-Time Chat Messages Into Scylla With Apache PulsarAggregated on: Thu Mar 17 2022 23:50:17 GMT+0000 (Coordinated Universal Time) At Scylla Summit 2022, I presented "FLiP Into Apache Pulsar Apps with ScyllaDB". Using the same content, in this blog, we'll demonstrate step-by-step how to build real-time messaging and streaming applications using a variety of OSS libraries, schemas, languages, frameworks, and tools utilizing ScyllaDB. We'll also introduce options from MQTT, Web Sockets, Java, Golang, Python, NodeJS, Apache NiFi, Kafka on Pulsar, Pulsar protocol, and more. You will learn how to quickly deploy an app to a production cloud cluster with StreamNative, and build your own fast applications using the Apache Pulsar and Scylla integration. Before we jump into the how, let's review why this integration can be used for a speedy application build. Scylla is an ultra-fast, low-latency, high-throughput, open-source NoSQL platform that is fully compatible with Cassandra. Populating Scylla tables utilizing the Scylla-compatible Pulsar IO sink doesn't require any complex or specialized coding, and the sink makes it easy to load data to Scylla using a simple configuration file pointing to Pulsar topics that stream all events directly to Scylla tables. View more...Debugging Race Conditions in ProductionAggregated on: Thu Mar 17 2022 23:50:17 GMT+0000 (Coordinated Universal Time) Race conditions can occur when a multithreaded application accesses a shared resource using over one thread. Unless we have guards in place, the result might depend on which thread "got there first". This is especially problematic when the state is changed externally. A race can cause more than just incorrect behavior. It can enable a security vulnerability when the resource in question can be corrupted in the right way. A good example of race condition vulnerabilities is mangling memory. Let's say we have an admin user name that is restricted and privileged. You can't change your user name to admin because of validation. But you can change it to anything else... View more...Hooks: The Secret Feature Powering the Postgres EcosystemAggregated on: Thu Mar 17 2022 23:20:17 GMT+0000 (Coordinated Universal Time) What do developers mean when they say Postgres is "extensible"? They're referring to low-level APIs which can change the core functionality of the database. In this post, we will explore a secret - meaning undocumented - feature called hooks which allow developers to not only add features to Postgres, but modify the way that queries are executed and data is parsed. Hooks are used by some of the most popular projects in the Postgres ecosystem, including Timescale, pg_stat_statements, and Supabase. To give you ideas of what can be built, we will see how each of these projects uses specific hooks. At the end of this post, we provide a Makefile, some C code, and compilation instructions to get started customizing Postgres on your own. View more...Polymorphism and Dynamic Binding in JavaAggregated on: Thu Mar 17 2022 22:50:17 GMT+0000 (Coordinated Universal Time) Polymorphism is an Object-Oriented-Programming concept. Whether you are new to Java programming or a person who has worked with Java for years, you should know what polymorphism is in Java and how it works. Most developers claim that they know the topic well but when it comes to other complex features like static and dynamic binding, they seem underconfident. A good understanding of polymorphism allows us to build efficient object-oriented programs. What Is Polymorphism in Java? Polymorphism is composed of two words: View more...DevOps Maturity Model: Trends and Best Practices in Today’s WorldAggregated on: Thu Mar 17 2022 21:50:17 GMT+0000 (Coordinated Universal Time) Innovation is critical to driving an organization's growth. Once leaders in their industries, companies like Nokia, Kodak, and Blockbuster failed to innovate and soon lost most market share. Consumers want quicker, better, and more affordable solutions to their problems. You should have systems in place to launch your products in the market as soon as possible — without compromising the quality. View more...Steps to Connect to the Database, MySQL DB, or Oracle DB, and MoreAggregated on: Thu Mar 17 2022 21:50:17 GMT+0000 (Coordinated Universal Time) In the video below, we take a closer look at the steps needed to connect to the database, the MySQL DB, or the oracle DB, and get information in JDBC. Let's get started! View more...5 Steps To Implement DataOps Within Your OrganizationAggregated on: Thu Mar 17 2022 21:20:17 GMT+0000 (Coordinated Universal Time) Successful DevOps Implementation is crucial for organizations looking to scale their business. But, what after you have implemented it successfully? Should you be technologically stagnant? The answer is definitely a “NO.” Nearly after two decades of DevOps inception, we have access to newer forms of DevOps with enhanced quality and practices. One such form is known as DataOps. According to Gartner, DataOphs is a collaborative data management practice focused on improving the communication, integration, and automation of data flows between data managers and data consumers across an organization. In this blog, we have listed 5 major steps necessary for the successful implementation of DataOps. View more... |
|
|