SEARCH KEYWORD -- Binary tree



  Latest PHP patch cannot fix the bug

On Wednesday(2012-05-02), a remote code execution vulnerability in PHP was accidentally exposed to the Web, prompting fears that it may be used to target vulnerable websites on a massive scale. The bug itself was traced back to 2004, and came to light during a recent CTF competition.A CERT advisory on the flaw explains: “When PHP is used in a CGI-based setup (such as Apache's mod_cgid), the php-cgi receives a processed query string parameter as command line arguments which allows com...

   PHP,bug,patch,bypassed     2012-05-08 11:20:56

  The details and analysis of capturing gRPC packets

Introduction If you're only using gRPC at the application layer, I believe studying the examples on the gRPC official website is sufficient. However, when planning to extensively use gRPC within a team, you will face many challenges, such as authentication schemes between services, routing solutions for multi-region services, and compatibility solutions with existing RESTful services. I recently realized that applying a technology stack requires mastering a wealth of information about that stack...

   GRPC,GOOGLE     2024-01-14 05:59:13

  Why 0.1+0.2 != 0.3

In programming languages such as JavaScript, c/c++, Java and Matlab, you will find that you will get unexpected result when doing float point calculation. For example, when calculating 0.1 + 0.1, you will not get 0.3: > 0.1 + 0.2 == 0.3 false > 0.1 + 0.2 0.30000000000000004 Don't be surprised of this result, this is the end result of IEEE 754 standard, float point number cannot be accurately represented according to IEEE 754 because: No enough memory is allocated for representing the num...

   float point,comparison,JavaScript     2014-11-19 05:32:46

  Exit main thread and keep other threads running in C

In C programming, if using return in main function, the whole process will terminate. To only let main thread gone, and keep other threads live, you can use thrd_exit in main function. Check following code: #include #include #include int print_thread(void *s) { thrd_detach(thrd_current()); for (size_t i = 0; i < 5; i++) { sleep(1); printf("i=%zu\n", i); } thrd_exit(0); } int main(void) { ...

   C LANGUAGE,MULITHREAD,MAIN THREAD     2020-08-14 21:20:04

  How to commit code to OpenStack

If you want to make contributions to OpenStack, the best way to start is to help the community with blueprint or submit bug fix. To commit codes, you need to conform to some rules in the community. Work flow Register an OpenID Apply for a CLA certificate Apply for company CLA certificate Update contributor list Join OpenStack Contributors group and OpenStack group Set up SSH Keys Get a blueprint/bug git clone codes to local disk. Configure user name and user email and openid Modify codes in a l...

   OpenStack,Contribution     2013-08-04 23:04:45

  Time-saving tips Linux users should know

As a programmer or system administrator, we have more chances of working on *nix platforms. It's tough experience when first start use *nix as we need to face a black screen without knowing what's behind it. Now, if we can have some resources to rely on, then we will find the beautify of *nix. They are fast, efficient and most importantly sexy. Below are some great tips for helping Linux users get used to Linux. This list is a bit long. So be patient. To get more information on a command mention...

   Linux,Tips     2013-09-03 22:30:48

  Fix issue where no Java virtual machine found when launching Eclipse

In cases where a new Eclipse is installed or the location of the Java virtual machine binaries has been changed, you may face issue when launching Eclipse. The error would look like. And if you go to the location specified in the error message, there is no such path indeed.  And when clicks OK, the program just exits. The issue here is that it tries to find the java.exe binary and launch the program but it failed to locate it and hence exits. To fix this, you first need to ensure you have...

   ECLIPSE,JAVA,LAUNCH,ECLIPSE.INI     2019-09-07 05:31:27

  MySQL Index Merge Optimization Practices

In production environment databases, it is often seen that some SQL where conditions include: equal condition on a normal index + primary key range query + order by limit Although using a normal index would be more efficient, the system chooses to use index merge instead in some cases. This article explores such index merge situations. Index Merge Official Introduction   The Index Merge access method retrieves rows with multiple range scans and merges their results into one. Generall...

   INDEX MERGE,MYSQL,PRIMARY INDEX,SECONDARY INDEX     2024-09-10 04:52:26

  Understanding PGO in GoLang 1.20

Background The Go 1.20 version was officially released in February 2023, it introduced the PGO(Profile Guided Optimization) mechanism. The basic principle of PGO can be divided into the following two steps: First, profiling is performed on the program to collect data about the program's runtime and generate a profiling file. When compiling the program, enable the PGO option, and the compiler will optimize the program's performance based on the content in the .pgo file. When compiling a program...

   GO 1.20,PGO,GOLANG     2023-02-28 04:27:46

  Let's talk about JavaScript deep clone

In JavaScript, deep clone means creating a brand new object that includes all nested objects, with all properties being completely independent copies. This is different from shallow copying, which only copies the first-level properties, with nested objects being referenced rather than copied. There are multiple ways to perform deep copying in JavaScript, but the best one to use depends on the specific use case. Can use JSON.parse & JSON.stringify? ❌ JSON.parse(JSON.stringify(obj)) is a dep...

   JAVASCRIPT,DEEP CLONE     2023-02-25 08:57:11