Chapter 5 Merging Data
5.1 Packages Used in This Chapter
5.2 Relational Databases
Modern databases are huge - think about the amount of information stored at Amazon in the history of each transation, the database where Google logs every single search from every person around the world, or Twitter’s database of all of the tweets (millions each day).
When databases become large, flat spreadsheet style formats are not useful because they create a lot of redundant information, are large to store, and are not efficient to search. Large datasets are instead stored in relational databases - sets of tables that contain unique IDs that allow them to be joined when necessary.
For example, consider a simple customer database. We don’t want to store customer info with our transactions because we would be repeating their name and street address every time they make a new purchase. As a result, we store customer information and transaction information separately.
| CUSTOMER.ID | FIRST.NAME | LAST.NAME | ADDRESS | ZIP.CODE |
|---|---|---|---|---|
| 178 | Alvaro | Jaurez | 123 Park Ave | 57701 |
| 934 | Janette | Johnson | 456 Candy Ln | 57701 |
| 269 | Latisha | Shane | 1600 Penn Ave | 20500 |
| CUSTOMER.ID | PRODUCT | PRICE |
|---|---|---|
| 178 | video | 5.38 |
| 178 | shovel | 12 |
| 269 | book | 3.99 |
| 269 | purse | 8 |
| 934 | mirror | 7.64 |
If we want to make the information actionable then we need to combine these datasets. For example, perhaps we want to know the average purchase amount from an individual in the 57701 zip code. We cannot answer that question with either dataset since the zip code is in one dataset, and the price is in another. We need to merge the data.
## CUSTOMER.ID FIRST.NAME LAST.NAME ADDRESS ZIP.CODE PRODUCT PRICE
## 1 178 Alvaro Jaurez 123 Park Ave 57701 video 5.38
## 2 178 Alvaro Jaurez 123 Park Ave 57701 shovel 12.00
## 3 269 Latisha Shane 1600 Penn Ave 20500 book 3.99
## 4 269 Latisha Shane 1600 Penn Ave 20500 purse 8.00
## 5 934 Janette Johnson 456 Candy Ln 57701 mirror 7.64
full.dat <- merge( customer.info, purchases )
mean( full.dat$PRICE[ full.dat$ZIP.CODE == "57701" ] )
## [1] 8.34
In reality, each purchase would have a purchase ID that is linked to shipping addresses, customer complaints, seller ratings, etc. Each seller would have their own data table with info. Each purchase would be tied to a payment type, which has its own data table. The system gets quite complex, which is why it is important to pay attention to the details of putting the data back together again.
We will cover a few details of data merges that will help you avoid common and very subtle mistakes that can lead to incorrect inferences.
5.3 Set Theory
In order to merge data correctly you need to understand some very basic principles of set theory.
5.3.1 Set Theory Functions
Let’s assume we have two sets: set1=[A,B], set2=[B,C]. Each element in this set represents a group of observations that occurs in the dataset. So B represents people that occur in both datasets, A represents people that occur only in the first dataset, and C represents people that only occur in the second dataset.
We can then describe membership through three operations:
| Operation | Description |
|---|---|
| union | The universe of all elements across all both sets: [A,B,C] |
| intersection | The elements shared by both sets: [B] |
| difference | The elements in my first set, not in my second [A] or [C] |
Let’s see how this might work in practice with an example of members of a study:
name <- c("frank","wanda","sanjay","nancy")
group <- c("treat","treat","control","control")
gender <- c("male","female","male","female")
data.frame( name, group, gender ) %>% pander
| name | group | gender |
|---|---|---|
| frank | treat | male |
| wanda | treat | female |
| sanjay | control | male |
| nancy | control | female |
For this example let’s define set 1 as the treatment group, and set 2 as all women in the study. Note that set membership is always defined as binary (you are in the set or out), but it can include multiple criteria (the set of animals can contains cats, dogs, and mice).
frank and wanda
wanda and nancy
Now we can specify group belonging using some convenient set theory functions: union(), setdiff(), and intersect().
## [1] "frank" "wanda" "nancy"
## [1] "wanda"
## [1] "frank"
## [1] "nancy"
It is very important to note that union() and intersect() are symmetric functions, meaning intersect(x,y) will give you the same result as intersect(y,x). The setdiff() function is not symmetric, however.
5.3.2 Set Theory Using Logical Operators
Typically you will define your groups using logical operators, which perform the exact same funciton as set theory functions but are a little more expressive and flexible.
Let’s use the same example above where x=“treatment” and y=“female”, then consider these cases:
Who belongs in each group?
## [1] "frank" "wanda"
## [1] "wanda"
## [1] "frank"
## [1] "frank" "wanda" "nancy"
Who belongs in these groups?
- !x & !y
- x & ! ( x & y )
- ( x | y ) & ! ( x & y )
5.4 Merging Data
The Merge Function
The merge function joins two datasets. The function requires two datasets as the arguments, and they need to share a unique ID variable. Recall the example from above:
## CUSTOMER.ID FIRST.NAME LAST.NAME ADDRESS ZIP.CODE PRODUCT PRICE
## 1 178 Alvaro Jaurez 123 Park Ave 57701 video 5.38
## 2 178 Alvaro Jaurez 123 Park Ave 57701 shovel 12.00
## 3 269 Latisha Shane 1600 Penn Ave 20500 book 3.99
## 4 269 Latisha Shane 1600 Penn Ave 20500 purse 8.00
## 5 934 Janette Johnson 456 Candy Ln 57701 mirror 7.64
The important thing to keep in mind is that the default merge operation uses the intersection of the two datasets. It will drop all elements that don’t occur in both datasets. We may want to fine-tune this as to not lose valuable data and potentially bias our analysis. As an example, no illegal immigrants will have social security numbers, so if you are merging using the SSN, you will drop this group from the data, which could impact your results.
With a little help from the set theory examples above, we can think about which portions of the data we wish to drop and which portions we wish to keep.
| Argument | Usage |
|---|---|
| all=F | DEFAULT - new dataset contains intersection of X and Y (B only) |
| all=T | New dataset contains union of X and Y (A, B & C) |
| all.x=T | New dataset contains A and B, not C |
| all.y=T | New dataset contains B and C, not A |
Here is some demonstrations with examples adapted from the R help file.
## surname nationality deceased
## 1 Tukey US yes
## 2 Tierney US no
## 3 Ripley UK no
## 4 McNeil Australia no
## 5 Shakespeare England yes
## name title
## 1 Tukey Exploratory Data Analysis
## 2 Venables Modern Applied Statistics
## 3 Ripley Spatial Statistics
## 4 Ripley Stochastic Simulation
## 5 McNeil Interactive Data Analysis
## 6 R Core Team An Introduction to R
# adding books to the author bios dataset ( set B only )
merge(authors, books, by.x = "surname", by.y = "name")
## surname nationality deceased title
## 1 McNeil Australia no Interactive Data Analysis
## 2 Ripley UK no Spatial Statistics
## 3 Ripley UK no Stochastic Simulation
## 4 Tukey US yes Exploratory Data Analysis
# adding author bios to the books dataset ( set B only )
merge(books, authors, by.x = "name", by.y = "surname")
## name title nationality deceased
## 1 McNeil Interactive Data Analysis Australia no
## 2 Ripley Spatial Statistics UK no
## 3 Ripley Stochastic Simulation UK no
## 4 Tukey Exploratory Data Analysis US yes
# keep books without author bios, lose authors without books ( sets A and B )
merge( books, authors, by.x = "name", by.y = "surname", all.x=T )
## name title nationality deceased
## 1 McNeil Interactive Data Analysis Australia no
## 2 R Core Team An Introduction to R <NA> <NA>
## 3 Ripley Spatial Statistics UK no
## 4 Ripley Stochastic Simulation UK no
## 5 Tukey Exploratory Data Analysis US yes
## 6 Venables Modern Applied Statistics <NA> <NA>
# keep authors without book listed, lose books without author bios ( sets B and C )
merge( books, authors, by.x = "name", by.y = "surname", all.y=T )
## name title nationality deceased
## 1 McNeil Interactive Data Analysis Australia no
## 2 Ripley Spatial Statistics UK no
## 3 Ripley Stochastic Simulation UK no
## 4 Shakespeare <NA> England yes
## 5 Tierney <NA> US no
## 6 Tukey Exploratory Data Analysis US yes
# dont' throw out any data ( sets A and B and C )
merge( books, authors, by.x = "name", by.y = "surname", all=T )
## name title nationality deceased
## 1 McNeil Interactive Data Analysis Australia no
## 2 R Core Team An Introduction to R <NA> <NA>
## 3 Ripley Spatial Statistics UK no
## 4 Ripley Stochastic Simulation UK no
## 5 Shakespeare <NA> England yes
## 6 Tierney <NA> US no
## 7 Tukey Exploratory Data Analysis US yes
## 8 Venables Modern Applied Statistics <NA> <NA>
Also note that the order of your datasets in the argument list will impact the inclusion or exclusion of elements.
merge( x, y, all=F ) EQUALS merge( y, x, all=F )
merge( x, y, all.x=T ) DOES NOT EQUAL merge( y, x, all.x=T )
5.4.1 The by.x and by.y Arguments
When you use the default merge() function without specifying the variables to merge upon, the function will check for common variable names across the two datasets. If there are multiple, it will join the shared variables to create a new unique key. This might be problematic if that was not the intent.
Take the example of combining fielding and salary data in the Lahman package. If we are not explicit about the merge variable, we may get odd results. Note that they two datasets share four ID variables.
## [1] "playerID" "yearID" "teamID" "lgID"
# merge id
int <- intersect( names(Fielding), names(Salaries) )
paste( int[1],int[2],int[3],int[4], sep="." )
## [1] "playerID.yearID.teamID.lgID"
To avoid problems, be explicit using the by.x and by.x arguments to control which variable is used for the merge.
## yearID teamID lgID playerID salary stint POS G GS InnOuts PO A E DP
## 1 1985 ATL NL barkele01 870000 1 P 20 18 221 2 9 1 0
## 2 1985 ATL NL bedrost01 550000 1 P 37 37 620 13 23 4 3
## 3 1985 ATL NL benedbr01 545000 1 C 70 67 1698 314 35 4 1
## 4 1985 ATL NL campri01 633333 1 P 66 2 383 7 13 4 3
## 5 1985 ATL NL ceronri01 625000 1 C 91 76 2097 384 48 6 4
## 6 1985 ATL NL chambch01 800000 1 1B 39 27 814 299 25 1 31
## PB WP SB CS ZR
## 1 NA NA NA NA NA
## 2 NA NA NA NA NA
## 3 1 9 65 24 1
## 4 NA NA NA NA NA
## 5 6 20 69 29 1
## 6 NA NA NA NA NA
## playerID yearID.x teamID.x lgID.x salary yearID.y stint teamID.y
## 1 aardsda01 2010 SEA AL 2750000 2009 1 SEA
## 2 aardsda01 2010 SEA AL 2750000 2015 1 ATL
## 3 aardsda01 2010 SEA AL 2750000 2006 1 CHN
## 4 aardsda01 2010 SEA AL 2750000 2008 1 BOS
## 5 aardsda01 2010 SEA AL 2750000 2013 1 NYN
## 6 aardsda01 2010 SEA AL 2750000 2012 1 NYA
## lgID.y POS G GS InnOuts PO A E DP PB WP SB CS ZR
## 1 AL P 73 0 214 2 5 0 1 NA NA NA NA NA
## 2 NL P 33 0 92 0 1 1 0 NA NA NA NA NA
## 3 NL P 45 0 159 1 5 0 1 NA NA NA NA NA
## 4 AL P 47 0 146 3 6 0 0 NA NA NA NA NA
## 5 NL P 43 0 119 1 5 0 0 NA NA NA NA NA
## 6 AL P 1 0 3 0 0 0 0 NA NA NA NA NA
5.5 Non-Unique Observations in ID Variables
In some rare instances, you will need to merge to datasets that have non-singular elements in the unique key ID variables, meaning each observation / individual appears more than one time in the data. Note that in this case, for each occurance of an observation / individual in your X dataset, you will merge once with each occurance of the same observation / individual in the Y dataset. The result will be a multiplicative expansion of the size of your dataset.
For example, if John appears on four separate rows of X, and three seperate rows of Y, the new dataset will contain 12 rows of John (4 x 3 = 12).
dataset X contains four separate instances of an individual [ X1, X2, X3, X4 ]
dataset Y contains three separate instances of an individual [ Y1, Y2, Y3 ]
After the merge we have one row for each pair:
X1-Y1
X1-Y2
X1-Y3
X2-Y1
X2-Y2
X2-Y3
X3-Y1
X3-Y2
X3-Y3
X4-Y1
X4-Y2
X4-Y3
For example, perhaps a sales company has a database that keeps track of biographical data, and sales performance. Perhaps we want to see if there is peak age for sales performance. We need to merge these datasets.
bio <- data.frame( name=c("John","John","John"),
year=c(2000,2001,2002),
age=c(43,44,45) )
performance <- data.frame( name=c("John","John","John"),
year=c(2000,2001,2002),
sales=c("15k","20k","17k") )
# correct merge
merge( bio, performance, by.x=c("name","year"), by.y=c("name","year") )
## name year age sales
## 1 John 2000 43 15k
## 2 John 2001 44 20k
## 3 John 2002 45 17k
## name year.x age year.y sales
## 1 John 2000 43 2000 15k
## 2 John 2000 43 2001 20k
## 3 John 2000 43 2002 17k
## 4 John 2001 44 2000 15k
## 5 John 2001 44 2001 20k
## 6 John 2001 44 2002 17k
## 7 John 2002 45 2000 15k
## 8 John 2002 45 2001 20k
## 9 John 2002 45 2002 17k
It is good practice to check the size (number of rows) of your dataset before and after a merge. If it has expanded, chances are you either used the wrong unique IDs, or your dataset contains duplicates.
5.5.1 Example of Incorrect Merge
Here is a tangible example using the Lahman baseball dataset. Perhaps we want to examine the relationship between fielding position and salary. The Fielding dataset contains fielding position information, and the Salaries dataset contains salary information. We can merge these two datasets using the playerID field.
If we are not thoughtful about this, however, we will end up causing problems. Let’s look at an example using Kirby Pucket.
## playerID yearID stint teamID lgID POS G GS InnOuts PO A E DP
## 83848 puckeki01 1984 1 MIN AL OF<PHONE_NUMBER> 438 16 3 4
## 85157 puckeki01 1985 1 MIN AL OF<PHONE_NUMBER> 465 19 8 5
## 86489 puckeki01 1986 1 MIN AL OF<PHONE_NUMBER> 429 8 6 3
## 87896 puckeki01 1987 1 MIN AL OF<PHONE_NUMBER> 341 8 5 2
## 89264 puckeki01 1988 1 MIN AL OF<PHONE_NUMBER> 450 12 3 4
## 90685 puckeki01 1989 1 MIN AL OF<PHONE_NUMBER> 438 13 4 3
## PB WP SB CS ZR
## 83848 NA NA NA NA NA
## 85157 NA NA NA NA NA
## 86489 NA NA NA NA NA
## 87896 NA NA NA NA NA
## 89264 NA NA NA NA NA
## 90685 NA NA NA NA NA
## [1] 21
## yearID teamID lgID playerID salary
## 280 1985 MIN AL puckeki01 130000
## 917 1986 MIN AL puckeki01 255000
## 1610 1987 MIN AL puckeki01 465000
## 2244 1988 MIN AL puckeki01 1090000
## 2922 1989 MIN AL puckeki01 2000000
## 3717 1990 MIN AL puckeki01 2816667
## [1] 13
kirby.field.salary <- merge( kirby.fielding, kirby.salary, by.x="playerID", by.y="playerID" )
head( select( kirby.field.salary, yearID.x, yearID.y, POS, G, GS, salary ) )
## yearID.x yearID.y POS G GS salary
## 1 1984 1985 OF<PHONE_NUMBER>00
## 2 1984 1986 OF<PHONE_NUMBER>00
## 3 1984 1987 OF<PHONE_NUMBER>00
## 4 1984 1988 OF<PHONE_NUMBER>000
## 5 1984 1989 OF<PHONE_NUMBER>000
## 6 1984 1990 OF<PHONE_NUMBER>667
## [1] 273
## [1] 273
What we have done here is taken each year of fielding data, and matched it to every year of salary data. We can see that we have 21 fielding observations and 13 years of salary data, so our resulting dataset is 273 observation pairs.
This merge also makes it difficult to answer the question of the relationship between fielding position and salary if players change positions over time.
The correct merge in this case would be a merge on a playerID-yearID pair. We can create a unique key by combining playerID and yearID using paste():
## [1] "puckeki01.1984" "puckeki01.1985" "puckeki01.1986" "puckeki01.1987"
## [5] "puckeki01.1988" "puckeki01.1989"
But there is a simple solution as the merge function also allows for multiple variables to be used for a merge() command.
kirby.field.salary <- merge( kirby.fielding, kirby.salary,
by.x=c("playerID","yearID"),
by.y=c("playerID","yearID") )
nrow( kirby.field.salary )
## [1] 20
5.6 The %in% function
Since we are talking about intersections and matches, I want to briefly introduce the %in% function. It is a combination of the two.
The intersect() function returns a list of unique matches between two vectors.
## [1] "yearID" "teamID" "lgID" "playerID"
The match() function returns the position of matched elements.
## [1] 3 1 NA 1
The %in% function returns a logical vector, where TRUE signifies that the element in y also occurs in x. In other words, does a specific element in y belong to the intersection of x,y.
This is very useful for creating subsets of data that belong to both sets.
x <- c("A","B","C")
y <- c("B","D","A","B","F","B")
y %in% x # does each element of y occur anywhere in x?
## [1] TRUE FALSE TRUE TRUE FALSE TRUE
## [1] "B" "A" "B" "B"
5.7 The Match Function
Often times we do not need to merge data, we may just need sort data in one dataset so that it matches the order of another dataset. This is accomplished using the match() function.
Note that we can rearrange the order of a dataset by referencing the desired position.
## [1] "Second" "Third" "First"
## [1] "First" "Second" "Third"
The match() function returns the positions of matches of its first vector to the second vector listed in the arguments. Or in other words, the order that vector 2 would need to follow to match vector 1.
## x y
## [1,] "A" "B"
## [2,] "B" "D"
## [3,] "C" "A"
## [1] 3 1 NA
## [1] 2 NA 1
## [1] "A" "B" NA
We can see that match() returns the correct order to put y in so that it matches the order of x. In the re-ordered vector, the first element is the original third element A, the second element is the original first element B, and there is no third element because D did not match anything in x.
Note the order of arguments in the function:
match( data I want to match to , data I need to re-order )
We can use this position information to re-order y as follows:
## x y
## [1,] "O" "J"
## [2,] "B" "C"
## [3,] "C" "H"
## [4,] "M" "O"
## [5,] "H" "D"
## [6,] "G" "K"
## [7,] "J" "I"
## [8,] "A" "B"
## [9,] "E" "A"
## [10,] "L" "G"
## x y.new
## [1,] "O" "O"
## [2,] "B" "B"
## [3,] "C" "C"
## [4,] "M" NA
## [5,] "H" "H"
## [6,] "G" "G"
## [7,] "J" "J"
## [8,] "A" "A"
## [9,] "E" NA
## [10,] "L" NA
# Note the result if you confuse the order or arguments
order.y <- match( y, x )
y.new <- y[ order.y ]
cbind( x, y.new )
## x y.new
## [1,] "O" "I"
## [2,] "B" "H"
## [3,] "C" "D"
## [4,] "M" "J"
## [5,] "H" NA
## [6,] "G" NA
## [7,] "J" NA
## [8,] "A" "C"
## [9,] "E" "B"
## [10,] "L" "K"
This comes in handy when we are matching information between two tables. For example, in GIS the map regions follow a specific order but your data does not. Create a color scheme for levels of your data, and then re-order the colors so they match the correct region on the map. In this example, we will look at unemployment levels by county.
# assign a color to each level of unemployment, red = high, gray = medium, blue = low
color.function <- colorRampPalette( c("steelblue", "gray70", "firebrick") )
color.vector <- cut( rank(unemp$unemp), breaks=7, labels=color.function( 7 ) )
color.vector <- as.character( color.vector )
head( color.vector )
## [1] "#B28282" "#B28282" "#B22222" "#B25252" "#B28282" "#B22222"
# what went wrong here?
# our unemployment data (and thus the color vector) follows a different order
cbind( map.id=county.fips$fips, data.id=unemp$fips, color.vector )[ 2500:2510 , ]
## map.id data.id color.vector
## [1,] "48011" "47149" "#B28282"
## [2,] "48013" "47151" "#B22222"
## [3,] "48015" "47153" "#B22222"
## [4,] "48017" "47155" "#B28282"
## [5,] "48019" "47157" "#B28282"
## [6,] "48021" "47159" "#B22222"
## [7,] "48023" "47161" "#B25252"
## [8,] "48025" "47163" "#B3B3B3"
## [9,] "48027" "47165" "#B28282"
## [10,] "48029" "47167" "#B25252"
## [11,] "48031" "47169" "#B25252"
# place the color vector in the correct order
this.order <- match( county.fips$fips, unemp$fips )
color.vec.ordered <- color.vector[ this.order ]
# colors now match their correct counties
map( database="county", col=color.vec.ordered, fill=T, lty=0 )
title( main="Unemployment Levels by County in 2009")
Note that elements can be recycled from your y vector:
## x y
## [1,] "A" "B"
## [2,] "B" "D"
## [3,] "C" "A"
## [4,] "B" "F"
## [1] 3 1 NA 1
## x y.new
## [1,] "A" "A"
## [2,] "B" "B"
## [3,] "C" NA
## [4,] "B" "B"


Co-op Soc merged with the Co-op Soc Charitable Society (CSCS) in 2018, and since then, the charity portfolio has been an integral way for Co-op scholars to give back to the community.
We organise fun events to raise awareness for a diverse range of charities and social issues, encouraging collective participation through events such as the World’s Greatest Shave.
Beyond having a positive impact on society, our core aims are to socialise, meet new people and above all, contribute with a giving heart.
2020 Events


§171-9 Land districts. For the purposes of this chapter the State is divided into the following land districts:
First land district: The island of Hawaii and the reefs and reef lands off the shores of the island of Hawaii.
Second land district: The islands of Maui, Molokai, Lanai, Kahoolawe, and Molokini and the reefs and reef lands off the shores of these islands.
Third land district: The island of Oahu and all other islands and reefs in the State of Hawaii not included in the other districts.
Fourth land district: The islands of Kauai, Niihau, Lehua, and Kaula, and the reefs and reef lands off the shores of these islands. [L 1962, c 32, pt of §2; Supp, §103A-9; HRS §171-9]
Cross References
Districts, generally, see §4-1.


It’s been a long time since I had a consistent blog and I miss it often. Not for the having my voice out there but because by having a place to write I see the world differently. I take note of things I wouldn’t necessarily have and I spend more time thinking about things. I want to get back to that place.
I recall reading an article somewhere about why people should blog and it was for that exact reason. Because it asks the writer to take note of things that they may not otherwise if they were not thinking of writing.
So, I’m rekindling my blog and for now putting my portfolio and other work offline while I think about how to reenvision them. I have some ideas, but they’re going to take some serious work to make happen.
Lastly, I’ve been a huge proponent of Wordpress in the past. I think it’s a great platform for so many people but it’s just gotten so bloated and obnoxious to write in that I couldn’t be bothered anymore. It’s a full-on-publishing CMS, not a writing tool. I want to get back to writing. So, after wobbling around with a half-stab at Nesta, I came upon Octopress. Octopress is a lightweight, built for programmers, and gets me back into the command line and markdown. I also get to write SASS instead of CSS for styling and layout which I’m excited about getting deeper into.
Working in Sublime Text 2 to write and publishing by pushing a markdown file brings me back to the days where I wrote .php files and uploaded them to a folder and a php script continually displayed the latest in the list while appending that file to an archive list.


Work Experience
Software Developer
EngwIT
Wrote C# code for backend services and console apps. Implemented services for systems integrations with Azure Service Bus. Designed and normalized SQL Server databases. Developed web applications with ASP.NET MVC and Razor pages. Implemented data access layer with Entity Framework and WCF services. Developed mobile applications using the Android SDK. Built REST APIs using .NET Core. Locked down APIs with token-based authentication and role-based authorization. Other development included building ad-hoc WPF apps, Windows Forms, and SPAs with Angular.
Security Assessor
EngwIT
Assessed the identity management and privileged account provisioning practices of one of the nation’s largest banks. This included revising internal security policies, hardening the Active Directory environment, and introducing techniques for improving privileged access monitoring. Contributed to developing a privileged account provisioning app that reduced privileged accounts by over 50%. Identified and documented vulnerabilities in over 25 enterprise processes and tools.
Education
Cybersecurity, M.S.
John Brown University
Secure Software Design, Network Security, IT Law and Privacy, Digital Forensics, Ethical Hacking
Computer Science, A.A.S.
NWACC
Object Oriented Programming with C++ and Java, Relational Databases, Android Mobile Development
Psychology, B.A.
University of Arkansas
Graduated with Honors, Minor in Biology
Skills
C# / .NET
Backend & Databases
Android
Web Developement
Hobbies
I enjoy backpacking and camping in the Ozarks, photography with my wife, building PCs, and playing music with my band.


🍽 RICOTTA STUFFED CHICKEN 🍽
Butterflied chicken stuffed with ricotta, Parmesan and herbs, then grilled or baked.
Ingredients
- 1 whole roasting chicken
- 12 oz ricotta cheese
- 1/3 cup grated Parmesan cheese
- 2 tsp chopped fresh basil
- 1 tsp chopped fresh tarragon
- 2 tbsp chopped fresh parsley
- 1 egg
- Salt
- Extra virgin olive oil
- 1/4 tsp paprika
Directions
- Rinse chicken and pat dry with paper towels. Butterfly the chicken by using poultry shears or a knife to cut along one side of the backbone. Cut along the other side and remove the backbone and tail.
- In a medium bowl, mix the ricotta, Parmesan cheese, egg, parsley, garlic, 2 teaspoons of chopped basil, and 1 teaspoon of chopped tarragon.
- Using a sharp paring knife and your fingers, loosen skin over top of chicken and drumsticks starting at neck edge. Work with your fingers and hand to press under the chicken skin to separate the chicken skin from the chicken breasts, thighs, and drumsticks. Be gentle, the skin can easily tear.
- Brush chicken lightly with oil; sprinkle with 1/2 teaspoon basil, 1/2 teaspoon tarragon, paprika, and a generous amount of salt.
- Place the chicken, skin side up, on the cooking grate, away from the side with coals if you are using a charcoal grill, or above the middle burner if you are using gas.
- Roast the chicken for an hour or until the juices run clear from the thigh when pierced with a fork. (Chicken should have an internal temperature of 165°F when tested with a meat thermometer.) If the skin browns before the chicken is cooked through, cover it loosely with foil.
- Transfer chicken to a cutting board; let stand 10 minutes. Cut into quarters to serve.
Serve Ricotta stuffed chicken Recipe and enjoy !


CSUN Map Quiz
Double click on the map the location of the following:
Oviatt Library
Matador Square
Orange Grove
University Student Union
Matadome
00:00:00


@@include("partials/head.html") @@include("partials/header.html")
Query is an email newsletter for makers, indie hackers, entrepreneurs. Every Tuesday, @jrdnbwmn sends out a new interview with a successful entrepreneur. These are bite-sized Q&A’s—only 3 questions, focused on better ways to do work and start a business. Here's an example.
Just in case it needs to be said out loud: this is free, there's no spam, your email will never be shared, and you can unsubscribe whenever you want.
@@include("partials/newsletter-form.html")


This function allows you to plot average chromosome signal for one or two selected samples.
It takes as input the output of chr_coverage
(16x2 R data frame).
chr_coverage_plot(coverageDataA, coverageDataB, genome, meanNorm = FALSE, yMax, onScreen = TRUE, fileName, colorA = "grey50", colorB = "green")
| coverageDataA | A 16x2 data frame of coverage: chromosome and average signal. No default. |
|---|---|
| coverageDataB | Optional 16x2 data frame of coverage: chromosome and average signal. No default. |
| genome | A string representing the genome used for mapping. No default. |
| meanNorm | Boolean indicating whether input data are normalized to genome-wide
averages ( |
| yMax | Optional number to be used as the max Y scale value in the plots. No default. |
| onScreen | Boolean indicating plots should be returned to the screen ( |
| fileName | A string to name the output .pdf file in case ( |
| colorA | Optional R color for sample A. Defaults to |
| colorB | Optional R color for sample B. Defaults to |
A dot plot of one or two samples, either on screen or as a .pdf file (in the working directory).
# NOT RUN { chr_coverage_plot(WT, rec8, genome = 'SK1', onScreen = TRUE, colorB = 'red') chr_coverage_plot(WT, dot1, genome = 'S288C', meanNorm = TRUE, onScreen = FALSE, fileName='chr_coverage_WT_and_dot1.pdf') # }


Pirate (ARRR) is a cryptocurrency that solves the issue of financial privacy on the blockchain through forced anonymous transactions. Protect your wallet and transactions with Pirate’s completely anonymous network. With forced private transactions, your privacy cannot be compromised by another users’ activity on the network. If you wish to learn more, please join the official Pirate Discord at https://pirate.black/discord/ or message FishyGuts#5085, who will be happy to help out.
100 messages
Before 05-Dec-19 12:00 AM
Hollowman900012-Oct-18 01:53 PM
I bought 30k @ 0.165kmd yesterday
Cowboycrypto just sold at 0.14
Damnit man
0x0312-Oct-18 01:53 PM
that reminds me, @Alright didnt complain in a few days, is he alright?
Hollowman900012-Oct-18 01:54 PM
But, there it is, ebbs and flows
FishyGuts12-Oct-18 01:54 PM
He's on vacation. Delete that tag before he returns.
ComputerGenie 👴👴👴12-Oct-18 01:54 PM
lol
Alright12-Oct-18 01:54 PM
DELETE IT
Hollowman900012-Oct-18 01:54 PM
delet this
0x0312-Oct-18 01:54 PM
this is not #safespace
1
1
Alright12-Oct-18 01:55 PM
I was sinking a lot of time into being frustrated over PIRATE, so I muted all the channels and am back to being productive
1
0x0312-Oct-18 01:55 PM
sinking and thinking
i'll shut up now
ComputerGenie 👴👴👴12-Oct-18 01:57 PM
back to being productive aka "coming up with 1000 new ideas and making @blackjok3r do all the work"
1
1
1
1
1
FishyGuts12-Oct-18 01:57 PM
!kmdtip @Alright 1.777
1
KMD TipBotBOT12-Oct-18 01:57 PM
TipBot
@FishyGuts (FishyGuts#5085)
You tipped @Alright1.777 KMD
blackjok3r12-Oct-18 01:58 PM
to be fair .. I spent 3 days trying to make a troll box .. and alright left his holidays early ... stayed up for more than 24H and made a much better solution


Sakurasou No Pet No Kanojo
Sinopsismore_vert
I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.
Genre
Full Synopsisclose
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Tentang Anime Ini
| Informasi | |
|---|---|
| Type | TV |
| Episodes | 24 |
| Status | Finished Airing |
| Aired | Oct 9, 2012 to Mar 26, 2013 |
| Premiered | Fall 2012 |
| Broadcast | Unknown |
| Producers | Genco, Media Factory, ASCII Media Works |
| Licensors | Sentai Filmworks |
| Studios | J.C.Staff |
| Source | Light novel |
| Duration | 23 min. per ep |
| Judul Alternatif | |
|---|---|
| English | The Pet Girl of Sakurasou |
| Synonyms | Sakura-sou no Pet na Kanojo |
| Statistik MAL | |
|---|---|
| Rating | PG-13 - 13 Tahun Ke Atas |
| Score | 8.341 (scored by 297,049 users) |
| Ranked | #2062 |
| Popularity | #62 |
| Members | 517,060 |
| Favorites | 17,276 |
Streaming Sakurasou No Pet No Kanojo
- Episode 120ondemand_video
- Episode 119ondemand_video
- Episode 118ondemand_video
- Episode 117ondemand_video
- Episode 120ondemand_video
- Episode 119ondemand_video
- Episode 118ondemand_video
- Episode 117ondemand_video
- Episode 120ondemand_video
- Episode 119ondemand_video
- Episode 118ondemand_video
- Episode 117ondemand_video
- Episode 120ondemand_video
- Episode 119ondemand_video
- Episode 118ondemand_video
- Episode 117ondemand_video
- Episode 120ondemand_video
- Episode 119ondemand_video
- Episode 118ondemand_video
- Episode 117ondemand_video
Download Sakurasou No Pet No Kanojo
- Episode 120archive
- Episode 119archive
- Episode 118archive
- Episode 117archive
- Episode 120archive
- Episode 119archive
- Episode 118archive
- Episode 117archive
- Episode 120archive
- Episode 119archive
- Episode 118archive
- Episode 117archive
- Episode 120archive
- Episode 119archive
- Episode 118archive
- Episode 117archive
- Episode 120archive
- Episode 119archive
- Episode 118archive
- Episode 117archive


What is it?
For Honor is an upcoming online action hack and slash video game in development by Ubisoft Montreal and set to be published by Ubisoft for Microsoft Windows, PlayStation 4, and Xbox One. It was announced at the 2015 Electronic Entertainment Expo. The game features a melee combat system described as "The Art of Battle" by the developers and allows players to play the roles of historical soldiers such as medieval knights, samurai, and vikings within a Medieval fantasy setting.
Why am I pumped?
For Honor is attempting a hack and slash multiplayer medieval combat game on a scale that hasn't been seen yet. Chivalry would be its closest current game, which is fun, but they are trying it on a much more Battlefield type scale with weapons and maps that make Chivalry look tiny and weak in comparison!


HTML5 material
August 04, 2015New features in HTML5 HTML 5 New Doctype and Charset HTML 5 New Structure <section>，<article>，<nav>，<header>，<footer>，<aside>
HTML 5 New Inline Elements These inline elements define some basic concepts and keep them semantically marked up, mostly to do with time:
HTML 5 New Form Types: datetime,datetime-local,date,month,week,time,number,range,email,url 新增的表单元素：


Dolor necessitatibus
Dolor necessitatibus
Adipisicing blanditiis dolor
This code was written to debug a problem of line-height on a grid. In the end the bug was introduce by Semantic UI, forcing a line-height smaller than the font-size.


The alert plugin include options and methods to close alert messages.
data-*
AttributesAdd data-dismiss="alert"
to a link or a button element to close the alert message.
×
Close manually with:
$('.close').alert();
The following table lists all available alert methods.
| Method | Description |
|---|---|
.alert("close") | Closes the alert message |
The following table lists all available alert events.
| Event | Description |
|---|---|
close.bs.alert | Occurs when the alert message is about to be closed |
closed.bs.alert | Occurs when the alert message has been closed |


--- layout: page title: About Me description: '' header-img: img/about-bg.jpg ---
Hi. I'm Akshay Khale, I code, I learn, I write...
I am a Web-Developer, Willing to learn new technologies and like to do research in Web and Mobile Technologies and keep interest in Website Optimization and Machine Learning.
I am working as Sr. Programmer at Vamaship - The Tech Logistics Platform.
On this blog I will be writing about my reading, technical information or anything that is worth sharing.
You can follow me on TheAkshayKhale@Twitter or connect with me on TheAkshayKhale@Facebook or just drop me an email at<EMAIL_ADDRESS>If you have any questions and you think I can answer those, please feel free to write me an email and I will surely reply within 24Hrs.
Live Long and Prosper!!!


|
M480 BSP V3.05.005
The Board Support Package for M480 Series
|
Functions | |
| void | usbh_hid_regitser_mouse_callback (HID_MOUSE_FUNC *func) |
| Register the mouse event callback function to HID class driver. Any mouse reports will be sent to user application via this callback. More... | |
| void | usbh_hid_regitser_keyboard_callback (HID_KEYBOARD_FUNC *func) |
| Register the keyboard event callback function to HID class driver. Any keyboard reports will be sent to user application via this callback. More... | |
| void | usbh_core_init (void) |
| Initialize M480 USB Host controller and USB stack. More... | |
| int | usbh_pooling_hubs (void) |
| Let USB stack polls all root hubs and downstream hubs. If there's any hub port change found, USB stack will manage the hub events in this function call. In this function, USB stack enumerates newly connected devices and remove staff of disconnected devices. User's application should periodically invoke this function. More... | |
| void | usbh_install_conn_callback (CONN_FUNC *conn_func, CONN_FUNC *disconn_func) |
| Install device connect and disconnect callback function. More... | |
| void | usbh_suspend (void) |
| Suspend USB Host Controller and devices. More... | |
| void | usbh_resume (void) |
| Resume USB Host controller and devices. More... | |
| struct udev_t * | usbh_find_device (char *hub_id, int port) |
| Find the device under the specified hub port. More... | |
| uint32_t | get_ticks (void) |
| A function return current tick count. More... | |
| void | usbh_cdc_init (void) |
| Init USB Host CDC driver. More... | |
| struct cdc_dev_t * | usbh_cdc_get_device_list (void) |
| Get a list of currently connected USB Hid devices. More... | |
| HIDDEN_SYMBOLS int32_t | usbh_cdc_set_control_line_state (CDC_DEV_T *cdev, int active_carrier, int DTE_present) |
| SET_CONTROL_LINE_STATE request. More... | |
| int32_t | usbh_cdc_start_polling_status (CDC_DEV_T *cdev, CDC_CB_FUNC *func) |
| Start purge the CDC device's interrupt-in transfer pipe. More... | |
| int32_t | usbh_cdc_start_to_receive_data (CDC_DEV_T *cdev, CDC_CB_FUNC *func) |
| Make CDC device start to receive data from bulk-in transfer pipe. More... | |
| int32_t | usbh_cdc_send_data (CDC_DEV_T *cdev, uint8_t *buff, int buff_len) |
| Send a block of data via CDC device's bulk-out transfer pipe. More... | |
| void | usbh_hid_init (void) |
| Initialize USB Host HID driver. More... | |
| struct usbhid_dev * | usbh_hid_get_device_list (void) |
| Get a list of currently connected USB Hid devices. More... | |
| int32_t | usbh_hid_get_report_descriptor (struct usbhid_dev *hdev, uint8_t *desc_buf, int buf_max_len) |
| int32_t | usbh_hid_get_report (struct usbhid_dev *hdev, int rtp_typ, int rtp_id, uint8_t *data, int len) |
| int32_t | usbh_hid_set_report (struct usbhid_dev *hdev, int rtp_typ, int rtp_id, uint8_t *data, int len) |
| int32_t | usbh_hid_get_idle (struct usbhid_dev *hdev, int rtp_id, uint8_t *idle_rate) |
| int32_t | usbh_hid_set_idle (struct usbhid_dev *hdev, int rtp_id, uint8_t idle_rate) |
| int32_t | usbh_hid_get_protocol (struct usbhid_dev *hdev, uint8_t *protocol) |
| int32_t | usbh_hid_set_protocol (struct usbhid_dev *hdev, uint8_t protocol) |
| int32_t | usbh_hid_start_int_read (struct usbhid_dev *hdev, uint8_t ep_addr, HID_IR_FUNC *func) |
| int32_t | usbh_hid_stop_int_read (struct usbhid_dev *hdev, uint8_t ep_addr) |
| int32_t | usbh_hid_start_int_write (struct usbhid_dev *hdev, uint8_t ep_addr, HID_IW_FUNC *func) |
| int32_t | usbh_hid_stop_int_write (struct usbhid_dev *hdev, uint8_t ep_addr) |
| int | usbh_umas_init (void) |
| Register and initialize USB Host Mass Storage driver. More... | |
| int | usbh_umas_disk_status (int drv_no) |
| int | usbh_umas_read (int drv_no, uint32_t sec_no, int sec_cnt, uint8_t *buff) |
| int | usbh_umas_write (int drv_no, uint32_t sec_no, int sec_cnt, uint8_t *buff) |
| int | usbh_umas_ioctl (int drv_no, int cmd, void *buff) |
| HIDDEN_SYMBOLS void | usbh_uac_init (void) |
| Initialize USB Audio Class driver. More... | |
| int | usbh_uac_open (UAC_DEV_T *uac) |
| Open an connected UAC device. More... | |
| struct uac_dev_t * | usbh_uac_get_device_list (void) |
| Get a list of currently connected USB Audio Class devices. More... | |
| int | usbh_uac_get_channel_number (UAC_DEV_T *uac, uint8_t target) |
| Obtain Audio Class device's channel number. More... | |
| int | usbh_uac_get_bit_resolution (UAC_DEV_T *uac, uint8_t target, uint8_t *byte_cnt) |
| Obtain Audio Class device subframe bit resolution.. More... | |
| int | usbh_uac_get_sampling_rate (UAC_DEV_T *uac, uint8_t target, uint32_t *srate_list, int max_cnt, uint8_t *type) |
| Get a list of sampling rate frequencies supported by the UAC device. More... | |
| int | usbh_uac_sampling_rate_control (UAC_DEV_T *uac, uint8_t target, uint8_t req, uint32_t *srate) |
| Set sampling rate frequency. More... | |
| int | usbh_uac_mute_control (UAC_DEV_T *uac, uint8_t target, uint8_t req, uint16_t chn, uint8_t *mute) |
| Control Audio Class device mute on/off. More... | |
| int | usbh_uac_vol_control (UAC_DEV_T *uac, uint8_t target, uint8_t req, uint16_t chn, uint16_t *volume) |
| Audio Class device volume control. More... | |
| int | usbh_uac_auto_gain_control (UAC_DEV_T *uac, uint8_t target, uint8_t req, uint16_t chn, uint8_t *bAGC) |
| Audio Class device automatic gain control. More... | |
| int | usbh_uac_start_audio_in (UAC_DEV_T *uac, UAC_CB_FUNC *func) |
| Start to receive audio data from UAC device. (Microphone) More... | |
| int | usbh_uac_stop_audio_in (UAC_DEV_T *uac) |
| Stop UAC device audio in data stream. More... | |
| int | usbh_uac_start_audio_out (UAC_DEV_T *uac, UAC_CB_FUNC *func) |
| Start to transmit audio data to UAC device. (Speaker) More... | |
| int | usbh_uac_stop_audio_out (UAC_DEV_T *uac) |
| Stop UAC device audio out data stream. More... | |
| int32_t | usbh_cdc_get_line_coding (CDC_DEV_T *cdev, LINE_CODING_T *line_code) |
| GET_LINE_CODING request. More... | |
| int32_t | usbh_cdc_set_line_coding (CDC_DEV_T *cdev, LINE_CODING_T *line_code) |
| SET_LINE_CODING request. More... | |
| uint32_t get_ticks | ( | void | ) |
A function return current tick count.
User application must provide this function to return current tick. The tick should increase by 1 for every 10 ms.
| struct cdc_dev_t * usbh_cdc_get_device_list | ( | void | ) |
Get a list of currently connected USB Hid devices.
| NULL | There's no CDC device found. |
| Otherwise | A list of connected CDC devices. |
The CDC devices are chained by the "next" member of CDC_DEV_T.
Definition at line 280 of file cdc_driver.c.
| int32_t usbh_cdc_get_line_coding | ( | CDC_DEV_T * | cdev, |
| LINE_CODING_T * | line_code | ||
| ) |
GET_LINE_CODING request.
| [in] | cdev | CDC device |
| [out] | line_code | The currently configured line coding. |
| 0 | Success |
| Otherwise | Failed |
Definition at line 46 of file cdc_core.c.
| void usbh_cdc_init | ( | void | ) |
| int32_t usbh_cdc_send_data | ( | CDC_DEV_T * | cdev, |
| uint8_t * | buff, | ||
| int | buff_len | ||
| ) |
Send a block of data via CDC device's bulk-out transfer pipe.
| [in] | cdev | CDC device |
| [in] | buff | Buffer contains the data block to be send. |
| [in] | buff_len | Length in byte of data to be send |
| 0 | Success |
| Otherwise | Failed |
Definition at line 383 of file cdc_core.c.
| int32_t usbh_cdc_set_control_line_state | ( | CDC_DEV_T * | cdev, |
| int | active_carrier, | ||
| int | DTE_present | ||
| ) |
SET_CONTROL_LINE_STATE request.
| [in] | cdev | CDC device |
| [in] | active_carrier | Carrier control for half duplex modems is activated or not. |
| [in] | DTE_present | Indicates to DCE if DTE is present or not. |
| 0 | Success |
| Otherwise | Failed |
Definition at line 135 of file cdc_core.c.
| int32_t usbh_cdc_set_line_coding | ( | CDC_DEV_T * | cdev, |
| LINE_CODING_T * | line_code | ||
| ) |
SET_LINE_CODING request.
| [in] | cdev | CDC device |
| [in] | line_code | The line coding configuration to be set. |
| 0 | Success |
| Otherwise | Failed |
Definition at line 85 of file cdc_core.c.
| HIDDEN_SYMBOLS int32_t usbh_cdc_start_polling_status | ( | CDC_DEV_T * | cdev, |
| CDC_CB_FUNC * | func | ||
| ) |
Start purge the CDC device's interrupt-in transfer pipe.
| [in] | cdev | CDC device |
| [in] | func | The interrupt in data receiver callback function. |
| 0 | Success |
| Otherwise | Failed |
Definition at line 213 of file cdc_core.c.
| HIDDEN_SYMBOLS int32_t usbh_cdc_start_to_receive_data | ( | CDC_DEV_T * | cdev, |
| CDC_CB_FUNC * | func | ||
| ) |
Make CDC device start to receive data from bulk-in transfer pipe.
| [in] | cdev | CDC device |
| [in] | func | The BULK in data receiver callback function. |
| 0 | Success |
| Otherwise | Failed |
Definition at line 306 of file cdc_core.c.
| void usbh_core_init | ( | void | ) |
Initialize M480 USB Host controller and USB stack.
Definition at line 39 of file usb_core.c.
| struct udev_t * usbh_find_device | ( | char * | hub_id, |
| int | port | ||
| ) |
Find the device under the specified hub port.
| [in] | hub_id | Hub identify ID |
| [in] | port | Port number of the specified ub. |
| NULL | Not found. There's no valid device connected under that hub port. |
| Otherwise | An UDEV_T pointer reference to the device under specified hub and port. |
| struct usbhid_dev * usbh_hid_get_device_list | ( | void | ) |
Get a list of currently connected USB Hid devices.
| NULL | There's no HID device found. |
| Otherwise | A list of connected HID devices. |
The HID devices are chained by the "next" member of HID_DEV_T.
Definition at line 225 of file hid_driver.c.
| int32_t usbh_hid_get_idle | ( | struct usbhid_dev * | hdev, |
| int | rtp_id, | ||
| uint8_t * | idle_rate | ||
| ) |
| int32_t usbh_hid_get_protocol | ( | struct usbhid_dev * | hdev, |
| uint8_t * | protocol | ||
| ) |
| int32_t usbh_hid_get_report | ( | struct usbhid_dev * | hdev, |
| int | rtp_typ, | ||
| int | rtp_id, | ||
| uint8_t * | data, | ||
| int | len | ||
| ) |
| int32_t usbh_hid_get_report_descriptor | ( | struct usbhid_dev * | hdev, |
| uint8_t * | desc_buf, | ||
| int | buf_max_len | ||
| ) |
| void usbh_hid_init | ( | void | ) |
| void usbh_hid_regitser_keyboard_callback | ( | HID_KEYBOARD_FUNC * | func | ) |
Register the keyboard event callback function to HID class driver. Any keyboard reports will be sent to user application via this callback.
| [in] | func | Keyboard event callback function |
Definition at line 755 of file hid_core.c.
| void usbh_hid_regitser_mouse_callback | ( | HID_MOUSE_FUNC * | func | ) |
Register the mouse event callback function to HID class driver. Any mouse reports will be sent to user application via this callback.
| [in] | func | Mouse event callback function |
Definition at line 743 of file hid_core.c.
| int32_t usbh_hid_set_idle | ( | struct usbhid_dev * | hdev, |
| int | rtp_id, | ||
| uint8_t | idle_rate | ||
| ) |
| int32_t usbh_hid_set_protocol | ( | struct usbhid_dev * | hdev, |
| uint8_t | protocol | ||
| ) |
| int32_t usbh_hid_set_report | ( | struct usbhid_dev * | hdev, |
| int | rtp_typ, | ||
| int | rtp_id, | ||
| uint8_t * | data, | ||
| int | len | ||
| ) |
| int32_t usbh_hid_start_int_read | ( | struct usbhid_dev * | hdev, |
| uint8_t | ep_addr, | ||
| HID_IR_FUNC * | func | ||
| ) |
| int32_t usbh_hid_start_int_write | ( | struct usbhid_dev * | hdev, |
| uint8_t | ep_addr, | ||
| HID_IW_FUNC * | func | ||
| ) |
| int32_t usbh_hid_stop_int_read | ( | struct usbhid_dev * | hdev, |
| uint8_t | ep_addr | ||
| ) |
| int32_t usbh_hid_stop_int_write | ( | struct usbhid_dev * | hdev, |
| uint8_t | ep_addr | ||
| ) |
Install device connect and disconnect callback function.
| [in] | conn_func | Device connect callback function. |
| [in] | disconn_func | Device disconnect callback function. |
Definition at line 86 of file usb_core.c.
| int usbh_pooling_hubs | ( | void | ) |
Let USB stack polls all root hubs and downstream hubs. If there's any hub port change found, USB stack will manage the hub events in this function call. In this function, USB stack enumerates newly connected devices and remove staff of disconnected devices. User's application should periodically invoke this function.
| 0 | No any hub port status changes found. |
| 1 | There's hub port status changes. |
| void usbh_resume | ( | void | ) |
| void usbh_suspend | ( | void | ) |
| int usbh_uac_auto_gain_control | ( | UAC_DEV_T * | uac, |
| uint8_t | target, | ||
| uint8_t | req, | ||
| uint16_t | chn, | ||
| uint8_t * | bAGC | ||
| ) |
Audio Class device automatic gain control.
| [in] | uac | UAC device |
| [in] | target | Select the control target. |
| [in] | req | Control request. This UAC driver supports the following request: |
| [in] | chn | The requested channel. It can be one of the followings: |
| [in] | bAGC | One byte data. If the channel's automatic gain control is on, then the value is 1. Otherwise, it's 0. |
| 0 | Success |
| UAC_RET_DEV_NOT_SUPPORTED | This UAC device does not support this function. |
| Otherwise | Error occurred |
Definition at line 385 of file uac_core.c.
| int usbh_uac_get_bit_resolution | ( | UAC_DEV_T * | uac, |
| uint8_t | target, | ||
| uint8_t * | byte_cnt | ||
| ) |
Obtain Audio Class device subframe bit resolution..
| [in] | uac | UAC device |
| [in] | target | Select the control target. |
| [out] | byte_cnt | The number of bytes occupied by one audio subframe. Can be 1, 2, 3 or 4. |
| < | 0 Failed. UAC device may not present or function not supported. |
| Otherwise | The number of effectively used bits from the available bits in an audio subframe. |
Definition at line 71 of file uac_core.c.
| int usbh_uac_get_channel_number | ( | UAC_DEV_T * | uac, |
| uint8_t | target | ||
| ) |
Obtain Audio Class device's channel number.
| [in] | uac | UAC device |
| [in] | target | Select the control target. |
| < | 0 Failed. UAC device may not present or function not supported. |
| Otherwise | The channel number. |
Definition at line 44 of file uac_core.c.
| UAC_DEV_T * usbh_uac_get_device_list | ( | void | ) |
Get a list of currently connected USB Audio Class devices.
| NULL | There's no UAC devices found. |
| Otherwise | A list of connected UAC devices. |
The Audio Class devices are chained by the "next" member of UAC_DEV_T.
Definition at line 266 of file uac_driver.c.
| HIDDEN_SYMBOLS int usbh_uac_get_sampling_rate | ( | UAC_DEV_T * | uac, |
| uint8_t | target, | ||
| uint32_t * | srate_list, | ||
| int | max_cnt, | ||
| uint8_t * | type | ||
| ) |
Get a list of sampling rate frequencies supported by the UAC device.
| [in] | uac | UAC device |
| [in] | target | Select the control target. |
| [out] | srate_list | A word array provided by user application to hold the sampling rate list. |
| [in] | max_cnt | Available number of entries of srate_list[]. Must be > 2. |
| [out] | type | Indicates how the sampling frequency can be programmed. 0: Continuous sampling frequency. srate_list[0] is the lower bound in Hz of the sampling frequency and srate_list[1] is the upper bound. 1~255: The number of discrete sampling frequencies supported. They are listed in srate_list[]. |
| 0 | Success |
| Otherwise | Failed |
Definition at line 116 of file uac_core.c.
| HIDDEN_SYMBOLS void usbh_uac_init | ( | void | ) |
| int usbh_uac_mute_control | ( | UAC_DEV_T * | uac, |
| uint8_t | target, | ||
| uint8_t | req, | ||
| uint16_t | chn, | ||
| uint8_t * | mute | ||
| ) |
Control Audio Class device mute on/off.
| [in] | uac | UAC device |
| [in] | target | Select the control target. |
| [in] | req | Control request. This UAC driver supports the following request: |
| [in] | chn | The requested channel. It can be one of the followings: |
| [in] | mute | One byte data. If the channel is muted, then the value is 1. Otherwise, it's 0. |
| 0 | Success |
| UAC_RET_DEV_NOT_SUPPORTED | This UAC device does not support this function. |
| Otherwise | Error occurred |
Definition at line 240 of file uac_core.c.
| int usbh_uac_open | ( | UAC_DEV_T * | uac | ) |
Open an connected UAC device.
| [in] | uac | Audio Class device |
| 0 | Success |
| Otherwise | Failed |
Definition at line 997 of file uac_core.c.
| int usbh_uac_sampling_rate_control | ( | UAC_DEV_T * | uac, |
| uint8_t | target, | ||
| uint8_t | req, | ||
| uint32_t * | srate | ||
| ) |
Set sampling rate frequency.
| [in] | uac | UAC device |
| [in] | target | Select the control target. |
| [in] | req | Control request. This UAC driver supports the following request: |
| [in] | srate | Sampling rate frequency to be set or get. |
| 0 | Success |
| Otherwise | Error occurred |
Definition at line 169 of file uac_core.c.
| HIDDEN_SYMBOLS int usbh_uac_start_audio_in | ( | UAC_DEV_T * | uac, |
| UAC_CB_FUNC * | func | ||
| ) |
Start to receive audio data from UAC device. (Microphone)
| [in] | uac | Audio Class device |
| [in] | func | Audio in callback function. |
| 0 | Success |
| Otherwise | Failed |
Definition at line 554 of file uac_core.c.
| HIDDEN_SYMBOLS int usbh_uac_start_audio_out | ( | UAC_DEV_T * | uac, |
| UAC_CB_FUNC * | func | ||
| ) |
Start to transmit audio data to UAC device. (Speaker)
| [in] | uac | Audio Class device |
| [in] | func | Audio out call-back function. UAC driver call this function to get audio out stream data from user application. |
| 0 | Success |
| Otherwise | Failed |
Definition at line 796 of file uac_core.c.
| int usbh_uac_stop_audio_in | ( | UAC_DEV_T * | uac | ) |
Stop UAC device audio in data stream.
| [in] | uac | Audio Class device |
| 0 | Success |
| Otherwise | Failed |
Definition at line 703 of file uac_core.c.
| int usbh_uac_stop_audio_out | ( | UAC_DEV_T * | uac | ) |
Stop UAC device audio out data stream.
| [in] | uac | Audio Class device |
| 0 | Success |
| Otherwise | Failed |
Definition at line 946 of file uac_core.c.
| int usbh_uac_vol_control | ( | UAC_DEV_T * | uac, |
| uint8_t | target, | ||
| uint8_t | req, | ||
| uint16_t | chn, | ||
| uint16_t * | volume | ||
| ) |
Audio Class device volume control.
| [in] | uac | UAC device |
| [in] | target | Select the control target. |
| [in] | req | Control request. This UAC driver supports the following request: |
| [in] | chn | The requested channel. It can be one of the followings: |
| [in] | volume | Audio Class device volume value, which is interpreted as the following: 0x7FFF: 127.9961 dB . . . 0x0100: 1.0000 dB . . . 0x0002: 0.0078 dB 0x0001: 0.0039 dB 0x0000: 0.0000 dB 0xFFFF: -0.0039 dB 0xFFFE: -0.0078 dB . . . 0xFE00: -1.0000 dB . . . 0x8002: -127.9922 dB 0x8001: -127.9961 dB |
| 0 | Success |
| UAC_RET_DEV_NOT_SUPPORTED | This UAC device does not support this function. |
| Otherwise | Error occurred |
Definition at line 323 of file uac_core.c.
| int usbh_umas_disk_status | ( | int | drv_no | ) |
| int usbh_umas_init | ( | void | ) |
Register and initialize USB Host Mass Storage driver.
| 0 | Success. |
| 1 | Failed. |
Definition at line 631 of file msc_driver.c.
| int usbh_umas_ioctl | ( | int | drv_no, |
| int | cmd, | ||
| void * | buff | ||
| ) |
| int usbh_umas_read | ( | int | drv_no, |
| uint32_t | sec_no, | ||
| int | sec_cnt, | ||
| uint8_t * | buff | ||
| ) |
| int usbh_umas_write | ( | int | drv_no, |
| uint32_t | sec_no, | ||
| int | sec_cnt, | ||
| uint8_t * | buff | ||
| ) |
| signed int usbhid_mouse_event::axis_max |
Logical maxmum of mouse X,Y axis value
Definition at line 305 of file usbh_hid.h.
| signed int usbhid_mouse_event::axis_min |
Logical minimum of mouse X,Y axis value
Definition at line 304 of file usbh_hid.h.
| uint8_t usbhid_mouse_event::axis_relative |
X,Y axis vlaue is relative(1) or absolute(0)
Definition at line 300 of file usbh_hid.h.
| uint8_t usbhid_dev::bProtocolCode |
Interface protocol code
Definition at line 269 of file usbh_hid.h.
| uint8_t usbhid_dev::bSubClassCode |
Interface subclass code
Definition at line 268 of file usbh_hid.h.
| uint8_t usbhid_mouse_event::button_cnt |
Number of buttons
Definition at line 302 of file usbh_hid.h.
| uint32_t usbhid_mouse_event::button_map |
bit0 for button 0, bit1 for button 1, ...
Definition at line 303 of file usbh_hid.h.
| uint16_t usbhid_dev::idProduct |
USB device product ID. (from device descriptor)
Definition at line 267 of file usbh_hid.h.
| uint16_t usbhid_dev::idVendor |
USB device vendor ID. (from device descriptor)
Definition at line 266 of file usbh_hid.h.
| void* usbhid_dev::iface |
This HID interface
Definition at line 274 of file usbh_hid.h.
| uint8_t usbhid_keyboard_event::key_cnt |
The number of key code available in keycode[]
Definition at line 290 of file usbh_hid.h.
| uint8_t usbhid_keyboard_event::keycode[6] |
The key code received from keyboard.
Definition at line 289 of file usbh_hid.h.
| uint8_t usbhid_keyboard_event::lock_state |
bit0: Num Lock; bit1: Caps Lock, bit2: Scroll Lock. 1 is in lock state.
Definition at line 287 of file usbh_hid.h.
| uint8_t usbhid_keyboard_event::modifier |
Definition at line 288 of file usbh_hid.h.
| struct usbhid_dev* usbhid_dev::next |
Point to the next HID device
Definition at line 277 of file usbh_hid.h.
| UTR_T* usbhid_dev::out_utr_list |
UTR list of INT out endpoints
Definition at line 273 of file usbh_hid.h.
| HID_IR_FUNC* usbhid_dev::read_func |
Interrupt-in callback function
Definition at line 270 of file usbh_hid.h.
| RPD_T usbhid_dev::rpd |
Information of Report Descriptor
Definition at line 276 of file usbh_hid.h.
| uint32_t usbhid_dev::uid |
The unique ID to identify a HID device.
Definition at line 275 of file usbh_hid.h.
| UTR_T* usbhid_dev::utr_list[CONFIG_HID_DEV_MAX_PIPE] |
UTR list of all INT in and out pipes in running
Definition at line 272 of file usbh_hid.h.
| signed int usbhid_mouse_event::wheel |
mouse wheel value
Definition at line 310 of file usbh_hid.h.
| int usbhid_mouse_event::wheel_bits |
wheel bit resolution
Definition at line 313 of file usbh_hid.h.
| signed int usbhid_mouse_event::wheel_max |
Logical maxmum of mouse wheel value
Definition at line 309 of file usbh_hid.h.
| signed int usbhid_mouse_event::wheel_min |
Logical minimum of mouse wheel value
Definition at line 308 of file usbh_hid.h.
| uint32_t usbhid_mouse_event::wheel_raw |
mouse report wheel raw data
Definition at line 316 of file usbh_hid.h.
| uint8_t usbhid_mouse_event::wheel_relative |
Wheel vlaue is relative(1) or absolute(0)
Definition at line 301 of file usbh_hid.h.
| HID_IW_FUNC* usbhid_dev::write_func |
Interrupt-out callback function
Definition at line 271 of file usbh_hid.h.
| signed int usbhid_mouse_event::X |
mouse X axis value
Definition at line 306 of file usbh_hid.h.
| int usbhid_mouse_event::X_bits |
X axis bit resolution
Definition at line 311 of file usbh_hid.h.
| uint32_t usbhid_mouse_event::X_raw |
mouse report X axis raw data
Definition at line 314 of file usbh_hid.h.
| signed int usbhid_mouse_event::Y |
mouse Y axis value
Definition at line 307 of file usbh_hid.h.
| int usbhid_mouse_event::Y_bits |
Y axis bit resolution
Definition at line 312 of file usbh_hid.h.
| uint32_t usbhid_mouse_event::Y_raw |
mouse report Y axis raw data
Definition at line 315 of file usbh_hid.h.


This service provides ability for post message to sina weibo.
It is implemented by node-weibo-twitter
At this stage, only supports plain-text message, and don't support the network proxy.
token
: String. The access token of weibo account.
text
: String. The message content of weibo.
status
: Boolean. Output true if success to sending, otherwise false.
In this example, we post a weibo message with "hello".


Smart Road Side
DashCon
Save
Save As
Generate
Settings
Logout
Federal Systems
Fed System 1
Fed System 2
Fed System 3
Fed System 4
Fed System 5
State Systems
State System 1
State System 2
State System 3
Commercial Systems
Commercial System 1
Commercial System 2
Commercial System 3
Commercial System 4


--- layout: page title: About header-img: "img/about-bg.png" ---
It only took one coding course to fall in love. I dabbled in C with a little Python and a little SQL. While challenging, the dominating feeling was one of excitement- I could do this for a living. I'm a builder, and the feeling of seeing something you contributed to come to fruition... there's no better feeling. I'm also a learner, and, fortunately for me, I had found a field where the learning never stops.


miniEngine
Features:
- Built-in128 kinds of standard tone
- Support two MIDI devices to work simultaneously
- MIDI port and USB HOST can achieve 0 delay
- Input 2500mAh battery can provide power to MIDI device
- General Micro USB power supply port, the direct use of phone charger
- Can modulate the Volume，Tone，Reverb effect directly
- Plentiful interfaces: Audio output, MIDI IN port, USB IN and Micro USB charging interfaces
Technical Specifications:
- Dimensions: 8x10.7x2.2 (cm)
- Weight: 0.195(kg)


††††††††††† Neurotrophins promote an exceptionally varied set of responses that require highly regulated signal transduction mechanisms.† Many factors can contribute to the complexity of the cellular responses elicited by neurotrophins through the Trk receptors, including the types of Trk receptor, neurotrophin ligand and signalling molecules involved, as well as the location and timing of the response.†
The set of Trk receptors expressed by a neuron determines the set of neurotrophins able to promote that neuronís survival and differentiation, and the possible downstream signalling pathways that can be elicited.† For example, the survival of sympathetic neurons requires the continuous activation of TrkA receptors.† Whether the Trk receptor is full-length or truncated also has an effect.† It has been shown that truncated TrkB isoforms that lack the kinase domain are associated with aggressive neuroblastomas and a poor prognosis, possibly by their ability to scavenge BDNF and remove it from circulation.† In contrast, the high expression of full-length TrkA in neuroblastomas correlates with increased patient survival.
Different neurotrophin ligands can elicit different responses from the same Trk receptor.† For example, TrkB can activate different signalling pathways in response to BDNF or NT4 binding.† In addition, pro-neurotrophins can elicit a different response from mature forms, as well as activating different receptors.† As a result, the extent of neurotrophin processing can alter neuronal outcome, where a higher level of processing favours Trk-mediated survival, and less processing favours p75NTR-mediated cell death.
The timing of the Trk-mediated stimulation can also affect the outcome of the response, where variations in Trk stimulation can affect the amplitude of the response, which in turn can result in the induction of distinct downstream signalling pathways that elicit different biological outcomes.† For example, sustained Ras activation (possibly through TrkA stimulation) can promote differentiation, while transient Ras activation (possibly through TrkB stimulation) can result in proliferation.†
Different neuronal cell types can express different Trk receptors leading to cell-type specific responses.† Proprioceptive neurons express TrkC and respond to NT3, which induces Akt stimulation that is critical for branching and for increasing axonal calibre.† In contrast, nociceptive sensory neurons express TrkA and respond to NGF, which favours Raf stimulation that is responsible for axonal elongation.† Also, the localisation of Trk receptors on axons of presynaptic cells can have a different response from their localisation on dendrites of postsynaptic cells or on the plasma membrane of the cell soma.† Internalisation of receptor/signalling complexes can modify a response, often by increasing MAPK activation or reducing PI3K activation.


AWS Config ConfigRule Scope
Scope
is a property of the AWS::Config::ConfigRule resource that specifies which AWS resources
will trigger AWS Config to run an evaluation when their configurations change. The
scope can
include one or more resource types, a tag key and value, or one resource type and
one resource
ID. You cannot specify a tag-key value and a resource ID or type.
Syntax
JSON
{ "ComplianceResourceId" :
String
, "ComplianceResourceTypes" : [String, ...
], "TagKey" :String
, "TagValue" :String
}
YAML
ComplianceResourceId:
String
ComplianceResourceTypes: -String
TagKey:String
TagValue:String
Properties
ComplianceResourceId
-
The ID of an AWS resource that you want AWS Config to evaluate against a rule. If you specify an ID, you must also specify a resource type for the
ComplianceResourceTypes
property.Required: No
Type: String
ComplianceResourceTypes
-
The types of AWS resources that you want AWS Config to evaluate against the rule. If you specify the
ComplianceResourceId
property, specify only one resource type. For more information, see Supported Resources, Configuration Items, and Relationships.Required: Conditional. If you specify a value for the
ComplianceResourceId
property, you must also specify this property.Type: List of String values
TagKey
-
The tag key that is applied to the AWS resources that you want AWS Config to evaluate against the rule.
Required: Conditional. If you specify a tag value, you must specify this property.
Type: String
TagValue
-
The tag value that is applied to the AWS resources that you want AWS Config to evaluate against the rule.
Required: Conditional. If you specify a tag key, you must specify this property.
Type: String


InfoSec Resources
Collection of resources
Information security covers a wide array of spaces and skills. My typical process for approaching a new problem area is to look at all the links I have collected over the years and see whether or not I favorited a tutorial or introduction series on a blog. This has lead to many resources across many computers/browsers and it is something I would like to share in case anyone else will find it useful. Below is a list of resources I have compiled over the years that I will do my best to update.
Note: Some of these resources fit into multiple categories.
Learning Programming
Online Security Capture the Flags/Wargames
- RingZer0 Team Challenges
- Smash The Stack Wargames
- Over the wire Wargames
- CTF Time
- Hack this site
- Hellbound Hackers
- PicoCTF
- Microcurruption
- Exploit Exercises
CTF Tools
CTF Write-Ups
Reverse Engineering (WARNING: some of this will be listed as malware, use at your own risk)
Reverse Engineering Tools
Malware RE
Exploit Development
- Use after free vulnerability intro
- Corelan Exploit Writing Tutorials
- Windows Exploit Development Introduction
- Mozilla: Crash course in Memory Management
- Windows Exploitation in 2016
Web Application Security
- Hack.me
- Damn Vulnerable Web Application
- OWASP Broken Web Apps
- Multillidae Web Application
- Google Gruyere
- Burp Suite Quick Summary
- Tough SQLi with sqlmap
Network Security
Pentration Testing
Incident Response
Bug Bounties
Penetration Testing Certifications
Exploit Development Certifications
Web Application Security Certifications
Network Certifications
Online Security Training
Containers and Container Security
Kernel Security
Updated: June 18, 2017


---
layout: page
headline: Writing
lead: I confidently use writing as my outlet to express my ideas and bring my thoughts to life. I have been skillfully crafting pieces about design, side-projects, and personal growth for quite some time now.
---
{% assign postsByYear = site.posts | group_by_exp:"post", "post.date | date: '%Y'" %}
{% for year in postsByYear %}
{{ year.name }}
{% for post in year.items %}
-
{{ post.date | date: "%-d %B, %Y"}}
{% endfor %}
{% endfor %}
{% include box-subscribe.html %}
{% if paginator.previous_page or paginator.next_page %}
{% include pagination.html %}
{% endif %}


Our Mission
You’ve spent hours combing the internet to find that perfect look.  They nod approvingly and lead you back to the chair … only to send you away looking worse than your 6 year old daughter’s least favorite barbie doll after it’s last “spa day”… Sound familiar? With HairCare, you can login and see a list of stylists in your area, easily view photos of styles they have done for other customers, upload a photo of your haircut and rate a stylists performance for other users to see. Like keeping tabs on what your competion is up to? HairCare has got you covered. With HairCare, you’ll never leave the salon feeling unsatisfied again.
Our Community
Welcome to the HairCare Community! We're excited for you to join us. We believe in helping one another. We're here to help both stylists as well as their clients. We believe that hair stylists don't just shape peoples hair but their lives as well. These men and women can and will become some of your best friends, while also providing you with the best haircut you could've ever asked for!
Contact Us
We would love to hear from you! Please check us out on social media (see left) or email a member of our team at<EMAIL_ADDRESS>and we'll get back to you within 24 business hours. You can also call our toll free number at<PHONE_NUMBER>3. Now go find the perfect do for you!


{% extends "base.html" %} {% block content %} Agents Create a new agent Full Name Email Edit {% for agent in object_list %} {{ agent.user.first_name }} {{ agent.user.last_name }} {{ agent.user.email }} Edit {% empty %} There are currently no agents {% endfor %} {% endblock content %}
There are currently no agents


Civil Money Claims - Alpha
Defendant responding
- Letter
- Start page
- Enter claim number and security code
- View claim
- Create account
- Verify your email address instructions (click on<EMAIL_ADDRESS>- Email with link to verify account
- Sign in page
Task list
Check before you start
Respond to claim
Full admission
Part admission
A: The claim amount is too much
- How much money do you believe you owe?
- Timeline of events
- Add evidence
- Affected you
- When will you pay
- Make an offer
- Your offer
- Free mediation
B: I've paid what I believe I owe
- How much have you paid the claimant?
- Timeline of events
- Add evidence
- Affected you
- Make an offer
- Your offer
- Free mediation
Full defence
- Why do you disagree with the claim?
- Timeline of events
- Add evidence
- Affected you
- Make an offer
- Your offer
- Free mediation


| Parameter | Description | Additional Information | Visibility |
|---|---|---|---|
| AnswerTimeout | Time the GigE Vision Device can take for responding to a command from the application. | Unsigned 64 bits integer Min: 1 Max: 32767 | Beginner |
| CommandRetryCount | Number of times a command is attempted before it is considered as failed. | Unsigned 64 bits integer Min: 1 Max: 255 | Beginner |
| DefaultMCTT | Value written to the message channel transmission timeout register (MCTT) at the time of connection. The MCTT is the amount of time (in milliseconds) the GigE Vision device must wait before either timing out or receiving acknowledgment for a message (interrupt). | Unbound unsigned 16 bits integer | Beginner |
| DefaultMCRC | Value written to the message channel retry count register (MCRC) at the time of connection. The MCRC is the number of retransmissions allowed when the GigE Vision device times out waiting for acknowledgement of a message (interrupt). | Unsigned 64 bits integer Max: 255 | Beginner |
| Parameter | Description | Additional Information | Visibility |
|---|---|---|---|
| HeartbeatInterval | Time in milliseconds between each heartbeat sent to the GigE Vision device. | Unbound unsigned 16 bits integer | Beginner |
| DefaultHeartbeatTimeout | Default heartbeat timeout value applied on connection, in milliseconds. Applied on device connection. To change this value once the device is already connected, refer to the GevHeartbeatTimeout feature of your GigE Vision device. | Unbound unsigned 32 bits integer | Beginner |
| Parameter | Description | Additional Information | Visibility |
|---|---|---|---|
| IPAddress | Local IP address used for communication. | Unbound unsigned 64 bits integer | Beginner |
| CommandPort | Local UDP port used for the command link to the device. | Unbound unsigned 16 bits integer | Beginner |
| MessagingPort | Local UDP port used for messaging channel. | Unbound unsigned 16 bits integer | Beginner |
| ForcedCommandPortEnabled | Enables the use of ForcedCommandPort for CommandPort. If not enabled, a system-assigned port number is used. If enabled, uses ForcedCommandPort. | Boolean | Guru |
| ForcedCommandPort | Port to use for CommandPort when connecting to the device. Used by the command link UDP socket. This parameter is only considered when connecting to the device. | Unbound unsigned 16 bits integer | Guru |
| ForcedMessagingPortEnabled | Enables the use of ForcedMessagingPort for MessagingPort. If not enabled, a system-assigned port number is used. If enabled, uses ForcedMessagingPort. | Boolean | Guru |
| ForcedMessagingPort | Port to use for MessagingPort when connecting to the device. Used by the messaging channel UDP socket. This parameter is only considered when connecting to the device. | Unbound unsigned 16 bits integer | Guru |
| Parameter | Description | Additional Information | Visibility |
|---|---|---|---|
| CommandPendingAcknowledges | Count of pending acknowledges since the device was connected or the statistics were reset. Pending acknowledges on the command link are sent by the device when performning longer command processing to avoid GVCP timeouts. | Unbound unsigned 64 bits integer | Guru |
| CommandRetries | Count of retries since the device was connected or the statistics were reset. Retries on the command link are initiated by the host if the command acknowledge is not received whithin AnswerTimeout. | Unbound unsigned 64 bits integer | Expert |
| CommandRetriesMax | Maximum retries sent to the device for a single command. | Unbound unsigned 64 bits integer | Expert |
| CommandSendFailures | Counts the number of transmission failures of the command link. As UDP does not garantee delivery, only failures by the network stack to put the packet on the wire are reported. | Unbound unsigned 64 bits integer | Guru |
| MessagingRetries | Count of messaging channel retries since the device was connected or the statistics were reset. Retries on the messaging channel are initiated by the device if the event acknowledge is not received whithin the period of time specified in the MCTT register. See DefaultMCTT and DefaultMCRC. | Unbound unsigned 64 bits integer | Expert |
| MessagingRetriesMax | Maximum retries requested by the device (and received by the host) for a single event. | Unbound unsigned 64 bits integer | Expert |
| MessagingAckSendFailures | Counts the number of transmission failures of event acknowledges on the messaging channel. As UDP does not garantee delivery, only failures by the network stack to put the packet on the wire are reported. | Unbound unsigned 64 bits integer | Guru |
| Parameter | Description | Additional Information | Visibility |
|---|---|---|---|
| AutoNegotiation | Application level parameter used by eBUS Player and Net Command. When true, automatic packet size negotiation is performed. Note that this does not affect the behaviour of PvDevice::Connect. From an API perspective, automatic packet size negotiation may be performed using PvDevice::NegotiatePacketSize. | Boolean | Beginner |
| DefaultPacketSize | Packet size initially assigned to the device for streaming if packet size auto negotiation is disabled. If this value is refused by the device, a fallback value of 576 is used. Note that this does not affect the behaviour of PvDevice::Connect. From an API perspective, automatic packet size negotiation may be performed using PvDevice::NegotiatePacketSize. | Unsigned 64 bits integer Min: 576 Max: 65024 Inc: 4 | Beginner |
| Parameter | Description | Additional Information | Visibility |
|---|---|---|---|
| DeviceGenICamXMLLocation | Selects which GenICam configuration file the SDK will use for the next connect. "Default" goes through all manifest entries (if supported and enabled) and then URL1, URL2 until the device node map can be successfully built. "File" reads from the XML file in the location specified by DeviceGenICamXMLFile. | Enumeration. Entries: Default, URL1, URL2, File, ManifestEntry1, ManifestEntry2, ManifestEntry3, ManifestEntry4, ManifestEntry5, ManifestEntry6, ManifestEntry7, ManifestEntry8 | Guru |
| DeviceGenICamXMLFile | The location on the hard drive (absolute path) where the local XML file is loaded from when DeviceXMLLocation is set to "File". | String | Guru |
| UseManifests | Enables the use of the manifest when retrieving the GenICam XML file from the device. | Boolean | Guru |
| Parameter | Description | Additional Information | Visibility |
|---|---|---|---|
| LinkRecoveryEnabled | When enabled, attempts to automatically reconnect to a device when the connection is lost. | Boolean | Beginner |
| RecoveryStatus | Status of the connection and stream state machine. | Enumeration. Entries: StatusOK, StatusLinkLost | Beginner |
Copyright (c) 2002-2015 Pleora Technologies Inc.
www.pleora.com


This is your phone.
No recent calls from this browser.
Sip registration failed. No calls can be handled.
Username, Password and server fields are required.


Adaptive Video Streaming
Take advantage of Cloudinary's automatic generation of adaptive bitrate streaming files to automatically adjust the resolution of your video in in real time to best match the player dimensions, available bandwidth and CPU capacity of each viewer.
/* To use adaptive streaming formats such as HLS and MPEG-DASH, simply define 'sourceTypes' to
the desired format ('dash' or 'hls'). You can define a desired profile using the 'transformation' param.
Sample code: */
var cld = cloudinary.Cloudinary.new({ cloud_name: 'cloud' })
// Initialize player
var player = cld.videoPlayer('example-player')
// Modify player source and play.
player.source('rafting', { sourceTypes: ['hls'],
transformation: { streaming_profile: 'full_hd' } }).play();
Events and analytics
You can register to video player events and then use these events to create custom video player controls or to trigger other custom behaviors in your application. In addition, the Video Player supports tracking events for analytics platforms such as Google Analytics.
Triggered events:
// Init player with events and analytics
var player = cld.videoPlayer('demo-events-player',
// In this section we define the list of events that will be triggered to the page, in addition to a predefined list of events
{ playedEventTimes: [3, 10],
// In this section we define the (complete) list of events that will be sent to analytics
analytics: { // Enable player analytics
events: [
'play',
'pause',
'percentsplayed',
'start',
'ended',
'fullscreenchange']}});
// Modify player source
player.source('forest_bike').play();
Video Playlist
You can create a playlist based on a list of public IDs or for all videos in your Cloudinary account with a specified tag. After you have defined a playlist, you can use playlist methods to control the list. For example, you can jump to the next or previous video, jump to a specific video in the playlist by index, determine whether to to show of preview of the upcoming video, whether to auto-advance to the next video when the previous one ends, and more.
// Define Playlist Sources
var source1 = { publicId: 'snow_horses', sourceTypes: ['hls'], transformation: {streaming_profile: 'full_hd'}};
var source2 = { publicId: 'sea_turtle', sourceTypes: ['hls'], transformation: {streaming_profile: 'full_hd'}};
// ... until the last source in the playlist
// Initialize player
var player = cld.videoPlayer('example-player');
/* Auto advance to next video,
repeat the playlist when final video ends,
and present upcoming video 5 seconds
before the current video ends. */
player.playlist([source1, source2],
{ autoAdvance: true, repeat: true, presentUpcoming: 5 });
recommended content
You can define recommended videos when setting a player's video source. The recommendations are shown as thumbnails in a recommendation overlay when the video ends. The primary recommendation includes the title, subtitle, and description of the recommended video (if defined).
/* Define Playlist Sources
As shown in the playlist example.
Recommendations can be as simple as an array of other
video source objects*/
source1.recommendations = [source2,source3,source4,source5];
// For async fetching of recommendations
// (e.g. fetching from database), promises can be used
source2.recommendations = new Promise((resolve, _) => {
setTimeout(() => {
resolve([source1]);
}, 3000); })
// Initialize player
var player = cld.videoPlayer('example-player',
{ autoShowRecommendations: true });
player.source(source1);


Watching movies and videos using portable devices has become an extremely popular pastime. You can play them on your Samsung Galaxy S8+ with a single click regardless of the location and time. However, Samsung Galaxy S8+ has its limits on video specifications. If you need to encode HEVC video files to other formats for a smooth playback on your Samsung Galaxy S8+, you will need a workable HEVC to Samsung Galaxy S8+ Video Converter. This post displays how to complete HEVC/H.265 video to Samsung Galaxy S8+ conversion via using such a converter app.
Founded back in 1969 as Samsung Electric Industries, Suwon, South Korea-headquartered Samsung Electronics today makes everything from televisions to semiconductors. It released its first Android smartphone in 2009, and can be credited with the launch of the first Android tablet back in 2010. The company is among the biggest players in the smartphone market in the world. It has recently developed smartphones running Tizen OS, as an alternative to its Android-based smartphones.
My Samsung Galaxy S8+ won’t play 4K HEVC, how to resolve?
"Hi all, I have a Samsung Galaxy S8+ which is working very fine for me. Everything is fine and smooth … except 4K HEVC video playback. It can read all videos up to 1080p fluently. However, all 4K HEVC video files are unwatchable: frames are freezing every seconds. How can I get the 4K HEVC video playing smoothly on my Samsung Galaxy S8+? I would really appreciate any help."
This is probably because your Samsung Galaxy S8+ doesn’t have enough power to handle 4K HEVC files. In this situation, we would recommend converting them to a format that is well supported by your Samsung Galaxy S8+ first. Check a how-to guide on this below:
Part 1:
How to convert hevc videos for Samsung Galaxy S8+ on Windows?
Part 2:
How to convert hevc videos for Samsung Galaxy S8+ on Mac?
[pt_view id="2e16a40sux"]
Part 1. How to convert hevc videos for Samsung Galaxy S8+ on Windows?
To convert hevc videos for Samsung Galaxy S8+ playback on Windows, do as below:
Step 1: Import video files
Click “Add File” to load video files that you want to convert into this program.
Step 2: Select output format for Samsung Galaxy S8+
Click "Profile" to select
"Samsung" > "Samsung Galaxy S8+(*.mp4)" as output format. This format profile will ensure a good performance while playing with Galaxy S8+.
Tips:
If necessary, you can click "Settings" button to modify video and audio parameters like encoder, resolution, frame rate, bitrate, aspect ratio, sample rate, and audio channels. You can also “Enable 3D Settings” to add 3D effect to your source media.
Step 3: Click “Convert” to start hevc video to Samsung Galaxy S8+ conversion on Windows.
As soon as the conversion is complete, click “Open Folder” to get the generated
MP4 files that are suitable for playing on your Samsung Galaxy S8+. No audio lost issues will occur any more.
Part 2. How to convert hevc videos for Samsung Galaxy S8+ on Mac?
To convert hevc videos for Samsung Galaxy S8+ playback on Mac, do as below:
Step 1: Import video files
Click “Add File” to load video files that you want to convert into this program.
Step 2: Select output format for Samsung Galaxy S8+
Click "Profile" to select
"Samsung" > "Samsung Galaxy S8+(*.mp4)" as output format. This format profile will ensure a good performance while playing with Galaxy S8+.
Tips:
If necessary, you can click "Settings" button to modify video and audio parameters like encoder, resolution, frame rate, bitrate, aspect ratio, sample rate, and audio channels. You can also “Enable 3D Settings” to add 3D effect to your source media.
Step 3: Click “Convert” to start hevc video to Samsung Galaxy S8+ conversion on Mac.
As soon as the conversion is complete, click “Open Folder” to get the generated
MP4 files that are suitable for playing on your Samsung Galaxy S8+. No audio lost issues will occur again.
Also read:
Samsung Galaxy Note 8 won’t play HEVC H.265 media, how to fix?


{% extends "personal/header.html" %} {% block content %}
Hi,Welcome to my website! I am python programmer!
{% include "personal/includes/htmlsnippet.html" %}Hi,Welcome to my website! I am python programmer!
{% include "personal/includes/htmlsnippet.html" %}Hi,Welcome to my website! I am python programmer!
{% include "personal/includes/htmlsnippet.html" %}Hi,Welcome to my website! I am python programmer!
{% include "personal/includes/htmlsnippet.html" %}Hi,Welcome to my website! I am python programmer!
{% include "personal/includes/htmlsnippet.html" %}Hi,Welcome to my website! I am python programmer!
{% include "personal/includes/htmlsnippet.html" %}Hi,Welcome to my website! I am python programmer!
{% include "personal/includes/htmlsnippet.html" %}Hi,Welcome to my website! I am python programmer!
{% include "personal/includes/htmlsnippet.html" %}Hi,Welcome to my website! I am python programmer!
{% include "personal/includes/htmlsnippet.html" %}Hi,Welcome to my website! I am python programmer!
{% include "personal/includes/htmlsnippet.html" %}Hi,Welcome to my website! I am python programmer!
{% include "personal/includes/htmlsnippet.html" %}Hi,Welcome to my website! I am python programmer!
{% include "personal/includes/htmlsnippet.html" %} {% include "personal/includes/htmlsnippet.html" %} {% endblock %}


| You begin the installation of the standard reference images by clicking the button on the Set Up BViewer page labelled "Install I.L.O. Standard Reference Images". |
|
|
Clicking this button results in a notice that you are may be about to encounter the I.L.O. standard image viewer that autostarts (depending upon how your system is configured) from the I.L.O. image media whenever you load it into your computer. The I.L.O. viewer is not used with BViewer and is not involved in the standards installation process. So, when it pops up, you just need to get it out of the way. If you are running Windows 7 or a later version, you will probably be asked when you insert the medium whether you want to run this program. You should answer "No". Then you can proceed with the installation without being bothered. If the I.L.O. viewer autostarts, just patiently wait for it to come up and display on the screen. Then exit out of it and you are ready to proceed with the standards installation. |
|
The standards installation process is controlled via the "Install the I.L.O. Reference Images" window. The figure shows what this window looks like before the I.L.O. media insertion. The installation process consists of the four steps that are shown in the right half of this window. After you start the process by pressing the "Install I.L.O. Reference Standards" button, the four steps are executed in sequence automatically. |
|
A lot of processing is involved in preparing the reference images for use by BViewer, so the installation typically requires a few minutes. The status line for each step is updated as the images are processed one by one. When each step is successfully completed, its status line turns green. The figure shows how the installation window looks while the installation is in progress. |
| When the installation is complete, the installation window will disappear and you will see a confirmation window: |
|


Get a lead for every new user right after he\she confirms registration.
Contact us by email or fill out request form


new Driver(canvas)
Parameters:
| Name | Type | Description |
|---|---|---|
canvas |
HTMLCanvasElement | The canvas element that sketch will be targeting. |
- Source:
Members
-
<protected, readonly> canvas :HTMLCanvasElement
-
The module's attached canvas.
Type:
- HTMLCanvasElement
- Source:
-
<protected, readonly> codeGen :Object
-
The module's reference to the code generator.
Type:
- Object
- Source:
-
<protected, readonly> context :WebGLRenderingContext
-
The module's attached context.
Type:
- WebGLRenderingContext
- Source:
-
<protected, readonly> parser :Parser
-
A reference to the parser.
Type:
- Parser
- Source:
-
<protected, readonly> shaderManager :Palette.Manager
-
The module's reference to the shader manager.
Type:
- Source:
-
<protected, readonly> vm :MVM
-
The module's reference to the VM.
Type:
- Source:
Methods
-
addShader(text)
-
Add a shader from an already-resolved JSON String.
Parameters:
Name Type Description text
String the JSON string for a shader object. - Source:
-
addShaderURL(url)
-
Add a shader from a URL.
Parameters:
Name Type Description url
String the URL string leading to a shader object. - Source:
-
compile(text)
-
Compile and execute a Sketch program.
Parameters:
Name Type Description text
String the source code for a Sketch program. - Source:
Returns:
boolean - will fail either on error, or if shaders are still being added.


| colorCatalog (version 1.20) | index /home/meurer/ACS/Pipeline/Apsis/apsis-4.2.4/python/apsis/colorCatalog.py |
License
=======
Copyright (c) 2009, The Johns Hopkins University
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer. Redistributions in binary
form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided
with the distribution. Neither the name of the Johns Hopkins University nor
the names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.

(This license is based on the BSD license
http://www.opensource.org/licenses/bsd-license.html)
| Modules | ||||||
|
| Classes | ||||||||||
|
|
| Data | ||
| __author__ = 'Ken Anderson<EMAIL_ADDRESS>__version__ = '1.20' __version_date__ = '2003/12/08 23:14:13' numver = '1.0.3' pyversion = '2.4.3 (#1, Jan 14 2008, 18:32:40) \n[GCC 4.1.2 20070626 (Red Hat 4.1.2-14)]' version = '2.4.3 (#1, Jan 14 2008, 18:32:40) \n[GCC 4.1.2 20070626 (Red Hat 4.1.2-14)]' zp_error = 0.01 |
| Author | ||
| Ken Anderson<EMAIL_ADDRESS>|


[This is preliminary documentation and subject to change.]
MultiOS.inf is a sample INF file that illustrates the general structure for using a single INF file to install different printer drivers on Windows® Server 2003, Windows® XP, Windows® 2000, and Windows® 9x (encompassing Windows 98, Windows 98 Second Edition, and Windows Millennium).
The sample includes specific INF constructs to demonstrate the following concepts:
Platform extensions, including consistent usage throughout the INF file.
Installation on multiple platforms from one INF file.
Installation of different local language versions of binaries from one INF file.
Review this document carefully, taking careful note of the sample's limitations.
In addition to the contents of this document, the sample INF file contains explanatory comments throughout.
Users of this sample INF file will need to add their own information, including file names, registry information, and company information in the Strings section, and adding additional Strings sections for additional local language support and so forth.
The sample INF file includes several DDInstall-related sections that are used on more than one Windows platform. These sections are:
CommonXPAddReg, WinXPCopyDriver and WinXPCopyDlls - common sections for installing on all platforms (x86, ia64, and x64) for Windows XP only.
WinXPServiceInstallSection and WinXPServiceAddReg - common service installation sections for installing on all platforms (x86, ia64, and x64) for Windows XP only.
CommonAddReg - common registry section for installing on all supported platforms - Windows 9x/ME, Windows 2000, and Windows XP.
When possible, the use of common sections reduces the likelihood of introducing errors in the completed INF file, while reducing the size and complexity of the INF file as well.
This sample INF file is saved as plain ASCII text (using Windows Notepad with the default ANSI encoding). As part of customizing this INF file for installing a specific device, you may need to save the INF file with Unicode encoding. Unicode allows the INF file writer the flexibility to mix locales that use different ANSI codepages. To save any text file with Unicode encoding using Windows Notepad, follow these steps:
Microsoft provides two useful tools for checking INF file structure and syntax:
ChkINF is a Perl script that checks the structure and syntax of Microsoft® Windows® 2000, Windows® XP and Windows® Server 2003 driver INF files. Results are presented in HTML format, and include a list of the errors and warnings detected in each INF file, with each error and warning shown next to the errant INF file entry. ChkINF is available in this DDK in the tools\chkinf directory.
Signability is a tool for ensuring that a driver package can be properly signed after it passes Designed for Windows Logo testing. Signability is available for download from the Hardware Compatibility Test Kit Web site at http://www.microsoft.com/hwtest/testkits.
Both of these tools are included in the Hardware Compatibility Test Kits used for Designed for Windows Logo testing.
Many devices are distributed with accompanying media (typically a CD) containing drivers targeted at multiple local languages and multiple versions of Windows. The table below presents one possible structure for organizing such media, so that multiple languages can be supported on Windows 9x, Windows NT 4.0, Windows 2000, Windows XP and Windows Server 2003.
| Directory | Containing INF File | Notes |
| \ (root directory) | NT4.inf | Unsigned Unicode INF file for Windows NT 4.0 only |
| \Windows | MultiOS.inf | Signed Unicode INF file for Windows Server 2003, Windows 2000 and Windows XP |
| \Win9xeng | Win9xEng.inf | Signed English language INF file for Windows 9x only |
| \Win9xFra | Win9xFra.inf | Signed French language INF file for Windows 9x only |
| \Win9xGer | Win9xGer.inf | Signed German language INF file for Windows 9x only |
Windows 9x does not recognize or handle localized Strings.LanguageID sections, necessitating the use of individual INF files for each supported locale.
Windows 9x does not recognize INF files stored with Unicode encoding, and will ignore any Unicode INF files it might encounter. In this media layout, the INF files targeted at non-Windows 9x platforms are saved with Unicode encoding, so Windows 9x will not see them. If this layout were presented to a Windows 9x user, the user would see a list that included only the Windows 9x INF files, and none of the Unicode INF files targeted at Windows NT 4.0, Windows 2000 or Windows XP or Windows Server 2003.
Because there is no way to differentiate a Windows NT 4.0 INF file from a joint Windows 2000/Windows XP/Windows Server 2003 INF file, a separate INF file should be provided for Windows NT 4.0 support. In the table above, the Windows NT 4.0 INF file is placed in the root directory of the media for easy discovery by Windows NT 4.0 users.
Windows NT 4.0 does not recognize driver signatures, so the INF file for Windows NT 4.0 can be unsigned. Even though this file will appear as a valid INF file to Windows 2000, Windows XP and Windows Server 2003, if the INF file (MultiOS.inf in the table above) targeted at these versions of Windows is signed, both of these versions of Windows will choose the signed INF file in preference to the unsigned INF file. See the "How Setup Selects Drivers" topic in the Windows DDK Documentation for additional details.
The ChkINF tool reports zero errors and the following four warnings when executed on this sample INF file:
The first warning, "NT-specific section(s) found. Ignoring general section", indicates that this INF file contains installation sections that are decorated with platform extensions (.NTx86, .NTia64, and .NTamd64), as well as plain, undecorated installation sections ("DriverInstall" for example). Since ChkINF detected the decorated sections, it will not check any undecorated DDInstall sections it finds.
The other three warnings are related to the first. While ChkINF will not check undecorated DDInstall sections, it will report any unreferenced sections as an aid to INF developers. These three warnings are simply stating that these sections are not referenced anywhere else in the INF file. (Actually, the second and third unreferenced sections, "Win9xAddReg" and "Win9xCopyFiles", are referenced in the first unreferenced section, "DriverInstall". Due to presence of decorated DDInstall sections, ChkINF will not check this undecorated DDInstall section, and it and the two sections it references are thereby reported as unreferenced.)
This INF file is incomplete. Users of this sample will need to add their own information, including file names, registry information, and company information in the Strings section and so forth.
Note that Windows 9x does not recognize or handle localized Strings.LanguageID sections, and so the localization techniques exemplified in the sample INF file cannot be used on Windows 9x. See the section entitled Suggested Media Layout above for suggestions on handling Windows 9x. The installation sections for Windows 9x that are present in the INF file are included for illustrative purposes only.
As discussed in Warnings Generated by the ChkINF Tool above, the ChkINF tool reports zero errors and four warnings when executed on the sample INF file. These four warnings represent known issues with the INF file, and can be readily explained. Use of the ChkINF tool is strongly recommended when writing INF files.
As noted in Using the Sample above, this sample INF file is saved as plain ASCII text (saved from Windows Notepad with the default ANSI encoding).
| File | Description |
| MultiOS.htm | Readme for MultiOS.inf (this file). |
| MultiOS.inf | Sample multi-platform, multi-language INF file. |
We welcome your comments, problem reports and wish-list requests. Please submit them by pointing your Internet browser to http://www.microsoft.com/ddk.
© Microsoft Corporation 2001-2003


The paper Object Graph Programming, with Aditya Thimmaia, Christopher Rossbach, and Milos Gligoric was accepted to ICSE 2024!