Equivalent to clicking the Delete Mailer command on the Mail submenu of the File menu. Deletes an existing mailer from the active workbook.
Note This function is available on Macintosh computers with Microsoft Excel and Apple PowerTalk only.
Syntax
MAIL.DELETE.MAILER( )
Remarks
If there is no mailer, returns the #VALUE! error value.
Related Function
MAIL.ADD.MAILER Adds a new PowerTalk mailer to the active workbook
Return to index


Intro text about the work in this market segment. Donec ullamcorper nulla non metus auctor fringilla. Curabitur blandit tempus porttitor.
This is an into paragraph.


Dr. Stephen Struble, MD.
Total Joint Care, Cary, NC
www.totaljointcare.net
919.277.0427
Cary Orthopaedics
www.caryortho.com
919.467.4992
Hands On Health, Medical Massage Therapy
www.handsonhealthnc.com
Raleigh Office<PHONE_NUMBER>
Cary Office<PHONE_NUMBER>
Rapid Recover Sports Massage:
<EMAIL_ADDRESS>Cary Office<PHONE_NUMBER>
Stanley Dentistry, Dr. Bobbi Stanley
www.stanleysmiles.com
919.460.9665
Dr. Yount, DDS, Diplomate, American Board of Orofacial Pain
www.raleighfacialpain.com
919.781.6600
Dr. Hong Chen, DDS, Diplomate, American Board of Orofacial Pain
UNC School of Dentistry
919.537.3292
<EMAIL_ADDRESS>Staker Chiropractic Center
Todd Staker, DC, Ben Schemmel, DC
www.stakerchiropractic.com
919.460.1515
Dr. Sheryll Daniel, PhD, Psychology and Clinical Psychology
www.fppa.com
919.233.4131
Triangle Pilates and Yoga
www.trianglepilates.com
919.466.9989
Meridian Acupuncture of Cary
Karen Valesquez
www.meridianacupunctureofcary.com
919.291.4786
“I have been going to TBR for a couple of months now and I am so pleased with the care I have received from Mary Beth Klemm. I am 41 years old and have never needed physical therapy until this year when I was in a car accident. At first, I went to a different physical therapy facility to begin my treatment. After 2 months of therapy there, I was not improving, and in some ways, feeling worse. Then my doctor recommended I try Total Body Rehab and what a difference! The time, attention, and effort that she put into my recovery was 100%. After just several visits, I could already notice an improvement with my pain. I have now had successful completion to my treatments and I am so thrilled with the care that Mary Beth, as well as her office staff, has shown me. TBR is as wonderful as my doctor told me, and I would whole-heartedly recommend her to anyone who is in need of physical therapy!” - Cheryl P.


Outcome Class¶
This chapter will examine the Outcome
class, and its
suitability for the game of Craps. We’ll present some additional code
samples to show a way to handle the different kinds of constructors that
this class will need.
We’ll start with Outcome Analysis to examine the different kinds of outcomes that are part of craps. This will lead us to some additional features, specifically More Complex Odds and Commission Payments.
In Fractional Odds Design we’ll look at a way to design a more sophisticated set of odds. This will include Optional Parameter Implementation Technique to show ways to handle the optional denominator, or denominator with a default value of 1.
In Outcome Rework we’ll revise the previous version Outcome
to handle Craps odds. We’ll enumerate the deliverables in Outcome Deliverables.
Outcome Analysis¶
For the game of Craps, we have to be careful to disentangle the random events
produced by the Dice
objects and the outcomes on which a Player
instance
creates a Bet
instance. In Roulette, this relationship was simple: a
Bin
object was a container of Outcome
instances; a player’s Bet
object
referred to one of these Outcome
instances.
In Craps, however, we have one-roll outcomes, hardways outcomes, plus outcomes that aren’t resolved until the end of the game. What are the varieties of outcomes possible in Craps?
There is a rich variety of bet Outcome
instances. We’ll itemize
them so that we can confirm the responsibilities for this class.
The Line Bets.  These outcomes have fixed odds of .
The Hardways Bets. These are bets on 4, 6, 8 and 10 “the hard way”. These outcomes also have fixed odds which depend on the number.
The Propositions. All of these have fixed odds. These are most like the original
Outcome
used for Roulette.The Come-point Bets. These are the numbers 4, 5, 6, 8, 9 and 10. Each of these has fixed odds. Also, the initial line bet is moved to a point number from the Come Line bet, based on the number shown on the dice. We’ll examine these is some detail, below.
The Behind the Line Odds Bets. These have odds based on the point, not the outcome itself. We’ll have to look at these more closely, also.
The Placed Number Bets. These have odds are based on the number placed. These outcomes have fixed odds. Once the bet is placed, these bets are resolved when the number is rolled or when a game-losing seven is rolled.
The Buy and Lay Bets. These require a commission payment, called a vigorish, when the bet is placed. The outcomes have simple, fixed odds. As with the placed number bets, these bets are resolved when the number is rolled or when a game-losing seven is rolled.
Looking more closely at the bets with payout odds that depend on the point rolled, we note that the Come Line (and Don’t Come) odds bets are moved to a specific number when that point is established. For example, the player places a Come bet, the dice roll is a 4; the come bet is moved into the box labeled “4”. Any additional odds bet is placed in this box, also.
This leaves us with the Pass Line and Don’t Pass Line odds bet, which
also depend on the point rolled. In this case, the bets are effectively
moved to a specific numbered box. In a casino, a large, white, “on”
token in placed in the box. The effect is that same as if the house had
moved all the Pass Line bets. The odds bet, while physically behind the
Pass Line, is effectively in the box identified by the point. Again, the
bet is moved from the 1:1 Pass Line to one of the six numbered boxes;
any odds bet that is added will be on a single Outcome
instance with
fixed odds.
In this case, the existing Outcome
class still serves many
of our needs. Looking forward, we will have to rework the Bet
class
to provide a method that will change to a different Outcome
class.
This will move a line bets to one of the six numbered point boxes.
More Complex Odds¶
There are two additional responsibilities that we will need in the Outcome
class: more complex odds and a house commission. In Roulette, all odds
were stated as , and our winAmount()
depended on that. In craps, many of the odds have non-unit denominators.
Example odds include , , , and .
In a casino, the bets are multiples of $5, $6 or $10 to accommodate the fractions.
In our simulation, we are faced with two choices for managing these more complex odds: exact fractions or approximate floating-point values.
We suggest using Python’s fractions
module. We can replace the
odds with a fractions.Fraction
object. We would use something
like Outcome("Something", Fraction(2,1))
for odds.
We’ll look at the design alternatives in the Fractional Odds Design section.
Commission Payments¶
The second extension we have to consider is for the bets which have a commission when they are created: buy bets and lay bets. The buy bet involves an extra 5% placed with the bet: the player puts down $21, a $20 bet and a $1 commission. A lay bet, which is a wrong bet, involves a risk of a large amount of money against a small win, and the commission is based on the potential winning. For a 2:3 wrong bet, the commission is 5% of the outcome; the player puts down $31 to win $20 if the point is not made.
In both buy and lay cases, the player sees a price to
create a bet of a given amount. Indeed, this generalizes nicely to all
other bets. Most bets are simple and the price is the amount of the bet.
For buy bets, however, the price is 5% of the amount of the bet; for lay
bets, the price is 5% of the possible payout. The open question is the
proper allocation of responsibility for this price. Is the price related
to the Outcome
class or the Bet
class?
When we look at the buy and lay bets, we see that they are based on
existing point number Outcome
instances and share the same odds.
However, there are three very different ways create a Bet
on one of these point number Outcome
instances:
a bet on the Pass Line (or Don’t Pass Line),
a bet on the Come Line (or Don’t Come Line), and
a buy (or lay) bet on the number.
When we bet via the Pass Line or Come Line,
the Line bet was moved to the point number, and the odds bet
follows the Line bet. For this reason, the price is a feature of
creating the Bet
instance. Therefore, we’ll consider the commission
as the price of creating a bet and defer it to the Bet
class design.
We observe that the slight error in the Line bet odds is the house’s edge on the Line bet. When we put an odds bet behind the line, the more correct odds dilutes this edge. When we buy a number, on the other hand, the odds are correct and the house takes the 5% commission directly instead of through improper odds. Either approach means the house always wins.
Fractional Odds Design¶
In Roulette, all outcomes paid a multiple of the bet. For example, the
“Dozen 1-12” outcome paid . We used a simple int
value to show
the multiplier.
In Craps, outcomes have more complex payouts. We might see a payout
of . We can’t use a simple int
value.
Problem. How do we represent more complex odds?
Forces. We have several choices.
Use a
float
value. This replaces exact integer values with floating-point approximations. There’s little compelling reason for this. It can lead to displaying values that look like 3.999999999999997 instead of 4.Explicit numerator and denominator. The original design for outcome had an assumed denominator of
1
. It’s a small change to introduce an explicit denominator value with a default of1
.Use
fractions.Fraction
. This requires very little change. TheFraction
class works seamlessly with integer values, allowing us to use this with little change.
Solution. Fractions are easy to use and provide pleasant results.
Optional Parameter Implementation Technique¶
A common technique that helps to add features is to add optional parameters to a method. An optional parameter has a default value.
There’s a common confusion that can arise when using a mutable value as a default. We’ll show the immutable example first. Then we’ll show what happens when a mutable object is used.
An instance of one of the Python mutable types (lists, sets, maps) should not be provided as default values for an initializer. This is because the single initialization object – created when the class is defined – will be shared by all instances created with the default value.
class BadIdea:
def __init__(self, reqArg: Any, optList: List[Any]=[]) -> None:
initialize using reqArg and optList
We can easily create many instances of BadIdea
. All of the objects
can share the single, default list object in the method definition.
Python doesn’t create a new empty list; it reuses the one list
that’s part of the definition.
To avoid this undesirable sharing of an instance of the default value, we have to do the following.
class SomeClass:
def __init__(self, reqArg: Any, optList: Optional[List[Any]]=None) -> None:
if optList is not None:
initialize using reqArg and optList
else:
default initialization reqArg and a fresh, empty []
In this case, we’ve used an immutable None
as an indicator
that we should create a fresh, empty, mutable list object.
In many cases, we can optimize the initialization like this.
class SomeClass:
def __init__(self, reqArg: Any, optList: Optional[List[Any]]=None) -> None:
optList = optList or []
initialize using reqArg and optList
The or
operator performs “short-circuit” evaluation. If the left-hand operand
is a true-ish value, that’s the result. If the left-hand operand is falsish
(i.e., False
, 0
, ""
, None
,
[]
, {}
, or ()
) then the result is the right-hand
operand’s value.
This is a general way to add default and optional values to a
function. We can provide optional parameters of a mutable type a default
value of None
.
Outcome Rework¶
We won’t change the existing attributes. We will, however, change
the use of the odds
attribute from an integer to a
Fraction
.
Constructors¶
We have two ways to introduce fractional odds. One is to make the numerator and denominator explicit.
-
Outcome.
__init__
(name, numerator: int, denominator: int=1) → None¶ - Parameters
name (string) – The name of this outcome.
numerator (int) – the payout odds numerator
denominator (int) – the payout odds denominator
Sets the name and odds from the parameters. This method will create an appropriate
Fraction
from the given values.Example 1: 6:5 is a right bet, the player will win 6 for each 5 that is bet.
Example 2: 2:3 is a wrong bet, they player will win 2 for each 3 that is bet.
Here’s an alternative.
-
Outcome.
__init__
(self, name: str, odds: Union[fraction, int]) → None - Parameters
name (string) – The name of this outcome.
numerator (
fractions.Fraction
or int) – the payout odds numerator
Sets the name and odds from the parameters. This method will create an appropriate
fractions.Fraction
from the given values.If
isinstance(odds, int)
, create aFraction(odds, 1)
.If
isinstance(odds, Fraction)
, use the given object directly.
In earlier On Polymorphism we suggested – very strongly – that proper polymorphic class design made the
isinstance()
function unnecessary. It is required, however, in a few cases to distinguish among the built-in types likeint
andfractions.Fraction
.
Methods¶
-
Outcome.
winAmount
(self, amount: int) → Fraction¶ - Parameters
amount (int) – amount of the bet
Returns the product of this Outcome
object’s odds by the given amount.
The result can be a fractions.Fraction
object, which will work nicely.
Note that this change will lead to a ripply of changes as mypy tries to confirm that all bet-related processing properly uses fractions.
-
Outcome.
__str__
(self) → str¶
An easy-to-read string output method is also very handy. This should
return a str
representation of the name and the odds. A
form that looks like 1-2 Split (17:1)
is the goal.
This requires decomposing the odds into numerator and denominator.
Outcome Deliverables¶
There are three deliverables for this exercise.
The revised
Outcome
class that handles fractional odds and returns typeFraction
instances fromwinAmount()
.A class which performs a unit test of the
Outcome
class. The unit test should create a couple instances ofOutcome
, and establish that thewinAmount()
method works correctly.A revision to each subclass of
Player
to correctly implement the revised result fromwinAmount()
. Currently, there are six subclasses ofPlayer
:Passenger57
,SevenReds
,PlayerRandom
,Player1326
,PlayerCancellation
, andPlayerFibonacci
.


The UK’s First Ever Yorkshire Pudding Festival Launches Next Year
by Emma RosemurgeyIf you’re the type of person who strategically eats all your meat, veg and potatoes just to savour every last bite of your gravy-soaked Yorkshire pudding at the end of a roast, then I have some delicious news for you.
The ‘first ever’ Yorkshire pudding festival is coming to the UK, and you don’t even need to pay anything for the privilege.
Yorkie pudding lovers will unite at the Kirkgate Market in Leeds City Centre on February 1, 2020, to sample and buy from a delicious assortment of the batter-based delicacies.
One of the kitchens taking part in the eagerly anticipated festival is Kang’s Punjabi Box, who will be stuffing their puddings with authentic spice-laced Indian cuisine.

Meanwhile, the Nan’s Van & Kitchen will be dishing out fresh, fluffy Yorkshires from its 1970s converted Rice horse box.
Although the festival is free to attend, visitors will be able to purchase their Yorkshire pudding goodies from local and family businesses as well as independent food producers, meaning a cheeky visit will certainly be worth your while.
As per the festival’s Eventbrite description:
The festival will host a range of food vendors creating their take on the humble Yorkshire Pudding, mixing, stuffing and smothering them with a delicious array of home cooked dishes from around the world.
It is fittingly described as a ‘celebration’ of Yorkshire puddings, which is only fair for what they call ‘an essential part of the nation’s roast dinners’. You’re not wrong, you are not bloody wrong.
You can make your way down any time between 10am and 4pm.
Meanwhile, like I mentioned earlier, a restaurant has created a roast dinner pizza, complete with Yorkshire puddings and all the trimmings.
Zerodegrees brewery and restaurant created the personalised pizza, which comes with a topping of either chicken, lamb or pork, alongside a Yorkshire pudding, broccoli, roast potatoes and parsnips, topped with mint, apple or horseradish sauce and a boat of gravy on the side.
The almighty dish, for which the jury is most certainly still out, comes to around 700 calories, meaning you’d better be feeling hungry if you want to polish the whole thing off. After all, it is basically two different dishes all in one.
According to Zerodegrees brewery, the 23-inch pizza is currently only being served on Sundays and is the only roast dinner item on the menu, so they say it’s perfect for people who are trying to mix up their usual weekend tradition.
If you fancy having a go for yourself to find out what all the fuss is about, the twist on the classic is available at Zerodegrees restaurants in Bristol, Blackheath, Reading and Cardiff, and costs less than £15.
Emma Rosemurgey is an NCTJ trained Journalist who started her career by producing The Royal Rosemurgey newspaper in 2004, which kept her family up to date with the goings on of her sleepy north east village. She graduated from the University of Central Lancashire in Preston and started her career in regional newspapers before joining Tyla (formerly Pretty 52) in 2017, and progressing onto UNILAD in 2019.


Last updated: 2020-01-15
Checks: 6 0
Knit directory: hgen471/
This reproducible R Markdown analysis was created with workflowr (version 1.3.0). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
The command set.seed(20200105)
was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.
Great job! Recording the operating system, R version, and package versions is critical for reproducibility.
Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.
Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility. The version displayed above was the version of the Git repository at the time these results were generated.
Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish
or wflow_git_commit
). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
Ignored files:
Ignored: .DS_Store
Ignored: .Rhistory
Ignored: .Rproj.user/
Ignored: docs/.DS_Store
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
These are the previous versions of the R Markdown and HTML files. If you’ve configured a remote Git repository (see ?wflow_git_remote
), click on the hyperlinks in the table below to view them.
| File | Version | Author | Date | Message |
|---|---|---|---|---|
| html | 63bbad7 | Hae Kyung Im | 2020-01-15 | Build site. |
| Rmd | ed556cf | Hae Kyung Im | 2020-01-15 | wflow_publish(all = TRUE) |
| html | ed556cf | Hae Kyung Im | 2020-01-15 | wflow_publish(all = TRUE) |
| Rmd | e4490eb | hakyimlab | 2020-01-14 | winners |
| html | e4490eb | hakyimlab | 2020-01-14 | winners |
| Rmd | b5bd1ad | hakyimlab | 2020-01-14 | winners |
| html | b5bd1ad | hakyimlab | 2020-01-14 | winners |
| html | 0734fad | hakyimlab | 2020-01-14 | null p winners curse |
| Rmd | 0c53a5b | hakyimlab | 2020-01-14 | null p winners curse |
| html | 0c53a5b | hakyimlab | 2020-01-14 | null p winners curse |
library(tidyverse)
Registered S3 methods overwritten by 'ggplot2':
method from
[.quosures rlang
c.quosures rlang
print.quosures rlang
── Attaching packages ────────────────────────────── tidyverse 1.2.1 ──
✔ ggplot2 3.1.1 ✔ purrr 0.3.2
✔ tibble 2.1.2 ✔ dplyr 0.8.1
✔ tidyr 0.8.3 ✔ stringr 1.4.0
✔ readr 1.3.1 ✔ forcats 0.4.0
── Conflicts ───────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
fastlm = function(xx,yy)
{
## compute betahat (regression coef) and pvalue with Ftest
## for now it does not take covariates
df1 = 2
df0 = 1
ind = !is.na(xx) & !is.na(yy)
xx = xx[ind]
yy = yy[ind]
n = sum(ind)
xbar = mean(xx)
ybar = mean(yy)
xx = xx - xbar
yy = yy - ybar
SXX = sum( xx^2 )
SYY = sum( yy^2 )
SXY = sum( xx * yy )
betahat = SXY / SXX
RSS1 = sum( ( yy - xx * betahat )^2 )
RSS0 = SYY
fstat = ( ( RSS0 - RSS1 ) / ( df1 - df0 ) ) / ( RSS1 / ( n - df1 ) )
pval = 1 - pf(fstat, df1 = ( df1 - df0 ), df2 = ( n - df1 ))
res = list(betahat = betahat, pval = pval)
return(res)
}
## pvalue vs uniform
qqunif =
function(p,BH=T,CI=T,...)
{
p=na.omit(p)
nn = length(p)
xx = -log10((1:nn)/(nn+1))
plot( xx, -sort(log10(p)),
xlab=expression(Expected~~-log[10](italic(p))),
ylab=expression(Observed~~-log[10](italic(p))),
cex.lab=1.4,mgp=c(2,1,0),
... )
abline(0,1,col='gray')
if(BH)
{
abline(-log10(0.05),1, col='red',lty=1)
abline(-log10(0.10),1, col='orange',lty=2)
abline(-log10(0.25),1, col='yellow',lty=3)
legend('bottomright', c("FDR = 0.05","FDR = 0.10","FDR = 0.25"),
col=c('red','orange','yellow'),lty=1:3, cex=1)
abline(h=-log10(0.05/nn)) ## bonferroni
}
if(CI)
{
## create the confidence intervals
c95 <- rep(0,nn)
c05 <- rep(0,nn)
## the jth order statistic from a
## uniform(0,1) sample
## has a beta(j,n-j+1) distribution
## (Casella & Berger, 2002,
## 2nd edition, pg 230, Duxbury)
## this portion was posted by anonymous on
## http://gettinggeneticsdone.blogspot.com/2009/11/qq-plots-of-p-values-in-r-using-ggplot2.html
for(i in 1:nn)
{
c95[i] <- qbeta(0.95,i,nn-i+1)
c05[i] <- qbeta(0.05,i,nn-i+1)
}
lines(xx,-log10(c95),col='gray')
lines(xx,-log10(c05),col='gray')
}
}
alpha = 0.05
Patleastonemistake = function(m) {1 - (1-alpha)^m}
curve(Patleastonemistake,from = 1, to=100, ylab="Prob at least one wrong", xlab="m = number of tests")
grid()
abline(h=1,col='gray')
nsnp = 1000000
nsam = 1000
maf = 0.30
## to simplify, we use the same maf for all SNPs in the GWAS
simGWASnull = function(nsnp,nsam,maf)
{
Xfather = matrix( rbinom(nsam * nsnp,1,maf), nsam, nsnp )
Xmother = matrix( rbinom(nsam * nsnp,1,maf), nsam, nsnp )
Xboth = Xfather+ Xmother
Y = matrix( rnorm(nsam))
return(list(Y=Y, Xmat=Xboth))
}
simu = simGWASnull(nsnp, nsam, maf)
pvec = rep(NA,nsnp)
bvec = rep(NA,nsnp)
for(ss in 1:nsnp)
{
fit = fastlm(simu$X[,ss], simu$Y)
pvec[ss] = fit$pval
bvec[ss] = fit$betahat
}
hist(pvec,xlab="p-value",main="Histogram of p-values under Null")
| Version | Author | Date |
|---|---|---|
| 63bbad7 | Hae Kyung Im | 2020-01-15 |
ind = which( pvec == min(pvec) )
boxplot(simu$Y ~ simu$X[,ind])
points(jitter(simu$X[,ind]), simu$Y, type="p")
| Version | Author | Date |
|---|---|---|
| 63bbad7 | Hae Kyung Im | 2020-01-15 |
ind = which(pvec < 0.01)
df = tibble(effect = c(bvec[ind],bvec), type = c(rep("signif",length(ind)),rep("all",length(bvec)) ) )
ggplot(df, aes(abs(effect), fill=type)) + geom_density(alpha = 0.6, color=NA) + theme_bw(base_size = 15) + ggtitle("Winner's curse")
| Version | Author | Date |
|---|---|---|
| 63bbad7 | Hae Kyung Im | 2020-01-15 |
sessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.6
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] forcats_0.4.0 stringr_1.4.0 dplyr_0.8.1 purrr_0.3.2
[5] readr_1.3.1 tidyr_0.8.3 tibble_2.1.2 ggplot2_3.1.1
[9] tidyverse_1.2.1
loaded via a namespace (and not attached):
[1] Rcpp_1.0.2 cellranger_1.1.0 plyr_1.8.4 pillar_1.4.1
[5] compiler_3.6.0 git2r_0.25.2 workflowr_1.3.0 tools_3.6.0
[9] digest_0.6.19 lubridate_1.7.4 jsonlite_1.6 evaluate_0.14
[13] nlme_3.1-139 gtable_0.3.0 lattice_0.20-38 pkgconfig_2.0.2
[17] rlang_0.4.1 cli_1.1.0 rstudioapi_0.10 yaml_2.2.0
[21] haven_2.1.0 xfun_0.7 withr_2.1.2 xml2_1.2.0
[25] httr_1.4.0 knitr_1.23 hms_0.4.2 generics_0.0.2
[29] fs_1.3.1 rprojroot_1.3-2 grid_3.6.0 tidyselect_0.2.5
[33] glue_1.3.1 R6_2.4.0 readxl_1.3.1 rmarkdown_1.13
[37] modelr_0.1.4 magrittr_1.5 whisker_0.3-2 backports_1.1.4
[41] scales_1.0.0 htmltools_0.4.0 rvest_0.3.4 assertthat_0.2.1
[45] colorspace_1.4-1 labeling_0.3 stringi_1.4.3 lazyeval_0.2.2
[49] munsell_0.5.0 broom_0.5.2 crayon_1.3.4


Man dies after taking part in Mayo adventure race
A MAN in his fifties has died after taking part in an adventure race in Westport today.
He became unwell shortly after the event and received emergency medical assistance before his death.
His body has been removed to Mayo University Hospital for a post-mortem examination.
No other details are available at this time.


Getting started
It’s very easy to get started with Fannypack. Just include a link to our css file in your <head>
and your good to go.
<link rel="stylesheet" href="https://fannypack.persgroep.net/css/fannypack.css" />
Next: start implementing the html.
Where is feature X or Module Y?
Our goal is to keep Fannypack lightweight so we keep it to the basic modules. If you need something feel free to submit pull requests or report any bugs in our Github repo.
Where’s the Javascript
We are developing a separate JS package known as Buckle. More info coming soon.


Enabling Icons
To make DIScover icons available, you must install DIScover fonts for Developer Xpress by setting the following path:
xset fp default
xset fp+ <CodeIntegrityInstalldir>/lib/fonts/(platform_name)


You now have access to FIFA 21 and the full library of EA Play games. Explore the catalog, download your favorites, and play your heart out.
Membership Details
If you do not have the EA Desktop App installed, check out that email we just sent you and follow the instrutions so you can start enjoying your new EA Play Pro membership.
You now have access to FIFA 21 and the full library of EA Play games. Explore the catalog, download your favorites, and play your heart out.
Membership Details
If you do not have the EA Desktop App installed, check out that email we just sent you and follow the instrutions so you can start enjoying your new EA Play Pro membership.
You now have unlimited access to FIFA 21 and the full library of EA Play Pro games. Explore the catalog, download your favorites, and play your heart out.
Membership Details
If you do not have the EA Desktop App installed, check out that email we just sent you and follow the instrutions so you can start enjoying your new EA Play Pro membership.
You now have unlimited access to FIFA 21 and the full library of EA Play Pro games. Explore the catalog, download your favorites, and play your heart out.
Membership Details
If you do not have the EA Desktop App installed, check out that email we just sent you and follow the instrutions so you can start enjoying your new EA Play Pro membership.
FIFA 21 Standard Edition
is all yours!
If you do not have the EA Desktop App installed, check out that email we just sent you and follow the instrutions so you can start enjoying your new game.
FIFA 21 Champions Edition
is all yours!
If you do not have the EA Desktop App installed, check out that email we just sent you and follow the instrutions so you can start enjoying your new game.
FIFA 21 Ultimate Edition
is all yours!
If you do not have the EA Desktop App installed, check out that email we just sent you and follow the instrutions so you can start enjoying your new game.


--- layout: post esbma_id: 1761 title: DVCS and DAGs, Part 1 date: 2009-03-02 16:10:25 ---
There are two kinds of people:
I am one of the former. :-)
There are two kinds of version control tools:
Traditional tools (like Subversion and Vault) tend to model history as a Line. In the DVCS tools (like Git and Mercurial), history is a DAG. The differences between these two models are rather interesting.
The Line model is tried and true. History is a sequence of versions, one after the other.
To create a new version:
People like the Line model for its simplicity. It provides an unambiguous answer to the question of which version is latest.
But the Line model has one big problem: You can only checkin a new version if it was based on the latest version. And this kind of thing happens a lot:
The Line model of history won't allow me to create version 5 as shown in the picture. Instead, a Line model SCM tool will require me to take the changes which were made between version 3 and 4 and apply them to my version. This operation is usually called a "merge". The result is that my baseline gets changed from 3 to 4, thus allowing me to checkin. This model is explained in chapter 2 of my SourceControl HOWTO as "edit-merge-commit".
The obvious question is: What would happen if we allowed 5 to be checked in with 3 as its baseline? Our history would no longer be a Line. Instead it would be a DAG.
And why would we do this?
The major feature of the DAG model for history is that it doesn't interrupt the developer at the moment they are trying to commit their work. In this fashion, the DAG is probably a more pure representation of what happens in a team practicing concurrent development. Version 5 was in fact based on version 3, so why not just represent that fact?
Well, it turns out there is a darn good reason why not. In the DAG above, we don't know which version is "the latest". This causes all kinds of problems:
Yep, this is a bad scene. Civilization as we know it will probably just shut down.
In order to avoid dogs and cats living together with mass hysteria, the tools that use a DAG model of history provide a way to resolve the mess. The answer is the same as it is with Line history. We need a merge. But instead of requiring the developer to merge before they commit, we allow that merge to happen later.
Somebody needs to construct a version which contains all the changes in both version 4 and version 5. When this version gets committed, it will have arrows pointing to both of its "parents".
Order has been restored. Once again we know which version is "the latest". If somebody will remember to reboot the project manager, he will probably realize that this DAG looks almost like a Line. Except for that weird stuff happening between version 3 and 6, it is a Line. Best not to lose sleep over it.
What this project manager doesn't know is that this particular crisis was minor. He thinks that his paradigm has been completely challenged, but one day he's going to come into his office and find this:
&@#$!
Now what?
If you're living in the Line model paradigm, this DAG is an absolute disaster. It has FOUR leaf nodes. Everything that needs to know which version is latest is about to completely fall apart, including the aforementioned product manager who is probably now in his office curled up in a fetal position and hoping that Mommy includes cookies with his SpaghettiOs at lunch.
The Line model is looking pretty good right now. There's a good reason why 99.44% of developers are using an SCM tool built on the Line model of history. (Yes, I made that statistic up.)
And yet, despite all this apparent chaos, we should remind ourselves of the primary benefit of the DAG model: It more accurately describes the way developers work. It doesn't make developers bend to its will like the Line model does. When a developer wants to check something in, he does, and the DAG merely records what happened.
Many teams will always prefer the Line model, and there's nothing wrong with that. Life is simpler that way.
But for some other teams, the DAG model can be really valuable.
And for other teams, the DAG model might be coming along simply because they want to use a DVCS tool for other reasons. DVCS tools use a DAG because they have to. If we can't assume a live connection to a central server, there isn't any way to force developers to make everything fit into the Line model.
So we need to figure out ways of coping with the DAG. How do we do this?
One way is to reframe every operation. If you tell a doctor that "it hurts when I need to know which version is latest", the doctor will tell you to "stop doing that". Instead, always specify exactly which node to use:
I'm not saying this approach is practical. I am merely observing that it is conceptually valid. As long as you're willing to specify which node you want to use, any operation that needs a node can proceed.
But how do we specify a node? One thing that makes this approach problematic is that these nodes tend to have odd names. For example, in Git, the name of a node is something like e69de29bb2d1d6434b8b29ae775ad8c2e48c5391. Developers are going to find this naming scheme to be a little unintuitive.
All DVCS tools use a DAG. And all these tools do various things to either prevent "the crisis of multiple leaf nodes" or to help the team cope with it. But they all seem to do it a little differently.
Happily, this presents me with an opportunity to divide them all into two groups:
This blog entry is already longer than I thought it would be, so I'm going to stop here and continue next week.


|
Coursework
Engineering and Computer Science
EE C220B: Experiential Advanced Control Design
EE 221a: Linear System Theory
EE 222: Nonlinear Systems: Analysis, Stability, and Control
ENG 231: Mathematical Methods in Engineering
ME 232: Advanced Control Systems I
ME 233: Advanced Control Systems II
CS C281A: Statistical Learning Theory
CS 289A: Introduction to Machine Learning
Mathematics and Statistics
MATH 170: Mathematical Methods for Optimization
MATH 204: Ordinary Differential Equations and Dynamical Systems
MATH 221: Advanced Matrix Computations (Numerical Linear Algebra)
MATH 228A: Numerical Solutions of Differential Equations
STAT 248: Analysis of Time Series (Audit)
STAT 260: Observational Study Design and Causal Inference (Audit)
Industrial Engineering and Operations Research
IEOR 165: Engineering Statistics, Quality Control, and Forecasting
IEOR 263A: Applied Stochastic Processes
|


How do you make a website convey humor without upstaging the performers that are to be highlighted? This was the task, when, in 2009 a website was requested by the Sunday Service. To answer, illustrated treatment was provided by Julia Sadler (now of Full-Time Part-Time Studio) created an animated world that complimented instead of competed with the performers.
Twitter feeds were pulled using v.1 (!) of the Twitter API.
Vimeo embeds were accommodated on post-specific video pages, and the group's podcast episodes were pulled similarly via iTunes.
The illustrated treatments turned into full-on branding for the group that is still in use today!
This was a really fun project. Even though the site has been retired, it has had a lasting impact on the group's visual identity.


Welcome to DCCN Registration System
For information about DCCN'2019 topics of interest, deadlines and registration fees please visit http://2019.dccn.ru
{#Sign In
Need an account?
About the Conference
The DCCN 2019 conference is a continuation of traditional, international DCCN series, which were held in Russia, Bulgaria, and Israel over the recent 20 years. The Conference will bring together researchers and developers from academia and industry across various countries working in the area of theory and applications of distributed computer and telecommunication networks, mathematical modeling, methods of control and optimization of distributed systems, by offering them a unique opportunity to share their views as well as discuss the perspective developments and pursue collaboration in this area.
The working languages of the Conference are Russian and English.
Conference Proceedings
Traditionally, the accepted and presented DCCN papers are published in the Conference Proceedings volume (included into the Russian Science Citation Index). The revised selected submissions in English, recommended by the Program Committee, also appear as a stand-alone volume of selected extended papers published by Springer (indexed in Scopus and Web of Science). Starting from 2013 the DCCN Revised Selected Papers are published by Springer on a regular basis.
Previous Events
#} {#Lorem ipsum dolor sit amet consectetur adipisicing elit. Eius cupiditate porro quasi, minus inventore eveniet reiciendis nobis provident, sapiente et libero molestias at natus cumque quas blanditiis perspiciatis deleniti ad sequi? Quis dolor aspernatur expedita numquam odio quibusdam esse sequi, explicabo, reiciendis sapiente quasi provident omnis doloremque consequuntur, sint corporis itaque eveniet! Autem vitae soluta nisi a qui dolorem earum laborum voluptatum voluptatem sequi perferendis reprehenderit distinctio, voluptatibus iusto ea blanditiis itaque, voluptates corporis! Debitis doloribus illum, soluta facilis asperiores modi magni mollitia amet exercitationem possimus dolore qui repellendus ut earum, consequuntur aspernatur inventore repudiandae voluptas incidunt facere quaerat assumenda!
#} {#


SAVOIR ${savoir.release.ver} Documentation References
Table of Contents
- Introduction
- Installation
- User Manuals
- License and Copyright Information
This page contains links to all the available documentation for SAVOIR ${savoir.release.ver}. The
documents are in several formats including
- HTML
- Microsoft Word
- Adobe Acrobat PDF
- Plain text
If a link does not point to an HTML file, the file format will be noted at the end of the link.
Unfortunately, since SAVOIR is essentially a prototype, the documentation is not quite complete.
However, it is hoped that the information presented here will be enough for most people to get
started.
Currently there are two documents associated with installing SAVOIR; the main installation guide and
a guide describing all the build properties used for SAVOIR. Note: the build
properties are actually referenced within the installation guide, but a link is provided here for
your convenience.
Below you will find several user manuals describing various aspects for using SAVOIR.
SAVOIR ${savoir.release.ver} is licensed under Apache 2.0, and is Copyright ©
, National
Research Council of Canada. Please see the following files for more information
Copyright © , National Research Council of Canada


Library Configuration Options¶
The LinQ Network Library has compile options to customize your build for your particular enviorment and or needs. Below is a list of configuration options.
LINQ_LOG_LEVEL:STRING Default INFO
The LinQ Network Library supports traditional logging levels to control how verbose LinQ Network Library will behave while running. LINQ_LOG_LEVEL supports the following options.
Option Description TRACE Each function call will produce a time stamped output that is useful for extensive debugging DEBUG Important events that warrent developer interest but not normal user concern will be reported WARN Important events that are not typically expected and may represent potential issue. (IE a device failed to respond to a request) INFO Normal operation behaving as expected ERROR Something very unexpected has happened, but the system is able to recover and continue operating as normal FATAL Something detected during runtime is preventing the system from continuing. A FATAL message will be the last message before faulting NONE No output to the console will ever be generated Note
A LINQ_LOG_LEVEL of higher verbosity will also include all the logging output from the lesser verbose options
LINQ_USE_SYSTEM_DEPENDENCIES:BOOL Default OFF
In order to support reproducable builds, the LinQ Network Library can be configured to build and compile the LinQ Network dependencies locally to your workspace. In order to support Embedded Linux distributions, the LinQ Network Library can be configured to use system resources to resolve LinQ Network dependencies.
LINQ_USE_SYSTEM_DEPENDENICES has 2 options
Option Description ON Link with dependencies located in the system installation folders (IE /usr/lib) OFF Build dependencies locally LINQ_BUILD_EXAMPLES Default OFF
Any example applications will be compiled as well. LINQ_BUILD_EXAMPLES has 2 options
Option Description ON All examples will be compiled OFF No examples will be compiled BUILD_STATIC Default ON
Build the static library for your target application.
Option Description ON Build a static library OFF Do not build a static library BUILD_SHARED Default ON
Build the shared library for your target application.
Option Description ON Build a shared library OFF Do not build a shared library LINQ_DISABLE_SQLITE Default OFF
The LinQ library can optionally be configured with a database and a HTTP server that will service external applications and users. To disable HTTP and Database support.
Option Description OFF Database and HTTP server will be enabled ON Database and HTTP server will be disabled Note
By default the HTTP server will not be made available until the caller initializes the HTTP server.
ENABLE_TESTING Default OFF
The LinQ Library has extensive testing driven by ctest and cmocka test framework. Enable testing will compile the test applications needed by the ctest program.
Option Description OFF Do not build tests On Build tests


Classification with Scikit-learn
introml.analyticsdojo.com
Classification with Scikit-learn¶
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
Scikit-learn Interface¶
Scikit-learn strives to have a uniform interface across all methods. Given a scikit-learn estimator
object named model
, the following methods are available (not all for each model):
Available in all Estimators
model.fit()
: fit training data. For supervised learning applications, this accepts two arguments: the dataX
and the labelsy
(e.g.model.fit(X, y)
). For unsupervised learning applications,fit
takes only a single argument, the dataX
(e.g.model.fit(X)
).
Available in supervised estimators
model.predict()
: given a trained model, predict the label of a new set of data. This method accepts one argument, the new dataX_new
(e.g.model.predict(X_new)
), and returns the learned label for each object in the array.model.predict_proba()
: For classification problems, some estimators also provide this method, which returns the probability that a new observation has each categorical label. In this case, the label with the highest probability is returned bymodel.predict()
.model.decision_function()
: For classification problems, some estimators provide an uncertainty estimate that is not a probability. For binary classification, a decision_function >= 0 means the positive class will be predicted, while < 0 means the negative class.model.score()
: for classification or regression problems, most (all?) estimators implement a score method. Scores are between 0 and 1, with a larger score indicating a better fit. For classifiers, thescore
method computes the prediction accuracy. For regressors,score
computes the coefficient of determination (R2) of the prediction.model.transform()
: For feature selection algorithms, this will reduce the dataset to the selected features. For some classification and regression models such as some linear models and random forests, this method reduces the dataset to the most informative features. These classification and regression models can therefore also be used as feature selection methods.
Available in unsupervised estimators
model.transform()
: given an unsupervised model, transform new data into the new basis. This also accepts one argumentX_new
, and returns the new representation of the data based on the unsupervised model.model.fit_transform()
: some estimators implement this method, which more efficiently performs a fit and a transform on the same input data.model.predict()
: for clustering algorithms, the predict method will produce cluster labels for new data points. Not all clustering methods have this functionality.model.predict_proba()
: Gaussian mixture models (GMMs) provide the probability for each point to be generated by a given mixture component.model.score()
: Density models like KDE and GMMs provide the likelihood of the data under the model.
Intro to Classification¶
To visualize the workings of machine learning algorithms, it is often helpful to study two-dimensional or one-dimensional data, that is data with only one or two features. While in practice, datasets usually have many more features, it is hard to plot high-dimensional data in on two-dimensional screens.
We will illustrate some very simple examples before we move on to more “real world” data sets.
First, we will look at a two class classification problem in two dimensions. We use the synthetic data generated by the make_blobs
function.
from sklearn.datasets import make_blobs
X, y = make_blobs(centers=2, random_state=0)
print('X ~ n_samples x n_features:', X.shape)
print('y ~ n_samples:', y.shape)
print('\nFirst 5 samples:\n', X[:5, :])
print('\nFirst 5 labels:', y[:5])
X ~ n_samples x n_features: (100, 2)
y ~ n_samples: (100,)
First 5 samples:
[[ 4.21850347 2.23419161]
[ 0.90779887 0.45984362]
[-0.27652528 5.08127768]
[ 0.08848433 2.32299086]
[ 3.24329731 1.21460627]]
First 5 labels: [1 1 0 0 1]
As the data is two-dimensional, we can plot each sample as a point in a two-dimensional coordinate system, with the first feature being the x-axis and the second feature being the y-axis.
plt.scatter(X[y == 0, 0], X[y == 0, 1],
c='blue', s=40, label='0')
plt.scatter(X[y == 1, 0], X[y == 1, 1],
c='red', s=40, label='1', marker='s')
plt.xlabel('first feature')
plt.ylabel('second feature')
plt.legend(loc='upper right');
#Split the data
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.25,
random_state=1234,
stratify=y)
The scikit-learn estimator API¶
Every algorithm is exposed in scikit-learn via an ‘’Estimator’’ object. (All models in scikit-learn have a very consistent interface). For instance, we first import the logistic regression class.
from sklearn.linear_model import LogisticRegression
Next, we instantiate the estimator object.
classifier = LogisticRegression()
X_train.shape
(75, 2)
y_train.shape
(75,)
To built the model from our data, that is to learn how to classify new points, we call the fit
function with the training data, and the corresponding training labels (the desired output for the training data point):
classifier.fit(X_train, y_train)
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
verbose=0, warm_start=False)
(Some estimator methods such as fit
return self
by default. Thus, after executing the code snippet above, you will see the default parameters of this particular instance of LogisticRegression
. Another way of retrieving the estimator’s ininitialization parameters is to execute classifier.get_params()
, which returns a parameter dictionary.)
We can then apply the model to unseen data and use the model to predict the estimated outcome using the predict
method:
prediction = classifier.predict(X_test)
We can compare these against the true labels:
print(prediction)
print(y_test)
[1 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0]
[1 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0]
We can evaluate our classifier quantitatively by measuring what fraction of predictions is correct. This is called accuracy:
np.mean(prediction == y_test)
0.83999999999999997
There is also a convenience function , score
, that all scikit-learn classifiers have to compute this directly from the test data:
classifier.score(X_test, y_test)
0.83999999999999997
It is often helpful to compare the generalization performance (on the test set) to the performance on the training set:
classifier.score(X_train, y_train)
0.94666666666666666
LogisticRegression is a so-called linear model, that means it will create a decision that is linear in the input space. In 2d, this simply means it finds a line to separate the blue from the red:
Estimated parameters: All the estimated model parameters are attributes of the estimator object ending by an underscore. Here, these are the coefficients and the offset of the line:
print(classifier.coef_)
print(classifier.intercept_)
[[ 1.38092515 -1.49993172]]
[ 1.54995538]
Another classifier: K Nearest Neighbors¶
Another popular and easy to understand classifier is K nearest neighbors (kNN). It has one of the simplest learning strategies: given a new, unknown observation, look up in your reference database which ones have the closest features and assign the predominant class.
The interface is exactly the same as for LogisticRegression above
.
from sklearn.neighbors import KNeighborsClassifier
This time we set a parameter of the KNeighborsClassifier to tell it we only want to look at one nearest neighbor:
knn = KNeighborsClassifier(n_neighbors=1)
We fit the model with out training data
knn.fit(X_train, y_train)
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
metric_params=None, n_jobs=1, n_neighbors=1, p=2,
weights='uniform')
knn.score(X_test, y_test)
1.0


Category QML Type
The Category type represents a category that a Place can be associated with. More...
| Import Statement: | import QtLocation 5.3 |
| Since: | Qt Location 5.5 |
Properties
- category : QPlaceCategory
- categoryId : string
- icon : PlaceIcon
- name : string
- plugin : Plugin
- status : enumeration
- visibility : enumeration
Methods
- string errorString()
- void remove()
- void save()
Detailed Description
Categories are used to search for places based on the categories they are associated with. The list of available categories can be obtained from the CategoryModel. The PlaceSearchModel has a categories property that is used to limit the search results to places with the specified categories.
If the Plugin supports it, categories can be created or removed. To create a new category construct a new Category object and set its properties, then invoke the save() method.
import QtPositioning 5.5 import QtLocation 5.6 Category { id: category plugin: myPlugin name: "New Category" visibility: Category.PrivateVisibility } ... category.save();
To remove a category ensure that the plugin and categoryId properties are set and call the remove() method.
See also CategoryModel.
Property Documentation
For details on how to use this property to interface between C++ and QML see "Interfaces between C++ and QML Code".
This property holds the identifier of the category. The categoryId is a string which uniquely identifies this category within the categories plugin.
This property holds the image source associated with the category. To display the icon you can use the Image type.
plugin : Plugin |
This property holds the location based service to which the category belongs.
This property holds the status of the category. It can be one of:
| Category.Ready | No error occurred during the last operation, further operations may be performed on the category. |
| Category.Saving | The category is currently being saved, no other operations may be performed until the current operation completes. |
| Category.Removing | The category is currently being removed, no other operations can be performed until the current operation completes. |
| Category.Error | An error occurred during the last operation, further operations can still be performed on the category. |
This property holds the visibility of the category. It can be one of:
| Category.UnspecifiedVisibility | The visibility of the category is unspecified. If saving a category, the plugin will automatically set a default visibility to the category saved in the backend. This default is dependent on the plugin implementation. |
| Category.DeviceVisibility | The category is limited to the current device. The category will not be transferred off of the device. |
| Category.PrivateVisibility | The category is private to the current user. The category may be transferred to an online service but is only ever visible to the current user. |
| Category.PublicVisibility | The category is public. |
Note that visibility does not affect how Places associated with the category are displayed in the user-interface of an application on the device. Instead, it defines the sharing semantics of the category.
Method Documentation
Returns a string description of the error of the last operation. If the last operation completed successfully then the string is empty.


Overview
Cache Refresh is the process of connecting an existing backend LDAP server, like Microsoft Active Directory, with the Gluu Server's local LDAP server. Synching people and attributes from a backend server into the Gluu Server speeds up authentication transactions. It is possible to perform attribute transformations, changing the name of attributes, or even using an interception script to change the values. Transformations are stored in the Gluu LDAP service.
Video Tutorial
For a guided video overview of configuring Cache Refresh, please watch the following three videos:
- Part 1: What is 'Cache Refresh' and How Does it Work?
- Part 2: Configuring Cache Refresh in the Gluu Server
- Part 3: Managing Authentication After You've Setup Cache Refresh
Things To Remember
The Gluu Server supports two LDAP modes: (1) authentication and (2) identity mapping. Only sometimes it is the same LDAP server. To synchronize user accounts from an external LDAP directory server, you can use the built-in oxTrust features for ”Cache Refresh”, which support mapping identities from n number of source directory servers.
After configuring Cache Refresh, you should give it some time to run, and populate the LDAP server. Here are some tips before you get started:
-
Enable 'Keep External Person' during CR setup. This will allow your default user 'admin' to log into Gluu Server after initial Cache Refresh iteration. If you do not enable 'Keep External Person', your 'admin' user including all other test users will be gone after first Cache Refresh iteration.
-
Make sure you are using LDAP authentication, not VDS. You will only need VDS setting if you are using the Radiant Logic Virtual Directory Server.
-
Check the snapshots folder to see if files are being created.
-
Use the oxTrust admin to browse users.
-
Use the command
ldapsearch
to check to see if results are starting to come in. The following command will search for the total number of users in the Gluu LDAP:
# /opt/opendj/bin/ldapsearch -h localhost -p 1636 -Z -X -D "cn=directory manager" -w 'pass_of_ldap_ -b 'ou=people,o=DA....,o=gluu' dn | grep "dn\:" | wc -l
- Try to login with one of these users. We assume that you have also setup your Gluu Server to use the correct LDAP server for authentication.
Things To Know
The deployer needs to know various values of his own backend AD to configure this part. For example, host & port, bindDN user information, bindDN password, Objectclasses, attributes whose information will be pulled etc.
In addition, the deployer also needs to know generic information of his Gluu Server's LDAP. By default, the deployer can use 'localhost:1636', 'cn=directory manager', 'password what he chose during installation', 'ou=people,o=site' as server information, bindDN, bindDN password and baseDN respectively.
After collecting this information, the deployer can move forward with the setup of the Cache Refresh engine.
Configuring Cache Refresh From oxTrust
For a successful Cache Refresh setup, please complete the data fields in both the 'Cache Refresh', 'Customer Backend Key/Attributes', and 'Source Backend LDAP Servers' sections. It is not necessary enter data in the 'Inum LDAP Server' tab.
-
Refresh Method: The Gluu Server allows the server administrator to apply two types of Cache Refresh mechanisms--(1) VDS Method, and (2) Copy Method.
-
VDS Method: Use this if the backend is a database such as mysql.
-
Copy Method: It is strongly recommended to use this method if the backend data source is any kind of Active Directory or LDAP Server.
-
Source attribute to destination attribute mapping: The left entry field defines the attributes from the backend data source. The right entry field defines where it should be rendered/placed as it is delivered to the Gluu Server.
-
Pooling Interval (Minutes): It is recommended to be kept higher than 15 minutes.
-
Server IP Address: Enter the IP address of the Gluu Server in this field. The IP with which the Gluu Server was setup, should be used here.
-
Snapshot Folder: Every cycle of the Gluu Server Cache Refresh cycle saves both an overall snapshot and a problem-list record on a specified location. This is where the Gluu Server administrator can specify the location.
-
Snapshot Count: It is recommended to be keep the value to 20 snapshots.
-
Keep external persons: Check this box to retain the
admin
user.
Customer Backend Key and Attributes
-
Key Attribute: This is the unique key attribute of backend Active Directory/LDAP Server such as
SAMAccountname
for any Active Directory. -
Object Class: This contains the object classes of the backend Active Directory/LDAP which have permission to talk to the Gluu Server Cache Refresh such as person, organizationalPerson, user etc.
-
Source Attribute: This contains the list of attributes which will be pulled and read by the Gluu Server.
-
Custom LDAP Filter: If there is any custom search required, this filtering mechanism can be used such as
sn=*
. The value of this field ensures that every user must contain an attribute named SN.
Source Backend LDAP Servers
This section allows the Gluu Server to connect to the backend Active Directory/LDAP server of your organization.
-
Name: Please input source as the value.
-
Use Anonymous Bind: Some customers do now allow username/password connections to their backend server. Enable this option if this applies to your organization.
-
Bind DN: This contains the username of the backend server. You need to use full DN here. As for example,
cn=gluu,dc=company,dc=org
. -
Use SSL: Use this feature if the backend server allows SSL connectivity.
-
Max Connections: This value defines the maximum number of connections that are allowed to read the backend Active Directory/LDAP server. It is recommended to keep the value 2 or 3.
-
Server: This contains the backend Active Directory/LDAP server hostname with port, i.e.
backend.organization.com:389
. If your organization has a failover server, click Add Server to add more hostnames with the according port. -
Base DN: This contains the location of the Active Directory/LDAP tree of the backend data source.
-
Enabled: This check-box is to save and push the changes.
-
Change Bind Password: This can be used for a new password or to change any existing password.
If any organization has multiple Active Directory/LDAP server, click on Add source LDAP server and add the additional server information. Please remember that a failover server is not a new server.
Cache Refresh Whitepages
The following file is prepared by a Gluu Engineer to make Cache refresh mechanism easy to understand. Please download and read it if this page is not clear.


{% extends 'orfik/home.html' %}
{% block head %}
{% endblock %}
{% block body %}
Instructions
- The hunt begins sharp at 0000 Hours on March 17, 2016 and ends on March 18 at 23:59 Hours.
- Each participant can make a single login using a username of their choice.
- Once the game begins you will be faced by a series of questions.
- All answers are to be entered in lower case characters with no spaces and special characters.
- You can only see one question at a time and will only progress when you answer the question correctly.
- You can have infinite tries on each question until you get the right answer.
- All levels are of equal weightage. There is no negative marking.
- You can also see the leader board at any time to see your progress relative to others.
- Ranks are based on the time the question is answered; with the individual answering first placed higher.
- The CompSoc shall be the sole authority to decide on anything. Any decision made by CompSoc or its representatives is final and irrevocable.
- Any individual found to use any unfair means will be disqualified with immediate effect.
- The use of the internet, searching the source code etc. are all allowed to arrive at the answer.
- Any queries regarding the questions will be answered at the orfik forum by CompSoc on our facebook page. However, no foul language or other miscreant behaviour will be tolerated.
Good luck!
{% endblock %}


Alcohol is by far my substance of choice. But I don't really like being drunk. I drink to relax and to be social. I do drink quite frequently, so to the average person I'd appear to be an alcoholic, which I'm not. I just really, really, love beer. I usually drink to the point where I feel relaxed, slightly tipsy, more talkative, and warm-feeling. This usually occurs after about four or five 'lite' beers. Regular or Ice beer just gets me too drunk. I prefer not to drink it.
Being really drunk is almost like being delirious to me.
But if I am at a party and the alcohol is flowing heavily, I know I may end up drinking more than I planned. When I go to parties, I drink all night long and into the next morning without even feeling wasted or spilling my drink on the floor, with no hangover whatsoever. Here's how:
1. Pace myself, because an alcohol buzz can really creep up on me, especially drinks made with hard liquor.
2. When I reach the point of feeling pleasantly intoxicated (warm, happy, sociable, relaxed), I stop drinking. This is the best part of an alcohol buzz. If I must sip on something (which I do) I usually fill my beer bottle with water. I always drink out of brown bottles so no one ever sees me do it.
3.Water is extremely beneficial to an alcohol drinker. Alcohol can seriously dehydrate me, therefore it is necessary to stay hydrated. Also, as mentioned above, it speeds the elimination process so I don't end up getting real stupid-drunk. So between my drinks, I take a few gulps of water. And before bed, drink at least two 12-oz. glasses.
Some people like that sloppy drunk feeling. Not me. I do love beer more than anything in the world, but to me, being really drunk kinda sucks.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


{% comment %} Copyright 2017 Workonline Communications (Pty) Ltd. All rights reserved. The contents of this file are licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. {% endcomment %}
The {{ info.title }} provides routing information for use in troubleshooting by 3rd party network operators.
This service is not appropriate for performance measurement. Customers or network operators with queries regarding network performance are advised to make use of the contact details below
For additional information or assistance, please use the following contacts:
By proceeding, you agree to be bound by the following terms of use:


--- layout: page title: About permalink: /about/ ---
Google Technology User Groups (GDGs) are user groups for people who are interested in Google's developer technology; everything from the Android and App Engine platforms, to product APIs like the YouTube API and the Google Calendar API, to initiatives like OpenSocial. Check out code.google.com for the full list of offerings. GDG Chennai aims at bringing like minded people together and giving them a platform to develop, brainstorm and interact among yourselves.
We are constantly looking for developers who're ready to go one step further to create something new and revolutionary. If you are a developer who's looking for some help from the best community on the planet, just fill up this form, and we'll spartk the conversation.
Talk to us


--- layout: post title: Yard date: type: post published: false status: draft categories: [] tags: [] meta: _edit_last: '2' _publicize_twitter_user: "@MommyKnowsJen" author: login: jen email<EMAIL_ADDRESS>display_name: Jennifer Elam first_name: Jen last_name: Elam ---
Ohhhh I use to judge! So so judgy! We would drive past a house completely overcome with kid toys and flotsam and I would think - "wow! Look how they've let themselves go!"
I'm feeling now - mid 30s w/ 4 kids and a complete mess! That some of that judge-y-ness is a rite of passage in life - at least that's what I'm hoping. As we just added this monstrosity to our Arsenal of summertime fun!


module Bundler::Thor::Actions
Constants
- WARNINGS
Injects the given content into a file. Different from
gsub_file
, this method is reversible.Parameters¶ ↑
- destination<String>
-
Relative path to the destination root
- data<String>
-
Data to add to the file. Can be given as a block.
- config<Hash>
-
give :verbose => false to not log the status and the flag for injection (:after or :before) or :force => true for insert two or more times the same content.
Examples¶ ↑
insert_into_file "config/environment.rb", "config.gem :thor", :after => "Rails::Initializer.run do |config|\n" insert_into_file "config/environment.rb", :after => "Rails::Initializer.run do |config|\n" do gems = ask "Which gems would you like to add?" gems.split(" ").map{ |gem| " config.gem :#{gem}" }.join("\n") end
Attributes
Public Class Methods
Extends initializer to add more configuration options.
Configuration¶ ↑
- behavior<Symbol>
-
The actions default behavior. Can be :invoke or :revoke. It also accepts :force, :skip and :pretend to set the behavior and the respective option.
destination_root
<String>-
The root directory needed for some actions.
# File lib/bundler/vendor/thor/lib/thor/actions.rb, line 72 def initialize(args = [], options = {}, config = {}) self.behavior = case config[:behavior].to_s when "force", "skip" _cleanup_options_and_set(options, config[:behavior]) :invoke when "revoke" :revoke else :invoke end super self.destination_root = config[:destination_root] end
Public Instance Methods
Append text to a file. Since it depends on insert_into_file
, it's reversible.
Parameters¶ ↑
- path<String>
-
path of the file to be changed
- data<String>
-
the data to append to the file, can be also given as a block.
- config<Hash>
-
give :verbose => false to not log the status.
Example¶ ↑
append_to_file 'config/environments/test.rb', 'config.gem "rspec"' append_to_file 'config/environments/test.rb' do 'config.gem "rspec"' end
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 195 def append_to_file(path, *args, &block) config = args.last.is_a?(Hash) ? args.pop : {} config[:before] = /\z/ insert_into_file(path, *(args << config), &block) end
Loads an external file and execute it in the instance binding.
Parameters¶ ↑
- path<String>
-
The path to the file to execute. Can be a web address or a relative path from the source root.
Examples¶ ↑
apply "http://gist.github.com/103208" apply "recipes/jquery.rb"
# File lib/bundler/vendor/thor/lib/thor/actions.rb, line 212 def apply(path, config = {}) verbose = config.fetch(:verbose, true) is_uri = path =~ %r{^https?\://} path = find_in_source_paths(path) unless is_uri say_status :apply, path, verbose shell.padding += 1 if verbose contents = if is_uri require "open-uri" URI.open(path, "Accept" => "application/x-thor-template", &:read) else open(path, &:read) end instance_eval(contents, path) shell.padding -= 1 if verbose end
Changes the mode of the given file or directory.
Parameters¶ ↑
- mode<Integer>
-
the file mode
- path<String>
-
the name of the file to change mode
- config<Hash>
-
give :verbose => false to not log the status.
Example¶ ↑
chmod "script/server", 0755
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 148 def chmod(path, mode, config = {}) return unless behavior == :invoke path = File.expand_path(path, destination_root) say_status :chmod, relative_to_original_destination_root(path), config.fetch(:verbose, true) unless options[:pretend] require "fileutils" FileUtils.chmod_R(mode, path) end end
Comment all lines matching a given regex. It will leave the space which existed before the beginning of the line in tact and will insert a single space after the comment hash.
Parameters¶ ↑
- path<String>
-
path of the file to be changed
- flag<Regexp|String>
-
the regexp or string used to decide which lines to comment
- config<Hash>
-
give :verbose => false to not log the status.
Example¶ ↑
comment_lines 'config/initializers/session_store.rb', /cookie_store/
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 312 def comment_lines(path, flag, *args) flag = flag.respond_to?(:source) ? flag.source : flag gsub_file(path, /^(\s*)([^#\n]*#{flag})/, '\1# \2', *args) end
Examples¶ ↑
copy_file "README", "doc/README" copy_file "doc/README"
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 21 def copy_file(source, *args, &block) config = args.last.is_a?(Hash) ? args.pop : {} destination = args.first || source source = File.expand_path(find_in_source_paths(source.to_s)) resulting_destination = create_file destination, nil, config do content = File.binread(source) content = yield(content) if block content end if config[:mode] == :preserve mode = File.stat(source).mode chmod(resulting_destination, mode, config) end end
Create a new file relative to the destination root with the given data, which is the return value of a block or a data string.
Parameters¶ ↑
- destination<String>
-
the relative path to the destination root.
- data<String|NilClass>
-
the data to append to the file.
- config<Hash>
-
give :verbose => false to not log the status.
Examples¶ ↑
create_file "lib/fun_party.rb" do hostname = ask("What is the virtual hostname I should use?") "vhost.name = #{hostname}" end create_file "config/apache.conf", "your apache config"
# File lib/bundler/vendor/thor/lib/thor/actions/create_file.rb, line 22 def create_file(destination, *args, &block) config = args.last.is_a?(Hash) ? args.pop : {} data = args.first action CreateFile.new(self, destination, block || data.to_s, config) end
Create a new file relative to the destination root from the given source.
Parameters¶ ↑
- destination<String>
-
the relative path to the destination root.
- source<String|NilClass>
-
the relative path to the source root.
- config<Hash>
-
give :verbose => false to not log the status.
-
give :symbolic => false for hard link.
Examples¶ ↑
create_link "config/apache.conf", "/etc/apache.conf"
# File lib/bundler/vendor/thor/lib/thor/actions/create_link.rb, line 17 def create_link(destination, *args) config = args.last.is_a?(Hash) ? args.pop : {} source = args.first action CreateLink.new(self, destination, source, config) end
Returns the root for this thor class (also aliased as destination root).
# File lib/bundler/vendor/thor/lib/thor/actions.rb, line 99 def destination_root @destination_stack.last end
Sets the root for this thor class. Relatives path are added to the directory where the script was invoked and expanded.
# File lib/bundler/vendor/thor/lib/thor/actions.rb, line 106 def destination_root=(root) @destination_stack ||= [] @destination_stack[0] = File.expand_path(root || "") end
Copies recursively the files from source directory to root directory. If any of the files finishes with .tt, it's considered to be a template and is placed in the destination without the extension .tt. If any empty directory is found, it's copied and all .empty_directory files are ignored. If any file name is wrapped within % signs, the text within the % signs will be executed as a method and replaced with the returned value. Let's suppose a doc directory with the following files:
doc/ components/.empty_directory README rdoc.rb.tt %app_name%.rb
When invoked as:
directory "doc"
It will create a doc directory in the destination with the following files (assuming that the `app_name` method returns the value “blog”):
doc/ components/ README rdoc.rb blog.rb
Encoded path note: Since Bundler::Thor internals use Object#respond_to? to check if it can expand %something%, this `something` should be a public method in the class calling directory
. If a method is private, Bundler::Thor stack raises PrivateMethodEncodedError.
Parameters¶ ↑
- source<String>
-
the relative path to the source root.
- destination<String>
-
the relative path to the destination root.
- config<Hash>
-
give :verbose => false to not log the status. If :recursive => false, does not look for paths recursively. If :mode => :preserve, preserve the file mode from the source. If :exclude_pattern => /regexp/, prevents copying files that match that regexp.
Examples¶ ↑
directory "doc" directory "doc", "docs", :recursive => false
# File lib/bundler/vendor/thor/lib/thor/actions/directory.rb, line 49 def directory(source, *args, &block) config = args.last.is_a?(Hash) ? args.pop : {} destination = args.first || source action Directory.new(self, source, destination || source, config, &block) end
Creates an empty directory.
Parameters¶ ↑
- destination<String>
-
the relative path to the destination root.
- config<Hash>
-
give :verbose => false to not log the status.
Examples¶ ↑
empty_directory "doc"
# File lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb, line 13 def empty_directory(destination, config = {}) action EmptyDirectory.new(self, destination, config) end
Receives a file or directory and search for it in the source paths.
# File lib/bundler/vendor/thor/lib/thor/actions.rb, line 133 def find_in_source_paths(file) possible_files = [file, file + TEMPLATE_EXTNAME] relative_root = relative_to_original_destination_root(destination_root, false) source_paths.each do |source| possible_files.each do |f| source_file = File.expand_path(f, File.join(source, relative_root)) return source_file if File.exist?(source_file) end end message = "Could not find #{file.inspect} in any of your source paths. ".dup unless self.class.source_root message << "Please invoke #{self.class.name}.source_root(PATH) with the PATH containing your templates. " end message << if source_paths.empty? "Currently you have no source paths." else "Your current source paths are: \n#{source_paths.join("\n")}" end raise Error, message end
Gets the content at the given address and places it at the given relative destination. If a block is given instead of destination, the content of the url is yielded and used as location.
get
relies on open-uri, so passing application user input would provide a command injection attack vector.
Parameters¶ ↑
- source<String>
-
the address of the given content.
- destination<String>
-
the relative path to the destination root.
- config<Hash>
-
give :verbose => false to not log the status.
Examples¶ ↑
get "http://gist.github.com/103208", "doc/README" get "http://gist.github.com/103208" do |content| content.split("\n").first end
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 79 def get(source, *args, &block) config = args.last.is_a?(Hash) ? args.pop : {} destination = args.first render = if source =~ %r{^https?\://} require "open-uri" URI.send(:open, source) { |input| input.binmode.read } else source = File.expand_path(find_in_source_paths(source.to_s)) open(source) { |input| input.binmode.read } end destination ||= if block_given? block.arity == 1 ? yield(render) : yield else File.basename(source) end create_file destination, render, config end
Run a regular expression replacement on a file.
Parameters¶ ↑
- path<String>
-
path of the file to be changed
- flag<Regexp|String>
-
the regexp or string to be replaced
- replacement<String>
-
the replacement, can be also given as a block
- config<Hash>
-
give :verbose => false to not log the status, and :force => true, to force the replacement regardless of runner behavior.
Example¶ ↑
gsub_file 'app/controllers/application_controller.rb', /#\s*(filter_parameter_logging :password)/, '\1' gsub_file 'README', /rake/, :green do |match| match << " no more. Use thor!" end
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 265 def gsub_file(path, flag, *args, &block) config = args.last.is_a?(Hash) ? args.pop : {} return unless behavior == :invoke || config.fetch(:force, false) path = File.expand_path(path, destination_root) say_status :gsub, relative_to_original_destination_root(path), config.fetch(:verbose, true) unless options[:pretend] content = File.binread(path) content.gsub!(flag, *args, &block) File.open(path, "wb") { |file| file.write(content) } end end
Goes to the root and execute the given block.
# File lib/bundler/vendor/thor/lib/thor/actions.rb, line 196 def in_root<EMAIL_ADDRESS>{ yield } end
Injects text right after the class definition. Since it depends on insert_into_file
, it's reversible.
Parameters¶ ↑
- path<String>
-
path of the file to be changed
- klass<String|Class>
-
the class to be manipulated
- data<String>
-
the data to append to the class, can be also given as a block.
- config<Hash>
-
give :verbose => false to not log the status.
Examples¶ ↑
inject_into_class "app/controllers/application_controller.rb", ApplicationController, " filter_parameter :password\n" inject_into_class "app/controllers/application_controller.rb", ApplicationController do " filter_parameter :password\n" end
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 219 def inject_into_class(path, klass, *args, &block) config = args.last.is_a?(Hash) ? args.pop : {} config[:after] = /class #{klass}\n|class #{klass} .*\n/ insert_into_file(path, *(args << config), &block) end
Injects text right after the module definition. Since it depends on insert_into_file
, it's reversible.
Parameters¶ ↑
- path<String>
-
path of the file to be changed
- module_name<String|Class>
-
the module to be manipulated
- data<String>
-
the data to append to the class, can be also given as a block.
- config<Hash>
-
give :verbose => false to not log the status.
Examples¶ ↑
inject_into_module "app/helpers/application_helper.rb", ApplicationHelper, " def help; 'help'; end\n" inject_into_module "app/helpers/application_helper.rb", ApplicationHelper do " def help; 'help'; end\n" end
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 242 def inject_into_module(path, module_name, *args, &block) config = args.last.is_a?(Hash) ? args.pop : {} config[:after] = /module #{module_name}\n|module #{module_name} .*\n/ insert_into_file(path, *(args << config), &block) end
# File lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb, line 26 def insert_into_file(destination, *args, &block) data = block_given? ? block : args.shift config = args.shift || {} config[:after] = /\z/ unless config.key?(:before) || config.key?(:after) action InjectIntoFile.new(self, destination, data, config) end
Do something in the root or on a provided subfolder. If a relative path is given it's referenced from the current root. The full path is yielded to the block you provide. The path is set back to the previous path when the method exits.
Parameters¶ ↑
- dir<String>
-
the directory to move to.
- config<Hash>
-
give :verbose => true to log and use padding.
# File lib/bundler/vendor/thor/lib/thor/actions.rb, line 168 def inside(dir = "", config = {}, &block) verbose = config.fetch(:verbose, false) pretend = options[:pretend] say_status :inside, dir, verbose shell.padding += 1 if verbose @destination_stack.push File.expand_path(dir, destination_root) # If the directory doesnt exist and we're not pretending if !File.exist?(destination_root) && !pretend require "fileutils" FileUtils.mkdir_p(destination_root) end if pretend # In pretend mode, just yield down to the block block.arity == 1 ? yield(destination_root) : yield else require "fileutils" FileUtils.cd(destination_root) { block.arity == 1 ? yield(destination_root) : yield } end @destination_stack.pop shell.padding -= 1 if verbose end
Links the file from the relative source to the relative destination. If the destination is not given it's assumed to be equal to the source.
Parameters¶ ↑
- source<String>
-
the relative path to the source root.
- destination<String>
-
the relative path to the destination root.
- config<Hash>
-
give :verbose => false to not log the status.
Examples¶ ↑
link_file "README", "doc/README" link_file "doc/README"
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 51 def link_file(source, *args) config = args.last.is_a?(Hash) ? args.pop : {} destination = args.first || source source = File.expand_path(find_in_source_paths(source.to_s)) create_link destination, source, config end
Prepend text to a file. Since it depends on insert_into_file
, it's reversible.
Parameters¶ ↑
- path<String>
-
path of the file to be changed
- data<String>
-
the data to prepend to the file, can be also given as a block.
- config<Hash>
-
give :verbose => false to not log the status.
Example¶ ↑
prepend_to_file 'config/environments/test.rb', 'config.gem "rspec"' prepend_to_file 'config/environments/test.rb' do 'config.gem "rspec"' end
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 173 def prepend_to_file(path, *args, &block) config = args.last.is_a?(Hash) ? args.pop : {} config[:after] = /\A/ insert_into_file(path, *(args << config), &block) end
Returns the given path relative to the absolute root (ie, root where the script started).
# File lib/bundler/vendor/thor/lib/thor/actions.rb, line 114 def relative_to_original_destination_root(path, remove_dot = true) root = @destination_stack[0] if path.start_with?(root) && [File::SEPARATOR, File::ALT_SEPARATOR, nil, ''].include?(path[root.size..root.size]) path = path.dup path[0...root.size] = '.' remove_dot ? (path[2..-1] || "") : path else path end end
Removes a file at the given location.
Parameters¶ ↑
- path<String>
-
path of the file to be changed
- config<Hash>
-
give :verbose => false to not log the status.
Example¶ ↑
remove_file 'README' remove_file 'app/controllers/application_controller.rb'
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 329 def remove_file(path, config = {}) return unless behavior == :invoke path = File.expand_path(path, destination_root) say_status :remove, relative_to_original_destination_root(path), config.fetch(:verbose, true) if !options[:pretend] && File.exist?(path) require "fileutils" ::FileUtils.rm_rf(path) end end
Executes a command returning the contents of the command.
Parameters¶ ↑
- command<String>
-
the command to be executed.
- config<Hash>
-
give :verbose => false to not log the status, :capture => true to hide to output. Specify :with to append an executable to command execution.
Example¶ ↑
inside('vendor') do run('ln -s ~/edge rails') end
# File lib/bundler/vendor/thor/lib/thor/actions.rb, line 244 def run(command, config = {}) return unless behavior == :invoke destination = relative_to_original_destination_root(destination_root, false) desc = "#{command} from #{destination.inspect}" if config[:with] desc = "#{File.basename(config[:with].to_s)} #{desc}" command = "#{config[:with]} #{command}" end say_status :run, desc, config.fetch(:verbose, true) return if options[:pretend] env_splat = [config[:env]] if config[:env] if config[:capture] require "open3" result, status = Open3.capture2e(*env_splat, command.to_s) success = status.success? else result = system(*env_splat, command.to_s) success = result end abort if !success && config.fetch(:abort_on_failure, self.class.exit_on_failure?) result end
Executes a ruby script (taking into account WIN32 platform quirks).
Parameters¶ ↑
- command<String>
-
the command to be executed.
- config<Hash>
-
give :verbose => false to not log the status.
# File lib/bundler/vendor/thor/lib/thor/actions.rb, line 281 def run_ruby_script(command, config = {}) return unless behavior == :invoke run command, config.merge(:with => Bundler::Thor::Util.ruby_command) end
Holds source paths in instance so they can be manipulated.
# File lib/bundler/vendor/thor/lib/thor/actions.rb, line 127 def source_paths @source_paths ||= self.class.source_paths_for_search end
Gets an ERB template at the relative source, executes it and makes a copy at the relative destination. If the destination is not given it's assumed to be equal to the source removing .tt from the filename.
Parameters¶ ↑
- source<String>
-
the relative path to the source root.
- destination<String>
-
the relative path to the destination root.
- config<Hash>
-
give :verbose => false to not log the status.
Examples¶ ↑
template "README", "doc/README" template "doc/README"
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 115 def template(source, *args, &block) config = args.last.is_a?(Hash) ? args.pop : {} destination = args.first || source.sub(/#{TEMPLATE_EXTNAME}$/, "") source = File.expand_path(find_in_source_paths(source.to_s)) context = config.delete(:context) || instance_eval("binding") create_file destination, nil, config do match = ERB.version.match(/(\d+\.\d+\.\d+)/) capturable_erb = if match && match[1] >= "2.2.0" # Ruby 2.6+ CapturableERB.new(::File.binread(source), :trim_mode => "-", :eoutvar => "@output_buffer") else CapturableERB.new(::File.binread(source), nil, "-", "@output_buffer") end content = capturable_erb.tap do |erb| erb.filename = source end.result(context) content = yield(content) if block content end end
Run a thor command. A hash of options can be given and it's converted to switches.
Parameters¶ ↑
- command<String>
-
the command to be invoked
- args<Array>
-
arguments to the command
- config<Hash>
-
give :verbose => false to not log the status, :capture => true to hide to output. Other options are given as parameter to Bundler::Thor.
Examples¶ ↑
thor :install, "http://gist.github.com/103208" #=> thor install http://gist.github.com/103208 thor :list, :all => true, :substring => 'rails' #=> thor list --all --substring=rails
# File lib/bundler/vendor/thor/lib/thor/actions.rb, line 304 def thor(command, *args) config = args.last.is_a?(Hash) ? args.pop : {} verbose = config.key?(:verbose) ? config.delete(:verbose) : true pretend = config.key?(:pretend) ? config.delete(:pretend) : false capture = config.key?(:capture) ? config.delete(:capture) : false args.unshift(command) args.push Bundler::Thor::Options.to_switches(config) command = args.join(" ").strip run command, :with => :thor, :verbose => verbose, :pretend => pretend, :capture => capture end
Uncomment all lines matching a given regex. It will leave the space which existed before the comment hash in tact but will remove any spacing between the comment hash and the beginning of the line.
Parameters¶ ↑
- path<String>
-
path of the file to be changed
- flag<Regexp|String>
-
the regexp or string used to decide which lines to uncomment
- config<Hash>
-
give :verbose => false to not log the status.
Example¶ ↑
uncomment_lines 'config/initializers/session_store.rb', /active_record/
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 293 def uncomment_lines(path, flag, *args) flag = flag.respond_to?(:source) ? flag.source : flag gsub_file(path, /^(\s*)#[[:blank:]]*(.*#{flag})/, '\1\2', *args) end
Private Instance Methods
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 350 def capture(*args) with_output_buffer { yield(*args) } end
# File lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb, line 346 def concat(string) @output_buffer.concat(string) end


This well-preserved holiday destination is Norway's most southerly town.
58° 1' 10"N, 7° 27' 8"E.
It has been reported that the customs house here has closed, although the port is listed as an official Port of Entry.
Last updated June 2011.
There is a yacht club here.


?O
1
cm
4
6
7
8
9
10
copyright
reserved
The
New
York
Botanical
Garden
/
YO^S
BOTANICAL
GARDE**
New
York
Botanical
Garden
lblk334
British
West
Indies,
Pine
Cay.
Open
scrubby
areas
just
north
of
Meredian
Club.
21¡
53'41MN
72¡05'52"W
Scrambling
over
shrubs
at
end
of
a
brackish
pond.
25
January
1993
Peter
H.
Raven
28231
MISSOURI
BOTANICAL
GARDEN
HERBARIUM
(MO)
TURKS
&
CAICOS
FABACEAE
Canavalia
rosea
(Swartz)
DC,
1616334
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


{% url 'brexit-contact-form' as contact_url %}
{% cta_box box_id='eu-exit-cta-box' description='If you still have a question about Brexit, contact Department for International Trade and one of our experts will try to help you.' button_text='Contact us' button_url=contact_url %}


| Class | Rake::Task |
| In: |
lib/rake.rb
|
| Parent: | Object |
A Task is the basic unit of work in a Rakefile. Tasks have associated actions (possibly more than one) and a list of prerequisites. When invoked, a task will first ensure that all of its prerequisites have an opportunity to run and then it will execute its own actions.
Tasks are not usually created directly using the new method, but rather use the file and task convenience methods.
| actions | [R] | List of actions attached to a task. |
| application | [RW] | Application owning this task. |
| comment | [R] | Comment for this task. Restricted to a single line of no more than 50 characters. |
| full_comment | [R] | Full text of the (possibly multi-line) comment. |
| prerequisites | [R] | List of prerequisites for a task. |
| scope | [R] | Array of nested namespaces names used for task lookup by this task. |
| sources | [W] | List of sources for task. |
Clear the task list. This cause rake to immediately forget all the tasks that have been assigned. (Normally used in the unit tests.)
Define a task given args and an option block. If a rule with the given name already exists, the prerequisites and actions are added to the existing task. Returns the defined task.
Create a task named task_name with no actions or prerequisites. Use enhance to add actions and prerequisites.
Add a description to the task. The description can consist of an option argument list (enclosed brackets) and an optional comment.
Set the names of the arguments for this task. args should be an array of symbols, one for each argument name.


Given two natural numbers (both not greater than 200), each number in the separate line, please print the sum of them.
Input: 2 3 Output: 5


* You may need to refresh the page if the websocket is closed.
* GitHub:
https://github.com/gabrielklein/ExampleESPLoraWeb
Message:
Received from LoRa:


Mega Menu
Home
About Us
Services
Software Development
Web Designing & Development
Mobile Application
Business Solutions & Business Process
Digital Marketing & SEO Services
Web Hosting & Maintenance
Cyber Security
Block Chain Implementation
Big Data
All Services
Ecommerce
Magento Development
Magento 2 Migration
Odoo ERP
Mobile Commerce
CRM for Commerce
LAMP Technology
PHP Website Development
Phalcon Development
Laravel Development
WordPress Development
Symfony Development
Mobile
iPhone App Development
Android App Development
Phone Gap App Development
Hybrid App Development
Ionic Development
React Native Development
Xamarin App Development
Node.js & MongoDB
Full Stack Development
MEAN Stack
AngularJS
Node.JS Development
MongoDB Development
Microsoft Technology
Microsoft App Development
MS Desktop App Development
SharePoint Development
ASP.NET Development
CMS Development
Cloud Services
DevOps
Amazon Web Services
Azure Cloud Service
Google App Engine Services
Enterprise Services
Augmented Reality
CRM
Enterprise Mobility Services
Blockchain Services
Business Intelligence
Digital Marketing
Digital Marketing
PPC Management Services
E-commerce SEO Services
Conversion Rate Optimization
Portfolio
Careers
Contact us


See where your application is up to
If you made an online application with the DBS for a basic check, you can enter your details to see where it’s up to.
If you made an online application with the DBS for a basic check, you can enter your details to see where it’s up to.


The following attributes will be released to
[
]
:
Attribute
Value(s)
Consent Options
Every Time
Show the consent screen every time I attempt to log into
Attribute Name
Show the consent screen, if an attribute is added or removed from the collection of attributes released to
.
Attribute Value
Show the consent screen, if:
A new attribute is authorized for release to
.
An attribute is removed from the attribute bundle previously released to
.
The value of an attribute authorized for release to
has changed.
Reminder Options
Show the consent screen, as a reminder, in that event that there is no change to the collection of attributes released to
Days
Hours
Months


You have already submitted a ballot for this poll.
You can still edit your ballot if you would like, but you'll need to retract it first.
If you do choose to retract your ballot, you'll need to re-submit it once you're done making changes. Ballots that have been retracted without being resubmitted will not be counted in the poll and the week will count as a miss.
Are you sure you'd like to retract your ballot?


Let's get to know more about you!
Please answer each question based on whether or not you agree with each statement.
I find unpredictable situations exhilarating.
1 - Strongly Disagree
2 - Disagree
3 - Neutral
4 - Agree
5 - Strongly Agree
I find unpredictable situations exhilarating.
1 - Strongly Disagree
2 - Disagree
3 - Neutral
4 - Agree
5 - Strongly Agree
I have a very wide range of interests.
1 - Strongly Disagree
2 - Disagree
3 - Neutral
4 - Agree
5 - Strongly Agree
I am more optimistic than most people.
1 - Strongly Disagree
2 - Disagree
3 - Neutral
4 - Agree
5 - Strongly Agree
I am always looking for new experiences.
1 - Strongly Disagree
2 - Disagree
3 - Neutral
4 - Agree
5 - Strongly Agree
I am more enthusiastic than most people.
1 - Strongly Disagree
2 - Disagree
3 - Neutral
4 - Agree
5 - Strongly Agree
I get restless if I have to stay home for any length of time.
1 - Strongly Disagree
2 - Disagree
3 - Neutral
4 - Agree
5 - Strongly Agree
I have more energy than most people.
1 - Strongly Disagree
2 - Disagree
3 - Neutral
4 - Agree
5 - Strongly Agree
On my time off, I like to be free to do whatever looks fun.
1 - Strongly Disagree
2 - Disagree
3 - Neutral
4 - Agree
5 - Strongly Agree
My friends would say I am very curious.
1 - Strongly Disagree
2 - Disagree
3 - Neutral
4 - Agree
5 - Strongly Agree
Submit
Top Match!


This project was done during my time at TI-CEPD,NSIT,Delhi. They have an awesome Winter Internship program going on, Be sure to have a look.
I source a lot of my components from Local Markets in Delhi like Lajpat Rai Market etc. The problem was that when buying stuff from such places we dont always get a part number, datasheet or footprint details with it, this is very bad when you want to use it in a board that you want to etch or fabricate.
There are two ways to overcome this issue (assuming that the package is not standard) :
I used to do it for a long time, until i made this. This is a bit more labourious approach and it involves too much measuring. But , i noticed that most leaded parts can be resolved in a 0.1inch grid.
In this we make a reference for most common footprints and use them as a reference. What’s better is that the known reference helps in finding out packages of some component you found lying in the parts bin.
So, i kept on collecting ideas on what can be made into a tool that helps during the entire cycle from designing the part to etching the board comparing the parts and checking PCBs. Finally i had a list of things to do and started designing the Tool as a PCB on Eagle that can be etched. Nothing could offer me better precison than that.
After a few hours of designing, i etched the board (which took quite an effort), then selectively tinned a few pads and applied protective lacquer on the board.
Here’s what i mananged.
Continuity Tester : Built in basic continuity tester to check whether the tracks are correctly etched or whether there is any under cutting. Just plug those alligator clips on the exposed pads and see the LED light up incase of continuity.
Standard Packages : Some standard packages used, good to compare them and match.
Common Drills : Most common drill sizes(bits) , just see what inserts easily and voila, we have a good enough drill size.
Right angled rule with both inch and cm scale : Right angled makes it easy while cutting PCBs and marking them and cm and inch scales help in measuring.
I have now been using it for quite sometime and its really useful and serves the purpose.
If you are interested in this i can mail you the file , just drop me an email at indiantinker [at] gmail [dot] com.
Cheers!
Rohit


We’ve selected some of our favourite cafes, restaurants and bars in Liverpool to wet your appetite. Liverpool is a melting pot of cultures and backgrounds, which means it’s a brilliant city for culinary exploration. If you’ve chosen to study in Liverpool, you’ll be pleased to know that a delicious and affordable meal is never hard to come by.
Whether you’re looking for a breakfast hangover cure, a light and healthy lunch or an evening meal, eating in Liverpool is always a pleasure. There is also a myriad of exciting bars where you’ll be able to sample delicious cocktails and craft beers and soak up the atmosphere of our vibrant city.