Welcome to SysTutorials! Here you can find posts on Linux, Software, Programming and Web topics.

SysTutorials Keywords

Tutorials: Latest | Latest updated | Most viewed | All

QAs: Answered QAs

Latest SysTutorials tutorials

To get updated when new posts are published? Subscribe here.

  • Posted on Friday May 12, 2017
    Call forwarding is useful if you are expected to be unavailable for receiving calls or lose cell phone coverage for some time. Call forwarding is not something that is "new" to modern phones. It is a feature which is invented in 1960s (the patent expired in 1980) of some telephone switching systems. But with iPhone/iOS, there is a convenient call forwarding feature in iOS for you to set up call forwarding to forward calls to a landline or other phone by its number or disable the call forwarding. » Read more Continue Reading »
  • Posted on Thursday April 20, 2017
    HTML supports many characters/symbols such as mathematical symbols, and currency symbols. They are not present on a normal keyboard. And some of these characters may have special meanings for formatting text. To add such characters / symbols to an HTML text, you can use an HTML entity name or an entity number in decimal or hexadecimal. This post list many special Characters in HTML as a friendly reference. » Read more Continue Reading »
  • Posted on Tuesday April 18, 2017
    From a small business owner, a blogger, a student or individual with a personal project, the need to create websites has never been more prominent. Having a basic understanding of HTML and canvas knowledge can be helpful, and it is simple to master. The thought of learning to code and programming may seem a long and daunting task, but some people may be surprised to know that it need not be as scary as it sounds. » Read more Continue Reading »
  • Posted on Saturday April 15, 2017
    This post introduces how to install a paravirtualized CentOS 7 DomU on Xen. The very common way of installing DomU does not work for CentOS 7. A little trick to set the repository and the network used by the VM should be used by adding a setting strings to the “extra=” field for this VM. To install the DomU VM, first download the pxeboot images from CentOS’s official website at http://mirror.centos.org/centos/7/os/x86_64/images/pxeboot/. » Read more Continue Reading »
  • Posted on Sunday April 09, 2017
    The USB standards have evolved to 3.1 and the supported throughput have been increased too. On Linux, the support to USB standards are following the standards development. In this post, we will survey the standards that common hardware support and the support in Linux. USB standards USB 2.0: https://en.wikipedia.org/wiki/USB#USB_2.0Speed: » Read more Continue Reading »
  • Posted on Saturday March 18, 2017
    Building Linux kernel may sound a complex and geek-only thing. However, as Linux kernel itself has much less depended tools/packages compared to other software packages, it is quite easy to compile, build and install a Linux kernel from the source code in an existing Linux OS. Building Linux kernel is needed if you need to build a specific Linux kernel or update your drivers for a kernel by yourself. » Read more Continue Reading »
  • Posted on Friday February 24, 2017
    In today’s time, data visualization has become a significant part of the success story of an organization. With the help of right techniques, visualizing data can reveal insights which the management staff can use in their decision-making in order to make sound data-driven decisions. Mapping software is among the robust data visualization tools that you can avail today. With maps, you can find stories, trends, and insights that cannot be found in spreadsheets. » Read more Continue Reading »
  • Posted on Tuesday February 14, 2017
    Motivation Recently, I find it is hard to know the percentage of time that one process uses to wait for synchronous I/O (eg, read, etc). One way is to use the taskstats API provided by Linux Kernel [1]. However, for this way, the precision may be one problem. With this problem, I dig into Linux Kernel source codes to see how “blkio_delay_total” (Delay time waiting for synchronous block I/O to complete) is calculated. » Read more Continue Reading »
  • Posted on Monday February 06, 2017
    Making a career choice is difficult. And, if you have decided on becoming a programmer, the difficulty is just beginning. The most important thing is to first decide the language that you want to learn and this is often the most difficult decision. The good part is that you know you need to focus on learning programming and the bad part is that you might still be thinking which programming language should you begin to learn. » Read more Continue Reading »
  • Posted on Saturday December 31, 2016
    There are many Vim tutorials and Vim tips on the Web. However, I find the vimtutor provides the best tutorial among those so far as I found on the Web while the vimtutor seems usually reachable from a terminal which is not obviously known to Vim beginners who are usually Linux beginners too. This page shows the content of the Vim tutorial from the command vimtutor in a web page which is especially easier for Vim beginners to get and learn. » Read more Continue Reading »
  • Posted on Friday December 23, 2016
    This post is about the Spring Shell technology and its use in java. Experts of java development India have shared their best knowledge in this post for Spring Shell with the community people. If you have anything to ask, do it at the end. Technology: It is command line tool for Java applications to interact with java applications using spring shell framework. » Read more Continue Reading »
  • Posted on Saturday December 17, 2016
    Abstract In systems, sometimes, we use one global lock to keep synchronization among different threads. This principle also happens in QEMU/KVM (http://wiki.qemu.org/Main_Page) system. However, this may cause lock contention problem. The performance/scalability of whole system will be decreased. In order to solve this problem in QEMU/KVM, x-data-plane feature is designed/implemented, which the high-level idea is “I/O requests are handled by dedicated IOThread rather than QEMU main loop threads so that it will not have lock contention among I/O threads and other QEMU main loop threads”. » Read more Continue Reading »
  • Posted on Thursday December 15, 2016
    In this tutorial, Microsoft Dynamics CRM India experts will teach you how to filter salutation based on Gender field in MS CRM. You can follow the step-by-step guide shared in this post to avail the results. Description- According to the requirement we need to filter salutation based on gender in contact entity. For this we need to create two new field having Datatype(option set). » Read more Continue Reading »
  • Posted on Friday December 09, 2016
    In this blog Dynamics CRM consultants are sharing a step-by-step guide to explain how to filter another lookup field value based on one Lookup field value. In this Lead entity, they are having two fields Branch and Sub Branch and you will learn how they filter Subbranch based on Branch field. Based on one Lookup field value, how to filter another lookup field value. » Read more Continue Reading »
  • Posted on Monday December 05, 2016
    Abstract As is known, CFS (Completely Fair Scheduling) is a famous process scheduling algorithm in Linux Kernel but there is no convenient way for developers to get the timeslices of processes if CFS is chosen. In this article, I will introduce one way to hack the timeslices of process easily for CFS in Linux Kernel. Note that, the way introduced following is under Linux Kernel 3.16.39. » Read more Continue Reading »
  • Posted on Saturday December 03, 2016
    Solution is very important part of Dynamics CRM. In order to deploy your customization, solution is the only bridge which help you to achieve your goal. There are two types of solutions available in CRM: Managed and Unmanaged. Managed Solutions: This is the solutions that you can import and publish only. You neither export it nor you can make any changes in it. » Read more Continue Reading »
  • Posted on Thursday December 01, 2016
    Abstract Currently, the most famous process scheduling algorithm in Linux Kernel is Completely Fair Scheduling (CFS) algorithm. The core idea of CFS is to let each process share the same proportional CPU resources to run so that it is fair to each process. In this article, I will introduce how sched_min_granularity_ns and sched_latency_ns work internal CFS to affect the timeslice of processes. » Read more Continue Reading »
  • Posted on Friday November 25, 2016
    In this post, asp.net development India based professionals will explain the best way to manage the Restful service using AngularJS. They are explaining the push and pull functionality available in Rest service in simple steps. Read the article to know more. In this Post I am going explain how we can manage the Restful service using AngularJS. Push and Pull functionality of Rest service Json data in MVC View in easy steps. » Read more Continue Reading »
  • Posted on Saturday November 19, 2016
    Abstract In computer systems, resources have to be balanced so that the performance will be better based on the same hardware. In Linux Kernel system, we will see some migration kernel threads running as daemons to do this kind of jobs as follows. In this article, we will discuss how Linux Kernel balances its hardware/software resources (NOTE: this article is based on Linux Kernel 4.7 and other versions may have some differences). » Read more Continue Reading »
  • Posted on Wednesday November 09, 2016
    Abstract Sometimes, we may want to migrate one process/thread to one specific CPU for some specific purpose. In the Unix/Linux systems, you may choose sched_setaffinity to finish this job. This article will help you to understand how sched_setaffinity (or other APIs like pthread_setaffinity_np in user-space) works internal Linux kernel. Details -- sched_setaffinity(pid_t pid, const struct cpumask *in_mask) --- __set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask, bool check) ---- stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg) ----- migration_cpu_stop(void *data) ------ __migrate_task(struct rq *rq, struct task_struct *p, int dest_cpu) ------- move_queued_task(struct rq *rq, struct task_struct *p, int new_cpu) -------- enqueue_task(struct rq *rq, struct task_struct *p, int flags) --------- returns the new run queue of destination CPU Above character steps give a workflow of how sched_setaffinity works (how it migrates one process/thread from the run queue of source CPU to the run queue of destination CPU). » Read more Continue Reading »

Latest QA answers

  • Posted on Thursday July 20, 2017
    The reason: wpp will tries to dynamically link 'libbz2.so.1.0' $ ldd /opt/kingsoft/wps-office/office6/wpp | grep libbz2 libbz2.so.1.0 => not found libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fd10a513000)while it is not available in CentOS 7: # ls /lib64/libbz2.so* /lib64/libbz2.so.1 /lib64/libbz2.so.1.0.6The solution: While 'libbz2.so.1.0' is not there, 'libbz2.so.1' is there and it is very likely it works well as for 'libbz2.so.1.0'. We can make a symbolic link to pretend there is a 'libbz2.so.1.0'. # ln Continue Reading »
  • Posted on Monday June 26, 2017
    You can use stat to get the file status including the mtime: %y time of last modification, human-readable %Y time of last modification, seconds since EpochAs an example, $ stat -c %y ./file 2017-06-26 13:33:06.764042064 +0800 $ stat -c %Y ./file 1498455186 Continue Reading »
  • Posted on Monday June 26, 2017
    In summary, Samba writes are async by default. But the behavior is configurable. Here is a great summary by Eric Roseme. Samba defaults to asynchronous writes. smbd writes to memory buffer, then returns to processing. Buffer is flushed to disk later. This is the most efficient behavior. Windows CreateFile API has the FILE_FLAG_WRITE_THROUGH flag, which requests synchronous writes. smbd writes to memory buffer, blocks until buffer contents are written to disk, which results in poor performance, but better data integrity. When "strict sync = yes" (default = no) Samba honors the FILE_FLAG_WRITE_THROUGH flag, and results in Continue Reading »
  • Posted on Sunday June 25, 2017
    You may use the tool split to split a file by sizes. An example to split a large.tgz to at most 8GB smaller files is as follows. split -b 8G large.tgz large.tgz.part-The split files names are the prefix with appendix like 'aa', 'ab', 'ac' as follows. $ ll -h total 35G -rw-rw-r-- 1 user user 18G Jun 25 10:57 large.tgz -rw-rw-r-- 1 user user 8.0G Jun 25 12:10 large.tgz.part-aa -rw-rw-r-- 1 user user 8.0G Jun 25 12:15 large.tgz.part-ab -rw-rw-r-- 1 user user 1.2G Jun Continue Reading »
  • Posted on Friday June 23, 2017
    Each file and each block has around 150 bytes of metadata on NameNode. So you may do the calculation based on this. For examples, assume block size is 64MB, 100 million 1MB files (100TB in total) will have metadata of (100 million blocks) 100M * 150B + 100M * 150B = 30GB1 million 64GB files (64PB in total, assume HDFS can scale to this large) will have metadata of 1M * 150B + 64GB/64MB * 150B = 330MBSo, you also get the idea that HDFS does need lots memory on the NameNode to handle many small files Continue Reading »
  • Posted on Wednesday June 21, 2017
    It is possibly caused by the pipe |: data are sent out as a stream. You can possibly make parallel take more effect by setting its buffer for sort like cat large-file | sort --parallel=`nproc` -S 20G-S, --buffer-size=SIZE use SIZE for main memory bufferas from sort manual https://www.systutorials.com/docs/linux/man/1-sort/ Continue Reading »
  • Posted on Thursday June 08, 2017
    Set Zimbra Web service's host and port (to mail.domain.com:80 as an example) for a mail domain domain.com: zmprov md domain.com zimbraPublicServiceHostname mail.domain.com zmprov md domain.com zimbraPublicServicePort 80Reference: https://wiki.zimbra.com/wiki/When_using_a_proxy,_the_'change_password'_box_doesn't_load Continue Reading »
  • Posted on Wednesday June 07, 2017
    In Zimbra, to get the version of Zimbra you are using, you can call zmcontrol -v: $ zmcontrol -v Release 7.2.6_GA_2926.F13_64_20131203115902 F13_64 FOSS edition. Continue Reading »
  • Posted on Monday June 05, 2017
    In Perl, to nicely print a new line to STDOUT, you can use the "say" feature which "Just like print, but implicitly appends a newline": use 5.010; say "hello world!"An example, $ perl -de1main::(-e:1): 1 DB<1> use 5.010;DB<2> say "hello world" hello worldDB<3>In Perl, to print to STDERR, you can print to STDERR which is the STDERR: say STDERR "your message here"For example, $ perl -de1main::(-e:1): 1 DB<1> use 5.010;DB<2> say STDERR "hello world"; hello worldDB<3> Continue Reading »
  • Posted on Monday June 05, 2017
    In OCaml, you may print a string with the end line character to STDOUT using the function in the Pervasives module: val print_endline : string -> unitPrint a string, followed by a newline character, on standard output and flush standard output. One usage example: $ ocaml OCaml version 4.01.1+dev2-2013-12-18+CLOSED# print_endline "hello world!";; hello world! - : unit = () #In OCaml, you can use the Printf.eprintf function to print to STDERR (which is in Pervasives.stderr). Examples: Use Printf.eprintf: $ rlwrap ocaml 2>/tmp/a.txt OCaml version 4.01.1+dev2-2013-12-18+CLOSED Continue Reading »
  • Posted on Monday June 05, 2017
    In C++, you may print the string and then '\n' or std::endl to STDOUT by operating on the std::cout stream: std::cout << your_string << std::endl;or std::cout << your_string << '\n';Example: $ cat a.cpp #include <iostream>int main() { std::cout << "hello world!" << std::endl; std::cout << "happy Dtivl!" << '\n'; return 0; }$ g++ a.cpp -o a && ./a hello world! happy Dtivl!In C++, std::cerr is a stream to the STDERR. You can use the common I/O operators like <&lt Continue Reading »
  • Posted on Monday June 05, 2017
    In PHP, you may print a line to STDOUT using echo by appending the PHP_EOL to the string: echo $your_msg . PHP_EOL;For example, $ php -a Interactive shellphp > echo "hello world!" . PHP_EOL; hello world! php >To print to STDERR, you may use fwrite like fwrite(STDERR, "hello, world!" . PHP_EOL);One example is as follows. $ cat php-stderr.php <?php fwrite(STDERR, "hello, world!" . PHP_EOL);$ php php-stderr.php 2>/tmp/stderr $ cat /tmp/stderr hello, world! Continue Reading »
  • Posted on Monday June 05, 2017
    In C, to print to STDOUT, you may do this: printf("%s\n", your_str);For example, $ cat t.c #include <stdio.h>void main() { printf("%s\n", "hello world!"); }$ gcc t.c -o t && ./t hello world!In C, you can print to the file handle stderr which is the STDERR: #include <stdio.h>fprintf(stderr, "fmt", ...);One example: stderr.c: #include <stdio.h>int main() { fprintf(stderr, "hello world!\n"); }Built and run it: $ gcc stderr.c -o s && ./s hello world! Continue Reading »
  • Posted on Monday June 05, 2017
    In Go, you can use the 'Println()' func from the 'fmt' package to print a line to STDOUT: import("fmt")fmt.Println("my msg here")In Go, os.Stderr is an io.Writer, so you can use it with any function that accepts an io.Writer. 2 of the common ways you may use: import "os"os.Stderr.WriteString("your message here")or, throught fmt.Fprintf: import "os" import "fmt"fmt.Fprintf(os.Stderr, "your message here"); Continue Reading »
  • Posted on Monday June 05, 2017
    In Java, you can print string in a new line by 'System.out.println()' to STDOUT: System.out.println("my msg here");In Java, print a string str to STDERR as a new line: System.err.println(str)Standard error cab be accessed with 'System.err' in Java. Continue Reading »
  • Posted on Monday June 05, 2017
    In Python, to print a string str with a new line to STDOUT: print strIn Python to print a line to STDERR: import sys print >> sys.stderr, "your message here"An example: $ python 2>/tmp/stderr >>> import sys >>> print >> sys.stderr, "your message here" >>> exit() $ cat /tmp/stderr Python 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2 Type "help", "copyright", "credits" or "license" for more information. your message here Continue Reading »
  • Posted on Monday June 05, 2017
    In Bash, you can simply use the echo command: echo "your message here"or echo your message hereExamples: $ echo the message here the message here $ echo "the message here" the message here $ echo `date` Fri Apr 7 13:40:20 HKT 2017 $To STDERR: In Bash: 1>&2 echo "msg to STDERR"The 1>&2 redirects STDOUT to STDERR. Continue Reading »
  • Posted on Monday June 05, 2017
    In C and C++, you can call the getppid() library function which is a function from the POSIX library. #include <sys/types.h> #include <unistd.h>pid_t getppid(void);getppid() returns the process ID of the parent of the calling process. Example usage: getppid.c #include <stdio.h> #include <sys/types.h> #include <unistd.h>int main() { pid_t ppid = getppid();printf("ppid: %lu\n", ppid); }Build and run it: $ gcc getppid.c -o s && ./s ppid: 22312Verify the pid of the parent process (the Bash shell): $ echo $$ 22312 Continue Reading »
  • Posted on Monday June 05, 2017
    In Go, you may call the os.Getppid() func from the os package to get the parent process' pid. func Getppid() intGetppid returns the process id of the caller's parent.One example is as follows. $ gore gore version 0.2.6 :help for help gore> :import "fmt" gore> :import "os" gore> fmt.Printf("ppid: %d\n", os.Getppid()) ppid: 19824 12 nil gore> Continue Reading »
  • Posted on Monday June 05, 2017
    In Python, you can get the parent process' pid by calling os.getppid(): import osppid = os.getppid()One example: The shell's pid: $ echo $$ 21779Start a python REPL and get its parent pid (the shell's): $ python Python 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> print os.getppid() 21779 >>> Continue Reading »
hss-keywords.png

Most viewed tutorials

sai-kung-hong-kong.jpg

Latest updated tutorials

Subscribe, contact, and license

Subscribe to SysTutorials: Subscribe. Contact us: Contact. General license and policy: License.

Please share if you like this post: