text:
---
layout: post
title: Bioinformatics Project
date: '2021-03-25'
categories: Protocols
tags: [DNAseq2, DNA Methylation]
---

# Bioinformatics Project
Objective: Quantify gene expression of DNMT1, DNMT3a, and TET1 in response to multiple stressors (temperature and pH) over time for two coral species (*Montipora capitata* and *Pocillopora acuta*)

Here is [My Github Repository for this project](https://github.com/erinmags/Bioinformatics-Project) where my RScripts and RMarkdowns can also be referred to!

Here is [a presentation](https://docs.google.com/presentation/d/1fCZTX7qgj2g9UDM6KFihH2sCLY77UQmPr1yyDGtBPYI/edit#slide=id.gbfe0f19a8d_0_26) I made outlining my project

# Uniprot
[Uniprot](https://www.uniprot.org)

Objective: Uniprot is used to obtain a reference genome

* Use the software Uniprot to look for enzymes DNMT1, DNMT3a, and TET1 in the search bar
	* Filter by reviewd
	* Filter by gene name
* Choosing Proteins
	* DNMT1: I chose the mouse data because it was the longest sequence (1,620) out of all the options
	* DNMT3a: I chose the mouse to keep as much consistency as possible, while still considering the length (908)
	* TET1: I chose the human here because there was over 100 base pairs that differed (2,136)
* Add to Basket
* Download as FASTA file uncompressed
* Open in Text Edit or in Terminal using less or nano function to view it

# Blast
Objective: Blast is used to find regions of similarity between biological sequences

* Log into Bluewaves
`ssh -l username`
* Navigate to Putnam Lab home directory
*
```
$ cd /data/putnamlab
$ ls (lists all items in directory)
$ mkdir username (makes directory for yourself)
$ cd usernmae (changes directory to work in your new one)
```

* Make script to run BLAST in Bluewaves

	`$ nano "script_name".sh`

* Insert Header
	* This will give you information on memory, time to run, email, etc.
	* *M. capitata* header:

			#!/bin/bash
			#SBATCH --job-name="Bioinformatics"
			#SBATCH -t 100:00:00
			#SBATCH --export=NONE
			#SBATCH --mai_l-type=BEGIN,END,FAIL
			#SBATCH<EMAIL_ADDRESS>			#SBATCH -D /data/putnamlab/erinmags/

			# echo "START" $(date)

			# module load BLAST+/2.8.1-foss-2018b

			# makeblastdb -in /data/putnamlab/erinmags/Mcapitata_holotranscriptome_data_v1/Montipora_capitata_v1_unalinged_transcripts_coding.pep.faa -input_type fasta -dbtype prot -title Mcap.protein -parse_seqids -out Mcap.protein.blast.db

			# blastp -query Enzyme_Names.fasta -db Mcap.protein.blast.db -outfmt 6 -max_target_seqs 5 -evalue 1e-05 -out M.cap.protein.blast.out

			# echo "STOP" $(date)

	* *P. acuta* header:

		```
			#!/bin/bash
		#SBATCH --job-name="Bioinformatics"
		#SBATCH -t 100:00:00
		#SBATCH --export=NONE
		#SBATCH --mail-type=BEGIN,END,FAIL
		#SBATCH<EMAIL_ADDRESS>		#SBATCH -D /data/putnamlab/erinmags/

		echo "START" $(date)

		module load BLAST+/2.8.1-foss-2018b

		makeblastdb -in /data/putnamlab/erinmags/Pacuta_holotranscriptome_data_v1/Pocillopora_acuta_v1_gene_models_coding.pep.faa  -input_type fasta -dbtype prot -title Pacuta.protein.new -parse_seqids -out Pacuta.protein.new.blast.db

		blastp -query Enzyme_Names.fasta -db Pacuta.protein.new.blast.db -outfmt 6 -max_target_seqs 5 -evalue 1e-05 -out Pacuta.protein.new.blast.out

		echo "STOP" $(date)
	```

* Next, I created a database from *M. capitata* and *P. acuta* predicted protein fasta files
* This will search all sequences in the reference against the query file on the computer
	* The query is the file from Uniprot that we downloaded before
* We need to double check that the script we made in Terminal is executable
	* To do this, type `$ chmod u+wrx blast.sh`
	* If the script in question is green, it is executable!
* Input sequences (the files from Uniprot)
	`$ nano Enzyme_Names.fasta`
* Now, run the script
	* `$ sbatch blast.sh`
		* You can use the command `$ squeue` to show you the job on Terminal
		* To view the output, use the command `$ less filename`

# Uploading necessary files to bluewaves from local computer
* Open Terminal
* Here, I uploaded the Coral_Holobiont_Data
	* `$ scp -r<EMAIL_ADDRESS>path to file on local computer (space) path on bluewaves`
		* Example: `scp -r<EMAIL_ADDRESS>/Users/erinmagliano/Desktop/Putnam-lab/Bioinformatics/Coral_Holobiont_Data /data/putnamlab/erinmags`
			* Tip: Instead of typing out the entire path from your local computer, you can drag the file of interest into the Terminal window!
* Uploading Metadata file
	* `$ scp -r<EMAIL_ADDRESS>path to file on local computer (space) path on bluewaves`
		* Example: `scp -r<EMAIL_ADDRESS>/Users/erinmagliano/Desktop/Putnam-lab/Bioinformatics/Master_Fragment /data/putnamlab/erinmags`
* Unpacking the files within the Coral Holobiont folder
	* Login to bluewaves
	* cd into the directory where the file is
	* To untar the file:
		* ` $ tar -xzf Coral_Holobiont_Data/Mcapitata_holotranscriptome_data_v1.tar.gz`
		* ` $ tar -xzf Coral_Holobiont_Data/Pacuta_holotranscriptome_data_v!.tar.gz`

# Testing Scripts in R with First 10,000 Counts
Note: In its entirety, the counts file is too big to manipulate locally, so we had to run it on bluewaves. We want to subset the counts file so that we can interactively write and test our script in RStudio (locally) before running it on the full counts file in bluewaves.

Here is [My script for *M. capitata* testing the script with the first 10,000 counts](https://github.com/erinmags/Bioinformatics-Project/blob/main/M.cap_Bioinformatics_R_Markdown.Rmd)

Here is [My script for *P. acuta* testing the script with the first 10,000 counts](https://github.com/erinmags/Bioinformatics-Project/blob/main/Pacuta_Bioinformatics_Markdown.Rmd)

* Open Terminal and navigate to file with read count file in it
	* In order to subset the first 10,000 counts, use the command `head -10000 Mcap_RSEM_readcounts>First_10000_Counts` and create a new file with only the first 10,000 rows from the Mcap_RSEM_readcounts file
	* Repeat previous step for P.acuta RSEM read counts
		* We are taking the first 10,000 counts here in order to test the script in RStudio, since the gene count matrix as a whole is too big to run on the local computer
	* Use the command `$ ls` to check if the file is there
* Open RStudio
	* First, we need to set up the library

	```
	library("RColorBrewer")
	library("ggplot2")
	library("tidyverse")
	library("ggpubr")
	library("DESeq2")
	library("dplyr")
	library("Rmisc")
	library("lmerTest")
	library("lme4")
	library("car")
	```
	* 	We also need to upload and adjust our data for the gene count matrix
	*  Uploading data for *M. capitata*:

	```
	#Uploading the Master Fragment with all the information regarding our samples
	Master_Fragment <- read.csv("Master_Fragment.csv")
	#Importing data and telling it to set gene IDs as a row name instead of column
	First_10000_Counts <- read.delim2("Coral_Holobiont_Data/Mcapitata_holotranscriptome_data_v1/First_10000_Counts",row.names = "Name")
	```
	* We use the function read_delim2() because it the file is in a tab-deliminaed format
		* Here, we ran into a problem - the gene names in the read_count file were different then the gene names in the BLAST file we generated. Therefore, we needed to run BLAST again to generate the correct gene names. The file above is the file we ended up using.
	* Uploading data for *P. acuta*

	```
	#Importing Data
	Master_Fragment2 <- read.csv("Master_Fragment.csv")
	#Importing data and telling it to set gene IDs as a row name instead of column
	First_10000_Counts2 <- read.delim2("Coral_Holobiont_Data/	Pacuta_holotranscriptome_data_v1/First_10000_Counts_Pacuta",row.names = "Name")
	#Levels for Timepoint
	factor(Master_Fragment2$Timepoint,levels=c("0 hour","1 hour","6 hour","12 hour","Day 1","30 hour","Day 2","1 week","2 week","4 week","6 week","8 week","12 week","16 week"))
	#Replacing Column Names
	New.cols <- gsub("Pacuta_[A-Z][A-Z][A-Z][A-Z]_TP[0-9][0-9]_","X",colnames(First_10000_Counts2))
	New.cols <- gsub("Pacuta_[A-Z][A-Z][A-Z][A-Z]_TP[0-9]_","X",New.cols)
	#Adding them back
	colnames(First_10000_Counts2) <- New.cols
	```

	* At this point I removed the part of the column name so it was only Fragment ID
		* To do this, I used the gsub() function in R, which removes patterns or replaces patterns with other patterns
	* Adding row names for *M. capitata*

	```
	#Add Row Names
	New.rows <- paste(sep = "","X",Master_Fragment$Plug_ID)
	rownames(Master_Fragment) <- New.rows
	#Removing NA rows for Master Fragment Timepoint because they correspond to 	bleaching samples
	Master_Fragment <- Master_Fragment[!is.na(Master_Fragment$Timepoint), ]
	#Levels for Timepoint
	factor(Master_Fragment$Timepoint,levels=c("0 hour","1 hour","6 hour","12 hour","Day 1","30 hour","Day 2","1 week","2 week","4 week","6 week","8 week","12 week","16 week"))
	#Rename Dataset as M.cap and put rows in correct order
	Mcap.Fragment <- Master_Fragment[colnames(First_10000_Counts),]
	```

	* Adding row names for *P. acuta*

```
#Add Row Names
New.rows <- paste(sep = "","X",Master_Fragment2$Plug_ID)
rownames(Master_Fragment2) <- New.rows

#Rename Dataset as Pacuta and put rows in correct order
Pacuta.Fragment <- Master_Fragment2[colnames(First_10000_Counts2),]
```

#Constructing DESeq2 Dataset
Objective: The purpose of DESeq2 is to take the raw counts from RNAseq and normalize them for visualization.

* *M. capitata* DESeq2 Dataset Construction:

```
Mcap.Fragment$Treatment <- factor(Mcap.Fragment$Treatment, levels = c("ATAC","ATHC","HTAC","HTHC"))
#Check Levels
str(Mcap.Fragment$Treatment)
#Saving First_10000_Counts with gene names as a different dataset
First_10000_Counts_gene <- rownames(First_10000_Counts)
#Converting Decimals into Integars
First_10000_Counts <- data.frame(lapply(First_10000_Counts, as.numeric), stringsAsFactors = FALSE)
#Set Design of DESeq2 Data
mdds <- DESeqDataSetFromMatrix(countData = round(First_10000_Counts),colData = Mcap.Fragment,design = ~Treatment)
```

* *P. acuta* DESeq2 Dataset Construction:

```
Pacuta.Fragment$Treatment <- factor(Pacuta.Fragment$Treatment, levels = c("ATAC","ATHC","HTAC","HTHC"))
#Check Levels
str(Pacuta.Fragment$Treatment)
#Saving First_10000_Counts with gene names as a different dataset
First_10000_Counts_gene_p <- rownames(First_10000_Counts2)
#Converting Decimals into Integars
First_10000_Counts2 <- data.frame(lapply(First_10000_Counts2, as.numeric), stringsAsFactors = FALSE)
#Set Design of DESeq2 Data
pdds <- DESeqDataSetFromMatrix(countData = round(First_10000_Counts2),colData = Pacuta.Fragment,design = ~Treatment)
```

* At this point, I tested the DESeq2 dataset in R Studio. However it is a large dataset that will need to be run in Bluewaves.
* The variance stabilizing transformation has an assumption of 4, so we need to check that all the values are less than that or the data will not get normalized.
* *M. capitata* test:

```
SF.mdds <- estimateSizeFactors(mdds)
print(sizeFactors(SF.mdds)) #Check that values are less than 4
#Variance Stabilizing Transformation
gvst_mdds<- vst(mdds, blind=TRUE)
vst_transformed_counts <- data.frame(assay(gvst_mdds))
head(assay(gvst_mdds), 3)
#Adding column to vst_transformed_counts
rownames(vst_transformed_counts) <- First_10000_Counts_gene
```

* *P. acuta* test:

```
SF.pdds <- estimateSizeFactors(pdds)
print(sizeFactors(SF.pdds)) #Check that values are less than 4
#Variance Stabilizing Transformation
gvst_pdds<- vst(pdds, blind=TRUE)
P_vst_transformed_counts <- data.frame(assay(gvst_pdds))
head(assay(gvst_pdds), 3)
#Adding column to vst_transformed_counts
rownames(P_vst_transformed_counts) <- First_10000_Counts_gene_p
```

* At this point I ran the script in Bluewaves for the entire dataset. Remember, the above steps were testing the dataset for the first 10,000 counts!

Here is my [M. cap script for the entire dataset that was done in Bluewaves](https://github.com/erinmags/Bioinformatics-Project/blob/main/M.cap.Bluewaves.Script.R)

Here is my [P. acuta script for the entire dataset that was done in Bluewaves](https://github.com/erinmags/Bioinformatics-Project/blob/main/P.acuta.Bluewaves.Script.R)

#Subsetting for Genes of Interest
* In this step, I merged the variance stabilizing transformed (VST) counts with the output we got from running BLAST.
* For reference, here is the [BLAST output for M. cap](https://github.com/erinmags/Bioinformatics-Project/blob/main/M.cap.protein.new.blast.out) and the [BLAST output for P. acuta](https://github.com/erinmags/Bioinformatics-Project/blob/main/Pacuta.protein.new.blast.out)
* Subsetting for *M. capitata*

```
#Adding column names to the blast output
m.cap.blast <- read.table(file="M.cap.protein.new.blast.out", col.names=c("Enzyme_Name","Gene_ID","pident", "length", "mismatch", "gapopen", "qstart", "qend", "sstart", "send", "evalue", "bitscore"))
as.factor(m.cap.blast$Enzyme_Name)
#Upload new counts matrix
blast_vst_transformed_counts <- read.csv("blast_vst_transformed_counts.csv")
#Removing column
blast_vst_transformed_counts <- select(blast_vst_transformed_counts, -X)
#Extracting gene names of interest- BLUEWAVES
blast_vst_transformed_counts <- as.data.frame(blast_vst_transformed_counts)
```

* Subsetting for *P. acuta*

```
#Adding column names to the blast output
Pacuta.blast.out <- read.table(file="Pacuta.protein.new.blast.out", col.names=c("Enzyme_Name","Gene_ID","pident", "length", "mismatch", "gapopen", "qstart", "qend", "sstart", "send", "evalue", "bitscore"))
as.factor(Pacuta.blast.out$Enzyme_Name)
#Adding gene ID column to gene count matrix
P_vst_transformed_counts$Gene_ID <- rownames(P_vst_transformed_counts)
#Extracting gene names of interest- BLUEWAVES
P_vst_transformed_counts <- as.data.frame(P_vst_transformed_counts)
P_vst_transformed_counts <- P_vst_transformed_counts[which(rownames(P_vst_transformed_counts) %in% Pacuta.blast.out$Gene_ID),]
#Combining blast results with gene count matrix
P_vst_transformed_counts <- merge(P_vst_transformed_counts, Pacuta.blast.out[,c(1,2)], by="Gene_ID")
#Upload new count matrix
blast_pacuta_vst_transformed_counts <- read.csv("blast_pacuta_vst_transformed_counts.csv")
```

#Obtaining Means and Standard Errors
Objective: These will be used in the expression plots

* At this point, the dataset I am using is the genes of interest from the BLAST output
	* Here is the [dataset for *M. capitata*](https://github.com/erinmags/Bioinformatics-Project/blob/main/blast_vst_transformed_counts.csv)
	* Here is the [dataset for *P. acuta*](https://github.com/erinmags/Bioinformatics-Project/blob/main/blast_pacuta_vst_transformed_counts.csv)

* Means and standard errors for *M. capitata*

```
#Obtaining means and standard errors
#Changing the format of the dataframe so we can obtain means and standard deviation
blast_vst_transformed_counts <- pivot_longer(blast_vst_transformed_counts, 2:133, values_to = "exp" )
#Adding new column for Sample_ID
Mcap.Fragment$Sample_ID <- rownames(Mcap.Fragment)
#Changing "name" column to sample ID
colnames(blast_vst_transformed_counts)[3] <- "Sample_ID"
#Subsetting Mcap.Frag for columns I want to merge
Mcap.Fragment_subset <- subset(Mcap.Fragment, select = c("Tank","Treatment","Temperature","CO2","Timepoint","Sample_ID"))
#Chaning "Day 1" in Master Frag to 30 hour
filter(Mcap.Fragment, Plug_ID == "2153")
Mcap.Fragment["X2153", "Timepoint"] <- "30 hour"
filter(Mcap.Fragment, Plug_ID == "2153")
#Merging
blast_vst_transformed_counts <- merge(blast_vst_transformed_counts, Mcap.Fragment_subset, by="Sample_ID")
#Finding average of counts
mean.counts <- summarySE(blast_vst_transformed_counts, measurevar="exp", groupvars=c("Timepoint", "Treatment", "Temperature", "CO2","Enzyme_Name","Gene_ID"))
#Removing Day 1 Timepoint becasue it was replaced with 30 hours
mean.counts <- filter(mean.counts,Timepoint!="Day 1")
#Reordering Timepoints
mean.counts$Timepoint <- factor(mean.counts$Timepoint, levels=c("0 hour","6 hour","12 hour","30 hour","1 week","2 week","4 week","6 week","8 week", "12 week","16 week"))
```

* Means and standard errors for *P. acuta*

```
#Obtaining means and standard deviation
#Removing column
blast_pacuta_vst_transformed_counts <- select(blast_pacuta_vst_transformed_counts, -X)
#Changing the format of the dataframe so we can obtain means and standard deviation
blast_pacuta_vst_transformed_counts <- pivot_longer(blast_pacuta_vst_transformed_counts, 2:120, values_to = "exp" )
#Adding new column for Sample_ID
Pacuta.Fragment$Sample_ID <- rownames(Pacuta.Fragment)
#Changing "name" column to sample ID
colnames(blast_pacuta_vst_transformed_counts)[3] <- "Sample_ID"
#Subsetting Mcap.Frag for columns I want to merge
Pacuta.Fragment_subset <- subset(Pacuta.Fragment, select = c("Tank","Treatment","Temperature","CO2","Timepoint","Sample_ID"))
#Merging
blast_pacuta_vst_transformed_counts <- merge(blast_pacuta_vst_transformed_counts, Pacuta.Fragment_subset, by="Sample_ID")
#Finding average of counts
mean.counts.p <- summarySE(blast_pacuta_vst_transformed_counts, measurevar="exp", groupvars=c("Timepoint", "Treatment", "Temperature", "CO2","Enzyme_Name","Gene_ID"))
#Reordering Timepoints
mean.counts.p$Timepoint <- factor(mean.counts.p$Timepoint, levels=c("0 hour","6 hour","12 hour","30 hour","1 week","2 week","4 week","6 week","8 week", "12 week","16 week"))
```

#Subsetting for the Highest Hits
* Initially after following all the steps above, I made my expression plots for both *M. capitata* and *P. acuta* for DNMT1, DNMT3a, and TET1 for each treatment over time. However, these plots were extremely hard to read since they had a ton of variation. Ultimately, I decided to take just the highest hits for each gene and plot those instead in order to lessen the amount of variation.
* When looking for the genes with the highest hits, one should take that with the lowest e-value and the highest bitscore.

* Subsetting for highest *M. cap* hits

```
#DNMT1 M.cap gene with highest hit
Keep_m.cap_1 <- subset(mean.counts,Gene_ID == "Montipora_capitata_TRINITY_DN27146_c0_g1_i6.p1")
#DNMT3a M.cap gene with highest hit
Keep_m.cap_2 <- subset(mean.counts,Gene_ID == "Montipora_capitata_TRINITY_DN265265_c0_g1_i4.p1")
#TET M.cap gene with highest hit
Keep_m.cap_3 <- subset(mean.counts,Gene_ID == "Montipora_capitata_TRINITY_DN423918_c0_g2_i1.p1")
#Merging DNMT1, DNMT3a, and TET M.cap highest hit together
Keep_m.cap <- rbind(Keep_m.cap_1,Keep_m.cap_2,Keep_m.cap_3)
```

* Subsetting for highest *P. acuta* hits

```
#DNMT1 P.acuta gene with highest hit
Keep_p.acuta_1 <- subset(mean.counts.p,Gene_ID == "Pocillopora_acuta_PredGene_TCONS_00045317.p1")
#DNMT3a P.acuta gene with highest hit
Keep_p.acuta_2 <- subset(mean.counts.p,Gene_ID == "Pocillopora_acuta_PredGene_TCONS_00029688.p1")
#TET P.acuta gene with highest hit
Keep_p.acuta_3 <- subset(mean.counts.p,Gene_ID == "Pocillopora_acuta_PredGene_TCONS_00033908.p1")
#Merging DNMT1, DNMT3a, and TET P.acuta highest hit together
Keep_p.acuta <- rbind(Keep_p.acuta_1,Keep_p.acuta_2,Keep_p.acuta_3)
```
#Expression Plots
* Now it is finally time to make our expression plots! Remember, the goal is to see the expression of these genes in response to treatment (temperature and pCO2) over time.
* The four treatments are as follows:
	* ATAC = Ambient Temperature, Ambient CO2
	* ATHC = Ambient Temperature, High CO2
	* HTAC = High Temperature, Ambient CO2
	* HTHC = High Temperature, High CO2

* Plotting *M. capitata*
* To see this plot, click [here!](https://github.com/erinmags/Bioinformatics-Project/blob/main/M.cap.plot.jpeg)

```
#Designating colors for treatments
cols <- c("lightblue", "blue", "pink", "red")
#Plotting
Mcap_plot_hits <- ggplot(Keep_m.cap, aes(x=Timepoint, y = exp, group = Treatment, color = Treatment)) +
  geom_line() + geom_point() +
  facet_grid(~ Enzyme_Name, scales = "free") +
  geom_errorbar(aes(ymin=exp-se, ymax=exp+se), width=.2) +
  scale_color_manual(values = cols) +
  xlab("Timepoint") +
  theme_bw() +
  #ylab(expression(AFDW ~(mg ~cm^-2))) +
  ggtitle("Enzyme Expression M.capitata") +
  theme(legend.position = "left") +
  geom_vline(xintercept = c(9.2), colour="black", linetype="dotted") +
  #theme(plot.title = element_text(face = ‘bold.italic’, size = 12, hjust = 0)) +
  theme(axis.text.x = element_text(angle = 60, vjust = 1.2, hjust = 1.3));Mcap_plot_hits #Set the text angle

ggsave(file="M.cap.plot.jpeg", Mcap_plot_hits, width = 11, height = 6, units = c("in"))
```

* Plotting *P. acuta*
* * To see this plot, click [here!](https://github.com/erinmags/Bioinformatics-Project/blob/main/P.acuta.plot.jpeg)

```
#Designating colors for treatments
cols <- c("lightblue", "blue", "pink", "red")
#Plotting
Pacuta_hits_plot <- ggplot(Keep_p.acuta, aes(x=Timepoint, y = exp, group = Treatment, color = Treatment)) +
  geom_line() + geom_point() +
  facet_grid(~ Enzyme_Name, scales = "free") +
  geom_errorbar(aes(ymin=exp-se, ymax=exp+se), width=.2) +
  scale_color_manual(values = cols) +
  xlab("Timepoint") +
  theme_bw() +
  #ylab(expression(AFDW ~(mg ~cm^-2))) +
  ggtitle("Enzyme Expression P.acuta") +
  theme(legend.position = "left") +
  geom_vline(xintercept = c(9.2), colour="black", linetype="dotted") +
  #theme(plot.title = element_text(face = ‘bold.italic’, size = 12, hjust = 0)) +
  theme(axis.text.x = element_text(angle = 60, vjust = 1.2, hjust = 1.3));Pacuta_hits_plot #Set the text angle

ggsave(file="P.acuta.plot.jpeg", Pacuta_hits_plot, width = 11, height = 6, units = c("in"))
```

#Statistical Analysis
* Now, it is time to see if we got any significance within the plots. To do this, I used Linear Mixed Models and Type III ANOVA tests. In order to use these, we have to make sure they meet the assumptions, so I also made Residual Q-Q Plots and tested for Homogeneity of the Variances.
* Statistical tests for *M. capitata*

```
#New dataset
DNMT1_m <- blast_vst_transformed_counts %>% subset(Gene_ID == "Montipora_capitata_TRINITY_DN27146_c0_g1_i6.p1")
#DNMT1
model_DNMT1_m.cap <- lmer(exp ~ Timepoint*Temperature*CO2 + (1|Tank), na.action=na.omit, data=DNMT1_m)
#Residual test
qqPlot(residuals(model_DNMT1_m.cap)) # qqplot and histogram
hist(residuals(model_DNMT1_m.cap))
#Levens test
leveneTest(DNMT1_m$exp ~ DNMT1_m$Timepoint*DNMT1_m$Temperature*DNMT1_m$CO2)
#ANOVA
Anova(model_DNMT1_m.cap, ddf="lme4", type='III')
summary(model_DNMT1_m.cap)
#New dataset
DNMT3a_m <- blast_vst_transformed_counts %>% subset(Gene_ID == "Montipora_capitata_TRINITY_DN265265_c0_g1_i4.p1")
#DNMT3a
model_DNMT3a_m.cap <- lmer(exp ~ Timepoint*Temperature*CO2 + (1|Tank), na.action=na.omit, data=DNMT3a_m)
#Residual test
qqPlot(residuals(model_DNMT3a_m.cap)) # qqplot and histogram
hist(residuals(model_DNMT3a_m.cap))
#Levens test
leveneTest(DNMT3a_m$exp ~ DNMT3a_m$Timepoint*DNMT3a_m$Temperature*DNMT3a_m$CO2)
#ANOVA
Anova(model_DNMT3a_m.cap, ddf="lme4", type='III')
summary(model_DNMT3a_m.cap)
#New dataset
TET1_m <- blast_vst_transformed_counts %>% subset(Gene_ID == "Montipora_capitata_TRINITY_DN423918_c0_g2_i1.p1")
#TET
model_TET_m.cap <- lmer(exp ~ Timepoint*Temperature*CO2 + (1|Tank), na.action=na.omit, data=TET1_m)
#Residual test
qqPlot(residuals(model_TET_m.cap)) # qqplot and histogram
hist(residuals(model_TET_m.cap))
#Levens test
leveneTest(TET1_m$exp ~ TET1_m$Timepoint*TET1_m$Temperature*TET1_m$CO2)
#ANOVA
Anova(model_TET_m.cap, ddf="lme4", type='III')
summary(model_TET_m.cap)
```

* Statistical tests for *P. acuta*

```
#New dataset
DNMT1_p <- blast_pacuta_vst_transformed_counts %>% subset(Gene_ID == "Pocillopora_acuta_PredGene_TCONS_00045317.p1")
#DNMT1
model_DNMT1_p.acuta <- lmer(exp ~ Timepoint*Temperature*CO2 + (1|Tank), na.action=na.omit, data=DNMT1_p)
#Residual test
qqPlot(residuals(model_DNMT1_p.acuta)) # qqplot and histogram
hist(residuals(model_DNMT1_p.acuta))
#Levens test
leveneTest(DNMT1_p$exp ~ DNMT1_p$Timepoint*DNMT1_p$Temperature*DNMT1_p$CO2)
#ANOVA
Anova(model_DNMT1_p.acuta, ddf="lme4", type='III')
summary(model_DNMT1_p.acuta)
#New dataset
DNMT3a_p <- blast_pacuta_vst_transformed_counts %>% subset(Gene_ID == "Pocillopora_acuta_PredGene_TCONS_00045317.p1")
#DNMT3a
model_DNMT3a_p.acuta <- lmer(exp ~ Timepoint*Temperature*CO2 + (1|Tank), na.action=na.omit, data=DNMT3a_p)
#Residual test
qqPlot(residuals(model_DNMT3a_p.acuta)) # qqplot and histogram
hist(residuals(model_DNMT3a_p.acuta))
#Levens test
leveneTest(DNMT3a_p$exp ~ DNMT3a_p$Timepoint*DNMT3a_p$Temperature*DNMT3a_p$CO2)
#ANOVA
Anova(model_DNMT3a_p.acuta, ddf="lme4", type='III')
summary(model_DNMT3a_p.acuta)
#New dataset
TET_p <- blast_pacuta_vst_transformed_counts %>% subset(Gene_ID == "Pocillopora_acuta_PredGene_TCONS_00033908.p1")
#TET1
model_TET_p.acuta <- lmer(exp ~ Timepoint*Temperature*CO2 + (1|Tank), na.action=na.omit, data=TET_p)
#Residual test
qqPlot(residuals(model_TET_p.acuta)) # qqplot and histogram
hist(residuals(model_TET_p.acuta))
#Levens test
leveneTest(TET_p$exp ~ TET_p$Timepoint*TET_p$Temperature*TET_p$CO2)
#ANOVA
Anova(model_TET_p.acuta, ddf="lme4", type='III')
summary(model_TET_p.acuta)
```


text:
---
title: "SRSA Summer Race Series - Race 5"
contentType: news
date: "2013-10-03T21:03"
---

The sixth and final round of the Snowsport South (SRSA) 2013 race series was held at Snowtrax on
Saturday 28th September. Full results are available on their website.

##### Race day
* Mark Oliver was 2nd in Male 50+ category.

Honorable mention for Nigel Hilliard, who was 4th in the Male 50+ category.

##### Overall series results
* Charlotte Hilliard was 3rd overall in the Female 13-14 category.
* Mark Oliver was 2nd overall in the Male 50+ category

license: MIT

repository: domwakeling/bowles-website

branch_name: refs/heads/master

extension: md

gha_language: JavaScript

gha_license_id: MIT

license_type: permissive

repo_name: domwakeling/bowles-website


text:
# True or false quiz app

This work in progress is a basic quiz application built with [flask](http://flask.pocoo.org) and [React](https://facebook.github.io/react/). The purpose of this project is to give myself an introduction into building apps with react js after having a read through the [docs](https://facebook.github.io/react/docs/hello-world.html).

## Deployment
The application is deployed with Heroku, please go and [check it out](https://react-quizzer.herokuapp.com)!

## TODOs
* Leaderboard score submission not working on Safari
* Optimise for mobile devices
* Remove hard coded facts and find a better sources

## Built With

* [Python](http://www.python.org/) - The progamming language used.
* [React](https://facebook.github.io/react/) - The JavaScript library
* [Flask](http://flask.pocoo.org) - The web framework used.
* [Postgres](https://www.postgresql.org) - The Database system implemented.

## Authors
* **Will Elson** - [GitHub](https://github.com/willelson) -<EMAIL_ADDRESS>
See also the list of [contributors](https://github.com/willelson/react-quiz/contributors) who participated in this project.

## License

This project is licensed under the MIT License

repository: willelson/react-quiz

repo_name: willelson/react-quiz


text:
[![made-with-python](https://img.shields.io/badge/Python%20Version-3.6%2B-informational?style=flat-square)](https://www.python.org/) [![Apache license](https://img.shields.io/github/license/madeddy/RpaKit?label=License&style=flat-square)](https://github.com/madeddy/RpaKit/blob/master/LICENSE) [![Generic badge](https://img.shields.io/badge/RpaKit_0.36.2_alpha-development-orange.svg?style=flat-square)](https://github.com/madeddy/RpaKit) [![RpaKit issues](https://img.shields.io/github/issues/madeddy/RpaKit?label=Issues&style=flat-square)](https://github.com/madeddy/RpaKit)
<!-- []([![HitCount](http://hits.dwyl.io/madeddy/RpaKit.svg)](http://hits.dwyl.io/madeddy/RpaKit))

Github automatic version linking from shield.io is with release/tag possible
-->
# RPA Kit
RPA Kit is a small application for decompressing RenPy archives.

It takes as input a archive file or a directory, which is then searched for legit
archives, and unpacks the content of them in a directory of choice.
Its also possible to read-only listing of the content or testing if the given archives
format type supported is.

## Usage
### Command line parameter overview
```
rpakit [-e|-l|-t] [-o OUTPUT] [--verbose] [-version] [-h, --help] Target

positional parameters:
  Target                Directory path to search OR path of a RPA file to work on.

tasks:
  -e, --expand          Unpacks all stored files.
  -l, --list            Gives a listing of all stored files.
  -t, --test            Tests if archive(s) are a known format.
  -s, --simulate        Simulates the expand process.

optional parameters:
  -o, --outdir OUTPUT   Extracts to the given path instead of standard.
  --verbose             Amount of info output. 0:none, 2:much, default:1

  --version             Shows version information
  -h, --help            Print this help
```

### Example CLI usage

`rpa_kit.py -e /home/{USERNAME}/otherdir/archive.rpa`
Will extract every file from archive into the default output directory, making
subdirectories when necessary.

`rpa_kit.py -e -o unpacked /home/{USERNAME}/somedir/search_here`
Searches RenPy archives in this directory and uncompresses them in the subdir
'unpacked'.

`rpa_kit.py -t c:/Users/{username}/my_folder/A123.rpa`
This will test the given archive for his format and if valide prints it out.

`rpa_kit.py -l -verbose 2 c:/Users/{username}/game_dir/blub8/`
Searches for RenPy archives in this directory and lists their file content in the
console. The verboseness was also set to highest level (tell everything).

### API

>The API is possible not final!

To provide the functionality of _**Rpa Kit**_ in other projects, the programs classes
can very easily included. Besides the code just for CLI use, the core functionality is
organized in four classes in diamond inheritance.
Overview of this classes:

```python
class RkMain(RkPathWork, RkDepotWork):
    """Main class to process args and executing the related methods."""

    def __init__(self, inpath, outdir=None, verbose=None, **kwargs):
```

* `inpath`: _**str or pathlike, required**_
    The archive file-path to open or a directory path with archives.
    Absolute paths preferred.

* `outdir`: _**str or pathlike, optional**_
    Sets the name of the output directory. If _None_ the standard is used.

* `verbose`: _**int, optional**_
    Print info about what we are doing. Values: 0-2; Defaults to 1

* `**kwargs`
  - `task`: _**str, required**_
    Sets the wanted task. Possible arguments are _exp_ (expand),
    _lst_ (listing), _tst_(testing), _sim_(simulate)

```python
class RkDepotWork(RkCommon):
    """
    This class is the apps core for analyzing, testing and unpacking/decoding RPA
    files. All needet inputs (depot, output path) are internaly providet.
    """
```
This class holds also two important dicts with the informations about
the RPA formats. Here can be easily additional formats configured.
<!-- `_rpaformats = {"header":{'rpaid': ''
                          'desc': ''
                          'alias': ''}}`

`_rpaspecs = {{}}` -->

```python
class RkPathwork(RkCommon):
    """
    Support class for RPA Kit's path related tasks. Needet inputs (file-/dir path)
    are internaly providet. If input is a dir it searches there for archives,
    checks and filters them and puts them in a list.
    A archiv as input skips the search part.
    """
```
If a advanced enough user does the path preparations in some other way/place and
provides the archives itself to the other classes this one could even be spared.

```python
class RkCommon:
    """
    "Rpa Kit Common" provides some shared methods and variables for the other
    classes.
    """
```

<!-- ```python
rkm = RKmain(inpath, outdir=None, verbose=None, **kwargs)
rkm.rk_control()
``` -->

### Motivation - _Why another RPA unpacker?_
This began in 2017 with a few lines of code and as another learning experience in Python
coding and to understand some more about RenPy internals. Basicly i extended _rpatool_
with some extras.

Over time i hit more walls with the codebase and the available apps for RPA work where of
limited usability to me. Unmaintained state, cumbersome extensibility and not working
functionality increasingly dissatisfied me.
Some whishes where:
- feeding it simply a directory with rpa files instead a single file
- support for more rpa formats
- easy extensibility for new rpa formats
- additional info output

Fall 2019 i began to do serious changes and extensions on _rpatools_ api. From there it
got fast out of control and i ended up with a completly rewritten app. Hopefully also
of use to other people.

## Legal
### License

__RPA Kit__ is licensed under Apache-2.0. See the [LICENSE](LICENSE) file for more details.

### Disclaimer

This program is intended for people who have the legal rights or the consent of
the authors to access or decompress the target files. Any illegal or otherwise
unindented usage of this software is highly discouraged and has here no support.

### Credits

This software was developed with some orientation on [RenPy's](https://github.com/renpy/renpy) and [rpatool's](https://github.com/shizmob/rpatool) code for
the work with RPA files.
Credits for the development of the RenPy archive format belong to the contributors of
the RenPy project.

repository: madeddy/RpaKit

repo_name: madeddy/RpaKit


text:
# NewsMaster

Get top news based on content relevancy in 5 categories(Top Stories, Entertainment, Technology, Business, Health)

![business news](https://github.com/msdeep14/NewsMaster/blob/master/screenshots/business-news.png)

## Project Development

The project is developed in Python-Django framework, you can read complete implementation of project in documentation folder.

## Basic Idea

  1. Fetch news of various sources from https://newsapi.org/
  2. Categorize the news using naive bayes classifier(technology, entertainment, business, health)
  3. Sort the news according to content of news headlines and display on web browser

  Content Selection Factors:
  1. Age of article(publication date)
  2. Source Quality
  3. Text Quality
  4. Sentiment Score

## Machine Learning algorithms

Implemented training model using Naive bayes, SVM and deep learning model using keras for the dataset, got highest accuracy for naive bayes classifier(0.89)

## Dataset

  1. [News headlines of India](https://www.kaggle.com/therohk/india-headlines-news-dataset)
  2. [News Aggregator Dataset](https://www.kaggle.com/uciml/news-aggregator-dataset)


text:
# LowLevelLogging

The LLL library provides a set of logging functions (macros) for use in mostly
embedded C development that allow fine-grained selection of active logging
messages at compile time. In each C file it allows the use of 4 individually
selectable logging levels in 4 categories - debug, info, warning, error.

## Using the logging functions

To use the logging functions the C file needs to define the loglevel and module
name. Commonly the following setup is used:
```
#include "loglevels.h"
#define __MODUUL__ "module_name"
#define __LOG_LEVEL__ ( LOG_LEVEL_filename & BASE_LOG_LEVEL )
#include "log.h"
```

Loglevels are set in a project-specific loglevels.h file, the file-specific
loglevel is named LOG_LEVEL_filename, where filename is the name of the file
without the .c extension. The __MODUUL__ is a short name for the file, it should
be relatively unique and recognizable, 4-6 characters usually. If __MODUUL__ is
not defined, the name of the file is used, but this is usually rather long and
therefore inefficient or trunkated (depending on configuration). Additionally
a global BASE_LOG_LEVEL is defined that allows filtering based on the 4x4 log
levels.

Newlines are added automatically by all logging functions.

## Log level
The severity argument of logging functions sets the log level of the message:
```
LOG_DEBUG4
LOG_DEBUG3
LOG_DEBUG2
LOG_DEBUG1

LOG_INFO4
LOG_INFO3
LOG_INFO2
LOG_INFO1

LOG_WARN4
LOG_WARN3
LOG_WARN2
LOG_WARN1

LOG_ERR4
LOG_ERR3
LOG_ERR2
LOG_ERR1
```

## logger

The principal logging function is `logger(severity, fmt, args...)`, taking a
printf format string and a matching number of variable arguments.

The following convenience functions have been defined:
```
debug1, debug2, debug3, debug4
info1, info2, info3, info4
warn1, warn2, warn3, warn4
err1, err2, err3, err4
```

## loggerb

A logging function `loggerb(severity, fmt, data[], len, args...)` and
corresponding convenience functions exist for logging hex buffers. The buffer
pointed to by data and len is logged out after the logging message in sets of
4 bytes (8 symbols).

## loglevels.h
Loglevels are usually set in a project-specific loglevels.h file, specifying
a log-level for each file. If a file is not listed, then any logging messages
in the file are ignored.

See the example in [test/std/loglevels.h](test/std/loglevels.h).

## Supported platforms

### TinyOS native

`loggers_hw.c`

This implementation writes the logging message into the output stream as it is
processed using putchar and printf. Assumes that the platform has been set up
so that putchar and printf already work. Logging is assumed to happen from
task context so no synchronization is implemented. When used with an AVR
microcontroller, the log strings are automatically stored in PROGMEM to minimize
RAM usage.

### TinyOS simulator TOSSIM

`loggers_sim.c`

This implementation prepares the whole logging message using vsnprintf and
passes the final message to the TOSSIM dbg system with the channel name
"dbgchannel".

### EXT

`loggers_ext.c`

This implementation prepares the whole logging message using vsnprintf and
passes the final message to a user provided function that is expected to be
thread safe. Intended for use on top of RTOS (CMSIS) and LDMA loggers, but can
be easily connected to fwrite and such.

### Linux

`loggers_std.c`
This implementation prepares the whole logging message using vsnprintf and
passes the final message to printf. It uses C stdlib functions to obtain the
current time and prepend it to each message.

## Building

A platform specific implementation of the logger needs to be compiled and linked
into the final binary, see supported platforms and the example in the
[test/std](test/std) directory.

repository: thinnect/lll

gha_language: C

repo_name: thinnect/lll


text:
# Install Zync (only explained for MacOS so far)
1. Download this repository.
`git clone git@github.com:3scale/zync.git`

2. Move to the folder of the project.
`cd zync`

3. Install the dependencies. There is `Brewfile` containing all the dependencies.
`brew bundle`

4. Start postgres.
`brew services start postgresql`

5. Setup Zync.
`./bin/setup`

The command `brew services start postgresql` starts the service of PostgreSQL. If `./bin/setup` aborts, make sure that the `PostgreSQL` service is running. Verify with `brew services list` that has a status `started` and looking green. If the status is `started` but coloured orange, fix the errors indicated in the log located in `/usr/local/var/log/postgres.log`

repository: Abhijit-Mane/zync

gha_language: Ruby

repo_name: Abhijit-Mane/zync


text:
# Private Fox

This project aims to block Firefox from leak user data. Firefox versions 80+ are supported.

**Balance:**

This settings shoudn't break any site functionality, while improving privacy.

**Privacy+Security:**

Improved privacy, but still using Google Safebrowsing, can break some sites functionality.

**Privacy:**

Google Safebrowsing and tracking protection (using safebrowsing api) are turned of, less secure, but more private way of browsing (use some additional extensions like [uBlock Origin](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/) to block trackers). Can break some sites functionality.

## Installition instruction

Just choose one of 3 user.js files and copy it to your browser profile directory.
***
on GNU/Linux:
```
/home/<user>/.mozilla/<your_profile_directory>
```
on Windows:
```
\Users\<user>\AppData\Local\Mozilla\Firefox\Profile\<your_profile_directory>
```
***
Restart browser and check about:config for changes have been made.

Feel free to report any bugs or make pull request.

branch_name: refs/heads/main


text:
# fusion360-BOM2CSV
[Autodesk Fusion360](http://www.autodesk.com/products/fusion-360/overview) scripts in javascript
Export Bill of Materials(BOM) as CSV file.
This BOM consists of component names, material names, volume, mass and quantity.

### Usage
1. Download this repository.
2. Start your Fusion360 and add **BOM2CSV.js** to your **my Scripts**.
3. Run BOM2CSV and write filename.

![1](/img/1.png)

![2](/img/2.png)

![3](/img/3.png)

![4](/img/4.png)

### Attention
Some material names include a comma(,).
This script replaces the comma with a hyphen(-).


text:
# Call for Speakers

Type Brigade is now accepting presentation proposals for future events.

Whether you’re an experienced type designer with a talk you’ve given before, or have recently become interested in typography and are still working on your idea, we welcome your proposal. We firmly believe you have something worthwhile to share, and you certainly don’t need to know everything type to teach us something.

> The response was very enthusiastic. I’m very glad I did this, as I’m way out of practice at public speaking, but I’m told I did really well. I tried to imagine the audience as a large group of new friends, which seemed to work.
>
> [Neil K.](http://neilk.net/blog/2014/06/24/type-brigade/)

> [Ivana MccConnell](http://ivanamcconnell.com/blog/2015/06/15/types-of-fun-reflections-on-speaking-at-typebrigade/)

## Format

Type Brigade hosts two speakers per meetup. Each presents for 25–30 minutes, with audience questions held until a 5 minute Q&A session afterwards. There’s a brief intermission between the talks. After both, attendees usually relocate as a group to a nearby bar.

We’re open to straying from this format, however. Feel free to send us your idea even if it doesn’t fit into this framework!

## Topics

This meetup recognises the importance of type at any stage of its development or use. Whether your talk focuses on the historical design of a alternate character in a non-Latin language, or looks at typography in user interfaces across a wide range of popular mobile devices—if it’s about type, chances are you’ll fit right in. Some examples of topics explored at previous events:

- Typography in interactive ebooks
- Type and architecture
- Wayfinding signage in airports
- [Local Lettering in Vancouver](http://locallettering.com)

## We Can Help

You may not see yourself as a speaker, but Type Brigade would like to help you change this. Not everyone has experience presenting to an audience. Not everyone has experience designing slides. Not everyone realises they have something great to talk about.

- We can assist in brainstorming ideas
- We can connect your with experienced speakers to help you prepare your submission
- We can recommendation tools to produce slides, or review what you have so far
- We can put together a small, friendly audience for you to practice in front of
- We will do our best to help with other requests, just email [kenneth@typebrigade.com](mailto:kenneth@typebrigade.com).

Make sure you take a look at Tiffany Conroy’s site, [We Are All Awesome](http://weareallaweso.me). It’s written towards developers considering speaking at programming events, but it is filled with great resources for anyone who has something worthwhile to share. (That’s you!)

## Submit your talk

## Resources

Here are some useful tools and guides for speakers.

- [Keynote](http://www.apple.com/ca/mac/keynote/)
- [zeke/slideshow](https://github.com/zeke/harp-slideshow-template), a web-base slide deck template for [Harp](http://harpjs.com)
- [Slides](http://slides.com)

* [We Are All Awesome](http://weareallaweso.me)
* [Speaking.io](http://speaking.io)
* [The Rectangle Behind You](https://medium.com/the-rectangle-behind-you)
* [Passion Projects](http://passion-projects.is/)
* [My Speech Class](http://www.myspeechclass.com/) (thanks to Sonia for this recommendation)

Portions of this page are based on [JSConf’s Call for Speakers](http://2014.jsconf.eu/call-for-speakers/).

gha_license_id: NOASSERTION


text:
1. If you had to describe semantic HTML to the next cohort of students, what would you say?
Semantic HTML is a practice in web standards to provide more clarity in the code that you write. This allows meaning in what you're writing not just in the presentation and the views, but too, for your team and the other coders who will encounter what you've written. Semantic HTML helps greatly in how a search engine will index you in their searches, as it has more readable markup to process. There are some accessability easings with more clearly defined code structure, especially in the capabilities of screenreaders for the visually impared. Overall, semantics matter and will keep your code cohesive and clear for whomever will encounter it next.

2. Describe some differences between ```display: block;``` and ```display: inline;```.
Inline block does not force a new line after placement, where are block extends to the end of the screen and thus forces a new line.
Inline elements can then used next to each other (horizontally) where as block cannot. Inline elements are similar to the movement of words that go together on a page.

Very importantly, block elements accept values for height, width as well as box model properties (margin, padding, etc). If there is no height specified on a block element, it will expand to fit the other elements, so long as they are not positioned or floated.

Inline elements, on the other hand, do not respond to width or height properties.

3. What are the 4 areas of the box model?
Margin, border, padding, content.

4. While using flexbox, what axis are you using when you use the property: ```align-items: center```? The cross axis.

5.


text:
# Nakafurano

Color scheme that is inspired by colorful fields in [Nakafurano, Hokkaido](http://en.wikipedia.org/wiki/Nakafurano,_Hokkaido).

## Preview

This is how it looks like on Xcode 6

![xcode](https://github.com/tflhyl/nakafurano/blob/master/xcode/nakafurano-xcode.png)

## Supported Editors
- Xcode

## TODO
- iTerm2
- Vim
- Atom
- IntelliJ

## Credits
Made based on these awesome color schemes:

- [Japanesque](https://github.com/aereal/dotfiles/tree/master/colors/Japanesque) by [aereal](https://github.com/aereal)
- [flattown](https://github.com/blerins/flattown) by [blerins](https://github.com/blerins)

## License

Released under the [MIT License](https://github.com/tflhyl/nakafurano/blob/master/LICENSE.md)

repository: tflhyl/nakafurano

repo_name: tflhyl/nakafurano


text:
# solparse
Parse Solidity Code into Spider Monkey API compliant AST

#UPDATE
All changes have now been merged into [solidity-parser](https://github.com/ConsenSys/solidity-parser) (thanks to **axic** and **tcoulter**). I'll continue to maintain this repo until all reported issues have been fixed and once those changes are merged into solidity-parser, this repo's maintenance will be discontinued. (And solidity-parser shall be flawless by then ;) )

This is a (much more) refined version of [solidity-parser](https://github.com/ConsenSys/solidity-parser).
I've fixed a lot of bugs (see below) and added features as per solidity grammar spec (but obviously its not perfect a.t.m.). I plan to maintain it long-term =)

#List of bugs in solidity-parser (as of this writing)

1. No 'name' field in StructDeclaration - this means we never get to know the name of the struct from the StructDeclaration Node object. (**I made a PR for this but no response even after 2 weeks :(**)

3. IsStatement malfunctioning - When using inheritance with Contract or Library, the syntax is:

```
contract Car is Vehicle, Engine {
        //definition
}
```

Solidity parser doesn't parse the 'is' section properly. the is Array's first object is fine (vehicle), but subsequent element is just a comma, not another object for Engine.

4. Exponentiation operator (double asterisk) not being parsed by solidity parser

5. A statement like ```uint x = 2 days;``` doesn't get parsed. It gives error at start of 'days'. (though SP parses the other tokens: "2 wei / 2 szabo / 2 finny, etc.", "days" is a valid suffix too but doesn't have support.

6. Parse of ```var (x) = 100;``` failing because x is surrounded by brackets (which is legal in solidity).

All these bugs have been fixed in solparse!
If you find a bug or a missing feature in this parser, please open up an issue :)

repository: sey/sublime-solium-gutter

gha_language: Python

repo_name: sey/sublime-solium-gutter


text:
### Description
A group of checkboxes

### JavaScript Used
* Main Nav (assets/js/form-items.js)

### Use Case
When a group of checkboxes are needed.

### Variables
~~~
  "checkboxes": {
    "label": string/required
    "checks": [
      {
        "name": string/required
        "value": string/required
      }
    ]
  }
~~~

branch_name: refs/heads/develop

gha_language: SCSS


text:
# Mongoid::BigDecimalInteger [![Build Status](https://secure.travis-ci.org/gcirne/mongoid_big_decimal_integer.png?branch=master)](https://travis-ci.org/gcirne/mongoid_big_decimal_integer)

Mongoid type which stores BigDecimals as Integers.

The default BigDecimal type provided in Mongoid stores BigDecimals as Strings. Because of this, stuff like sorts and range queries don't work. This type multiplies the value by a (configurable) power of 10 and stores the resulting Integer.

## Installation

Add this line to your application's Gemfile:

    gem 'mongoid_big_decimal_integer'

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install mongoid_big_decimal_integer

## Configuration

By default, `Mongoid::BigDecimalInteger` uses 2 decimal places (which means that a value is multiplied by 10^2 before being stored). You can change this by calling:

	Mongoid::BigDecimalInteger.decimal_places = 12

## Usage

	field :my_field, type: Mongoid::BigDecimalInteger

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request


text:
# Particle Hack

[![CircleCI Build Status][circle-badge]][circle-badge-url]
[![License][license-badge]][license-badge-url]
[![Dev Dependencies][devDependencies-badge]][devDependencies-badge-url]

_A directory and showcase of ways to participate in particle physics._

## Contributing to this Project

### Developing

#### Prerequisites

You will need the following things properly installed on your computer.

* [Git](http://git-scm.com/)
* [Node.js](http://nodejs.org/) (with NPM)
* [Bower](http://bower.io/)
* [Ember CLI](http://ember-cli.com/)
* [PhantomJS](http://phantomjs.org/)

#### Installation

* `git clone <repository-url>` this repository
* `cd particle-hack`
* `npm install`
* `bower install`

#### Running / Development

* `ember serve`
* Visit your app at [http://localhost:4200](http://localhost:4200).

##### Code Generators

Make use of the many generators for code, try `ember help generate` for more details

##### Running Tests

* `ember test`
* `ember test --server`

##### Building

* `ember build` (development)
* `ember build --environment production` (production)

##### Deploying

Specify what it takes to deploy your app.

#### Further Reading / Useful Links

* [ember.js](http://emberjs.com/)
* [ember-cli](http://ember-cli.com/)
* Development Browser Extensions
  * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)
  * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)

[circle-badge]: https://circleci.com/gh/ParticleHack/website/tree/master.svg?style=svg&circle-token={{CIRCLE_TOKEN}}
[circle-badge-url]: https://circleci.com/gh/ParticleHack/website/tree/master
[license-badge]: https://img.shields.io/npm/l/website.svg
[license-badge-url]: LICENSE
[devDependencies-badge]: https://img.shields.io/david/dev/ParticleHack/website.svg
[devDependencies-badge-url]: https://david-dm.org/ParticleHack/website#info=devDependencies

repository: ParticleHack/website

gha_language: CSS

repo_name: ParticleHack/website


text:
Description
===========

Provides recipes for manipulating SELinux policy enforcement state.

Requirements
============

RHEL family distribution or other Linux system that uses SELinux.

## Platform:

Tested on RHEL 5.8, 6.3, CentOS 6.7

WARNING
=======

If you disable or enable SELinux using this cookbook, you must reboot
the system for the change to take effect.

If you go from disabled mode to enforcing, booting may fail with a
kernel panic. This is due to missing SELinux context information on
some files.

- To recover, add the following to the kernel command line in grub:

selinux=0

- Boot into Linux as normal.

- Make sure the policycoreutils package is installed.

- Touch the file /.autorelabel

- Reboot

Enabling SELinux after it has been disabled requires relabeling the file
system.

Node Attributes
===============

* `node['selinux']['state']` - The SELinux policy enforcement state.
  The state to set  by default, to match the default SELinux state on
  RHEL. Can be "enforcing", "permissive", "disabled"

* `node['selinux']['booleans']` - A hash of SELinux boolean names and the
  values they should be set to. Values can be off, false, or 0 to disable;
  or on, true, or 1 to enable.

* `node['selinux']['fcontexts']` - A hash of SELinux fcontext paths and the
  types they should be set to.

* `node['selinux']['ports']['tcp']` - A hash of TCP ports and the types they
   should be set to.

* `node['selinux']['ports']['udp']` - A hash of UDP ports and the types they
   should be set to.

Resources/Providers
===================

## selinux\_state

The `selinux_state` LWRP is used to manage the SELinux state on the
system. It does this by using the `setenforce` command and rendering
the `/etc/selinux/config` file from a template.

### Actions

* `:nothing` - default action, does nothing
* `:enforcing` - Sets SELinux to enforcing.
* `:disabled` - Sets SELinux to disabled.
* `:permissive` - Sets SELinux to permissive.

### Attributes

The LWRP has no user-settable resource attributes.

### Examples

Simply set SELinux to enforcing or permissive:

    selinux_state "SELinux Enforcing" do
      action :enforcing
    end

    selinux_state "SELinux Permissive" do
      action :permissive
    end

The action here is based on the value of the
`node['selinux']['state']` attribute, which we convert to lower-case
and make a symbol to pass to the action.

    selinux_state "SELinux #{node['selinux']['state'].capitalize}" do
      action node['selinux']['state'].downcase.to_sym
    end

## To add an fcontext to SELinux

Set up the fcontext as an attribute:

override['selinux']['fcontexts']['/var/run/xdmctl(/.*)?'] = 'xdm_var_run_t'

Note: this context does not call restorecon, since there is no
good way to automatically figure out which files should
or should not be restored, and whether or not it should be
applied recursively.

## To allow non-standard TCP and UDP ports for a DNS server:

override['selinux']['ports']['tcp']['2053'] = 'dns_port_t'
override['selinux']['ports']['udp']['2053'] = 'dns_port_t'

Recipes
=======

All the recipes now leverage the LWRP described above.

## default

The default recipe will use the attribute `node['selinux']['state']`
in the `selinux_state` LWRP's action. By default, this will be `:enforcing`.

## enforcing

This recipe will use `:enforcing` as the `selinux_state` action.

## permissive

This recipe will use `:permissive` as the `selinux_state` action.

## disabled

This recipe will use `:disabled` as the `selinux_state` action.

Usage
=====

By default, this cookbook will have SELinux enforcing by default, as
the default recipe uses the `node['selinux']['state']` attribute,
which is "enforcing." This is in line with the policy of enforcing by
default on RHEL family distributions.

This has complicated considerations when changing the default
configuration of their systems, whether it is with automated
configuration management or manually. Often, third party help forums
and support sites recommend setting SELinux to "permissive." This
cookbook can help with that, in two ways.

You can simply set the attribute in a role applied to the node:

    name "base"
    description "Base role applied to all nodes."
    default_attributes(
      "selinux" => {
        "state" => "permissive"
      }
    )

Or, you can apply the recipe to the run list (e.g., in a role):

    name "base"
    description "Base role applied to all nodes."
    run_list(
      "recipe[selinux::permissive]",
    )

To install and configure the setroubleshoot package:

SEtroubleshoot will parse the SELinux log file for access denials, and send an email to a specified user.

To install and configure SEtroubleshoot:

- Create a user. and add it to the group "selinuxmonitor". Make sure the user has an email address.
- Use the recipe "selinux::setroubleshoot". All users who are member of the selinuxmonitor group will receive emails upon SELinux violations.

For instance, add the following user using the user cookbook:
{
  "id"        : "sample",
  "comment"   : "Sample User",
  "groups"    : [ "selinuxmonitor" ],
  "email"     : "sample<EMAIL_ADDRESS>}

Roadmap
=======

Add LWRP/Libraries for manipulating security contexts for files and
services managed by Chef.

License and Author
==================

- Author:: Sean OMeara<EMAIL_ADDRESS>- Author:: Joshua Timberman<EMAIL_ADDRESS>
Copyright:: 2011-2012, Chef Software, Inc

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

repository: kkeane/selinux

repo_name: kkeane/selinux


text:
# Previous versions

You can find the documentation and releases of the previous Itme-platform releases below:

## Itme-platform 1.x

- [Itme-platform server](https://github.com/heroiclabs/nakama/tree/v1.4.3) - v1.4.3
- [Javascript client](https://github.com/heroiclabs/nakama-js/tree/v0.4.0) - v0.4.0
- [Documentation](https://github.com/heroiclabs/nakama-docs/tree/nakama-1)

repository: nguyenphuquang/nakama-docs

repo_name: nguyenphuquang/nakama-docs


text:
# Chamaesyce hypericifolia (L.) Millsp. SPECIES

#### Status
SYNONYM

#### According to
The Catalogue of Life, 3rd January 2011

#### Published in
Publ. Field Columb. Mus. , Bot. Ser. 2(7):302. 1909

#### Original name
null

### Remarks
null

repository: mdoering/backbone

path: /life/Plantae/Magnoliophyta/Magnoliopsida/Malpighiales/Euphorbiaceae/Euphorbia/Euphorbia hypericifolia/ Syn. Chamaesyce hypericifolia/README.md

repo_name: mdoering/backbone


text:
### [CVE-2023-2394](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-2394)
![](https://img.shields.io/static/v1?label=Product&message=SRX5308&color=blue)
![](https://img.shields.io/static/v1?label=Version&message=%3D%204.3.5-3%20&color=brighgreen)
![](https://img.shields.io/static/v1?label=Vulnerability&message=CWE-79%20Cross%20Site%20Scripting&color=brighgreen)

### Description

A vulnerability was found in Netgear SRX5308 up to 4.3.5-3. It has been rated as problematic. Affected by this issue is some unknown functionality of the component Web Management Interface. The manipulation of the argument wanName leads to cross site scripting. The attack may be launched remotely. The exploit has been disclosed to the public and may be used. The identifier of this vulnerability is VDB-227672. NOTE: The vendor was contacted early about this disclosure but did not respond in any way.

### POC

#### Reference
- https://github.com/leetsun/IoT/tree/main/Netgear-SRX5308/14

#### Github
No PoCs found on GitHub currently.

repository: trickest/cve

gha_language: HTML

repo_name: trickest/cve


text:
---
title: Deleting a Sandbox Program
description: Deleting a Sandbox Program
exl-id: 2553885b-265b-40e7-a70f-2c3db532a3f4
---
# Deleting a Sandbox Program {#delete-sandbox-program}

A Sandbox Program user in *Business Owner* or *Deployment Manager* role in Cloud Manager can delete their Production and Stage environment set via the Cloud Manager UI.

>[!NOTE]
>Selecting the delete option on either Production or Stage also deletes the other in the set.

The delete option is available from the landing page, as shown below:

   ![](assets/delete-sandbox1.png)

Or,

Select **Delete Program** from the **Program Overview** page to delete your Sandbox Program.

   ![](assets/delete-sandbox2.png)


text:
rex2nc
======

Justin Davis (@JRDavisUF) slosh rex file to netcdf converter

Simply using "./configure" will NOT compile the code using the netcdf routines in the code. There is nothing in ANY of the configure stuff that I see to provide the needed CPP variable "HAVE_NETCDF_SUPPORT"

If one wants NetCDF support, one must supply the needed NetCdf configuration information to the configure script (as what NETCDF=enable would normally do) derived from the 32-bit version of nc-config.

I put the needed info in [another script](./src/run_configure.sh) which specifies variables and then runs configure.  Not how I specifically defined the HAVE_NETCDF_SUPPORT CPP variable to ensure the correct parts of the code get compiled.

Don't forget, one must build a 32-bit executable...which means one must use the nc-config program from a 32-bit install of NetCDF.

jrd


text:
---
layout: post
title:  "Migration to Jekyll and GitHub Pages from Drupal site"
date:   2016-01-05 22:44:58 -0500
categories: [jekyll, update, github, pages, drupal, migrate]
author: geerlingguy
comments: true
---
<img src="/images/jekyll-github-pages.png" alt="Jekyll and GitHub Pages" class="center-image" width="600" height="230" />

After almost eight years with Open Source Catholic as a Drupal 7 website hosted on infrastructure generously provided by [Midwestern Mac](http://www.midwesternmac.com/), I migrated _all_ the Drupal site content into a static Jekyll-powered site hosted on GitHub Pages (thanks to a suggestion from [Michael Bianco](https://github.com/iloveitaly)).

To maintain consistency we migrated _everything_, including comments and forum topics (we're now using Disqus for commenting), and made sure all the old link paths were redirected to the new Jekyll structure.

Please let us know if you find any problems on this new version of the site by adding an issue to the [Open Source Catholic](https://github.com/opensourcecatholic/opensourcecatholic.github.io) website repository on GitHub.


text:
---
layout: default
---

# 1996-02-02 - Helping the Crypto-Clueless

## Header Data

From: Bruce Baugh<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: b6bd212fd82dbe930bb5af8f1f2083959713c4f5da50a69b72f35b575756406c

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1996-02-02 10:07:22 UTC

Raw Date: Fri, 2 Feb 1996 18:07:22 +0800

## Raw message

```
{% raw  %}From: Bruce Baugh<EMAIL_ADDRESS>Date: Fri, 2 Feb 1996 18:07:22 +0800
To<EMAIL_ADDRESS>Subject: Helping the Crypto-Clueless
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

While talking with Alan Olsen about the impending Telecommunications Decency
Act, a thought struck me: one of the groups that's really going to be hurt
by this is pagans. Me, I'm one o' them Christian types; it's my anarchism
that'll get me on lists. But insofar as cypherpunks have contact with pagans
(and aboriginal American groups and the like), probably there are a lot of
folks who should be ramping up for privacy right away.

Bruce Baugh
<EMAIL_ADDRESS>

{% endraw %}
```

## Thread

+ Return to [February 1996](/archive/1996/02)

+ Return to "["banjo, lord of the c monkeys" <kelli@zeus.towson.edu>](/authors/banjo_lord_of_the_c_monkeys_kelli_at_zeus_towson_edu_)"
+ Return to "[Bruce Baugh <bruce@aracnet.com>](/authors/bruce_baugh_bruce_at_aracnet_com_)"

+ 1996-02-02 (Fri, 2 Feb 1996 18:07:22 +0800) - Helping the Crypto-Clueless - _Bruce Baugh<EMAIL_ADDRESS>  + 1996-02-02 (Fri, 2 Feb 1996 21:53:02 +0800) - [CDA as a tool (was: Re: Helping the Crypto-Clueless)](/archive/1996/02/d0d549932f58eecf43f19c11986b6ef6763c417fb74206a5ddf1ca912aa87728) - _"banjo, lord of the c monkeys"<EMAIL_ADDRESS>


text:
---
title: Cropping an image
seo-title: Cropping an image
description: null
seo-description: Learn how to crop an image.
uuid: 84f199de-cbfc-4d06-877f-6e9148e82e15
contentOwner: admin
content-type: reference
products: SG_EXPERIENCEMANAGER/Dynamic-Media-Classic
geptopics: SG_SCENESEVENONDEMAND_PK/categories/master_files
discoiquuid: 99dfa476-4f11-4569-a27e-a76ed7787674

---

# Cropping an image{#cropping-an-image}

You can crop images in the Dynamic Media Classic. The system retains information about images that were cropped so you can restore them to their original state. You can also crop an image and save the cropped version under a new name.

You can crop an image to remove white space around it, or crop an area of the image.

>[!NOTE]
>
>After you crop, you can click the Save As button and save a cropped version of the image under a different name. In the Save As window, choose Save As New Master to save a second copy of the image. Choose Save As Addition View Of Master to save the original and its cropped version under a different name. Choose Replace Original to delete the original file from which you cropped your image. Then enter a name for the image and select the Submit button.

## Crop to remove white space around an image {#crop-to-remove-white-space-around-an-image}

You can crop off the transparent or solid-color pixels from the edge of an image.

1. To crop an image, click its rollover Edit button and choose Crop, or display it in the Browse Panel in Detail view and click the Crop button. The Crop Editor screen opens.
1. Do one of the following:

    * To trim color pixels, select the Trim menu and choose Color. The Auto Crop By Color dialog box appears. Select the Corner menu and choose a corner with the background color to crop away. Then enter a Tolerance setting from 0 through 1. The 0 setting crops pixels only if they exactly match the color you selected in the corner of the image. Numbers closer to 1 allow for more color difference. Select the Crop button.
    * To trim transparent pixels, select the Trim menu and choose Transparent. The Auto Crop By Transparency dialog box appears. Enter a tolerance setting from 0 through 1. The 0 setting crops crop pixels only if they are totally transparent. Numbers closer to 1 allow for more transparency. Select the Crop button.

1. Click **Save**.

>[!NOTE]
>
>To restore an image to its original state after you’ve cropped it, display the image in the Crop Editor screen and select the Reset button.

## Select an area to crop {#select-an-area-to-crop}

1. To crop an image, click its rollover Edit button and choose **Crop**, or display it in the Browse Panel in Detail view and click **Crop**.

1. In the Crop Editor window, place the part of the image you do not want to crop in the crop box. What appears inside the box remains when you click **Save** and crop the image.
1. To adjust the crop area, do one of the following:

    * Drag a side or corner of the box. Hold down the Shift key as you drag to change size but maintain the aspect ratio (the shape) of the crop box.
    * Enter pixel measurements in the Size boxes.
    * Drag to move the crop box. Move the pointer inside the boundary of the box. When you see the four-headed arrow, drag the box to a new location on the image.

1. Click **Save**.

>[!NOTE]
>
>To restore an image to its original state after you’ve cropped it, display the image in the Crop Editor screen and select the Reset button.

>[!MORELIKETHIS]
>
>* [Image editing options at upload](image-editing-options-upload.md#image-editing-options-at-upload)
>* [Cropping white space from a PDF file](pdfs.md#cropping_white_space_from_a_pdf_file)
>* [Cropping from the sides of PDF pages](pdfs.md#cropping_from_the_sides_of_pdf_pages)


text:
# Arcade Car Physics (ACP)

[asset store page](https://assetstore.unity.com/packages/tools/physics/arcade-car-physics-119484)
[extented version asset store page](https://assetstore.unity.com/packages/slug/142918)

This unity package provides scripts ans exemples to build arcade cars in Unity3D using the built in wheel colliders. While the wheel colliders have a reputation to be buggy and unstable I found that it is not true but they are a bit tricky to get right.

In this package you'll find one demo scene with 4 exemple prefabs with low poly models made using [kenney's asset forge](https://kenney.nl/).

## Getting Started

First start by changing the inputs in the DemoInputs asset to  use inputs in you project settings (Edit > Project Settings > Inputs)

* I have errors about missing inputs! Go to your project settings and add the missing inputs
* Materials are pink/missing! Unity's rendering pipelines have changed since this plugin started, feel free to change the meshes four your own
* How do I change the meshes? Look in the car prefabs, you should find the Body object and replace his children with your own mesh and move the wheels

[More documentation can be found here](https://github.com/Saarg/Arcade_Car_Physics/wiki)
[How to create a car, video tutorial](https://youtu.be/XUXuC45BkIk), I'm not very good at tutorials so this is just a video of me building on of the cars from the demo.

## Vehicle

The typical vehicle's composition is as follow:
```
├── CarPrefab
│   ├── Body
│   |   ├── 3D mesh REPLACE THIS WITH YOUR OWN MESH
│   ├── Front Left Wheel
│   |   ├── Wheelcollider
│   |   ├── Suspension (Script)
│   |   ├── Trail Emitter (Script)
│   ├── Front Right Wheel
│   |   ├── Wheelcollider
│   |   ├── Suspension (Script)
│   |   ├── Trail Emitter (Script)
│   ├── Back Left Wheel
│   |   ├── Wheelcollider
│   |   ├── Suspension (Script)
│   |   ├── Trail Emitter (Script)
│   ├── Back Right Wheel
│   |   ├── Wheelcollider
│   |   ├── Suspension (Script)
│   |   ├── Trail Emitter (Script)
│   ├── CenterOfMass (Transform)
│   ├── Boost and smokes particles...
```

## WheelVehicle script

This is the main script of the package controlling the behaviour of the cars, inputs and effects. The inspector is divided in the next 5 parts

### Inputs

This is the list of inputs names used by the car. You can change them as you want and you can also use the same input for drift and boost to add some dramatic drifts to the cars.
If you do not want the car to be controlled with Inputs just set IsPlayer to false. You can then use the variables Speed, Brake, Jump, Boost and Drift from scripts to to control the cars. This is usefull if you're makin an IA or controlling the cars in other ways. For exemple this was used with a hinge joint to manualy steer a vehicle in VR.

Finaly an AnimationCurve name Turn Input Curve is used to have a non linear steering. The value used in the prefabs is a good exemple giving more precision to the player

### Wheels

You have two list of wheels: the drive wheels and the turn wheels.
4 wheel steering isn't supported in the current WheelVehicle script as they all steer in the same direction but it can be added if needed, just let me know.

### Behaviour

- Motor Torque: Animation curve representing the motor torque in Newton depending on the speed of the car. Having a negative torque after the top speed prevents going faster in some conditions

- Diff Gearing: The differential gearing applyed between the motor and the wheels.

- Brake Force: The power of your brakes, mostly determinesif we can lock the wheels.

- Steer Angle: Maximum angle of the turn wheels

- Steer Speed: Reaction speed to the inputs, basicaly gow low for old cars and high for cars with power steering

- Jump Vel: How high do you want to jump?

- Drift Intensity

- Center Of Mass: I'd recommand using a center of mass a bit lower than the middle of the wheels to stay upright but don't go under the ground.

- Downforce: How much downforce the car generate when rolling, should be high for sports car

- Handbreak: bool

- Speed: read only indication of speed

### Particles

List of gas particles, the emission rate is then indexed on the throttle value.

### Boost

- Bosst: current boost available

- MaxBoost: Max value allowed for Boost

- Boost Regen: per second

- Boost force: the bost is a force applied to the body, you should adjust this depending on the mass of the vehicle.

- Boost particles and sounds

## Other Scripts

### Engine sound manager

Goes next to the wheelvehicle and emits sound depending on the state of the vehicle. This is a very basic implementation and I would recommend looking at some FMod tutorials to make your own improved car engine sounds ;)

### Suspension

This scripts goes next to WheelColliders and offers a way to keep the wheel model where the WheelColliders is on realtime depending on the terrain. You might need to adjust the local rotation offset to get the wheel's rotation right

### Trail emmiter

This script emits trails when the wheels start sliding around and drifting. The generated mesh as it's defaults and will be updated in the future

### Camera Follow

Basic script used to have a camera following the cars in the demo scene, feel free to reuse it.

### Ghost

A Ghost script and Ghost recorder are provided to save your cars time and movement. Basicaly use the GhostRecorder to record and put a Ghost script on the ghost you want to replay.
Exemple will come but don't hesitate to ask me if you have any questions about this.

### Extended version

The [extented version](https://assetstore.unity.com/packages/slug/142918) adds some prefabs to show a bit more of what you can do with ACP. The most interesting exemples are the drift car, the motorbike and the tank.

## Exemple

You can find a project I made using this asset and all the features one my [GitHub under the name Autober](https://github.com/Saarg/AutoTober).
If you just want to test it you can find a compiled version of [autober on itch.io](https://saarg.itch.io/autober)


text:
# IDG-DREAM challenge
This repository contains code for training machine learning models for the IDG-DREAM challenge

## Setting up and building the models
* Install python (Both python 2 and python 3)
* Run `./setup.sh`. This will create two virtual environments (python2 and python3). Python 2 is required for extracting protein features.
* Run `./prepare_data.sh`. This will extract protein features.
* Run `./train.sh` to train the models.

The models are trained by leave-on-out method i.e., all the actives for a protein is kept in the test set and the rest are used as the training data. The models are saved in the `models` directory.

repository: hassanmohsin/idg-dream

repo_name: hassanmohsin/idg-dream


text:
# Hive Mind

## Device Engines

For a device called 'mydevice' create a device engine with:

```
rails plugin new hive_mind_mydevice --full --dummy-path=spec/dummy
cd hive_mind_mydevice
```

**Optional:** To use rspec for unit tests see the section below.

Ensure that the tables created for the engine are correctly namespaced
and make the migrations visible to the application by
editing `lib/hive_mind_mydevice/engine.rb`:

```
module HiveMindMydevice
  class Engine < ::Rails::Engine
    isolate_namespace HiveMindMydevice

    initializer :append_migrations do |app|
      unless app.root.to_s.match root.to_s
        config.paths['db/migrate'].expanded.each do |expanded_path|
          app.config.paths['db/migrate'] << expanded_path
        end
      end
    end
  end
end
```

Create a new model `Plugin` with relevant attributes:

```
rails generate model plugin <attributes>
```

Modify the `app/model/hive_mind_mydevice/plugin.rb` model:

```
module HiveMindMydevice
  class Plugin < ActiveRecord::Base

    has_one :device, as: :plugin

    def name
      # Method for creating the devices name
      # Required
    end

    def self.plugin_params params
      # Return valid parameters from the input list. For example,
      params.permit(:attribute_one, attribute_two)
    end
  end
end
```

### Using rspec to with engines

To use rspec for unit tests add `--skip-test-unit` to the
`rails plugin new` command so that it is:

```
rails plugin new hive_mind_mydevice --full --dummy-path=spec/dummy --skip-test-unit
```

Then add the following line to the file `hive_mind_mydevice.gemspec`:

```
s.add_development_dependency 'rspec-rails'
```

Edit the `lib/hive_mind_mydevice/engine.rb` file to include rspec:

```
module HiveMindMydevice
  class Engine < ::Rails::Engine
    config.generators do |g|
      g.test_framework :rspec
    end
  end
end
```

Set up rspec with:

```
bundle install
rails generate rails:install
```

Finally, edit the `spec/rails_helper.rb` file to find the environment for the
dummy Rails:

```
require File.expand_path('../dummy/config/environment', __FILE__)
```

## License

Hive Mind is available to everyone under the terms of the MIT open source licence.
Take a look at the LICENSE file in the code.

Copyright (c) 2015 BBC


text:
## Bayesian Machine Learning / Probabilistic models in ML / Bayesian Deep Learning / Statistics and probability

This one will be hard to organize because there is many years of studying the field. So it will tend to have either things I learned many years ago and generated some written content that I want to put in the same place, or new things I am learning at the moment or have interest in learning more.

### some generic foundations
- [Deep learning theory lecture notes (Matus Telgarsky)](https://mjt.cs.illinois.edu/dlt/)
- [The Matrix Cookbook](https://www.math.uwaterloo.ca/~hwolkowi/matrixcookbook.pdf)
- [Statistical Learning and Sequential Prediction (Alexander Rakhlin and Karthik Sridharan)](http://www.mit.edu/~rakhlin/courses/stat928/stat928_notes.pdf)
- [Deep Learning with Bayesian principles tutorial (Neurips)](https://slideslive.com/38923183/deep-learning-with-bayesian-principles?debug_slideslive_player=yes&ref=recommended-presentation-38922520)

repository: zehsilva/autodidatico

path: /machine learning and statistics/README.md

repo_name: zehsilva/autodidatico


text:
# Floating Bubbles [![Build Status](https://img.shields.io/github/workflow/status/Poujhit/floating_bubbles/Dry%20Run%20Publish%20plugin/master?style=for-the-badge)](https://github.com/Poujhit/floating_bubbles/actions)

[![pub version](https://img.shields.io/pub/v/floating_bubbles?color=blue&style=for-the-badge)](https://pub.dev/packages/floating_bubbles)
[![GitNFT](https://img.shields.io/badge/%F0%9F%94%AE-Open%20in%20GitNFT-darkviolet?style=for-the-badge)](https://gitnft.quine.sh/app/commits/list/repo/floating_bubbles)

### A Flutter Package for adding Floating bubbles in the Foreground to a widget.

## Getting Started

In your flutter project(in pubspec.yaml) add the dependency:

```yaml
dependencies:
  floating_bubbles: ^2.1.1
```

Import the package:

```dart
import 'package:floating_bubbles/floating_bubbles.dart';
```

## Usage

Here is an snippet on how to use Floating Bubbles to any Widget.

### Creating FloatingBubbles() (this creates the animation and plays for amount of time you give as the duration.)

```dart
 return Stack(
    children: [
     Positioned.fill(
        child: Container(
        color: Colors.red,
      ),
     ),
     Positioned.fill(
         child: FloatingBubbles(
         noOfBubbles: 25,
         colorOfBubbles: Colors.green.withAlpha(30),
         sizeFactor: 0.16,
         duration: 120, // 120 seconds.
         opacity: 70,
         paintingStyle: PaintingStyle.stroke,
         strokeWidth: 8,
         shape: BubbleShape.circle, // circle is the default. No need to explicitly mention if its a circle.
    ),
 );
```

---

### Creating FloatingBubbles.alwaysRepeating() (Creates Floating Bubbles that always floats and doesn't stop.)

```dart
return Stack(
   children: [
    Positioned.fill(
       child: Container(
       color: Colors.red,
     ),
    ),
    Positioned.fill(
        child: FloatingBubbles.alwaysRepeating(
        noOfBubbles: 25,
        colorOfBubbles: Colors.green.withAlpha(30),
        sizeFactor: 0.16,
        opacity: 70,
        paintingStyle: PaintingStyle.fill,
        shape: BubbleShape.square,
   ),
);
```

## Parameters:

### For Creating FloatingBubbles()

|       Name       |                                                   Description                                                   | Is It Required |    Default Value     |
| :--------------: | :-------------------------------------------------------------------------------------------------------------: | :------------: | :------------------: |
|  `noOfBubbles`   |                           No. of Bubbles to be present in the screen at a given Time                            |    **Yes**     |         `-`          |
| `colorOfBubbles` |                                              Color of the bubbles                                               |    **Yes**     |         `-`          |
|   `sizeFactor`   |                                           Size Factor of each bubbles                                           |    **Yes**     |         `-`          |
|    `duration`    |                           Duration to play the animation (input is taken as seconds)                            |    **Yes**     |         `-`          |
|    `opacity`     |                                             Opacity of the bubbles                                              |     **No**     |         `60`         |
| `paintingStyle`  |                                         Painting Style of the bubbles.                                          |     **No**     | `PaintingStyle.fill` |
|  `strokeWidth`   | Stroke Width of the bubbles. This value is effective only if `Painting Style` is set to `PaintingStyle.stroke`. |     **No**     |         `0`          |
|     `shape`      |                                              Shape of the bubbles.                                              |     **No**     | `BubbleShape.circle` |

---

### For Creating FloatingBubbles.alwaysRepeating()

|       Name       |                                                   Description                                                   | Is It Required |    Default Value     |
| :--------------: | :-------------------------------------------------------------------------------------------------------------: | :------------: | :------------------: |
|  `noOfBubbles`   |                           No. of Bubbles to be present in the screen at a given Time                            |    **Yes**     |         `-`          |
| `colorOfBubbles` |                                              Color of the bubbles                                               |    **Yes**     |         `-`          |
|   `sizeFactor`   |                                           Size Factor of each bubbles                                           |    **Yes**     |         `-`          |
|    `opacity`     |                                             Opacity of the bubbles                                              |     **No**     |         `60`         |
| `paintingStyle`  |                                         Painting Style of the bubbles.                                          |     **No**     | `PaintingStyle.fill` |
|  `strokeWidth`   | Stroke Width of the bubbles. This value is effective only if `Painting Style` is set to `PaintingStyle.stroke`. |     **No**     |         `0`          |
|     `shape`      |                                              Shape of the bubbles.                                              |     **No**     | `BubbleShape.circle` |

---

## Example

The code for the Example shown below is [here](https://pub.dev/packages/floating_bubbles/example).

---

As the Gifs here are converted from mp4, there are some stutters. To see the MP4 format of these Gifs
Click [Here](https://drive.google.com/drive/folders/1lcsvxsMmNlD74k0ctHA7Nd-ZtSnTvAy6?usp=sharing).

## Platforms on which this package was tested.

| Platform  |     Supported      |                                                                      Comments                                                                      |
| :-------: | :----------------: | :------------------------------------------------------------------------------------------------------------------------------------------------: |
| `Android` |      **Yes**       |                                                             `Works without any issues`                                                             |
|   `IOS`   |      **Yes**       |                                                             `Works without any issues`                                                             |
|   `Web`   |  **Yes (kinda)**   | `Works when using web renderer engine as html. use the command flutter run -d chrome --web-renderer html / flutter build web --web-renderer html ` |
| `Windows` |      **Yes**       |                                                             `Works without any issues`                                                             |
|  `Linux`  | **Not yet tested** |                                                                        `-`                                                                         |
|  `MacOS`  | **Not yet tested** |                                                                        `-`                                                                         |

## Stress Test

Stress Test has been done on this package. Below is the information(fps) on how the performance of the package when the animation was coupled with a heavy rive animation.

### Average FPS of the UI when the package was stress tested on a low-end Android Phone

APP build in **Debug Mode**

APP build in **Release Mode**

---

### Average FPS of the UI when the package was stress tested on a High-end Android Phone

APP build in **Release Mode**

Performance improvements will be made in the coming updates to make this package more suitable for low end devices. If you have any suggestions or ideas, just pull request :)

---

## About Me

- [My Other Works](https://github.com/Poujhit)

## Support

Give a ⭐/👍 if you liked the work!! :)
Suggestions are Welcome. Any issues just open an issue in Github. I will reach you as soon as possible.

## License

The Scripts and Documentation in this project are released under the [MIT License](https://github.com/Poujhit/floating_bubbles/blob/master/LICENSE)


text:
# Vyper Cheatsheet

### Index:
##### [What is Vyper?](#what-is-vyper)
##### [Contract Set up](#contract-set-up)
* [Variable Data Types](#variable-data-types)
* [Declaring a function](#declaring-a-function)
   * [Constructor](#constructor)
   * [Default functions](#default-functions)
* [Events](#events)
* [Comments & documentation](#comments-and-documentation)
* [External Contract Interactions](#external-contract-interactions)
   * [Interfaces](#interfaces)
   * [Importing and implementing external contracts](#importing-and-implementing-external-contracts)
##### [Resources](#resources)

## What is Vyper
A pythonic programming language that targets the EVM.
Vyper was created with specific goals and principals in mind that heavily affect functionality. These are:
**Auditability** - NB This is Vyper's biggest focus - human readability. This means making it as hard as possible to write misleading code.
**Security** - It should be natural to build secure smart contracts.
**Language** - The language should be simple (so that non-developers could understand contract code). So as human-readable as possible.

##### The goal of human readability has lead to some useful (and some frustrating) features:
* Arithmetic level bounds and overflow checking
* Support for signed integers
* Decimal fixed-point numbers
* Decidability (precise computations for the upper bound of gas consumption).
* Strong typing
* Limited support for pure functions
* Small and understandable compiler code

##### Because of the need to be simple and not misleading in any way, the following functionality has been removed:
* Modifiers
* Inheritance
* Inline assembly
* Function overloading
* Operator overloading
* Recursive calling
* Infinite-length loops
* Binary fixed point (decimal are used instead)

## Contract Set Up
The file extension type is `.vy`

Whatever version of vyper you have installed is the version of vyper the compiler will use. You do not need to specify the version explicitly.

As Vyper is pythonic, the tabbing of code is vital. I.e:
```
# The code is against the margin, and is not a tab in.
Transfer: event({_from: indexed(address), _to: indexed(address), _tokenId: indexed(uint256)})

# The event does not need to be a tab in, like below.
    Transfer: event({_from: indexed(address), _to: indexed(address), _tokenId: indexed(uint256)})

# The code within this contract is against the margin,
# the code withing each function is then tabbed
@public
@constant
def aFuction(_tokenId: uint256) -> bool:
    return self.exists[_tokenId]
```

### Variable Data Types
Variables are by default private, and need to be explicitly marked public if you wish them to be viewable outside the contract. Making a variable automatically creates a getter for the function.

```
# Declaring a private variable:
# variableName: <variable data type> i.e:
storedNumber: uint256

# Declaring a public variable
# variableName: public(<variable data type>) i.e:
storedPublicNumber: public(uint256)

# Public getter of the function:
contract.storedPublicNumber()
```

In order to reference a variable of the contracts, the keyword `self` must be used. I.e

In order to reference a variable within the contract, you must use the keyword `self`, i.e `self._variableName`.

Note that when using `msg.sender`, the function being called externally with have the address of the user, but if a function is called from within that function, the `msg.sender` will then be the contract.

| Variable type | Description | Members |
|:-------------:|:-----------:|:-------:|
| `self` | The contract | `balance` The balance of the contract
 To reference any variable within the contract, (internal or external) the `self` keyword must be used i.e `self.isLocked` |
| `bool` | Boolean | ~ |
| `int128` | Signed int (positive and negative numbers) | ~ |
| `uint256` | Unsigned int (only positive) | ~ |
| `decimal` | decimals (is signed, 10 decimal places) | ~ |
| `address` | Ethereum address | `balance`: Balance (returned in `wei_value`)
 `codesize`: Size of address (returns `int128`)
 `is_contract`: If the address is a contract |
| `timestamp` | time stamps (`uint256` measured in seconds) | |
| `timedelta` | time since/change (`uint256` in seconds) | **NOTE** `timedelta`s can be added together, and can be added to `timestamps`, but two `timestamps` cannot be added together. |
| `wei_value` | Wei (`uint256`) | ~ |
| `bytes32` | Byte 32 array | `sha3` hash: `sha3( <bytes32> )`
 concatenation: `concat( <bytes32>, ... )`
 slicing: `slice( <bytes32, start=_start, len=_len )` returns a slice of the specified length (`_len`) starting at `_start` |
| `bytes[maxLength]` | Fixed-sized byte array i.e `bytes[100]`, the size is fixed and cannot be unspecified | ~ |
| `string[maxLength]` | Fixed-size strings:  i.e `string[100]` | `len( <string> )` length
 `sha3` hash: `sha3( <string> )`
 concatenation: `concat( <string>, ... )`
 slicing: `slice( <string>, start=_start, len=_len)` (same as `bytes32` slicing) |
| `_name: VariableType[_size]` | Fixed-sized lists i.e `_balances: uint256[100]` (multidimensional lists are supported i.e `_allowances: uint256[100][100]`) | ~ |
| `struct StructName:` | `struct StructName: `
` value1: int128 `
` value2: string[100]`
`#Constructing:`
`exampleStruct = MyStruct({value1: 123, value2: "string"})`
`#Getting data out`
`exampleStruct.value1 = 1` | **NOTE** as this is a pythonic language, tabbing is important. The variables within the struct should be tabbed |
| Custom Units | `units: {`
`cm: "centimeter"`
`}`
 To use it: `a: int128(cm)` | ~ |

### Declaring a function
Much like Solidity there are decorator tags used to indicate if the function is public/private or payable. There are 5 decorators.

1. `@public`: Marks the function as public. This function can only be called by an external contract.
2. `@private`: Marks the function as private. This function can only be called within this contract.
3. `@constant` This function does not alter contract state. The same as a `view` function in Solidity.
4. `@payable` This function can receive ether.
5. `@nonrentant(<unique_key>)`: This function can only called once, internally or externally. Used to prevent reentrancy attacks. More information needed.

Function structure:
```
# Comments
@public
@payable
def functionName():
    <functionality>

# A function with a return type
@public
@payable
def functionReturn() -> bool:
    <functionality>
    return True/False
```

##### Constructor

To declare the constructor in Vyper we make a function called `__init__`. A double underscore on both sides.
```
# A basic constructor that sets the address of the owner.
@public
def __init__(_owner: address):
    self.ownerAddress = _owner
```

##### Default functions
Vyper can have a default function, which is executed on a call to the contract that does not match any functions. Vyper (like Solidity) will generate a default function if it cannot find one, that will automatically revert. This reverting generates an exception, meaning no funds will accidentally be received.
```
Payment: event({amount: int128, from: indexed(address)})

# This is a default function that logs (emits an event) any value sent to the contract
@public
@payable
def __default__():
    log.Payment(msg.value, msg.sender)
```

### Events
An event is declared like below. `indexed` events are the same as `indexed` events in solidity, and are searchable.
```
Transfer: event({amount: uint128, sender: indexed(address), receiver: indexed(address)})
```
To emit an event, you `log` it i.e:
```
log.Payment(msg.value, msg.sender, _to)
```

### Comments and Documentation
Documents are denoted with 3 double quotes starting and ending the comments `"""`. These comments go inside the function or under the event. These comments are [NatSpec Metadata](https://github.com/ethereum/wiki/wiki/Contract-Metadata-Docs-(NatSpec,-ABI)). The documentation has tags, these tags are:
```
"""
@author: The author of the contract/function
@notice: Non technical description of function
@dev: Technical description of function
@param: The parameters of the function
@return: What the function returns
"""
def function(...
```
You can make these comments above the functions/events using the normal `#` comments, but they will then not be [NatSpec Metadata](https://github.com/ethereum/wiki/wiki/Contract-Metadata-Docs-(NatSpec,-ABI)) compatible.

```
# A normal comment
```

### External Contract Interactions
Vyper allows for interactions with external contracts, such as interfaces, importing other contracts and calling functions on external contracts.

##### Interfaces
Vyper has a built-in format option for creating an interface

```
# Use this command to extract the contracts output, which can be copy pasted into your contract to interact with the external contract.
vyper -f external_interface examples/voting/ballot.vy

# External contracts output
contract Ballot:
    def delegated(addr: address) -> bool: constant
    def directlyVoted(addr: address) -> bool: constant
    def giveRightToVote(voter: address): modifying
    def forwardWeight(delegate_with_weight_to_forward: address): modifying

# To then use this contract you would make a contract variable of it:
ballotContract: Ballot

# To then use this variable:
ballotContract(ballotContractAddress).delegated(...
```

##### Importing and implementing external contracts

There are built in interfaces that you can get from `vyper.interfaces`, such as `ERC20` and `ERC721`.
```
# Importing from the available vyper interfaces
from vyper.interfaces import ERC20

# This allows your contract to implement the interface
implements: ERC20
```

Implementing the contract means you will have to implement all abstract functions of that interface.

To make an instance of this contract within your contract:
```
# The interface of the contract cast to an address, followed by .function call ()
ContractInterface(address).function()
# i.e
Ballot(addressOfBallotContract).giveRightToVote(_address)

# To make a variable to store a contract instance at:
some_contract: Ballot

# Inside a function or the constructor
self.some_contract = Ballot(addressOfContract)
```

# Resources
[Vyper data types - Vyper read the docs](https://vyper.readthedocs.io/en/latest/types.html#types)
[Vyper contract structure - Vyper read the docs](https://vyper.readthedocs.io/en/latest/structure-of-a-contract.html)
[Getting started with Vyper - Medium article](https://medium.com/@rossbulat/get-started-with-vyper-the-pythonic-ethereum-smart-contract-language-e5e58969087e)
[Learn Vyper from your browser - Medium article](https://medium.com/coinmonks/learn-the-ethereum-language-vyper-from-within-your-browser-b084ec51302)
[Vyper by example - Vyper read the docs](https://vyper.readthedocs.io/en/latest/vyper-by-example.html)
[Vyper documentation - Vitalik Buterin](https://buildmedia.readthedocs.org/media/pdf/vyper/latest/vyper.pdf)
[Vyper - github](https://github.com/ethereum/vyper)