Module for Angular 1.5+ and over to write your app with TypeScript and Decorators
npm install ts-ng-decorators --save
Important! TsNgDecorators requires Node >= 4, Express >= 4, TypeScript >= 2.2 and the
experimentalDecorators
,emitDecoratorMetadata
,typeRoots
andlib
compilation options in yourtsconfig.json
file.
{
"compilerOptions": {
"target": "es5",
"lib": ["es6", "dom"],
"module": "commonjs",
"moduleResolution": "node",
"experimentalDecorators":true,
"emitDecoratorMetadata": true,
"sourceMap": true,
"declaration": false,
"typeRoots": ["node_modules/@types"]
},
"exclude": [
"node_modules"
]
}
ng-decorators provides annotation like decorators:
@NgModule(moduleName: string, ...dependencies: (string|NgModuleClass)[])
@Run()
@Config()
@Inject(providerName: string)
@Controller(moduleName: string, controllerName?: string)
@Directive(moduleName: string, directiveSetting:IDirectiveProperties)
@Component(moduleName: string, directiveSetting:IComponentProperties)
@Service(moduleName: string, serviceName?: string)
NgModule let you to define a new Angular module as follow :
import {NgModule, Config, Run, Inject} from "ts-ng-decorators";
import * as ng from "angular";
@NgModule({
name: "app"
})
export class AppModule {
@Config()
private config(
@Inject("$httpProvider") $httpProvider: ng.IHttpProvider
) {
}
@Run()
private run(
@Inject("$rootScope") $rootScope
) {
}
}
Usually with Angular 1, you can add some other modules as dependencies like ngRoute or your other custom modules.
NgModule
accept that you provide as dependencies a class witch is annotated by NgModule
too.
Here an example :
// in components.module.ts
import {NgModule, Config} from "ts-ng-decorators";
@NgModule({
name: "app.components"
})
export class ComponentsModule {
}
// in app.module.ts
import {NgModule, Config, Run, Inject} from "ts-ng-decorators";
import {ComponentsModule} from "./components/components.module";
import * as ng from "angular";
@NgModule({
name: "app",
imports:[ComponentsModule]
})
export class AppModule {
@Config()
private config(
@Inject("$httpProvider") $httpProvider: ng.IHttpProvider
) {
}
@Run()
private run(
@Inject("$rootScope") $rootScope
) {
}
}
// some.service.ts
import {Service} from "ts-ng-decorators";
@Service('SomeService')
class SomeService {
constructor() {
// do stuff
}
public someMethod(anArg: number): boolean {
// do some stuff
}
}
// in app.module.ts
import {NgModule, Config, Run, Inject} from "ts-ng-decorators";
import {ComponentsModule} from "./components/components.module";
import {SomeService} from "./services/some.service";
import * as ng from "angular";
@NgModule({
name: "app",
imports:[ComponentsModule],
providers: [SomeService]
})
export class AppModule {
@Config()
private config(
@Inject("$httpProvider") $httpProvider: ng.IHttpProvider
) {
}
@Run()
private run(
@Inject("$rootScope") $rootScope
) {
}
}
import {Service, Inject} from "ts-ng-decorators";
@Service('SomeService')
class SomeService {
constructor(
@Inject('$http') $http: angular.IHttpService,
@Inject('$parse') private $$parse: angular.IParseService
) {
// do stuff with $http and $$parse;
}
public someMethod(anArg: number): boolean {
// do some stuff with this.$$parse
}
}
// components/some.component.ts
import {Component, Inject} from "ts-ng-decorators";
@Component({
selector:'atSomeComponent',
templateUrl: 'partials/some-component.html',
bindings: {
}
})
class SomeComponent {
constructor(
@Inject('$scope') private $scope: angular.IScope,
@Inject('$parse') private $parse: angular.IParseService
) {
// do stuff with $$scope and $$parse;
}
public $onInit() {
}
}
// in components.module.ts
import {NgModule, Config, Run, Inject} from "ts-ng-decorators";
import {SomeComponent} from "./some.component";
@NgModule({
name: "app.components",
declarations: [SomeComponent]
})
export class ComponentsModule {
}
import {Component, Inject, Input} from "ts-ng-decorators";
import * as ng from "angular";
@Component({
selector:'atSomeComponent',
templateUrl: 'partials/some-component.html'
})
class SomeComponent implements ng.IComponentController {
@Input()
oneWay: any; // Default. one-way, equivalent to {model: ">"}
@Input("@")
title: any; // one-way as expression, equivalent to {title: "@"}
@Input("=")
users: any; // two-way, equivalent to {title: "="}
@Input("=", "ngModel")
model: any; // alias. Equivalent to {model: "=ngModel"}
constructor(
@Inject('$element') private $element: ng.IAugmentedJQuery
) {
// do stuff with $$scope and $$parse;
}
public $onInit() {
}
}
import {Component, Inject, Output} from "ts-ng-decorators";
import * as ng from "angular";
@Component({
selector:'atSomeComponent',
templateUrl: 'partials/some-component.html'
})
class SomeComponent implements ng.IComponentController {
@Output()
action: Function; // action, equivalent to {action: "&"}
@Output("click")
action2: any; // alias. Equivalent to {action2: "=click"}
constructor(
@Inject('$element') private $element: ng.IAugmentedJQuery
) {
// do stuff with $$scope and $$parse;
}
public $onInit() {
}
}
import {Directive, Inject} from "ts-ng-decorators";
@Directive('az.fr.directives', {
selector:'atSomeDirective',
restrict: "A",
templateUrl: '/partials/some-directive.html',
})
class SomeDirectiveController {
public static link: angular.IDirectiveLinkFn = (scope, element, attrs, ctrl: SomeDirectiveController) => {
ctrl.init(attrs.atSomeDirective);
};
constructor(
@Inject('$scope') private $scope: angular.IScope,
@Inject('$parse') private $parse: angular.IParseService
) {
// do stuff with $$scope and $$parse;
}
public init(anArg: string): boolean {
// do some stuff with this.$$parse and this.$$scope
}
}
// controllers/some.controller.ts
import {Controller, Inject} from "ts-ng-decorators";
@Controller('SomeController')
class SomeController {
constructor(
@Inject('$scope') $scope: angular.IScope,
@Inject('$parse') private $parse: angular.IParseService
) {
// do stuff with $scope and $$parse;
}
public someMethod(anArg: number): boolean {
// do some stuff with this.$$parse();
}
}
import {NgModule, Config, Run, Inject} from "ts-ng-decorators";
import {ComponentsModule} from "./components/components.module";
import {SomeService} from "./services/some.service";
import {SomeController} from "./controllers/some.controller";
import * as ng from "angular";
@NgModule({
name: "app",
imports:[ComponentsModule],
providers: [SomeService, SomeController]
})
export class AppModule {
@Config()
private config(
@Inject("$httpProvider") $httpProvider: ng.IHttpProvider
) {
}
@Run()
private run(
@Inject("$rootScope") $rootScope
) {
}
}
The MIT License (MIT)
Copyright (c) 2017 Romain Lenzotti
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Generated using TypeDoc


hunch_net hunch_net-2012 hunch_net-2012-452 knowledge-graph by maker-knowledge-mining
Source: html
Introduction: Here’s a quick reference for summer ML-related conferences sorted by due date: Conference Due date Location Reviewing KDD Feb 10 August 12-16, Beijing, China Single Blind COLT Feb 14 June 25-June 27, Edinburgh, Scotland Single Blind? (historically) ICML Feb 24 June 26-July 1, Edinburgh, Scotland Double Blind, author response, zero SPOF UAI March 30 August 15-17, Catalina Islands, California Double Blind, author response Geographically, this is greatly dispersed and the UAI/KDD conflict is unfortunate. Machine Learning conferences are triannual now, between NIPS , AIStat , and ICML . This has not always been the case: the academic default is annual summer conferences, then NIPS started with a December conference, and now AIStat has grown into an April conference. However, the first claim is not quite correct. NIPS and AIStat have few competing venues while ICML implicitly competes with many other conf
sentIndex sentText sentNum sentScore
1 NIPS and AIStat have few competing venues while ICML implicitly competes with many other conferences accepting machine learning related papers. [sent-6, score-0.326]
2 COLT was historically a conference for learning-interested Computer Science theory people. [sent-8, score-0.349]
3 A significant subset of COLT papers could easily be published at ICML instead. [sent-10, score-0.345]
4 ICML now has a significant theory community, including many pure theory papers and significant overlap with COLT attendees. [sent-11, score-0.689]
5 Good candidates for an ICML submission are learning theory papers motivated by real machine learning problems (example: the agnostic active learning paper) or which propose and analyze new plausibly useful algorithms (example: the adaptive gradient papers). [sent-12, score-0.561]
6 The other is that ICML is committed to fair reviewing—papers are double blind so reviewers are not forced to take into account the author identity. [sent-18, score-0.57]
7 Plenty of people will argue that author names don’t matter to them, but I’ve personally seen several cases as a reviewer where author identity affected the decision, typically towards favoring insiders or bigwigs at theory conferences as common sense would suggest. [sent-19, score-0.56]
8 The double blind aspect of ICML reviewing is an open invitation to outsiders to submit to ICML. [sent-20, score-0.485]
9 Many UAI papers could easily go to ICML because they are explicitly about machine learning or connections with machine learning. [sent-21, score-0.596]
10 For example, pure prediction market s are a stretch for ICML, but connections between machine learning and prediction markets, which seem to come up in multiple ways, are a good fit. [sent-22, score-0.463]
11 ICML provides a significantly larger potential audience and, due to it’s size, tends to be more diverse. [sent-31, score-0.284]
12 KDD is a large conference (a bit larger than ICML by attendance) which, as I understand it, initially started from the viewpoint of database people trying to do interesting things with the data they had. [sent-32, score-0.286]
13 Significant parts of the academic track are about machine learning technology and could have been submitted to ICML instead. [sent-34, score-0.342]
14 I was impressed by the double robust sampling work and the out of core learning paper is cool. [sent-35, score-0.325]
15 KDD doesn’t do double blind review, which was discussed above. [sent-39, score-0.386]
16 To me, a more significant drawback of KDD is the ACM paywall . [sent-40, score-0.285]
17 Depending on many circumstances, ICML might be a good candidate for a place to send a paper on a new empirically useful piece of machine learning technology. [sent-52, score-0.321]
18 Machine Learning has grown radically and gone industrial over the last decade, providing plenty of motivation for a conference on developing new core machine learning technology. [sent-54, score-0.477]
19 In most cases, the best place to send a paper is to the conference where it will be most appreciated. [sent-56, score-0.318]
20 So, when the choice is unclear, sending the paper to a conference designed simultaneously for fair high quality reviewing and broad distribution of your work is a good call as it provides the most meaningful acceptance. [sent-58, score-0.482]
wordName wordTfidf (topN-words)
[('icml', 0.364), ('blind', 0.213), ('paywall', 0.18), ('double', 0.173), ('conferences', 0.163), ('kdd', 0.162), ('conference', 0.16), ('feb', 0.148), ('acm', 0.139), ('colt', 0.131), ('aistat', 0.128), ('author', 0.119), ('overlap', 0.116), ('uai', 0.115), ('significant', 0.105), ('machine', 0.1), ('reviewing', 0.099), ('scotland', 0.098), ('circumstances', 0.098), ('papers', 0.096), ('theory', 0.096), ('edinburgh', 0.093), ('historically', 0.093), ('connections', 0.093), ('paper', 0.089), ('easily', 0.083), ('grown', 0.082), ('year', 0.08), ('motivated', 0.08), ('august', 0.075), ('pure', 0.075), ('tends', 0.075), ('community', 0.073), ('audience', 0.072), ('plenty', 0.072), ('date', 0.07), ('june', 0.07), ('send', 0.069), ('provides', 0.069), ('larger', 0.068), ('prediction', 0.066), ('fair', 0.065), ('nips', 0.065), ('learning', 0.063), ('personally', 0.063), ('response', 0.063), ('could', 0.061), ('academic', 0.059), ('technology', 0.059), ('viewpoint', 0.058)]
simIndex simValue blogId blogTitle
same-blog 1 1.0000001 452 hunch net-2012-01-04-Why ICML? and the summer conferences
Introduction: Here’s a quick reference for summer ML-related conferences sorted by due date: Conference Due date Location Reviewing KDD Feb 10 August 12-16, Beijing, China Single Blind COLT Feb 14 June 25-June 27, Edinburgh, Scotland Single Blind? (historically) ICML Feb 24 June 26-July 1, Edinburgh, Scotland Double Blind, author response, zero SPOF UAI March 30 August 15-17, Catalina Islands, California Double Blind, author response Geographically, this is greatly dispersed and the UAI/KDD conflict is unfortunate. Machine Learning conferences are triannual now, between NIPS , AIStat , and ICML . This has not always been the case: the academic default is annual summer conferences, then NIPS started with a December conference, and now AIStat has grown into an April conference. However, the first claim is not quite correct. NIPS and AIStat have few competing venues while ICML implicitly competes with many other conf
2 0.31203076 453 hunch net-2012-01-28-Why COLT?
Introduction: By Shie and Nati Following John’s advertisement for submitting to ICML, we thought it appropriate to highlight the advantages of COLT, and the reasons it is often the best place for theory papers. We would like to emphasize that we both respect ICML, and are active in ICML, both as authors and as area chairs, and certainly are not arguing that ICML is a bad place for your papers. For many papers, ICML is the best venue. But for many theory papers, COLT is a better and more appropriate place. Why should you submit to COLT? By-and-large, theory papers go to COLT. This is the tradition of the field and most theory papers are sent to COLT. This is the place to present your ground-breaking theorems and new models that will shape the theory of machine learning. COLT is more focused then ICML with a single track session. Unlike ICML, the norm in COLT is for people to sit through most sessions, and hear most of the talks presented. There is also often a lively discussion followi
3 0.28777182 65 hunch net-2005-05-02-Reviewing techniques for conferences
Introduction: The many reviews following the many paper deadlines are just about over. AAAI and ICML in particular were experimenting with several reviewing techniques. Double Blind: AAAI and ICML were both double blind this year. It seemed (overall) beneficial, but two problems arose. For theoretical papers, with a lot to say, authors often leave out the proofs. This is very hard to cope with under a double blind review because (1) you can not trust the authors got the proof right but (2) a blanket “reject” hits many probably-good papers. Perhaps authors should more strongly favor proof-complete papers sent to double blind conferences. On the author side, double blind reviewing is actually somewhat disruptive to research. In particular, it discourages the author from talking about the subject, which is one of the mechanisms of research. This is not a great drawback, but it is one not previously appreciated. Author feedback: AAAI and ICML did author feedback this year. It seem
4 0.2846576 395 hunch net-2010-04-26-Compassionate Reviewing
Introduction: Most long conversations between academics seem to converge on the topic of reviewing where almost no one is happy. A basic question is: Should most people be happy? The case against is straightforward. Anyone who watches the flow of papers realizes that most papers amount to little in the longer term. By it’s nature research is brutal, where the second-best method is worthless, and the second person to discover things typically gets no credit. If you think about this for a moment, it’s very different from most other human endeavors. The second best migrant laborer, construction worker, manager, conductor, quarterback, etc… all can manage quite well. If a reviewer has even a vaguely predictive sense of what’s important in the longer term, then most people submitting papers will be unhappy. But this argument unravels, in my experience. Perhaps half of reviews are thoughtless or simply wrong with a small part being simply malicious. And yet, I’m sure that most reviewers genuine
5 0.26928386 454 hunch net-2012-01-30-ICML Posters and Scope
Introduction: Normally, I don’t indulge in posters for ICML , but this year is naturally an exception for me. If you want one, there are a small number left here , if you sign up before February. It also seems worthwhile to give some sense of the scope and reviewing criteria for ICML for authors considering submitting papers. At ICML, the (very large) program committee does the reviewing which informs final decisions by area chairs on most papers. Program chairs setup the process, deal with exceptions or disagreements, and provide advice for the reviewing process. Providing advice is tricky (and easily misleading) because a conference is a community, and in the end the aggregate interests of the community determine the conference. Nevertheless, as a program chair this year it seems worthwhile to state the overall philosophy I have and what I plan to encourage (and occasionally discourage). At the highest level, I believe ICML exists to further research into machine learning, which I gene
6 0.2613301 437 hunch net-2011-07-10-ICML 2011 and the future
7 0.25808507 331 hunch net-2008-12-12-Summer Conferences
8 0.25003272 40 hunch net-2005-03-13-Avoiding Bad Reviewing
9 0.24148722 116 hunch net-2005-09-30-Research in conferences
10 0.21246901 422 hunch net-2011-01-16-2011 Summer Conference Deadline Season
11 0.21133138 387 hunch net-2010-01-19-Deadline Season, 2010
12 0.20490986 468 hunch net-2012-06-29-ICML survey and comments
13 0.2028162 89 hunch net-2005-07-04-The Health of COLT
14 0.19522096 484 hunch net-2013-06-16-Representative Reviewing
15 0.18876611 403 hunch net-2010-07-18-ICML & COLT 2010
16 0.17451827 283 hunch net-2008-01-07-2008 Summer Machine Learning Conference Schedule
17 0.17241347 17 hunch net-2005-02-10-Conferences, Dates, Locations
18 0.16939621 21 hunch net-2005-02-17-Learning Research Programs
19 0.16918556 141 hunch net-2005-12-17-Workshops as Franchise Conferences
20 0.16733252 472 hunch net-2012-08-27-NYAS ML 2012 and ICML 2013
topicId topicWeight
[(0, 0.361), (1, -0.357), (2, 0.131), (3, -0.145), (4, 0.012), (5, -0.15), (6, -0.08), (7, 0.0), (8, -0.006), (9, 0.034), (10, -0.025), (11, -0.001), (12, -0.042), (13, 0.071), (14, 0.069), (15, -0.025), (16, 0.018), (17, -0.059), (18, -0.05), (19, -0.006), (20, 0.066), (21, -0.093), (22, 0.052), (23, 0.134), (24, 0.011), (25, -0.07), (26, -0.013), (27, 0.09), (28, -0.093), (29, 0.071), (30, -0.022), (31, 0.056), (32, -0.087), (33, 0.062), (34, -0.006), (35, -0.038), (36, -0.005), (37, -0.017), (38, 0.059), (39, 0.023), (40, -0.027), (41, -0.007), (42, 0.047), (43, 0.009), (44, 0.009), (45, 0.022), (46, 0.008), (47, -0.044), (48, -0.04), (49, 0.031)]
simIndex simValue blogId blogTitle
same-blog 1 0.96493685 452 hunch net-2012-01-04-Why ICML? and the summer conferences
Introduction: Here’s a quick reference for summer ML-related conferences sorted by due date: Conference Due date Location Reviewing KDD Feb 10 August 12-16, Beijing, China Single Blind COLT Feb 14 June 25-June 27, Edinburgh, Scotland Single Blind? (historically) ICML Feb 24 June 26-July 1, Edinburgh, Scotland Double Blind, author response, zero SPOF UAI March 30 August 15-17, Catalina Islands, California Double Blind, author response Geographically, this is greatly dispersed and the UAI/KDD conflict is unfortunate. Machine Learning conferences are triannual now, between NIPS , AIStat , and ICML . This has not always been the case: the academic default is annual summer conferences, then NIPS started with a December conference, and now AIStat has grown into an April conference. However, the first claim is not quite correct. NIPS and AIStat have few competing venues while ICML implicitly competes with many other conf
2 0.77111799 468 hunch net-2012-06-29-ICML survey and comments
Introduction: Just about nothing could keep me from attending ICML , except for Dora who arrived on Monday. Consequently, I have only secondhand reports that the conference is going well. For those who are remote (like me) or after the conference (like everyone), Mark Reid has setup the ICML discussion site where you can comment on any paper or subscribe to papers. Authors are automatically subscribed to their own papers, so it should be possible to have a discussion significantly after the fact, as people desire. We also conducted a survey before the conference and have the survey results now. This can be compared with the ICML 2010 survey results . Looking at the comparable questions, we can sometimes order the answers to have scores ranging from 0 to 3 or 0 to 4 with 3 or 4 being best and 0 worst, then compute the average difference between 2012 and 2010. Glancing through them, I see: Most people found the papers they reviewed a good fit for their expertise (-.037 w.r.t 20
3 0.74625552 65 hunch net-2005-05-02-Reviewing techniques for conferences
Introduction: The many reviews following the many paper deadlines are just about over. AAAI and ICML in particular were experimenting with several reviewing techniques. Double Blind: AAAI and ICML were both double blind this year. It seemed (overall) beneficial, but two problems arose. For theoretical papers, with a lot to say, authors often leave out the proofs. This is very hard to cope with under a double blind review because (1) you can not trust the authors got the proof right but (2) a blanket “reject” hits many probably-good papers. Perhaps authors should more strongly favor proof-complete papers sent to double blind conferences. On the author side, double blind reviewing is actually somewhat disruptive to research. In particular, it discourages the author from talking about the subject, which is one of the mechanisms of research. This is not a great drawback, but it is one not previously appreciated. Author feedback: AAAI and ICML did author feedback this year. It seem
4 0.74547535 453 hunch net-2012-01-28-Why COLT?
Introduction: By Shie and Nati Following John’s advertisement for submitting to ICML, we thought it appropriate to highlight the advantages of COLT, and the reasons it is often the best place for theory papers. We would like to emphasize that we both respect ICML, and are active in ICML, both as authors and as area chairs, and certainly are not arguing that ICML is a bad place for your papers. For many papers, ICML is the best venue. But for many theory papers, COLT is a better and more appropriate place. Why should you submit to COLT? By-and-large, theory papers go to COLT. This is the tradition of the field and most theory papers are sent to COLT. This is the place to present your ground-breaking theorems and new models that will shape the theory of machine learning. COLT is more focused then ICML with a single track session. Unlike ICML, the norm in COLT is for people to sit through most sessions, and hear most of the talks presented. There is also often a lively discussion followi
5 0.74031597 437 hunch net-2011-07-10-ICML 2011 and the future
Introduction: Unfortunately, I ended up sick for much of this ICML. I did manage to catch one interesting paper: Richard Socher , Cliff Lin , Andrew Y. Ng , and Christopher D. Manning Parsing Natural Scenes and Natural Language with Recursive Neural Networks . I invited Richard to share his list of interesting papers, so hopefully we’ll hear from him soon. In the meantime, Paul and Hal have posted some lists. the future Joelle and I are program chairs for ICML 2012 in Edinburgh , which I previously enjoyed visiting in 2005 . This is a huge responsibility, that we hope to accomplish well. A part of this (perhaps the most fun part), is imagining how we can make ICML better. A key and critical constraint is choosing things that can be accomplished. So far we have: Colocation . The first thing we looked into was potential colocations. We quickly discovered that many other conferences precomitted their location. For the future, getting a colocation with ACL or SIGI
6 0.69027859 403 hunch net-2010-07-18-ICML & COLT 2010
7 0.68764305 331 hunch net-2008-12-12-Summer Conferences
8 0.67553014 116 hunch net-2005-09-30-Research in conferences
9 0.6717242 447 hunch net-2011-10-10-ML Symposium and ICML details
10 0.66897994 395 hunch net-2010-04-26-Compassionate Reviewing
11 0.66414648 454 hunch net-2012-01-30-ICML Posters and Scope
12 0.65621448 387 hunch net-2010-01-19-Deadline Season, 2010
13 0.65177566 89 hunch net-2005-07-04-The Health of COLT
14 0.64728349 422 hunch net-2011-01-16-2011 Summer Conference Deadline Season
15 0.62616551 416 hunch net-2010-10-29-To Vidoelecture or not
16 0.62403482 40 hunch net-2005-03-13-Avoiding Bad Reviewing
17 0.60673171 318 hunch net-2008-09-26-The SODA Program Committee
18 0.60457563 283 hunch net-2008-01-07-2008 Summer Machine Learning Conference Schedule
19 0.59202188 21 hunch net-2005-02-17-Learning Research Programs
20 0.58849108 184 hunch net-2006-06-15-IJCAI is out of season
topicId topicWeight
[(27, 0.158), (38, 0.04), (42, 0.033), (48, 0.029), (49, 0.023), (53, 0.082), (55, 0.227), (56, 0.017), (58, 0.011), (64, 0.012), (73, 0.141), (88, 0.01), (92, 0.015), (94, 0.07), (95, 0.045)]
simIndex simValue blogId blogTitle
same-blog 1 0.9176591 452 hunch net-2012-01-04-Why ICML? and the summer conferences
Introduction: Here’s a quick reference for summer ML-related conferences sorted by due date: Conference Due date Location Reviewing KDD Feb 10 August 12-16, Beijing, China Single Blind COLT Feb 14 June 25-June 27, Edinburgh, Scotland Single Blind? (historically) ICML Feb 24 June 26-July 1, Edinburgh, Scotland Double Blind, author response, zero SPOF UAI March 30 August 15-17, Catalina Islands, California Double Blind, author response Geographically, this is greatly dispersed and the UAI/KDD conflict is unfortunate. Machine Learning conferences are triannual now, between NIPS , AIStat , and ICML . This has not always been the case: the academic default is annual summer conferences, then NIPS started with a December conference, and now AIStat has grown into an April conference. However, the first claim is not quite correct. NIPS and AIStat have few competing venues while ICML implicitly competes with many other conf
2 0.89029789 257 hunch net-2007-07-28-Asking questions
Introduction: There are very substantial differences in how question asking is viewed culturally. For example, all of the following are common: If no one asks a question, then no one is paying attention. To ask a question is disrespectful of the speaker.  The first view seems to be the right one for research, for several reasons. Research is quite hard—it’s difficult to guess how people won’t understand something in advance while preparing a presentation. Consequently, it’s very common to lose people. No worthwhile presenter wants that. Real understanding is precious. By asking a question, you are really declaring “I want to understand”, and everyone should respect that.  I don’t mean from “asleep” to “awake” but from “awake” to “really awake”. It’s easy to drift through something sort-of-understanding. When you ask a question, especially because you are on the spot, you will do much better.
3 0.87939274 395 hunch net-2010-04-26-Compassionate Reviewing
Introduction: Most long conversations between academics seem to converge on the topic of reviewing where almost no one is happy. A basic question is: Should most people be happy? The case against is straightforward. Anyone who watches the flow of papers realizes that most papers amount to little in the longer term. By it’s nature research is brutal, where the second-best method is worthless, and the second person to discover things typically gets no credit. If you think about this for a moment, it’s very different from most other human endeavors. The second best migrant laborer, construction worker, manager, conductor, quarterback, etc… all can manage quite well. If a reviewer has even a vaguely predictive sense of what’s important in the longer term, then most people submitting papers will be unhappy. But this argument unravels, in my experience. Perhaps half of reviews are thoughtless or simply wrong with a small part being simply malicious. And yet, I’m sure that most reviewers genuine
4 0.86543554 270 hunch net-2007-11-02-The Machine Learning Award goes to …
Introduction: Perhaps the biggest CS prize for research is the Turing Award , which has a $0.25M cash prize associated with it. It appears none of the prizes so far have been for anything like machine learning (the closest are perhaps database awards). In CS theory, there is the GÃƒÂ¶del Prize which is smaller and newer, offering a $5K prize along and perhaps (more importantly) recognition. One such award has been given for Machine Learning, to Robert Schapire and Yoav Freund for Adaboost. In Machine Learning, there seems to be no equivalent of these sorts of prizes. There are several plausible reasons for this: There is no coherent community. People drift in and out of the central conferences all the time. Most of the author names from 10 years ago do not occur in the conferences of today.  There are at least a core group of people who have stayed around. Machine Learning work doesn’t last Almost every paper is fo
5 0.86498052 453 hunch net-2012-01-28-Why COLT?
Introduction: By Shie and Nati Following John’s advertisement for submitting to ICML, we thought it appropriate to highlight the advantages of COLT, and the reasons it is often the best place for theory papers. We would like to emphasize that we both respect ICML, and are active in ICML, both as authors and as area chairs, and certainly are not arguing that ICML is a bad place for your papers. For many papers, ICML is the best venue. But for many theory papers, COLT is a better and more appropriate place. Why should you submit to COLT? By-and-large, theory papers go to COLT. This is the tradition of the field and most theory papers are sent to COLT. This is the place to present your ground-breaking theorems and new models that will shape the theory of machine learning. COLT is more focused then ICML with a single track session. Unlike ICML, the norm in COLT is for people to sit through most sessions, and hear most of the talks presented. There is also often a lively discussion followi
6 0.86029702 116 hunch net-2005-09-30-Research in conferences
7 0.85601175 40 hunch net-2005-03-13-Avoiding Bad Reviewing
8 0.84788823 90 hunch net-2005-07-07-The Limits of Learning Theory
9 0.84226471 437 hunch net-2011-07-10-ICML 2011 and the future
10 0.837865 476 hunch net-2012-12-29-Simons Institute Big Data Program
11 0.83353394 89 hunch net-2005-07-04-The Health of COLT
12 0.82926363 454 hunch net-2012-01-30-ICML Posters and Scope
13 0.82450163 331 hunch net-2008-12-12-Summer Conferences
14 0.81537628 466 hunch net-2012-06-05-ICML acceptance statistics
15 0.81523556 448 hunch net-2011-10-24-2011 ML symposium and the bears
16 0.81504524 484 hunch net-2013-06-16-Representative Reviewing
17 0.81461179 65 hunch net-2005-05-02-Reviewing techniques for conferences
18 0.81177795 423 hunch net-2011-02-02-User preferences for search engines
19 0.80901891 464 hunch net-2012-05-03-Microsoft Research, New York City
20 0.80563569 485 hunch net-2013-06-29-The Benefits of Double-Blind Review


rotten > Library > Biographies > Entertainers > Actors > John Holmes
John Holmes
The most precise measurement ever given for the length of John Holmes' penis was 12.58 inches, cited in SCREW magazine. But 20.51% of that figure was pure hype.
In a 1989 Rolling Stone article, ex-wife Sharon recalled John's self-amazement when he measured his penis in 1968: "It goes from five inches all the way to ten. Ten inches long! Four inches around!" That night, to Sharon's dismay, he revealed his intention to become a porn actor.
He became the all-time world's greatest.
He got hooked on drugs, primarily cocaine, which eventually rendered him incapable of performing. He was always late to the set, and when he finally did show up he'd disappear into the bathroom for hours at a time. After which point, of course, he was scatterbrained and unable to maintain an erection. Then he stopped getting roles.
During the height of his drug addiction, Holmes went broke and turned to crime to support his habit. He stole luggage from the baggage claim at LAX, sold things he purchased with his wife's charge cards, broke into cars. Somewhere around this time, John got involved with alleged drug dealer Eddie Nash, who had an unsavory reputation. According to John's wife Laura: "He was an awful man...
In June 1981, four of John's acquaintances raided 8763 Wonderland Avenue, Eddie Nash's house. They forced Nash at gunpoint to open a floor safe, which yielded more than $100,000 in cash, $150,000 in jewelry, eight pounds of cocaine, a kilo of heroin, and 5,000 quaaludes. Nobody died that night.
When the gang returned to their Laurel Canyon hideout, Holmes was waiting for them. He freebased some of the coke and then they cut him in. He received a paltry $3,000 for having unlocked Nash's back door the night before. A few days later, Nash somehow caught up with Holmes and persuaded him to confess. Then they all went to Laurel Canyon and brutally murdered everyone in the hideout.
John was tried in 1982 for his involvement in the Wonderland slayings. Holmes was defended by attorney Earl Hanson, who later represented serial killer William G Bonin.
Died of AIDS in March 1988. Diagnosed HIV-positive in 1986, but continued to make films without informing any of his partners of his status.
Claimed 14,000 fucks, though the actual number is probably in the low thousands. Starred in 2,000 porno films.
Timeline
| 8 Aug 1944 |
John Curtis Estes born on the kitchen table, Ashville, Pickaway County OH. |
| 1946 |
Mother marries Edward Holmes. |
| 1948 |
Attends Milport Chapel Church Sunday School for twelve years. |
| 1956 |
Deflowered by a 36 year old woman. |
| 1960 |
Joins the U.S. Army at age 16, stations at Nuremberg: "The Army was good for me. I can't honestly say that it taught me any morals or sense of responsibility. I had been raised with those qualities. What it taught me was that there was a whole world of sex I had yet to discover." |
| 1963 |
Discharged from Army. |
| Aug 1965 |
Marries nurse Sharon Gebenini. |
| c. 1966 |
Appears uncredited in gay porno reels, sometime in the mid-1960's. |
| 1968 |
Measures his penis, according to legend and interviews. But by this time he had already appeared in pornos. |
| 1969 |
Appears in first credited porno, Body Lust. |
| May 1972 |
Chuck Holmes (later founder of Falcon Entertainment) distributes their first mail order flyer for a selection of gay 8mm films, one of which stars John Holmes. |
| c. 1972 |
Arrested for pimping and pandering. Becomes a stoolie to escape the charges. |
| 1973 |
Private Investigator Johnny Wadd makes his film debut. |
| Jun 1975 |
"My favorite recipe is Stuffed Veal a la Oscar. Oscar is asparagus with cream sauce on top of a very thick cut of veal that's sliced like a vagina. And you stuff it with stuffing, and you sew it together and bake it. And then when it's ready, you pour this Hollandaise asparagus on top. And it's magnificent." Screw, #329. |
| 1976 |
Befriends (in a most nonwholesome manner) 16 year old runaway Dawn Schilling, lets her move in with John and his wife. |
| 1981 |
Arrested for theft (stealing a computer.) |
| 29 Jun 1981 |
Wonderland robbery. |
| 4 Dec 1981 |
Arrested over Wonderland robbery. |
| 20 May 1982 |
Charged with murder, with regards to Wonderland house. |
| 1982 |
Wife Sharon divorces John while he's in jail. |
| 16 Jun 1982 |
Acquitted of Wonderland charges. |
| 22 Nov 1982 |
Released from jail after contempt charges (over his silence at trial.) |
| Jun 1983 |
John Holmes to Al Goldstein at the Consumer Electronics Show in Las Vegas: "You're gaining weight, Goldstein. You should be on the same diet I'm on, the cocaine diet." |
| 1983 |
Makes gay porno with Joey Yale, who definitely has AIDS at this time, The Private Pleasures of John C. Holmes. |
| 18 Apr 1986 |
Joey Yale dies of AIDS. |
| 1986 |
Tests HIV positive.  John's reaction to a friend: "I think I'm married.  I'm not sure, but I've got a ring, Laurie's with me and I think we're married." Laurie's specialty: Anal. |
| 13 Mar 1988 |
John Holmes dead from AIDS. |
| 12 Oct 1997 |
Paul Thomas Anderson's Boogie Nights premieres, roughly based on the life of John Holmes. |
| 1998 |
Film Wadd: The Life and Times of John C. Holmes. |
Pornopolis |
Rotten |
Faces of Death |
Famous Nudes
|


Sorry, something has gone wrong with the site.
Problem was: #{jsfErrorBean.throwable}. Stacktrace:
#{jsfErrorBean.stacktrace}


TECHNICAL PAPER PRESENTATION
Topics
1) GSM/CDMA Evolution
2) Reconfigurable Computing
3) IDE and S/W tools for Embedded Systems
4) Wi-Fi and Wi-Max
5) CMOS Sensors and MEMS
6) Audio, Image and Video Processing
7) VLSI and SOC
8) Optoelectronics
9) Microwave, RF and Wireless Devices
10) Any electronics related topics are welcomes
Guidelines
1) Maximum of three authors per paper is allowed.
2) All submission dates should be strictly adhered to.
3) E-mail your abstracts to<EMAIL_ADDRESS>4) In the subject line of your mail, mention the subject as "Category"_"Topic Name"
Example: ECE_Image Processing in Distributed Environment.
It is mandatory to mention the contact numbers of all the authors in the mail containing the abstract.
Note: Failure to mention the contact details will lead to rejection of the abstract.
5) Full paper must be submitted on or before the final date and in the given specified format. Please be advised that there are marks allocated for the format and layout of the paper.
6) Participants should bring three hard copies of the papers with them on the day of the event.
7) Participants should bring a soft copy of their presentation in Powerpoint 2003 format only (.ppt or prezi and not .pptx). They may bring it in a pen drive or CD.
8) Papers will be selected after a critical review. Panel’s decision is final.
Deadlines
1) Last date for Abstract Submission:
2) Authors of selected abstracts will be intimated if the abstract is shortlisted
3) Submission of full paper (.doc format and not .docx).
Contact
Raj :<PHONE_NUMBER>
Meena :<PHONE_NUMBER>


The goal of this project is to analyze how twitters ratings different from IMDB’s ratings among different scales, and most importantly, trying to understand users intentions behind MovieTweeting behaviors. By doing that, we can give film companies intuitions of what type of genres are more likely to become popular in social media, why and when is the best time to do movie propagation,and etc.
Questions
There are 3 major questions that will be answered in this data report.
1) What are the differences between the most popular and loved genres in IMDB and twitter platforms? Do most voted movies usually get higher ratings?
2) Would twitter users more likely to share their reviews(ratings) for old movies or for most recent movies?
3) Do movie exposure to Twitter boost their ticket sales? In other words, analyze the relationship between BoxOffice with total votes and rating scores.
Dataset Introduction
IMDB :
The IMDB dataset will be scraped from OMDB API . The crawled movies will be based the IMDB_ID from online Github Repository The format of the return values from OMDB API will be in json format.
A brief review of the variables and records information in this dataset.
MovieTwitting :
The MovieTwitting dataset can be downloaded directly from here. There are two separate tables used in this research: movies.dat and ratings.dat. There are originally 26,044 records for movies.dat and 649,320 records for ratings.dat.
Analysis and Visualization
Exploration1 : User preferences to Genre - BasicDataExploration:
1) Popular genres in IMDB and twitter are similar. Top 3 genres are in the range of Comedy, Drama and Action.
2) Most highly rated genres in IMDB are Film, Documentary, Biography, Animation and War. While most highly rated genres in Twitter are Western, Short, Documentary, Biography and Film.
- Interesting findings:
1) Documentary and Biography are both being most mentioned and rated high for both IMDB and twitter. Twitter users prefer to share biography movies and IMDB users voted a lot for Documentary.
From this result, we will advise Documentary and Biography movie directors to do movie propagation in twitter before they release.
2) Movie genres that being mentioned more usually not being rated too high.
As we can see from figure 5, we can see Action,Comedy, Drama, Horror in IMDB dataset have large votes audiences, but they receive relatively low rating score. Here, in order to plot ratings and votes on a same y scale, I use log function on IMDB total votes to see a zoom in version.
Exploration 2 : Twitter Ratings time series analysis
In this exploration section, we want to explore the fact whether twitter users are more likely to share their reviews(ratings) for old movies or for most recent movies( Movie release time>1).
As it turns out, twitter users rating behaviors have time effect.
If we search deeper to the genre pattern of twitter rating, we can find that for action movies, their Total Votes have very clear boundaries. Although most people votes for movies in 10 days to 20 days after they release, some people love to share their rating to their preference for classic action movies.
However if we look at Figure 9, biography movies rating time, we cannot see a very obvious patter in here, which means biography movies don’t pursue for time effect. Interesting, we can see lots of biography have ratings before they release. So they must put their trailer on internet before they released and twitter users love to rate them!
So knowing that twitter users rate biography trailers, I was wondering whether this preview version is the reason that make biography get higher score/reputation.
Thus I compared the movies with trailers and movies with trailers and wanna see their average score differences. Turns out, from Table 7, biography movies companies who publish their trailers in advance and receive twitter users’ rating will gain much more higher rating.
From that, we can reasonably guess biography movies reputation have close relationship with their media exposure.
Beside of that, we also curious about how twitter users change their ‘Genre taste’ across time.
From figure 7 we can find some interesting insights. Notice the horror movies are receiving higher and higher ratings through year. And also the same for Action, Comedy and Mystery. While Adventure movie decrease their ratings quite a lot through time. The most steady high performance candidates are Animation and Documentary.
Exploration 3: Movies Exposure in twitter relationship with their BoxOffice performance
Through visualization, it was good to know that twitter votes amounts can have an influence on ticket sales, especially for below genres.
More Code and content about this project, please refer to Here


Joris van der Wel
on 2009-09-29 16:06:36
heh :)
Well, if a high surrogate is found, the i++; is just there so we do not loop over the low surrogate the next time.
It then goes all the way to if (code >= 65536) { // 4 byte
to turn it into utf-8
That just me accounting for the remote possibility the specification changes (aka charCodeAt returning something bigger then 65535)
Funny thing is, I actually wrote my own rawurlencode function before finding this one and it was nearly identical.
Brett Zamir
on 2009-09-10 04:12:09
@Joris: Good catch about the non-BMP code points; ironic you caught me making the mistake, since I was the one who edited the article you cited for the correction to point this problem out! :) That's what I get for adapting someone else's pattern without thinking... Anyways, your addition is good, except that it should not assign to "code" but instead to "ret" and then do a "continue" after the "i++" or ensure we are in a continuous else/else-if block (I chose the latter). Also, thanks for the catch on the hex needing two chars min... Fixed in git...
Joris
on 2009-09-09 15:15:51
This function does not work properly for 4 byte unicode characters. Browsers use UTF-16 for strings. That means any unicode character above 65536 is split up into two surrogates values.
So "code >= 65536" is NEVER true.
Oh and PHP always makes sure a percentage value is composed of two hex numbers.
Here is a version that does urlencode as if the string were really UTF-8:
var hexStr = function (dec) {
return '%' + (dec < 16 ? '0' : '') + dec.toString(16).toUpperCase();
};
var ret = '',
unreserved = /[\w.~-]/; // A-Za-z0-9_.~-
str = (str+'').toString();
for (var i = 0, dl = str.length; i < dl; i++) {
var ch = str.charAt(i);
if (unreserved.test(ch)) {
ret += ch;
}
else {
var code = str.charCodeAt(i);
if (0xD800 <= code && code <= 0xDBFF) // High surrogate (could change last hex to 0xDB7F to treat high private surrogates as single characters); https://developer.mozilla.org/index.php?title=en/Core_JavaScript_1.5_Reference/Global_Objects/String/charCodeAt&revision=39
{
code = ((code - 0xD800) * 0x400) + (str.charCodeAt(i+1) - 0xDC00) + 0x10000;
i++; // skip the next one
}
// We never come across a low surrogate because we skip them
// Reserved assumed to be in UTF-8, as in PHP
if (code < 128) { // 1 byte
ret += hexStr(code);
}
else if (code >= 128 && code < 2048) { // 2 bytes
ret += hexStr((code >> 6) | 0xC0);
ret += hexStr((code & 0x3F) | 0x80);
}
else if (code >= 2048 && code < 65536) { // 3 bytes
ret += hexStr((code >> 12) | 0xE0);
ret += hexStr(((code >> 6) & 0x3F) | 0x80);
ret += hexStr((code & 0x3F) | 0x80);
}
else if (code >= 65536) { // 4 bytes
ret += hexStr((code >> 18) | 0xF0);
ret += hexStr(((code >> 12) & 0x3F) | 0x80);
ret += hexStr(((code >> 6) & 0x3F) | 0x80);
ret += hexStr((code & 0x3F) | 0x80);
}
}
}
return ret;
Gr. Joris
Brett Zamir
on 2009-06-02 02:46:00
Even encodeURIComponent differs. See http://www.devpro.it/examples/php_js_escaping.php
Kankrelune
on 2009-06-02 00:01:39
it's not exactly the same chars list in escape and rawurlencode... .. .
The escape and unescape functions do not work properly for non-ASCII characters and have been deprecated. In JavaScript 1.5 and later, use encodeURI or encodeURIComponent... .. . ;o)
@ tchaOo°
Me
on 2009-06-01 23:15:34
Isn't this simpler and achieving the same result:
escape(str);
Brett Zamir
on 2009-04-21 08:43:35
Good catch! I'm not sure how that happened, but it is now fixed in SVN. I've actually been meaning to review these functions, as I'm not 100% sure now that the recent changes to the histogram have all been correct, at least for all functions...
Michael Grier
on 2009-04-21 06:09:56
Not encoding spaces is not the behavior of rawurlencode or urlencode, for that matter.
urlencode and rawurlencode both encode anything that is not "A to Z", "a to z", "0 to 9", "-", "_" or "." ... the only difference between them is how spaces are encoded... urlencode encodes spaces as "+" and rawurlencode encodes spaces as "%20".


Secrets to modular component design systems
Patrick Riley, Red Hat UXD
Topics Covered
- Create: Scaffolding a Storybook for UI component development
- Test: Maintainable codebases, an art more than a science:
- Picking a linter and sticking with it
- Write beautiful components and beautiful code with ASTs
- Repeatable tests with Jest
- Build: Ready for production? Using storybook deployer and semantic releases
- Web Platform: Going a step further on the future web platform
"Powering great user experiences through open source design"
Atomic Design
"We're not designing pages, we're designing systems of components" - Stephen Hay
- Atomic design and component driven development is a recurring theme
- Each component does only one thing and one thing well
- Convergence on ES6 modules as the future driver of modularity for the web
How do we manage the complexity of so many components?
"Software as a Story"
- Develop individual states or visual UI tests as "stories"
- Test component interactions in isolation then later in conjunction
- Includes a development server, flexible webpack build process, and interactive addons (knobs)
- Build the documentation as you write the code
- Deploys to GitHub pages
- Supports some important frameworks:
- React / React Native
- Vue.js
- Angular (coming in 3.3 release)
- Supports Web Components (if you let it)
Installing Storybook
Add a Button Component
Add index.js
Add Button Stories
Add Storybook Config
Register Action Addon
Run Storybook
Adding Interaction to the Visual UI Tests (stories)
- Storybook Knobs give us the ability to inject variables to the UI test:
- text
- booleans
- number
- select
- date
- object/array
- color
Add Button Knobs
Register Knobs Addon
Knobs Demo
Button Info Addon
Info Addon Demo
Ensuring a Maintainable Codebase
"I'm not a great programmer; I'm just a good programmer with great habits." - Kent Beck
- Develop your personal recipe for clean code:
- LINTER + FORMATTER + TESTS = CONSISTENT CODE
- Comment any potentially confusing code, or better yet, rewrite the code so that it isn't confusing
- Locate code quickly, Identify the code at a glance, keep the Flattest structure you can, and Try to be DRY
- Reduce surface area for bugs:
-
Often several components need to reflect the same changing data.
We recommend lifting the shared state up to their closest common ancestor.
- Ensure recipes are vetted as soon as the pull request is opened
Javascript Standard Style
A zero configuration, community led style convention for Javascript.
- Automatically fixes most lint issues with standard --fix
- Integrates with most IDEs
- Used by GitHub, NPM, and many others
Prettier Code Formatter
Prettier enforces a consistent code style by parsing all code and re-printing the parsed abstract syntax tree with its own rules.
- One of the first formatters to actually solve the maximum line length problem
- Uses standard ES6/ES7 conventions when formatting JS
- Supports Javascript, JSX, Flow/Typescript, CSS/LESS/SASS, JSON
Prettier Code Formatter
Linting requires patience. Prettier can help.
- Over 40% of Javascript Standard style lint rules automatically fixed:
// Avoid multiple spaces in regular expression literals.
const regexp = /test value/ // ✗ avoid
const regexp = /test {3}value/ // ✓ ok
// No ternary operators when simpler alternatives exist.
let score = val ? val : 0 // ✗ avoid
let score = val || 0 // ✓ ok
// The left operand of relational operators must not be negated.
if (!key in obj) {} // ✗ avoid
if (!(key in obj)) {} // ✓ ok
// Avoid using unnecessary computed property keys on objects.
const user = { ['name']: 'John Doe' } // ✗ avoid
const user = { name: 'John Doe' } // ✓ ok
// Renaming import, export, and destructured assignments to the
// same name is not allowed.
import { config as config } from './config' // ✗ avoid
import { config } from './config' // ✓ ok
// Avoid Yoda conditions.
if (42 === age) { } // ✗ avoid
if (age === 42) { } // ✓ ok
Install Standard, Prettier, and ESLint
Add ESLint Configuration
VS Code Integration
Install Prettier VS Code Plugin and configure settings.json
ESLint Demo
Prettier Demo
Javascript Linting
Some other recommended lint configs:
- eslint-config-airbnb
- eslint-config-react-app
- eslint-plugin-jsx-a11y
For Angular2+ apps, you can use Codelyzer/Tslint with the Angular Style Guide recommendations:
Testing with Confidence
"Before fixing a bug exposed by a high level test, you should replicate the bug with a unit test. Then the unit test ensures the bug stays dead." - Martin Fowler
Snapshot Testing with Jest
"After migrating to Jest, our tests started running 6x faster. Running a single test went from about 5 seconds to almost instant." - Rogelio Guzman, Docker
- Snapshots create a serialized file for your test which can easily be compared
- Integrates with Babel
- UI components often change in small and trivial ways. Snapshots are easy to write and effortless to update
- In many scenarios, snapshots can remove the need for a unit/integration test; however, they should not be seen as a complete replacement
Install Jest
Add Babel Configuration
Add Button Snapshot Test
Jest Snapshot Demo
Updating the Snapshot
Jest Coverage Report
Package Distribution Automation
- The largest package distribution hub in the world, UPS Worldport, distributes 2M-4M inbound/outbound physical packages/day
- By comparison, NPM now distributes 140M software packages/day
Continuous Releases with Travis CI
Now we'll use Travis to automate the following:
- Run our UI tests and ensure lint rules on every pull request
- Automatically release code to NPM and ensure semantic versioning
- Update our Storybook gh-pages automatically and push code for us
Automated Releases with Semantic Releases
We'll use semantic-release to ensure the following:
- Automated package publishing to NPM after every pull request is merged
- Standardized commit messages with Commitizen
feat(pencil): add 'graphiteWidth' option
Add 'graphiteWidth' option to allow lead size adjustment and
ensure consistent line width.
Closes #42
Semantic Release Setup
Travis CI Settings
Configure .travis.yml
Configure package.json
Configure package.json (cont.)
Add .npmignore
Add Commitlint Config
Add a Commit with Commitizen
Git Push
Travis Build Logs
Adding some Button Styles
Storybook Button Styles Demo
Add a feature commit
NPM Publish via Travis
Deploying to GitHub Pages
Deploying your Storybook to a Branch
Pushing Code to GitHub Automatically
We can configure deploy keys to securely publish code to GitHub within our Travis builds:
- Enhance our release process to update gh-pages automatically
- Deploy keys are more secure than personal access tokens as the key is attached directly to the repository instead of a personal user account
Generate a deploy key
Add the deploy key in GitHub
Encrypt the deploy key w/ Travis CLI Tools
Verify the environment variables get added
Add .travis.yml global environment variables
Add release.sh
"Look ma, no hands!"
Native vs Hybrid vs Web
"Our biggest mistake was betting too much on HTML5" - Mark Zuckerberg, 2012
- "The web is too slow to run high FPS graphics."
- "The web doesn't access my device the same way."
- "Interpreted languages can't keep up."
- "Asynchronous programming always leads to the pyramid of doom."
- "We can't monetize apps..."
Betting on the web...
"People dont want to use your app. They want to be done using your app." - Henrik Joreteg
- 65% of smartphone users download zero apps per month
- WebAssembly will give us near-native performance with C/C++ hooks
- WebBluetooth, WebAudio, WebGL, WebVR give native like hardware experiences
- PWAs give us native app experiences with offline capability for FREE
Web Components are the future web module.
- Composable: combine them together to create new experiences
- Encapsulated: isolate markup, styles, and behavior
- Reusable: work with any framework
- Simple!
Why Web Components?
"Custom Elements give us a built-in component model without requiring framework lock-in" - Rob Dodson, Google
Web Component specifications
Custom Elements
Browser APIs to define our own HTML elements.
HTML Templates
The <template> tag now allows documents to contain inert chunks of DOM.
Shadow DOM
Encapsulated component DOM and styling.
ES6 Modules
Built-in Javascript modules exposed in a single file.
Shadow DOM
"Encapsulated styles are better for you as a developer, and better for you as a platform."
Monica Dinculescu recently summarized common CSS encapsulation strategies:
- Better naming strategies, i.e. BEM
- IFRAMES - you're joking, right?
- CSS Modules - a smarter way of automating BEM
- CSS-in-JS: variations of directly manipulating style attributes, inline css, and compiled stylesheets
- Shadow DOM: true CSS encapsulation
Shadow DOM
Shadow DOM gives you functional boundaries between DOM subtrees. jsfiddle
- Shadow roots create an encapsulated style boundary
- Slots are the mechanism to superimpose (transclude) custom content
class MyElement extends HTMLElement {
constructor() {
super();
/* Create a new Shadow Root for your element */
this._shadowRoot = this.attachShadow({ mode: "open" });
}
connectedCallback() {
/* append your element's template */
this._shadowRoot.appendChild(document.importNode(elementTemplate.content, true));
}
}
CSS Properties and Cascade Rules
CSS Properties cascade similarly to CSS Rules:
:root { --color: blue; } /* default color */
div { --color: green; }
.myclass { --color: red; }
* { color: var(--color); } /* applies the --color property at all the above levels */

I inherited blue from the root element!

I got green set directly on me!

While I got red set directly on me!

I'm red too, because of inheritance!

Renders:
I inherited blue from the root element!
I got green set directly on me!
While I got red set directly on me!
I'm red too, because of inheritance!
Framework Communication
We communicate with the web component from the framework in three primary ways:
Events
this.modal.addEventListener('modal.show', this.monitorModalEvents, false);
Attributes
<ui-tab title="Tab One" active></ui-tab>
DOM
<ui-accordion-template id="collapseOne" aria-labelledby="headingOne">

</ui-accordion-template>
Framework Extensions (shims)
Sometimes it is desirable to consume components via framework shims to customize these communications. jsfiddle
Shims can help with the following:
- Making the component feel like a framework component to the consumer
- Two way binding
- Dispatching custom events
- Handling framework mutations
- Imposing type restrictions
- Complex components
React Storybook + WC Integration
Now we'll add a Hello Web Component to our React Storybook.
- Commit with additions:
- Storybook Demo:
Add new WC dependencies to package.json
Add preview-head.html
Add Storybook Webpack configuration extensions
Add Hello Web Component (part 1)
Add Hello Web Component (part 2)
Add Hello Web Component Shadow CSS
Add Hello React Wrapper (part 1)
Add Hello React Wrapper (part 2)
Add Hello Storybook Story
Add Hello Storybook Story Custom CSS
Add Hello Snapshot Test
Export Hello Components
React Storybook + WC Demo
Angular Storybook + WC Integration
Now we'll add the same Hello Web Component to our Angular Storybook.
- Built with Angular CLI 1.3 and Angular 5.0 beta 3
- Commit with additions:
- Storybook Demo:
Import Web Components polyfills
Allow JS Typescript Compiler Option
Add Hello Ng Module
Add Hello Ng Component Wrapper
Add Hello Ng Component Template
Add Hello Ng Story
Angular Storybook + WC Demo
Summary
- Create atomic UI components that can be visualized and documented individually.
- Test from low-level to high-level and refine your recipe for code maintainability.
- Build with repeatable and automated processes. CI is the backbone of quality code and enhances team productivity.
- The Web Platform is the open platform. Web Components and Shadow DOM are the new vehicle to building a more modular composable web.
Link to presentation slides:
Links to presentation repostories:
Thanks!
This presentation was made possible by the PatternFly Community @RedHat!
Thanks to all of the following folks for making this possible:
Andres Galante (@andresgalante)
Danny Perez-Caballero (ATO Staff)
Brian Leathem (@brianleathem)
Brian Exelbeird (GSoC)
Robb Dodson (@rob_dodson)
Kent C Dodds (@kentcdodds)
Dan Labrecque (RedHat)
Leslie Hinson (@patternflygirl)
Jenn Giardino (RedHat)
Dana Gurtride (RedHat)
Kyle Buchanan (@KyleBuchanan8)
Oleg Proskurin (@UsulPro)
Jiri Tomasek (RedHat)
Ohad Levy (RedHat)
Luke Dary (@lukedary)
Orta Therox (@orta)
Questions?
Link to presentation: http://bit.do/ato2017
Come visit us!
Contact Me!
And just remember...
References
- Brad Frost: Atomic Design.
- Kent C Dodds: Write tests. Not too many. Mostly integration.
- Henrik Joreteg: Betting on the Web
- Monica Dinculescu: Shadow DOM: fast and encapsulated styles.
- Jest: Delightful JavaScript Testing
- Prettier: Prettier is an opinionated code formatter.
References (cont.)
- Storybook.js.org: Interactive development & testing for React, React-Native, and Vue UI components.
- Travis-ci.org: Test and Deploy with Confidence
- Webcomponents.org: Browser Support
- Epic Games: Zen Garden WebAssembly Demo
- Semantic Releases: fully automated package publishing.
References (cont.)
- NPM Download Stats
- UPS Worldport Facts
- Martin Fowler: Test Pyramid


Tomislav Buljević
@tomebuljevic
Process of creating a model of data stored in the database.
| Name | Model | Color | Size |
|---|---|---|---|
| Jazz | Sneaker | Blue / Red / White | 40-45 |
| Hip-Hop | Sneaker | Blue / Green / Red | 40-42 |
| Metal | Sneaker | Black | 40-43 |
| Posh | Oxford | Black / White | 40-46 |
| Student | Oxford | Black / Brown | 40-46 |
| Business | Oxford | Black / Brown | 40-46 |
| Name | Colour | Region | Year | Price |
|---|---|---|---|---|
| Jazz | Blue | East | 2019 | € 20 |
| Jazz | Blue | West | 2019 | € 22 |
| Jazz | Red | East | 2019 | € 15 |
| Jazz | Red | West | 2019 | € 17 |
| Jazz | Blue | East | 2020 | € 18 |
| Jazz | Blue | NorthWest | 2020 | € 20 |
| Jazz | Red | East | 2020 | € 17 |
| Jazz | Red | SouthWest | 2020 | € 19 |
On the search page, the client wants to:
Which element:
Most important elements:
Shoe
Region
Year
Price
All the things are strings!
* Done with https://dbdiagram.ioShoe
Name - unique for each article
Model - unique for each group
Color - how do we determine uniqueness?
Size - unique for each article; a known limited range
One possible solution
"The only constant in life is change"
-- Heraclitus


blockname AC 0 HP 0d0 speed 0 pp 0 str 0 dex 0 con 0 int 0 wis 0 cha 0 actions { structured action => +0 to hit reach 0 hit 0d0+0 slashing {more details...} unstructured action => {all details here} } features { Feature name => {explanation} Skills => {skill1 +0, skill2} Senses => {sense1, sense2, ...} Languages => {language1, language2, ...} Challenge => {1/4 (50 XP)} }


Open Data
An introduction
Presented by FOSSMEC
Data Revolution?
The 21st century renaissance ?
Why Open Data?
You can do whatever you want on Open Data
You can build cool stuffs, gain insights, just don't mess it up
Getting a little serious...
- Helps organisations avoid wastage of resources
- Helps maintain transaparency
- Saves huge amounts of money
Flint Pipes: A Data Lead Story
- University of Michigan led project
- Predicted presence of lead pipes
- Saved around $10 Million
Click here to know More
Tandale Open Data Initative
The story of Map Kibera
- A joint initative by college students and residents at Dar Es Salem
- Upload Infrastructual Data to Open Street Maps
- Tied up with the local Goverment to improve city planning
Click here to know More
More Open Data Success Stories
Challenges to Open Data
- Public Data vs Open Data
- Inconsistent Data
- Inaccurate Data


|
Using gags in battle earns you skill points. When you’ve earned enough skill points you will get access to bigger, more powerful gags.
Your skill credit is multiplied in some battles. If you are in a building the skill credit you earn increases as you move up the floors.
During an invasion you get double skill credit. If you are in a building during an invasion you get double credit for the building!
|
|
Example:
If you use a Whole Cream Pie, normally worth five skill points, on the third floor of a building, you will receive 10 skill points.
If there is also an invasion happening, you will get 20 skill points!
|
|
|
Warning!
You won’t get any points for using a big gag on a little Cog. You can see if you will earn skill points by looking at the information
on the right side of the battle menu display when you roll over any of your gags. Gags that won't get you experience also have a green
background instead of the normal blue.
|
|
| In the Cog HQ Senior V.P. battle, during the first round against Cogs you get double skill credit, during the
second round against Skelecogs you get triple skill credit!
|
|
|
You should always carry as many ToonTasks as you can, and always train for a new gag track if you can. Make every battle count!
|


hiree
Note: Hiree (for now) uses local storage, which means it stores all of your data in your browser.
Back it up
.


Copied
TBNY Geolocation Test
Location:
-
Zip Code:
-
Borough:
-
Weather:
-
Day:
-
Time:
-
Enter Location
Submit Location
Getting location, please wait ...
NY living demands the best network.
Mix and match the perfect
unlimited family plan
Learn More


---
layout: default
title: Release v1.1.3
---
Release v1.1.3, 27th May 2014
Download
- SMTP and Logging options in config.
- #156 If a event is entered for same start and end date error
- Make error message if event start is after end actually make sense
- #166 Default country on new event form should be sensible
- Calendar page HTML title correct in Single Site Mode
- #163 Email HTML Template shows title correctly in Single Site Mode
- Bug fix; event show page; only show move to child areas if physical
- #155 Frontpage should show the venue by default. Also done on other listings page
- #171 API1 JSON to include venue
- API1 JSON export - better URLS & slugForURL
- Event popup on calendar pages; more info link should use slugForURL
- #172 Import URL - can set Area
- Remove duplicate link
- Display board: fix header for single site
- Display Board - change colour to match rest of site
- #126 If looking at event that has a venue but venue has children areas show user "select area"


Build a Business, Not a Channel – Launching a Robo-Advisor Inside a Large Bank
Shane Williams, Co-founder of UBS SmartWealth, shares the experience of launching a robo-advisory service inside a large bank, covering choices between build or buy, in or outside the organization (setting a separate entity or not?), with the pros and cons of either choice.
Big Data Finance 3.0, the Value of FinTech & The Evolution of Retail
The choice was difficult today – talented people are tireless in enriching the pool of knowledge for the community of finance and tech professionals. On the other hand, the Internet age doesn’t make it easy to pick out read-worthy pieces.
The FinServ Tinder, the Amazon Obsession & the Project That Broke From Hype Into Reality
Today’s picks of interesting articles are going to be half-consistent in a good way, with one common thread – outstanding leaders working hard to define the FinServ realm. Startup Ripple is beyond buzzwords with over 100 clients on board, UBS banks half of the world’s billionaires, and JPMorgan’s disruptor-in-chief’s ‘obsession’ with Amazon brings out the best of tech into banking.


counts can be counted, and not everything that can be counted counts.” - Albert Einstein. |
with life is a key to eternal youth.” - Doug Hutchison. |
short visit. Don’t hurry, don’t worry. And be sure to smell the flowers along the way.” - Walter Hagen |
think about.” –Earl Nightingale |
Unordered Lists |
Based on my preference (Ordered List) |


Right-Angled Artin Groups#
A right-angled Artin group (often abbreviated as RAAG) is a group which has a presentation whose only relations are commutators between generators. These are also known as graph groups, since they are (uniquely) encoded by (simple) graphs, or partially commutative groups.
AUTHORS:
Travis Scrimshaw (2013-09-01): Initial version
Travis Scrimshaw (2018-02-05): Made compatible with
ArtinGroup
- class sage.groups.raag.CohomologyRAAG(R, A)#
Bases:
CombinatorialFreeModule
The cohomology ring of a right-angled Artin group.
The cohomology ring of a right-angled Artin group \(A\), defined by the graph \(G\), with coefficients in a field \(F\) is isomorphic to the exterior algebra of \(F^N\), where \(N\) is the number of vertices in \(G\), modulo the quadratic relations \(e_i \wedge e_j = 0\) if and only if \((i, j)\) is an edge in \(G\). This algebra is sometimes also known as the Cartier-Foata algebra.
REFERENCES:
- class Element#
Bases:
CohomologyRAAGElement
An element in the cohomology ring of a right-angled Artin group.
- algebra_generators()#
Return the algebra generators of
self
.EXAMPLES:
sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: H = A.cohomology() sage: H.algebra_generators() Finite family {0: e0, 1: e1, 2: e2, 3: e3}
- degree_on_basis(I)#
Return the degree on the basis element
clique
.EXAMPLES:
sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: H = A.cohomology() sage: sorted([H.degree_on_basis(I) for I in H.basis().keys()]) [0, 1, 1, 1, 1, 2, 2]
- gen(i)#
Return the
i
-th standard generator of the algebraself
.This corresponds to the
i
-th vertex in the graph (under a fixed ordering of the vertices).EXAMPLES:
sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: H = A.cohomology() sage: H.gen(0) e0 sage: H.gen(1) e1
- gens()#
Return the generators of
self
(as an algebra).EXAMPLES:
sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: H = A.cohomology() sage: H.gens() (e0, e1, e2, e3)
- ngens()#
Return the number of algebra generators of
self
.EXAMPLES:
sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: H = A.cohomology() sage: H.ngens() 4
- one_basis()#
Return the basis element indexing \(1\) of
self
.EXAMPLES:
sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: H = A.cohomology() sage: H.one_basis() ()
- class sage.groups.raag.RightAngledArtinGroup(G, names)#
Bases:
ArtinGroup
The right-angled Artin group defined by a graph \(G\).
Let \(\Gamma = \{V(\Gamma), E(\Gamma)\}\) be a simple graph. A right-angled Artin group (commonly abbreviated as RAAG) is the group
\[A_{\Gamma} = \langle g_v : v \in V(\Gamma) \mid [g_u, g_v] \text{ if } \{u, v\} \notin E(\Gamma) \rangle.\]These are sometimes known as graph groups or partially commutative groups. This RAAG’s contains both free groups, given by the complete graphs, and free abelian groups, given by disjoint vertices.
Warning
This is the opposite convention of some papers.
Right-angled Artin groups contain many remarkable properties and have a very rich structure despite their simple presentation. Here are some known facts:
The word problem is solvable.
They are known to be rigid; that is for any finite simple graphs \(\Delta\) and \(\Gamma\), we have \(A_{\Delta} \cong A_{\Gamma}\) if and only if \(\Delta \cong \Gamma\) [Dro1987].
They embed as a finite index subgroup of a right-angled Coxeter group (which is the same definition as above except with the additional relations \(g_v^2 = 1\) for all \(v \in V(\Gamma)\)).
In [BB1997], it was shown they contain subgroups that satisfy the property \(FP_2\) but are not finitely presented by considering the kernel of \(\phi : A_{\Gamma} \to \ZZ\) by \(g_v \mapsto 1\) (i.e. words of exponent sum 0).
\(A_{\Gamma}\) has a finite \(K(\pi, 1)\) space.
\(A_{\Gamma}\) acts freely and cocompactly on a finite dimensional \(CAT(0)\) space, and so it is biautomatic.
Given an Artin group \(B\) with generators \(s_i\), then any subgroup generated by a collection of \(v_i = s_i^{k_i}\) where \(k_i \geq 2\) is a RAAG where \([v_i, v_j] = 1\) if and only if \([s_i, s_j] = 1\) [CP2001].
The normal forms for RAAG’s in Sage are those described in [VW1994] and gathers commuting groups together.
INPUT:
G
– a graphnames
– a string or a list of generator names
EXAMPLES:
sage: Gamma = Graph(4) sage: G = RightAngledArtinGroup(Gamma) sage: a,b,c,d = G.gens() sage: a*c*d^4*a^-3*b v0^-2*v1*v2*v3^4 sage: Gamma = graphs.CompleteGraph(4) sage: G = RightAngledArtinGroup(Gamma) sage: a,b,c,d = G.gens() sage: a*c*d^4*a^-3*b v0*v2*v3^4*v0^-3*v1 sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G Right-angled Artin group of Cycle graph sage: a,b,c,d,e = G.gens() sage: d*b*a*d v1*v3^2*v0 sage: e^-1*c*b*e*b^-1*c^-4 v2^-3
We create the previous example but with different variable names:
sage: G.<a,b,c,d,e> = RightAngledArtinGroup(Gamma) sage: G Right-angled Artin group of Cycle graph sage: d*b*a*d b*d^2*a sage: e^-1*c*b*e*b^-1*c^-4 c^-3
REFERENCES:
- class Element(parent, lst)#
Bases:
ArtinGroupElement
An element of a right-angled Artin group (RAAG).
Elements of RAAGs are modeled as lists of pairs
[i, p]
wherei
is the index of a vertex in the defining graph (with some fixed order of the vertices) andp
is the power.
- cohomology(F=None)#
Return the cohomology ring of
self
over the fieldF
.EXAMPLES:
sage: C4 = graphs.CycleGraph(4) sage: A = groups.misc.RightAngledArtin(C4) sage: A.cohomology() Cohomology ring of Right-angled Artin group of Cycle graph with coefficients in Rational Field
- gen(i)#
Return the
i
-th generator ofself
.EXAMPLES:
sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G.gen(2) v2
- gens()#
Return the generators of
self
.EXAMPLES:
sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G.gens() (v0, v1, v2, v3, v4) sage: Gamma = Graph([('x', 'y'), ('y', 'zeta')]) sage: G = RightAngledArtinGroup(Gamma) sage: G.gens() (vx, vy, vzeta)
- graph()#
Return the defining graph of
self
.EXAMPLES:
sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G.graph() Cycle graph: Graph on 5 vertices
- ngens()#
Return the number of generators of
self
.EXAMPLES:
sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G.ngens() 5
- one()#
Return the identity element \(1\).
EXAMPLES:
sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G.one() 1
- one_element()#
Return the identity element \(1\).
EXAMPLES:
sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G.one() 1


public interface IBitmap extends IDisposable
| Modifier and Type | Field and Description |
|---|---|
static int |
FORMAT_ALPHA_8 |
static int |
FORMAT_GREY_ALPHA_88 |
static int |
FORMAT_OTHER |
static int |
FORMAT_RGB_888 |
static int |
FORMAT_RGBA_8888 |
static int |
FORMAT_UNKNOWN |
| Modifier and Type | Method and Description |
|---|---|
int |
getByteCount()
Returns the number of bytes this bitmap's data uses.
|
ByteBuffer |
getData()
Returns the bitmap data.
|
void |
getData(ByteBuffer buffer)
Copies the bitmap data into the given buffer.
|
int |
getFormat()
Returns the color format of this bitmap.
|
int |
getHeight() |
int |
getWidth() |
close, dispose
static final int FORMAT_UNKNOWN
static final int FORMAT_OTHER
static final int FORMAT_ALPHA_8
static final int FORMAT_GREY_ALPHA_88
static final int FORMAT_RGB_888
static final int FORMAT_RGBA_8888
int getWidth()
int getHeight()
int getFormat()
This can be one of the included formats (ex. FORMAT_RGBA_8888
),
or a completely different one.
ByteBuffer getData()
Note that while some implementations may return the backing buffer directly,
others may allocate a new one for each bitmap, or even for each call.
Therefore prefer using getData(ByteBuffer)
.
getData(ByteBuffer)
void getData(ByteBuffer buffer)
The buffer's position will be incremented by the number of bytes written.
buffer
- BufferOverflowException
- If for buffer Buffer.remaining()
< getByteCount()
.getByteCount()
int getByteCount()
This is also the minimum capacity a buffer needs to contain the data.


Centralized build numbers for your apps and libraries.
$ curl -X POST https://api.buildnumber.io/com.example.myapp/builds \
--user API_TOKEN:
{“buildNumber":42}
buildnumber.io centralizes all your build numbers so they're kept in sync.
For instance, if you use Travis to build your iOS app but also build from your own computer, you’ll need to make sure Travis doesn't use the same build number than your computer's. You'll also need to make sure each build number is unique and incremental.
This is where buildnumber.io is helpful: by centralizing all your build numbers into one single database, we can give you a new, unique, and sequential build number to use in your next build.
{{ endpoint.details | markdown }}
{% endif %}{% endfor %}$ curl{% if endpoint.method != 'GET' %} -X {{ endpoint.method }}{% endif %} {{ baseUrl }}{{ endpoint.path }} \{% if endpoint.data %} --header 'Content-Type: application/json' \ --data '{{ endpoint.data | jsonstring }}' \{% endif %}{% if endpoint.auth %} --user API_TOKEN:{% endif %}
{{ endpoint.response | responsestring }}


The paper describes several design choices for developing a model for predicting user response (clicks) on ads.
The model is trained/evaluated on offline data.
Evaluation metrics:
Normalized Cross-Entropy (or Normalized Entropy, NE)
Defined as the predictive log-loss per impression, divided by the entropy of the background CTR (click-through rate).
Background CTR is the average empirical CTR of the training data.
Lower normalized cross-entropy is better.
The normalization term is important to make the metric insensitive to the background CTR. Otherwise, the log loss can easily be made low when background CTR is close to 0 or 1.
NE can also be written as $RIG - 1$, where $RIG$ is the Relative Information Gain.
Calibration
Area-Under-ROC (AUC) is a good metric for measuring ranking quality (among ads). However, it is not used as a metric to avoid over-delivery or under-delivery of ads.
Feature Transformation
A given add impression, $e$, is transformed into a $n-$dimensional vector, $x$, where the $i^{th}$ index denotes the value of the $i^{th}$ categorical feature.
Continous features are binned, and the bin index is used as a categorical feature, thus applying a non-linear transformation to the features.
Categorical features that are tuple-like (i.e., have a tuple of values) can be converted into new categorical features by taking a cartesian product.
Boosted decision trees can be used to implement the previous two transformations in one go.
Each tree is used as a categorical feature that takes the value of the index of the leaf node than an ad maps to.
The paper used the Gradient Boosting Machine with the $L_2-$TreeBoost algorithm.
Using the tree feature transformation improves the Normalized Cross-Entropy by $3.4\%$.
Model
Logistic Regression (LR) or Bayesian online learning scheme for probit regression (BOPR) algorithms are used for training a linear classifier model.
While both LR and BOPR models provide similar performance, the LR model is half the BOPR model’s size and faster for performing training/inference.
When a model is trained on the data from a particular day and evaluated on data from the subsequent days, the model’s performance degrades as the delay between training and test set increases.
This highlights the importance of the freshness of the training data.
One straightforward approach can be to train the model every day.
Alternatively, the linear classifier can be trained using online learning, while the boosted decision tree can still be trained daily.
Different choices for setting the learning rate (for online training of linear classifier) are compared, and the per-coordinate learning rate is found to perform best in practice.
An “online joiner” system is used to generate real-time training data for the linear classifier.
The challenging part is, while there are data points with a “positive” label (i.e., the user clicked on the ad), there are no datapoints with a “negative” label (since there is no “no-click” button that the user can click).
An impression is considered to have the “no-click” label if the user does not click on the ad within a (long) time window of seeing the ad.
Too short a time window could mislabel some impressions, while too long a time window will delay the real-time training data.
The online joiner performs a distributed stream-to-stream join on the stream of ad impressions and stream of ad clicks using a HashQueue.
A HashQueue:
comprises of a First-In-First-Out queue as a buffer window and a hash map for fast random access to label impressions.
supports three operations on key-value pairs: enqueue, dequeue, and lookup.
Increasing the number of boosting trees shows diminishing returns, and most of the improvements come from the first 500 trees.
Top 10 features account for half of the total feature importance, while the last 300 features add less than 1% feature importance.
Features in the boosting model can be broadly classified as contextual or historical.
Historical feature provides much more explanatory power than the contextual features through contextual features are helpful to handle the cold start problem.
Models trained with just the contextual features rely more heavily on data freshness than models trained with just the historical features.
Uniform subsampling and negative downsampling techniques are used to limit the amount of training data.
In the case of negative downsampling, the model needs to be re-calibrated as well.


|
Path Finding Project
1.0
A path finding project to find shortest path.
|
Implementation of unit test for AStarAlgorithm. More...
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <iostream>
#include <vector>
#include "AStarAlgorithm.hpp"
Functions | |
| TEST (testCreateMap1, handleCreateMapError) | |
| Check createMap function error handling by passing a non-existing input map path Test expects FALSE as map should NOT be created successfully. More... | |
| TEST (testCreateMap2, handleCreateMap) | |
| Check createMap function by passing test map Test expects TRUE as map should be created successfully. More... | |
| TEST (testSetParam1, handleSetParam) | |
| Check setParam function by setting feasible start, goal indices Test expects TRUE as start and goal are within map and are not obstacle nodes. More... | |
| TEST (testSetParam2, handleError) | |
| Check error handling of setParam by setting start, goal indices to out of bound or obstacle nodes Test expects FALSE return. More... | |
| TEST (testPath1, computePathShouldPass) | |
| Check computePath function a given start, goal nodes that has a feasible path Test expects TRUE as there should be a feasible path. More... | |
| TEST (testPath2, computePathShouldPass) | |
| Check computePath function can find path for setting start to goal node Test expects TRUE. More... | |
| TEST (testCorrectness, computeCostShouldMatch) | |
| Check computePath function computes shortest path by comparing cost result to Dijkstra's result Test expects Astar and Dijkstra's computes the same cost for shortest path. More... | |
| TEST (testCompleteness, handleUnreachableGoal) | |
| Check computePath returns fail for a given start and goal nodes which do not have a feasible path Test expects FALSE as there is no feasible path. More... | |
| TEST (testRobostness, computePathShouldBeRobost) | |
| Check computePath consistently finds the same path for a given start, goal nodes Test expects path computed are the same. More... | |
Implementation of unit test for AStarAlgorithm.
This file contains implementation of unit test for AStartAlgorithm
| TEST | ( | testCreateMap1 | , |
| handleCreateMapError | |||
| ) |
Check createMap function error handling by passing a non-existing input map path
Test expects FALSE as map should NOT be created successfully.
| none |
| TEST | ( | testCreateMap2 | , |
| handleCreateMap | |||
| ) |
Check createMap function by passing test map
Test expects TRUE as map should be created successfully.
| none |
| TEST | ( | testSetParam1 | , |
| handleSetParam | |||
| ) |
Check setParam function by setting feasible start, goal indices
Test expects TRUE as start and goal are within map and are not obstacle nodes.
| none |
| TEST | ( | testSetParam2 | , |
| handleError | |||
| ) |
Check error handling of setParam by setting start, goal indices to out of bound or obstacle nodes
Test expects FALSE return.
| none |
| TEST | ( | testPath1 | , |
| computePathShouldPass | |||
| ) |
Check computePath function a given start, goal nodes that has a feasible path
Test expects TRUE as there should be a feasible path.
| none |
| TEST | ( | testPath2 | , |
| computePathShouldPass | |||
| ) |
Check computePath function can find path for setting start to goal node
Test expects TRUE.
| none |
| TEST | ( | testCorrectness | , |
| computeCostShouldMatch | |||
| ) |
Check computePath function computes shortest path by comparing cost result to Dijkstra's result
Test expects Astar and Dijkstra's computes the same cost for shortest path.
| none |
| TEST | ( | testCompleteness | , |
| handleUnreachableGoal | |||
| ) |
Check computePath returns fail for a given start and goal nodes which do not have a feasible path
Test expects FALSE as there is no feasible path.
| none |
| TEST | ( | testRobostness | , |
| computePathShouldBeRobost | |||
| ) |
Check computePath consistently finds the same path for a given start, goal nodes
Test expects path computed are the same.
| none |


| 4 | | The Trac browser can be used to browse directories, change logs |
| 5 | | and specific revisions of files stored in a subversion repository. |
| | 4 | The Trac repository browser can be used to browse specific revisions of directories |
| | 5 | and files stored in the repositories associated with the Trac environment. |
| | 6 | |
| | 7 | ''(since 0.12)'': |
| | 8 | At the top-level of the repository browser is the '''Repository Index''', |
| | 9 | listing all the configured repositories. |
| | 10 | Each repository has a name which is used as a path prefix in a |
| | 11 | "virtual" file hierarchy encompassing all the available repositories. |
| | 12 | If a default repository has been configured, its top-level files and directories |
| | 13 | are also listed, in a '''Default Repository''' section placed before the |
| | 14 | repository index. If the default repository is the only repository associated |
| | 15 | with the Trac environment the '''Repository Index''' will be omitted ^[#note-multirepos (1)]^. |
| 13 | | by clicking on the directory names. Clicking on a file name will show |
| 14 | | the contents of the file. Clicking on the revision number of a file or |
| 15 | | directory will take you to the revision history for that file. |
| | 23 | by clicking on the directory names. |
| | 24 | Clicking on a file name will show the contents of the file. |
| | 25 | Clicking on the revision number of a file or directory will take |
| | 26 | you to the TracRevisionLog for that file. |
| | 27 | Note that there's also a ''Revision Log'' navigation link that will do the |
| | 28 | same for the path currently being examined. |
| | 29 | Clicking on the ''diff'' icon after revision number will display the changes made |
| | 30 | to the files modified in that revision. |
| | 31 | Clicking on the ''Age'' of the file - will take you to that changeset in the timeline. |
| 24 | | The browser module provided RSS feeds to monitor changes to a file or |
| 25 | | directory. To subscribe to an RSS feed for a file or directory, open its |
| 26 | | revision log in the browser and click the orange 'XML' icon at the bottom |
| 27 | | of the page. For more information on RSS support in Trac, see TracRss. |
| | 43 | At the top of the browser page, there's a ''Visit'' drop-down menu which you can use |
| | 44 | to select some interesting places in the repository, for example branches or tags. |
| | 45 | This is sometimes referred to as the ''browser quickjump'' facility. |
| | 46 | The precise meaning and content of this menu depends on your repository backend. |
| | 47 | For Subversion, this list contains by default the top-level trunk directory |
| | 48 | and sub-directories of the top-level branches and tags directories |
| | 49 | (`/trunk`, `/branches/*`, and `/tags/*`). This can be [TracIni#svn-section configured] |
| | 50 | for more advanced cases. |
| | 51 | |
| | 52 | If you're using a Javascript enabled browser, you'll be able to expand and |
| | 53 | collapse directories in-place by clicking on the arrow head at the right side of a |
| | 54 | directory. Alternatively, the [trac:TracKeys keyboard] can also be used for this: |
| | 55 | - use `'j'` and `'k'` to select the next or previous entry, starting with the first |
| | 56 | - `'o'` (open) to toggle between expanded and collapsed state of the selected |
| | 57 | directory or for visiting the selected file |
| | 58 | - `'v'` (view, visit) and `'<Enter>'`, same as above |
| | 59 | - `'r'` can be used to force the reload of an already expanded directory |
| | 60 | - `'A'` can be used to directly visit a file in annotate (blame) mode |
| | 61 | - `'L'` to view the log for the selected entry |
| | 62 | If no row has been selected using `'j'` or `'k'` these keys will operate on the entry under the mouse . |
| | 63 | |
| | 64 | {{{#!comment |
| | 65 | MMM: I guess that some keys are upper case and some lower to avoid conflicts with browser defined keys. |
| | 66 | I find for example in Firefox and IE on windows that 'a' works as well as 'A' but 'l' does not work for 'L'. |
| | 67 | cboos: 'l' is reserved for Vim like behavior, see #7867 |
| | 68 | }}} |
| | 69 | |
| | 70 | For the Subversion backend, some advanced additional features are available: |
| | 71 | - The `svn:needs-lock` property will be displayed |
| | 72 | - Support for the `svn:mergeinfo` property showing the merged and eligible information |
| | 73 | - Support for browsing the `svn:externals` property |
| | 74 | (which can be [TracIni#svn:externals-section configured]) |
| | 75 | - The `svn:mime-type` property is used to select the syntax highlighter for rendering |
| | 76 | the file. For example, setting `svn:mime-type` to `text/html` will ensure the file is |
| | 77 | highlighted as HTML, regardless of the file extension. It also allows selecting the character |
| | 78 | encoding used in the file content. For example, if the file content is encoded in UTF-8, |
| | 79 | set `svn:mime-type` to `text/html;charset=utf-8`. The `charset=` specification overrides the |
| | 80 | default encoding defined in the `default_charset` option of the `[trac]` section |
| | 81 | of [TracIni#trac-section trac.ini]. |
| | 82 | {{{#!comment |
| | 83 | MMM: I found this section a bit hard to understand. I changed the first item as I understood that well. |
| | 84 | but I think the other items could be changed also |
| | 85 | cboos: in the meantime, I've added the ''advanced'' word as a hint this can be a bit complex... |
| | 86 | }}} |
| | 87 | |


I am specialized in UX Research and Design. Currently based in Ottawa, I am designing the future of collaboration tools at Mitel. When not designing, I enjoy making art and reading.
UX Research | Accessibility
How might we improve the accessibility of the museum for people with Autism?
UX Design | UX Research
How might digital augmentation change the experience of playing a traditional game?
UX Research | UX Design
How might we design the experience of scheduling and organising meetings?
Improving the Accessibility of the Canada Science and Technology Museum for People with Autism in CHI 2020, Honolulu, Hawaiʻi, USA [Accepted].
Re-twist: Evaluating the effect of digital augmentation on a traditional game in TEI 2019, Tempe, AR, USA [Publication].
BendSwipe: One-handed target zooming for a flexible handheld device in Interact 2017, Mumbai, India [Publication].
2nd Runner Up at 3 Minute Thesis Competition at Carleton University, 2019 [Full Story]
Breakthrough Breakfast with Carleton Women Researchers, Ottawa, March 2019 [Event Page]
HCI Student Showcase, CapCHI, Computer Human Interaction in the National Capital of Canada, Ottawa, March 2018 [Event Page]
The ACM Canadian Celebration of Women in Computing, Montreal, November 2017 [Poster].
The Digit published in Architizer, Archdaily, and DesignBoom


The Akan people of Ghana frequently name their children after the day of the week they were born and the order in which they were born. These "day names" have further meanings concerning the soul and character of the person. Middle names have considerably more variety and can refer to their birth order, twin status, or an ancestor's middle name.
Fill the form to know your "akan name".


Agenda
- Version Control
- Git & Github
- Installation
- Reading
- Modifying
- External Links
Version Control
Vesrion Control (aka Source Control, Revision Control) let's you track your files over time
Version contol is like having a giant Undo button for your project
It makes it easy to save versions of your files at different points in time
you can also restore previous versions and compare different versions
it also makes it a lot easier to collaborate with other people (No more .zip files)
Version Control examples: CVS (Concurrent Version Systems) , SVN (Subversion), Mercurial (hg) and Git
Handling files without Version Control?
A Good VCS does the following
- Backup and Restore.
- Synchronization.
- Short-term undo.
- Long-term undo.
- Track Changes.
- Track Ownership.
- Sandboxing
- Branching and merging.
Git
Git: version control system
Developed by Linus Torvalds
Git allows users to save checkpoints when they choose, making it more convenient to save checkpoint per logical change
Git Repository
When you work on a project, you'll often have multiple files that you want to track together.
Git calls such a collection of files a repository.
Git clone
Git has a command allowing you to copy an entire repository from one computer to another
The command is called git clone because it creates a clone of the repository.
Git can work offline, so after cloning a repository, you don't actually need an internet connection
Git Commits
Git allows user to create checkpoints of the code/files manually
Git's system makes it much more likely that each individual version represent a logical change.
In Git terminology, these user-created checkpoints are called commits.
Commits are the basic building blocks of Git, each one representing a version of the content at one point in time.
A commit is a snapshot of every file in your repository at the time you choose to make the commit.
So for example, this is the fourth commit in a repository in which you have files a, b, and c
If you've only changed file a in this fourth commit, then files b and c will be identical between commits 4 and 3
Git requires the user to supply commit message each time a commit is created.
This makes looking through old versions much more useful, assuming that the user supplied a useful commit message.

ID is sort of like a serial number.
gives some statistics about which files have changed in each commit.
Git Diff
git diff can compare different versions of a file within git
use git diff to see the difference between these two commits.
Git Checkout
we can also temporarily change our files back to how they were at the time of any commit.

One reason to do a checkout might be, if a bug was introduced, but you're not sure which commit introduced it.
Git Diff
git diff command also can be used to see changes made to file(s) in the repositorty
calling git diff directly shows all the changes made to all files
It can also be called with one or more files as argument, to show only changes made to passed file(s)
Git Add
Used to to add whatever files from repository in order to include them in the next commit
It is passed file(s) to add them
use git add . to add all changed files
Adding Commit
To add commit, use git add command
This will open an editor to write your commit message in it
use git log to view your last commit
A little of details
Git has three Stages: working directory, staging area, and the git directory
The Git directory (aka repositroy) is where Git stores the metadata and object database for your project.
This is the most important part of Git, and it is what is copied when you clone a repository from another computer.
The working tree is a single checkout of one version of the project. These files are pulled out of the compressed database in the Git directory and placed on disk for you to use or modify.
The staging area is a file, generally contained in your Git directory, that stores information about what will go into your next commit. It’s sometimes referred to as the “index”, but it’s also common to refer to it as the staging area.
This chart describes the relation between the three stages.
Undoing Changes
undoing changes in Git uses several commands, dependent on the stage the changes to undo resides:
Branches
Git stores a branch as a reference to a commit.
Branches are just a pointers or labels to commits
Collaboration: Github
Github: a code sharing and collaboration platform
Platforms like Github and Bitbucket are used to share and collaborate git repositories
Pull Requests
A feature that makes it easier for developers to collaborate
Supported by Github and Bitbucket
They provide a user-friendly web interface for discussing proposed changes before integrating them into the official project.

You can either run this in an empty directory and create files later or create the repository in a directory that already contains files.
Git by default does not add any files in the tracked folder
This is because you might not want to commit everything in the directory, and
Another reason may be that you wouldn't be able to write your own commit message if Git created the commit for you.


@@include('../layouts/head.html', {
"title": "HTML Boilerplate"
})
@@include('../layouts/styles.html')
@@include('../layouts/header.html')
@@include('../partials/banner.html')
@@include('../partials/aboutus.html')
@@include('../partials/choose-aboutus.html')
@@include('../partials/recentwork.html')
@@include('../partials/ournew.html')
@@include('../partials/person.html')
@@include('../partials/ourteam.html')
@@include('../partials/parallax.html')
@@include('../partials/pricingtable.html')
@@include('../layouts/footer.html')
@@include('../partials/footer-bottom.html')
@@include('../layouts/scripts.html')


Ptolemy under Windows NT
Local documentation
- Ptolemy NT Overview
- Ptolemy NT Hints
- Ptolemy NT Bugs
- Ptolemy NT Installation
Remote documentation
Copyright © 1997-1999, The Regents of the University of California.
All rights reserved.
Last updated: 10/07/99,
comments to: cxh@eecs.berkeley.edu


文本输入框
Option one is this and that—be sure to include why it's great
Option two is disabled
Option one is this and that—be sure to include why it's great
Option two can be something else and selecting it will deselect option one
Option three is disabled
1
2
3
1
2
3
用户名:
密 码:
Input with success
Input with warning
Input with error
Checkbox with success
Checkbox with warning
Checkbox with error