OpenLLM-France/wikimedia huggingface dataset:
# Messier Index/M46

Messier 46 (also known as M 46 or NGC 2437) is an w:open cluster in the w:constellation of w:Puppis. It was discovered by w:Charles Messier in w:1771. Dreyer described it as "very bright, very rich, very large." M46 is about 5,500 w:light-years away with an estimated age on the order of several 100 million years.
The w:planetary nebula NGC 2438 appears to lie within the cluster near its northern edge (the faint smudge at the top center of the image), but it is most likely unrelated since it does not share the cluster's radial velocity. The case is yet another example of a superposed pair, joining the famed case of w:NGC 2818.
M46 is about a degree east of M47 in the sky, so the two fit well in a binocular or wide-angle telescope field.

## References

* 1 2 3 Majaess D. J., Turner D., Lane D. (2007). In Search of Possible Associations between Planetary Nebulae and Open Clusters, PASP, 119, 1349
* ↑ Kiss, L. L., Szabó, Gy. M., Balog, Z., Parker, Q. A., Frew, D. J. (2008). AAOmega radial velocities rule out current membership of the planetary nebula NGC 2438 in the open cluster M46, MNRAS
* ↑ Mermilliod, J.-C., Clariá, J. J., Andersen, J., Piatti, A. E., Mayor, M. (2001). Red giants in open clusters. IX. NGC 2324, 2818, 3960 and 6259, A&A

## External links

* Messier 46, SEDS Messier pages
* Messier 46, Amateur Astronomer Image - Waid Obseratory
# Messier Index/M43

Messier 43 (also known as M43, De Mairan's Nebula, and NGC 1982) is an w:H II region in the w:Orion constellation. It was discovered by w:Jean-Jacques Dortous de Mairan before w:1731. The De Mairan's Nebula is part of the w:Orion Nebula, separated from the main nebula by a lane of w:dust. It is part of the much larger w:Orion Molecular Cloud Complex.

## External links

* The De Mairan's Nebula @ SEDS Messier pages
# Messier Index/M47

Open Cluster M47 (also known as Messier Object 47 or NGC 2422) is an w:open cluster in the w:constellation w:Puppis. It was discovered by w:Giovanni Batista Hodierna before w:1654 and independently discovered by w:Charles Messier on w:February 19, w:1771.
M47 is at a distance of about 1,600 w:light-years from w:Earth with an estimated age of about 78 million years. There are about 50 w:stars in this cluster, the brightest one being of magnitude +5.7.

## External links

* Messier 47, SEDS Messier pages
* Messier 47 Amateur Image - Waid Observatory
# Messier Index/M48

Messier 48 (also known as M 48 or NGC 2548) is an w:open cluster in the w:Hydra constellation. It was discovered by w:Charles Messier in w:1771. M48 is visible to the w:naked eye under good atmospheric conditions. Its age is estimated to amount 300 million years.

## External links

* Messier 48, SEDS Messier pages
# Messier Index/M49

Messier 49 (also known as M 49 or NGC 4472) is an elliptical / w:lenticular galaxy about 49 million w:light-years away in the w:constellation Virgo. The galaxy was discovered by w:Charles Messier in w:1771.

## Supernovae

The only w:supernova observed within this galaxy is w:SN 1969Q. The supernova was discovered in June 1969.

## Companion galaxies

w:NGC 4467 forms a visual pair with Messier 49.

## Virgo Cluster membership

Messier 49 is the brightest member of the w:Virgo Cluster. The galaxy is located at the center of one of the subclusters within the Virgo Cluster.

## External links

* SEDS: Elliptical Galaxy M49
* Black hole found in a star cluster in M49

## References

* ↑ Jensen, Joseph B.; Tonry, John L.; Barris, Brian J.; Thompson, Rodger I.; Liu, Michael C.; Rieke, Marcia J.; Ajhar, Edward A.; Blakeslee, John P. (2003). "Measuring Distances and Probing the Unresolved Stellar Populations of Galaxies Using Infrared Surface Brightness Fluctuations". Astrophysical Journal. 583 (2): 712–726. doi:10.1086/345430. {{cite journal}}: Unknown parameter |month= ignored (help)CS1 maint: multiple names: authors list (link)
* 1 2 3 4 5 6 7 8 9 "NASA/IPAC Extragalactic Database". Results for NGC 4472. Retrieved 2006-09-26.
* ↑ K. G. Jones (1991). Messier's Nebulae and Star Clusters (2nd ed.). Cambridge: Cambridge University Press. ISBN 0-521-37079-5.
* ↑ "NASA/IPAC Extragalactic Database". Results for supernova search near name "NGC 4472". Retrieved 2007-02-12.
* ↑ R. Barbon, E. Cappellaro, F. Ciatti, M. Turatto, C. T. Kowal (1984). "A revised supernova catalogue". Astronomy & Astrophysics Supplement Series. 58: 735–750.{{cite journal}}: CS1 maint: multiple names: authors list (link)
* 1 2 A. Sandage, J. Bedke (1994). Carnegie Atlas of Galaxies. Washington, D.C.: Carnegie Institution of Washington. ISBN 0-87279-667-1.
# Messier Index/M50

Messier 50 (also known as M 50 or NGC 2323) is an w:open cluster in the w:constellation w:Monoceros. It was perhaps discovered by G. D. Cassini before w:1711 and independently discovered by w:Charles Messier in w:1772. M50 is at a distance of about 3,000 w:light-years away from w:Earth. It is described as a 'heart-shaped' figure.

## External links

* Messier 50, SEDS Messier pages
* M50 Image by Waid Observatory
# Messier Index/M5

Messier 5 or M5 (also designated NGC 5904) is a globular cluster in the constellation Serpens. It was discovered by Gottfried Kirch in 1702. It should not be confused with the much fainter and more distant globular cluster Palomar 5, which is situated nearby in the sky.

## Discovery and visibility

M5 is, under extremely good conditions, just visible to the naked eye as a faint "star" near the star 5 Serpentis. Binoculars or small telescopes will identify the object as non-stellar while larger telescopes will show some individual stars, of which the brightest are of apparent magnitude 12.2.
M5 was discovered by the German astronomer Gottfried Kirch in 1702 when he was observing a comet. Charles Messier also noted it in 1764, but thought it a nebula without any stars associated with it. William Herschel was the first to resolve individual stars in the cluster in 1791, counting roughly 200.

## Characteristics

Spanning 165 light-years in diameter, M5 is one of the larger globular clusters known. The gravitational sphere of influence of M5, (ie. the volume of space in which stars are gravitationally bound to it rather than being torn away by the Milky Way's gravitational pull) has a radius of some 200 light-years.
At 13 billion years old it, M5 is also one of the older globulars associated with the Milky Way Galaxy. Its distance is about 24,500 light-years from Earth and the cluster contains more than 100,000 stars, as many as 500,000 according to some estimates.

## Notable stars

kalpak stars in M5 are known to be variable in brightness, 97 of them belonging to the RR Lyrae type. RR Lyrae stars, sometimes referred to as "Cluster Variables", are somewhat similar to Cepheid type variables and as such can be used as a tool to measure distances in outer space since the relation between their luminosities and periods are well known. The brightest and most easily observed variable in M5 varies from magnitude 10.6 to 12.1 in a period of just under 26.5 days.
A dwarf nova has also been observed in this cluster.

## External links

* SIMBAD: M5
* M5,SEDS Messier pages
* M5, Galactic Globular Clusters Database page
* Historic observations of M5
* Image of M5 by Waid Observatory

## References

* 1 2 3 4 "SIMBAD Astronomical Database". Results for NGC 5904. Retrieved 2006-11-15.
# Linux Applications Debugging Techniques/Deadlocks
### Analysis

Searching for a deadlock means reconstructing the graph of dependencies between threads and resources (mutexes, semaphores, condition variables, etc.) - who owns what and who wants to acquire what. A typical deadlock would look like a loop in that graph. The task is tedious, as some of the parameters we are looking for have been optimized by the compiler into registers.
Below is an analysis of an x86_64 deadlock. On this platform, register r8 is the one containing the first argument: the address of the mutex:
Threads 3 and 4 are deadlocking over two mutexes.
Note: If gdb is unable to find the symbol pthread_mutex_t because it has not loaded the symbol table for pthreadtypes.h, you can still print the individual members of the struct as follows:
An std::mutex has a similar structure where __owner is the LWP:

### Automation

An interposition library can be built to automate deadlock analysis. A significant number of APIs have to be interposed and even then there are cases that would go unnoticed by the library. For instance, one creative way to deadlock two threads without involving any userland locking mechanism is to have each thread join the other. Thus, interposition tools have limited diagnostic functionality.
There are a number of other tools available:
* gdb-automatic-deadlock-detector - script adds new command 'blocked' to GDB. This command analyze all threads and display which threads are waiting for other threads. It also shows deadlocks between threads.
* Userspace lockdep. Incipient work.
* Locksmith. Basic.
* Valgrind Helgrind. Does not suffer from the terrible slowdown other Valgrind tools have (in particular the memory analysis ones) but does not survive long on an amd64 platform.

### pthreads

pthreads has some built-in support for certain synchronization mechanisms (e.g. PTHREAD_MUTEX_ERRORCHECK mutexes).
Also, there's a POSIX mutex construction attribute for robust mutexes (a recoverable mutex that was held by a thread whose process has died): an error return code indicates the earlier owner died; and lock acquisition implies acquired responsibility for dealing with any cleanup.

### lockdep

On lockdep-enabled kernels, pressing Alt+SysRq+d will dump information about all the locks known to the kernel.
# Linux Applications Debugging Techniques/Core analysis
### Basics

To obtain a good call stack, it is important that the gdb loads the same libraries that were loaded by the program that generated the core dump. If the machine we are analyzing the core has different libraries (or has them in different places) from the machine the core was dumped, then copy over the libraries to the analyzing machine, in a way that mirrors the dump machine. For instance:
At the gdb prompt:

### analyze-cores

Here is a script that will generate a basic report per core file. Useful the days when cores are raining on you:

### Canned user-defined commands

Same reporting functionality can be canned for gdb:

### analyze-pid

A script that will generate a basic report and a core file for a running process:

### Thread Local Storage

TLS data is rather difficult to access with gdb in the core files.

##### References

* __thread variables
# Linux Applications Debugging Techniques/Heap corruption
### Electric Fence

Electric Fence is still the reference for dealing with heap corruption, even if not maintined for a while. RedHat ships a version that can be used as an interposition library.
Drawback: might not work with code that uses mmap to allocate memory.

### Duma

Duma is a fork of Electric Fence.

### glibc builtin

man (3) malloc: Recent versions of Linux libc (later than 5.4.23) and GNU libc (2.x) include a malloc implementation which is tunable via environment variables. When MALLOC_CHECK_ is set, a special (less efficient) implementation is used which is designed to be tolerant against simple errors, such as double calls of free with the same argument, or overruns of a single byte (off-by-one bugs). Not all such errors can be protected against, however, and memory leaks can result. If MALLOC_CHECK_ is set to 0, any detected heap corruption is silently ignored and an error message is not generated; if set to 1, the error message is printed on stderr, but the program is not aborted; if set to 2, abort is called immediately, but the error message is not generated; if set to 3, the error message is printed on stderr and program is aborted. This can be useful because otherwise a crash may happen much later, and the true cause for the problem is then very hard to track down.

### C++ stdlib builtin

Compile with -D_GLIBCXX_DEBUG - it turns on debugging checks in the C++ standard library.

### AddressSanitizer

A fast memory error detector via -fsanitize=address , with a recent gcc (since 4.8) or clang (since 3.1). Memory access instructions will be instrumented to detect heap-, stack-, and global-buffer overflow as well as use-after-free bugs. To get nicer stacktraces, use -fno-omit-frame-pointer. The AddressSanitizer is available on IA-32/x86-64/x32/PowerPC/PowerPC64 GNU/Linux and on x86-64 Darwin.
* http://clang.llvm.org/docs/AddressSanitizer.html
* https://code.google.com/p/address-sanitizer/

### ubsan

Starting with gcc 4.9 and later, you can use the ubsan sanitizer for bounds checking.

### gdb heisenbugs

Memory-related bugs that don't happen when using GDB but do without GDB are often caused by GDB disabling ASLR. This is usually useful for reproducibility of debugging sessions, but may indeed make address space layout too predictable and fail to reproduce a bug. Try using the GDB command "set disable-randomization off" (without quotes) to undo this behavior and thus start your program in a normal, randomized, environment.

### Links

* Intel support for memory issues
# Linux Applications Debugging Techniques/Hardware emulators
### umockdev

umockdev mocks hardware devices for creating unit tests for libraries and programs that handle Linux hardware devices. It also provides tools to record the properties and behaviour of particular devices. Useful for reproducing failure scenarios encountered in the wild.
# Linux Applications Debugging Techniques/Race conditions
### Valgrind Helgrind

* [v 3.7] On amd64 platforms it does not survive for long because of the vex disassembler.

### Valgrind Drd

* Same.

### ThreadSanitizer (tsan)

* Usually better than Helgrind, as it does not depend on valgrind anymore.

### Relacy

* C++0x/11 synchronization modeler/unit tests tool.

### References

* gdb & lib debugging support
* Lockless Algorithms
# Linux Applications Debugging Techniques/References and further reading
### Books, articles, presentations

* Agar, Eric; Writing Reliable AIX Daemons
* Alexandrescu, Andrei; volatile: The Multithreaded Programmer's Best Friend
* Butenhof, David; Programming with POSIX Threads
* Drepper, Ulrich; What Every Programmer Should Know About Memory
* McKenney, Paul; Is Parallel Programming Hard (git, blog, other papers)
* https://www.youtube.com/watch?v=aIHAEYyoTUc&list=PLHxtyCq_WDLXryyw91lahwdtpZsmo4BGD
* https://www.youtube.com/watch?v=zULU6Hhp42w
* https://www.agner.org/optimize/

### Software

* Linux Programming Tools

### Links

* http://www.brendangregg.com/ebpf.html
* https://github.com/iovisor/bcc
* https://lwn.net/Articles/742082/
* https://jvns.ca/blog/2017/09/05/finding-out-where-packets-are-being-dropped/
* https://blog.cloudflare.com/path-mtu-discovery-in-practice/
* BPF
* bpftrace
* List of C++ resources
# Linux Applications Debugging Techniques/Building the toolkit

The code detailed herein is slowly melted into a toolkit and is available at the LPT site.

### Prerequisites
##### A C++11/C++0x compiler

If your distribution does not have such a compiler, compile one from scratch. First compile the gcc prerequsites, available here:
* cloog
* ppl
* mpc
* mpfr
* gmp
Then compile gcc itself:

###### References

* Compiling gcc

##### PAPI

This one is a straightforward ./configure && make. No need to install.

##### -fPIC libbfd

The call stack code has a dependency on libbfd. If you wish to link libbfd statically to cut short a dependency on the deployment machine - which may or may not have a dynamic libbfd - you need an libbfd.a that is -fPIC compiled. This flag is needed because the static library will be linked into a shared object. The plain libbfd.a coming with the platforms might not be an -fPIC one, in which case you have to compile your own.
No need to install it either.

### Compilation

Finally, we need to adjust the LPT Makefile:
# Myers-Briggs Type Indicator/Thinking

* Myers-Briggs Type Indicator Introduction | Four polar dimensions: E/I, S/N, T/F, J/P | Four basic temperaments: SJ, SP, NT, NF | The sixteen types QuickTyping | At work | Criticisms | Further reading
Thinkers use impersonal means of reasoning: logic and verifiable experience.
# Myers-Briggs Type Indicator/Traditionalist

* Myers-Briggs Type Indicator Introduction | Four polar dimensions: E/I, S/N, T/F, J/P | Four basic temperaments: SJ, SP, NT, NF | The sixteen types QuickTyping | At work | Criticisms | Further reading
The Guardians is another name for Sensing Judgers. There are four personality types that fall into this category: ESTJ, ESFJ, ISTJ, and ISFJ.

## Personality

This type is conservative and hardworking, values responsibility and service to others, is serious, trustworthy, and diligent, focused on duty and getting the job done, adheres to traditional values and dress, and is slow to accept new ideas. The SJ has a strict idea of how things should be done and frowns on deviation from it.

## Profession

SJs make up the greatest part of the management of business organizations. Their attention to detail and preference to make decisions quickly lend well to the structure of larger organizations.

## Communication

Guardians are polite and straightforward, respectful and more formal than the other temperaments. They talk in an unadorned way and include facts and precise details rather than generalizations.

## Appearance

SJs dress neatly and conservatively but don't focus on current trends. They tend to have good posture and walk briskly.

## Hobbies

Handcrafts, collecting things (especially antiques), volunteerism, sports, jogging, and participation in service organizations.
# Myers-Briggs Type Indicator/Sensing

* Myers-Briggs Type Indicator Introduction | Four polar dimensions: E/I, S/N, T/F, J/P | Four basic temperaments: SJ, SP, NT, NF | The sixteen types QuickTyping | At work | Criticisms | Further reading
Sensors want, trust, and remember facts, and usually describe themselves as "practical". For a Sensor, intuition is untrustworthy, and might seem like mental static. Sensation, as a perceiving mode of consciousness, focuses on heightening reality. Guardians share the combination SJ, while Artisans share the combination SP.
# Myers-Briggs Type Indicator/Temperaments

* Myers-Briggs Type Indicator Introduction | Four polar dimensions: E/I, S/N, T/F, J/P | Four basic temperaments: SJ, SP, NT, NF | The sixteen types QuickTyping | At work | Criticisms | Further reading
There are four temperaments: SJ, SP, NT, and NF.

## SJ

Sensing judgers, or traditionalists, are practical people that keep the home fires burning and businesses working. They're always aware of who owns what and which social positions are held by whom. Their quest is to run everything, and they are often good at doing so.

## SP

Sensing perceivers, or experiencers, are adventurous, fun-loving, observant, physically skillful, impatient, easily bored, and good with tools and art. They want to be happy and make others happy too.

## NT

Intuitive thinkers, or conceptualizers, are analytical, impersonal, intellectual, rather unworldly, absent-minded, and are more likely to forget appointments. They continually seek to acquire new skills and pride themselves on their skills, logic, and efficiency.

## NF

Intuitive feelers, or idealists, understand people and tend to be aware of people's feelings. They can be warm, sympathetic friends, but find offense in the smallest careless remark. They tend to be very skillful negotiators and good with words.
# Myers-Briggs Type Indicator/Types

* Myers-Briggs Type Indicator Introduction | Four polar dimensions: E/I, S/N, T/F, J/P | Four basic temperaments: SJ, SP, NT, NF | The sixteen types QuickTyping | At work | Criticisms | Further reading
There are sixteen "types":
| ISTJ | ISFJ | INFJ | INTJ |
| ISTP | ISFP | INFP | INTP |
| ESTP | ESFP | ENFP | ENTP |
| ESTJ | ESFJ | ENFJ | ENTJ |
# Myers-Briggs Type Indicator/Perceiving

* Myers-Briggs Type Indicator Introduction | Four polar dimensions: E/I, S/N, T/F, J/P | Four basic temperaments: SJ, SP, NT, NF | The sixteen types QuickTyping | At work | Criticisms | Further reading
Perceivers prefer to leave their options open to perceive new possibilities and processes as long as possible. They tend to mourn opportunities lost to premature decisions. They are prone to analysis paralysis, but rarely make permanent mistakes.
# Myers-Briggs Type Indicator/QuickTyping

* Myers-Briggs Type Indicator Introduction | Four polar dimensions: E/I, S/N, T/F, J/P | Four basic temperaments: SJ, SP, NT, NF | The sixteen types QuickTyping | At work | Criticisms | Further reading
You can use the tools of the Myers-Briggs Type Indicator to quickly determine a person's personality type though a method called Speedreading. This process, developed by Paul D. Tieger and Barbara Barron-Tieger in The Art of Speedreading People, lets you use three basic tools to decipher clues in anyone's demeanor, whether your contact is in person, over the phone, or even on a chat line.
The three tools are as follows:
* Clues to individual dimensions
* Clues to temperament
* The Introverting/Extroverting Feeling pattern
# Modern History/Opium Wars

The "Opium Wars" were two wars that were the climax of a long dispute between Britain and China. In the second, France fought alongside the British. This dispute was around the Opium trade which was perceived from two different culturtal and economic vantage points -- as with any and all global economic conflicts between two parties. The Chinese Emperor had banned opium in China due to its harmful effects on Chinese citizens and its denigratory impact on the Chinese culture; The British Empire, however, saw opium as a profitable good for commercial trade, as its import would help balance the huge trade deficit with China. The Opium Wars and the many treaties signed afterward led in part to the downfall of the Chinese economy, as many countries followed Britain and forced more treaties to increase trade within China.
# Modern History/J.R.R. Tolkien

John Ronald Reuel Tolkien (January 3, 1892 – September 2, 1973) is best known as the author of The Hobbit and its sequel The Lord of the Rings. He was a professor of Anglo-Saxon language at Oxford from 1925 to 1945, and of English language and literature, also at Oxford, from 1945 to 1959. He was a strongly committed Roman Catholic. Tolkien was a close friend of C. S. Lewis, with whom he shared membership in the literary discussion group the Inklings.
In addition to The Hobbit and The Lord of the Rings, Tolkien's published fiction includes The Silmarillion and other posthumously published books about what he called a legendarium, a fictional mythology of the remote past of Earth, called Arda, and Middle-earth (from middangeard, the lands inhabitable by Men) in particular. Most of these works were compiled from Tolkien's notes by his son Christopher Tolkien.