OpenLLM-France/wikimedia huggingface dataset:
# River Fishing/Mobility

Fishing techniques demand a clear plan as to how to approach the fish. As such there are two general strategies (whether in moving water or not)
* carefully move through the waterway seeking active fish.
* position yourself in one place and alter approach until you catch fish.
Whether one plan is better than another will depend on quite a few factors. General good advice is to adopt the first approach until one gains a good understanding of effective strategies. We need to keep in mind what tools, we have available. Fishing boats for example, can definitely increase our effectiveness. They are however expansive and sometimes can not be used in certain waters. Fishermen should consider alternatives such as waders. Sometimes this increase in mobility can help considerably.
# River Fishing/Predators/Pike

When fishing for pike it is useful to know that it is fond of shady places and in summer they frequent the coolest areas in a river; springs, shadows and deep spots)
They generally spawn in March or April and earlier in some Southern streams. In winter they get under rocks, or stumps, or into convenient deep holes, and they can be taken then with small live fish for bait. Often Pike can be found near the mouth of some small stream emptying into the river; the fall of the year is the best time for catching them.
In the hot summer months they will seldom bite at all, except, perhaps, in a very windy day. In the fall, too, they are in better condition. Pike fishing in the spring is sometimes very successful; however, though the fish are not so good when breeding. In the more northern waters they are sometimes taken as early as August in good condition.
The tackle used for picke is a pretty stiff 10 foot rod, with a reel, and some 50 or 60 yards of flax line which should be protected by the hook with gimp or wire. The Limerick or Kirby salmon hook is used. The size is 0 to 5, according to the size of the fish. IN a running stream, the sinker and float will also be found necessary. The bait should be a small live fish, or frog, or the hind leg of a frog skinned. In using live bait, when the pike takes it, do not draw your line too quick. The bait, if properly impaled, will be very lively, and will be apt to make a violent effort to escape its enemy. Inexperienced anglers may take this movement for a veritable bite; but when the bite comes, there is no mistaking it.
In impaling a small fish for bait, pass the hook under the back fin, just under the roots of its rays. This will not disable the fish, and it will appear lively in the water. When using live frog bait, you pass the hook through the skin of the back or belly, or the back muscle of the hind legs. The live frog is generally used on the top of the water - if not, you should let him rise occasionally to take the air. When the pickerel has seized your bait, give him plenty of time to swallow it, and also plenty of line. Sometimes he will hold it in his mouth and play with it before gorging.
Lures Can also be very effective even in small waters, and can be often quickly worked as Pike espacially in shallows can be very unselective.

## Landing

Keep in mind that Northern Pike often are sporadic fighters and not afraid to be drawn to shore. A fish slowly worked to shore can be surprisingly green or unsubdued and can put on a tremendous burst of speed and effort when approached. Many anglers have found out the hard way that you cannot man handle a live pike.
Pike, (as well as other Esox) have lots of teeth, a very boney gill cover and have boney mouths. They are notoriously hard to hook and keep hooked and if a green Pike is brought to the hand, when can get serious cut by the thrashing fish or your lures, which might have 6-9 hooks itself.
As one angler has said, once you catch them soon after the excitement ebbs and the fears begins. Only celebrate your victory against one of Americas biggest predators AFTER you have escaped unscathed.

## See also

* Pickerel
# River Fishing/Introduction

Recreational fishing might be one of the most popular widely intensively studied learning experiences that Americans (and indeed many other nationalities) participate in. According to the American Sportfishing Association nearly 40 million angler generate 45 billion dollars in sales with perhaps an total contribution of 125 billion dollars to the US economy.
A definite portion of this is funneled into guides, magazines, and other learning experiences for the many Americans that seek improvement in the activity of catching a fish on a hook (angling.)
It is then with pleasure that I begin the process of defining one of my most intensive learning effort. I look forward to and hope for collaboration from the many Americans whom have superior knowledge in the recreational activity.
Fishing has so many different forms, waters and specialties. Many I am unfamiliar with. I do though have some knowledge and experience angling for many different kinds of fish in Eastern (US) rivers. Despite the apparent ease of not needing expansive water craft, or the complexities of fly casting and downrigger trolling; river fishing has its own mystique and difficulty. I hope to document some of what I have learned.
If there is any urgent needs for this project, it is definitely for experience in larger waters. Having defined a river, as 'big enough to support a diverse gamefish population', my experiences definitely are with smaller waters than the major rivers of the United States.
Thank you for your curiosity and invite you to ask questions and post comments, questions and content as much as you are able.
# River Fishing/River

A river is a large stream that has sufficient seasonal flow and moderate enough temperature to support a diverse gamefish population. In the Eastern United states this diverse game fish population assumes a hierarchy; with game fish feeding on a wide variety of the invertebrate and vertebrate life of the ecosystem. Therefore when we approach a river we must understand the different habitats that a river supports, understand how bait fish use these habitats and how different fish feed in them. This book will offer practical tips on how to approach a new stream, and techniques that appeal to several different kinds of fishing.
Throughout the entire book, the emphasis is on how to catch many Different kinds of fish and it is not meant as an indepth guide to any one species.

## A Plan

One of the first steps towards more successful fishing trips is to go with a plan. The fishermen should
* Review Conditions
* Carefully choose where to go
* Target specific kind of fish
* Decide whether to move or not
# Structural Biochemistry/Nucleic Acid/Nitrogenous Bases
## Overview

A DNA nucleotide is composed of 3 main units: a 5-carbon monosaccharide (deoxyribose), a phosphate group, and a nitrogenous base. While the monosaccharide and phosphate group alternate in sequence and form the backbone of the DNA double helix, the nitrogenous bases may differ in every adjoining nucleotide. The four nitrogenous bases present in DNA are adenine (A), guanine (G), cytosine (C) and thymine (T). In RNA, the only differing nitrogenous base is uracil (U) (which replaces thymine in DNA and differs thymine only by the missing methyl group at carbon 5 of the pyrimidine ring). Of the nitrogenous bases, adenine and guanine are purines, which are aromatic compounds attached to an imidazole group, while cytosine and thymine and uracil compose a set of pyrimidines, which are one ring-aromatic compounds. Nitrogenous bases, being hydrophobic, tend to face inwards of the double helix, pointing away from the surrounding aqueous environment. If the phosphate backbones were faced inside of the double helix, then there will be too many charges clustered together such that the double helix would be an unlikely product. Bonds between linking nitrogenous bases of two DNA strands are Hydrogen bonds with 3 H-bonds connecting cytosine and guanine and 2 H-bonds connecting adenine and thymine, while the bonds between the stacking of DNA are kept in close contact via van der waals interactions. The aromaticity of the nitrogenous bases accounts for the DNA absorbance peak at 260nm.
# ROSE Compiler Framework/Real-World Applications
## dbus

Prerequisites:
* Autoconf >= 2.63
* CMake

## tcpdump

Prerequisites:
* PCAP (we use v1.3.0)
# ROSE Compiler Framework/Program Optimizations

ROSE provides the following program optimizations and tranformations:
* loop transformation, including loop fusion, fisson, unrolling, blocking, loop interchange, etc.
* inlining
* outlining
* constant folding
* partial redundancy elimination
# ROSE Compiler Framework/Projects

This page serves as a quite guide about what the major directories under rose/projects are:

## Project Overview

Parsing
* pragmaParsing: An example translator using the parsing building blocks provided by ROSE to parse pragmas
Translations:
* autoTuning: a project to use ROSE's parameterized translators to facilitate empirical tuning (or autotuning)
* DataFaultTolerance: a project to use source-to-source translation to make application resilient to memory faults
* extractMPISkeleton: extract MPI communication skeletons
* Fortran_to_C : A Fortran to C language translator
Static Analysis
* compass: a static analysis tool to find errors in applications
Dynamic Analysis
* RTED: runtime error detection using compiler instrumentation of library calls.
Binary Analysis:
* BinaryCloneDetection: detect similarities between binary executables.
* CloneDetection:
Optimizations of high-level abstractions
* arrayOptimization: optimizations based on array abstractions
* autoParallelization: A translator which can automatically insert OpenMP directives into serial code, based on dependence analysis and optionally semantics of abstractions.
Parallel Programming Models:
* mint: a directive based programming model for GPUs
* OpenMP_Translator: the first version of OpenMP implementation using ROSE. Not recommended for production use, kept just as an example.
* UpcTranslation: a preliminarily example project to demonstrate how ROSE can be used to created a UPC compiler

## OpenK

An ongoing project to explore knowledge-driven HPC analysis and optimization. We use the standard and toolchain used by OWL to formally model the concepts and relations in HPC domains, including programs, hardware, analysis and optimization, etc.
See more at the main article OpenK

## Shift Calculus DSL

Developing a scalable domain specific language for stencil computation
* ShiftCalculus

## minitermite

Problem: A student added some new IR nodes into ROSE. She is having trouble to pass make for minitermite
Solution: projects/minitermite/HOWTO_ADD_NEW_SGNODE_VARIANTS
# ROSE Compiler Framework/Software Dependencies
## Goal

https://github.com/rose-compiler/rose/issues/113
Goal of this page is to collect input about the external software dependencies of ROSE: what are they? What to do with them?
The outcome is a good balance among functionality, productivity and maintainability.
We sort the dependent software packages based on the degree of impact they have on ROSE

## EDG

EDG is used to support C and C++. But it is proprietary so we have to maintain and release binaries instead.
We are actively developing Clang to ROSE connection to reduce the dependence on EDG.
TODO: prompt Fortran users that EDG is not required.

## Boost C++ Library

References
* http://stackoverflow.com/questions/1226206/is-there-a-reason-to-not-use-boost
* http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Boost

## JAVA JDK

Why do we need this?
Can we make it optional?

## (g)Fortran

Why do we need this?
* gfortran acts as the backend compiler to support Fortran source to source translation
Can we make it optional?
* if you are not using java via the --without-java flag, FORTRAN support is disabled
* the configuration should prompt users to
** disable Fortran support if gfortran is not available
** install gfortran if Fortran support is desired.

## Testing

TODO: Jenkins should have a few nodes with minimum software packages installed to test ROSE.
# ROSE Compiler Framework/Sandbox

Some common tricks to write things on wikibooks/wikipedia (both are using the mediawiki software).

## How to create a new page

Usually you have to start a new page from an existing wikipage.
Go to the wiki page you want to have a link to the new page you want to create
* click the edit tab the existing page
* at the place you want to have a link to the new page, use [[ROSE_Compiler_Framework/name of the page]].
* If there is already a page with the desired name. It will become a link to the page.
* If not, the link is red so you can click the red link to enter editing model to add content to the page.
Please link the new page to the print version of this wikibook so it can be visible in the print out.
* To edit the print version, go to

## How to do XYZ in wiki?

The best way is to goto en.wikipedia.com and find a page with the output you want. Then pretend to edit the page (by clicking edit) to see the source used to generate the output.
For example, you want to know how C++ syntax highlighting is obtained in wikibook. Go to en.wikipedia.com and find the page for C++. There must be sample code snippet.
Then you pretend to edit it to see the source:
You will see the source code generating the syntax highlighting:

## How to add comments which are only visible to editor, not readers of a page?

Use the HTML comments: for example, the following comment will not show up in the paper rendered. But it is visible to editor to reminder why things are done in certain way.

## Syntax highlighting

Copied from
Can generate the following highlighted code:

## Math formula

You can pretend to edit this section to see how math formula are written.
More resources are at
* http://en.wikipedia.org/wiki/Help:Formula
* http://www.mediawiki.org/wiki/Manual:Math
$\sum _{j=1}^{N}(Si,j)=1$
${\begin{matrix}\log _{2}(n!)&=&\log _{2}(n)+\log _{2}(n-1)+\log _{2}(n-2)+...+\log _{2}(1)\\&&\qquad \ \ \ \ \log _{2}(n)+\log _{2}(n)+\log _{2}(n)+...+\log _{2}(n)\\&&\qquad \ \ \ \ \qquad \ \ \ \ \qquad \ \ \ \ \qquad \ \ \ \ \qquad \ \ \ \ \ \ \ nlog_{2}(n)\end{matrix}}$
${\begin{aligned}\log _{2}(n!)&=\log _{2}(n)+\log _{2}(n-1)+\log _{2}(n-2)+...+\log _{2}(1)\\&<\log _{2}(n)+\log _{2}(n)+\log _{2}(n)+...+\log _{2}(n)\\&=nlog_{2}(n)\end{aligned}}$
${\begin{array}{lcr}z&=&a\\f(x,y,z)&=&x+y+z\end{array}}$
$\operatorname {erfc} (x)={\frac {2}{\sqrt {\pi }}}\int _{x}^{\infty }e^{-t^{2}}\,dt={\frac {e^{-x^{2}}}{x{\sqrt {\pi }}}}\sum _{n=0}^{\infty }(-1)^{n}{\frac {(2n)!}{n!(2x)^{2n}}}$
# ROSE Compiler Framework/ShiftCalculus
## Overview

A March 2015 meeting used projects/ShiftCalculus2 and the testing code is test10 in the makefile.
* https://github.com/rose-compiler/rose-develop/tree/master/projects/ShiftCalculus2
Main source files
* shiftCalculusCompiler.C and .h : the DSL compiler
* dslCodeGeneration.C and .h : the code generator generateStencilCode

## build

The EDG 4.9 and GNU 4.8 are required to support the C++11 that is present in the Shift Calculus DSL.
* C++11 is required for this project. GCC 4.8.1 is recommended to accept "-std=c++11" .
* EDG 4.9 frontend is needed: --enable-edg_version=4.9
Setup environment
* GCC_VERSION=4.8.1 BOOST_VERSION=1_50_0 source /nfs/casc/overture/ROSE/opt/rhel6/x86_64/rose_environment.sh
An example configuration line:
../sourcetree/configure --prefix=/path/to/install --with-boost=/nfs/casc/overture/ROSE/opt/rhel6/x86_64/boost/1_50_0/gcc/4.8.1/ --with-C_OPTIMIZE=-O0 --with-CXX_OPTIMIZE=-O0 --with-ROSE_LONG_MAKE_CHECK_RULE=yes --enable-boost-version-check=false --enable-gcc-version-check=false --enable-edg_version=4.9

## tests

* "make test10" will generate C++ output code with no additional optimization
* "make rose_laplacian_lite_v3_GPU_collapsed.cu" will generate CUDA output code with loop collapsing.
# Structural Biochemistry/Proteins/Posttranslational Modification of Protein

Posttranslation modification is the process by which proteome complexity (the global collection of proteins) is built by diversification at both the mRNA level and after translation of mRNAs into proteins by covalent modification of specific proteins. There are two broad categories of posttranslational modifications. The first is the covalent addition of one of more groups, such as phosphoryl, acetyl, or glycosyl, to one or more of the amino acid side chains in a particular protein. The second is the hydrolytic cleavage of one or more peptide bonds in a protein by enzymes called proteases (protein hydolases). There are more the 200 kinds of posttranslational modifications and almost all of them occur by covalent addition of groups to side chains in thousands of proteins carried out by enzymes. These enzymes are proteins with catalytic activity dedicated to effecting the posttranslational modifications. There are many types of catalytic posttranslations, with about 500 proteases encoded in the human genome and over 500 protein kinases for covalent phosphorylations of proteins. Also, there are nearly 150 protein phosphates opposing and balancing the action of protein kinases. Furthermore, there is a small subset of proteins which undergo automodifications- modifications without the help of ancillary catalysts to effect covalent change.
Scope of Posttranslational Modifications The diversity of posttranslational modifications by the proteome can be plotted on multiple axis. One scope is the number of proteins modified and thus the number of modified proteins produced. These numbers can differ for a given protein. A second and third axis of scope of posttranslational modification is by the type of amino acid side chain modified and also the type of covalent chemical modification introduced by the posttranslational modification enzymes. In posttranslational modification, the chemical reaction is of enzyme catalyzed transfer of an electrophilic fragment of a co-substrate molecule onto a nucleophilic side chain of the protein undergoing modification. The chemical modification occurs when the attacking nucleophilic side chain of the protein transfers the electrophile. Therefore, common sites for posttranslational modifications are side chains of proteins that can potentially act as nucleophiles.
Reversible vs. Irreversible Posttranslational Modifications of Proteins Some posttranslational modifications of proteins are irreversible, due to the nature of the biological function enabled by the modification. The most irreversible modifications are the proteolytic cleavages undergone by all proteins during their life cycles. The removal of N-terminal signal sequences of all proteins passing into the endoplasmic reticulum during the first stage of eukaryotic cell pathways is also irreversible. Also note that some posttranslational modifications are freely reversible in vivo but not in vitro.
Reference: Walsh, Christopher. "Posttranslational Modification of Proteins: Expanding Nature's Inventory." Roberts and Co. (2006): 7-24.
# Structural Biochemistry/Proteins/Myristoylation

Myristoylation is an irreversible, co-translational (during translation) protein modification found in animals, plants, fungi and viruses. In this protein modification a myristoyl group (derived from myristic acid) is covalently attached via an amide bond to the alpha-amino group of an N-terminal amino acid of a nascent polypeptide. It is more common on glycine residues but also occurs on other amino acids. The modification is catalyzed by the enzyme N-myristoyltransferase (NMT), and occurs most commonly on glycine residues exposed during co-translational N-terminal methionine removal. Myristoylation also occurs post-translationally, for example when previously internal glycine residues become exposed by caspase cleavage during apoptosis.
Myristoylation also plays a vital role in membrane targeting and signal transduction in plant responses to environmental stress.

## References

Podell S and Gribskov M. (2004) "Predicting N-terminal myristoylation sites in plant proteins", BMC Genomics, 5.
Zha J, Weiler S, Oh KJ, Wei MC, Korsmeyer SJ (2000) "Posttranslational N-myristoylation of BID as a molecular switch for targeting mitochondria and apoptosis", Science 290.
# Structural Biochemistry/Proteins/Prenylation
## Prenylation

Prenylation, isoprenylation, or lipidation is the addition of hydrophobic molecules to a protein. It is believed that prenyl groups (3-methyl-2-buten-1-yl) facilitate attachment to cell membranes membrane, similar to lipid anchor like the GPI anchor, though direct evidence is missing. Prenyl groups have been shown to be important for protein-protein binding through specialized prenyl-binding domains.
Protein prenylation involves the transfer of either a farnesyl or a geranyl-geranyl moiety to C-terminal cysteine(s) of the target protein. There are three enzymes that carry out prenylation in the cell.
Farnesyltransferase and geranylgeranyltransferase I
Farnesyltransferase and Geranylgeranyltransferase I are very similar proteins. They consist of two subunits, the α-subunit which is common to both enzymes, and the β-subunit whose sequence identity is just 25%. These enzymes recognise the CaaX box at the C-terminus of the target protein. C is the cysteine that is prenylated, a is any aliphatic amino acid, and the identity of X determines which enzyme acts on the protein. Work reported in the journal Genome Biology in 2005 reports refinement of computational detection methods for identification of protein prenylation motifs and establishment of an on-line analysis facility entitled "PrePS".
Proteins that undergo prenylation include Ras, which plays a central role in the development of cancer. This suggests that inhibitors of prenylation enzymes (e.g. farnesyltransferase) may influence tumor growth. Recent work has shown that farnesyltransferase inhibitors (FTIs) also inhibit Rab geranylgeranyltransferase and that the success of such inhibitors in clinical trials may be as much due to effects on Rab prenylation as on Ras prenylation.
Reference:
Sebastian Maurer-Stroh and Frank Eisenhaber (2005). "Refinement and prediction of protein prenylation motifs". Genome Biology.
Taylor J, Reid T, Terry K, Casey P, Beese L (2003). "Structure of mammalian protein geranylgeranyltransferase type-I".