Converting Hex to ASCII Using xxd

Posted on

Strings are commonly encoded as hexadecimal (hex) strings for various purposes. Hence, it is also common to convert hex strings to its original strings such as an ASCII string. Hex to ASCII string conversion can be done programmatically in many languages. In command line, we can use xxd to convert hex to ASCII string. This
Read more

Generating RSA Private and Public Key Pair in Go Lang?

Posted on

How to generate a pair of RSA private and public key in Go lang? Go lang has a rich set of standard libraries. Using Go’s standard libraries, we can generate RSA private and Public keys. The Crypto standard libraries in Go lang Go lang standard libraries has a rich set of cryptography functions. Here are
Read more

2 Ways of Resetting All Git Submodules in a Git Repository

Posted on

Git submodule is a nice and convenient mechanism in Git to include the other Git repositories and manage the version/commit used from the submodule Git repository. However, there are cases where we would like "reset" the submodule, such as when we find updating a submodule repository will break the code tree, or merge some updates
Read more

Converting Int to String in C++

Posted on

It is common to convert an integer (int) to a string (std::string) in C++ programs. Because of the long history of C++ which has several versions with extended libraries and supports almost all C standard library functions, there are many ways to convert an int to string in C++. This post introduces how to convert
Read more

How To Install R and RStudio Desktop in Ubuntu Linux 20.04

Posted on

We ever discussed How To Install R and RStudio Server in Ubuntu Linux 20.04. If the purpose is to install a local RStudio IDE instead of a remote RStudio Server, we can install RStudio Desktop. In this post, we introduce how to install R and RStudio Desktop on Ubuntu Linux 20.04. For other Ubuntu version,
Read more

Install R and RStudio Server in Ubuntu Linux 20.04

Posted on

R is a language and environment for statistical computing and graphics, providing a wide variety of statistical and graphical techniques. The R environment is open source software under GPL. R has rich software packages and is widely used for statistical analysis. RStudio Server is an R integrated development environment (IDE) that provides many useful features
Read more

Linux Kernel: fs: handle SEEK_HOLE/SEEK_DATA properly in all fs’s that define their own llseek

Posted on

This change "fs: handle SEEK_HOLE/SEEK_DATA properly in all fs’s that define their own llseek" (commit 06222e4) in Linux kernel is authored by Josef Bacik <josef [at] redhat.com> on Mon Jul 18 13:21:38 2011 -0400. Description of "fs: handle SEEK_HOLE/SEEK_DATA properly in all fs’s that define their own llseek" The change "fs: handle SEEK_HOLE/SEEK_DATA properly in
Read more

4 Features of Python 3.9 That You Can’t Take Your Eyes Off

Posted on

Python is one of the most popular programming languages in the world. It is widely popular for a plethora of tasks due to its flexible nature and ease of use. Python has also managed to beat other programming languages such as Java, which were once upon a time, the world’s favorite. In fact, the extent
Read more

Add Inline Comments for Multi-line Command in Bash Script

Posted on

In Bash script, it is common that multiple small commands run together connected by pipes (|) and the whole command is quite long. For clarity, we may write the command in multiple lines. How to add comments for these long multi-line commands? In Bash, the content after # in a line is the comment. Using
Read more

How to Match Multiple Lines using Regex in Perl One-liners

Posted on

Perl one-liners with perl’s regular expression statement can be a very powerful text processing tools used as commands in a terminal or a script. By default, the input to the perl one-liner with -p or -n options is passed line by line. However, when we want to match multiple lines, it gets us some trouble.
Read more

How to Install Go 1.13.x on Ubuntu 18.04

Posted on

In Ubuntu 18.04 LTS, the default Go lang version is 1.10. For compatibility reason, the Ubuntu LTS will usually keep the major release version numbers for packages. However, many applications, such as Hyperledger Fabric 2.0, require a newer version of Go. In this post, let’s take a look at how to install a system level
Read more

GCC May “Save” You Some Recursive Functions Calls: an Analysis of a Function Call Stack Length Example

Posted on

We know compilers like gcc can do lots smart optimization to make the program run faster. Regarding functions call optimization, gcc can do tail-call elimination to save the cost of allocating a new stack frame, and tail recursion elimination to turn a recursive function to non-recursive iterative one. gcc can even transform some recursive functions
Read more

Dynamics 365 Developer Extension is Now Working in Visual Studio 2017

Posted on

I don’t know why Jason Lattimer’s D365DeveloperExensions no more working after VS 2017 release? It seems D365DeveloperExtensions anymore supported for newer Visual Studio version. I am pretty much sure, some of you may be still struggling with installing Dynamics 355 Developer extension for your Visual Studio 2017 community or professional edition. Not sure why this tool has been
Read more

Bash Learning Materials

Posted on

Bash (GNU Bourne-Again SHell) the default shell for many Linux distributions. It is very common for scripting languages in Linux. Bash is easy and straightforward for writing small tools. However, as most tools, it has its grammars that could easily cause bugs if they are not used correctly. Here I summarize a list of good
Read more

A StoneWall Solution in C++

Posted on

StoneWall is an interesting problem that requires some brain cycles yet not too complex. It is good software engineer interview question. Here is a C++ solution whose complexity is O(N). #include <stack> int solution(std::vector<int> &H) { int stones = 0; std::stack<int> heights; for (auto h: H) { while (!heights.empty() && h < heights.top()) { heights.pop();
Read more

How to Statically Link OCaml Programs

Posted on

Static linking is preferred for some cases although it has its own various problems. Static building/linking is not always possible for some languages on some platform. For OCaml, the answer to this question is yes. In this post, we will introduce 2 methods to statically linking OCaml: static linking with runtime glibc required and static
Read more

What can we expect in Java update 2019?

Posted on

Java is the most regularly used programming language for the creation of web applications. This high-level programming language develops by the Sun Micro-system. This language was designed for use in the world of internet and known for fastest, secure, and most reliable language of the computing platform. One interesting fact is that Java programmers are
Read more