<commit_before>I wonder why the plural form of day-off is days-off and the plural form of plug-in is plug-ins.
Programmers compare lossless compression to freeze-drying coffee, from-concentrate juice, and futon compression bags.
I get plenty of exercises - move, jump, spin, load, carry, and push in my assembly code.
<NAME> said, "If you can dream it, you can do it.". Contestants of competitive programming may say "If you can come up with it, you can implement it."
In C and C++, you can replace if(p) { free(p); } with free(p); . free(NULL) does nothing and does not crash. This is a kind of the null object design pattern.
If you wonder some C++ empty structs are defined, leave them untouched and do not bundle them into one struct. They are tags for Boost.MultiIndex.
You may find a comment in C++ code that says "This variable must be unsigned". It is a good practice to write an assertion "static_assert(std::is_unsigned)".
It is a pesky bug that an interrupt handler constructs a C++ object which calls malloc unintentionally. Malloc is not reentrant so the handler rarely corrupts heap. This is hard to reproduce.
T is a function to transpose a matrix in NumPy and t is a function to transpose a matrix in R. Stan has the T operator which is used for truncated data models.
Before writing assert_equals, check their arguments. Google Test and CppUnit take (expected, actual). CUnit and R testthat::expect_equal take (actual, expected). It is troublesome to swap expected and actual values after writing unit tests.
The logo of Boost C++ Libraries uses hexagons like benzene rings. It recalls us that the libraries work well together with the C++ standard library. Tidyverse is a collection of R packages and it also uses hexagons in its logo.
x64 uses SSE registers and x86 uses 80-bit x87 FPU registers in floating-point arithmetic. This occasionally leads to different results of the same calculations.
sizeof(4) is accidentally treated as 4 in many platforms. Do you mean "size_t var = 4;"?
C++ compilers are novelists. They have you read their gargantuan error novels when there's something wrong in C++ code using templates.
An interrupt is like pizza delivery. A driver rings the doorbell, you suspend your programming, and you pick up a pizza box on the floor. Bon appétit!
Random seeds are required to reproduce results in some algorithms. You should save seeds or you will have a hard time reproducing the results.
In C++, the 'this' pointer is rarely necessary. It is an example to write explicit 'this'. std::bind(&T::MemberFunction, this, std::placeholders::_1)
It is a bad practice that an int holds a distance of two pointers in C/C++. Use ptrdiff_t and describe "%td" in printf().
When you write a unit test, make it fail first. Otherwise, you wonder if the test passes or is empty or does not run.
It is not easy to parse -1-1e-3 to -1.001.
An advantage of just-in-time compilation over ahead-of-time compilation is generating platform-specific code. I have not written code for AVX-512.
std::ofstreams in C++ automatically close file streams that they opened. This is a typical RAII behavior. Note that if closing a file fails in a destructor of std::ofstream, the destructor tells nothing.
A trick using std::swap() in C++ is to reinitialize a variable by swapping an existing object and a newly created object.
The portability of regular expressions is sometimes a hard thing. I have to rewrite a recursive regex... (sigh
C++ has many unique features. When I am asked to choose one of them, I say C++ does not rely on tracing GC.
In math class, you are taught that 1/0 is not infinity. In R programming, 1/0 returns Inf, and -1/0 returns -Inf.
If you find #* or *~ files in a Windows shared folder, it tells someone opens these files on Emacs directly. By the way, you become happy if you use a version control system instead of shared folders.
Lack of the construct-on-first-use idiom can cause bugs in initializing before main(). Can randomizing an order of a *.o set detect it?
Windows treats file and directory names as case insensitive by default. #include directives in C/C++ do same in compilation under Windows.
R and American building stories have 1-based indexing. C and British building storeys have 0-based indexing.
A famous usage of 'do{}while();' is wrapping multi-statement macros in C/C++. Another is enumerating all permutations of a list. std::sort(vec.begin(), vec.end()); do {...} while(std::next_permutation(vec.begin(), vec.end()));
NOP instructions do not make modern processors idle. They are useful to align instructions.
Bit fields are not always ordered from LSB to MSB. It is platform-dependent and an IPv4 header struct is a good example.
The document of R dplyr::distinct() says it is considerably faster. I would like to use this phrase.
A simple use case does not mean that it is easy to design. "Deposit coins, press a button, and you can get a soda bottle" is correct but it doesn't help you make a vending machine.
A result of positive integer division depends on platforms and computer languages. A dynamic typing language returns a floating-point number if two integers are not divisible.
Programmers are lazy so they count lines of a CSV file with the wc command. Programmers are impatient so they do not launch R or Python and use the shell function below to count columns in a CSV file. 'head foo.csv | sed -e "s/[^\\,]//g" | awk '{ print length + 1 }'
An advantage of C++ constants over macros is finding an undefined symbol. "if constexpr (color)" causes a compilation error if you expect "colour" but "#ifdef COLOR ... #endif" possibly leads to unexpected behaviors without compilation errors.
Automatic memory management relieves programmers' burden but programmers are not free from memory management. Before reading a huge file, you may have to release huge objects or it causes an out-of-memory error.
Someone said, "Any code doesn't run as you thought, run as you wrote". Sure. I say "Tracing GC doesn't collect objects which you thought obsolete, collect unreachable objects".
It is fun for students in CS courses to read "Intel 64 and IA-32 Architectures Software Developer Manuals" and beat C/C++/Rust optimizers.
int* is automatically convertible to const int* in most cases but it is not always true. A std::bad_any_cast exception is thrown if you put an int* into a std::any object and apply std::any_cast<const int*> to it.
There are cases where different technical terms in different fields have the same notion. Markov property is well known as a sunk cost in economics. Hazard rate and force of mortality have a common definition.
The critical path of a project is not obvious. In the construction of the Tokaido shinkansen, I suppose its critical path was digging a 7959m tunnel between Atami and Mishima, not developing trains running at 200 Km/h (125 mph).
I know a capitalization-weighted stock index approximates the stock's value of a sector, region, or country. I wonder what price-weighted stock indices such as DJIA and N225 represent?
Multi-level indexing was known before computers. Keeping Kimarijis in mind is crucial for winning competitive karuta games. Even novices know mu-su-me-fu-sa-ho-se. You can experience Kimarijis on Bash with bash-completion or on a car GPS unit to set a destination.
Haven't you read a patent? Watch <NAME>'s 'Smooth Criminal' video and read USP 5255452 'Method and means for creating anti-gravity illusion', which he is an inventor of.
I heard the greatest inventor in the world is Patent Pending. The most-cited paper of all time must be "Error! Reference source not found."
Suspension bridges are built from a long time ago but cable-stayed bridges are modern because they require structural analysis. There are many ideas which computers realize and cable-stayed bridges are one of them. Markov chain Monte Carlo (MCMC) methods are also the same.
I heard that I can buy high throughput using parallelism, cannot buy low latency because it is bound by physical constants. Is this a famous maxim?
If trainees are novices in UML, let them draw steps of household chores. We can wash clothes and clean up rooms in parallel.
There is a chain reaction where we find unfamiliar technical terms in a paper and looking up the terms leads to other unfamiliar technical terms. Eventually, we understand the paper and these terms. Is this learning curve a sigmoid function?
"What programming and stock trading have in common?" "There is one field where professionals and amateurs and any others play under the same rules. This never happens in baseball and chess leagues."
The UD2 instruction is an oxymoron. Look, an undefined instruction is defined!
"There is more than one way to do it." is a Perl programming motto and Ruby takes it over. By the way, there is more than one way to express "version 3.2 or later".
Vanilla pthread_cond_wait has you deal with spurious wakeups. Use std::condition_variable::wait and you will be happy.
Someone said, "We are living in a digital era". That's true in 2021. I suppose that letters and characters and music notes have been discrete but rarely called digital.
In CS courses, you may have homework "Open a socket, listen and accept a connection, and print received data from the connection." Do you need a TCP client? Access http://localhost:port/ from a Web browser!
A semaphore is inspired by railway signals. By the way, the Seto-Ohashi bridges restrict up to two trains per one bridge (one train per one-way and one bridge) not to surpass their load limit.
XOR parity provides single error detection. You can notice one sock is missing and cannot notice you lost a pair of socks.
In CS courses, you may have homework "Sort these book or song titles." In the real world, natural sorting is case insensitive, ignores leading articles, and treats digits as numbers instead of characters (1 < 2 < 10 is expected, not '1' < '10' < '2').
To represent a number N in the unary numeral system, repeat 1 N-times. Its examples are Roman Ⅰ Ⅱ Ⅲ and Chinese 一 二 三.
<NAME> said, "Advertising is the greatest art form of the 20th century". In the 21st century, advertising is also an art form with data science.
The ABA problem becomes the ABA' problem after being tagged. It resembles the Y2K problem and a four-digit year format.
The photo book "Mademoiselle: Coco Chanel Summer 62" by <NAME> and <NAME> recalls programmers working in the state of flow.
When you create presentation slides, press Ctrl-Win-c to enable grayscale mode and check whether the slides are photocopy friendly. Use hatching patterns and line types properly and your slides become easy to understand for people.
GNU make turns "$(RM) $(OUTPUT)/*" in a Makefile into "rm -f /*" if OUTPUT is undefined. It is dangerous and we need to avoid it. Is "$(RM) ./$(OUTPUT)/*" a safer way?
The Peopleware book explains how office environments affect programmers' productivity. We would like to know its telecommuting version.
Alloy, which is an analyzer for software modeling, can solve "I'm my own grandpa" according to <NAME>'s Software Abstractions book. Before searching the Internet for its answer, solve it by hand or let Alloy solve it.
It is clever that C++ puts is_union, launder, ​byte and, bit_cast into the std namespace and avoids appending C++ keywords due to backward compatibility. What comes next?
Someone claimed, "'(expr) ? t : f' is difficult to read so should be replaced with if-else.". Umm..., the ternary operator exists for historical reasons. It is a hint to use conditional move instructions and avoid branch-prediction miss penalties.
Don't be afraid of error messages in C! The messages tell you that you have to rewrite your code and they do not blame you. Real horror creeps up on you with buffer overflow, dangling pointers, and incoherent data among CPU cores without error messages.
Rear <NAME> said, "It's easier to ask forgiveness than it is to get permission." Programmers try new tools in their private works and show them in their workplace.
Python 3.8 introduced the walrus operator (:=) . In R, the walrus operator is used to pass column names via variables to dplyr.\nlibrary(dplyr)\nlibrary(rlang)\ndf <- data.frame(x=c('A','B'))\ns <- 'z'\ndf %>% dplyr::rename(!!rlang::sym(s):=x)\nz\n1 A\n2 B
C++14 adopts single quotations as a separator of digits. Did it come from U+2396 (Decimal Separator Key Symbol)?
We cannot exhaust 2^160 Git commit IDs which are far larger than Avogadro's number.
Dictionary unpacking in Python is useful to hold parameters in a list and write the list into a JSON file. The splat operator in Ruby and do.call in R are also available for the same purpose.
Reference counting is a memory management strategy in C++. Besides programming languages, i-nodes in file systems are also based on reference counting. Try ls -i '.' , '..' , and '../current-working-dir' to show their i-nodes.
Makefile is hard to debug but we do not give it up. 'make --dry-run' and '$(foreach v, $(.VARIABLES), $(info $(v) = $($(v))))' give us a clue to know what is wrong.
In C/C++, sizeof(a_type_name) is a classic mistake. If you change the size of a_type_name, it possibly causes a buffer overflow. I recommend sizeof(*a_pointer_to_object) if it is available.
Read a line using std::getline(std::ifstream), convert it into an int using boost::lexical_cast<int>(line), and catch an exception due to a trailing CR in the line. Ouch!
Interleaving is like you guess missing characters in a book. If the edge of the book gets torn, you possibly compensate what would be written. If a couple of pages are lost, you cannot imagine them.
If you want to change a member in an instance of a class from its const member function, the mutable keyword and const_cast<T*>(this) come to mind. Hold on! Callers of the function expect it is thread-safe!
Do not delete\n/*\nLocal Variables:\nc-file-style: "..."\n*/\nin a source file! The magic is to edit the file on Emacs.
R and its packages have many color names and chartreuse is one of them. It is green like Chartreuse verte, which is 55% alcohol herbal liquor.
Some C++ compilers do not accept putc as a member function. The C standard permits putc as a macro instead of a function and it causes compilation errors in C++.
If a C++ static code analyzer warns "This std::precision may affect the stream out of the function.", use boost::io::ios_flags_saver to save and restore manipulators of the I/O stream.
If apt-get fails, it is possibly because apt-get does not know any HTTP proxy. Did you sudo with the -E option?
Reluctant regex patterns are useful to extract trailing digits of group123 and C++ // comments. Using greedy regex patterns, we get 3 from group123 and a part of C++ comments which contains // or ///.<commit_msg>Add tweets<commit_after>I wonder why the plural form of day-off is days-off and the plural form of plug-in is plug-ins.
Programmers compare lossless compression to freeze-drying coffee, from-concentrate juice, and futon compression bags.
I get plenty of exercises - move, jump, spin, load, carry, and push in my assembly code.
<NAME> said, "If you can dream it, you can do it.". Contestants of competitive programming may say "If you can come up with it, you can implement it."
In C and C++, you can replace if(p) { free(p); } with free(p); . free(NULL) does nothing and does not crash. This is a kind of the null object design pattern.
If you wonder some C++ empty structs are defined, leave them untouched and do not bundle them into one struct. They are tags for Boost.MultiIndex.
You may find a comment in C++ code that says "This variable must be unsigned". It is a good practice to write an assertion "static_assert(std::is_unsigned)".
It is a pesky bug that an interrupt handler constructs a C++ object which calls malloc unintentionally. Malloc is not reentrant so the handler rarely corrupts heap. This is hard to reproduce.
T is a function to transpose a matrix in NumPy and t is a function to transpose a matrix in R. Stan has the T operator which is used for truncated data models.
Before writing assert_equals, check their arguments. Google Test and CppUnit take (expected, actual). CUnit and R testthat::expect_equal take (actual, expected). It is troublesome to swap expected and actual values after writing unit tests.
The logo of Boost C++ Libraries uses hexagons like benzene rings. It recalls us that the libraries work well together with the C++ standard library. Tidyverse is a collection of R packages and it also uses hexagons in its logo.
x64 uses SSE registers and x86 uses 80-bit x87 FPU registers in floating-point arithmetic. This occasionally leads to different results of the same calculations.
sizeof(4) is accidentally treated as 4 in many platforms. Do you mean "size_t var = 4;"?
C++ compilers are novelists. They have you read their gargantuan error novels when there's something wrong in C++ code using templates.
An interrupt is like pizza delivery. A driver rings the doorbell, you suspend your programming, and you pick up a pizza box on the floor. Bon appétit!
Random seeds are required to reproduce results in some algorithms. You should save seeds or you will have a hard time reproducing the results.
In C++, the 'this' pointer is rarely necessary. It is an example to write explicit 'this'. std::bind(&T::MemberFunction, this, std::placeholders::_1)
It is a bad practice that an int holds a distance of two pointers in C/C++. Use ptrdiff_t and describe "%td" in printf().
When you write a unit test, make it fail first. Otherwise, you wonder if the test passes or is empty or does not run.
It is not easy to parse -1-1e-3 to -1.001.
An advantage of just-in-time compilation over ahead-of-time compilation is generating platform-specific code. I have not written code for AVX-512.
std::ofstreams in C++ automatically close file streams that they opened. This is a typical RAII behavior. Note that if closing a file fails in a destructor of std::ofstream, the destructor tells nothing.
A trick using std::swap() in C++ is to reinitialize a variable by swapping an existing object and a newly created object.
The portability of regular expressions is sometimes a hard thing. I have to rewrite a recursive regex... (sigh
C++ has many unique features. When I am asked to choose one of them, I say C++ does not rely on tracing GC.
In math class, you are taught that 1/0 is not infinity. In R programming, 1/0 returns Inf, and -1/0 returns -Inf.
If you find #* or *~ files in a Windows shared folder, it tells someone opens these files on Emacs directly. By the way, you become happy if you use a version control system instead of shared folders.
Lack of the construct-on-first-use idiom can cause bugs in initializing before main(). Can randomizing an order of a *.o set detect it?
Windows treats file and directory names as case insensitive by default. #include directives in C/C++ do same in compilation under Windows.
R and American building stories have 1-based indexing. C and British building storeys have 0-based indexing.
A famous usage of 'do{}while();' is wrapping multi-statement macros in C/C++. Another is enumerating all permutations of a list. std::sort(vec.begin(), vec.end()); do {...} while(std::next_permutation(vec.begin(), vec.end()));
NOP instructions do not make modern processors idle. They are useful to align instructions.
Bit fields are not always ordered from LSB to MSB. It is platform-dependent and an IPv4 header struct is a good example.
The document of R dplyr::distinct() says it is considerably faster. I would like to use this phrase.
A simple use case does not mean that it is easy to design. "Deposit coins, press a button, and you can get a soda bottle" is correct but it doesn't help you make a vending machine.
A result of positive integer division depends on platforms and computer languages. A dynamic typing language returns a floating-point number if two integers are not divisible.
Programmers are lazy so they count lines of a CSV file with the wc command. Programmers are impatient so they do not launch R or Python and use the shell function below to count columns in a CSV file. 'head foo.csv | sed -e "s/[^\\,]//g" | awk '{ print length + 1 }'
An advantage of C++ constants over macros is finding an undefined symbol. "if constexpr (color)" causes a compilation error if you expect "colour" but "#ifdef COLOR ... #endif" possibly leads to unexpected behaviors without compilation errors.
Automatic memory management relieves programmers' burden but programmers are not free from memory management. Before reading a huge file, you may have to release huge objects or it causes an out-of-memory error.
Someone said, "Any code doesn't run as you thought, run as you wrote". Sure. I say "Tracing GC doesn't collect objects which you thought obsolete, collect unreachable objects".
It is fun for students in CS courses to read "Intel 64 and IA-32 Architectures Software Developer Manuals" and beat C/C++/Rust optimizers.
int* is automatically convertible to const int* in most cases but it is not always true. A std::bad_any_cast exception is thrown if you put an int* into a std::any object and apply std::any_cast<const int*> to it.
There are cases where different technical terms in different fields have the same notion. Markov property is well known as a sunk cost in economics. Hazard rate and force of mortality have a common definition.
The critical path of a project is not obvious. In the construction of the Tokaido shinkansen, I suppose its critical path was digging a 7959m tunnel between Atami and Mishima, not developing trains running at 200 Km/h (125 mph).
I know a capitalization-weighted stock index approximates the stock's value of a sector, region, or country. I wonder what price-weighted stock indices such as DJIA and N225 represent?
Multi-level indexing was known before computers. Keeping Kimarijis in mind is crucial for winning competitive karuta games. Even novices know mu-su-me-fu-sa-ho-se. You can experience Kimarijis on Bash with bash-completion or on a car GPS unit to set a destination.
Haven't you read a patent? Watch <NAME>'s 'Smooth Criminal' video and read USP 5255452 'Method and means for creating anti-gravity illusion', which he is an inventor of.
I heard the greatest inventor in the world is Patent Pending. The most-cited paper of all time must be "Error! Reference source not found."
Suspension bridges are built from a long time ago but cable-stayed bridges are modern because they require structural analysis. There are many ideas which computers realize and cable-stayed bridges are one of them. Markov chain Monte Carlo (MCMC) methods are also the same.
I heard that I can buy high throughput using parallelism, cannot buy low latency because it is bound by physical constants. Is this a famous maxim?
If trainees are novices in UML, let them draw steps of household chores. We can wash clothes and clean up rooms in parallel.
There is a chain reaction where we find unfamiliar technical terms in a paper and looking up the terms leads to other unfamiliar technical terms. Eventually, we understand the paper and these terms. Is this learning curve a sigmoid function?
"What programming and stock trading have in common?" "There is one field where professionals and amateurs and any others play under the same rules. This never happens in baseball and chess leagues."
The UD2 instruction is an oxymoron. Look, an undefined instruction is defined!
"There is more than one way to do it." is a Perl programming motto and Ruby takes it over. By the way, there is more than one way to express "version 3.2 or later".
Vanilla pthread_cond_wait has you deal with spurious wakeups. Use std::condition_variable::wait and you will be happy.
Someone said, "We are living in a digital era". That's true in 2021. I suppose that letters and characters and music notes have been discrete but rarely called digital.
In CS courses, you may have homework "Open a socket, listen and accept a connection, and print received data from the connection." Do you need a TCP client? Access http://localhost:port/ from a Web browser!
A semaphore is inspired by railway signals. By the way, the Seto-Ohashi bridges restrict up to two trains per one bridge (one train per one-way and one bridge) not to surpass their load limit.
XOR parity provides single error detection. You can notice one sock is missing and cannot notice you lost a pair of socks.
In CS courses, you may have homework "Sort these book or song titles." In the real world, natural sorting is case insensitive, ignores leading articles, and treats digits as numbers instead of characters (1 < 2 < 10 is expected, not '1' < '10' < '2').
To represent a number N in the unary numeral system, repeat 1 N-times. Its examples are Roman Ⅰ Ⅱ Ⅲ and Chinese 一 二 三.
<NAME> said, "Advertising is the greatest art form of the 20th century". In the 21st century, advertising is also an art form with data science.
The ABA problem becomes the ABA' problem after being tagged. It resembles the Y2K problem and a four-digit year format.
The photo book "Mademoiselle: Coco Chanel Summer 62" by <NAME> and <NAME> recalls programmers working in the state of flow.
When you create presentation slides, press Ctrl-Win-c to enable grayscale mode and check whether the slides are photocopy friendly. Use hatching patterns and line types properly and your slides become easy to understand for people.
GNU make turns "$(RM) $(OUTPUT)/*" in a Makefile into "rm -f /*" if OUTPUT is undefined. It is dangerous and we need to avoid it. Is "$(RM) ./$(OUTPUT)/*" a safer way?
The Peopleware book explains how office environments affect programmers' productivity. We would like to know its telecommuting version.
Alloy, which is an analyzer for software modeling, can solve "I'm my own grandpa" according to <NAME>'s Software Abstractions book. Before searching the Internet for its answer, solve it by hand or let Alloy solve it.
It is clever that C++ puts is_union, launder, ​byte and, bit_cast into the std namespace and avoids appending C++ keywords due to backward compatibility. What comes next?
Someone claimed, "'(expr) ? t : f' is difficult to read so should be replaced with if-else.". Umm..., the ternary operator exists for historical reasons. It is a hint to use conditional move instructions and avoid branch-prediction miss penalties.
Don't be afraid of error messages in C! The messages tell you that you have to rewrite your code and they do not blame you. Real horror creeps up on you with buffer overflow, dangling pointers, and incoherent data among CPU cores without error messages.
Rear <NAME> said, "It's easier to ask forgiveness than it is to get permission." Programmers try new tools in their private works and show them in their workplace.
Python 3.8 introduced the walrus operator (:=) . In R, the walrus operator is used to pass column names via variables to dplyr.\nlibrary(dplyr)\nlibrary(rlang)\ndf <- data.frame(x=c('A','B'))\ns <- 'z'\ndf %>% dplyr::rename(!!rlang::sym(s):=x)\nz\n1 A\n2 B
C++14 adopts single quotations as a separator of digits. Did it come from U+2396 (Decimal Separator Key Symbol)?
We cannot exhaust 2^160 Git commit IDs which are far larger than Avogadro's number.
Dictionary unpacking in Python is useful to hold parameters in a list and write the list into a JSON file. The splat operator in Ruby and do.call in R are also available for the same purpose.
Reference counting is a memory management strategy in C++. Besides programming languages, i-nodes in file systems are also based on reference counting. Try ls -i '.' , '..' , and '../current-working-dir' to show their i-nodes.
Makefile is hard to debug but we do not give it up. 'make --dry-run' and '$(foreach v, $(.VARIABLES), $(info $(v) = $($(v))))' give us a clue to know what is wrong.
In C/C++, sizeof(a_type_name) is a classic mistake. If you change the size of a_type_name, it possibly causes a buffer overflow. I recommend sizeof(*a_pointer_to_object) if it is available.
Read a line using std::getline(std::ifstream), convert it into an int using boost::lexical_cast<int>(line), and catch an exception due to a trailing CR in the line. Ouch!
Interleaving is like you guess missing characters in a book. If the edge of the book gets torn, you possibly compensate what would be written. If a couple of pages are lost, you cannot imagine them.
If you want to change a member in an instance of a class from its const member function, the mutable keyword and const_cast<T*>(this) come to mind. Hold on! Callers of the function expect it is thread-safe!
Do not delete\n/*\nLocal Variables:\nc-file-style: "..."\n*/\nin a source file! The magic is to edit the file on Emacs.
R and its packages have many color names and chartreuse is one of them. It is green like Chartreuse verte, which is 55% alcohol herbal liquor.
Some C++ compilers do not accept putc as a member function. The C standard permits putc as a macro instead of a function and it causes compilation errors in C++.
If a C++ static code analyzer warns "This std::precision may affect the stream out of the function.", use boost::io::ios_flags_saver to save and restore manipulators of the I/O stream.
If apt-get fails, it is possibly because apt-get does not know any HTTP proxy. Did you sudo with the -E option?
Reluctant regex patterns are useful to extract trailing digits of group123 and C++ // comments. Using greedy regex patterns, we get 3 from group123 and a part of C++ comments which contains // or ///.
There are three-character operators in programming languages. <=> (the three-way comparison operator or the spaceship operator) is defined in Perl, Ruby, C++, and some other languages. !!! is available in R and not equal to "not(not(not()))".
Floppy disk icons are common after floppy disks became obsolete. We call a plastic eraser a rubber although it is not made from natural or synthetic rubber.
Do you want run-length encoding? Use rle() in R.
The byte order mark (BOM) is a nuisance in regex pattern matching. Sometimes we need a workaround to ignore BOMs. \b matches a BOM in egrep.
I wonder if a variable named *time holds a duration or a timestamp.
Huffman coding is instantaneous. Element symbols are not instantaneous (H/He, C/Cu).
We need slack to meet a deadline. Rate monotonic scheduling tells us it with formulas.
{'fraction_non_alphanumeric': 0.05879053808848273, 'fraction_numerical': 0.006730229949523275, 'mean_word_length': 4.331926121372032, 'pattern_counts': {'":': 0, '<': 36, '<?xml version=': 0, '>': 26, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2088894', 'n_tokens_mistral': 7933, 'n_tokens_neox': 7440, 'n_words': 4950}