Blogs ›

Oracle Usage FAQ

April 21, 2023
Database

Unlike other databases like MySQL, PostgreSQL, etc., Oracle database have some dialect and different concepts, for example, create database command won’t work in Oracle, instead, it uses user as the isolate mechanisim instead of database.

Here Oracle Database basic usages FAQs record:

  • Oracle create user/database via sqlplus
  • Oracle JDBC driver oci8 vs. thin?
  • Oracle sqlplus show non-system users
  • Oracle sqlplus show tables and views
...

Connecting Clickhouse to pupular OLTP DBMSs

April 20, 2023
Database

How to Connect Clickhouse to PostgreSQL, MySQL, Oracle, SQL-Server, MongoDB.

This post shows a step-by-step tutorial for connecting ClickHouse to PostgreSQL, MySQL and MongoDB via the ClickHouse storage engine and connecting Oracle and SQL-Server via the JDBC-bridge(the official JDBC-bridge has some limitations, check this fork as a workaround)

...

Useful shell commands

April 6, 2023
shell

xargs # xargs is a versatile command in Unix-like operating systems, which is used to read items from standard input separated by lines, spaces, or other delimiters, and then execute a command using those items as arguments. Here are some of the most commonly used options for xargs: -I: This option allows you to specify a placeholder that will be replaced with the input item in the command line. ...

HTTP Glossaries

August 13, 2022
HTTP

A lookup table for HTTP security-related glossaries, such as Site, Origin, Cookie etc.

For example, before we can understand what cross-site means we must understand what Site means, and If we want to know what CORS is for we need to understand what Origin is first.

...

Kafka vs. RabbitMQ #2: Head-To-Head

August 11, 2022
messaging

As dealing with microservice-based systems, we often encounter the ever-repeating question , “Should I use RabbitMQ or Kafka?” For some reason, many developers view these technologies as interchangeable. While this is true for some cases, there are various underlying differences between these platforms.

As a result, different scenarios require a different solution, and choosing the wrong one might severely impact your ability to design, develop, and maintain your software solution.

Part 1 of this series explains the internal implementation concepts of both RabbitMQ and Apache Kafka. This part continues to review notable differences between these two platforms, differences that we should note as software architects and developers.

Then, it proceeds to explain the architecture patterns we usually try to implement with these tools and assess when to use each.

...

Kafka vs. RabbitMQ #1

August 10, 2022
messaging

As dealing with microservice-based systems, we often encounter the ever-repeating question , “Should I use RabbitMQ or Kafka?” For some reason, many developers view these technologies as interchangeable. While this is true for some cases, there are various underlying differences between these platforms.

As a result, different scenarios require a different solution, and choosing the wrong one might severely impact your ability to design, develop, and maintain your software solution.

The goal of this piece is first to introduce the basic asynchronous messaging patterns. Then, it continues to present both RabbitMQ and Kafka](https://kafka.apache.org/) and their internal structures and highlights the critical differences between these platforms, their various advantages and disadvantages, and how to choose between the two.

...

File, Block and Object Storages

August 9, 2022
storage

Files, blocks, and objects are storage formats that hold, organize, and present data in different ways—each with their own capabilities and limitations. File storage organizes and represents data as a hierarchy of files in folders; block storage chunks data into arbitrarily organized, evenly sized volumes; and object storage manages data and links it to associated metadata.

The terms file storage, block storage, and object storage refers to the API that the storage exports to its consumers, regardless of the transport (network, local, etc.).

...

GCC vs. Clang/LLVM: An In-Depth Comparison of C/C++ Compilers

August 7, 2022
compiler

Introducing GNU Compiler Collection (GCC) and Clang/Low Level Virtual Machine (LLVM); comparing the performance of both C/C++ compilers

This post is copied from here

Background #

Visual C++, GNU Compiler Collection (GCC), and Clang/Low Level Virtual Machine (LLVM) are three mainstream C/C++ compilers in the industry. Visual C++ provides graphical user interfaces (GUIs) and is easy to debug, but it is not suitable for Linux platforms. Therefore, this document mainly compares GCC with Clang/LLVM.

...

Check Network Cards for Linux

April 7, 2022
network

The network interface controller (NIC). Also known as a network interface card, network adapter, LAN adapter or physical network interface, and so on. the following commands can be used for list NIC for linux.

Overview #

  1. lspci, List all PCI devices
  2. lshw, Linux identify Ethernet interfaces and NIC hardware.
  3. dmidecode, List all hardware data from BIOS.
  4. ifconfig, Outdated network config utility
  5. ip, Recommended new network config utility.
  6. hwinfo, Probe Linux for network cards.
  7. ethtool, A unified NIC/card driver and settings read/set utility on Linux.
...

Linux proxy setup

April 6, 2022
development

Sometimes we need to set up a proxy from the command line due to network issues. On Ubuntu, the common commands I use that require networking are curl, git, apt, wget, docker, maven, gradle, npm, yarn etc. Some of these commands access proxy settings in environment variables, some of them requires specific configurations. In this post, we are targeting a Debian-based distribution, e.g, Debian and Ubuntu…

...