UTI
public struct UTI : CustomStringConvertible, CustomDebugStringConvertible, Equatable
Undocumented
-
Undocumented
Declaration
Swift
public let utiString: String
-
Undocumented
Declaration
Swift
public init(_ utiString: String)
-
Undocumented
Declaration
Swift
public init?(filenameExtension: String, conformingTo: UTI? = nil)
-
Undocumented
Declaration
Swift
public init?(mimeType: String, conformingTo: UTI? = nil)
-
-
-
Undocumented
Declaration
Swift
public static func UTIs(fromFilenameExtension filenameExtension: String, conformingTo: UTI? = nil) -> [UTI]
-
Undocumented
Declaration
Swift
public static func UTIs(fromMimeType mimeType: String, conformingTo: UTI? = nil) -> [UTI]
-
-
-
Undocumented
Declaration
Swift
public var filenameExtension: String? { get }
-
Undocumented
Declaration
Swift
public var filenameExtensions: [String] { get }
-
Undocumented
Declaration
Swift
public var mimeType: String? { get }
-
Undocumented
Declaration
Swift
public var mimeTypes: [String] { get }
-
-
-
Undocumented
Declaration
Swift
public var isDeclared: Bool { get }
-
Undocumented
Declaration
Swift
public var isDynamic: Bool { get }
-
Undocumented
See moreDeclaration
Swift
public struct Declaration : CustomStringConvertible, CustomDebugStringConvertible
-
Undocumented
Declaration
Swift
public var declaration: Declaration { get }
-
Undocumented
Declaration
Swift
public var declaringBundle: Bundle? { get }
-
Undocumented
Declaration
Swift
public var iconFileUrl: URL? { get }
-
Declaration
Swift
public var description: String { get }
-
Declaration
Swift
public var debugDescription: String { get }
-
Derive a Dropmark item type from a Universal Type Identifier.
Declaration
Swift
public var itemType: DKItemType? { get }


Rating:{{item.imdbRating}}
Votes:{{item.imdbVotes}}
Year:{{item.year}}
Average User Rating:{{item.average}}


--- title: Cronbach's alpha and its models author: Gertjan Verhoeven date: '2019-06-20' summary: Working for the first time with questionnaire data, I felt i needed some basic understanding of measurement theory, and the various approaches regarding reliability and validity of questionnaires. slug: cronbach-alpha-measurement-theory draft: TRUE categories: - Data science - Statistics tags: - cronbach's alpha - validity baseurl: "https://gsverhoeven.github.io" header: image: "headers/ceiling-clean-clinic-247786.jpg" preview: FALSE ---
Working for the first time with questionnaire data, I felt i needed some basic understanding of measurement theory, and the various approaches regarding reliability and validity of questionnaires.
Cronbach's alpha was something I already associated with the social sciences before I knew any stats. So I was curious to find out what it is, and how it can be useful.
As always, we use simulated data. Fortunately, the psych
package by Hugh Revelle contains functions to simulate data with the appropriate structure.
Before getting busy, let us explain the statistical models that underlie Cronbach 's alpha. In this I follow Cho (2016). This study proves that various reliability coefficients are generated from measurement models nested within the bi-factor measurement model.
Unfortunately, with rare exceptions, we normally are faced with just one test, not two, three or four. How then to estimate the reliability of that one test?
It has been proposed that α {} can be viewed as the expected correlation of two tests that measure the same construct. By using this definition, it is implicitly assumed that the average correlation of a set of items is an accurate estimate of the average correlation of all items that pertain to a certain construct.
The term item is used throughout this article, but items could be anything—questions, raters, indicators- for all of which, one might ask, to what extent they "measure the same thing." Items that are manipulated are commonly referred to as variables.
Although defined in terms of the correlation of a test with a test just like it, reliability can be estimated by the characteristics of the items within the test. The desire for an easy to use “magic bullet” based upon the domain sampling model has led to a number of solutions for estimating the reliability of a test based upon characteristics of the covariances of the items. All of these estimates are based upon classical test theory and assume that the covariances between items represents true covariance, but that the variances of the items reflect an unknown sum of true and unique variance.
A tau-equivalent measurement model is a special case of a congeneric measurement model, hereby assuming all factor loadings to be the same.
The most important difference between CTT and IRT is that in CTT, one uses a common estimate of the measurement precision that is assumed to be equal for all individuals irrespective of their attribute levels. In IRT, however, the measurement precision depends on the latent-attribute value. This can result in differences between CTT and IRT with respect to their conclusions about statistical significance of change.
Cronbach's alpha is meant for single latent variables / factors / traits.
Classical Test Theory (CTT) considers four or more tests to be congenerically equivalent if all tests may be expressed in terms of one factor and a residual error. (N.b. we need at least four tests to identify all free parameters of the model).
To determine the scale, the variance of the latent variable is set to 1.
Congeneric tests may differ in both factor loading and error variances. The congeneric model does not have additional constraints.
The tau-equivalent model is the same as the congeneric model, only with the constraint that all the factor loadings are equal, but allows the error variances to vary from item to item. Tau equivalent tests have equal factor loadings but may have unequal errors.
For example, an essentially tau-equivalent model includes a constant, whereas a strictly tau-equivalent model does not. Although the addition of a constant has an effect on the mean, it does not affect the variances, covariances or the value of reliability.
library(ggplot2)
library(psych)
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
set.seed(42) #keep the same starting values
#four congeneric measures
loadings <- rep(1, 4)
loadings <- c(0.8, 0.7, 0.6, 0.5)
errors <- c(0.8, 0.7, 0.6, 0.5)
errors <- sqrt(1 - loadings^2)
errors <- rep(0.1, 4)
r4 <- psych::sim.congeneric(loads = loadings,
err = errors, #A vector of error variances
low = -3, # values less than low are forced to low (when cat = T)
high = 3, # values greater than high are forced to high
short = FALSE,
categorical = FALSE,
N = 10000)
Now we have less noise on the item with the lower factor loadings. \(\theta\) is the (common) latent variable.
my.df <- data.frame(r4$latent, r4$observed)
# Check factor loadings
fit1 <- lm(V1 ~ theta, data = my.df)
fit2 <- lm(V2 ~ theta, data = my.df)
fit3 <- lm(V3 ~ theta, data = my.df)
fit4 <- lm(V4 ~ theta, data = my.df)
sd(fit1$residuals)
## [1] 0.1007705
sd(fit2$residuals)
## [1] 0.1013989
sd(fit3$residuals)
## [1] 0.1008644
sd(fit4$residuals)
## [1] 0.09897803
errors <- my.df[, colnames(my.df) %in% c("e1", "e2", "e3", "e4")]
cor(errors)
## e1 e2 e3 e4
## e1 1.000000000 0.010432462 0.002030510 -0.006050927
## e2 0.010432462 1.000000000 -0.008618315 -0.027381449
## e3 0.002030510 -0.008618315 1.000000000 -0.005340683
## e4 -0.006050927 -0.027381449 -0.005340683 1.000000000
# errors are uncorrelated with each other
cov(errors)
## e1 e2 e3 e4
## e1 1.015522554 0.01066020 0.002063898 -0.006035393
## e2 0.010660197 1.02817565 -0.008814430 -0.027480772
## e3 0.002063898 -0.00881443 1.017364269 -0.005331801
## e4 -0.006035393 -0.02748077 -0.005331801 0.979665221
var(my.df$e1)
## [1] 1.015523
var(my.df$theta)
## [1] 1.012307
Ok, let's have it. The cronbach alpha.
# r4 population correlation matrix
psych::alpha(r4$observed)
##
## Reliability analysis
## Call: psych::alpha(x = r4$observed)
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.98 0.99 0.99 0.97 154 0.00013 -0.0074 0.66 0.97
##
## lower alpha upper 95% confidence boundaries
## 0.98 0.98 0.98
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## V1 0.98 0.99 0.99 0.97 102 0.00021 1.9e-05 0.97
## V2 0.97 0.99 0.99 0.97 109 0.00023 3.1e-05 0.97
## V3 0.98 0.99 0.99 0.98 119 0.00021 3.8e-05 0.97
## V4 0.99 0.99 0.99 0.98 140 0.00015 9.8e-06 0.98
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## V1 10000 0.99 0.99 0.99 0.99 -0.0090 0.81
## V2 10000 0.99 0.99 0.99 0.99 -0.0071 0.71
## V3 10000 0.99 0.99 0.99 0.98 -0.0070 0.61
## V4 10000 0.99 0.99 0.98 0.98 -0.0066 0.51
Check with ground truth:
# calculate total score
my.df$sumV <- with(my.df, V1+V2+V3+V4)
my.df$sumE <- with(my.df, e1+e2+e3+e4)
plot(my.df$sumV, my.df$theta)
# raw alpha
(1-sum(diag(cov(r4$observed)))/var(my.df$sumV))*4/3
## [1] 0.984329
cov(r4$observed)
## V1 V2 V3 V4
## V1 0.6568506 0.5665898 0.4855468 0.4045279
## V2 0.5665898 0.5065013 0.4252159 0.3541304
## V3 0.4855468 0.4252159 0.3746968 0.3037033
## V4 0.4045279 0.3541304 0.3037033 0.2629166
The resulting α coefficient of reliability ranges from 0 to 1 in providing this overall assessment of a measure’s reliability. If all of the scale items are entirely independent from one another (i.e., are not correlated or share no covariance), then α = 0; and, if all of the items have high covariances, then α will approach 1 as the number of items in the scale approaches infinity.
Cronbach's α {} assumes that all factor loadings are equal. In reality this is rarely the case, and hence it systematically underestimates the reliability. An alternative to Cronbach's α {} that does not rely on this assumption is congeneric reliability ( ρ C {{C}} {C})
Let 's simulate data that has TWO factors, that are fully independent (uncorrelated). So that's two independent (orthogonal) factors.
# examples of two independent factors that produce reasonable alphas
#this is a case where alpha is a poor indicator of unidimensionality
set.seed(123)
two.f <- data.frame(sim.item(nvar = 8,
nsub = 10000))
with(two.f, plot(V1, V3))
#sim.item(nvar = 72, nsub = 500, circum = FALSE, xloading = 0.6, yloading = 0.6,
# gloading = 0, xbias = 0, ybias = 0, categorical = FALSE, low = -3, high = 3,
# truncate = FALSE, cutpoint = 0)
#specify which items to reverse key by name
alpha(two.f, keys = c("V1","V2","V7","V8"))
##
## Reliability analysis
## Call: alpha(x = two.f, keys = c("V1", "V2", "V7", "V8"))
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.6 0.6 0.63 0.16 1.5 0.0062 0.053 0.51 0.017
##
## lower alpha upper 95% confidence boundaries
## 0.58 0.6 0.61
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## V1- 0.56 0.56 0.59 0.15 1.3 0.0068 0.032 0.019
## V2- 0.57 0.57 0.59 0.16 1.3 0.0068 0.031 0.019
## V3 0.56 0.56 0.59 0.16 1.3 0.0068 0.032 0.019
## V4 0.56 0.56 0.59 0.16 1.3 0.0068 0.033 0.014
## V5 0.56 0.56 0.59 0.15 1.3 0.0068 0.033 0.013
## V6 0.56 0.56 0.59 0.16 1.3 0.0068 0.032 0.019
## V7- 0.56 0.56 0.59 0.15 1.3 0.0068 0.033 0.014
## V8- 0.57 0.57 0.60 0.16 1.3 0.0067 0.032 0.019
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## V1- 10000 0.52 0.52 0.42 0.31 0.1112 1.00
## V2- 10000 0.51 0.50 0.40 0.29 0.0949 1.00
## V3 10000 0.51 0.51 0.40 0.29 0.0048 1.01
## V4 10000 0.51 0.51 0.40 0.30 -0.0029 0.99
## V5 10000 0.52 0.52 0.41 0.30 0.0104 1.00
## V6 10000 0.51 0.51 0.41 0.30 0.0143 1.00
## V7- 10000 0.51 0.52 0.41 0.30 0.1067 0.99
## V8- 10000 0.50 0.50 0.38 0.28 0.0837 1.01
Cho, E (2016). "Making Reliability Reliable". Organizational Research Methods. 19 (4): 651–682 https://rameliaz.github.io/mg-sem-workshop/cho2016.pdf
Revelle, W The Personality Project: https://www.personality-project.org/r/book/Chapter7.pdf


Subscribe for Email Updates
Add a descriptive message telling what your visitor is signing up for here.
Full Name
Email*
Submit
Marketing by


Introducing the Invisible reCAPTCHA!
Since the launch of No CAPTCHA reCAPTCHA, millions of internet users have been able to attest they are human with just a single click. Now we're taking it a step further and making it invisible. Human users will be let through without seeing the "I'm not a robot" checkbox, while suspicious ones and bots still have to solve the challenges. We’re excited about this and hope you will give it a try! Sign up here.


[§150A-9] Rules and regulations. The department shall have the authority to carry out and effectuate the purposes of this chapter by rules and regulations. [L 1973, c 69, pt of §1]


You can choose to new a game at any time if the server and your partner's program are both working except for the time when you have just new a game and haven't submited the configuration. This operation will ask you whether you want to save the game when there are any changes happen in you current game and ask for your partner's agree. And only if your partner agrees to new a game, will a game be newed.


Hey I'm Jason. I was born in Vancouver, Canada on November 8, 1992. I like Video games and sleeping and coding. Thanks for visiting my website!


public
|
#
__construct( string $sApiKey = null, string $iGame = null, string $sSteamid = null )
Construction of the variables steamid, key and game
Construction of the variables steamid, key and game
Parameters
- $sApiKey
- Steamworks Developer API Key
- $iGame
- Your Appid
- $sSteamid
- The SteamID of the user
|
public
justinback\steam\item
|
#
AddItem( string $sItemDefId, string $sItemPropsJson = null, boolean $bNotify = false, string $sRequestId = null )
AddItem is used to add new items directly in a user's inventory. For each itemdef, an instance of that type is created and added to the target account.
Items of type 'bundle' or 'generator' are unpacked at the time they are added. The response message provides information about the item or items that were actually inserted in the inventory.
This call will fail if the itemdef is not defined or cannot be unpacked; or if the target player does not have permission for the given appid.
Player notification of a new item, if any, is best handled by the game client. Calls to AddItem that occur when the player is not in-game may optionally set notify=1 to notify the player via Steam. This may engage any of the player-notification mechanisms in Steam, including an overlay popup.
The optional requestid parameter allows a client to make an idempotent call. If the client is unsure whether a request completed successfully on the server, it can replay the request, reusing the original request ID.
If the request is replayed, the response will include current state for the items that were affected by the original request, without making new changes.
If the original request fails on the server, replaying the same request ID will re-attempt the work rather than reporting the prior error result.
AddItem is used to add new items directly in a user's inventory. For each itemdef, an instance of that type is created and added to the target account.
Items of type 'bundle' or 'generator' are unpacked at the time they are added. The response message provides information about the item or items that were actually inserted in the inventory.
This call will fail if the itemdef is not defined or cannot be unpacked; or if the target player does not have permission for the given appid.
Player notification of a new item, if any, is best handled by the game client. Calls to AddItem that occur when the player is not in-game may optionally set notify=1 to notify the player via Steam. This may engage any of the player-notification mechanisms in Steam, including an overlay popup.
The optional requestid parameter allows a client to make an idempotent call. If the client is unsure whether a request completed successfully on the server, it can replay the request, reusing the original request ID.
If the request is replayed, the response will include current state for the items that were affected by the original request, without making new changes.
If the original request fails on the server, replaying the same request ID will re-attempt the work rather than reporting the prior error result.
Parameters
- $sItemDefId
- Item definition ID to grant
- $sItemPropsJson
- No description provided. (Valve: Unused!)
- $bNotify
- Optional, default 0. Set to 1 to indicate the user is not in-game and should see a Steam notification.
- $sRequestId
- Optional, default 0. Clients may provide a unique identifier for a request to perform at most once execution. When a requestid is resubmitted, it will not cause the work to be performed again; the response message will be the current state of items affected by the original successful execution.
Returns
Throws
|
public
justinback\steam\item
|
#
AddPromoItem( string $sItemDefId, string $sItemPropsJson = null, boolean $bNotify = false, string $sRequestId = null )
Adds a promo item to a user's inventory
Adds a promo item to a user's inventory
Parameters
- $sItemDefId
- List of the itemdefid's to grant
- $sItemPropsJson
- No description provided.
- $bNotify
- Optional, default 0. Set to 1 to indicate the user is not in-game and should see a Steam notification.
- $sRequestId
- Optional, default 0. Clients may provide a unique identifier for a request to perform at most once execution. When a requestid is resubmitted, it will not cause the work to be performed again; the response message will be the current state of items affected by the original successful execution.
Returns
Throws
|
public
justinback\steam\item
|
#
Consolidate( array $aItemDefId, boolean $bForce = false )
Consolidate items of the given type within an user's inventory.
Whenever items are combined into a stack, the resulting stack takes the market and trade restriction values of the most-restricted item. The Consolidate action ignores any item with an active market or trade restriction, unless 'force' is set to true.
Consolidate items of the given type within an user's inventory.
Whenever items are combined into a stack, the resulting stack takes the market and trade restriction values of the most-restricted item. The Consolidate action ignores any item with an active market or trade restriction, unless 'force' is set to true.
Parameters
- $aItemDefId
- No description provided
- $bForce
- The Consolidate action ignores any item with an active market or trade restriction, unless 'force' is set to true.
Returns
Throws
|
public
justinback\steam\item
|
#
ModifyItems( string $sInputJson, integer $iTimestamp = 0 )
Modify the dynamic properties on items for the given user. This call is rate-limited per user and currently only 100 items can be modified in one call.
Modify the dynamic properties on items for the given user. This call is rate-limited per user and currently only 100 items can be modified in one call.
Parameters
- $sInputJson
- No description provided
- $iTimestamp
- Unix timestamp of the request. An error will be returned if the items have been modified since this request time.
Returns
Throws
|
public
justinback\steam\item
|
#
ExchangeItem( array $aMaterialsItemId, array $aMaterialsQuantity, string $sOutputItemDefId )
ExchangeItem is used for crafting - converting items using a predefined recipe. A successful exchange destroys the set of items required by the crafting recipe, and adds a new instance of the target itemdef to the player's inventory.
ExchangeItem is used for crafting - converting items using a predefined recipe. A successful exchange destroys the set of items required by the crafting recipe, and adds a new instance of the target itemdef to the player's inventory.
The target item definition must have one or more crafting recipes declared in the exchange attribute. Recipes declare the number and type of items required to create the target item. If the set of items provided in the ExchangeItems call does not satisfy any recipe, the call fails and no changes are made to the inventory.
See the Inventory Service Schema documentation for more detail on crafting recipes.
The crafting operation will take trade and market restrictions into account; the created item will have the latest trade restriction of any item used to create it.
If successful, this call returns an encoded JSON blob that lists the items that were changed by this call - the consumed items and the newly created one.
Parameters
- $aMaterialsItemId
- The unique ID an item in the player's inventory to be converted to the target item type
- $aMaterialsQuantity
- The quantity of the matching item that should be used in this recipe. This array must be the same length as $aMaterialsItemId.
- $sOutputItemDefId
- The ItemDef of the item to be created.
Returns
Throws
|
public
justinback\steam\item
|
#
GetInventory( )
GetInventory is used to retrieve a user's inventory
GetInventory is used to retrieve a user's inventory
Returns
Throws
|
public
justinback\steam\iteminfo
|
#
GetItemDefs( )
GetItemDefs is used to retrieve the itemdefs for a given application.
GetItemDefs is used to retrieve the itemdefs for a given application.
Returns
Throws
|


Richard Keys defends Sky Sports axe and launches attack on Jamie Carragher
Richard Keys left Sky Sports in 2011 amid a sexism storm but insists Liverpool legend Jamie Carragher was welcomed back despite spitting at a football fan
by Liam Prenderville, http://www.facebook.com/mirrorfootballRichard Keys has defended his behaviour that led to his departure from Sky Sports - and launched a stinging attack on Jamie Carragher.
Keys departed Sky in 2011 alongside punditry partner Andy Gray amid an sexism storm.
Keys and Gray had been heard discussing off-air, the appointment of Sian Massey-Ellis as an official for a Premier League match, stating 'women don't know the offside rule'.
Another off-air clip surfaced of former presenter Keys asking Jamie Redknapp if he "smashed it" in reference to an ex-girlfriend.
Almost nine years has passed since the departure with Keys and Gray now fronting Premier League coverage in Doha.
While he accepts his conduct was sexist, Keys insists it is the sort of thing that goes on in the workplace and dressing rooms.
"Was it sexist? Looking at it now, yes it was. Was it disrespectful? Yes, it was. Was it said in a public arena? No," he told the Athletic.
"Should a mobile phone been recording our studio that day? A studio is like a football dressing room, it’s a boisterous place.
"No different happened in that studio than did in any dressing room that morning anywhere in the UK.”
Keys went on to hit out at Sky over their decision to retain Liverpool legend Carragher as one of their pundits.
In March 2018, the Mirror obtained footage of Carragher spitting at a football fan and his daughter from his car window.
He was suspended until the end of that season but has since returned as one of their leading pundits.
Keys adds: "Look at the things that have happened. I didn’t go downstairs to the dressing room door, knock on it and spit in her face.
"And yet the guy that committed a criminal offence in a public arena, spitting in the face of a 14-year-old girl, was later welcomed back by Sky as a hero,” says Keys.
“Now, come on. Are there any similarities? I don’t think so.”


--- layout: home background: '/img/bg-index.jpg' ---
Tania Nasrollahi is a sociology Ph.D. Student at Indiana University-Bloomington, where she studies processes of women's adoption and avoidance of categories related to sexual violence. Broadly, her research interests include cultural sociology, sociological theory, and ethnographic methods. More specifically, she researches the impacts of categorization systems on identity formation, negotiation, and contestation.
She previously graduated summa cum laude from the University of California, Los Angeles, where her research was funded by the Andrew W. Mellon and Robert Lemelson Foundations.
CV available upon request.


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 1
Dietary
Transform leftover boiled potatoes and fridge-drawer veggies into a colourful and lightly spiced treat with this simple recipe.
For the pickle, put the beetroot in a bowl and season with the sugar and allspice, a pinch of salt and a grind of pepper. Mix well and set aside for a few minutes. Drain off any excess liquid, then trickle over the vinegar and mix well.
For the fritters, put the potatoes in a bowl and season with salt, pepper and the caraway seeds. Mix in the spring onions and cheese. Pour in the egg and beer, stir, then mix in the flour to make a thick batter.
Pour 2.5cm/one inch oil into a deep saucepan and heat to 180C/350F. To test if it's hot enough, dribble some of the batter into the hot oil. It should sizzle and turn golden-brown after a minute or so. Watch the pan. Carefully lower tablespoons of the batter into the hot oil and cook for one minute, then turn and cook the other side until golden and firm. Transfer to kitchen paper using a slotted spoon.
Season with a little salt and pepper and serve with the pickled beetroot.


Clients have demoed POC often over the years. Todoist sells it. First step might be adding location in general (serves additional needs).
It would be great to bring the natural language thats in the quick add on iOS to all platforms.
There are multiple ways how to do it. a) Separate app on top of Wunderlist's API b) Additional view in Wunderlist apps (only desktop) to display multiple lists


Version 2.1.0 (January 29, 2013)
- Removed support for ExpressionEngine 1.x (Comment Uploads is now EE2 only).
- Added offline documentation files to download package.
- Fixed a bug where uploaded comment files would only display for the first entry of a multi-entry page.
Version 2.0.1 (February 7, 2012)
- Fixed a bug where a the upload_dir_id= or upload_dir_name= parameters were being ignored.
- Fixed a bug where uploads would sometimes not work in EE1.
Version 2.0.0 (May 17, 2011)
- Converted Comment Uploads to use Solspace Add-on Builder Framework, and Solspace Bridge for EE 1.x.
Version 1.1.0 (November 13, 2009)
- Added support for file Delete functionality and variables, based on native EE membership permissions.
- Added {uploaded_file_original_name} variable to display the original file name of the uploaded file.
- Added {uploaded_file_id} variable to display the unique ID of the uploaded file.
- Added {uploaded_file_size_kb} and {uploaded_file_size_mb} variables.
- Changed {uploaded_files_count} variable to be {uploaded_files_total}. {uploaded_files_count} is now deprecated.
Version 1.0.0 (September 16, 2009)


Content is at heart of every organization. Leverage automation and integration to make the data reach the right target.
Streamline your production content to your end-users. Digital asset are consumed everywhere by mi...
Objectives Guide you through each steps Design Architecture Implementation Release to ...
Our experts are AWS certified. We can help you leverage cloud technologies to reduce cost and inc...


Welcome! Please fill in the form below to get started.
Instructions can be found at the bottom of this page.
Fill in the form above with the number of people presenting, the total time of the presentation (not the time per person), and the names of each person.
You will then be presented with a countdown timer (click or use space bar to start/pause) and 'stopwatches' for each presenter (click or use numbers 1-9, ordered from left/top to right/bottom, to select which person is talking and to tally up their total talking/presenting time).


1. When you are clicking on Button(Ckick Me to play). Its changing color of:-
2. If you want to see your favourite color. No probs, you can add your favourite color by clicking on Add more Button.


The newsletter of the University of Oregon UO College of Education newsletter
It's not a mid-life crisis, and she didn't lose a bet. Learn why FHS Director Shoshana Kerewsky auctioned off her summer hairstyle, and how it will help students. (VIDEO)
Aug. 16
UO Summer Commencement
Aug. 30
Ducks football home opener (vs. South Dakota)
Sept. 2
Dean Kamphaus' first day
Sept. 26
COE Welcome Day (formerly COE Orientation)
Leilani Sabzalian wins Spencer Fellowship
2013-14 COE faculty/staff/student honors and awards
Hear COE profs on OPB's Class of 2025 radio doc
CFT master's student named Tillman Military Scholar
Global and Online Education busily educating Chinese scholars
David Conley cited in Daily Edventures
Quacka Quacka, from a 5th-grade class in Chino, CA. Eat your heart out, Shakira.
Useful tools and apps to help you assemble your classroom curriculum
2014 COE Alumni Awardees
Non-verbal teen with autism gives graduation address at school
@uosomd professor jazzed about writing a score for 10K race @oregon14wjc
Randy Kamphaus, the COE's third dean in as many years, will take over Sept. 2. We found out how "berry" much he's looking forward to his new life in Oregon.


There are 6 TMD files in the package coins.backend.gen as shown in the following Table10-1.
| Architecture | Number of lines | Man months | File name | |
|---|---|---|---|---|
| Total | in Java | |||
| SPARC | 1,949 | 802 | unavailable | sparc.tmd |
| X86 | 2,391 | 985 | unavailable | x86.tmd |
| ARM | 3,052 | 2,176 | 6 | arm.tmd |
| MIPS | 2,081 | 1,379 | 3 | mips.tmd |
| SH4 | 3,568 | 2,467 | 6 | sh4.tmd |
| PowerPC | 5,016 | 2,913 | 6 | ppc.tmd |
(def *type-address* I32) (def *type-bool* I32)the type of address is defined as I32, and also the type of bool (the result type of TSTxx instruction) is defined as I32.
(def *real-reg-symtab* (SYMTAB ("%g0" REG I32 4 0) : ("%g7" REG I32 4 0) ("%l0" REG I32 4 0) : ("%l7" REG I32 4 0) ("%o0" REG I32 4 0) : ("%o6" REG I32 4 0) ("%i0" REG I32 4 0) : ("%i6" REG I32 4 0) ("%f0" REG F64 8 0) : ("%sp" REG I32 4 0) ("%fp" REG I32 4 0)))The defined information is inserted in the global symbol table of the L-module.
In sparc.tmd, this is defined by using the "foreach" macro as follows:
(def *real-reg-symtab* (SYMTAB (foreach @n (01 23 45 67) ("%l@n" REG I64 4 0)) (foreach @p (i o) (foreach @n (01 23 45) ("%@p@n" REG I64 4 0))) (foreach @gl (g l) (foreach @n (0 1 2 3 4 5 6 7) ("%@gl@n" REG I32 4 0))) (foreach @oi (o i) (foreach @n (0 1 2 3 4 5) ("%@oi@n" REG I32 4 0))) (foreach @n (0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30) ("%f@n" REG F64 8 0)) ("%sp" REG I32 4 0) ("%fp" REG I32 4 0)))The name of each register must begin with the character "%".
(def *reg-I32* ( (REG I32 "%i0") (REG I32 "%i1") (REG I32 "%i2") : (REG I32 "%i6") (REG I32 "%o0") : (REG I32 "%o6") (REG I32 "%l0") : (REG I32 "%l7")))
(defregset regl *reg-I32*) (defregset regh *reg-I16*) (defregset regb *reg-I8*)The first argument of the defregset-construct is a nonterminal symbol and the second argument is a set of registers for the nonterminal. For example, when the reduction to the nonterminal regl occurs, a register in *reg-I32* is assigned to it.
(defregsetvar (type registers-set))defines that a register of registers-set is assigned to a register variable of type type by default. The following is an example.
(defregsetvar (I32 *reg-I32*) (I16 *reg-I16*) (I8 *reg-I8*) (F64 *reg-F64*) (F32 *reg-F32*))
(defstart void)In this example, void is the start symbol.
For example, sparc.tmd includes the following set of rules:
1: (defregset regl *reg-I32*) ;; Default register set for each nonterminals. 2: (defrule xregl (REG I32)) ;; nonterminal for registers of the form (REG I32 ..) 3: (defrule regl xregl) ;; nonterminal for registers 4: (defrule addr regl) ;; nonterminal for addressing mode 5: (defrule rc regl) ;; register or small integer constant 6: (defrule sta (STATIC I32)) ;; nonterminal for address of static variable 7: (defrule asmcon sta) ;; nonterminal for integer constant 8: (defrule regl asmcon (code (_set $1 $0)) (cost 2)) 9: (defrule regl (ADD I32 regl rc) (code (add $1 $2 $0)) (cost 1))) 10: (defrule regl (MEM I32 addr) (code (ld (mem $1) $0)) (cost 1)))where the leftmost digits are the number inserted for the following explanation. The first argument of a defrule-construct is the left-hand nonterminal of a production rule. The second argument is a L-expression, and is the right-hand side of the rule.
When the input L-expression matches to the right-hand side of a rule, the target code in the associated code-attribute is generated.
The L-expression generated from the expression "x+y" of the following source program:
int x; int func(int y){ return x+y; }is
(SET I32 (REG I32 "returnvalue.2%0") (ADD I32 (MEM I32 (STATIC I32 "x")) (REG I32 "y.1%0")))The result of the matching to this input L-expression is:
*195: regl -> (ADD I32 regl rc) [dest=(REG I32 "returnvalue.2%0")] SU=1 ;; 9 *60: regl -> (MEM I32 addr) [dest=(REG I32 ".T1%")] SU=1 ;; 10 19: addr -> regl SU=0 ;; 4 *44: regl -> asmcon [dest=(REG I32 ".T2%")] SU=1 ;; 8 29: asmcon -> sta SU=0 ;; 7 27: sta -> (STATIC I32) SU=0 ;; 6 35: rc -> regl SU=0 ;; 5 *15: regl -> xregl [dest=(REG I32 "y.1%0")] SU=0 ;; 3 5: xregl -> (REG I32) SU=0 ;; 2The leftmost digits are the rule number in the CodeGenerator_sparc.java generated from sparc.tmd. The rules with "*" in the figure are used for generating target code. The rightmost digits are the rule number in the previous figure. "SU" is the Sethi-Ullman number.
The result of this matching is expressed still in L-expression as follows:
(SET I32 (REG I32 ".T2%") (STATIC I32 "x")) (SET I32 (REG I32 ".T1%") (MEM I32 (REG I32 ".T2%"))) (SET I32 (REG I32 "returnvalue.2%0") (ADD I32 (REG I32 ".T1%") (REG I32 "y.1%0")))After the register allocation phase these are transformed to:
(SET I32 (REG I32 "%i1") (STATIC I32 "x")) (SET I32 (REG I32 "%i1") (MEM I32 (REG I32 "%i1"))) (SET I32 (REG I32 "%i0") (ADD I32 (REG I32 "%i1") (REG I32 "%i0")))Final code generation is done again by tree matching. The result is:
(sethi (%hi x) %i1) (or %i1 (%lo x) %i1) (ld (mem %i1) %i1) (add %i1 %i0 %i0)where the first two instructions are generated by
(code (_set $1 $0))_set is the name of the macro-instruction defined as follows:
%defbuild(_set x y) { return ImList.list (ImList.list("sethi", ImList.list("%hi", x), y), ImList.list("or", y, ImList.list("%lo", x), y)); }The final assembly code is:
sethi %hi(x),%i1 or %i1,%lo(x),%i1 ld [%i1],%i1 add %i1,%i0,%i0
(foreach @x (a b) (foo @x)) => (foo a) (foo b) (foreach (@x @y) ((a 1) (b 2)) (foo @x @y)) => (foo a 1) (foo b 2)The previous rule 9:
9: (defrule regl (ADD I32 regl rc) (code (add $1 $2 $0)) (cost 1)))is a part of the expanded rules from the following macro expression:
(foreach (@op @code) ((ADD add) (SUB sub) (BAND and) (BOR or) (BXOR xor)) (defrule regl (@op I32 regl rc) (code (@code $1 $2 $0)) (cost 1)))And the previous rule 10
10: (defrule regl (MEM I32 addr) (code (ld (mem $1) $0)) (cost 1)))is a part of the expanded rules from the following macro expression:
(foreach (@t @code @s) ((I32 ld l) (I16 ldsh h) (I8 ldsb b) (F32 ld f)) (defrule reg@s (MEM @t addr) (code (@code (mem $1) $0)) (cost 1)))
(defrule production-rule cond-attr code-attr value-attr regset-attr eqreg-attr cost-attr clobber-attr )Each item is explained in the following:
The form of production rule is:
production-rule ::= lhs pattern lhs ::= nonterm pattern ::= S-expression
where lhs is a nonterminal symbol to which the right-hand pattern is reduced.
pattern is a nonterminal symbol or an L-expression, where some parts of the L-expression are possibly replaced by nonterminals.
cond-attr specifies the condition whether the production rule is applicable or not.
cond-attr ::= (cond condition) condition ::= quoted-string
condition is a boolean expression in Java. $0 symbol in the expression is replaced by the target L-expression.
For example, the rule
(defrule smallnumber (INTCONST I32)) (cond "((LirIconst)$0).value >= 0 && ((LirIconst)$0).value < 256"))
matches to the integer constant between 0 and 255.
The class LirIconst is in the package coins.backend.lir and is used to represent a (INTCONST I32 ..) object.code-attr is the sequence of the instructions of the target CPU.
code-attr ::= (code code-sequence...) code-sequence ::= S-expression
codesequence is a sequence of assembly instructions in the form of S-expression.
value-attr specifies the value assigned to the left-hand nonterminal.
value-attr ::= (value value-sequence...) value-sequence ::= S-expression
For example, if the target CPU has the addressing mode of the form [%r0+%r1], the rules:
(defrule address (ADD I32 reg reg) (value (plus $1 $2))) (defrule mem (MEM I32 address) (value (ind $1))) (defrule reg mem (code (load $1 $0)))
will generate from the input L-expression:
(MEM I32 (ADD I32 (REG I32 "x") (REG I32 "y")))
the following instruction:
(load (ind (plus %r0 %r1)) %r2)
This instruction will be transformed to the following final assembly code, if the ind macro and the plus macro are defined appropriately.
load [%r0+%r1],%r2
If value-attr is omitted, the value of left-hand nonterminal is:
cost-attr specifies the cost of the target instruction.
cost-attr ::= (cost number)
number is the cost of the target instruction. If the cost is the size (number of bytes) of the instruction, space-efficient code will be generated. If the cost is the latency of the instruction, time-efficient code will be generated.
regset-attr specifies the set of registers to which the nonterminal belongs.
regset-attr ::= (regset ($n regset-name) ...)
The following example indicates that the register assigned to $1 (dividend) is %eax and the register assigned to $2 (divisor) is one of %eax, %ebx, %ecx, %esi, %edi.
(def *reg-mod$2-I32* ( (REG I32 "%eax") (REG I32 "%ecx") (REG I32 "%ebx") (REG I32 "%esi") (REG I32 "%edi") )) (defrule regl (DIVS I32 regl regl) (eqreg $1 $0) (regset ($0 *reg-eax-I32*) ($2 *reg-mod$2-I32*) ...)
eqreg-attr indicates that the two nontermnals must be assigned the same register.
eqreg-attr ::= (eqreg ($n $0) ...)
$n means the n-th nonterminal in the right-hand side. The n-th nonterminal must be defined by defregset-construct.
clobber-attr indicates the set of registers destroyed by this instruction.
clobber-attr ::= (clobber realregister...) realregister ::= (REG type quoted-string)
The registers indicated by clobber-attr are inserted into the resultant L-expression in the form of CLOBBER-expression.
For example, the first L-expressions generated from the previous example source program:
int x; int func(int y){ return x+y; }are
(PROLOGUE (0 0) (MEM I32 (FRAME I32 "y.1"))) (DEFLABEL "_lab1") (SET I32 (MEM I32 (FRAME I32 "returnvalue.2")) (ADD I32 (MEM I32 (STATIC I32 "x")) (MEM I32 (FRAME I32 "y.1")))) (JUMP (LABEL I32 "_epilogue")) (DEFLABEL "_epilogue") (EPILOGUE (0 0) (MEM I32 (FRAME I32 "returnvalue.2")))If the target CPU is SPARC, the PROLOGUE-expression must be transformed to the following L-expressions according to the calling convention of SPARC.
(PROLOGUE (0 0) (REG I32 "%i0")) (SET I32 (REG I32 "y.1%0") (REG I32 "%i0"))This transformation, or rewriting, is specified in sparc.tmd as follows:
(defrewrite (PROLOGUE) (to (norescan (eval "rewritePrologue($0, post)"))) (phase late))The form:
(defrewrite pattern (to new-pattern))specifies that pattern is replaced by new-pattern. The above example specifies that the PROLOGUE-expression is replaced by the result of the execution of the Java code rewritePrologue($0, post) (see next section for Java code).
The resultant L-expression again becomes the target of the matching by default. "norescan" stops the default rescanning.
"(phase late)" means that this rewriting is applied in the phase "LateRewriting" of the backend process and "(phase early)" means the phase "EarlyRewriting". See 11. Structure and Extensions of the Backend Process for these phase names.
pre/post means the instruction sequence immediately before/after this expression. The above example shows that
(PROLOGUE (0 0) (MEM I32 (FRAME I32 "y.1")))is replaced by
(PROLOGUE (0 0) (REG I32 "%i0"))and
(SET I32 (REG I32 "y.1%0") (REG I32 "%i0"))is added to the post sequence.
Also,
(EPILOGUE (0 0) (MEM I32 (FRAME I32 "returnvalue.2")))is transformed by
(defrewrite (EPILOGUE) (to (norescan (eval "rewriteEpilogue($0, pre)"))) (phase late))to
(SET I32 (REG I32 "%i0") (REG I32 "returnvalue.2%0")) (EPILOGUE (0 0) (REG I32 "%i0"))
grammar definitions %% imports %State methods Method of class State %CodeGenerator methods Method of class CodeGenerator
grammar definition consists of the list of defrewrite-, def-, defregset-, defregsetvar-, defstart-, defrule-construct.
Remaining parts are written in Java. imports are the list of import statements.
Methods of class State are the list of methods mainly referred in cond-attr.
Methods of class CodeGenerator are the list of methods in the class CodeGenerator_target. defbuild/defemit macro definitions are also placed here.
For example, this method is defined in sparc.tmd as follows:
LirNode rewriteFrame(LirNode node) { Symbol fp = func.module.globalSymtab.get("%fp"); int off = ((SymAuto)((LirSymRef)node).symbol).offset(); return lir.node (Op.ADD, node.type, lir.symRef(fp), lir.iconst(I32, (long)off)); }The func field of the super class CodeGenerator indicates the currently prosecced L-function (instance of the class coins.backend.Function). func.module is the currently processed L-module and has the global symbol table. "%fp" is the frame-pointer register.
The lir field of CodeGenerator has a instance of the class LirFactory. Various LIR nodes (LirNode) are generated by calling appropriate methods of lir.
%defbuild(_set x y) { return ImList.list (ImList.list("sethi", ImList.list("%hi", x), y), ImList.list("or", y, ImList.list("%lo", x), y)); }The class ImList is in the package coins.backend.util. ImList.list is a class method of ImList. The result of this macro expansion is the list of assembly instructions in the list form.
The followings are two example of the %defemit macro in sparc.tmd.
%defemit(+ x y) { if (y.charAt(0) == '-') return x + y; else return x + "+" + y; } %defemit(mem x) { return "[" + x + "]"; }The result of %defemit macro expansion is an instance of the class String.
INTCONST -> LirIconst FLOATCONST -> LirFconst STATIC, FRAME, REG, LABEL -> LirSymRef unary op. -> LirUnaOp binary op. -> LirBinOp other -> LirNaryOp
(mov (mem x) %r1) (mov (mem y) %r0) (add %r0 %r1 %r0) (mov %r0 (mem x))The list form assembly code is finally transtated to the target assembly code as follows:
mov [x],%r1 mov [y],%r0 add %r0,%r1,%r0 mov %r0,[x]
(1) Write a TMD (say xxx.tmd) for the new machine.
(2) Integrate the new TMD into the Backend.
The generation of target code for the new machine xxx can be done by specifying a coins option
-coins:target=xxxin the compiling command of COINS.
For that purpose, it is necessary to register the option to Registry.java file
and add a file MachineParamXxx.java specifying characteristics of the
new machine as follows.
(1) Register the command option
All command options should be registered to the file
    src/coins/Registry.java.
In this case, the new target machine name xxx should be added to the line
    ARCH[] = { ... };
in Registry.java.
If the option is not registered, then a warning message
    Undefined option xxx
will be issued.
(2) Specify machine characteristics
In the Frontend, machine characteristics such as the byte length of
basic data type should be given to generate HIR properly.
The machine characteristics for the machine xxx should be
specified in a file named MachineParamXxx.java and should be
placed under the directory coins. This file can be made easily
by seeing the file coins/MachineParam.java that holds default values
of the machine characteristics in such a form as
SIZEOF_INT = 4, ALIGN_INT = 4, SIZEOF_OFFSET = 4, ....where, SIZEOF_OFFSET shows the number of bytes required to represent the position of array/structure elements relative to the base of an array/structure.
else if (lTarget.equals("xxx")) { machineParam = new MachineParamXxx(this); }


respiratory (). children al.. virus viruses Clin. Infect. detection multiplex clinical patients viral Respiratory {border-style infections px;} rapid tests used #ffffff;} assays infection influenza pathogens pediatric platforms However, test use diagnostic effective RSV pneumoniae bacteria drugs lower Dis., acute asymptomatic impact studies tract Multiplex antibiotic days diagnosis disease healthy results severe study syncytial Dis. Microbiol. available cause high hospital identification infection. particularly reduction secretions significantly treatment Clinical Mycoplasma Pediatr. Virol., cases common evaluation human positive px; sensitivity shedding showed specific turnaround {font-family .–.) CI, Finally, J., Moreover, PCR RTI agents atypical cases, demonstrated disease. font-size laboratory likely reported role systematic tested (Principi (accessed Available Luminex Med., Microbiol., Panel RSV, accuracy advantage antimicrobial asymptomatically at: bacterial children. children: coinfections collab: community-acquired detect double; generally identify lead methods online pathogen practice risk (Beckmann (Esposito ./JCM.- ./j.jcv... ./peds.- Allplex Assay Chlamydia Esposito Esposito, Fast Hirsch, Pediatrics, Platforms Prevention RV, Track [Epub admitted ahead allow associated border-color border-width care commonly compared despite detected developed etiology e–e. immunocompromised infection, infections. infections: infectious licensed management new panel period potential print]. recent review shown solid; specificity subjects time true years {font-style {font-weight (.% ./journal.pone. Diagnostic, Disease February Infect., ONE:e. Opin. actual adenovirus assay blood bocavirus bold carriage chain considered courier; course disease, drug drugs. em; emergency essential frequency higher identified length low macrolides molecular multiple nasopharyngeal platforms, problems pt;} relevant resistance review. rhinovirus samples shed simultaneously testing use, useful viruses, vs.


| 1 | package fr.sii.ogham.testing.sms.simulator.jsmpp; | |
| 2 | ||
| 3 | import java.util.List; | |
| 4 | ||
| 5 | import ogham.testing.org.jsmpp.bean.SubmitSm; | |
| 6 | import org.slf4j.Logger; | |
| 7 | import org.slf4j.LoggerFactory; | |
| 8 | ||
| 9 | import fr.sii.ogham.testing.sms.simulator.SmppServerException; | |
| 10 | import fr.sii.ogham.testing.sms.simulator.SmppServerSimulator; | |
| 11 | import fr.sii.ogham.testing.sms.simulator.config.SimulatorConfiguration; | |
| 12 | ||
| 13 | /** | |
| 14 | * The server simulator based on jsmpp samples. | |
| 15 | */ | |
| 16 | public class JSMPPServer implements SmppServerSimulator<SubmitSm> { | |
| 17 | private static final Logger LOG = LoggerFactory.getLogger(JSMPPServer.class); | |
| 18 | ||
| 19 | private Thread thread; | |
| 20 | private final JSMPPServerSimulator simulator; | |
| 21 | ||
| 22 | /** | |
| 23 | * Initializes with provided configuration. | |
| 24 | * | |
| 25 | * @param config | |
| 26 | * the server configuration | |
| 27 | */ | |
| 28 | public JSMPPServer(SimulatorConfiguration config) { | |
| 29 | super(); | |
| 30 |
1
1. <init> : negated conditional → RUN_ERROR |
if (config.getPortProvider() == null) { |
| 31 | throw new IllegalArgumentException("Port configuration is mandatory"); | |
| 32 | } | |
| 33 | simulator = new JSMPPServerSimulator(config.getPortProvider().getPort(), config); | |
| 34 | } | |
| 35 | ||
| 36 | @Override | |
| 37 | public synchronized void start() throws SmppServerException { | |
| 38 | try { | |
| 39 | LOG.debug("starting simulator thread..."); | |
| 40 |
1
1. start : removed call to fr/sii/ogham/testing/sms/simulator/jsmpp/JSMPPServerSimulator::reset → RUN_ERROR |
simulator.reset(); |
| 41 | thread = new Thread(simulator); | |
| 42 |
1
1. start : removed call to java/lang/Thread::start → RUN_ERROR |
thread.start(); |
| 43 |
1
1. start : removed call to fr/sii/ogham/testing/sms/simulator/jsmpp/JSMPPServerSimulator::waitTillRunning → RUN_ERROR |
simulator.waitTillRunning(5000L); |
| 44 | LOG.debug("simulator started"); | |
| 45 | } catch (ServerStartupException e) { | |
| 46 | throw new SmppServerException("Failed to start JSMPP server ("+e.getMessage()+")", e); | |
| 47 | } | |
| 48 | } | |
| 49 | ||
| 50 | @Override | |
| 51 | public synchronized void stop() throws SmppServerException { | |
| 52 | try { | |
| 53 | LOG.debug("stopping simulator thread..."); | |
| 54 |
1
1. stop : removed call to fr/sii/ogham/testing/sms/simulator/jsmpp/JSMPPServerSimulator::stop → RUN_ERROR |
simulator.stop(); |
| 55 |
1
1. stop : removed call to java/lang/Thread::interrupt → RUN_ERROR |
thread.interrupt(); |
| 56 |
1
1. stop : removed call to java/lang/Thread::join → RUN_ERROR |
thread.join(); |
| 57 | LOG.debug("simulator stopped"); | |
| 58 | } catch (InterruptedException e) { | |
| 59 |
1
1. stop : removed call to java/lang/Thread::interrupt → NO_COVERAGE |
Thread.currentThread().interrupt(); |
| 60 | throw new SmppServerException("Failed to stop JSMPP server", e); | |
| 61 | } | |
| 62 | } | |
| 63 | ||
| 64 | @Override | |
| 65 | public int getPort() { | |
| 66 |
1
1. getPort : replaced int return with 0 for fr/sii/ogham/testing/sms/simulator/jsmpp/JSMPPServer::getPort → RUN_ERROR |
return simulator.getPort(); |
| 67 | } | |
| 68 | ||
| 69 | @Override | |
| 70 | public List<SubmitSm> getReceivedMessages() { | |
| 71 |
1
1. getReceivedMessages : replaced return value with Collections.emptyList for fr/sii/ogham/testing/sms/simulator/jsmpp/JSMPPServer::getReceivedMessages → NO_COVERAGE |
return simulator.getReceivedMessages(); |
| 72 | } | |
| 73 | ||
| 74 | } | |
Mutations | ||
| 30 |
1.1 |
|
| 40 |
1.1 |
|
| 42 |
1.1 |
|
| 43 |
1.1 |
|
| 54 |
1.1 |
|
| 55 |
1.1 |
|
| 56 |
1.1 |
|
| 59 |
1.1 |
|
| 66 |
1.1 |
|
| 71 |
1.1 |


--- layout: page title: "About" description: "Hey, this is Nian Tianlei." header-img: "img/about-bg.jpg" ---
万丈高楼平地起，辉煌只能靠自己，
Hello！！我是念天磊. 目前在天津大学读硕士研究生，喜欢聊天、读书、看电影、台球，最爱看足球和踢足球。现在是学习阶段，研究方向是欠采样宽带谱感知，但是我比较喜欢编写程序，正在学习Java web。
喜欢看书，善于钻研新知识、新技术，爱听音乐。
Life lies in diligence, no gains without pains.
Hi, I am Nian Tianlei(念天磊)，Currently, I, a graduate student of Tianjin University, like chatting, reading, watching movies, billiards whose favorite sport is football. With learning stage, my research area is co-prime spectrum sensing. However I prefer to write programs so I'm learning Java web now.
I'm good at making friends and research.


| pugixml 1.4 manual | Overview | Installation | Document: Object model · Loading · Accessing · Modifying · Saving | XPath | API Reference | Table of Contents |
pugixml is distributed in source form. You can either download a source distribution or checkout the Subversion repository.
You can download the latest source distribution via one of the following links:
https://github.com/zeux/pugixml/releases/download/v1.4/pugixml-1.4.zip https://github.com/zeux/pugixml/releases/download/v1.4/pugixml-1.4.tar.gz
The distribution contains library source, documentation (the manual you're
reading now and the quick start guide) and some code examples. After downloading
the distribution, install pugixml by extracting all files from the compressed
archive. The files have different line endings depending on the archive
format - .zip
archive has Windows line endings, .tar.gz
archive has Unix
line endings. Otherwise the files in both archives are identical.
If you need an older version, you can download it from the version archive.
The Subversion repository is located at http://pugixml.googlecode.com/svn/. There is a Subversion tag "release-{version}" for each version; also there is the "latest" tag, which always points to the latest stable release.
For example, to checkout the current version, you can use this command:
svn checkout http://pugixml.googlecode.com/svn/tags/release-1.4 pugixml
To checkout the latest version, you can use this command:
svn checkout http://pugixml.googlecode.com/svn/tags/latest pugixml
The repository contains library source, documentation, code examples and full unit test suite.
Use latest version tag if you want to automatically get new versions via
svn update
. Use other tags if you want to switch to
new versions only explicitly (for example, using svn switch
command). Also please note that Subversion trunk contains the work-in-progress
version of the code; while this means that you can get new features and
bug fixes from trunk without waiting for a new release, this also means
that occasionally the code can be broken in some configurations.
The Subversion repository is mirrored by a Git repository at https://github.com/zeux/pugixml. The mirror is frequently updated and has the same structure in terms of tags and contents as Subversion repository.
pugixml is distributed in source form without any pre-built binaries; you have to build them yourself.
The complete pugixml source consists of three files - one source file, pugixml.cpp
,
and two header files, pugixml.hpp
and pugiconfig.hpp
. pugixml.hpp
is the primary
header which you need to include in order to use pugixml classes/functions;
pugiconfig.hpp
is a supplementary configuration file (see Additional configuration
options).
The rest of this guide assumes that pugixml.hpp
is either in the current directory
or in one of include directories of your projects, so that #include "pugixml.hpp"
can find the header; however you can also use relative path (i.e. #include "../libs/pugixml/src/pugixml.hpp"
)
or include directory-relative path (i.e. #include
<xml/thirdparty/pugixml/src/pugixml.hpp>
).
The easiest way to build pugixml is to compile the source file, pugixml.cpp
,
along with the existing library/executable. This process depends on the
method of building your application; for example, if you're using Microsoft
Visual Studio[1], Apple Xcode, Code::Blocks or any other IDE, just add pugixml.cpp
to
one of your projects.
If you're using Microsoft Visual Studio and the project has precompiled headers turned on, you'll see the following error messages:
pugixml.cpp(3477) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
The correct way to resolve this is to disable precompiled headers for pugixml.cpp
;
you have to set "Create/Use Precompiled Header" option (Properties
dialog -> C/C++ -> Precompiled Headers -> Create/Use Precompiled
Header) to "Not Using Precompiled Headers". You'll have to do
it for all project configurations/platforms (you can select Configuration
"All Configurations" and Platform "All Platforms" before
editing the option):
It's possible to compile pugixml as a standalone static library. This process depends on the method of building your application; pugixml distribution comes with project files for several popular IDEs/build systems. There are project files for Apple XCode3, Code::Blocks, Codelite, Microsoft Visual Studio 2005, 2008, 2010, and configuration scripts for CMake and premake4. You're welcome to submit project files/build scripts for other software; see Feedback.
There are two projects for each version of Microsoft Visual Studio: one
for dynamically linked CRT, which has a name like pugixml_vs2008.vcproj
,
and another one for statically linked CRT, which has a name like pugixml_vs2008_static.vcproj
.
You should select the version that matches the CRT used in your application;
the default option for new projects created by Microsoft Visual Studio
is dynamically linked CRT, so unless you changed the defaults, you should
use the version with dynamic CRT (i.e. pugixml_vs2008.vcproj
for Microsoft
Visual Studio 2008).
In addition to adding pugixml project to your workspace, you'll have to make sure that your application links with pugixml library. If you're using Microsoft Visual Studio 2005/2008, you can add a dependency from your application project to pugixml one. If you're using Microsoft Visual Studio 2010, you'll have to add a reference to your application project instead. For other IDEs/systems, consult the relevant documentation.
It's possible to compile pugixml as a standalone shared library. The process
is usually similar to the static library approach; however, no preconfigured
projects/scripts are included into pugixml distribution, so you'll have
to do it yourself. Generally, if you're using GCC-based toolchain, the
process does not differ from building any other library as DLL (adding
-shared to compilation flags should suffice); if you're using MSVC-based
toolchain, you'll have to explicitly mark exported symbols with a declspec
attribute. You can do it by defining PUGIXML_API
macro, i.e. via pugiconfig.hpp
:
#ifdef _DLL #define PUGIXML_API __declspec(dllexport) #else #define PUGIXML_API __declspec(dllimport) #endif
| Caution | |
|---|---|
If you're using STL-related functions, you should use the shared runtime library to ensure that a single heap is used for STL allocations in your application and in pugixml; in MSVC, this means selecting the 'Multithreaded DLL' or 'Multithreaded Debug DLL' to 'Runtime library' property (/MD or /MDd linker switch). You should also make sure that your runtime library choice is consistent between different projects. |
It's possible to use pugixml in header-only mode. This means that all source
code for pugixml will be included in every translation unit that includes
pugixml.hpp
. This is how most of Boost and STL libraries work.
Note that there are advantages and drawbacks of this approach. Header mode may improve tree traversal/modification performance (because many simple functions will be inlined), if your compiler toolchain does not support link-time optimization, or if you have it turned off (with link-time optimization the performance should be similar to non-header mode). However, since compiler now has to compile pugixml source once for each translation unit that includes it, compilation times may increase noticeably. If you want to use pugixml in header mode but do not need XPath support, you can consider disabling it by using PUGIXML_NO_XPATH define to improve compilation time.
Enabling header-only mode is a two-step process:
PUGIXML_HEADER_ONLY
pugixml.cpp
whenever you include pugixml.hpp
Both of these are best done via pugiconfig.hpp
like this:
#define PUGIXML_HEADER_ONLY #include "pugixml.cpp"
Note that it is safe to compile pugixml.cpp
if PUGIXML_HEADER_ONLY
is defined - so if you want to i.e. use header-only mode only in Release
configuration, you can include pugixml.cpp in your project (see Building pugixml as
a part of another static library/executable),
and conditionally enable header-only mode in pugiconfig.hpp
, i.e.:
#ifndef _DEBUG #define PUGIXML_HEADER_ONLY #include "pugixml.cpp" #endif
pugixml uses several defines to control the compilation process. There
are two ways to define them: either put the needed definitions to pugiconfig.hpp
(it
has some examples that are commented out) or provide them via compiler
command-line. Consistency is important: the definitions should match in
all source files that include pugixml.hpp
(including pugixml sources) throughout
the application. Adding defines to pugiconfig.hpp
lets you guarantee this,
unless your macro definition is wrapped in preprocessor #if
/#ifdef
directive and this directive
is not consistent. pugiconfig.hpp
will never contain anything but comments,
which means that when upgrading to a new version, you can safely leave
your modified version intact.
PUGIXML_WCHAR_MODE
define toggles
between UTF-8 style interface (the in-memory text encoding is assumed to
be UTF-8, most functions use char
as character type) and UTF-16/32 style interface (the in-memory text encoding
is assumed to be UTF-16/32, depending on wchar_t
size, most functions use wchar_t
as character type). See Unicode interface for more details.
PUGIXML_NO_XPATH
define disables XPath.
Both XPath interfaces and XPath implementation are excluded from compilation.
This option is provided in case you do not need XPath functionality and
need to save code space.
PUGIXML_NO_STL
define disables use of
STL in pugixml. The functions that operate on STL types are no longer present
(i.e. load/save via iostream) if this macro is defined. This option is
provided in case your target platform does not have a standard-compliant
STL implementation.
PUGIXML_NO_EXCEPTIONS
define disables
use of exceptions in pugixml. This option is provided in case your target
platform does not have exception handling capabilities.
PUGIXML_API
, PUGIXML_CLASS
and PUGIXML_FUNCTION
defines let you
specify custom attributes (i.e. declspec or calling conventions) for pugixml
classes and non-member functions. In absence of PUGIXML_CLASS
or PUGIXML_FUNCTION
definitions,
PUGIXML_API
definition
is used instead. For example, to specify fixed calling convention, you
can define PUGIXML_FUNCTION
to i.e. __fastcall
. Another
example is DLL import/export attributes in MSVC (see Building pugixml as
a standalone shared library).
| Note | |
|---|---|
In that example |
PUGIXML_MEMORY_PAGE_SIZE
, PUGIXML_MEMORY_OUTPUT_STACK
and PUGIXML_MEMORY_XPATH_PAGE_SIZE
can be used to customize certain important sizes to optimize memory usage
for the application-specific patterns. For details see Memory consumption tuning.
PUGIXML_HAS_LONG_LONG
define enables
support for long long
type in pugixml. This define is automatically enabled if your platform
is known to have long long
support (i.e. has C++-11 support or uses a reasonably modern version of
a known compiler); if pugixml does not recognize that your platform supports
long long
but in fact it does, you can enable the define manually.
pugixml is written in standard-compliant C++ with some compiler-specific workarounds where appropriate. pugixml is compatible with the C++11 standard, but does not require C++11 support. Each version is tested with a unit test suite (with code coverage about 99%) on the following platforms:
| pugixml 1.4 manual | Overview | Installation | Document: Object model · Loading · Accessing · Modifying · Saving | XPath | API Reference | Table of Contents |


The example Cauer Filter is a low-pass-filter of the fifth order. It is realized using an analog network with operational amplifiers. The voltage source V is the input voltage (step), and the OP5.out.v is the filter output voltage. The pulse response is calculated.
This model is identical to the CauerLowPassAnalog example, but inverting. To get the same response as that of the CauerLowPassAnalog example, a negative voltage step is used as input.
The simulation end time should be 60. Please plot both V.v (which is the inverted input voltage) and OP5.p.v (output voltage). Compare this result with the CauerLowPassAnalog result.
During translation some warnings are issued concerning resistor values (Value=-1 not in range [0,1e100]). Do not worry about it. The negative values are o.k.


protocol
Dictionary protocol.
Paulo Moura
2.0
2010/2/26
static, context_switching_calls
(no dependencies on other files)
Converts a list of key-value pairs to a dictionary.
static
as_dictionary(Pairs,Dictionary)
as_dictionary(@list(pairs),-dictionary) – one
Converts a dictionary to a ordered list of key-value pairs.
static
as_list(Dictionary,Pairs)
as_list(@dictionary,-list(pairs)) – one
Clones a dictionary using the same keys but with all values unbound and returning a list of all the pairs in the new clone.
static
clone(Dictionary,Clone,ClonePairs)
clone(+tree,-tree,-list(pairs)) – one
Clones a dictionary using the same keys but with all values unbound and returning the list of all pairs in the dictionary and in the clone.
static
clone(Dictionary,Pairs,Clone,ClonePairs)
clone(+tree,-list(pairs),-tree,-list(pairs)) – one
Inserts a Key-Value pair into a dictionary, returning the updated dictionary. When the key already exists, the associated value is updated.
static
insert(OldDictionary,Key,Value,NewDictionary)
insert(+dictionary,+ground,@term,-dictionary) – one
Deletes a matching Key-Value pair from a dictionary, returning the updated dictionary.
static
delete(OldDictionary,Key,Value,NewDictionary)
delete(+dictionary,@ground,?term,-dictionary) – zero_or_one
Updates the value associated with Key in a dictionary, returning the updated dictionary. Fails if it cannot find the key.
static
update(OldDictionary,Key,NewValue,NewDictionary)
update(+dictionary,@ground,+term,-dictionary) – zero_or_one
Updates the value associated with Key in a dictionary, returning the updated dictionary. Fails if it cannot find the key or if the existing value does not match OldValue.
static
update(OldDictionary,Key,OldValue,NewValue,NewDictionary)
update(+dictionary,@ground,?term,+term,-dictionary) – zero_or_one
True if the dictionary is empty.
static
empty(Dictionary)
empty(@dictionary) – zero_or_one
Lookups a matching Key-Value pair from a dictionary.
static
lookup(Key,Value,Dictionary)
lookup(+ground,?term,@dictionary) – zero_or_one
lookup(-ground,?term,@dictionary) – zero_or_more
Returns the previous pair in a dictionary given a key.
static
previous(Dictionary,Key,Previous,Value)
previous(+dictionary,+key,-key,-value) – zero_or_one
Returns the next pair in a dictionary given a key.
static
next(Dictionary,Key,Next,Value)
next(+dictionary,+key,-key,-value) – zero_or_one
Returns the pair with the minimum key in a dictionary. Fails if the dictionary is empty.
static
min(Dictionary,Key,Value)
min(+dictionary,-key,-value) – zero_or_one
Returns the pair with the maximum key in a dictionary. Fails if the dictionary is empty.
static
max(Dictionary,Key,Value)
max(+dictionary,-key,-value) – zero_or_one
Deletes the pair with the minimum key from a dictionary, returning the deleted pair and the updated dictionary.
static
delete_min(OldDictionary,Key,Value,NewDictionary)
delete_min(+dictionary,-key,-value,-dictionary) – zero_or_one
Deletes the pair with the maximum key from a dictionary, returning the deleted pair and the updated dictionary.
static
delete_max(OldDictionary,Key,Value,NewDictionary)
delete_max(+dictionary,-key,-value,-dictionary) – zero_or_one
Returns a list with all dictionary keys.
static
keys(Dictionary,List)
keys(@dictionary,-list) – one
Maps a closure over each dictionary key-value pair. Fails if the mapped closure attempts to modify the keys.
static
map(Closure,Dictionary)
map(1,*)
map(@callable,+dictionary) – zero_or_more
Maps a closure over each dictionary key-value pair, returning the new dictionary. Fails if the mapped closure atempts to modify the keys.
static
map(Closure,OldDictionary,NewDictionary)
map(2,*,*)
map(@callable,+dictionary,-dictionary) – zero_or_more
Applies a closure to a specific key-value pair, returning the new dictionary. Fails if the key cannot be found or if the mapped closure atempts to modify the key.
static
apply(Closure,OldDictionary,Key,NewDictionary)
apply(2,*,*,*)
apply(+callable,+dictionary,+key,-dictionary) – zero_or_one
Number of dictionary entries.
static
size(Dictionary,Size)
size(@dictionary,?integer) – zero_or_one
(none)
(none)


{% if username %} Logged in as {{ username }} (logout).{% endif %}
Total number of edits made with OAbot: {{ total_edits }}


I have a lot of work experience in different fields as a good leader and a good staff. I am seeking a full-time position to continuously apply my knowledge, skills and expertise to improve myself and the work environment.
Communicated with teammates and customers in daily operations. Took orders and checks inventory to ensure products are in stock. Described product features and tells people how to maximize it use. Supplied goods to clients.
Assisting the web development team with all aspects of website design. Assisting with the testing and maintenance of backend and front-end applications. Update and insert of backend data. Converting video, audio, written, and graphic components into compatible formats for the web. Using user feedback to identify and correct problems with a client's website.
Installing and maintain hardware and software for desktops, Laptops & other computing devices. Installing of Windows, Microsoft Office, Outlook Configuring, Antivirus installation & Client software on Desktop / Laptops. Supporting to Office IT problem. Make power point presentation as directed by the administrator. Participate in garden income generation and development activities. Arrangements must be make gardening knowledge and knowledge widely available to the public. Organizing Animals Days.
Handling incoming calls and other communications. Managing filing system. Recording information as needed. Greeting clients and visitors as needed. Updating paperwork, maintaining documents and word processing
Apart from being a web developer, I enjoy most of my time being outdoors. In the winter, I am an avid skiier and novice ice climber. During the warmer months here in Colorado, I enjoy mountain biking, free climbing, and kayaking.
When forced indoors, I follow a number of sci-fi and fantasy genre movies and television shows, I am an aspiring chef, and I spend a large amount of my free time exploring the latest technolgy advancements in the front-end web development world.


Explore the dining possibilities around your campus while connecting with other food aficionados, new restaurants, and students looking to try something new!


--- layout: default-with-toolbar title: Kazan | Host City | 2018 World Cup Countdown. description: Kazan is the one of the host cities. Here is what you need to know about it get well prepared for the 2018 World Cup. keywords: nizhny,nizhny_novgorod,host_city,city,worldcup2018countdown,wc2018countdown,countdown2018fwc,fifaworldcup,russia2018 image_url: https://worldcup2018countdown.github.io/assets/images/share-page-images/index.png image_alt: Kazan city page screenshot page_css_class: wide city toolbar_heading: Kazan additional_stylesheets: ["/assets/css/city.css"] additional_scripts: city_name: "Kazan" --- {% assign city = site.data.cities[page.city_name] %}


--- layout: post title: Don't run away category: - Analog - BlackAndWhite - Street Photos tags: - absolutributo - antoniocapelo - brdid - bride - fed3b - industar - kentmere400 - porto - shutter hell up - street - Untitled status: publish type: post published: true meta: image_tag: image_url: http://antoniocapelo.com/blog/wp-content/uploads/2011/08/img327.jpg _edit_last: '1' ---
Some more rolls, home developed, and scanned with my new scanner. The camera: fed3b, again. I used a fed5b the other day...didn't like it as much, it's bigger and it still doesn't have a light meter. Fed3b it is!
Waiting on sunshine.
Candid shot, baby!
No time to loose, got work to do.
@ Absolutributo vintage fripes shop - Porto
Street Performer's break time.
Faces at Vandoma - Flea Market
Runaway Bride!
More rolls coming soon.
A. Capelo


Two cats fight over a steak while a third cat eats it
by Mark FrauenfelderWhile two cats engage in a tug-of-war for a cut of meat, an interloper helps itself. Given this situation and your knowledge of game theory, what should each cat do to get as much meat for itself as possible?
Hunger Games from r/AnimalsBeingJerks


|
Three Months Ended March 31,
2014
|
Three Months Ended March 31,
2015
|
||||||
|
Revenues
|
$
|
15,420
|
|
$
|
17,258
|
|
|
|
Increase in revenues year over year
|
19
|
%
|
12
|
%
|
|||
|
Traffic acquisition costs (TAC)
|
$
|
3,232
|
|
$
|
3,345
|
|
|
|
GAAP operating income
|
$
|
4,115
|
|
$
|
4,447
|
|
|
|
GAAP operating margin
|
27
|
%
|
26
|
%
|
|||
|
Non-GAAP operating income
|
$
|
4,954
|
|
$
|
5,650
|
|
|
|
Non-GAAP operating margin
|
32
|
%
|
33
|
%
|
|||
|
GAAP net income*
|
$
|
3,452
|
|
$
|
3,586
|
|
|
|
Non-GAAP net income
|
$
|
4,299
|
|
$
|
4,532
|
|
|
|
GAAP diluted EPS*
|
$
|
5.04
|
|
$
|
5.20
|
|
|
|
Non-GAAP diluted EPS
|
$
|
6.27
|
|
$
|
6.57
|
|
|
|
Diluted shares (in thousands)
|
685,212
|
|
689,498
|
|
|||
|
*GAAP net income and diluted EPS include
Net Loss from Discontinued Operations for the three months ended March 31, 2014.
|
|
Three Months Ended March 31,
2015
|
Change from Q1 2014 to Q1
2015 (YoY)
|
Change from Q4 2014 to Q1
2015 (QoQ)
|
|||||||
|
Google websites
|
$
|
11,932
|
|
14
|
%
|
(4
|
)%
|
||
|
Google Network Members' websites*
|
3,576
|
|
1
|
%
|
(8
|
)%
|
|||
|
Total advertising revenues**
|
15,508
|
|
11
|
%
|
(5
|
)%
|
|||
|
Other revenues*
|
1,750
|
|
23
|
%
|
(2
|
)%
|
|||
|
Revenues
|
$
|
17,258
|
|
12
|
%
|
(5
|
)%
|
||
|
*Prior period amounts have been adjusted
to reflect the reclassification primarily related to DoubleClick ad serving software revenues from Other
Revenues to Advertising Revenues from Google Network Members' Websites to conform with our current
period presentation.
|
|||||||||
|
**Advertising revenues are generally
reported on a gross basis, consistent with GAAP, without deducting TAC.
|
|
|
Change from Q1 2014 to Q1
2015 (YoY)
|
Change from Q4 2014 to Q1
2015 (QoQ)
|
|||
|
Aggregate paid clicks
|
13
|
%
|
(1
|
)%
|
|
|
Paid clicks on Google websites
|
25
|
%
|
(3
|
)%
|
|
|
Paid clicks on Google Network Members' websites
|
(12
|
)%
|
4
|
%
|
|
|
Aggregate cost-per-click
|
(7
|
)%
|
(5
|
)%
|
|
|
Cost-per-click on Google websites
|
(13
|
)%
|
(3
|
)%
|
|
|
Cost-per-click on Google Network Members' websites
|
2
|
%
|
(11
|
)%
|
|
Three Months Ended March 31,
2014
|
Three Months Ended March 31,
2015
|
||||||
|
TAC to Google Network Members
|
$
|
2,387
|
|
$
|
2,432
|
|
|
|
TAC to distribution partners
|
$
|
845
|
|
$
|
913
|
|
|
|
Total TAC
|
$
|
3,232
|
|
$
|
3,345
|
|
|
|
TAC to Google Network Members as % of Google Network
Members' revenues*
|
68
|
%
|
68
|
%
|
|||
|
TAC to distribution partners as % of Google Website
revenues
|
8
|
%
|
8
|
%
|
|||
|
Total TAC as % of advertising revenues*
|
23
|
%
|
22
|
%
|
|||
|
Other cost of revenues
|
$
|
2,729
|
|
$
|
3,011
|
|
|
|
Other cost of revenue as % of revenues
|
18
|
%
|
17
|
%
|
|||
|
Operating expenses (other than cost of revenues)
|
$
|
5,344
|
|
$
|
6,455
|
|
|
|
Operating expenses as % of revenues
|
35
|
%
|
37
|
%
|
|||
|
Stock-based compensation expense**
|
$
|
839
|
|
$
|
1,203
|
|
|
|
Tax benefit related to stock-based compensation expense
|
$
|
(190
|
)
|
$
|
(257
|
)
|
|
|
Depreciation, amortization, and impairment charges**
|
$
|
1,086
|
|
$
|
1,177
|
|
|
|
*Prior period amounts have been adjusted
to reflect the reclassification primarily related to DoubleClick ad serving software revenues from Other
Revenues to Advertising Revenues from Google Network Members' Websites to conform with our current
period presentation.
|
|||||||
|
**Included in Cost of revenues and
Operating expenses. Excludes impact from discontinued operations for the three months ended March 31,
2014.
|
|
Three Months Ended March 31,
2014
|
Three Months Ended March 31,
2015
|
||||||
|
Cash, cash equivalents, and marketable securities
|
$
|
59,379
|
|
$
|
65,436
|
|
|
|
Net cash provided by operating activities
|
$
|
4,391
|
|
$
|
6,617
|
|
|
|
Capital expenditures*
|
$
|
2,345
|
|
$
|
2,927
|
|
|
|
Free cash flow
|
$
|
2,046
|
|
$
|
3,690
|
|
|
|
Effective tax rate
|
18
|
%
|
22
|
%
|
|||
|
Headcount
|
46,170
|
|
55,419
|
|
|||
|
*For Q1 2015, our capital expenditures
are primarily related to production equipment, data center construction, and facilities. We expect to
continue to make significant capital expenditures.
|
|
As of
December 31, 2014 |
As of
March 31, 2015 |
||||||
|
(unaudited)
|
|||||||
|
Assets
|
|||||||
|
Current assets:
|
|||||||
|
Cash and cash equivalents
|
$
|
18,347
|
|
$
|
16,976
|
|
|
|
Marketable securities
|
46,048
|
|
48,460
|
|
|||
|
Total cash, cash equivalents, and marketable securities
(including securities loaned of $4,058 and $2,574)
|
64,395
|
|
65,436
|
|
|||
|
Accounts receivable, net of allowance of $225 and $200
|
9,383
|
|
8,584
|
|
|||
|
Receivable under reverse repurchase agreements
|
875
|
|
825
|
|
|||
|
Deferred income taxes, net
|
1,322
|
|
847
|
|
|||
|
Income taxes receivable, net
|
1,298
|
|
901
|
|
|||
|
Prepaid revenue share, expenses and other assets
|
3,412
|
|
3,720
|
|
|||
|
Total current assets
|
80,685
|
|
80,313
|
|
|||
|
Prepaid revenue share, expenses and other assets,
non-current
|
3,280
|
|
3,596
|
|
|||
|
Non-marketable investments
|
3,079
|
|
4,090
|
|
|||
|
Property and equipment, net
|
23,883
|
|
25,448
|
|
|||
|
Intangible assets, net
|
4,607
|
|
4,380
|
|
|||
|
Goodwill
|
15,599
|
|
15,573
|
|
|||
|
Total assets
|
$
|
131,133
|
|
$
|
133,400
|
|
|
|
Liabilities and Stockholders’ Equity
|
|||||||
|
Current liabilities:
|
|||||||
|
Accounts payable
|
$
|
1,715
|
|
$
|
1,688
|
|
|
|
Short-term debt
|
2,009
|
|
2,009
|
|
|||
|
Accrued compensation and benefits
|
3,069
|
|
1,911
|
|
|||
|
Accrued expenses and other current liabilities
|
4,434
|
|
4,494
|
|
|||
|
Accrued revenue share
|
1,952
|
|
1,755
|
|
|||
|
Securities lending payable
|
2,778
|
|
1,657
|
|
|||
|
Deferred revenue
|
752
|
|
699
|
|
|||
|
Income taxes payable, net
|
96
|
|
123
|
|
|||
|
Total current liabilities
|
16,805
|
|
14,336
|
|
|||
|
Long-term debt
|
3,228
|
|
3,226
|
|
|||
|
Deferred revenue, non-current
|
104
|
|
93
|
|
|||
|
Income taxes payable, non-current
|
3,407
|
|
3,717
|
|
|||
|
Deferred income taxes, net, non-current
|
1,971
|
|
1,845
|
|
|||
|
Other long-term liabilities
|
1,118
|
|
1,735
|
|
|||
|
Commitments and contingencies
|
|||||||
|
Stockholders’ equity:
|
|||||||
|
Convertible preferred stock, $0.001 par value per share,
100,000 shares authorized; no shares issued and outstanding
|
0
|
|
0
|
|
|||
|
Class A and Class B common stock, and Class C capital
stock and additional paid-in capital, $0.001 par value per share: 15,000,000 shares
authorized (Class A 9,000,000, Class B 3,000,000, Class C 3,000,000); 680,172 (Class A
286,560, Class B 53,213, Class C 340,399) and par value of $680 (Class A $287, Class B $53, Class C
$340) and 682,330 (Class A 288,198, Class B 52,480, Class C 341,652) and par value of $682 (Class A
$288, Class B $52, Class C $342) shares issued and outstanding
|
28,767
|
|
29,527
|
|
|||
|
Accumulated other comprehensive income (loss)
|
27
|
|
(371
|
)
|
|
Retained earnings
|
75,706
|
|
79,292
|
|
|||
|
Total stockholders’ equity
|
104,500
|
|
108,448
|
|
|||
|
Total liabilities and stockholders’ equity
|
$
|
131,133
|
|
$
|
133,400
|
|
|
Three Months Ended
|
|||||||
|
March 31,
|
|||||||
|
2014
|
2015
|
||||||
|
(unaudited)
|
|||||||
|
Revenues
|
$
|
15,420
|
|
$
|
17,258
|
|
|
|
Costs and expenses:
|
|||||||
|
Cost of revenues
(1)
|
5,961
|
|
6,356
|
|
|||
|
Research and development
(1)
|
2,126
|
|
2,753
|
|
|||
|
Sales and marketing
(1)
|
1,729
|
|
2,065
|
|
|||
|
General and administrative
(1)
|
1,489
|
|
1,637
|
|
|||
|
Total costs and expenses
|
11,305
|
|
12,811
|
|
|||
|
Income from operations
|
4,115
|
|
4,447
|
|
|||
|
Interest and other income, net
|
357
|
|
157
|
|
|||
|
Income from continuing operations before income taxes
|
4,472
|
|
4,604
|
|
|||
|
Provision for income taxes
|
822
|
|
1,018
|
|
|||
|
Net income from continuing operations
|
3,650
|
|
3,586
|
|
|||
|
Net loss from discontinued operations
(1)
|
(198
|
)
|
0
|
|
|||
|
Net income
|
$
|
3,452
|
|
$
|
3,586
|
|
|
|
Net income (loss) per share - basic:
|
|||||||
|
Continuing operations
|
$
|
5.42
|
|
$
|
5.27
|
|
|
|
Discontinued operations
|
(0.29
|
)
|
0.00
|
|
|||
|
Net income per share - basic
|
$
|
5.13
|
|
$
|
5.27
|
|
|
|
Net income (loss) per share - diluted:
|
|||||||
|
Continuing operations
|
$
|
5.33
|
|
$
|
5.20
|
|
|
|
Discontinued operations
|
(0.29
|
)
|
0.00
|
|
|||
|
Net income per share - diluted
|
$
|
5.04
|
|
$
|
5.20
|
|
|
|
Shares used in per share calculation - basic
|
672,587
|
|
680,915
|
|
|||
|
Shares used in per share calculation - diluted
|
685,212
|
|
689,498
|
|
|||
|
(1)
Includes stock-based compensation expense as follows:
|
|||||||
|
Cost of revenues
|
$
|
95
|
|
$
|
160
|
|
|
|
Research and development
|
456
|
|
615
|
|
|||
|
Sales and marketing
|
147
|
|
205
|
|
|||
|
General and administrative
|
141
|
|
223
|
|
|||
|
Discontinued operations
|
48
|
|
0
|
|
|||
|
Total stock-based compensation expense
|
$
|
887
|
|
$
|
1,203
|
|
|
Three Months Ended
|
|||||||
|
March 31,
|
|||||||
|
2014
|
2015
|
||||||
|
(unaudited)
|
|||||||
|
Operating activities
|
|||||||
|
Net income
|
$
|
3,452
|
|
$
|
3,586
|
|
|
|
Adjustments:
|
|||||||
|
Depreciation expense and impairment of property and
equipment
|
816
|
|
938
|
|
|||
|
Amortization and impairment of intangible and other assets
|
270
|
|
239
|
|
|||
|
Stock-based compensation expense
|
887
|
|
1,203
|
|
|||
|
Excess tax benefits from stock-based award activities
|
(155
|
)
|
(105
|
)
|
|||
|
Deferred income taxes
|
144
|
|
71
|
|
|||
|
Gain on equity interest
|
(103
|
)
|
0
|
|
|||
|
Gain on sale of non-marketable investments
|
(117
|
)
|
0
|
|
|||
|
Other
|
(14
|
)
|
77
|
|
|||
|
Changes in assets and liabilities, net of effects of
acquisitions:
|
|||||||
|
Accounts receivable
|
267
|
|
698
|
|
|||
|
Income taxes, net
|
201
|
|
756
|
|
|||
|
Prepaid revenue share, expenses and other assets
|
(308
|
)
|
43
|
|
|||
|
Accounts payable
|
177
|
|
(24
|
)
|
|||
|
Accrued expenses and other liabilities
|
(1,079
|
)
|
(601
|
)
|
|||
|
Accrued revenue share
|
(70
|
)
|
(205
|
)
|
|||
|
Deferred revenue
|
23
|
|
(59
|
)
|
|||
|
Net cash provided by operating activities
|
4,391
|
|
6,617
|
|
|||
|
Investing activities
|
|||||||
|
Purchases of property and equipment
|
(2,345
|
)
|
(2,927
|
)
|
|||
|
Purchases of marketable securities
|
(12,082
|
)
|
(12,558
|
)
|
|||
|
Maturities and sales of marketable securities
|
9,406
|
|
10,389
|
|
|||
|
Purchases of non-marketable investments
|
(168
|
)
|
(1,074
|
)
|
|||
|
Cash collateral related to securities lending
|
779
|
|
(1,120
|
)
|
|||
|
Investments in reverse repurchase agreements
|
50
|
|
50
|
|
|||
|
Acquisitions, net of cash acquired, and purchases of
intangibles and other assets
|
(2,947
|
)
|
(64
|
)
|
|||
|
Net cash used in investing activities
|
(7,307
|
)
|
(7,304
|
)
|
|||
|
Financing activities
|
|||||||
|
Net payments related to stock-based award activities
|
(326
|
)
|
(493
|
)
|
|||
|
Excess tax benefits from stock-based award activities
|
155
|
|
105
|
|
|||
|
Proceeds from issuance of debt, net of costs
|
3,416
|
|
3,305
|
|
|||
|
Repayments of debt
|
(2,423
|
)
|
(3,308
|
)
|
|||
|
Net cash provided by (used in) financing
activities
|
822
|
|
(391
|
)
|
|||
|
Effect of exchange rate changes on cash and cash
equivalents
|
(5
|
)
|
(293
|
)
|
|||
|
Net decrease in cash and cash equivalents
|
(2,099
|
)
|
(1,371
|
)
|
|||
|
Cash and cash equivalents at beginning of
period
|
18,898
|
|
18,347
|
|
|||
|
Reclassification of assets previously held for sale
|
(160
|
)
|
0
|
|
|||
|
Cash and cash equivalents at end of period
|
$
|
16,639
|
|
$
|
16,976
|
|
|
Three Months Ended March 31,
2014
|
Three Months Ended March 31,
2015
|
||||||||||||||||||||||||||||
|
GAAP Actual
|
Operating Margin (a)
|
Adjustments
|
Non-GAAP Results
|
Non-GAAP Operating Margin
(e)
|
GAAP Actual
|
Operating Margin (a)
|
Adjustments
|
Non-GAAP Results
|
Non-GAAP Operating Margin
(e)
|
||||||||||||||||||||
|
$
|
839
|
|
(b)
|
$
|
1,203
|
|
(b)
|
||||||||||||||||||||||
|
Income from operations
|
$
|
4,115
|
|
26.7
|
%
|
$
|
839
|
|
$
|
4,954
|
|
32.1
|
%
|
$
|
4,447
|
|
25.8
|
%
|
$
|
1,203
|
|
$
|
5,650
|
|
32.7
|
%
|
|||
|
$
|
839
|
|
(b)
|
$
|
1,203
|
|
(b)
|
||||||||||||||||||||||
|
(190
|
)
|
(c)
|
(257
|
)
|
(c)
|
||||||||||||||||||||||||
|
198
|
|
(d)
|
0
|
|
(d)
|
||||||||||||||||||||||||
|
Net income
|
$
|
3,452
|
|
$
|
847
|
|
$
|
4,299
|
|
$
|
3,586
|
|
$
|
946
|
|
$
|
4,532
|
|
|||||||||||
|
Net income per share - diluted
|
$
|
5.04
|
|
$
|
6.27
|
|
$
|
5.20
|
|
$
|
6.57
|
|
|||||||||||||||||
|
Shares used in per share calculation - diluted
|
685,212
|
|
685,212
|
|
689,498
|
|
689,498
|
|
|||||||||||||||||||||
|
(a) Operating margin is defined as income from operations
divided by revenues.
|
|||||||||||||||||||||||||||||
|
(b) To eliminate stock-based compensation expense from
continuing operations.
|
|||||||||||||||||||||||||||||
|
(c) To eliminate income tax effects related to expense
noted in (b).
|
|||||||||||||||||||||||||||||
|
(d) To eliminate net loss from discontinued operations.
|
|||||||||||||||||||||||||||||
|
(e) Non-GAAP operating margin is defined as non-GAAP income
from operations divided by revenues.
|
|
Three Months Ended March 31,
2015
|
|||
|
Net cash provided by operating activities
|
$
|
6,617
|
|
|
Less: purchases of property and equipment
|
(2,927
|
)
|
|
|
Free cash flow
|
$
|
3,690
|
|
|
Net cash used in investing activities
(a)
|
$
|
(7,304
|
)
|
|
Net cash used in financing activities
|
$
|
(391
|
)
|
|
(a) Includes purchases of property and equipment.
|
|
Three Months Ended March 31,
2015
|
Three Months Ended March 31,
2015
|
||||||
|
(using Q1'14's FX rates)
|
(using Q4'14's FX rates)
|
||||||
|
(unaudited)
|
|||||||
|
United Kingdom revenues (GAAP)
|
$
|
1,675
|
|
$
|
1,675
|
|
|
|
Exclude foreign exchange impact on Q1'15 revenues using
Q1'14 rates
|
116
|
|
N/A
|
|
|||
|
Exclude foreign exchange impact on Q1'15 revenues using
Q4'14 rates
|
N/A
|
|
62
|
|
|||
|
Exclude hedging gains recognized in Q1'15
|
(20
|
)
|
(20
|
)
|
|||
|
United Kingdom revenues excluding foreign
exchange and hedging impact (Non-GAAP)
|
$
|
1,771
|
|
$
|
1,717
|
|
|
|
Rest of the world revenues (GAAP)
|
$
|
8,195
|
|
$
|
8,195
|
|
|
|
Exclude foreign exchange impact on Q1'15 revenues using
Q1'14 rates
|
990
|
|
N/A
|
|
|||
|
Exclude foreign exchange impact on Q1'15 revenues using
Q4'14 rates
|
N/A
|
|
512
|
|
|||
|
Exclude hedging gains recognized in Q1'15
|
(291
|
)
|
(291
|
)
|
|||
|
Rest of the world revenues excluding
foreign exchange and hedging impact (Non-GAAP)
|
$
|
8,894
|
|
$
|
8,416
|
|
|
|
United States revenues (GAAP)
|
$
|
7,388
|
|
$
|
7,388
|
|
|
|
Constant currency revenues (Non-GAAP)
|
$
|
18,053
|
|
$
|
17,521
|
|
|
|
Prior period revenues, excluding hedging
gains (Non-GAAP)
|
$
|
15,412
|
|
$
|
17,955
|
|
|
|
Constant currency revenue growth
(Non-GAAP)
|
17
|
%
|
(2
|
)%
|
|
|
Three Months Ended
|
||||||
|
March 31,
|
|||||||
|
|
2014
|
2015
|
|||||
|
(unaudited)
|
|||||||
|
Advertising revenues:
|
|||||||
|
Google websites
|
$
|
10,469
|
|
$
|
11,932
|
|
|
|
Google Network Members' websites*
|
3,528
|
|
3,576
|
|
|||
|
Total advertising revenues
|
13,997
|
|
15,508
|
|
|||
|
Other revenues*
|
1,423
|
|
1,750
|
|
|||
|
Revenues
|
$
|
15,420
|
|
$
|
17,258
|
|
|
|
*Prior period amounts have been adjusted
to reflect the reclassification primarily related to DoubleClick ad serving software revenues from Other
Revenues to Advertising Revenues from Google Network Members' Websites to conform with our current
period presentation.
|
|
Three Months Ended
|
|||||
|
March 31,
|
|||||
|
2014
|
2015
|
||||
|
(unaudited)
|
|||||
|
Advertising revenues:
|
|||||
|
Google websites
|
68
|
%
|
69
|
%
|
|
|
Google Network Members' websites*
|
23
|
%
|
21
|
%
|
|
|
Total advertising revenues
|
91
|
%
|
90
|
%
|
|
|
Other revenues*
|
9
|
%
|
10
|
%
|
|
|
Revenues
|
100
|
%
|
100
|
%
|
|
|
*Prior period amounts have been adjusted
to reflect the reclassification primarily related to DoubleClick ad serving software revenues from Other
Revenues to Advertising Revenues from Google Network Members' Websites to conform with our current
period presentation.
|


 We kick off the week with the launch of Google's much-publicized Stadia streaming game service tomorrow, with the company fleshing out the launch line-up with an extra 10 games -- although none of them are particularly new, and none are exclusive. It's an interesting week to launch something that could be the future of gaming: This is the same week Nintendo launches the Wii, SNES and the DS. And the same week Microsoft's Xbox One and Xbox 360, the Sega Saturn and, er, the Atari Jaguar all launch, too. Will Google's Stadia join such illustrious company?
The new list includes 'Metro Exodus,' 'NBA 2K20' and 'Football Manager 2020'.
Google Stadia's launch line-up gets a 10-game boost
After announcing its cloud-streaming Stadia game service would launch with just 12 titles, Google has nearly doubled that number, a mere day ahead of launch. The service will now arrive with 10 additional games, bringing the total to 22. That'll include Football Manager 2020 and NBA 2K2020, giving Stadia a couple of the sports titles it was completely lacking before. In comparison, Microsoft is launching its xCloud preview with well over 50 titles.
The full, updated line-up is right here.
But is it an actual Mustang?
Ford's Mustang Mach-E straddles the world of EVs, SUVs and muscle cars
Ford's new electric vehicle is the Mustang Mach-E -- but it's not entirely a Mustang. It's more like a crossover with hints of Mustang design. Ford seems to have a version of the Mach-E for every type of driver. It'll be available in five trim models starting at $43,895 and will roll into showrooms in late 2020. The First Edition (270-mile range at $59,900), Premium (300 miles at $50,600) and GT (235 miles at $60,500) showing up on the road first. The California Route (300 miles at $52,400) and Select (230 miles at $43,895) will both land in early 2021.
Ford famously announced it would stop selling cars in the United States -- except for the Mustang, which continues to be a hit for the automaker. The result is Ford's first big EV -- an SUV with a Mustang badge. Read on for Roberto Baldwin's report.
This may be more about winning tariff exemptions than anything else.
President Trump will visit Apple's Mac Pro factory on November 20th
The White House has confirmed that President Trump will visit Apple's Mac Pro factory in Austin, Texas, on November 20th, backing up rumors of an impending tour. It's not clear if Tim Cook or other Apple executives will be present, but it wouldn't be surprising given the optics. Apple wants to be seen as having the Trump administration's support, while Trump wants to be seen supporting American jobs.
For Apple, though, there's an extra level of urgency. The next big round of US tariffs on China is poised to take effect on December 15th, and it could easily raise the cost of selling phones, laptops, monitors and other mainstays of Apple's product lineup.
It's trying to reduce dissent by silencing communication.
Iran shuts down nearly all internet access in response to fuel protests
The Iranian government has shut down nearly all internet access in the country amid mounting protests that began over a 50-percent hike in fuel prices and now encompass wider dissent. There are pockets of access that have let people show what's happening on the ground, but they're rare. Phone calls abroad still work, but those are also closely monitored. The government hasn't formally acknowledged the internet shutdown.
But wait, there's more...
- HP rejects Xerox buyout offer, at least for now
- mTiny robot review: Screen-free coding for kids
- Stanford's new tech-laden hospital includes pill-picking robots
The Morning After is a new daily newsletter from Engadget designed to help you fight off FOMO. Who knows what you'll miss if you don't Subscribe.
Craving even more? Like us on Facebook or Follow us on Twitter.
Have a suggestion on how we can improve The Morning After? Send us a note.


Twitter | Facebook | Youtube
Hi, i'm Pratheesh. Techie and web designer. Music is my passion. Apart from designing, i love to play music (keyboard). I create most of my web apps using django. i just love to work with it. My playlist contains 75 % of yuvan songs and 10% of raja sir songs and 15% rest :). Like to tweet than updating status in facebook. It makes me so happy when i do stuffs in internet.
- '10: Started first group in smsgupsup (AjithCrew)
- '10: Keyboard (Western)
- '10: Step into Social Media (Fb and Twitter)
- '11: Built my 1st Blog (ThalaYuvan)
- '12: Got to know about Wordpress (thePratheesh)
- '12/'13: Joined RMK Engg. Created lots and lots of web site using bootstraps and found an awesome tool #Django, which helps me lot in creating web apps.
Got a first class in Music (grade 1).
- '14: Become a front end developer (Create a Web app with Praveen RJ, 2nd Web App design, My Home page,Another Home Page) .


In the following sections we provide a brief description of the organization of the most important files and directories that compose CHAI3D.
This directory contains the entire source code of the CHAI3D core framework. We will come back to that one in the Source Code section where we will explore the organization of the difference source files.
This directory contains source code to third-party libraries that are used by CHAI3D. Some of these libraries can be enabled or disabled by selecting the desired options in file CGlobals.h
This directory contains all third party extension modules for CHAI3D. The default modules that come with CHAI3D are the ODE wrapper for the open source dynamics engines ODE, the GEL framework for modelling deformable bodies and the V-REP plugin for the Coppelia Robotics V-REP simulator. Each module shares a similar structure that include the source files, project files, examples, and documentation.
This directory contains the CHAI3D library files that result from compiling the CHAI3D source code.
This directory contains the project files and source code for the various examples provided with CHAI3D.
This directory contains the executable files that result from compiling CHAI3D with all of its examples. You may also find in that directory dynamic library files (.dll or .dylib) which support third-party haptic devices. A resources
directory also includes all the media files that used by the different examples.
This directory contains all documentation related to CHAI3D. The documentation is generated using Doxygen and is provided inlined in every source file of the framework.
This directory contains three different project templates that use GLUT, Qt, and the Microsoft .NET frameworks. These templates are very useful if you want to create a new project from scratch.
This directory contains additional third-party libraries that are used by the examples provided with CHAI3D. They are not required to build the CHAI3D core library, but are necessary for the CHAI3D example executables to build and run properly.
This directory contains utilities that convert font and images to source code that can be included and built into CHAI3D.
The source code is located in the /src directory. It contains the main chai3d.h header file and a set of subdirectories with all the source files organized by topic.
This directory contains all the files that provide sound support to CHAI3D. Details are available in the audio section of the documentation.
This directory contains the files that handle collision detection between rays and geometrical primitives such as points, lines, and triangles. Details are available in the collisions section of the documentation.
This directory contains support for all supported haptic devices. Details are available in the devices section of the documentation.
This directory contains files related to framebuffers and virtual cameras which are used to render scenes of the world in viewports or window displays. Details are available in the display section of the documentation.
This directory contains all the classes that model haptic effects (e.g friction, vibration, surfaces, etc...) Details are available in the effects section of the documentation.
This directory contains support for loading and saving 3D models, 2D images, 2D videos, and audio files. Details are available in the files section of the documentation.
This directory contains classes that implement force rendering algorithms such as potential fields and finger-proxy based methods. Details are available in the forces section of the documentation.
This directory contains all files related to graphic support. These include support for videos, fog, fonts, images, image arrays, videos, etc... Data structures for handling arrays of points, segments, and triangles are also included. Details are available in the graphics section of the documentation.
This directory contains all classes for modelling light sources and shadows. Details are available in the lighting section of the documentation.
This directory contains all classes for modelling materials and textures. Details are available in the materials section of the documentation.
This directory contains the basic code for handling 3D vectors, matrices and quaternions. You will also find a number of functions for performing simple geometrical computations. Details are available in the math section of the documentation.
This directory contains a collection of files for precompiled fonts and shaders that are used for graphic purposes. Details are available in the resources section of the documentation.
This directory contains all classes for supporting vertex and fragment shaders. Shaders are used for implementing advanced graphic rendering effects. Details are available in the shaders section of the documentation.
This directory contains several useful classes for handling strings, mutexes, and threads. Details are available in the system section of the documentation.
This directory contains classes that model a precision clock and frequency counters for accurate time measurement. Details are available in the timers section of the documentation.
This directory contains classes that implement haptic tools which connect haptic devices to avatars that interact with objects in the virtual environment. Details are available in the tools section of the documentation.
This directory contains different classes for rendering 2D widgets such as text labels, dials, bitmap images, scopes, etc... Details are available in the widgets section of the documentation.
This directory contains the classes that are used to compose and describe a 3D scene. These include the world itself, shape primitives, meshes, volumes, and other 3D entities which can be rendered both graphically and haptically. Details are available in the world section of the documentation.